diff options
366 files changed, 38799 insertions, 43917 deletions
@@ -130,7 +130,7 @@ $(DATA_ASM_BUILDDIR)/%.o: data_dep := endif $(DATA_ASM_BUILDDIR)/%.o: $(DATA_ASM_SUBDIR)/%.s $$(data_dep) - $(PREPROC) $< charmap.txt | $(AS) $(ASFLAGS) -o $@ + $(PREPROC) $< charmap.txt | $(CPP) -I include | $(AS) $(ASFLAGS) -o $@ $(OBJ_DIR)/sym_bss.ld: sym_bss.txt $(RAMSCRGEN) .bss $< ENGLISH > $@ diff --git a/asm/battle_anim_80A5C6C.s b/asm/battle_anim_80A5C6C.s index 158da2a02..08baa4595 100644 --- a/asm/battle_anim_80A5C6C.s +++ b/asm/battle_anim_80A5C6C.s @@ -5,8 +5,8 @@ .text - thumb_func_start sub_80A5C6C -sub_80A5C6C: @ 80A5C6C + thumb_func_start GetBankPosition +GetBankPosition: @ 80A5C6C push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 @@ -154,7 +154,7 @@ _080A5DB0: pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_80A5C6C + thumb_func_end GetBankPosition thumb_func_start sub_80A5DB8 sub_80A5DB8: @ 80A5DB8 @@ -577,7 +577,7 @@ _080A611C: _080A6126: adds r0, r4, 0 adds r1, r5, 0 - bl sub_80A5C6C + bl GetBankPosition _080A612E: lsls r0, 24 lsrs r0, 24 @@ -592,7 +592,7 @@ GetBankSpriteDefault_Y: @ 80A6138 lsls r0, 24 lsrs r0, 24 movs r1, 0x4 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 pop {r1} @@ -611,7 +611,7 @@ GetSubstituteSpriteDefault_Y: @ 80A614C beq _080A6170 adds r0, r4, 0 movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 8 movs r1, 0x80 @@ -620,7 +620,7 @@ GetSubstituteSpriteDefault_Y: @ 80A614C _080A6170: adds r0, r4, 0 movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 8 movs r1, 0x88 @@ -642,7 +642,7 @@ sub_80A6190: @ 80A6190 lsrs r5, r0, 24 adds r0, r5, 0 movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r6, r0, 24 bl IsContest @@ -1245,13 +1245,13 @@ sub_80A65EC: @ 80A65EC ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -1442,13 +1442,13 @@ sub_80A6760: @ 80A6760 ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -1550,13 +1550,13 @@ sub_80A6838: @ 80A6838 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -1578,13 +1578,13 @@ sub_80A6864: @ 80A6864 ldr r7, =gAnimBankAttacker ldrb r0, [r7] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r6, r0, 24 ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 cmp r6, r0 @@ -1646,8 +1646,8 @@ sub_80A68D4: @ 80A68D4 bx r0 thumb_func_end sub_80A68D4 - thumb_func_start sub_80A6900 -sub_80A6900: @ 80A6900 + thumb_func_start AnimateBallThrow +AnimateBallThrow: @ 80A6900 push {r4,lr} adds r4, r0, 0 bl sub_80A6F3C @@ -1674,7 +1674,7 @@ _080A692E: pop {r4} pop {r1} bx r1 - thumb_func_end sub_80A6900 + thumb_func_end AnimateBallThrow thumb_func_start sub_80A6934 sub_80A6934: @ 80A6934 @@ -3685,7 +3685,7 @@ _080A785C: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x4] @@ -3693,7 +3693,7 @@ _080A785C: strh r0, [r5, 0x32] ldrb r0, [r4] adds r1, r7, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x6] @@ -3733,7 +3733,7 @@ _080A78CC: ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] @@ -3741,7 +3741,7 @@ _080A78CC: strh r0, [r6, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x6] @@ -3763,7 +3763,7 @@ _080A78CC: sub_80A791C: @ 80A791C push {r4,lr} adds r4, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _080A7930 @@ -3828,7 +3828,7 @@ _080A798E: strh r0, [r5, 0x2E] adds r0, r6, 0 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r2, [r4, 0x4] @@ -3836,7 +3836,7 @@ _080A798E: strh r0, [r5, 0x32] adds r0, r6, 0 adds r1, r7, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x6] @@ -5713,7 +5713,7 @@ _080A88A6: _080A88AE: mov r0, r8 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrb r1, [r4] @@ -5722,7 +5722,7 @@ _080A88AE: _080A88C0: mov r0, r8 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrb r1, [r4] @@ -5731,7 +5731,7 @@ _080A88C0: _080A88D2: mov r0, r8 movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrb r2, [r4] @@ -5744,7 +5744,7 @@ _080A88E4: _080A88EA: mov r0, r8 movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrb r2, [r4] @@ -5757,7 +5757,7 @@ _080A88FC: _080A8902: mov r0, r8 movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, 0x1F @@ -5798,13 +5798,13 @@ _080A8942: _080A8946: adds r0, r4, 0 adds r1, r5, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 mov r8, r0 adds r0, r4, 0 adds r1, r6, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r7, r0, 24 bl IsDoubleBattle @@ -5819,12 +5819,12 @@ _080A8946: eors r4, r0 adds r0, r4, 0 adds r1, r5, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r5, r0, 24 adds r0, r4, 0 adds r1, r6, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r3, r0, 24 mov r0, r8 @@ -6392,13 +6392,13 @@ sub_80A8E30: @ 80A8E30 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] diff --git a/asm/battle_anim_80A9C70.s b/asm/battle_anim_80A9C70.s index d27852961..bdb1a51ec 100644 --- a/asm/battle_anim_80A9C70.s +++ b/asm/battle_anim_80A9C70.s @@ -334,7 +334,7 @@ sub_80A9EF4: @ 80A9EF4 ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 8 ldr r1, =0xffe00000 @@ -342,7 +342,7 @@ sub_80A9EF4: @ 80A9EF4 lsrs r5, r0, 16 ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 8 ldr r1, =0xffdc0000 diff --git a/asm/battle_anim_80FE840.s b/asm/battle_anim_80FE840.s index 315f884cf..75879519e 100644 --- a/asm/battle_anim_80FE840.s +++ b/asm/battle_anim_80FE840.s @@ -99,13 +99,13 @@ sub_80FE8E0: @ 80FE8E0 ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -135,13 +135,13 @@ sub_80FE930: @ 80FE930 ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -170,7 +170,7 @@ sub_80FE988: @ 80FE988 ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] @@ -178,7 +178,7 @@ sub_80FE988: @ 80FE988 strh r0, [r4, 0x34] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -324,13 +324,13 @@ sub_80FEAD8: @ 80FEAD8 ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -350,7 +350,7 @@ sub_80FEAD8: @ 80FEAD8 sub_80FEB28: @ 80FEB28 push {r4,lr} adds r4, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _080FEB3C @@ -377,13 +377,13 @@ sub_80FEB44: @ 80FEB44 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -413,7 +413,7 @@ _080FEB94: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] @@ -421,7 +421,7 @@ _080FEB94: strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -511,7 +511,7 @@ _080FEC68: ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] @@ -519,7 +519,7 @@ _080FEC68: strh r0, [r6, 0x32] ldrb r0, [r5] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x6] @@ -541,7 +541,7 @@ _080FEC68: sub_80FECB8: @ 80FECB8 push {r4,lr} adds r4, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _080FECE2 @@ -774,7 +774,7 @@ sub_80FEE78: @ 80FEE78 ldr r0, =gAnimBankAttacker ldrb r0, [r0] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x4] @@ -871,7 +871,7 @@ sub_80FEF44: @ 80FEF44 ldr r0, =gAnimBankAttacker ldrb r0, [r0] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x4] @@ -953,13 +953,13 @@ sub_80FEFFC: @ 80FEFFC ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -1101,7 +1101,7 @@ _080FF114: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x4] @@ -1109,7 +1109,7 @@ _080FF114: strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x6] @@ -1175,7 +1175,7 @@ sub_80FF1C0: @ 80FF1C0 movs r0, 0x1 strh r0, [r6, 0x2E] adds r0, r6, 0 - bl sub_80A6900 + bl AnimateBallThrow ldrh r0, [r6, 0x3C] strh r5, [r6, 0x2E] lsls r4, 16 @@ -1799,7 +1799,7 @@ _080FF6AA: _080FF6C2: ldrb r0, [r6] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r4, =gBattleAnimArgs lsrs r0, 24 @@ -1808,7 +1808,7 @@ _080FF6C2: strh r0, [r5, 0x20] ldrb r0, [r6] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x2] @@ -1848,13 +1848,13 @@ _080FF704: ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -1881,13 +1881,13 @@ sub_80FF768: @ 80FF768 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -1944,13 +1944,13 @@ sub_80FF7EC: @ 80FF7EC ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition mov r8, r0 mov r0, r8 lsls r0, 24 @@ -1959,13 +1959,13 @@ sub_80FF7EC: @ 80FF7EC ldr r6, =gAnimBankTarget ldrb r0, [r6] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r6] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition adds r2, r0, 0 lsls r2, 24 subs r4, r5 @@ -2098,7 +2098,7 @@ sub_80FF934: @ 80FF934 ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r4, =gBattleAnimArgs lsrs r0, 24 @@ -2107,7 +2107,7 @@ sub_80FF934: @ 80FF934 strh r0, [r6, 0x20] ldrb r0, [r5] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x2] @@ -2352,12 +2352,12 @@ sub_80FFB18: @ 80FFB18 ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gAnimBankAttacker @@ -2456,7 +2456,7 @@ sub_80FFBF4: @ 80FFBF4 ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] @@ -2554,12 +2554,12 @@ sub_80FFCB4: @ 80FFCB4 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gAnimBankTarget @@ -2963,13 +2963,13 @@ sub_80FFFC0: @ 80FFFC0 strh r0, [r5, 0x10] ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x14] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x16] @@ -3161,7 +3161,7 @@ _08100180: adds r1, r2, 0 bl sub_8100524 adds r0, r4, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 bne _08100196 @@ -3190,7 +3190,7 @@ _081001B4: adds r1, r2, 0 bl sub_8100524 adds r0, r4, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 bne _081001CA @@ -3219,7 +3219,7 @@ _081001E6: adds r1, r2, 0 bl sub_8100524 adds r0, r4, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 bne _081001FC @@ -3272,7 +3272,7 @@ _08100254: adds r1, r2, 0 bl sub_8100524 adds r0, r4, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 bne _0810026A @@ -3403,7 +3403,7 @@ _08100362: adds r1, r2, 0 bl sub_8100524 adds r0, r4, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 bne _08100378 @@ -3514,7 +3514,7 @@ _08100448: adds r1, r2, 0 bl sub_8100524 adds r0, r4, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _081004FC @@ -3566,7 +3566,7 @@ _081004B6: adds r1, r2, 0 bl sub_8100524 adds r0, r4, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _081004FC @@ -3837,7 +3837,7 @@ _081006CE: _081006D4: adds r0, r6, 0 movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r5, [r5] @@ -3860,7 +3860,7 @@ _08100700: ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r7, [r7] @@ -4082,12 +4082,12 @@ _081008C4: _081008C6: ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r5, r0, 24 ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r2, r0, 24 ldr r0, =gBattleAnimArgs @@ -4346,13 +4346,13 @@ sub_8100AE0: @ 8100AE0 ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -4444,7 +4444,7 @@ _08100BA8: movs r4, 0x2 eors r0, r4 movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r5] @@ -4456,12 +4456,12 @@ _08100BC8: ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r5] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r4, r0, 24 ldrb r0, [r5] @@ -4477,7 +4477,7 @@ _08100BC8: mov r2, r8 eors r0, r2 movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, r7 @@ -4486,7 +4486,7 @@ _08100BC8: mov r1, r8 eors r0, r1 movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -4497,13 +4497,13 @@ _08100C24: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r7, r0, 24 ldrb r0, [r4] _08100C34: movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r4, r0, 24 _08100C3E: @@ -5093,14 +5093,14 @@ sub_81010CC: @ 81010CC ldr r6, =gAnimBankTarget ldrb r0, [r6] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 movs r5, 0 strh r0, [r4, 0x20] ldrb r0, [r6] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldr r1, =0x0000ffe8 @@ -5470,7 +5470,7 @@ _081013C4: bne _081013E8 adds r0, r6, 0 movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] @@ -5481,14 +5481,14 @@ _081013C4: _081013E8: adds r0, r6, 0 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] adds r0, r6, 0 movs r1, 0x3 _081013FA: - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x2] @@ -5888,14 +5888,14 @@ _08101718: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, r7 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, r6 @@ -6930,7 +6930,7 @@ _08101F5C: _08101F5E: ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x2] @@ -6938,7 +6938,7 @@ _08101F5E: strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x4] @@ -6965,7 +6965,7 @@ sub_8101FA8: @ 8101FA8 ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldr r1, =0x0000ffd0 @@ -6973,7 +6973,7 @@ sub_8101FA8: @ 8101FA8 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -6995,7 +6995,7 @@ sub_8101FF0: @ 8101FF0 ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldr r1, =gBattleAnimArgs @@ -7007,7 +7007,7 @@ sub_8101FF0: @ 8101FF0 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -7123,7 +7123,7 @@ _081020F4: _081020F6: ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x2] @@ -7131,7 +7131,7 @@ _081020F6: strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x4] @@ -7194,14 +7194,14 @@ sub_810217C: @ 810217C ldr r6, =gAnimBankAttacker ldrb r0, [r6] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 movs r5, 0 strh r0, [r4, 0x20] ldrb r0, [r6] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 subs r0, 0xC @@ -7319,7 +7319,7 @@ sub_8102268: @ 8102268 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r5, =gBattleAnimArgs lsrs r0, 24 @@ -7328,7 +7328,7 @@ sub_8102268: @ 8102268 strh r0, [r6, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x2] @@ -7468,13 +7468,13 @@ _08102390: ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -7676,7 +7676,7 @@ sub_8102540: @ 8102540 ldr r0, =gAnimBankAttacker ldrb r0, [r0] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r2, =gBattleAnimArgs lsrs r0, 24 @@ -8071,7 +8071,7 @@ _08102862: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r6] @@ -8079,7 +8079,7 @@ _08102862: strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x2] @@ -8660,12 +8660,12 @@ _08102D34: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r3, r0, 24 _08102D4E: @@ -8870,7 +8870,7 @@ sub_8102EB0: @ 8102EB0 _08102ECE: ldrb r0, [r7] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r4, =gBattleAnimArgs lsrs r0, 24 @@ -8880,7 +8880,7 @@ _08102ECE: strh r0, [r6, 0x20] ldrb r0, [r7] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r2, [r4, 0x4] @@ -9005,14 +9005,14 @@ _08102FDE: ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, r6 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, 0x8 @@ -9167,7 +9167,7 @@ _08103136: strh r0, [r6, 0x20] adds r0, r5, 0 movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition adds r4, r0, 0 adds r0, r5, 0 movs r1, 0 @@ -9334,7 +9334,7 @@ _081032A2: ldrb r5, [r0] adds r0, r5, 0 movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 movs r6, 0 @@ -9719,13 +9719,13 @@ sub_810358C: @ 810358C ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -10140,7 +10140,7 @@ _0810390E: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r6, =gBattleAnimArgs lsrs r0, 24 @@ -10151,7 +10151,7 @@ _0810390E: mov r8, r0 ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r2, [r6, 0x6] @@ -10719,7 +10719,7 @@ _08103DB6: ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition ldr r1, =gTasks mov r3, r8 adds r4, r3, r7 @@ -10731,7 +10731,7 @@ _08103DB6: adds r6, r0, 0 ldrb r0, [r5] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1C] @@ -10762,13 +10762,13 @@ _08103E20: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5] ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 mov r1, r10 @@ -11053,12 +11053,12 @@ sub_8104088: @ 8104088 ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r4, =gBattleAnimArgs lsrs r0, 24 @@ -11203,13 +11203,13 @@ sub_81041C4: @ 81041C4 ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -11426,14 +11426,14 @@ _08104390: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 add r0, r8 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, r6 @@ -11513,7 +11513,7 @@ _08104448: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 add r0, r9 @@ -11522,7 +11522,7 @@ _08104448: strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, r6 @@ -12356,7 +12356,7 @@ sub_8104B1C: @ 8104B1C bl StartSpriteAnim ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, 0x20 @@ -12370,7 +12370,7 @@ _08104B50: bl StartSpriteAnim ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 subs r0, 0x20 @@ -12381,7 +12381,7 @@ _08104B6A: ldr r0, =gAnimBankAttacker ldrb r0, [r0] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 movs r1, 0 @@ -12432,7 +12432,7 @@ _08104BCA: _08104BE4: adds r0, r5, 0 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r4, =gBattleAnimArgs lsrs r0, 24 @@ -12441,7 +12441,7 @@ _08104BE4: strh r0, [r6, 0x20] adds r0, r5, 0 movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x4] @@ -12962,7 +12962,7 @@ sub_810501C: @ 810501C ldr r6, =gAnimBankTarget ldrb r0, [r6] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 subs r0, 0x10 @@ -13231,7 +13231,7 @@ _08105230: adds r0, r5, 0 movs r1, 0x2 _08105234: - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r4, r0, 24 adds r0, r5, 0 @@ -13341,7 +13341,7 @@ _08105310: beq _0810536C adds r0, r7, 0 mov r1, r10 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r1, =gBattleAnimArgs lsrs r0, 24 @@ -13372,7 +13372,7 @@ _0810535C: _0810536C: adds r0, r7, 0 mov r1, r10 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldr r1, =gBattleAnimArgs @@ -13442,7 +13442,7 @@ _081053FA: strb r0, [r1] adds r0, r7, 0 ldr r1, [sp, 0x4] - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r4, =gBattleAnimArgs lsrs r0, 24 @@ -13473,13 +13473,13 @@ _0810544C: mov r4, sp mov r0, r8 mov r1, r10 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4] mov r0, r8 ldr r1, [sp, 0x4] - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 mov r2, sp @@ -14295,13 +14295,13 @@ sub_8105AAC: @ 8105AAC ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x24] ldrb r0, [r5] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x26] @@ -14700,7 +14700,7 @@ _08105E08: strh r0, [r5, 0x2E] ldrb r0, [r6] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] @@ -14708,7 +14708,7 @@ _08105E08: strh r0, [r5, 0x32] ldrb r0, [r6] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x6] @@ -15075,7 +15075,7 @@ sub_8106140: @ 8106140 ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] @@ -15083,7 +15083,7 @@ sub_8106140: @ 8106140 strh r0, [r4, 0x34] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -15776,13 +15776,13 @@ sub_810673C: @ 810673C ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -15927,13 +15927,13 @@ sub_8106878: @ 8106878 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -16032,13 +16032,13 @@ sub_8106944: @ 8106944 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -16513,13 +16513,13 @@ _08106CFC: _08106CFE: ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -16666,7 +16666,7 @@ _08106E1E: _08106E38: adds r0, r6, 0 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r7, =gBattleAnimArgs lsrs r0, 24 @@ -16676,7 +16676,7 @@ _08106E38: strh r0, [r5, 0x20] adds r0, r6, 0 movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r7, 0x4] @@ -17019,13 +17019,13 @@ _081070F8: ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, 0x28 @@ -17204,7 +17204,7 @@ sub_8107260: @ 8107260 beq _08107290 ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldr r4, =gBattleAnimArgs @@ -17215,7 +17215,7 @@ sub_8107260: @ 8107260 _08107290: ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r4, =gBattleAnimArgs lsrs r0, 24 @@ -17225,7 +17225,7 @@ _081072A2: strh r0, [r6, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x2] @@ -17256,7 +17256,7 @@ _081072D8: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x32] @@ -17264,7 +17264,7 @@ _081072D8: strh r0, [r6, 0x34] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x36] @@ -17448,7 +17448,7 @@ _08107482: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, r6 @@ -17457,7 +17457,7 @@ _08107482: strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r7, [r7, 0x6] @@ -17624,7 +17624,7 @@ sub_81075EC: @ 81075EC ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] @@ -17632,7 +17632,7 @@ sub_81075EC: @ 81075EC strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -17776,13 +17776,13 @@ sub_8107730: @ 8107730 ldr r7, =gAnimBankAttacker ldrb r0, [r7] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r7] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -17913,7 +17913,7 @@ _08107842: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x4] @@ -17921,7 +17921,7 @@ _08107842: strh r0, [r6, 0x32] ldrb r0, [r4] adds r1, r7, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x6] @@ -19353,13 +19353,13 @@ sub_8108408: @ 8108408 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 mov r8, r0 ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r6, r0, 24 movs r5, 0xAC @@ -19959,14 +19959,14 @@ sub_81088E4: @ 81088E4 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 movs r6, 0 strh r0, [r5, 0xE] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x10] @@ -20234,7 +20234,7 @@ _08108B1A: sub_8108B2C: @ 8108B2C push {r4-r6,lr} adds r6, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _08108B86 @@ -20283,7 +20283,7 @@ _08108B86: sub_8108B94: @ 8108B94 push {r4-r6,lr} adds r5, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _08108BD0 @@ -20421,13 +20421,13 @@ sub_8108C94: @ 8108C94 ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x30] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] @@ -21131,7 +21131,7 @@ sub_8109244: @ 8109244 ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] @@ -21139,7 +21139,7 @@ sub_8109244: @ 8109244 strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -21167,13 +21167,13 @@ sub_810929C: @ 810929C ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x22] @@ -22359,7 +22359,7 @@ _08109BCE: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] @@ -22367,7 +22367,7 @@ _08109BCE: strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -23181,13 +23181,13 @@ sub_810A274: @ 810A274 ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -23307,7 +23307,7 @@ _0810A384: bne _0810A3AC adds r0, r4, 0 movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] @@ -23318,14 +23318,14 @@ _0810A384: _0810A3AC: adds r0, r4, 0 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] adds r0, r4, 0 movs r1, 0x3 _0810A3BE: - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -23420,7 +23420,7 @@ sub_810A46C: @ 810A46C ldr r6, =gAnimBankTarget ldrb r0, [r6] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] @@ -23428,7 +23428,7 @@ sub_810A46C: @ 810A46C strh r0, [r4, 0x34] ldrb r0, [r6] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -23591,7 +23591,7 @@ _0810A5E0: ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r4, =gBattleAnimArgs lsrs r0, 24 @@ -23600,7 +23600,7 @@ _0810A5E0: strh r0, [r6, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] @@ -23657,7 +23657,7 @@ _0810A666: _0810A66E: adds r0, r6, 0 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r4, =gBattleAnimArgs lsrs r0, 24 @@ -23666,7 +23666,7 @@ _0810A66E: strh r0, [r5, 0x20] adds r0, r6, 0 movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x2] @@ -23830,7 +23830,7 @@ sub_810A7DC: @ 810A7DC ldr r6, =gAnimBankTarget ldrb r0, [r6] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition ldr r1, =gTasks lsls r4, r5, 2 adds r4, r5 @@ -23844,7 +23844,7 @@ sub_810A7DC: @ 810A7DC strh r0, [r4, 0x8] ldrb r0, [r6] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r5, 0x2] @@ -24228,13 +24228,13 @@ _0810AB28: _0810AB2A: ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x24] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x26] @@ -24448,13 +24448,13 @@ _0810ACF4: _0810ACF6: ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -24486,13 +24486,13 @@ _0810AD4C: _0810AD4E: ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -24521,13 +24521,13 @@ sub_810AD98: @ 810AD98 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -24649,7 +24649,7 @@ _0810AE90: ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x24] @@ -24855,13 +24855,13 @@ _0810B012: _0810B048: ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0xE] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x12] @@ -24881,13 +24881,13 @@ _0810B070: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x12] ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 movs r2, 0xA @@ -25127,13 +25127,13 @@ _0810B24E: ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -25194,13 +25194,13 @@ _0810B2DC: ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x14] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x16] @@ -25209,7 +25209,7 @@ _0810B2DC: ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x1C] @@ -25542,7 +25542,7 @@ _0810B58A: ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, 0x20 @@ -25564,7 +25564,7 @@ _0810B5B4: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -25724,26 +25724,26 @@ sub_810B6C4: @ 810B6C4 ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 mov r9, r0 ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 mov r8, r0 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r3, r0, 24 ldrb r0, [r4] movs r1, 0x3 str r3, [sp] - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r6, r0, 24 ldr r1, =gBattleAnimArgs @@ -25979,7 +25979,7 @@ sub_810B8EC: @ 810B8EC ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] @@ -26006,7 +26006,7 @@ _0810B936: ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r1, =gBattleAnimArgs lsrs r0, 24 @@ -26133,13 +26133,13 @@ sub_810BA24: @ 810BA24 ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x6] @@ -26434,13 +26434,13 @@ sub_810BC94: @ 810BC94 ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -27182,13 +27182,13 @@ sub_810C2F0: @ 810C2F0 ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -27460,12 +27460,12 @@ sub_810C560: @ 810C560 mov r8, r0 ldrb r0, [r0] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition adds r4, r0, 0 ldr r7, =gAnimBankTarget ldrb r0, [r7] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r4, 24 lsls r0, 24 cmp r4, r0 @@ -27526,13 +27526,13 @@ _0810C5F4: ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -27548,7 +27548,7 @@ _0810C5F4: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x6] @@ -27570,7 +27570,7 @@ _0810C65C: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x6] @@ -27583,7 +27583,7 @@ _0810C65C: ldrb r0, [r4] movs r1, 0x1 _0810C684: - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x8] @@ -27679,7 +27679,7 @@ _0810C736: ldr r6, =gAnimBankTarget ldrb r0, [r6] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] @@ -28062,12 +28062,12 @@ sub_810C9E4: @ 810C9E4 str r0, [sp, 0x4] adds r0, r5, 0 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r7, r0, 24 adds r0, r5, 0 movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r6, r0, 24 mov r1, r8 @@ -28384,7 +28384,7 @@ _0810CCCE: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x4] @@ -28392,7 +28392,7 @@ _0810CCCE: strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x6] @@ -28414,7 +28414,7 @@ _0810CCCE: sub_810CD1C: @ 810CD1C push {r4,lr} adds r4, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _0810CD3E @@ -28705,13 +28705,13 @@ _0810CF74: bl StartSpriteAnim mov r0, r8 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] mov r0, r8 movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -29149,13 +29149,13 @@ sub_810D308: @ 810D308 ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -29275,13 +29275,13 @@ _0810D428: _0810D42A: ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -29389,7 +29389,7 @@ sub_810D4F4: @ 810D4F4 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r2, [r6, 0x4] @@ -29400,7 +29400,7 @@ _0810D520: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x4] @@ -29409,7 +29409,7 @@ _0810D532: strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x6] @@ -29523,13 +29523,13 @@ sub_810D608: @ 810D608 ldr r4, =gBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -29601,7 +29601,7 @@ sub_810D6A8: @ 810D6A8 lsls r0, 24 lsrs r0, 24 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] @@ -29611,7 +29611,7 @@ sub_810D6A8: @ 810D6A8 lsls r0, 24 lsrs r0, 24 movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -29715,13 +29715,13 @@ _0810D7C2: ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 @@ -29729,14 +29729,14 @@ _0810D7C2: mov r8, r2 ldrb r0, [r2] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 mov r1, r8 ldrb r0, [r1] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 subs r4, r6 strh r4, [r7, 0x2E] @@ -29811,13 +29811,13 @@ sub_810D874: @ 810D874 ldr r4, =gBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -29879,7 +29879,7 @@ _0810D918: strh r0, [r5, 0x30] adds r0, r4, 0 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] @@ -29887,7 +29887,7 @@ _0810D918: strh r0, [r5, 0x34] adds r0, r4, 0 movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -29932,13 +29932,13 @@ sub_810D984: @ 810D984 ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -30208,13 +30208,13 @@ _0810DBC2: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -30234,7 +30234,7 @@ _0810DBC2: sub_810DC10: @ 810DC10 push {r4,lr} adds r4, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _0810DC24 @@ -30309,7 +30309,7 @@ _0810DC72: sub_810DCB4: @ 810DCB4 push {r4,lr} adds r4, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _0810DCC8 @@ -30699,7 +30699,7 @@ _0810DFC8: ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] @@ -30709,7 +30709,7 @@ _0810DFC8: strh r0, [r6, 0x34] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x6] @@ -30782,13 +30782,13 @@ _0810E070: _0810E088: ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r2, =gBattleAnimArgs ldrh r1, [r2] @@ -30808,13 +30808,13 @@ _0810E088: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -30958,7 +30958,7 @@ _0810E1FE: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] @@ -30966,7 +30966,7 @@ _0810E1FE: strh r0, [r5, 0x34] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -31118,7 +31118,7 @@ _0810E33E: _0810E354: adds r0, r6, 0 movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r4, =gBattleAnimArgs lsrs r0, 24 @@ -31127,7 +31127,7 @@ _0810E354: strh r0, [r7, 0x20] adds r0, r6, 0 movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldrh r1, [r4, 0x2] lsrs r0, 24 @@ -32064,13 +32064,13 @@ sub_810EA4C: @ 810EA4C ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -32240,13 +32240,13 @@ sub_810EB88: @ 810EB88 ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 @@ -32344,7 +32344,7 @@ _0810ECB0: ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -32553,13 +32553,13 @@ _0810EE40: _0810EE42: ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -32708,13 +32708,13 @@ _0810EF74: _0810EF76: ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, 0x20 @@ -32864,14 +32864,14 @@ sub_810F084: @ 810F084 ldr r6, =gAnimBankAttacker ldrb r0, [r6] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 mov r1, r8 strh r0, [r1, 0x20] ldrb r0, [r6] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition adds r6, r0, 0 lsls r6, 24 lsrs r6, 24 @@ -33139,7 +33139,7 @@ _0810F2B8: _0810F2CE: ldrb r0, [r6] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r4, =gBattleAnimArgs lsrs r0, 24 @@ -33148,7 +33148,7 @@ _0810F2CE: strh r0, [r5, 0x20] ldrb r0, [r6] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x2] @@ -33571,13 +33571,13 @@ sub_810F634: @ 810F634 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -33656,14 +33656,14 @@ sub_810F6B0: @ 810F6B0 _0810F6F6: ldrb r0, [r6] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, r4 strh r0, [r5, 0x20] ldrb r0, [r6] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, r7 @@ -33955,13 +33955,13 @@ sub_810F940: @ 810F940 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x24] @@ -34263,13 +34263,13 @@ sub_810FBA8: @ 810FBA8 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -34508,7 +34508,7 @@ _0810FDE8: sub_810FDF0: @ 810FDF0 push {r4,lr} adds r4, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _0810FE0E @@ -35065,13 +35065,13 @@ _08110260: ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -35254,7 +35254,7 @@ _081103C4: strh r0, [r6, 0x2E] ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] @@ -35262,7 +35262,7 @@ _081103C4: strh r0, [r6, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x6] @@ -35333,13 +35333,13 @@ _08110478: strh r0, [r6, 0x2E] ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x36] @@ -35387,13 +35387,13 @@ _08110500: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -35715,7 +35715,7 @@ _081107B2: ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition adds r4, r0, 0 lsls r4, 24 ldr r6, =gBattleAnimArgs @@ -35726,7 +35726,7 @@ _081107B2: lsrs r4, 16 ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -35797,7 +35797,7 @@ _08110870: ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] @@ -35805,7 +35805,7 @@ _08110870: strh r0, [r6, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x6] @@ -35844,7 +35844,7 @@ sub_81108CC: @ 81108CC ands r1, r0 strb r1, [r2] adds r0, r4, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _081108F8 @@ -35879,7 +35879,7 @@ _0811090E: lsls r0, 16 lsrs r6, r0, 16 adds r0, r4, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 bne _08110988 @@ -35949,13 +35949,13 @@ _081109B0: _081109B2: ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, 0x12 @@ -36623,13 +36623,13 @@ sub_8110F74: @ 8110F74 ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 mov r9, r0 ldrb r0, [r5] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 8 movs r1, 0xC0 @@ -36639,13 +36639,13 @@ sub_8110F74: @ 8110F74 ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 mov r10, r0 ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 8 movs r2, 0xC0 @@ -37059,7 +37059,7 @@ _08111304: sub_811131C: @ 811131C push {r4,lr} adds r4, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _0811134E @@ -37219,13 +37219,13 @@ sub_8111444: @ 8111444 ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldr r2, =gBattleAnimArgs @@ -37446,7 +37446,7 @@ sub_811160C: @ 811160C ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] @@ -37454,7 +37454,7 @@ sub_811160C: @ 811160C strh r0, [r4, 0x34] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -37929,7 +37929,7 @@ sub_81119E0: @ 81119E0 mov r8, r0 ldrb r0, [r0] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 movs r1, 0 @@ -37938,7 +37938,7 @@ sub_81119E0: @ 81119E0 mov r1, r8 ldrb r0, [r1] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -38045,13 +38045,13 @@ _08111AD2: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x30] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] @@ -38107,13 +38107,13 @@ _08111B3C: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -38982,12 +38982,12 @@ sub_8112264: @ 8112264 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 8 movs r2, 0xE0 @@ -39001,12 +39001,12 @@ _081122AC: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r6, r0, 24 ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 8 movs r2, 0xE0 @@ -39017,13 +39017,13 @@ _081122AC: _081122D0: ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 mov r10, r0 ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 8 movs r1, 0xE0 @@ -39169,7 +39169,7 @@ sub_81123C4: @ 81123C4 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] @@ -39221,7 +39221,7 @@ _08112436: beq _08112502 adds r0, r4, 0 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 mov r10, r0 @@ -40198,7 +40198,7 @@ sub_8112C6C: @ 8112C6C ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x1A] @@ -40682,13 +40682,13 @@ sub_8113064: @ 8113064 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -40755,13 +40755,13 @@ sub_8113100: @ 8113100 ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -40842,13 +40842,13 @@ _081131D0: _081131D2: ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -40901,14 +40901,14 @@ sub_8113250: @ 8113250 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 movs r5, 0 strh r0, [r6, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x22] @@ -41358,14 +41358,14 @@ sub_81135EC: @ 81135EC mov r8, r1 ldrb r0, [r1] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] mov r2, r8 ldrb r0, [r2] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r3, [r5, 0x8] @@ -41693,26 +41693,26 @@ sub_81138D4: @ 81138D4 ldr r6, =gAnimBankTarget ldrb r0, [r6] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x30] ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r6] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x34] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -42031,7 +42031,7 @@ _08113B60: sub_8113B90: @ 8113B90 push {r4,lr} adds r4, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _08113BA4 @@ -42057,7 +42057,7 @@ sub_8113BAC: @ 8113BAC ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, 0x1F @@ -42076,7 +42076,7 @@ sub_8113BAC: @ 8113BAC strh r1, [r5, 0x22] ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 @@ -42475,7 +42475,7 @@ _08113F84: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, 0x1F @@ -42492,7 +42492,7 @@ _08113F84: strh r1, [r5, 0x22] ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 subs r1, r0, 0x4 @@ -43658,13 +43658,13 @@ sub_8114994: @ 8114994 ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -43673,13 +43673,13 @@ sub_8114994: @ 8114994 ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x36] @@ -43699,7 +43699,7 @@ sub_8114994: @ 8114994 sub_81149FC: @ 81149FC push {r4,r5,lr} adds r5, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _08114A50 @@ -43719,13 +43719,13 @@ sub_81149FC: @ 81149FC ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -43746,7 +43746,7 @@ _08114A50: sub_8114A60: @ 8114A60 push {r4,lr} adds r4, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _08114A74 @@ -43781,7 +43781,7 @@ _08114A9C: ldr r5, =gAnimBankTarget ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x4] @@ -43789,7 +43789,7 @@ _08114A9C: strh r0, [r6, 0x32] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r4, [r4, 0x6] @@ -43893,7 +43893,7 @@ sub_8114B80: @ 8114B80 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r2, [r6, 0x2] @@ -43901,7 +43901,7 @@ sub_8114B80: @ 8114B80 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r3, [r6, 0x4] @@ -44657,7 +44657,7 @@ _081151BE: _081151DA: adds r0, r4, 0 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, r6 @@ -44693,7 +44693,7 @@ _081151DA: sub_8115228: @ 8115228 push {r4,lr} adds r4, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _0811523C @@ -44723,7 +44723,7 @@ _08115262: ldrb r5, [r0] adds r0, r5, 0 movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldr r2, =0x0000fff0 @@ -45244,7 +45244,7 @@ _0811565A: adds r4, r0 adds r0, r5, 0 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 movs r1, 0x20 @@ -45255,7 +45255,7 @@ _0811565A: strh r1, [r4, 0xA] adds r0, r5, 0 movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 movs r1, 0x40 diff --git a/asm/battle_anim_815A0D4.s b/asm/battle_anim_815A0D4.s index d2a401f59..611e4b067 100755 --- a/asm/battle_anim_815A0D4.s +++ b/asm/battle_anim_815A0D4.s @@ -90,7 +90,7 @@ sub_815A160: @ 815A160 ldr r6, =gAnimBankTarget ldrb r0, [r6] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition adds r4, r0, 0 lsls r4, 24 lsrs r4, 8 @@ -100,7 +100,7 @@ sub_815A160: @ 815A160 asrs r4, 16 ldrb r0, [r6] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition adds r1, r0, 0 lsls r1, 24 lsrs r1, 8 @@ -210,13 +210,13 @@ sub_815A254: @ 815A254 ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r7, r0, 0 ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 @@ -816,7 +816,7 @@ _0815A6F8: sub_815A73C: @ 815A73C push {r4,lr} adds r4, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _0815A75E @@ -1254,13 +1254,13 @@ sub_815AAA4: @ 815AAA4 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -1510,7 +1510,7 @@ _0815ACEC: _0815ACEE: ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x2] @@ -1518,7 +1518,7 @@ _0815ACEE: strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -1906,13 +1906,13 @@ sub_815AFF0: @ 815AFF0 ldr r6, =gAnimBankAttacker ldrb r0, [r6] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xC] ldrb r0, [r6] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0xE] @@ -2281,13 +2281,13 @@ _0815B2D8: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x32] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x36] @@ -2373,13 +2373,13 @@ _0815B3BE: ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -2817,7 +2817,7 @@ _0815B71E: ldr r0, =gAnimBankAttacker ldrb r0, [r0] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x32] @@ -3624,14 +3624,14 @@ _0815BE2E: ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, r5 strh r0, [r7, 0x20] ldrb r0, [r4] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, 0x20 @@ -4994,13 +4994,13 @@ sub_815C95C: @ 815C95C ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -5531,13 +5531,13 @@ sub_815CDB4: @ 815CDB4 ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -5842,13 +5842,13 @@ _0815D05A: ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r5] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 mov r2, r10 lsls r1, r2, 16 @@ -6840,7 +6840,7 @@ _0815D896: ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r6, 0x2] @@ -6848,7 +6848,7 @@ _0815D896: strh r0, [r5, 0x20] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r6, [r6, 0x4] @@ -7382,13 +7382,13 @@ _0815DCEA: ldrb r4, [r0] adds r0, r4, 0 movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x10] adds r0, r4, 0 movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x12] @@ -7789,7 +7789,7 @@ sub_815E01C: @ 815E01C _0815E038: ldrb r0, [r6] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r4, =gBattleAnimArgs lsrs r0, 24 @@ -7798,7 +7798,7 @@ _0815E038: strh r0, [r5, 0x20] ldrb r0, [r6] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r1, [r4, 0x2] @@ -7931,7 +7931,7 @@ _0815E14E: bne _0815E188 ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition adds r4, r0, 0 ldrb r0, [r5] movs r1, 0 @@ -7951,7 +7951,7 @@ _0815E17C: _0815E188: ldrb r0, [r5] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition adds r4, r0, 0 ldrb r0, [r5] movs r1, 0 @@ -7971,7 +7971,7 @@ _0815E1AC: ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition adds r4, r0, 0 ldrb r0, [r5] movs r1, 0 @@ -7990,13 +7990,13 @@ _0815E1D0: ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x22] ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x24] @@ -8349,14 +8349,14 @@ sub_815E47C: @ 815E47C mov r10, r0 ldrb r0, [r0] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x1E] mov r1, r10 ldrb r0, [r1] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x20] @@ -8364,14 +8364,14 @@ sub_815E47C: @ 815E47C mov r8, r0 ldrb r0, [r0] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r7, 0x22] mov r1, r8 ldrb r0, [r1] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition adds r4, r0, 0 mov r1, r8 ldrb r0, [r1] @@ -8524,7 +8524,7 @@ _0815E5FE: lsls r0, 2 ldr r1, =gSprites adds r0, r1 - bl sub_80A6900 + bl AnimateBallThrow ldrh r0, [r4, 0xC] adds r0, 0x1 strh r0, [r4, 0xC] @@ -8542,7 +8542,7 @@ _0815E634: lsls r0, 2 ldr r1, =gSprites adds r0, r1 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _0815E6D2 @@ -8659,7 +8659,7 @@ _0815E724: strh r1, [r4, 0x3C] adds r0, r5, 0 movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -8950,7 +8950,7 @@ _0815E970: _0815E972: ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] @@ -9342,7 +9342,7 @@ sub_815EC48: @ 815EC48 ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 @@ -9350,7 +9350,7 @@ sub_815EC48: @ 815EC48 movs r0, 0x2 eors r0, r1 movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 cmp r4, r0 @@ -9771,14 +9771,14 @@ _0815EFEC: lsls r0, 24 lsrs r0, 24 movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r5, r0, 24 ldrh r0, [r4, 0x3C] lsls r0, 24 lsrs r0, 24 movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r1, r0, 24 _0815F00C: @@ -9994,10 +9994,10 @@ sub_815F18C: @ 815F18C ldr r4, =gAnimBankTarget ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition ldrb r0, [r4] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition ldrb r0, [r4] bl GetBankSide lsls r0, 24 @@ -10387,7 +10387,7 @@ _0815F4C8: ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0x3 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x22] @@ -11180,7 +11180,7 @@ _0815FB50: ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 lsls r3, r5, 16 @@ -11318,7 +11318,7 @@ _0815FC56: ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 cmp r4, r0 @@ -11331,7 +11331,7 @@ _0815FCB4: ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 cmp r4, r0 @@ -11469,7 +11469,7 @@ _0815FD8C: mov r1, r10 ldrb r0, [r1] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r3, r5, 0 @@ -11499,7 +11499,7 @@ _0815FE0C: mov r2, r10 ldrb r0, [r2] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r3, r5, 0 @@ -11566,7 +11566,7 @@ _0815FE92: ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r0, 0x10 @@ -11724,14 +11724,14 @@ _08160008: ldr r0, =gAnimBankAttacker ldrb r0, [r0] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 ldr r0, =gAnimBankTarget ldrb r0, [r0] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 adds r2, r0, 0 @@ -12169,7 +12169,7 @@ sub_81603A8: @ 81603A8 ldr r4, =gAnimBankAttacker ldrb r0, [r4] movs r1, 0x2 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r5, 0x20] diff --git a/asm/battle_anim_8170478.s b/asm/battle_anim_8170478.s index a5e3b5f88..635c02e03 100644 --- a/asm/battle_anim_8170478.s +++ b/asm/battle_anim_8170478.s @@ -886,7 +886,7 @@ _08170C08: bl GetMonData lsls r0, 16 lsrs r0, 16 - bl ball_number_to_ball_processing_index + bl ItemIdToBallId lsls r0, 24 lsrs r0, 24 mov r8, r0 @@ -907,13 +907,13 @@ _08170C44: ldr r5, =gAnimBankAttacker ldrb r0, [r5] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldrb r0, [r5] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition adds r1, r0, 0 lsls r1, 24 ldr r2, =gSprites @@ -934,7 +934,7 @@ _08170C44: mov r0, r8 str r0, [sp] adds r0, r4, 0 - bl sub_8171D98 + bl LaunchBallStarsTask lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x1C] @@ -950,7 +950,7 @@ _08170C44: ldrb r1, [r5] movs r0, 0 mov r3, r8 - bl sub_81729E8 + bl LaunchBallFadeMonTask lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x1E] @@ -998,10 +998,10 @@ sub_8170CFC: @ 8170CFC lsrs r4, 24 ldr r0, =gLastUsedItem ldrh r0, [r0] - bl ball_number_to_ball_processing_index + bl ItemIdToBallId lsls r0, 24 lsrs r0, 24 - bl sub_8076A78 + bl LoadBallGfx adds r0, r4, 0 bl DestroyAnimVisualTask pop {r4} @@ -1018,10 +1018,10 @@ sub_8170D24: @ 8170D24 lsrs r4, 24 ldr r0, =gLastUsedItem ldrh r0, [r0] - bl ball_number_to_ball_processing_index + bl ItemIdToBallId lsls r0, 24 lsrs r0, 24 - bl sub_8076AE8 + bl FreeBallGfx adds r0, r4, 0 bl DestroyAnimVisualTask pop {r4} @@ -1057,8 +1057,8 @@ _08170D74: .pool thumb_func_end sub_8170D4C - thumb_func_start ball_number_to_ball_processing_index -ball_number_to_ball_processing_index: @ 8170D84 + thumb_func_start ItemIdToBallId +ItemIdToBallId: @ 8170D84 push {lr} lsls r0, 16 lsrs r0, 16 @@ -1123,7 +1123,7 @@ _08170DFC: _08170DFE: pop {r1} bx r1 - thumb_func_end ball_number_to_ball_processing_index + thumb_func_end ItemIdToBallId thumb_func_start sub_8170E04 sub_8170E04: @ 8170E04 @@ -1138,14 +1138,14 @@ sub_8170E04: @ 8170E04 mov r10, r0 ldr r0, =gLastUsedItem ldrh r0, [r0] - bl ball_number_to_ball_processing_index + bl ItemIdToBallId adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 1 adds r0, r1 lsls r0, 3 - ldr r1, =gUnknown_0832C588 + ldr r1, =gBallSpriteTemplates adds r0, r1 movs r1, 0x20 movs r2, 0x50 @@ -1166,14 +1166,14 @@ sub_8170E04: @ 8170E04 mov r8, r2 ldrb r0, [r2] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x30] mov r1, r8 ldrb r0, [r1] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 subs r0, 0x10 @@ -1278,7 +1278,7 @@ _08170F50: _08170F54: ldr r0, =gLastUsedItem ldrh r0, [r0] - bl ball_number_to_ball_processing_index + bl ItemIdToBallId adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 @@ -1294,7 +1294,7 @@ _08170F54: lsls r0, r4, 1 adds r0, r4 lsls r0, 3 - ldr r1, =gUnknown_0832C588 + ldr r1, =gBallSpriteTemplates adds r0, r1 adds r1, r6, 0 adds r1, 0x20 @@ -1317,14 +1317,14 @@ _08170F54: mov r8, r1 ldrb r0, [r1] movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r6, 0x30] mov r1, r8 ldrb r0, [r1] movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 subs r0, 0x10 @@ -1487,7 +1487,7 @@ sub_8171134: @ 8171134 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _081711D2 @@ -1532,7 +1532,7 @@ _08171188: str r0, [r4, 0x1C] ldr r0, =gLastUsedItem ldrh r0, [r0] - bl ball_number_to_ball_processing_index + bl ItemIdToBallId lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xB @@ -1549,13 +1549,13 @@ _08171188: str r5, [sp] movs r2, 0x1 movs r3, 0x1C - bl sub_8171D98 + bl LaunchBallStarsTask ldr r0, =gAnimBankTarget ldrb r1, [r0] movs r0, 0 movs r2, 0xE adds r3, r5, 0 - bl sub_81729E8 + bl LaunchBallFadeMonTask _081711D2: add sp, 0x4 pop {r4,r5} @@ -2671,7 +2671,7 @@ sub_8171AAC: @ 8171AAC orrs r0, r1 strb r0, [r3] adds r0, r4, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _08171ADC @@ -2697,7 +2697,7 @@ sub_8171AE4: @ 8171AE4 str r0, [r4, 0x1C] ldr r0, =gLastUsedItem ldrh r0, [r0] - bl ball_number_to_ball_processing_index + bl ItemIdToBallId lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xB @@ -2714,13 +2714,13 @@ sub_8171AE4: @ 8171AE4 str r5, [sp] movs r2, 0x1 movs r3, 0x1C - bl sub_8171D98 + bl LaunchBallStarsTask ldr r0, =gAnimBankTarget ldrb r1, [r0] movs r0, 0x1 movs r2, 0xE adds r3, r5, 0 - bl sub_81729E8 + bl LaunchBallFadeMonTask _08171B36: ldr r6, =gSprites ldr r5, =gBankSpriteIds @@ -3007,8 +3007,8 @@ _08171D86: .pool thumb_func_end sub_8171D60 - thumb_func_start sub_8171D98 -sub_8171D98: @ 8171D98 + thumb_func_start LaunchBallStarsTask +LaunchBallStarsTask: @ 8171D98 push {r4-r6,lr} mov r6, r10 mov r5, r9 @@ -3070,7 +3070,7 @@ sub_8171D98: @ 8171D98 pop {r1} bx r1 .pool - thumb_func_end sub_8171D98 + thumb_func_end LaunchBallStarsTask thumb_func_start sub_8171E20 sub_8171E20: @ 8171E20 @@ -4476,8 +4476,8 @@ _081729E2: bx r0 thumb_func_end sub_8172944 - thumb_func_start sub_81729E8 -sub_81729E8: @ 81729E8 + thumb_func_start LaunchBallFadeMonTask +LaunchBallFadeMonTask: @ 81729E8 push {r4-r7,lr} mov r7, r9 mov r6, r8 @@ -4563,7 +4563,7 @@ _08172A7E: pop {r1} bx r1 .pool - thumb_func_end sub_81729E8 + thumb_func_end LaunchBallFadeMonTask thumb_func_start sub_8172AB0 sub_8172AB0: @ 8172AB0 @@ -5234,12 +5234,12 @@ _0817303A: ldrb r0, [r4, 0x8] mov r8, r0 movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r5, r0, 24 mov r0, r8 movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r2, r0, 24 movs r1, 0x1E @@ -5579,7 +5579,7 @@ sub_817330C: @ 817330C lsls r0, 24 lsrs r0, 24 movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 ldr r5, =gBattleAnimArgs lsrs r0, 24 @@ -5591,7 +5591,7 @@ sub_817330C: @ 817330C lsls r0, 24 lsrs r0, 24 movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 ldrh r5, [r5, 0x6] @@ -5652,7 +5652,7 @@ _081733C0: sub_81733D4: @ 81733D4 push {r4,lr} adds r4, r0, 0 - bl sub_80A6900 + bl AnimateBallThrow lsls r0, 24 cmp r0, 0 beq _081733F6 diff --git a/asm/battle_frontier_1.s b/asm/battle_frontier_1.s index 4d693da3d..f5d4013f6 100755 --- a/asm/battle_frontier_1.s +++ b/asm/battle_frontier_1.s @@ -13791,7 +13791,7 @@ sub_8195FF8: @ 8195FF8 push {r4-r6,lr} adds r5, r0, 0 movs r4, 0 - ldr r6, =gUnknown_085500A4 + ldr r6, =gRematchTable _08196000: movs r1, 0xAE lsls r1, 1 @@ -13887,7 +13887,7 @@ task_prev_quest: @ 81960A8 cmp r0, 0 bne _081960C2 bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeMapObjects bl sub_808B864 bl sub_808BCF4 _081960C2: @@ -14531,7 +14531,7 @@ sub_81965D8: @ 81965D8 negs r0, r0 ands r0, r1 strb r0, [r2] - bl sav2_get_text_speed + bl GetPlayerTextSpeed adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -14659,7 +14659,7 @@ sub_8196710: @ 8196710 thumb_func_start sub_819672C sub_819672C: @ 819672C push {lr} - ldr r1, =gUnknown_085500A4 + ldr r1, =gRematchTable lsls r0, 4 adds r0, r1 ldrh r2, [r0, 0xA] @@ -14677,10 +14677,10 @@ sub_8196748: @ 8196748 push {r4-r6,lr} movs r5, 0 movs r6, 0 - ldr r4, =gUnknown_085500A4 + ldr r4, =gRematchTable _08196750: ldrh r0, [r4] - bl HasTrainerAlreadyBeenFought + bl HasTrainerBeenFought lsls r0, 24 cmp r0, 0 beq _0819675E @@ -14703,10 +14703,10 @@ sub_8196774: @ 8196774 adds r7, r0, 0 movs r4, 0 movs r6, 0 - ldr r5, =gUnknown_085500A4 + ldr r5, =gRematchTable _0819677E: ldrh r0, [r5] - bl HasTrainerAlreadyBeenFought + bl HasTrainerBeenFought lsls r0, 24 cmp r0, 0 beq _0819679A @@ -14766,7 +14766,7 @@ _081967EC: adds r4, r0, 0 movs r7, 0x1 adds r0, r5, 0 - bl sub_80B1E94 + bl UpdateRematchIfDefeated b _08196832 _0819680A: bl Random @@ -15270,7 +15270,7 @@ sub_8196B98: @ 8196B98 adds r7, r0, 0 cmp r1, 0xFF beq _08196C5C - ldr r1, =gUnknown_085500A4 + ldr r1, =gRematchTable lsls r0, r2, 4 adds r2, r0, r1 ldrh r4, [r2, 0xA] @@ -15373,7 +15373,7 @@ sub_8196C70: @ 8196C70 lsls r1, 2 adds r1, r2 ldrh r0, [r1] - bl sub_80B2250 + bl GetLastBeatenRematchTrainerId lsls r0, 16 lsrs r0, 16 ldr r5, =gTrainers diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s index 43ad02708..ead4750e1 100755 --- a/asm/battle_frontier_2.s +++ b/asm/battle_frontier_2.s @@ -12380,7 +12380,7 @@ _081A0C8E: sub_81A0C9C: @ 81A0C9C push {lr} bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeMapObjects bl sub_808B864 bl sub_808BCF4 movs r0, 0 @@ -14280,7 +14280,7 @@ sub_81A1C4C: @ 81A1C4C adds r3, r0, 0 lsls r0, r5, 3 adds r5, r0, 0x1 - ldr r0, =gUnknown_0203AB74 + ldr r0, =gResultsWindowId ldrb r0, [r0] lsls r3, 24 lsrs r3, 24 @@ -14306,7 +14306,7 @@ sub_81A1C90: @ 81A1C90 push {r4,lr} sub sp, 0x34 adds r2, r0, 0 - ldr r3, =gUnknown_0203AB74 + ldr r3, =gResultsWindowId movs r1, 0xAE mov r0, sp adds r0, 0x2F @@ -14361,7 +14361,7 @@ sub_81A1CD8: @ 81A1CD8 lsls r0, 24 lsrs r0, 24 adds r7, r0, 0 - ldr r0, =gUnknown_0203AB74 + ldr r0, =gResultsWindowId mov r10, r0 ldrb r0, [r0] str r7, [sp] @@ -14580,7 +14580,7 @@ sub_81A1EA8: @ 81A1EA8 sub sp, 0xC lsls r0, 24 lsrs r7, r0, 24 - ldr r4, =gUnknown_0203AB74 + ldr r4, =gResultsWindowId ldr r0, =gUnknown_08611C74 bl AddWindow strb r0, [r4] @@ -14621,7 +14621,7 @@ _081A1F28: ldr r0, =gStringVar4 movs r1, 0x2 bl sub_81A1C4C - ldr r6, =gUnknown_0203AB74 + ldr r6, =gResultsWindowId ldrb r0, [r6] ldr r2, =gText_Lv502 movs r1, 0x31 @@ -14734,7 +14734,7 @@ sub_81A2008: @ 81A2008 lsrs r6, 24 lsls r5, 24 lsrs r5, 24 - ldr r0, =gUnknown_0203AB74 + ldr r0, =gResultsWindowId mov r10, r0 ldrb r0, [r0] str r5, [sp] @@ -14868,7 +14868,7 @@ sub_81A2134: @ 81A2134 sub sp, 0xC lsls r0, 24 lsrs r7, r0, 24 - ldr r4, =gUnknown_0203AB74 + ldr r4, =gResultsWindowId ldr r0, =gUnknown_08611C74 bl AddWindow strb r0, [r4] @@ -14893,7 +14893,7 @@ _081A2184: ldr r0, =gStringVar4 movs r1, 0 bl sub_81A1C4C - ldr r1, =gUnknown_0203AB74 + ldr r1, =gResultsWindowId ldrb r0, [r1] ldr r2, =gText_Lv502 movs r6, 0x21 @@ -14905,7 +14905,7 @@ _081A2184: movs r1, 0x1 movs r3, 0x8 bl PrintTextOnWindow - ldr r1, =gUnknown_0203AB74 + ldr r1, =gResultsWindowId ldrb r0, [r1] ldr r2, =gText_OpenLv movs r1, 0x61 @@ -14988,10 +14988,10 @@ _081A2184: mov r1, r8 movs r3, 0x40 bl sub_81A2008 - ldr r1, =gUnknown_0203AB74 + ldr r1, =gResultsWindowId ldrb r0, [r1] bl PutWindowTilemap - ldr r1, =gUnknown_0203AB74 + ldr r1, =gResultsWindowId ldrb r0, [r1] movs r1, 0x3 bl CopyWindowToVram @@ -15027,7 +15027,7 @@ sub_81A22B8: @ 81A22B8 lsls r0, 24 lsrs r0, 24 adds r7, r0, 0 - ldr r0, =gUnknown_0203AB74 + ldr r0, =gResultsWindowId mov r10, r0 ldrb r0, [r0] str r7, [sp] @@ -15221,7 +15221,7 @@ sub_81A2460: @ 81A2460 sub sp, 0xC lsls r0, 24 lsrs r7, r0, 24 - ldr r4, =gUnknown_0203AB74 + ldr r4, =gResultsWindowId ldr r0, =gUnknown_08611C74 bl AddWindow strb r0, [r4] @@ -15246,7 +15246,7 @@ _081A24B0: ldr r0, =gStringVar4 movs r1, 0x2 bl sub_81A1C4C - ldr r6, =gUnknown_0203AB74 + ldr r6, =gResultsWindowId ldrb r0, [r6] ldr r2, =gText_Lv502 movs r1, 0x31 @@ -15356,7 +15356,7 @@ sub_81A258C: @ 81A258C lsrs r6, 24 lsls r5, 24 lsrs r5, 24 - ldr r0, =gUnknown_0203AB74 + ldr r0, =gResultsWindowId mov r10, r0 ldrb r0, [r0] str r5, [sp] @@ -15469,7 +15469,7 @@ sub_81A2698: @ 81A2698 mov r5, r8 push {r5-r7} sub sp, 0xC - ldr r6, =gUnknown_0203AB74 + ldr r6, =gResultsWindowId ldr r0, =gUnknown_08611C74 bl AddWindow strb r0, [r6] @@ -15608,7 +15608,7 @@ sub_81A27E8: @ 81A27E8 lsls r0, 24 lsrs r0, 24 adds r7, r0, 0 - ldr r0, =gUnknown_0203AB74 + ldr r0, =gResultsWindowId mov r10, r0 ldrb r0, [r0] str r7, [sp] @@ -15772,7 +15772,7 @@ _081A2956: sub_81A2968: @ 81A2968 push {r4-r6,lr} sub sp, 0xC - ldr r5, =gUnknown_0203AB74 + ldr r5, =gResultsWindowId ldr r0, =gUnknown_08611C74 bl AddWindow strb r0, [r5] @@ -15871,7 +15871,7 @@ sub_81A2A28: @ 81A2A28 lsls r0, 24 lsrs r0, 24 adds r6, r0, 0 - ldr r0, =gUnknown_0203AB74 + ldr r0, =gResultsWindowId mov r10, r0 ldrb r0, [r0] str r6, [sp] @@ -16147,7 +16147,7 @@ sub_81A2C94: @ 81A2C94 sub sp, 0xC lsls r0, 24 lsrs r7, r0, 24 - ldr r4, =gUnknown_0203AB74 + ldr r4, =gResultsWindowId ldr r0, =gUnknown_08611C74 bl AddWindow strb r0, [r4] @@ -16172,7 +16172,7 @@ _081A2CE0: ldr r0, =gStringVar4 movs r1, 0 bl sub_81A1C4C - ldr r0, =gUnknown_0203AB74 + ldr r0, =gResultsWindowId mov r8, r0 ldrb r0, [r0] ldr r2, =gText_Lv502 @@ -16276,7 +16276,7 @@ sub_81A2DB4: @ 81A2DB4 lsls r0, 24 lsrs r0, 24 adds r7, r0, 0 - ldr r0, =gUnknown_0203AB74 + ldr r0, =gResultsWindowId mov r10, r0 ldrb r0, [r0] str r7, [sp] @@ -16442,7 +16442,7 @@ _081A2F26: sub_81A2F38: @ 81A2F38 push {r4-r6,lr} sub sp, 0xC - ldr r5, =gUnknown_0203AB74 + ldr r5, =gResultsWindowId ldr r0, =gUnknown_08611C74 bl AddWindow strb r0, [r5] @@ -16520,7 +16520,7 @@ sub_81A2FF8: @ 81A2FF8 mov r6, r8 push {r6,r7} sub sp, 0xC - ldr r4, =gUnknown_0203AB74 + ldr r4, =gResultsWindowId ldr r0, =gUnknown_08611C7C bl AddWindow strb r0, [r4] @@ -16686,7 +16686,7 @@ _081A315C: movs r2, 0x1 movs r3, 0x4 bl ConvertIntToDecimalStringN - ldr r6, =gUnknown_0203AB74 + ldr r6, =gResultsWindowId ldrb r0, [r6] movs r1, 0x26 adds r3, r5, 0 @@ -18962,7 +18962,7 @@ sub_81A4594: @ 81A4594 sub sp, 0x2C mov r8, r1 adds r6, r3, 0 - ldr r1, =gUnknown_0203AB74 + ldr r1, =gResultsWindowId ldrb r5, [r1] lsls r4, r0, 1 adds r4, r0 @@ -18998,7 +18998,7 @@ sub_81A4594: @ 81A4594 ldrb r2, [r6, 0xE] add r0, sp, 0xC bl TVShowConvertInternationalString - ldr r1, =gUnknown_0203AB74 + ldr r1, =gResultsWindowId ldrb r0, [r1] mov r3, r8 adds r3, 0x2 @@ -19038,7 +19038,7 @@ _081A4618: adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 - ldr r1, =gUnknown_0203AB74 + ldr r1, =gResultsWindowId ldrb r0, [r1] str r7, [sp] mov r1, r10 @@ -19072,7 +19072,7 @@ sub_81A4684: @ 81A4684 adds r7, r1, 0 mov r10, r2 adds r5, r3, 0 - ldr r1, =gUnknown_0203AB74 + ldr r1, =gResultsWindowId ldrb r0, [r1] lsls r2, r6, 1 adds r2, r6 @@ -19112,7 +19112,7 @@ sub_81A4684: @ 81A4684 ldrb r2, [r5, 0x1A] add r0, sp, 0xC bl TVShowConvertInternationalString - ldr r1, =gUnknown_0203AB74 + ldr r1, =gResultsWindowId ldrb r0, [r1] adds r3, r7, 0x2 lsls r3, 27 @@ -19147,7 +19147,7 @@ _081A4734: adds r1, r4, 0 bl StringCopy _081A473C: - ldr r2, =gUnknown_0203AB74 + ldr r2, =gResultsWindowId mov r9, r2 ldrb r0, [r2] adds r3, r7, 0x4 @@ -19468,7 +19468,7 @@ sub_81A4998: @ 81A4998 ldr r1, [r5] adds r0, r6, 0 bl StringExpandPlaceholders - ldr r0, =gUnknown_0203AB74 + ldr r0, =gResultsWindowId mov r8, r0 ldrb r0, [r0] movs r1, 0x1 @@ -19567,7 +19567,7 @@ _081A4A90: thumb_func_start sub_81A4AA0 sub_81A4AA0: @ 81A4AA0 push {r4,lr} - ldr r4, =gUnknown_0203AB74 + ldr r4, =gResultsWindowId ldr r0, =gUnknown_08611C84 bl AddWindow strb r0, [r4] @@ -19595,7 +19595,7 @@ sub_81A4AA0: @ 81A4AA0 thumb_func_start sub_81A4AE8 sub_81A4AE8: @ 81A4AE8 push {r4,lr} - ldr r4, =gUnknown_0203AB74 + ldr r4, =gResultsWindowId ldrb r0, [r4] movs r1, 0x11 bl FillWindowPixelBuffer diff --git a/asm/battle_records.s b/asm/battle_records.s index c961aefe3..c441adc74 100644 --- a/asm/battle_records.s +++ b/asm/battle_records.s @@ -496,7 +496,7 @@ sub_813C2F4: @ 813C2F4 movs r2, 0xD0 bl GetStringCenterAlignXOffset adds r3, r0, 0 - ldr r0, =gUnknown_0203AB74 + ldr r0, =gResultsWindowId ldrb r0, [r0] lsls r3, 24 lsrs r3, 24 @@ -531,7 +531,7 @@ sub_813C384: @ 813C384 ldr r7, [r6, 0xC] cmp r7, 0 bne _0813C40C - ldr r0, =gUnknown_0203AB74 + ldr r0, =gResultsWindowId mov r8, r0 ldrb r0, [r0] ldr r2, =gUnknown_085B3D84 @@ -587,7 +587,7 @@ _0813C40C: lsrs r1, 24 ldr r0, =gStringVar1 bl ConvertInternationalString - ldr r0, =gUnknown_0203AB74 + ldr r0, =gResultsWindowId mov r8, r0 ldrb r0, [r0] lsls r4, 3 @@ -661,7 +661,7 @@ sub_813C4BC: @ 813C4BC mov r6, r8 push {r6,r7} sub sp, 0xC - ldr r6, =gUnknown_0203AB74 + ldr r6, =gResultsWindowId ldr r0, =gUnknown_085B3D7C bl AddWindow strb r0, [r6] @@ -729,7 +729,7 @@ _0813C540: adds r4, 0x1 cmp r4, 0x4 ble _0813C540 - ldr r4, =gUnknown_0203AB74 + ldr r4, =gResultsWindowId ldrb r0, [r4] bl PutWindowTilemap ldrb r0, [r4] @@ -748,7 +748,7 @@ _0813C540: thumb_func_start sub_813C5A0 sub_813C5A0: @ 813C5A0 push {r4,lr} - ldr r4, =gUnknown_0203AB74 + ldr r4, =gResultsWindowId ldrb r0, [r4] movs r1, 0 bl sub_819746C diff --git a/asm/battle_setup.s b/asm/battle_setup.s deleted file mode 100644 index f77e7a5d0..000000000 --- a/asm/battle_setup.s +++ /dev/null @@ -1,3550 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start task01_battle_start -task01_battle_start: @ 80B05F0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080B0614 - cmp r0, 0x1 - beq _080B062E - b _080B0652 - .pool -_080B0614: - bl c3_80A0DD8_is_running - cmp r0, 0 - bne _080B0652 - ldrb r0, [r4, 0x2] - bl sub_8145EF4 - bl sub_81BE72C - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080B0652 -_080B062E: - bl IsBattleTransitionDone - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B0652 - bl overworld_free_bg_tilemaps - ldr r0, =CB2_InitBattle - bl SetMainCallback2 - bl prev_quest_postbuffer_cursor_backup_reset - bl overworld_poison_timer_set - adds r0, r5, 0 - bl DestroyTask -_080B0652: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end task01_battle_start - - thumb_func_start task_add_01_battle_start -task_add_01_battle_start: @ 80B065C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 16 - lsrs r5, 16 - ldr r0, =task01_battle_start - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0xA] - adds r0, r5, 0 - bl PlayMapChosenOrBattleBGM - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end task_add_01_battle_start - - thumb_func_start BattleSetup_StartWildBattle -BattleSetup_StartWildBattle: @ 80B0698 - push {lr} - bl GetSafariZoneFlag - cmp r0, 0 - beq _080B06A8 - bl sub_80B077C - b _080B06AC -_080B06A8: - bl sub_80B06BC -_080B06AC: - pop {r0} - bx r0 - thumb_func_end BattleSetup_StartWildBattle - - thumb_func_start BattleSetup_StartBattlePikeWildBattle -BattleSetup_StartBattlePikeWildBattle: @ 80B06B0 - push {lr} - bl sub_80B07B4 - pop {r0} - bx r0 - thumb_func_end BattleSetup_StartBattlePikeWildBattle - - thumb_func_start sub_80B06BC -sub_80B06BC: @ 80B06BC - push {r4,lr} - bl ScriptContext2_Enable - bl player_bitmagic - bl sub_808BCF4 - ldr r1, =gMain - ldr r0, =sub_80B0AF8 - str r0, [r1, 0x8] - ldr r4, =gBattleTypeFlags - movs r0, 0 - str r0, [r4] - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - beq _080B06F2 - ldr r0, =0x0000400e - movs r1, 0 - bl VarSet - ldr r0, [r4] - movs r1, 0x80 - lsls r1, 14 - orrs r0, r1 - str r0, [r4] -_080B06F2: - bl sub_80B0EC8 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl task_add_01_battle_start - movs r0, 0x7 - bl IncrementGameStat - movs r0, 0x8 - bl IncrementGameStat - bl sub_80EECC8 - bl sub_80B1218 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B06BC - - thumb_func_start BattleSetup_StartRoamerBattle -BattleSetup_StartRoamerBattle: @ 80B072C - push {lr} - bl ScriptContext2_Enable - bl player_bitmagic - bl sub_808BCF4 - ldr r1, =gMain - ldr r0, =sub_80B0AF8 - str r0, [r1, 0x8] - ldr r1, =gBattleTypeFlags - movs r0, 0x80 - lsls r0, 3 - str r0, [r1] - bl sub_80B0EC8 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl task_add_01_battle_start - movs r0, 0x7 - bl IncrementGameStat - movs r0, 0x8 - bl IncrementGameStat - bl sub_80EECC8 - bl sub_80B1218 - pop {r0} - bx r0 - .pool - thumb_func_end BattleSetup_StartRoamerBattle - - thumb_func_start sub_80B077C -sub_80B077C: @ 80B077C - push {lr} - bl ScriptContext2_Enable - bl player_bitmagic - bl sub_808BCF4 - ldr r1, =gMain - ldr r0, =sub_80FC190 - str r0, [r1, 0x8] - ldr r1, =gBattleTypeFlags - movs r0, 0x80 - str r0, [r1] - bl sub_80B0EC8 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl task_add_01_battle_start - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B077C - - thumb_func_start sub_80B07B4 -sub_80B07B4: @ 80B07B4 - push {lr} - bl ScriptContext2_Enable - bl player_bitmagic - bl sub_808BCF4 - ldr r1, =gMain - ldr r0, =sub_80B0AF8 - str r0, [r1, 0x8] - ldr r1, =gBattleTypeFlags - movs r0, 0x80 - lsls r0, 13 - str r0, [r1] - bl sub_80B0EC8 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl task_add_01_battle_start - movs r0, 0x7 - bl IncrementGameStat - movs r0, 0x8 - bl IncrementGameStat - bl sub_80EECC8 - bl sub_80B1218 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B07B4 - - thumb_func_start task_add_01_battle_start_with_music_and_stats -task_add_01_battle_start_with_music_and_stats: @ 80B0804 - push {lr} - bl reads_trainer_data_byte1_byte0x18 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl task_add_01_battle_start - movs r0, 0x7 - bl IncrementGameStat - movs r0, 0x9 - bl IncrementGameStat - bl sub_80B1234 - pop {r0} - bx r0 - thumb_func_end task_add_01_battle_start_with_music_and_stats - - thumb_func_start sub_80B0828 -sub_80B0828: @ 80B0828 - push {lr} - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - beq _080B0846 - movs r0, 0xA - bl sub_80B100C - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl task_add_01_battle_start - b _080B0856 -_080B0846: - movs r0, 0xB - bl sub_80B100C - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl task_add_01_battle_start -_080B0856: - movs r0, 0x7 - bl IncrementGameStat - movs r0, 0x9 - bl IncrementGameStat - bl sub_80B1234 - pop {r0} - bx r0 - thumb_func_end sub_80B0828 - - thumb_func_start sub_80B086C -sub_80B086C: @ 80B086C - push {lr} - ldr r0, =gEnemyParty - movs r1, 0xC4 - lsls r1, 1 - movs r2, 0x5 - bl CreateMaleMon - bl ScriptContext2_Enable - ldr r1, =gMain - ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music - str r0, [r1, 0x8] - ldr r1, =gBattleTypeFlags - movs r0, 0x80 - lsls r0, 2 - str r0, [r1] - movs r0, 0x8 - movs r1, 0 - bl task_add_01_battle_start - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B086C - - thumb_func_start BattleSetup_StartScriptedWildBattle -BattleSetup_StartScriptedWildBattle: @ 80B08A8 - push {lr} - bl ScriptContext2_Enable - ldr r1, =gMain - ldr r0, =sub_80B0B6C - str r0, [r1, 0x8] - ldr r1, =gBattleTypeFlags - movs r0, 0 - str r0, [r1] - bl sub_80B0EC8 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl task_add_01_battle_start - movs r0, 0x7 - bl IncrementGameStat - movs r0, 0x8 - bl IncrementGameStat - bl sub_80EECC8 - bl sub_80B1218 - pop {r0} - bx r0 - .pool - thumb_func_end BattleSetup_StartScriptedWildBattle - - thumb_func_start sub_80B08EC -sub_80B08EC: @ 80B08EC - push {lr} - bl ScriptContext2_Enable - ldr r1, =gMain - ldr r0, =sub_80B0B6C - str r0, [r1, 0x8] - ldr r1, =gBattleTypeFlags - movs r0, 0x80 - lsls r0, 6 - str r0, [r1] - bl sub_80B0EC8 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0 - bl task_add_01_battle_start - movs r0, 0x7 - bl IncrementGameStat - movs r0, 0x8 - bl IncrementGameStat - bl sub_80EECC8 - bl sub_80B1218 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B08EC - - thumb_func_start sub_80B0934 -sub_80B0934: @ 80B0934 - push {r4,lr} - bl ScriptContext2_Enable - ldr r1, =gMain - ldr r0, =sub_80B0B6C - str r0, [r1, 0x8] - ldr r4, =gBattleTypeFlags - movs r0, 0x80 - lsls r0, 6 - str r0, [r4] - ldr r0, =gEnemyParty - movs r1, 0xB - movs r2, 0 - bl GetMonData - adds r1, r0, 0 - movs r0, 0xCA - lsls r0, 1 - cmp r1, r0 - beq _080B09B8 - cmp r1, r0 - bhi _080B0988 - cmp r1, 0x97 - beq _080B09F4 - cmp r1, 0x97 - bcc _080B099A - cmp r1, 0xFA - bhi _080B099A - cmp r1, 0xF9 - bcc _080B099A - ldr r1, =0x00000229 - b _080B09E6 - .pool -_080B0988: - movs r0, 0xCB - lsls r0, 1 - cmp r1, r0 - beq _080B09CE - cmp r1, r0 - bcc _080B099A - adds r0, 0x4 - cmp r1, r0 - beq _080B09E4 -_080B099A: - ldr r2, =gBattleTypeFlags - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 21 - orrs r0, r1 - str r0, [r2] - movs r1, 0xF0 - lsls r1, 1 - movs r0, 0x17 - bl task_add_01_battle_start - b _080B09FE - .pool -_080B09B8: - ldr r0, [r4] - movs r1, 0x80 - lsls r1, 22 - orrs r0, r1 - str r0, [r4] - movs r1, 0xF0 - lsls r1, 1 - movs r0, 0x16 - bl task_add_01_battle_start - b _080B09FE -_080B09CE: - ldr r0, [r4] - movs r1, 0x80 - lsls r1, 23 - orrs r0, r1 - str r0, [r4] - movs r1, 0xEB - lsls r1, 1 - movs r0, 0x18 - bl task_add_01_battle_start - b _080B09FE -_080B09E4: - ldr r1, =0x00000227 -_080B09E6: - movs r0, 0 - bl task_add_01_battle_start - b _080B09FE - .pool -_080B09F4: - movs r1, 0xEC - lsls r1, 1 - movs r0, 0xA - bl task_add_01_battle_start -_080B09FE: - movs r0, 0x7 - bl IncrementGameStat - movs r0, 0x8 - bl IncrementGameStat - bl sub_80EECC8 - bl sub_80B1218 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B0934 - - thumb_func_start sub_80B0A18 -sub_80B0A18: @ 80B0A18 - push {lr} - bl ScriptContext2_Enable - ldr r1, =gMain - ldr r0, =sub_80B0B6C - str r0, [r1, 0x8] - ldr r1, =gBattleTypeFlags - movs r0, 0xC0 - lsls r0, 6 - str r0, [r1] - ldr r0, =gGameVersion - ldrb r0, [r0] - cmp r0, 0x2 - bne _080B0A50 - movs r1, 0xF0 - lsls r1, 1 - movs r0, 0xB - bl task_add_01_battle_start - b _080B0A5A - .pool -_080B0A50: - movs r1, 0xF0 - lsls r1, 1 - movs r0, 0x6 - bl task_add_01_battle_start -_080B0A5A: - movs r0, 0x7 - bl IncrementGameStat - movs r0, 0x8 - bl IncrementGameStat - bl sub_80EECC8 - bl sub_80B1218 - pop {r0} - bx r0 - thumb_func_end sub_80B0A18 - - thumb_func_start sub_80B0A74 -sub_80B0A74: @ 80B0A74 - push {lr} - bl ScriptContext2_Enable - ldr r1, =gMain - ldr r0, =sub_80B0B6C - str r0, [r1, 0x8] - ldr r1, =gBattleTypeFlags - movs r0, 0xC0 - lsls r0, 7 - str r0, [r1] - ldr r0, =gEnemyParty - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r1, r0, 16 - adds r2, r1, 0 - movs r0, 0xC9 - lsls r0, 1 - cmp r1, r0 - beq _080B0ACC - cmp r1, r0 - bgt _080B0ABC - subs r0, 0x1 - cmp r1, r0 - beq _080B0AC8 - b _080B0AD4 - .pool -_080B0ABC: - ldr r0, =0x00000193 - cmp r2, r0 - beq _080B0AD0 - b _080B0AD4 - .pool -_080B0AC8: - movs r0, 0x15 - b _080B0AD6 -_080B0ACC: - movs r0, 0x13 - b _080B0AD6 -_080B0AD0: - movs r0, 0x14 - b _080B0AD6 -_080B0AD4: - movs r0, 0xA -_080B0AD6: - ldr r1, =0x000001df - bl task_add_01_battle_start - movs r0, 0x7 - bl IncrementGameStat - movs r0, 0x8 - bl IncrementGameStat - bl sub_80EECC8 - bl sub_80B1218 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B0A74 - - thumb_func_start sub_80B0AF8 -sub_80B0AF8: @ 80B0AF8 - push {lr} - sub sp, 0x4 - mov r1, sp - movs r0, 0 - strh r0, [r1] - movs r1, 0xA0 - lsls r1, 19 - ldr r2, =0x01000100 - mov r0, sp - bl CpuSet - movs r0, 0 - movs r1, 0x80 - bl ResetOamRange - ldr r0, =gBattleOutcome - ldrb r0, [r0] - bl battle_exit_is_player_defeat - cmp r0, 0x1 - bne _080B0B4C - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - bne _080B0B4C - bl InBattlePike - lsls r0, 24 - cmp r0, 0 - bne _080B0B4C - ldr r0, =c2_whiteout - bl SetMainCallback2 - b _080B0B58 - .pool -_080B0B4C: - ldr r0, =c2_exit_to_overworld_2_switch - bl SetMainCallback2 - ldr r1, =gFieldCallback - ldr r0, =sub_80AF6F0 - str r0, [r1] -_080B0B58: - add sp, 0x4 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B0AF8 - - thumb_func_start sub_80B0B6C -sub_80B0B6C: @ 80B0B6C - push {lr} - sub sp, 0x4 - mov r1, sp - movs r0, 0 - strh r0, [r1] - movs r1, 0xA0 - lsls r1, 19 - ldr r2, =0x01000100 - mov r0, sp - bl CpuSet - movs r0, 0 - movs r1, 0x80 - bl ResetOamRange - ldr r0, =gBattleOutcome - ldrb r0, [r0] - bl battle_exit_is_player_defeat - cmp r0, 0x1 - bne _080B0BC0 - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - beq _080B0BB4 - ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 - b _080B0BC6 - .pool -_080B0BB4: - ldr r0, =c2_whiteout - bl SetMainCallback2 - b _080B0BC6 - .pool -_080B0BC0: - ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 -_080B0BC6: - add sp, 0x4 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B0B6C - - thumb_func_start BattleSetup_GetTerrainId -BattleSetup_GetTerrainId: @ 80B0BD0 - push {r4,r5,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 16 - lsrs r5, r0, 16 - lsls r0, r5, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl MetatileBehavior_IsTallGrass - lsls r0, 24 - cmp r0, 0 - beq _080B0C06 - movs r0, 0 - b _080B0D1A -_080B0C06: - adds r0, r4, 0 - bl MetatileBehavior_IsLongGrass - lsls r0, 24 - cmp r0, 0 - beq _080B0C16 - movs r0, 0x1 - b _080B0D1A -_080B0C16: - adds r0, r4, 0 - bl MetatileBehavior_IsSandOrDeepSand - lsls r0, 24 - cmp r0, 0 - bne _080B0D18 - ldr r0, =gMapHeader - ldrb r0, [r0, 0x17] - subs r0, 0x1 - cmp r0, 0x8 - bhi _080B0C9C - lsls r0, 2 - ldr r1, =_080B0C40 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080B0C40: - .4byte _080B0C9C - .4byte _080B0C9C - .4byte _080B0C9C - .4byte _080B0C64 - .4byte _080B0C88 - .4byte _080B0C8C - .4byte _080B0C9C - .4byte _080B0C74 - .4byte _080B0C74 -_080B0C64: - lsls r0, r5, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl MetatileBehavior_IsMB_0B - lsls r0, 24 - cmp r0, 0 - beq _080B0C78 -_080B0C74: - movs r0, 0x8 - b _080B0D1A -_080B0C78: - adds r0, r4, 0 - bl MetatileBehavior_IsSurfableWaterOrUnderwater - lsls r0, 24 - cmp r0, 0 - bne _080B0CE0 - movs r0, 0x7 - b _080B0D1A -_080B0C88: - movs r0, 0x3 - b _080B0D1A -_080B0C8C: - lsls r0, r5, 24 - lsrs r0, 24 - bl MetatileBehavior_IsSurfableWaterOrUnderwater - lsls r0, 24 - cmp r0, 0 - bne _080B0CF2 - b _080B0D10 -_080B0C9C: - lsls r0, r5, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl MetatileBehavior_IsDeepOrOceanWater - lsls r0, 24 - cmp r0, 0 - bne _080B0CF2 - adds r0, r4, 0 - bl MetatileBehavior_IsSurfableWaterOrUnderwater - lsls r0, 24 - cmp r0, 0 - bne _080B0CE0 - adds r0, r4, 0 - bl MetatileBehavior_IsMountain - lsls r0, 24 - cmp r0, 0 - beq _080B0CC8 - movs r0, 0x6 - b _080B0D1A -_080B0CC8: - movs r0, 0x8 - bl TestPlayerAvatarFlags - lsls r0, 24 - cmp r0, 0 - beq _080B0CF6 - adds r0, r4, 0 - bl MetatileBehavior_GetBridgeSth - lsls r0, 24 - cmp r0, 0 - beq _080B0CE4 -_080B0CE0: - movs r0, 0x5 - b _080B0D1A -_080B0CE4: - adds r0, r4, 0 - bl MetatileBehavior_IsBridge - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B0CF6 -_080B0CF2: - movs r0, 0x4 - b _080B0D1A -_080B0CF6: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r1, [r0, 0x4] - movs r0, 0xE0 - lsls r0, 5 - cmp r1, r0 - beq _080B0D18 - bl sav1_get_weather_probably - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x8 - beq _080B0D18 -_080B0D10: - movs r0, 0x9 - b _080B0D1A - .pool -_080B0D18: - movs r0, 0x2 -_080B0D1A: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end BattleSetup_GetTerrainId - - thumb_func_start sub_80B0D24 -sub_80B0D24: @ 80B0D24 - push {r4,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 16 - lsrs r4, r0, 16 - bl sav1_get_flash_used_on_map - lsls r0, 24 - cmp r0, 0 - beq _080B0D54 - movs r0, 0x2 - b _080B0D7E -_080B0D54: - lsls r0, r4, 24 - lsrs r0, 24 - bl MetatileBehavior_IsSurfableWaterOrUnderwater - lsls r0, 24 - cmp r0, 0 - bne _080B0D7C - ldr r0, =gMapHeader - ldrb r0, [r0, 0x17] - cmp r0, 0x4 - beq _080B0D78 - cmp r0, 0x5 - beq _080B0D7C - movs r0, 0 - b _080B0D7E - .pool -_080B0D78: - movs r0, 0x1 - b _080B0D7E -_080B0D7C: - movs r0, 0x3 -_080B0D7E: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80B0D24 - - thumb_func_start sub_80B0D88 -sub_80B0D88: @ 80B0D88 - push {r4-r7,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r7, 0 - movs r6, 0 -_080B0D92: - movs r0, 0x64 - adds r1, r6, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - adds r1, r0, 0 - movs r0, 0xCE - lsls r0, 1 - cmp r1, r0 - beq _080B0DD6 - cmp r1, 0 - beq _080B0DD6 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _080B0DD6 - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - adds r0, r7, r0 - lsls r0, 24 - lsrs r7, r0, 24 - subs r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - beq _080B0DDC -_080B0DD6: - adds r6, 0x1 - cmp r6, 0x5 - ble _080B0D92 -_080B0DDC: - adds r0, r7, 0 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B0D88 - - thumb_func_start reads_trainer_data_byte0 -reads_trainer_data_byte0: @ 80B0DE8 - push {r4,r5,lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 24 - lsrs r4, r1, 24 - ldr r5, =gTrainers - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r2, r1, r5 - adds r0, r2, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, r4 - bcs _080B0E08 - adds r4, r0, 0 -_080B0E08: - movs r3, 0 - ldrb r0, [r2] - cmp r0, 0x1 - beq _080B0E50 - cmp r0, 0x1 - bgt _080B0E20 - cmp r0, 0 - beq _080B0E2A - b _080B0EC0 - .pool -_080B0E20: - cmp r0, 0x2 - beq _080B0E76 - cmp r0, 0x3 - beq _080B0E9C - b _080B0EC0 -_080B0E2A: - adds r0, r5, 0 - adds r0, 0x24 - adds r0, r1, r0 - ldr r1, [r0] - movs r2, 0 - cmp r3, r4 - bcs _080B0EC0 -_080B0E38: - lsls r0, r2, 3 - adds r0, r1 - ldrb r0, [r0, 0x2] - adds r0, r3, r0 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r4 - bcc _080B0E38 - b _080B0EC0 -_080B0E50: - adds r0, r5, 0 - adds r0, 0x24 - adds r0, r1, r0 - ldr r1, [r0] - movs r2, 0 - cmp r3, r4 - bcs _080B0EC0 -_080B0E5E: - lsls r0, r2, 4 - adds r0, r1 - ldrb r0, [r0, 0x2] - adds r0, r3, r0 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r4 - bcc _080B0E5E - b _080B0EC0 -_080B0E76: - adds r0, r5, 0 - adds r0, 0x24 - adds r0, r1, r0 - ldr r1, [r0] - movs r2, 0 - cmp r3, r4 - bcs _080B0EC0 -_080B0E84: - lsls r0, r2, 3 - adds r0, r1 - ldrb r0, [r0, 0x2] - adds r0, r3, r0 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r4 - bcc _080B0E84 - b _080B0EC0 -_080B0E9C: - adds r0, r5, 0 - adds r0, 0x24 - adds r0, r1, r0 - ldr r1, [r0] - movs r2, 0 - cmp r3, r4 - bcs _080B0EC0 -_080B0EAA: - lsls r0, r2, 4 - adds r0, r1 - ldrb r0, [r0, 0x2] - adds r0, r3, r0 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r4 - bcc _080B0EAA -_080B0EC0: - adds r0, r3, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end reads_trainer_data_byte0 - - thumb_func_start sub_80B0EC8 -sub_80B0EC8: @ 80B0EC8 - push {r4-r6,lr} - bl sub_80B0D24 - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - ldr r0, =gEnemyParty - movs r1, 0x38 - bl GetMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - bl sub_80B0D88 - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bcs _080B0F10 - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - beq _080B0F04 - movs r0, 0 - b _080B0F2E - .pool -_080B0F04: - ldr r0, =gUnknown_0854FE88 - lsls r1, r5, 1 - b _080B0F20 - .pool -_080B0F10: - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - bne _080B0F2C - ldr r0, =gUnknown_0854FE88 - lsls r1, r6, 1 - adds r0, 0x1 -_080B0F20: - adds r1, r0 - ldrb r0, [r1] - b _080B0F2E - .pool -_080B0F2C: - movs r0, 0xA -_080B0F2E: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80B0EC8 - - thumb_func_start reads_trainer_data_byte1_byte0x18 -reads_trainer_data_byte1_byte0x18: @ 80B0F34 - push {r4-r6,lr} - ldr r4, =gTrainerBattleOpponent_A - ldrh r1, [r4] - movs r0, 0x80 - lsls r0, 3 - cmp r1, r0 - beq _080B0F98 - ldr r1, =gTrainers - ldrh r2, [r4] - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r0, 0x1] - cmp r1, 0x1F - bne _080B0F94 - adds r1, r2, 0 - ldr r0, =0x00000105 - cmp r1, r0 - bne _080B0F6C - movs r0, 0xC - b _080B1000 - .pool -_080B0F6C: - movs r0, 0x83 - lsls r0, 1 - cmp r1, r0 - bne _080B0F78 - movs r0, 0xD - b _080B1000 -_080B0F78: - ldr r0, =0x00000107 - cmp r1, r0 - bne _080B0F88 - movs r0, 0xE - b _080B1000 - .pool -_080B0F88: - movs r0, 0x84 - lsls r0, 1 - cmp r1, r0 - bne _080B0F98 - movs r0, 0xF - b _080B1000 -_080B0F94: - cmp r1, 0x26 - bne _080B0F9C -_080B0F98: - movs r0, 0x10 - b _080B1000 -_080B0F9C: - cmp r1, 0x9 - beq _080B0FA8 - cmp r1, 0x35 - beq _080B0FA8 - cmp r1, 0x31 - bne _080B0FAC -_080B0FA8: - movs r0, 0x12 - b _080B1000 -_080B0FAC: - cmp r1, 0x3 - beq _080B0FB8 - cmp r1, 0xD - beq _080B0FB8 - cmp r1, 0xB - bne _080B0FBC -_080B0FB8: - movs r0, 0x11 - b _080B1000 -_080B0FBC: - ldrb r0, [r0, 0x18] - movs r5, 0x1 - cmp r0, 0x1 - bne _080B0FC6 - movs r5, 0x2 -_080B0FC6: - bl sub_80B0D24 - lsls r0, 24 - lsrs r6, r0, 24 - ldrh r0, [r4] - adds r1, r5, 0 - bl reads_trainer_data_byte0 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - bl sub_80B0D88 - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bcc _080B0FF8 - ldr r0, =gUnknown_0854FE90 - lsls r1, r6, 1 - adds r0, 0x1 - b _080B0FFC - .pool -_080B0FF8: - ldr r0, =gUnknown_0854FE90 - lsls r1, r6, 1 -_080B0FFC: - adds r1, r0 - ldrb r0, [r1] -_080B1000: - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end reads_trainer_data_byte1_byte0x18 - - thumb_func_start sub_80B100C -sub_80B100C: @ 80B100C - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, =gEnemyParty - movs r1, 0x38 - bl GetMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - bl sub_80B0D88 - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bcs _080B1090 - cmp r5, 0xA - beq _080B1048 - cmp r5, 0xA - bgt _080B1040 - cmp r5, 0x3 - beq _080B105C - b _080B106C - .pool -_080B1040: - cmp r5, 0xD - bgt _080B106C - movs r0, 0x4 - b _080B1120 -_080B1048: - ldr r4, =gUnknown_0854FEA4 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - b _080B1114 - .pool -_080B105C: - ldr r4, =gUnknown_0854FEA7 - bl Random - ands r5, r0 - lsls r0, r5, 16 - b _080B111A - .pool -_080B106C: - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x3 - beq _080B10EC - ldr r4, =gUnknown_0854FE98 - bl Random - lsls r0, 16 - lsrs r0, 16 - b _080B1112 - .pool -_080B1090: - cmp r5, 0xA - beq _080B10A6 - cmp r5, 0xA - bgt _080B109E - cmp r5, 0x3 - beq _080B10B8 - b _080B10C8 -_080B109E: - cmp r5, 0xD - bgt _080B10C8 - movs r0, 0x3 - b _080B1120 -_080B10A6: - ldr r4, =gUnknown_0854FEA4 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - b _080B1114 - .pool -_080B10B8: - ldr r4, =gUnknown_0854FEA7 - bl Random - ands r5, r0 - lsls r0, r5, 16 - b _080B111A - .pool -_080B10C8: - ldr r0, =0x000040ce - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x3 - beq _080B10EC - ldr r4, =gUnknown_0854FE98 - bl Random - lsls r0, 16 - lsrs r0, 16 - b _080B1112 - .pool -_080B10EC: - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r2, =0x00000cb2 - adds r0, r1, r2 - ldrh r0, [r0] - lsls r2, r0, 2 - ldr r3, =0x00000cb4 - adds r1, r3 - adds r2, r1, r2 - lsls r0, 1 - adds r0, 0x1 - lsls r0, 1 - adds r1, r0 - ldrh r0, [r1] - ldrh r2, [r2] - adds r0, r2 - lsls r0, 16 - lsrs r0, 16 - ldr r4, =gUnknown_0854FE98 -_080B1112: - movs r1, 0xC -_080B1114: - bl __umodsi3 - lsls r0, 16 -_080B111A: - lsrs r0, 16 - adds r0, r4 - ldrb r0, [r0] -_080B1120: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B100C - - thumb_func_start sub_80B1138 -sub_80B1138: @ 80B1138 - push {lr} - ldr r0, =CB2_ChooseStarter - bl SetMainCallback2 - ldr r1, =gMain - ldr r0, =sub_80B1158 - str r0, [r1, 0x8] - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B1138 - - thumb_func_start sub_80B1158 -sub_80B1158: @ 80B1158 - push {lr} - sub sp, 0x8 - ldr r0, =0x00004023 - bl GetVarPointer - ldr r2, =gSpecialVar_Result - ldrh r1, [r2] - strh r1, [r0] - ldrh r0, [r2] - bl GetStarterPokemon - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - str r1, [sp] - str r1, [sp, 0x4] - movs r1, 0x5 - movs r2, 0 - movs r3, 0 - bl ScriptGiveMon - bl ResetTasks - bl PlayBattleBGM - ldr r0, =sub_80B11A8 - bl SetMainCallback2 - movs r0, 0 - bl sub_8145F10 - add sp, 0x8 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B1158 - - thumb_func_start sub_80B11A8 -sub_80B11A8: @ 80B11A8 - push {lr} - bl UpdatePaletteFade - bl RunTasks - bl IsBattleTransitionDone - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B11F0 - ldr r1, =gBattleTypeFlags - movs r0, 0x10 - str r0, [r1] - ldr r1, =gMain - ldr r0, =sub_80B1204 - str r0, [r1, 0x8] - bl FreeAllWindowBuffers - ldr r0, =CB2_InitBattle - bl SetMainCallback2 - bl prev_quest_postbuffer_cursor_backup_reset - bl overworld_poison_timer_set - movs r0, 0x7 - bl IncrementGameStat - movs r0, 0x8 - bl IncrementGameStat - bl sub_80EECC8 - bl sub_80B1218 -_080B11F0: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B11A8 - - thumb_func_start sub_80B1204 -sub_80B1204: @ 80B1204 - push {lr} - bl sav1_reset_battle_music_maybe - ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B1204 - - thumb_func_start sub_80B1218 -sub_80B1218: @ 80B1218 - push {lr} - movs r0, 0x8 - bl GetGameStat - movs r1, 0x3C - bl __umodsi3 - cmp r0, 0 - bne _080B122E - bl sub_81DA57C -_080B122E: - pop {r0} - bx r0 - thumb_func_end sub_80B1218 - - thumb_func_start sub_80B1234 -sub_80B1234: @ 80B1234 - push {lr} - movs r0, 0x9 - bl GetGameStat - movs r1, 0x14 - bl __umodsi3 - cmp r0, 0 - bne _080B124A - bl sub_81DA57C -_080B124A: - pop {r0} - bx r0 - thumb_func_end sub_80B1234 - - thumb_func_start TrainerBattleLoadArg32 -@ u32 TrainerBattleLoadArg32(u8 *arg) -TrainerBattleLoadArg32: @ 80B1250 - adds r2, r0, 0 - ldrb r0, [r2] - ldrb r1, [r2, 0x1] - lsls r1, 8 - orrs r0, r1 - ldrb r1, [r2, 0x2] - lsls r1, 16 - orrs r0, r1 - ldrb r1, [r2, 0x3] - lsls r1, 24 - orrs r0, r1 - bx lr - thumb_func_end TrainerBattleLoadArg32 - - thumb_func_start TrainerBattleLoadArg16 -@ u16 TrainerBattleLoadArg16(u8 *arg) -TrainerBattleLoadArg16: @ 80B1268 - adds r1, r0, 0 - ldrb r0, [r1] - ldrb r1, [r1, 0x1] - lsls r1, 8 - orrs r0, r1 - bx lr - thumb_func_end TrainerBattleLoadArg16 - - thumb_func_start TrainerBattleLoadArg8 -@ u8 TrainerBattleLoadArg8(u8 *arg) -TrainerBattleLoadArg8: @ 80B1274 - ldrb r0, [r0] - bx lr - thumb_func_end TrainerBattleLoadArg8 - - thumb_func_start trainerflag_opponent -trainerflag_opponent: @ 80B1278 - ldr r1, =gTrainerBattleOpponent_A - movs r2, 0xA0 - lsls r2, 3 - adds r0, r2, 0 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bx lr - .pool - thumb_func_end trainerflag_opponent - - thumb_func_start sub_80B1290 -sub_80B1290: @ 80B1290 - ldr r1, =gTrainerBattleOpponent_B - movs r2, 0xA0 - lsls r2, 3 - adds r0, r2, 0 - ldrh r1, [r1] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - bx lr - .pool - thumb_func_end sub_80B1290 - - thumb_func_start battle_exit_is_player_defeat -battle_exit_is_player_defeat: @ 80B12A8 - push {lr} - subs r0, 0x1 - cmp r0, 0x6 - bhi _080B12E0 - lsls r0, 2 - ldr r1, =_080B12C0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080B12C0: - .4byte _080B12E0 - .4byte _080B12DC - .4byte _080B12DC - .4byte _080B12E0 - .4byte _080B12E0 - .4byte _080B12E0 - .4byte _080B12E0 -_080B12DC: - movs r0, 0x1 - b _080B12E2 -_080B12E0: - movs r0, 0 -_080B12E2: - pop {r1} - bx r1 - thumb_func_end battle_exit_is_player_defeat - - thumb_func_start ResetTrainerOpponentIds -ResetTrainerOpponentIds: @ 80B12E8 - ldr r0, =gTrainerBattleOpponent_A - movs r1, 0 - strh r1, [r0] - ldr r0, =gTrainerBattleOpponent_B - strh r1, [r0] - bx lr - .pool - thumb_func_end ResetTrainerOpponentIds - - thumb_func_start InitTrainerBattleVariables -@ void InitTrainerBattleVariables() -InitTrainerBattleVariables: @ 80B12FC - push {lr} - ldr r0, =gUnknown_02038BC8 - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_02038BFC - ldrb r1, [r0] - cmp r1, 0 - bne _080B132C - ldr r0, =gUnknown_02038BD4 - str r1, [r0] - ldr r0, =gUnknown_02038BDC - str r1, [r0] - ldr r0, =gUnknown_02038BF0 - b _080B1338 - .pool -_080B132C: - ldr r0, =gUnknown_02038BD8 - movs r1, 0 - str r1, [r0] - ldr r0, =gUnknown_02038BE0 - str r1, [r0] - ldr r0, =gUnknown_02038BF4 -_080B1338: - str r1, [r0] - ldr r1, =gUnknown_02038BD0 - movs r0, 0 - strh r0, [r1] - ldr r0, =gUnknown_02038BE4 - movs r1, 0 - str r1, [r0] - ldr r0, =gUnknown_02038BE8 - str r1, [r0] - ldr r0, =gUnknown_02038BEC - str r1, [r0] - pop {r0} - bx r0 - .pool - thumb_func_end InitTrainerBattleVariables - - thumb_func_start TrainerBattleLoadArgs -@ void TrainerBattleLoadArgs(struct TrainerBattleArgSpec *argSpecs, u8 *args) -TrainerBattleLoadArgs: @ 80B1370 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 -_080B1376: - ldrb r0, [r4, 0x4] - cmp r0, 0x6 - bhi _080B13E8 - lsls r0, 2 - ldr r1, =_080B138C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080B138C: - .4byte _080B13A8 - .4byte _080B13B6 - .4byte _080B13C4 - .4byte _080B13D2 - .4byte _080B13DA - .4byte _080B13E2 - .4byte _080B13EC -_080B13A8: - adds r0, r5, 0 - bl TrainerBattleLoadArg8 - ldr r1, [r4] - strb r0, [r1] - adds r5, 0x1 - b _080B13E8 -_080B13B6: - adds r0, r5, 0 - bl TrainerBattleLoadArg16 - ldr r1, [r4] - strh r0, [r1] - adds r5, 0x2 - b _080B13E8 -_080B13C4: - adds r0, r5, 0 - bl TrainerBattleLoadArg32 - ldr r1, [r4] - str r0, [r1] - adds r5, 0x4 - b _080B13E8 -_080B13D2: - ldr r1, [r4] - movs r0, 0 - strb r0, [r1] - b _080B13E8 -_080B13DA: - ldr r1, [r4] - movs r0, 0 - strh r0, [r1] - b _080B13E8 -_080B13E2: - ldr r1, [r4] - movs r0, 0 - str r0, [r1] -_080B13E8: - adds r4, 0x8 - b _080B1376 -_080B13EC: - ldr r0, [r4] - str r5, [r0] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end TrainerBattleLoadArgs - - thumb_func_start battle_80801F0 -battle_80801F0: @ 80B13F8 - push {lr} - ldr r0, =gUnknown_02038BD0 - ldrh r1, [r0] - cmp r1, 0 - beq _080B141A - ldr r0, =gSpecialVar_LastTalked - strh r1, [r0] - lsls r0, r1, 24 - lsrs r0, 24 - ldr r1, =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl GetFieldObjectIdByLocalIdAndMap - ldr r1, =gSelectedMapObject - strb r0, [r1] -_080B141A: - pop {r0} - bx r0 - .pool - thumb_func_end battle_80801F0 - - thumb_func_start BattleSetup_ConfigureTrainerBattle -@ u8 *BattleSetup_ConfigureTrainerBattle(u8 *args) -BattleSetup_ConfigureTrainerBattle: @ 80B1430 - push {r4,r5,lr} - adds r5, r0, 0 - bl InitTrainerBattleVariables - ldr r4, =gUnknown_02038BC8 - adds r0, r5, 0 - bl TrainerBattleLoadArg8 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - ldrh r0, [r4] - subs r0, 0x1 - cmp r0, 0xB - bls _080B1450 - b _080B15F4 -_080B1450: - lsls r0, 2 - ldr r1, =_080B1464 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080B1464: - .4byte _080B14CC - .4byte _080B14B0 - .4byte _080B1494 - .4byte _080B14A8 - .4byte _080B1514 - .4byte _080B14D4 - .4byte _080B14EC - .4byte _080B14D4 - .4byte _080B153C - .4byte _080B1590 - .4byte _080B1598 - .4byte _080B15A8 -_080B1494: - ldr r0, =gUnknown_0854FF84 - adds r1, r5, 0 - bl TrainerBattleLoadArgs - ldr r0, =EventScript_2713C2 - b _080B161E - .pool -_080B14A8: - ldr r0, =gUnknown_0854FF3C - b _080B14D6 - .pool -_080B14B0: - ldr r0, =gUnknown_02038BFC - ldrb r0, [r0] - cmp r0, 0 - bne _080B14C4 - ldr r0, =gUnknown_0854FEF4 - b _080B15FE - .pool -_080B14C4: - ldr r0, =gUnknown_0855005C - b _080B1616 - .pool -_080B14CC: - ldr r0, =gUnknown_0854FEF4 - b _080B15FE - .pool -_080B14D4: - ldr r0, =gUnknown_0854FFCC -_080B14D6: - adds r1, r5, 0 - bl TrainerBattleLoadArgs - bl battle_80801F0 - ldr r0, =EventScript_27138A - b _080B161E - .pool -_080B14EC: - ldr r0, =gUnknown_0854FF3C - adds r1, r5, 0 - bl TrainerBattleLoadArgs - bl battle_80801F0 - ldr r4, =gTrainerBattleOpponent_A - ldrh r0, [r4] - bl sub_80B2234 - strh r0, [r4] - ldr r0, =EventScript_2713F8 - b _080B161E - .pool -_080B1514: - ldr r0, =gUnknown_0854FEAC - adds r1, r5, 0 - bl TrainerBattleLoadArgs - bl battle_80801F0 - ldr r4, =gTrainerBattleOpponent_A - ldrh r0, [r4] - bl sub_80B2234 - strh r0, [r4] - ldr r0, =EventScript_2713D1 - b _080B161E - .pool -_080B153C: - ldr r0, =gUnknown_02038BFC - ldrb r0, [r0] - cmp r0, 0 - bne _080B156C - ldr r0, =gUnknown_0854FEAC - adds r1, r5, 0 - bl TrainerBattleLoadArgs - bl battle_80801F0 - ldr r0, =gSpecialVar_LastTalked - ldrb r0, [r0] - bl sub_81A9AA8 - ldr r1, =gTrainerBattleOpponent_A - b _080B157E - .pool -_080B156C: - ldr r0, =gUnknown_08550014 - adds r1, r5, 0 - bl TrainerBattleLoadArgs - ldr r0, =gSpecialVar_LastTalked - ldrb r0, [r0] - bl sub_81A9AA8 -_080B157C: - ldr r1, =gTrainerBattleOpponent_B -_080B157E: - strh r0, [r1] - b _080B161C - .pool -_080B1590: - ldr r0, =gUnknown_0854FEAC - b _080B159A - .pool -_080B1598: - ldr r0, =gUnknown_08550014 -_080B159A: - adds r1, r5, 0 - bl TrainerBattleLoadArgs - movs r0, 0 - b _080B161E - .pool -_080B15A8: - ldr r0, =gUnknown_02038BFC - ldrb r0, [r0] - cmp r0, 0 - bne _080B15D8 - ldr r0, =gUnknown_0854FEAC - adds r1, r5, 0 - bl TrainerBattleLoadArgs - bl battle_80801F0 - ldr r0, =gSpecialVar_LastTalked - ldrb r0, [r0] - bl battle_init - ldr r1, =gTrainerBattleOpponent_A - b _080B157E - .pool -_080B15D8: - ldr r0, =gUnknown_08550014 - adds r1, r5, 0 - bl TrainerBattleLoadArgs - ldr r0, =gSpecialVar_LastTalked - ldrb r0, [r0] - bl battle_init - b _080B157C - .pool -_080B15F4: - ldr r0, =gUnknown_02038BFC - ldrb r0, [r0] - cmp r0, 0 - bne _080B1614 - ldr r0, =gUnknown_0854FEAC -_080B15FE: - adds r1, r5, 0 - bl TrainerBattleLoadArgs - bl battle_80801F0 - b _080B161C - .pool -_080B1614: - ldr r0, =gUnknown_08550014 -_080B1616: - adds r1, r5, 0 - bl TrainerBattleLoadArgs -_080B161C: - ldr r0, =EventScript_271362 -_080B161E: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end BattleSetup_ConfigureTrainerBattle - - thumb_func_start SingleTrainerWantsBattle -@ void SingleTrainerWantsBattle(u8 trainerFieldObjectId, u8 *trainerScript) -SingleTrainerWantsBattle: @ 80B162C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gSelectedMapObject - strb r0, [r2] - ldr r4, =gSpecialVar_LastTalked - ldr r3, =gMapObjects - lsls r2, r0, 3 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldrb r0, [r2, 0x8] - strh r0, [r4] - adds r1, 0x1 - adds r0, r1, 0 - bl BattleSetup_ConfigureTrainerBattle - ldr r0, =EventScript_271354 - bl ScriptContext1_SetupScript - bl ScriptContext2_Enable - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end SingleTrainerWantsBattle - - thumb_func_start TwoTrainersWantBattle -@ void TwoTrainersWantBattle(u8 trainerFieldObjectId, u8 *trainerScript) -TwoTrainersWantBattle: @ 80B1670 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gSelectedMapObject - strb r0, [r2] - ldr r4, =gSpecialVar_LastTalked - ldr r3, =gMapObjects - lsls r2, r0, 3 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldrb r0, [r2, 0x8] - strh r0, [r4] - adds r1, 0x1 - adds r0, r1, 0 - bl BattleSetup_ConfigureTrainerBattle - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end TwoTrainersWantBattle - - thumb_func_start TwoTrainersWantBattleExecuteScript -@ void TwoTrainersWantBattleExecuteScript() -TwoTrainersWantBattleExecuteScript: @ 80B16A4 - push {lr} - ldr r0, =EventScript_271354 - bl ScriptContext1_SetupScript - bl ScriptContext2_Enable - pop {r0} - bx r0 - .pool - thumb_func_end TwoTrainersWantBattleExecuteScript - - thumb_func_start GetTrainerFlagFromScriptPointer -@ u8 GetTrainerFlagFromScriptPointer(u8 *scriptPointer) -GetTrainerFlagFromScriptPointer: @ 80B16B8 - push {lr} - adds r0, 0x2 - bl TrainerBattleLoadArg16 - lsls r0, 16 - movs r1, 0xA0 - lsls r1, 19 - adds r0, r1 - lsrs r0, 16 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end GetTrainerFlagFromScriptPointer - - thumb_func_start sub_80B16D8 -sub_80B16D8: @ 80B16D8 - push {r4,lr} - ldr r0, =gSelectedMapObject - ldrb r0, [r0] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, =gMapObjects - adds r4, r0 - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl npc_running_behaviour_by_direction - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl npc_set_running_behaviour_etc - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B16D8 - - thumb_func_start sub_80B170C -sub_80B170C: @ 80B170C - ldr r0, =gUnknown_02038BC8 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end sub_80B170C - - thumb_func_start check_trainer_flag -@ pokescrcmd -check_trainer_flag: @ 80B1718 - push {lr} - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - beq _080B1734 - ldr r0, =gSelectedMapObject - ldrb r0, [r0] - bl GetBattlePyramidTrainerFlag - b _080B1752 - .pool -_080B1734: - bl InTrainerHill - cmp r0, 0 - bne _080B174A - bl trainerflag_opponent - lsls r0, 16 - lsrs r0, 16 - bl FlagGet - b _080B1752 -_080B174A: - ldr r0, =gSelectedMapObject - ldrb r0, [r0] - bl GetTrainerHillTrainerFlag -_080B1752: - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end check_trainer_flag - - thumb_func_start rom_npc_set_flag_for_script_id -rom_npc_set_flag_for_script_id: @ 80B1760 - push {lr} - ldr r0, =gTrainerBattleOpponent_B - ldrh r0, [r0] - cmp r0, 0 - beq _080B1776 - bl sub_80B1290 - lsls r0, 16 - lsrs r0, 16 - bl FlagSet -_080B1776: - bl trainerflag_opponent - lsls r0, 16 - lsrs r0, 16 - bl FlagSet - pop {r0} - bx r0 - .pool - thumb_func_end rom_npc_set_flag_for_script_id - - thumb_func_start sub_80B178C -sub_80B178C: @ 80B178C - push {lr} - bl trainerflag_opponent - lsls r0, 16 - lsrs r0, 16 - bl FlagSet - pop {r0} - bx r0 - thumb_func_end sub_80B178C - - thumb_func_start HasTrainerAlreadyBeenFought -HasTrainerAlreadyBeenFought: @ 80B17A0 - push {lr} - lsls r0, 16 - movs r1, 0xA0 - lsls r1, 19 - adds r0, r1 - lsrs r0, 16 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end HasTrainerAlreadyBeenFought - - thumb_func_start trainer_flag_set -trainer_flag_set: @ 80B17B8 - push {lr} - lsls r0, 16 - movs r1, 0xA0 - lsls r1, 19 - adds r0, r1 - lsrs r0, 16 - bl FlagSet - pop {r0} - bx r0 - thumb_func_end trainer_flag_set - - thumb_func_start trainer_flag_clear -trainer_flag_clear: @ 80B17CC - push {lr} - lsls r0, 16 - movs r1, 0xA0 - lsls r1, 19 - adds r0, r1 - lsrs r0, 16 - bl FlagClear - pop {r0} - bx r0 - thumb_func_end trainer_flag_clear - - thumb_func_start BattleSetup_StartTrainerBattle -BattleSetup_StartTrainerBattle: @ 80B17E0 - push {r4,lr} - ldr r0, =gUnknown_030060A8 - ldrb r0, [r0] - cmp r0, 0x2 - bne _080B17FC - ldr r1, =gBattleTypeFlags - ldr r0, =0x00008009 - b _080B1800 - .pool -_080B17FC: - ldr r1, =gBattleTypeFlags - movs r0, 0x8 -_080B1800: - str r0, [r1] - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - beq _080B1884 - ldr r0, =0x0000400e - movs r1, 0 - bl VarSet - ldr r2, =gBattleTypeFlags - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 14 - orrs r0, r1 - str r0, [r2] - ldr r0, =gUnknown_030060A8 - ldrb r0, [r0] - cmp r0, 0x2 - bne _080B1864 - movs r0, 0x1 - bl sub_816306C - ldr r4, =gEnemyParty + 100 - adds r0, r4, 0 - bl ZeroMonData - adds r0, r4, 0 - adds r0, 0x64 - bl ZeroMonData - movs r1, 0x96 - lsls r1, 1 - adds r0, r4, r1 - bl ZeroMonData - movs r1, 0xC8 - lsls r1, 1 - adds r0, r4, r1 - bl ZeroMonData - b _080B187A - .pool -_080B1864: - movs r0, 0x1 - bl sub_8163048 - ldr r4, =gEnemyParty + 100 - adds r0, r4, 0 - bl ZeroMonData - adds r4, 0x64 - adds r0, r4, 0 - bl ZeroMonData -_080B187A: - bl sub_81A9B04 - b _080B18B8 - .pool -_080B1884: - bl sub_81D5C18 - lsls r0, 24 - cmp r0, 0 - beq _080B18B8 - ldr r2, =gBattleTypeFlags - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 19 - orrs r0, r1 - str r0, [r2] - ldr r0, =gUnknown_030060A8 - ldrb r0, [r0] - cmp r0, 0x2 - bne _080B18B0 - bl sub_81D639C - b _080B18B4 - .pool -_080B18B0: - bl sub_81D6384 -_080B18B4: - bl sub_81D61E8 -_080B18B8: - ldr r1, =gUnknown_02038BF9 - ldr r2, =gUnknown_030060A8 - ldrb r0, [r2] - strb r0, [r1] - movs r1, 0 - strb r1, [r2] - ldr r0, =gUnknown_02038BF8 - strb r1, [r0] - ldr r1, =gUnknown_03006080 - movs r0, 0 - strh r0, [r1] - ldr r1, =gMain - ldr r0, =sub_80B1918 - str r0, [r1, 0x8] - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - bne _080B18E8 - bl sub_81D5C18 - lsls r0, 24 - cmp r0, 0 - beq _080B1908 -_080B18E8: - bl sub_80B0828 - b _080B190C - .pool -_080B1908: - bl task_add_01_battle_start_with_music_and_stats -_080B190C: - bl ScriptContext1_Stop - pop {r4} - pop {r0} - bx r0 - thumb_func_end BattleSetup_StartTrainerBattle - - thumb_func_start sub_80B1918 -sub_80B1918: @ 80B1918 - push {lr} - ldr r0, =gTrainerBattleOpponent_A - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 3 - cmp r1, r0 - beq _080B1946 - ldr r0, =gBattleOutcome - ldrb r0, [r0] - bl battle_exit_is_player_defeat - cmp r0, 0x1 - bne _080B1968 - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - bne _080B1946 - bl sub_81D5C18 - lsls r0, 24 - cmp r0, 0 - beq _080B195C -_080B1946: - ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 - b _080B198A - .pool -_080B195C: - ldr r0, =c2_whiteout - bl SetMainCallback2 - b _080B198A - .pool -_080B1968: - ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - bne _080B198A - bl sub_81D5C18 - lsls r0, 24 - cmp r0, 0 - bne _080B198A - bl sub_80B20BC - bl rom_npc_set_flag_for_script_id -_080B198A: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B1918 - - thumb_func_start sub_80B1994 -sub_80B1994: @ 80B1994 - push {lr} - ldr r0, =gTrainerBattleOpponent_A - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 3 - cmp r1, r0 - bne _080B19B4 - ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 - b _080B19E2 - .pool -_080B19B4: - ldr r0, =gBattleOutcome - ldrb r0, [r0] - bl battle_exit_is_player_defeat - cmp r0, 0x1 - bne _080B19D0 - ldr r0, =c2_whiteout - bl SetMainCallback2 - b _080B19E2 - .pool -_080B19D0: - ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 - bl sub_80B20BC - bl rom_npc_set_flag_for_script_id - bl sub_80B22BC -_080B19E2: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B1994 - - thumb_func_start sub_80B19EC -sub_80B19EC: @ 80B19EC - push {lr} - ldr r1, =gBattleTypeFlags - movs r0, 0x8 - str r0, [r1] - ldr r1, =gMain - ldr r0, =sub_80B1994 - str r0, [r1, 0x8] - bl task_add_01_battle_start_with_music_and_stats - bl ScriptContext1_Stop - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B19EC - - thumb_func_start sub_80B1A14 -sub_80B1A14: @ 80B1A14 - push {lr} - bl InBattlePyramid - lsls r0, 24 - cmp r0, 0 - beq _080B1A7C - ldr r0, =gUnknown_030060A8 - ldrb r0, [r0] - cmp r0, 0x1 - bhi _080B1A44 - ldr r0, =gSpecialVar_LastTalked - ldrb r0, [r0] - bl sub_81A9AA8 - lsls r0, 16 - lsrs r0, 16 - bl sub_81A9EDC - b _080B1AD8 - .pool -_080B1A44: - ldr r3, =gMapObjects - ldr r2, =gUnknown_03006090 - ldr r0, =gUnknown_02038BFC - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x8] - bl sub_81A9AA8 - lsls r0, 16 - lsrs r0, 16 - bl sub_81A9EDC - b _080B1AD8 - .pool -_080B1A7C: - bl sub_81D5C18 - lsls r0, 24 - cmp r0, 0 - beq _080B1AEC - ldr r0, =gUnknown_030060A8 - ldrb r0, [r0] - cmp r0, 0x1 - bhi _080B1AAC - ldr r0, =gSpecialVar_LastTalked - ldrb r0, [r0] - bl battle_init - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x2 - bl sub_81D572C - b _080B1AD8 - .pool -_080B1AAC: - ldr r3, =gMapObjects - ldr r2, =gUnknown_03006090 - ldr r0, =gUnknown_02038BFC - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x8] - bl battle_init - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x2 - bl sub_81D572C -_080B1AD8: - bl sub_80982B8 - b _080B1AF4 - .pool -_080B1AEC: - bl sub_80B1C7C - bl ShowFieldMessage -_080B1AF4: - pop {r0} - bx r0 - thumb_func_end sub_80B1A14 - - thumb_func_start BattleSetup_GetScriptAddrAfterBattle -BattleSetup_GetScriptAddrAfterBattle: @ 80B1AF8 - push {lr} - ldr r0, =gUnknown_02038BEC - ldr r0, [r0] - cmp r0, 0 - bne _080B1B04 - ldr r0, =EventScript_2C8436 -_080B1B04: - pop {r1} - bx r1 - .pool - thumb_func_end BattleSetup_GetScriptAddrAfterBattle - - thumb_func_start BattleSetup_GetTrainerPostBattleScript -BattleSetup_GetTrainerPostBattleScript: @ 80B1B10 - push {lr} - ldr r1, =gUnknown_02038BF8 - ldrb r2, [r1] - cmp r2, 0 - beq _080B1B3C - movs r0, 0 - strb r0, [r1] - ldr r0, =gUnknown_02038BF4 - ldr r2, [r0] - cmp r2, 0 - beq _080B1B54 - ldr r1, =gUnknown_03006080 - movs r0, 0x1 - strh r0, [r1] - adds r0, r2, 0 - b _080B1B56 - .pool -_080B1B3C: - ldr r0, =gUnknown_02038BF0 - ldr r1, [r0] - cmp r1, 0 - beq _080B1B54 - ldr r0, =gUnknown_03006080 - strh r2, [r0] - adds r0, r1, 0 - b _080B1B56 - .pool -_080B1B54: - ldr r0, =LavaridgeTown_Gym_1F_EventScript_2742E6 -_080B1B56: - pop {r1} - bx r1 - .pool - thumb_func_end BattleSetup_GetTrainerPostBattleScript - - thumb_func_start special_trainer_unable_to_battle -special_trainer_unable_to_battle: @ 80B1B60 - push {lr} - bl sub_80B1D18 - bl ShowFieldMessage - pop {r0} - bx r0 - thumb_func_end special_trainer_unable_to_battle - - thumb_func_start SetUpTrainerEncounterMusic -@ void SetUpTrainerEncounterMusic() -SetUpTrainerEncounterMusic: @ 80B1B70 - push {lr} - ldr r0, =gUnknown_02038BFC - ldrb r0, [r0] - cmp r0, 0 - bne _080B1B88 - ldr r0, =gTrainerBattleOpponent_A - b _080B1B8A - .pool -_080B1B88: - ldr r0, =gTrainerBattleOpponent_B -_080B1B8A: - ldrh r1, [r0] - ldr r0, =gUnknown_02038BC8 - ldrh r0, [r0] - cmp r0, 0x1 - beq _080B1C62 - cmp r0, 0x8 - beq _080B1C62 - adds r0, r1, 0 - bl GetTrainerEncounterMusicId - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xD - bhi _080B1C5C - lsls r0, 2 - ldr r1, =_080B1BBC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080B1BBC: - .4byte _080B1BF4 - .4byte _080B1BFA - .4byte _080B1C04 - .4byte _080B1C5C - .4byte _080B1C0C - .4byte _080B1C12 - .4byte _080B1C1C - .4byte _080B1C24 - .4byte _080B1C2C - .4byte _080B1C34 - .4byte _080B1C3C - .4byte _080B1C42 - .4byte _080B1C4C - .4byte _080B1C54 -_080B1BF4: - movs r0, 0xBE - lsls r0, 1 - b _080B1C5E -_080B1BFA: - ldr r0, =0x00000197 - b _080B1C5E - .pool -_080B1C04: - ldr r0, =0x0000017b - b _080B1C5E - .pool -_080B1C0C: - movs r0, 0xD0 - lsls r0, 1 - b _080B1C5E -_080B1C12: - ldr r0, =0x000001a1 - b _080B1C5E - .pool -_080B1C1C: - ldr r0, =0x000001a3 - b _080B1C5E - .pool -_080B1C24: - ldr r0, =0x000001b9 - b _080B1C5E - .pool -_080B1C2C: - ldr r0, =0x00000181 - b _080B1C5E - .pool -_080B1C34: - ldr r0, =0x000001c1 - b _080B1C5E - .pool -_080B1C3C: - movs r0, 0xE1 - lsls r0, 1 - b _080B1C5E -_080B1C42: - ldr r0, =0x000001c3 - b _080B1C5E - .pool -_080B1C4C: - ldr r0, =0x000001c5 - b _080B1C5E - .pool -_080B1C54: - ldr r0, =0x0000018d - b _080B1C5E - .pool -_080B1C5C: - ldr r0, =0x000001a7 -_080B1C5E: - bl PlayNewMapMusic -_080B1C62: - pop {r0} - bx r0 - .pool - thumb_func_end SetUpTrainerEncounterMusic - - thumb_func_start ReturnEmptyStringIfNull -@ u8 *ReturnEmptyStringIfNull(u8 *str) -ReturnEmptyStringIfNull: @ 80B1C6C - push {lr} - cmp r0, 0 - bne _080B1C74 - ldr r0, =gText_EmptyString2 -_080B1C74: - pop {r1} - bx r1 - .pool - thumb_func_end ReturnEmptyStringIfNull - - thumb_func_start sub_80B1C7C -sub_80B1C7C: @ 80B1C7C - push {lr} - ldr r0, =gUnknown_02038BFC - ldrb r0, [r0] - cmp r0, 0 - beq _080B1C94 - ldr r0, =gUnknown_02038BD8 - b _080B1C96 - .pool -_080B1C94: - ldr r0, =gUnknown_02038BD4 -_080B1C96: - ldr r0, [r0] - bl ReturnEmptyStringIfNull - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B1C7C - - thumb_func_start GetTrainer1LoseText -GetTrainer1LoseText: @ 80B1CA4 - push {r4,lr} - ldr r0, =gTrainerBattleOpponent_A - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 3 - cmp r1, r0 - bne _080B1CBC - bl sub_80EA250 - b _080B1CC0 - .pool -_080B1CBC: - ldr r0, =gUnknown_02038BDC - ldr r0, [r0] -_080B1CC0: - ldr r4, =gStringVar4 - bl ReturnEmptyStringIfNull - adds r1, r0, 0 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end GetTrainer1LoseText - - thumb_func_start GetTrainer2LoseText -GetTrainer2LoseText: @ 80B1CE0 - push {r4,lr} - ldr r4, =gStringVar4 - ldr r0, =gUnknown_02038BE0 - ldr r0, [r0] - bl ReturnEmptyStringIfNull - adds r1, r0, 0 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end GetTrainer2LoseText - - thumb_func_start sub_80B1D04 -sub_80B1D04: @ 80B1D04 - push {lr} - ldr r0, =gUnknown_02038BE4 - ldr r0, [r0] - bl ReturnEmptyStringIfNull - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B1D04 - - thumb_func_start sub_80B1D18 -sub_80B1D18: @ 80B1D18 - push {lr} - ldr r0, =gUnknown_02038BE8 - ldr r0, [r0] - bl ReturnEmptyStringIfNull - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B1D18 - - thumb_func_start sub_80B1D2C -sub_80B1D2C: @ 80B1D2C - push {lr} - lsls r1, 16 - lsrs r1, 16 - movs r3, 0 - adds r2, r0, 0 -_080B1D36: - ldrh r0, [r2] - cmp r0, r1 - bne _080B1D40 - adds r0, r3, 0 - b _080B1D4C -_080B1D40: - adds r2, 0x10 - adds r3, 0x1 - cmp r3, 0x4D - ble _080B1D36 - movs r0, 0x1 - negs r0, r0 -_080B1D4C: - pop {r1} - bx r1 - thumb_func_end sub_80B1D2C - - thumb_func_start sub_80B1D50 -sub_80B1D50: @ 80B1D50 - push {r4,r5,lr} - lsls r1, 16 - lsrs r5, r1, 16 - movs r4, 0 - adds r2, r0, 0 -_080B1D5A: - movs r1, 0 - ldrh r0, [r2] - cmp r0, 0 - beq _080B1D80 - movs r3, 0 -_080B1D64: - adds r0, r2, r3 - ldrh r0, [r0] - cmp r0, r5 - bne _080B1D70 - adds r0, r4, 0 - b _080B1D8C -_080B1D70: - adds r3, 0x2 - adds r1, 0x1 - cmp r1, 0x4 - bgt _080B1D80 - adds r0, r2, r3 - ldrh r0, [r0] - cmp r0, 0 - bne _080B1D64 -_080B1D80: - adds r2, 0x10 - adds r4, 0x1 - cmp r4, 0x4D - ble _080B1D5A - movs r0, 0x1 - negs r0, r0 -_080B1D8C: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80B1D50 - - thumb_func_start sub_80B1D94 -sub_80B1D94: @ 80B1D94 - push {lr} - cmp r0, 0x48 - ble _080B1D9E - movs r0, 0x1 - b _080B1DB8 -_080B1D9E: - cmp r0, 0x40 - bne _080B1DB6 - movs r0, 0x7E - bl FlagGet - movs r1, 0 - lsls r0, 24 - cmp r0, 0 - bne _080B1DB2 - movs r1, 0x1 -_080B1DB2: - adds r0, r1, 0 - b _080B1DB8 -_080B1DB6: - movs r0, 0 -_080B1DB8: - pop {r1} - bx r1 - thumb_func_end sub_80B1D94 - - thumb_func_start sub_80B1DBC -sub_80B1DBC: @ 80B1DBC - push {r4-r6,lr} - adds r6, r1, 0 - movs r5, 0x1 - lsls r1, r6, 4 - adds r1, r0 - adds r4, r1, 0x2 - b _080B1DCE -_080B1DCA: - adds r4, 0x2 - adds r5, 0x1 -_080B1DCE: - cmp r5, 0x4 - bgt _080B1DE2 - ldrh r0, [r4] - cmp r0, 0 - beq _080B1DE2 - bl HasTrainerAlreadyBeenFought - lsls r0, 24 - cmp r0, 0 - bne _080B1DCA -_080B1DE2: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x000009ca - adds r0, r1 - adds r0, r6 - strb r5, [r0] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B1DBC - - thumb_func_start sub_80B1DFC -sub_80B1DFC: @ 80B1DFC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r6, r0, 0 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - movs r7, 0 - movs r5, 0 - adds r4, r6, 0 - adds r4, 0xA -_080B1E1A: - ldrh r0, [r4] - cmp r0, r9 - bne _080B1E74 - ldrh r0, [r4, 0x2] - cmp r0, r8 - bne _080B1E74 - adds r0, r5, 0 - bl sub_80B1D94 - cmp r0, 0 - bne _080B1E74 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x000009ca - adds r0, r1 - adds r0, r5 - ldrb r0, [r0] - cmp r0, 0 - bne _080B1E72 - movs r1, 0xAE - lsls r1, 1 - adds r0, r5, r1 - lsls r0, 16 - lsrs r0, 16 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _080B1E74 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1E - bhi _080B1E74 - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_80B1DBC -_080B1E72: - movs r7, 0x1 -_080B1E74: - adds r4, 0x10 - adds r5, 0x1 - cmp r5, 0x40 - ble _080B1E1A - adds r0, r7, 0 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B1DFC - - thumb_func_start sub_80B1E94 -sub_80B1E94: @ 80B1E94 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, =gUnknown_085500A4 - lsls r0, r4, 4 - adds r0, r5 - ldrh r0, [r0] - bl HasTrainerAlreadyBeenFought - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B1EB4 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_80B1DBC -_080B1EB4: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B1E94 - - thumb_func_start sub_80B1EC0 -sub_80B1EC0: @ 80B1EC0 - push {r4-r6,lr} - lsls r1, 16 - lsrs r4, r1, 16 - lsls r2, 16 - lsrs r2, 16 - movs r1, 0 - adds r3, r0, 0 - adds r3, 0xA - ldr r5, =gSaveBlock1Ptr -_080B1ED2: - ldrh r0, [r3] - cmp r0, r4 - bne _080B1EF8 - ldrh r0, [r3, 0x2] - cmp r0, r2 - bne _080B1EF8 - ldr r0, [r5] - ldr r6, =0x000009ca - adds r0, r6 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080B1EF8 - movs r0, 0x1 - b _080B1F02 - .pool -_080B1EF8: - adds r3, 0x10 - adds r1, 0x1 - cmp r1, 0x4D - ble _080B1ED2 - movs r0, 0 -_080B1F02: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80B1EC0 - - thumb_func_start sub_80B1F08 -sub_80B1F08: @ 80B1F08 - push {r4,lr} - lsls r1, 16 - lsrs r4, r1, 16 - lsls r2, 16 - lsrs r2, 16 - movs r1, 0 - adds r3, r0, 0 - adds r3, 0xA -_080B1F18: - ldrh r0, [r3] - cmp r0, r4 - bne _080B1F28 - ldrh r0, [r3, 0x2] - cmp r0, r2 - bne _080B1F28 - movs r0, 0x1 - b _080B1F32 -_080B1F28: - adds r3, 0x10 - adds r1, 0x1 - cmp r1, 0x4D - ble _080B1F18 - movs r0, 0 -_080B1F32: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80B1F08 - - thumb_func_start sub_80B1F38 -sub_80B1F38: @ 80B1F38 - push {lr} - lsls r1, 16 - lsrs r1, 16 - bl sub_80B1D2C - adds r1, r0, 0 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _080B1F6C - cmp r1, 0x63 - bgt _080B1F6C - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x000009ca - adds r0, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080B1F6C - movs r0, 0x1 - b _080B1F6E - .pool -_080B1F6C: - movs r0, 0 -_080B1F6E: - pop {r1} - bx r1 - thumb_func_end sub_80B1F38 - - thumb_func_start sub_80B1F74 -sub_80B1F74: @ 80B1F74 - push {lr} - lsls r1, 16 - lsrs r1, 16 - bl sub_80B1D50 - adds r1, r0, 0 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _080B1FA8 - cmp r1, 0x63 - bgt _080B1FA8 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x000009ca - adds r0, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _080B1FA8 - movs r0, 0x1 - b _080B1FAA - .pool -_080B1FA8: - movs r0, 0 -_080B1FAA: - pop {r1} - bx r1 - thumb_func_end sub_80B1F74 - - thumb_func_start sub_80B1FB0 -sub_80B1FB0: @ 80B1FB0 - push {r4-r7,lr} - adds r4, r0, 0 - lsls r1, 16 - lsrs r1, 16 - bl sub_80B1D2C - adds r1, r0, 0 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _080B1FD8 - movs r0, 0 - b _080B1FFE -_080B1FCA: - subs r0, r6, 0x1 - lsls r0, 1 - adds r0, r7, r0 - ldrh r0, [r0] - b _080B1FFE -_080B1FD4: - ldrh r0, [r5] - b _080B1FFE -_080B1FD8: - lsls r0, r1, 4 - adds r7, r4, r0 - movs r6, 0x1 - adds r5, r7, 0x2 - adds r4, r5, 0 -_080B1FE2: - ldrh r0, [r4] - cmp r0, 0 - beq _080B1FCA - bl HasTrainerAlreadyBeenFought - lsls r0, 24 - cmp r0, 0 - beq _080B1FD4 - adds r4, 0x2 - adds r5, 0x2 - adds r6, 0x1 - cmp r6, 0x4 - ble _080B1FE2 - ldrh r0, [r7, 0x8] -_080B1FFE: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80B1FB0 - - thumb_func_start sub_80B2004 -sub_80B2004: @ 80B2004 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r1, 16 - lsrs r1, 16 - bl sub_80B1D2C - adds r1, r0, 0 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - bne _080B2032 - movs r0, 0 - b _080B2054 -_080B201E: - subs r0, r5, 0x1 - lsls r0, 1 - adds r0, r6, r0 - ldrh r0, [r0] - b _080B2054 -_080B2028: - subs r0, r5, 0x1 - lsls r0, 1 - adds r0, r6, r0 - ldrh r0, [r0] - b _080B2054 -_080B2032: - lsls r0, r1, 4 - adds r6, r4, r0 - movs r5, 0x1 - adds r4, r6, 0x2 -_080B203A: - ldrh r0, [r4] - cmp r0, 0 - beq _080B201E - bl HasTrainerAlreadyBeenFought - lsls r0, 24 - cmp r0, 0 - beq _080B2028 - adds r4, 0x2 - adds r5, 0x1 - cmp r5, 0x4 - ble _080B203A - ldrh r0, [r6, 0x8] -_080B2054: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80B2004 - - thumb_func_start sub_80B205C -sub_80B205C: @ 80B205C - push {lr} - lsls r1, 16 - lsrs r1, 16 - bl sub_80B1D50 - adds r1, r0, 0 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _080B207E - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x000009ca - adds r0, r2 - adds r0, r1 - movs r1, 0 - strb r1, [r0] -_080B207E: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B205C - - thumb_func_start sub_80B208C -sub_80B208C: @ 80B208C - push {r4,lr} - adds r3, r0, 0 - movs r1, 0 - movs r4, 0xAE - lsls r4, 1 - ldr r2, =gUnknown_085500A4 -_080B2098: - ldrh r0, [r2] - cmp r0, r3 - bne _080B20A8 - adds r0, r1, r4 - b _080B20B2 - .pool -_080B20A8: - adds r2, 0x10 - adds r1, 0x1 - cmp r1, 0x4D - ble _080B2098 - ldr r0, =0x0000ffff -_080B20B2: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B208C - - thumb_func_start sub_80B20BC -sub_80B20BC: @ 80B20BC - push {lr} - ldr r0, =0x0000012f - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _080B20E2 - ldr r0, =gTrainerBattleOpponent_A - ldrh r0, [r0] - bl sub_80B208C - adds r1, r0, 0 - ldr r0, =0x0000ffff - cmp r1, r0 - beq _080B20E2 - lsls r0, r1, 16 - lsrs r0, 16 - bl FlagSet -_080B20E2: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B20BC - - thumb_func_start sub_80B20F4 -sub_80B20F4: @ 80B20F4 - push {r4,lr} - adds r4, r0, 0 - lsls r1, 16 - lsrs r1, 16 - bl sub_80B1D2C - adds r1, r0, 0 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _080B211E - lsls r0, r1, 4 - adds r0, r4 - ldrh r0, [r0, 0x2] - bl HasTrainerAlreadyBeenFought - lsls r0, 24 - cmp r0, 0 - beq _080B211E - movs r0, 0x1 - b _080B2120 -_080B211E: - movs r0, 0 -_080B2120: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80B20F4 - - thumb_func_start sub_80B2128 -sub_80B2128: @ 80B2128 - push {r4-r6,lr} - movs r6, 0 - movs r5, 0 - ldr r4, =gUnknown_08550584 -_080B2130: - ldrh r0, [r4] - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B214C - adds r6, 0x1 - cmp r6, 0x4 - ble _080B214C - movs r0, 0x1 - b _080B2156 - .pool -_080B214C: - adds r4, 0x2 - adds r5, 0x1 - cmp r5, 0x7 - bls _080B2130 - movs r0, 0 -_080B2156: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80B2128 - - thumb_func_start sub_80B215C -sub_80B215C: @ 80B215C - push {lr} - bl sub_80B2128 - cmp r0, 0 - beq _080B2184 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x000009c8 - adds r1, r0, r2 - ldrh r0, [r1] - cmp r0, 0xFE - bls _080B2180 - movs r0, 0xFF - b _080B2182 - .pool -_080B2180: - adds r0, 0x1 -_080B2182: - strh r0, [r1] -_080B2184: - pop {r0} - bx r0 - thumb_func_end sub_80B215C - - thumb_func_start sub_80B2188 -sub_80B2188: @ 80B2188 - push {lr} - bl sub_80B2128 - cmp r0, 0 - beq _080B21AC - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x000009c8 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0xFE - bls _080B21AC - movs r0, 0x1 - b _080B21AE - .pool -_080B21AC: - movs r0, 0 -_080B21AE: - pop {r1} - bx r1 - thumb_func_end sub_80B2188 - - thumb_func_start sub_80B21B4 -sub_80B21B4: @ 80B21B4 - push {r4,r5,lr} - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 16 - lsrs r4, r1, 16 - bl sub_80B2188 - cmp r0, 0 - beq _080B21E0 - ldr r0, =gUnknown_085500A4 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_80B1DFC - cmp r0, 0x1 - bne _080B21E0 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x000009c8 - adds r0, r1 - movs r1, 0 - strh r1, [r0] -_080B21E0: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B21B4 - - thumb_func_start sub_80B21F4 -sub_80B21F4: @ 80B21F4 - push {lr} - adds r3, r0, 0 - adds r2, r1, 0 - lsls r3, 16 - lsrs r3, 16 - lsls r2, 16 - lsrs r2, 16 - ldr r0, =gUnknown_085500A4 - adds r1, r3, 0 - bl sub_80B1EC0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B21F4 - - thumb_func_start sub_80B2214 -sub_80B2214: @ 80B2214 - push {lr} - adds r3, r0, 0 - adds r2, r1, 0 - lsls r3, 16 - lsrs r3, 16 - lsls r2, 16 - lsrs r2, 16 - ldr r0, =gUnknown_085500A4 - adds r1, r3, 0 - bl sub_80B1F08 - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B2214 - - thumb_func_start sub_80B2234 -sub_80B2234: @ 80B2234 - push {lr} - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldr r0, =gUnknown_085500A4 - bl sub_80B1FB0 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B2234 - - thumb_func_start sub_80B2250 -sub_80B2250: @ 80B2250 - push {lr} - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldr r0, =gUnknown_085500A4 - bl sub_80B2004 - lsls r0, 16 - lsrs r0, 16 - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B2250 - - thumb_func_start sub_80B226C -sub_80B226C: @ 80B226C - push {r4,r5,lr} - ldr r5, =gUnknown_085500A4 - ldr r4, =gTrainerBattleOpponent_A - ldrh r1, [r4] - adds r0, r5, 0 - bl sub_80B1F38 - lsls r0, 24 - cmp r0, 0 - bne _080B2298 - ldrh r1, [r4] - adds r0, r5, 0 - bl sub_80B20F4 - lsls r0, 24 - lsrs r0, 24 - b _080B229A - .pool -_080B2298: - movs r0, 0x1 -_080B229A: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80B226C - - thumb_func_start sub_80B22A0 -sub_80B22A0: @ 80B22A0 - push {lr} - ldr r0, =gUnknown_085500A4 - ldr r1, =gTrainerBattleOpponent_A - ldrh r1, [r1] - bl sub_80B1F74 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B22A0 - - thumb_func_start sub_80B22BC -sub_80B22BC: @ 80B22BC - push {lr} - ldr r0, =gUnknown_085500A4 - ldr r1, =gTrainerBattleOpponent_A - ldrh r1, [r1] - bl sub_80B205C - bl rom_npc_set_flag_for_script_id - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B22BC - - thumb_func_start CheckIfMultipleTrainersWantBattle -CheckIfMultipleTrainersWantBattle: @ 80B22D8 - push {lr} - ldr r1, =gUnknown_02038BF9 - ldrb r0, [r1] - cmp r0, 0x1 - bls _080B2300 - movs r0, 0 - strb r0, [r1] - ldr r1, =gUnknown_02038BF8 - movs r0, 0x1 - strb r0, [r1] - ldr r1, =gSpecialVar_Result - movs r0, 0x1 - b _080B230A - .pool -_080B2300: - ldr r1, =gUnknown_02038BF8 - movs r0, 0 - strb r0, [r1] - ldr r1, =gSpecialVar_Result - movs r0, 0 -_080B230A: - strh r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end CheckIfMultipleTrainersWantBattle - - thumb_func_start sub_80B2318 -sub_80B2318: @ 80B2318 - push {r4-r7,lr} - lsls r0, 16 - ldr r7, =gUnknown_085500A4 - lsrs r4, r0, 12 - adds r6, r4, r7 - ldrh r0, [r6] - bl HasTrainerAlreadyBeenFought - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080B2338 - movs r0, 0 - b _080B2364 - .pool -_080B2338: - movs r5, 0x1 - adds r0, r4, 0x2 - adds r0, r7 - ldrh r0, [r0] - cmp r0, 0 - beq _080B2360 - adds r4, r6, 0x2 -_080B2346: - ldrh r0, [r4] - bl HasTrainerAlreadyBeenFought - lsls r0, 24 - cmp r0, 0 - beq _080B2360 - adds r4, 0x2 - adds r5, 0x1 - cmp r5, 0x4 - bgt _080B2360 - ldrh r0, [r4] - cmp r0, 0 - bne _080B2346 -_080B2360: - lsls r0, r5, 16 - lsrs r0, 16 -_080B2364: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80B2318 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_tower.s b/asm/battle_tower.s index 42dcb431a..96769dcbf 100755 --- a/asm/battle_tower.s +++ b/asm/battle_tower.s @@ -3534,7 +3534,7 @@ _08163E10: bl sub_80B100C lsls r0, 24 lsrs r0, 24 - bl sub_8145EF4 + bl BattleTransition_StartOnField b _08163E68 .pool _08163E2C: @@ -3544,7 +3544,7 @@ _08163E2C: ldr r5, =0x00000c03 adds r0, r5, 0 bl sub_8165404 - ldr r4, =gUnknown_02038BFC + ldr r4, =gApproachingTrainerId movs r0, 0 strb r0, [r4] ldr r0, =MossdeepCity_SpaceCenter_2F_EventScript_224157 + 1 @@ -3561,7 +3561,7 @@ _08163E2C: movs r0, 0 bl PlayMapChosenOrBattleBGM movs r0, 0x12 - bl sub_8145EF4 + bl BattleTransition_StartOnField _08163E68: add sp, 0x4 pop {r4-r6} diff --git a/asm/battle_transition.s b/asm/battle_transition.s index 6ffa17320..b7f2746ec 100644 --- a/asm/battle_transition.s +++ b/asm/battle_transition.s @@ -57,8 +57,8 @@ TestBattleTransition: @ 8145EDC .pool thumb_func_end TestBattleTransition - thumb_func_start sub_8145EF4 -sub_8145EF4: @ 8145EF4 + thumb_func_start BattleTransition_StartOnField +BattleTransition_StartOnField: @ 8145EF4 push {lr} lsls r0, 24 lsrs r0, 24 @@ -69,17 +69,17 @@ sub_8145EF4: @ 8145EF4 pop {r0} bx r0 .pool - thumb_func_end sub_8145EF4 + thumb_func_end BattleTransition_StartOnField - thumb_func_start sub_8145F10 -sub_8145F10: @ 8145F10 + thumb_func_start BattleTransition_Start +BattleTransition_Start: @ 8145F10 push {lr} lsls r0, 24 lsrs r0, 24 bl LaunchBattleTransitionTask pop {r0} bx r0 - thumb_func_end sub_8145F10 + thumb_func_end BattleTransition_Start thumb_func_start IsBattleTransitionDone IsBattleTransitionDone: @ 8145F20 diff --git a/asm/berry_blender.s b/asm/berry_blender.s deleted file mode 100644 index f0d1b48d7..000000000 --- a/asm/berry_blender.s +++ /dev/null @@ -1,8788 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_807F738 -sub_807F738: @ 807F738 - push {lr} - ldr r0, =gMPlay_SE2 - ldr r1, =0x0000ffff - ldr r2, =gUnknown_020322A4 - ldr r2, [r2] - adds r2, 0x4C - movs r3, 0 - ldrsh r2, [r2, r3] - subs r2, 0x80 - lsls r2, 17 - asrs r2, 16 - bl m4aMPlayPitchControl - pop {r0} - bx r0 - .pool - thumb_func_end sub_807F738 - - thumb_func_start sub_807F764 -sub_807F764: @ 807F764 - push {r4,lr} - sub sp, 0x10 - bl sub_8082DF4 - ldr r0, =gUnknown_020322A4 - ldr r0, [r0] - mov r12, r0 - movs r0, 0xA0 - lsls r0, 1 - add r0, r12 - ldr r1, [r0] - movs r0, 0xA2 - lsls r0, 1 - add r0, r12 - ldr r2, [r0] - movs r0, 0xA4 - lsls r0, 1 - add r0, r12 - movs r4, 0 - ldrsh r3, [r0, r4] - movs r0, 0xA5 - lsls r0, 1 - add r0, r12 - movs r4, 0 - ldrsh r0, [r0, r4] - str r0, [sp] - movs r0, 0xA6 - lsls r0, 1 - add r0, r12 - movs r4, 0 - ldrsh r0, [r0, r4] - str r0, [sp, 0x4] - movs r0, 0xA7 - lsls r0, 1 - add r0, r12 - movs r4, 0 - ldrsh r0, [r0, r4] - str r0, [sp, 0x8] - movs r0, 0xA8 - lsls r0, 1 - add r0, r12 - ldrh r0, [r0] - str r0, [sp, 0xC] - movs r0, 0x2 - bl SetBgAffine - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - add sp, 0x10 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_807F764 - - thumb_func_start sub_807F7D8 -sub_807F7D8: @ 807F7D8 - push {r4,r5,lr} - ldr r1, =gUnknown_020322A4 - ldr r0, [r1] - ldrb r0, [r0, 0x1] - adds r5, r1, 0 - cmp r0, 0x9 - bls _0807F7E8 - b _0807F9C8 -_0807F7E8: - lsls r0, 2 - ldr r1, =_0807F7FC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0807F7FC: - .4byte _0807F824 - .4byte _0807F854 - .4byte _0807F880 - .4byte _0807F8AC - .4byte _0807F8C8 - .4byte _0807F8F4 - .4byte _0807F910 - .4byte _0807F940 - .4byte _0807F950 - .4byte _0807F980 -_0807F824: - ldr r5, =gUnknown_08D91598 - adds r0, r5, 0 - bl sub_8034974 - adds r0, 0x64 - bl AllocZeroed - adds r1, r0, 0 - ldr r4, =gUnknown_020322A4 - ldr r0, [r4] - ldr r2, =0x000011bc - adds r0, r2 - str r1, [r0] - adds r0, r5, 0 - bl LZDecompressWram - ldr r1, [r4] - b _0807F966 - .pool -_0807F854: - ldr r1, =sBlenderCenterMap - movs r2, 0x80 - lsls r2, 3 - movs r0, 0x2 - movs r3, 0 - bl CopyToBgTilemapBuffer - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - ldr r0, =sBlenderCenterPal - movs r2, 0x80 - lsls r2, 1 - movs r1, 0 - bl LoadPalette - b _0807F962 - .pool -_0807F880: - ldr r0, [r5] - ldr r1, =0x000011bc - adds r0, r1 - ldr r4, [r0] - ldr r0, =gUnknown_08D91598 - bl sub_8034974 - adds r2, r0, 0 - lsls r2, 16 - lsrs r2, 16 - movs r0, 0x2 - adds r1, r4, 0 - movs r3, 0 - bl LoadBgTiles - ldr r1, [r5] - b _0807F966 - .pool -_0807F8AC: - ldr r0, =gUnknown_08D91DB8 - ldr r1, [r5] - ldr r2, =0x000011bc - adds r1, r2 - ldr r1, [r1] - bl LZDecompressWram - ldr r1, [r5] - b _0807F966 - .pool -_0807F8C8: - ldr r0, [r5] - ldr r1, =0x000011bc - adds r0, r1 - ldr r4, [r0] - ldr r0, =gUnknown_08D91DB8 - bl sub_8034974 - adds r2, r0, 0 - lsls r2, 16 - lsrs r2, 16 - movs r0, 0x1 - adds r1, r4, 0 - movs r3, 0 - bl LoadBgTiles - ldr r1, [r5] - b _0807F966 - .pool -_0807F8F4: - ldr r0, =gUnknown_08D927EC - ldr r1, [r5] - ldr r2, =0x000011bc - adds r1, r2 - ldr r1, [r1] - bl LZDecompressWram - ldr r1, [r5] - b _0807F966 - .pool -_0807F910: - ldr r0, [r5] - ldr r1, =0x000011bc - adds r0, r1 - ldr r4, [r0] - ldr r0, =gUnknown_08D927EC - bl sub_8034974 - adds r2, r0, 0 - lsls r2, 16 - lsrs r2, 16 - movs r0, 0x1 - adds r1, r4, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - ldr r1, [r5] - b _0807F966 - .pool -_0807F940: - ldr r0, =sBlenderOuterPal - movs r1, 0x80 - movs r2, 0x20 - bl LoadPalette - b _0807F962 - .pool -_0807F950: - ldr r0, =sSpriteSheet_BlenderArrow - bl LoadSpriteSheet - ldr r0, =gUnknown_08339BD8 - bl LoadSpriteSheet - ldr r0, =gUnknown_08339B38 - bl LoadSpriteSheet -_0807F962: - ldr r0, =gUnknown_020322A4 - ldr r1, [r0] -_0807F966: - ldrb r0, [r1, 0x1] - adds r0, 0x1 - strb r0, [r1, 0x1] - b _0807F9C8 - .pool -_0807F980: - ldr r0, =gUnknown_08339C24 - bl LoadSpriteSheet - ldr r0, =gUnknown_08339C58 - bl LoadSpriteSheet - ldr r0, =sSpritePal_BlenderArrow - bl LoadSpritePalette - ldr r0, =sSpritePal_BlenderMisc - bl LoadSpritePalette - ldr r4, =gUnknown_020322A4 - ldr r0, [r4] - ldr r2, =0x000011bc - adds r0, r2 - ldr r0, [r0] - bl Free - ldr r1, [r4] - movs r0, 0 - strb r0, [r1, 0x1] - movs r0, 0x1 - b _0807F9CA - .pool -_0807F9C8: - movs r0, 0 -_0807F9CA: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_807F7D8 - - thumb_func_start sub_807F9D0 -sub_807F9D0: @ 807F9D0 - push {lr} - sub sp, 0x8 - movs r0, 0x1E - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0 - bl CopyBgTilemapBufferToVram - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuRegBits - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - add sp, 0x8 - pop {r0} - bx r0 - thumb_func_end sub_807F9D0 - - thumb_func_start sub_807FA34 -sub_807FA34: @ 807FA34 - push {r4,lr} - sub sp, 0x8 - ldr r0, =gUnknown_08339980 - bl InitWindows - lsls r0, 16 - cmp r0, 0 - beq _0807FA74 - bl DeactivateAllTextPrinters - movs r4, 0 -_0807FA4A: - lsls r0, r4, 24 - lsrs r0, 24 - movs r1, 0 - bl FillWindowPixelBuffer - adds r4, 0x1 - cmp r4, 0x4 - ble _0807FA4A - movs r0, 0x1E - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0xE0 - bl sub_81978B0 -_0807FA74: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_807FA34 - - thumb_func_start sub_807FA80 -sub_807FA80: @ 807FA80 - push {r4,lr} - ldr r4, =gUnknown_020322A4 - ldr r0, [r4] - cmp r0, 0 - bne _0807FA94 - movs r0, 0x8F - lsls r0, 5 - bl AllocZeroed - str r0, [r4] -_0807FA94: - ldr r0, [r4] - adds r0, 0x63 - movs r1, 0 - strb r1, [r0] - ldr r0, [r4] - strb r1, [r0] - ldr r0, [r4] - adds r0, 0x63 - strb r1, [r0] - ldr r0, =gSpecialVar_0x8004 - ldrb r0, [r0] - bl sub_807FE54 - ldr r0, =sub_807FAC8 - bl SetMainCallback2 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_807FA80 - - thumb_func_start sub_807FAC8 -sub_807FAC8: @ 807FAC8 - push {r4-r6,lr} - sub sp, 0x4 - ldr r1, =gUnknown_020322A4 - ldr r0, [r1] - ldrb r0, [r0] - adds r6, r1, 0 - cmp r0, 0x6 - bls _0807FADA - b _0807FCE2 -_0807FADA: - lsls r0, 2 - ldr r1, =_0807FAEC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0807FAEC: - .4byte _0807FB08 - .4byte _0807FBAC - .4byte _0807FC38 - .4byte _0807FC4E - .4byte _0807FC64 - .4byte _0807FC90 - .4byte _0807FCB0 -_0807FB08: - movs r0, 0 - movs r1, 0 - bl SetGpuReg - bl ResetSpriteData - bl FreeAllSpritePalettes - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_08339974 - movs r0, 0x1 - movs r2, 0x3 - bl InitBgsFromTemplates - ldr r4, =gUnknown_020322A4 - ldr r1, [r4] - movs r0, 0xDC - lsls r0, 1 - adds r1, r0 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r0, =0x000009b8 - adds r1, r0 - movs r0, 0x2 - bl SetBgTilemapBuffer - movs r0, 0 - movs r1, 0x1 - movs r2, 0xD0 - bl sub_809882C - movs r0, 0 - movs r1, 0x14 - movs r2, 0xF0 - bl copy_textbox_border_tile_patterns_to_vram - bl sub_807FA34 - ldr r1, [r4] - ldrb r0, [r1] - adds r0, 0x1 - movs r2, 0 - strb r0, [r1] - ldr r3, [r4] - movs r1, 0x8C - lsls r1, 1 - adds r0, r3, r1 - movs r1, 0 - strh r2, [r0] - movs r4, 0x8B - lsls r4, 1 - adds r0, r3, r4 - strh r2, [r0] - movs r0, 0x8D - lsls r0, 1 - adds r4, r3, r0 - movs r0, 0x50 - strh r0, [r4] - movs r4, 0x8E - lsls r4, 1 - adds r0, r3, r4 - strh r2, [r0] - adds r4, 0x2 - adds r0, r3, r4 - strh r2, [r0] - strb r1, [r3, 0x1] - bl sub_8082D28 - b _0807FCE2 - .pool -_0807FBAC: - bl sub_807F7D8 - lsls r0, 24 - cmp r0, 0 - bne _0807FBB8 - b _0807FCE2 -_0807FBB8: - movs r4, 0 - ldr r5, =sBlenderSyncArrowsPos - ldr r6, =gUnknown_020322A4 -_0807FBBE: - ldrb r1, [r5] - ldrb r2, [r5, 0x1] - ldr r0, =sBlenderSyncArrow_SpriteTemplate - movs r3, 0x1 - bl CreateSprite - ldr r1, [r6] - adds r1, 0x50 - adds r1, r4 - strb r0, [r1] - ldr r0, [r6] - adds r0, 0x50 - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - adds r1, r4, 0 - adds r1, 0x8 - lsls r1, 24 - lsrs r1, 24 - bl StartSpriteAnim - adds r5, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - ble _0807FBBE - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - beq _0807FC14 - ldr r0, =gLinkVSyncDisabled - ldrb r0, [r0] - cmp r0, 0 - beq _0807FC14 - bl sub_800E0E8 - movs r0, 0 - movs r1, 0 - bl sub_800DFB4 -_0807FC14: - ldr r0, =sub_807F764 - bl SetVBlankCallback - b _0807FCA0 - .pool -_0807FC38: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - bl sub_8082D28 - b _0807FCA0 -_0807FC4E: - bl sub_807F9D0 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0807FCE2 - b _0807FCA0 - .pool -_0807FC64: - ldr r4, [r6] - ldr r0, =0x000011b8 - adds r4, r0 - ldr r5, =gText_BerryBlenderStart - bl sav2_get_text_speed - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_808417C - cmp r0, 0 - beq _0807FCE2 - ldr r1, [r6] - b _0807FCA4 - .pool -_0807FC90: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade -_0807FCA0: - ldr r0, =gUnknown_020322A4 - ldr r1, [r0] -_0807FCA4: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0807FCE2 - .pool -_0807FCB0: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _0807FCE2 - bl FreeAllWindowBuffers - movs r0, 0x2 - bl UnsetBgTilemapBuffer - movs r0, 0x1 - bl UnsetBgTilemapBuffer - movs r0, 0 - bl SetVBlankCallback - ldr r0, =sub_807FFA4 - bl sub_81AABF0 - ldr r0, =gUnknown_020322A4 - ldr r0, [r0] - strb r4, [r0] -_0807FCE2: - bl AnimateSprites - bl BuildOamBuffer - bl RunTextPrinters - bl UpdatePaletteFade - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_807FAC8 - - thumb_func_start sub_807FD08 -sub_807FD08: @ 807FD08 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x3A] - ldrh r1, [r4, 0x30] - adds r0, r1 - strh r0, [r4, 0x30] - ldrh r1, [r4, 0x32] - ldrh r2, [r4, 0x36] - subs r1, r2 - ldrh r0, [r4, 0x3C] - adds r1, r0 - strh r1, [r4, 0x32] - ldrh r3, [r4, 0x2E] - adds r0, r3 - strh r0, [r4, 0x2E] - subs r2, 0x1 - strh r2, [r4, 0x36] - lsls r0, 16 - lsls r1, 16 - cmp r0, r1 - bge _0807FD56 - ldrh r0, [r4, 0x34] - subs r0, 0x1 - strh r0, [r4, 0x36] - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - ble _0807FD50 - adds r0, r4, 0 - bl DestroySprite - b _0807FD56 -_0807FD50: - movs r0, 0x74 - bl PlaySE -_0807FD56: - ldrh r0, [r4, 0x30] - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x32] - strh r0, [r4, 0x22] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_807FD08 - - thumb_func_start sub_807FD64 -sub_807FD64: @ 807FD64 - push {r4-r6,lr} - ldr r5, [sp, 0x10] - ldr r6, [sp, 0x14] - lsls r2, 16 - lsrs r2, 16 - movs r4, 0 - strh r2, [r0, 0x2E] - strh r1, [r0, 0x30] - strh r2, [r0, 0x32] - strh r3, [r0, 0x34] - movs r1, 0xA - strh r1, [r0, 0x36] - strh r4, [r0, 0x38] - strh r5, [r0, 0x3A] - strh r6, [r0, 0x3C] - ldr r1, =sub_807FD08 - str r1, [r0, 0x1C] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_807FD64 - - thumb_func_start sub_807FD90 -sub_807FD90: @ 807FD90 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x8 - adds r6, r1, 0 - lsls r6, 24 - lsrs r6, 24 - lsls r0, 24 - movs r1, 0xF6 - lsls r1, 23 - adds r0, r1 - lsrs r0, 24 - movs r3, 0x1 - ands r3, r6 - movs r1, 0 - movs r2, 0x50 - bl sub_80D511C - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 4 - mov r8, r2 - add r8, r0 - mov r3, r8 - lsls r3, 2 - mov r8, r3 - ldr r0, =gSprites - add r8, r0 - ldr r5, =gUnknown_08339C78 - lsls r4, r6, 2 - adds r4, r6 - lsls r4, 1 - adds r0, r4, r5 - movs r6, 0 - ldrsh r1, [r0, r6] - adds r0, r5, 0x2 - adds r0, r4, r0 - movs r3, 0 - ldrsh r2, [r0, r3] - adds r0, r5, 0x4 - adds r0, r4, r0 - movs r6, 0 - ldrsh r3, [r0, r6] - adds r0, r5, 0x6 - adds r0, r4, r0 - movs r6, 0 - ldrsh r0, [r0, r6] - str r0, [sp] - adds r5, 0x8 - adds r4, r5 - movs r5, 0 - ldrsh r0, [r4, r5] - str r0, [sp, 0x4] - mov r0, r8 - bl sub_807FD64 - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_807FD90 - - thumb_func_start sub_807FE14 -sub_807FE14: @ 807FE14 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r5, r1, 16 - lsrs r5, 16 - adds r0, r5, 0 - adds r0, 0x7C - lsls r0, 24 - lsrs r0, 24 - bl GetBerryInfo - adds r4, r0, 0 - strh r5, [r6] - adds r0, r6, 0x2 - adds r1, r4, 0 - bl StringCopy - ldrb r0, [r4, 0x15] - strb r0, [r6, 0x9] - ldrb r0, [r4, 0x16] - strb r0, [r6, 0xA] - ldrb r0, [r4, 0x17] - strb r0, [r6, 0xB] - ldrb r0, [r4, 0x18] - strb r0, [r6, 0xC] - ldrb r0, [r4, 0x19] - strb r0, [r6, 0xD] - ldrb r0, [r4, 0x1A] - strb r0, [r6, 0xE] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_807FE14 - - thumb_func_start sub_807FE54 -sub_807FE54: @ 807FE54 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - beq _0807FE7C - cmp r5, 0x1 - bgt _0807FE68 - cmp r5, 0 - beq _0807FE72 - b _0807FF88 -_0807FE68: - cmp r5, 0x2 - beq _0807FEE8 - cmp r5, 0x3 - beq _0807FF3C - b _0807FF88 -_0807FE72: - ldr r0, =gUnknown_03005D98 - strb r5, [r0] - b _0807FF88 - .pool -_0807FE7C: - ldr r0, =gUnknown_03005D98 - strb r5, [r0] - ldr r0, =gUnknown_020322A4 - ldr r0, [r0] - adds r0, 0x7C - movs r1, 0x2 - strb r1, [r0] - ldr r4, =gLinkPlayers + 8 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - adds r0, r4, 0 - bl StringCopy - movs r0, 0xD0 - lsls r0, 2 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _0807FEC8 - adds r0, r4, 0 - adds r0, 0x1C - ldr r1, =sBlenderOpponentsNames - ldr r1, [r1, 0xC] - bl StringCopy - b _0807FED4 - .pool -_0807FEC8: - adds r0, r4, 0 - adds r0, 0x1C - ldr r1, =sBlenderOpponentsNames - ldr r1, [r1] - bl StringCopy -_0807FED4: - ldr r1, =gLinkPlayers - movs r0, 0x2 - strh r0, [r1, 0x1A] - strh r0, [r1, 0x36] - b _0807FF88 - .pool -_0807FEE8: - ldr r0, =gUnknown_03005D98 - strb r5, [r0] - ldr r0, =gUnknown_020322A4 - ldr r0, [r0] - adds r0, 0x7C - movs r1, 0x3 - strb r1, [r0] - ldr r6, =gLinkPlayers + 8 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - adds r0, r6, 0 - bl StringCopy - adds r0, r6, 0 - adds r0, 0x1C - ldr r4, =sBlenderOpponentsNames - ldr r1, [r4, 0x10] - bl StringCopy - adds r0, r6, 0 - adds r0, 0x38 - ldr r1, [r4, 0x8] - bl StringCopy - adds r0, r6, 0 - subs r0, 0x8 - strh r5, [r0, 0x1A] - strh r5, [r0, 0x36] - adds r0, 0x52 - strh r5, [r0] - b _0807FF88 - .pool -_0807FF3C: - ldr r0, =gUnknown_03005D98 - strb r5, [r0] - ldr r0, =gUnknown_020322A4 - ldr r0, [r0] - adds r0, 0x7C - movs r1, 0x4 - strb r1, [r0] - ldr r5, =gLinkPlayers + 8 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - adds r0, r5, 0 - bl StringCopy - adds r0, r5, 0 - adds r0, 0x1C - ldr r4, =sBlenderOpponentsNames - ldr r1, [r4, 0x14] - bl StringCopy - adds r0, r5, 0 - adds r0, 0x38 - ldr r1, [r4, 0x4] - bl StringCopy - adds r0, r5, 0 - adds r0, 0x54 - ldr r1, [r4, 0x8] - bl StringCopy - adds r0, r5, 0 - subs r0, 0x8 - movs r1, 0x2 - strh r1, [r0, 0x1A] - strh r1, [r0, 0x36] - adds r0, 0x52 - strh r1, [r0] - adds r0, 0x1C - strh r1, [r0] -_0807FF88: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_807FE54 - - thumb_func_start sub_807FFA4 -sub_807FFA4: @ 807FFA4 - push {r4,r5,lr} - movs r0, 0 - movs r1, 0 - bl SetGpuReg - ldr r4, =gUnknown_020322A4 - ldr r0, [r4] - cmp r0, 0 - bne _0807FFC0 - movs r0, 0x8F - lsls r0, 5 - bl AllocZeroed - str r0, [r4] -_0807FFC0: - ldr r0, [r4] - movs r1, 0 - strb r1, [r0] - ldr r0, [r4] - movs r2, 0x86 - lsls r2, 1 - adds r0, r2 - str r1, [r0] - movs r2, 0 - ldr r5, =gSpecialVar_0x8004 - movs r3, 0 -_0807FFD6: - ldr r0, [r4] - lsls r1, r2, 1 - adds r0, 0x74 - adds r0, r1 - strh r3, [r0] - adds r2, 0x1 - cmp r2, 0x3 - ble _0807FFD6 - ldrb r0, [r5] - bl sub_807FE54 - ldrh r0, [r5] - cmp r0, 0 - bne _08080008 - ldr r0, =sub_8080018 - bl SetMainCallback2 - b _0808000E - .pool -_08080008: - ldr r0, =sub_80808D4 - bl SetMainCallback2 -_0808000E: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_807FFA4 - - thumb_func_start sub_8080018 -sub_8080018: @ 8080018 - push {r4-r7,lr} - sub sp, 0x4 - ldr r1, =gUnknown_020322A4 - ldr r0, [r1] - ldrb r0, [r0] - adds r2, r1, 0 - cmp r0, 0x15 - bls _0808002A - b _08080546 -_0808002A: - lsls r0, 2 - ldr r1, =_0808003C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0808003C: - .4byte _08080094 - .4byte _08080100 - .4byte _08080120 - .4byte _0808019C - .4byte _080801AE - .4byte _080801C8 - .4byte _08080546 - .4byte _08080546 - .4byte _080801F8 - .4byte _08080248 - .4byte _0808026C - .4byte _08080302 - .4byte _0808035C - .4byte _080803D4 - .4byte _08080408 - .4byte _0808049C - .4byte _080804D0 - .4byte _08080546 - .4byte _080804F8 - .4byte _080804E4 - .4byte _080804EA - .4byte _08080508 -_08080094: - bl sub_8080588 - ldr r1, =gUnknown_020229C6 - ldr r2, =0x00004422 - adds r0, r2, 0 - strh r0, [r1] - ldr r2, =gUnknown_020322A4 - ldr r0, [r2] - adds r0, 0x72 - movs r1, 0 - strb r1, [r0] - movs r5, 0 - movs r6, 0 - movs r7, 0x92 - lsls r7, 1 -_080800B2: - ldr r0, [r2] - lsls r1, r5, 1 - adds r0, 0x64 - adds r0, r1 - strh r6, [r0] - adds r4, r5, 0x1 - adds r1, r5 - lsls r1, 1 - movs r3, 0x2 -_080800C4: - ldr r0, [r2] - adds r0, r7 - adds r0, r1 - strh r6, [r0] - adds r1, 0x2 - subs r3, 0x1 - cmp r3, 0 - bge _080800C4 - adds r5, r4, 0 - cmp r5, 0x3 - ble _080800B2 - ldr r3, =gUnknown_020322A4 - ldr r4, [r3] - adds r1, r4, 0 - adds r1, 0x70 - movs r2, 0 - movs r0, 0 - strh r0, [r1] - subs r1, 0x22 - strh r0, [r1] - strb r2, [r4, 0x1] - ldr r1, [r3] - b _080804FC - .pool -_08080100: - bl sub_807F7D8 - lsls r0, 24 - cmp r0, 0 - bne _0808010C - b _08080546 -_0808010C: - ldr r0, =gUnknown_020322A4 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - bl sub_8082D28 - b _08080546 - .pool -_08080120: - movs r5, 0 - ldr r4, =sBlenderSyncArrowsPos - ldr r6, =gUnknown_020322A4 -_08080126: - ldrb r1, [r4] - ldrb r2, [r4, 0x1] - ldr r0, =sBlenderSyncArrow_SpriteTemplate - movs r3, 0x1 - bl CreateSprite - ldr r1, [r6] - adds r1, 0x54 - adds r1, r5 - strb r0, [r1] - ldr r0, [r6] - adds r0, 0x54 - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - adds r1, r5, 0 - adds r1, 0x8 - lsls r1, 24 - lsrs r1, 24 - bl StartSpriteAnim - adds r4, 0x2 - adds r5, 0x1 - cmp r5, 0x3 - ble _08080126 - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _0808016A - b _080804F8 -_0808016A: - ldr r0, =gLinkVSyncDisabled - ldrb r0, [r0] - cmp r0, 0 - bne _08080174 - b _080804F8 -_08080174: - bl sub_800E0E8 - movs r0, 0 - movs r1, 0 - bl sub_800DFB4 - b _080804F8 - .pool -_0808019C: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _080804F8 -_080801AE: - bl sub_807F9D0 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080801C0 - b _08080546 -_080801C0: - b _080804F8 - .pool -_080801C8: - ldr r4, =gUnknown_020322A4 - ldr r0, [r4] - ldr r3, =0x000011b8 - adds r0, r3 - ldr r1, =sText_CommunicationStandby - movs r2, 0 - bl sub_808417C - ldr r1, [r4] - movs r2, 0 - movs r0, 0x8 - strb r0, [r1] - ldr r0, [r4] - movs r1, 0x84 - lsls r1, 1 - adds r0, r1 - str r2, [r0] - b _08080546 - .pool -_080801F8: - ldr r4, =gUnknown_020322A4 - ldr r1, [r4] - ldrb r0, [r1] - adds r0, 0x1 - movs r6, 0 - strb r0, [r1] - ldr r0, [r4] - movs r2, 0x8A - lsls r2, 1 - adds r0, r2 - strb r6, [r0] - ldr r0, [r4] - movs r5, 0xAC - lsls r5, 1 - adds r0, r5 - ldr r1, =gSpecialVar_ItemId - ldrh r1, [r1] - bl sub_807FE14 - ldr r0, =gUnknown_020228C4 - ldr r1, [r4] - adds r1, r5 - movs r2, 0x10 - bl memcpy - bl sub_800ADF8 - ldr r0, [r4] - movs r3, 0x84 - lsls r3, 1 - adds r0, r3 - str r6, [r0] - b _08080546 - .pool -_08080248: - bl sub_800A520 - lsls r0, 24 - cmp r0, 0 - bne _08080254 - b _08080546 -_08080254: - bl ResetBlockReceivedFlags - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - beq _08080264 - b _080804F8 -_08080264: - movs r0, 0x4 - bl sub_800A4D8 - b _080804F8 -_0808026C: - ldr r6, =gUnknown_020322A4 - ldr r1, [r6] - movs r0, 0x84 - lsls r0, 1 - adds r1, r0 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0x14 - bgt _08080282 - b _08080546 -_08080282: - movs r0, 0x4 - movs r1, 0x1 - bl sub_8197DF8 - bl GetBlockReceivedStatus - adds r4, r0, 0 - bl sub_800A9D8 - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _0808029E - b _08080546 -_0808029E: - movs r5, 0 - adds r7, r6, 0 - movs r6, 0xAC - lsls r6, 1 - b _080802D4 - .pool -_080802AC: - ldr r0, [r7] - lsls r4, r5, 4 - adds r0, r4, r0 - adds r0, r6 - lsls r1, r5, 8 - ldr r2, =gBlockRecvBuffer - adds r1, r2 - movs r2, 0x10 - bl memcpy - ldr r0, [r7] - lsls r2, r5, 1 - adds r1, r0, 0 - adds r1, 0x74 - adds r1, r2 - adds r0, r4 - adds r0, r6 - ldrh r0, [r0] - strh r0, [r1] - adds r5, 0x1 -_080802D4: - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - blt _080802AC - bl ResetBlockReceivedFlags - b _080804F8 - .pool -_080802EC: - ldrb r1, [r4] - lsls r1, 1 - adds r0, r2, 0 - adds r0, 0x74 - adds r0, r1 - ldrh r0, [r0] - lsls r1, r5, 24 - lsrs r1, 24 - bl sub_807FD90 - b _08080336 -_08080302: - bl GetLinkPlayerCount - ldr r2, =gUnknown_020322A4 - ldr r1, [r2] - adds r1, 0x7C - strb r0, [r1] - movs r5, 0 - ldr r2, [r2] - movs r1, 0x8A - lsls r1, 1 - adds r4, r2, r1 - ldr r1, =gUnknown_083399D0 - adds r0, r2, 0 - adds r0, 0x7C - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 2 - ldrb r3, [r4] - adds r0, r1 -_08080328: - ldrb r1, [r0] - cmp r3, r1 - beq _080802EC - adds r0, 0x1 - adds r5, 0x1 - cmp r5, 0x3 - ble _08080328 -_08080336: - ldr r3, =gUnknown_020322A4 - ldr r1, [r3] - movs r0, 0x84 - lsls r0, 1 - adds r2, r1, r0 - movs r0, 0 - str r0, [r2] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r1, [r3] - movs r2, 0x8A - lsls r2, 1 - adds r1, r2 - b _080804FC - .pool -_0808035C: - ldr r3, [r2] - movs r0, 0x84 - lsls r0, 1 - adds r1, r3, r0 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0x3C - bgt _08080370 - b _08080546 -_08080370: - movs r1, 0x8A - lsls r1, 1 - adds r0, r3, r1 - adds r1, r3, 0 - adds r1, 0x7C - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bcc _080803B8 - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - ldr r2, [r2] - ldr r3, =gUnknown_083399DC - ldr r1, =gUnknown_083399E4 - adds r0, r2, 0 - adds r0, 0x7C - ldrb r0, [r0] - subs r0, 0x2 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r3 - ldr r3, =0xffffa800 - adds r1, r3, 0 - ldrh r0, [r0] - adds r1, r0 - adds r2, 0x4A - strh r1, [r2] - b _080803BE - .pool -_080803B8: - ldrb r0, [r3] - subs r0, 0x1 - strb r0, [r3] -_080803BE: - ldr r0, =gUnknown_020322A4 - ldr r0, [r0] - movs r1, 0x84 - lsls r1, 1 - adds r0, r1 - movs r1, 0 - str r1, [r0] - b _08080546 - .pool -_080803D4: - bl sub_800A520 - lsls r0, 24 - cmp r0, 0 - bne _080803E0 - b _08080546 -_080803E0: - ldr r2, =gUnknown_020322A4 - ldr r1, [r2] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r2] - movs r2, 0xA0 - lsls r2, 1 - adds r0, r2 - bl sub_8082CB4 - movs r0, 0x2B - bl PlaySE - movs r0, 0x2 - bl ShowBg - b _08080546 - .pool -_08080408: - movs r1, 0x80 - lsls r1, 3 - movs r0, 0 - bl SetGpuRegBits - ldr r4, =gUnknown_020322A4 - ldr r2, [r4] - adds r1, r2, 0 - adds r1, 0x4A - movs r3, 0x80 - lsls r3, 2 - adds r0, r3, 0 - ldrh r3, [r1] - adds r0, r3 - strh r0, [r1] - movs r0, 0x8D - lsls r0, 1 - adds r1, r2, r0 - ldrh r0, [r1] - adds r0, 0x4 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xFF - bls _0808048C - movs r0, 0xC - movs r1, 0x2 - bl SetGpuRegBits - ldr r1, [r4] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r3, [r4] - movs r2, 0x8D - lsls r2, 1 - adds r1, r3, r2 - movs r0, 0x80 - lsls r0, 1 - strh r0, [r1] - ldr r2, =gUnknown_083399DC - ldr r1, =gUnknown_083399E4 - adds r0, r3, 0 - adds r0, 0x7C - ldrb r0, [r0] - subs r0, 0x2 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - adds r1, r3, 0 - adds r1, 0x4A - strh r0, [r1] - movs r0, 0x84 - lsls r0, 1 - adds r1, r3, r0 - movs r0, 0 - str r0, [r1] - movs r0, 0x34 - bl PlaySE - bl sub_808074C - bl sub_80807BC -_0808048C: - ldr r0, [r4] - b _080804BE - .pool -_0808049C: - bl sub_8083380 - lsls r0, 24 - cmp r0, 0 - beq _080804BA - ldr r0, =gUnknown_020322A4 - ldr r1, [r0] - movs r3, 0x84 - lsls r3, 1 - adds r2, r1, r3 - movs r0, 0 - str r0, [r2] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_080804BA: - ldr r0, =gUnknown_020322A4 - ldr r0, [r0] -_080804BE: - movs r1, 0xA0 - lsls r1, 1 - adds r0, r1 - bl sub_8082CB4 - b _08080546 - .pool -_080804D0: - ldr r0, =gUnknown_08339C2C - movs r2, 0x10 - negs r2, r2 - movs r1, 0x78 - movs r3, 0x3 - bl CreateSprite - b _080804F8 - .pool -_080804E4: - bl sub_800ADF8 - b _080804F8 -_080804EA: - bl sub_800A520 - lsls r0, 24 - cmp r0, 0 - beq _08080546 - bl sub_800A418 -_080804F8: - ldr r0, =gUnknown_020322A4 - ldr r1, [r0] -_080804FC: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08080546 - .pool -_08080508: - ldr r5, =gUnknown_020322A4 - ldr r3, [r5] - adds r1, r3, 0 - adds r1, 0x4C - movs r2, 0 - movs r0, 0x80 - strh r0, [r1] - movs r1, 0x82 - lsls r1, 1 - adds r0, r3, r1 - str r2, [r0] - ldr r0, =sub_8081898 - bl SetMainCallback2 - bl GetCurrentMapMusic - lsls r0, 16 - lsrs r0, 16 - ldr r4, =0x00000193 - cmp r0, r4 - beq _08080540 - bl GetCurrentMapMusic - ldr r1, [r5] - movs r2, 0xAA - lsls r2, 1 - adds r1, r2 - strh r0, [r1] -_08080540: - adds r0, r4, 0 - bl PlayBGM -_08080546: - ldr r0, =gUnknown_020322A4 - ldr r1, [r0] - movs r3, 0x8E - lsls r3, 1 - adds r0, r1, r3 - movs r2, 0 - ldrsh r0, [r0, r2] - adds r3, 0x2 - adds r1, r3 - movs r2, 0 - ldrsh r1, [r1, r2] - bl nullsub_31 - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl RunTextPrinters - bl UpdatePaletteFade - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8080018 - - thumb_func_start sub_8080588 -sub_8080588: @ 8080588 - push {r4,lr} - movs r0, 0 - movs r1, 0 - bl SetGpuReg - bl ResetSpriteData - bl FreeAllSpritePalettes - bl ResetTasks - ldr r0, =sub_807F764 - bl SetVBlankCallback - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_08339974 - movs r0, 0x1 - movs r2, 0x3 - bl InitBgsFromTemplates - ldr r4, =gUnknown_020322A4 - ldr r1, [r4] - movs r0, 0xDC - lsls r0, 1 - adds r1, r0 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, [r4] - ldr r3, =0x000009b8 - adds r1, r3 - movs r0, 0x2 - bl SetBgTilemapBuffer - movs r0, 0 - movs r1, 0x1 - movs r2, 0xD0 - bl sub_809882C - movs r0, 0 - movs r1, 0x14 - movs r2, 0xF0 - bl copy_textbox_border_tile_patterns_to_vram - bl sub_807FA34 - ldr r2, [r4] - adds r0, r2, 0 - adds r0, 0x44 - movs r1, 0 - strh r1, [r0] - adds r0, 0x8 - strh r1, [r0] - subs r0, 0x2 - strh r1, [r0] - adds r0, 0x4 - strh r1, [r0] - movs r3, 0x8E - lsls r3, 1 - adds r0, r2, r3 - strh r1, [r0] - adds r3, 0x2 - adds r0, r2, r3 - strh r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8080588 - - thumb_func_start task_tutorial_oak_boy_girl -task_tutorial_oak_boy_girl: @ 8080624 - push {lr} - lsls r0, 16 - lsls r1, 24 - lsrs r0, 24 - adds r2, r0, 0 - adds r2, 0x18 - ldr r0, =gUnknown_020322A4 - ldr r0, [r0] - lsrs r1, 23 - adds r0, 0x96 - adds r0, r1 - ldrb r0, [r0] - ldr r1, =gUnknown_083399E7 - adds r0, r1 - ldrb r1, [r0] - cmp r2, r1 - bcc _0808066C - adds r0, r1, 0 - adds r0, 0x30 - cmp r2, r0 - bcs _0808066C - subs r0, 0x1C - cmp r2, r0 - bcc _08080668 - adds r0, 0x8 - cmp r2, r0 - bcs _08080668 - movs r0, 0x2 - b _0808066E - .pool -_08080668: - movs r0, 0x1 - b _0808066E -_0808066C: - movs r0, 0 -_0808066E: - pop {r1} - bx r1 - thumb_func_end task_tutorial_oak_boy_girl - - thumb_func_start sub_8080674 -sub_8080674: @ 8080674 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 24 - lsrs r1, 24 - movs r6, 0 - cmp r5, 0xAF - bne _080806AC - movs r4, 0 - subs r7, r1, 0x1 - adds r2, 0x9 -_08080690: - adds r0, r2, r6 - adds r1, r2, r4 - ldrb r0, [r0] - ldrb r1, [r1] - cmp r0, r1 - bls _0808069E - adds r6, r4, 0 -_0808069E: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x4 - bls _08080690 - adds r0, r6, 0x5 - b _080806C4 -_080806AC: - adds r0, r5, 0 - subs r0, 0x85 - lsls r0, 16 - lsrs r6, r0, 16 - subs r7, r1, 0x1 - cmp r6, 0x4 - bls _080806C8 - adds r0, r6, 0 - movs r1, 0x5 - bl __umodsi3 - adds r0, 0x5 -_080806C4: - lsls r0, 16 - lsrs r6, r0, 16 -_080806C8: - movs r4, 0 - cmp r4, r7 - bge _08080734 - ldr r0, =gUnknown_08339CA0 - mov r9, r0 - adds r0, r5, 0 - subs r0, 0xA3 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 -_080806DC: - lsls r0, r6, 1 - adds r0, r6 - adds r0, r4, r0 - add r0, r9 - ldrb r5, [r0] - movs r0, 0xD0 - lsls r0, 2 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _0808071A - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0x1 - bne _0808071A - adds r0, r6, 0 - movs r1, 0x5 - bl __umodsi3 - lsls r0, 16 - lsrs r6, r0, 16 - ldr r0, =gUnknown_08339CBE - adds r0, r6, r0 - ldrb r5, [r0] - mov r0, r8 - cmp r0, 0x4 - bhi _0808071A - subs r0, r5, 0x5 - lsls r0, 16 - lsrs r5, r0, 16 -_0808071A: - adds r4, 0x1 - lsls r0, r4, 24 - lsrs r0, 24 - adds r1, r5, 0 - adds r1, 0x85 - lsls r1, 16 - lsrs r1, 16 - bl sub_8082FDC - lsls r4, 16 - lsrs r4, 16 - cmp r4, r7 - blt _080806DC -_08080734: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8080674 - - thumb_func_start sub_808074C -sub_808074C: @ 808074C - push {r4-r7,lr} - movs r4, 0 - ldr r7, =gUnknown_020322A4 - movs r6, 0xFF - ldr r5, =gUnknown_083399D0 -_08080756: - ldr r3, [r7] - lsls r2, r4, 1 - adds r0, r3, 0 - adds r0, 0x96 - adds r0, r2 - strh r6, [r0] - adds r1, r3, 0 - adds r1, 0x8E - adds r1, r2 - adds r0, r3, 0 - adds r0, 0x7C - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 2 - adds r0, r4, r0 - adds r0, r5 - ldrb r0, [r0] - strh r0, [r1] - adds r4, 0x1 - cmp r4, 0x3 - ble _08080756 - movs r3, 0 - ldr r7, =gUnknown_020322A4 -_08080784: - movs r4, 0 - adds r6, r3, 0x1 - lsls r5, r3, 1 -_0808078A: - ldr r2, [r7] - lsls r0, r4, 1 - adds r1, r2, 0 - adds r1, 0x8E - adds r1, r0 - ldrh r0, [r1] - cmp r0, r3 - bne _080807A2 - adds r0, r2, 0 - adds r0, 0x96 - adds r0, r5 - strh r4, [r0] -_080807A2: - adds r4, 0x1 - cmp r4, 0x3 - ble _0808078A - adds r3, r6, 0 - cmp r3, 0x3 - ble _08080784 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_808074C - - thumb_func_start sub_80807BC -sub_80807BC: @ 80807BC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - movs r0, 0 - mov r10, r0 - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - beq _080807DE - bl GetMultiplayerId - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 -_080807DE: - movs r6, 0 - ldr r7, =gUnknown_020322A4 - mov r8, r6 -_080807E4: - ldr r2, [r7] - lsls r5, r6, 1 - adds r0, r2, 0 - adds r0, 0x8E - adds r3, r0, r5 - ldrh r0, [r3] - cmp r0, 0xFF - beq _080808B6 - adds r1, r2, 0 - adds r1, 0x50 - ldrh r3, [r3] - adds r1, r3 - adds r0, r2, 0 - adds r0, 0x54 - adds r0, r6 - ldrb r0, [r0] - movs r2, 0 - mov r9, r2 - strb r0, [r1] - ldr r0, [r7] - adds r1, r0, 0 - adds r1, 0x8E - adds r1, r5 - adds r0, 0x50 - ldrh r1, [r1] - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - mov r1, r8 - lsrs r4, r1, 24 - adds r1, r4, 0 - bl StartSpriteAnim - add r1, sp, 0x8 - movs r0, 0xFF - strb r0, [r1] - ldr r0, [r7] - adds r0, 0x8E - adds r0, r5 - ldrh r0, [r0] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - ldr r0, =gLinkPlayers + 8 - adds r1, r0 - add r0, sp, 0x8 - bl StringCopy - movs r0, 0x1 - add r1, sp, 0x8 - movs r2, 0x38 - bl GetStringCenterAlignXOffset - adds r2, r0, 0 - ldr r0, [r7] - adds r0, 0x8E - adds r0, r5 - mov r5, r8 - ldrh r0, [r0] - cmp r10, r0 - bne _08080890 - lsls r2, 24 - lsrs r2, 24 - mov r0, r9 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - adds r0, r4, 0 - add r1, sp, 0x8 - movs r3, 0x1 - bl sub_80840D4 - b _080808A6 - .pool -_08080890: - lsls r2, 24 - lsrs r2, 24 - mov r1, r9 - str r1, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - adds r0, r4, 0 - add r1, sp, 0x8 - movs r3, 0x1 - bl sub_80840D4 -_080808A6: - lsrs r4, r5, 24 - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r4, 0 - movs r1, 0x3 - bl CopyWindowToVram -_080808B6: - movs r2, 0x80 - lsls r2, 17 - add r8, r2 - adds r6, 0x1 - cmp r6, 0x3 - ble _080807E4 - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80807BC - - thumb_func_start sub_80808D4 -sub_80808D4: @ 80808D4 - push {r4-r7,lr} - sub sp, 0x4 - ldr r1, =gUnknown_020322A4 - ldr r0, [r1] - ldrb r0, [r0] - adds r2, r1, 0 - cmp r0, 0x15 - bls _080808E6 - b _08080DAE -_080808E6: - lsls r0, 2 - ldr r1, =_080808F8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080808F8: - .4byte _08080950 - .4byte _080809E4 - .4byte _08080A04 - .4byte _08080A58 - .4byte _08080A84 - .4byte _08080DAE - .4byte _08080DAE - .4byte _08080DAE - .4byte _08080ABC - .4byte _08080DAE - .4byte _08080DAE - .4byte _08080AEC - .4byte _08080B3C - .4byte _08080BB0 - .4byte _08080BDC - .4byte _08080C78 - .4byte _08080CA0 - .4byte _08080DAE - .4byte _08080CAE - .4byte _08080CAE - .4byte _08080CAE - .4byte _08080CC4 -_08080950: - bl sub_800B4C0 - bl sub_8080588 - ldr r4, =gSpecialVar_ItemId - ldrh r1, [r4] - movs r0, 0 - bl sub_8082FDC - ldr r5, =gUnknown_020322A4 - ldr r0, [r5] - movs r6, 0xAC - lsls r6, 1 - adds r0, r6 - ldrh r1, [r4] - bl sub_807FE14 - ldrh r0, [r4] - ldr r2, [r5] - adds r1, r2, 0 - adds r1, 0x7C - ldrb r1, [r1] - adds r2, r6 - bl sub_8080674 - movs r4, 0 - movs r6, 0 - ldr r0, =gUnknown_020229C6 - mov r12, r0 - movs r7, 0x92 - lsls r7, 1 -_0808098E: - ldr r0, [r5] - lsls r1, r4, 1 - adds r0, 0x64 - adds r0, r1 - strh r6, [r0] - adds r3, r4, 0x1 - adds r1, r4 - lsls r1, 1 - movs r2, 0x2 -_080809A0: - ldr r0, [r5] - adds r0, r7 - adds r0, r1 - strh r6, [r0] - adds r1, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _080809A0 - adds r4, r3, 0 - cmp r4, 0x3 - ble _0808098E - ldr r4, =gUnknown_020322A4 - ldr r3, [r4] - adds r1, r3, 0 - adds r1, 0x70 - movs r2, 0 - movs r0, 0 - strh r0, [r1] - strb r2, [r3, 0x1] - ldr r1, =0x00004422 - adds r0, r1, 0 - mov r2, r12 - strh r0, [r2] - ldr r1, [r4] - b _08080CB2 - .pool -_080809E4: - bl sub_807F7D8 - lsls r0, 24 - cmp r0, 0 - bne _080809F0 - b _08080DAE -_080809F0: - ldr r0, =gUnknown_020322A4 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - bl sub_8082D28 - b _08080DAE - .pool -_08080A04: - movs r4, 0 - ldr r5, =sBlenderSyncArrowsPos - ldr r6, =gUnknown_020322A4 -_08080A0A: - ldrb r1, [r5] - ldrb r2, [r5, 0x1] - ldr r0, =sBlenderSyncArrow_SpriteTemplate - movs r3, 0x1 - bl CreateSprite - ldr r1, [r6] - adds r1, 0x54 - adds r1, r4 - strb r0, [r1] - ldr r0, [r6] - adds r0, 0x54 - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - adds r1, r4, 0 - adds r1, 0x8 - lsls r1, 24 - lsrs r1, 24 - bl StartSpriteAnim - adds r5, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - ble _08080A0A - b _08080CAE - .pool -_08080A58: - movs r0, 0x1 - negs r0, r0 - movs r4, 0 - str r4, [sp] - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r2, =gUnknown_020322A4 - ldr r1, [r2] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r2] - movs r3, 0x84 - lsls r3, 1 - adds r0, r3 - str r4, [r0] - b _08080DAE - .pool -_08080A84: - ldr r4, =gUnknown_020322A4 - ldr r1, [r4] - movs r5, 0x84 - lsls r5, 1 - adds r1, r5 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0x2 - bne _08080A9C - bl sub_807F9D0 -_08080A9C: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08080AAA - b _08080DAE -_08080AAA: - ldr r1, [r4] - movs r0, 0x8 - strb r0, [r1] - b _08080DAE - .pool -_08080ABC: - ldr r2, =gUnknown_020322A4 - ldr r1, [r2] - movs r3, 0 - movs r0, 0xB - strb r0, [r1] - ldr r0, [r2] - movs r1, 0x8A - lsls r1, 1 - adds r0, r1 - strb r3, [r0] - b _08080DAE - .pool -_08080AD8: - lsls r1, 1 - adds r0, r3, 0 - adds r0, 0x74 - adds r0, r1 - ldrh r0, [r0] - lsls r1, r4, 24 - lsrs r1, 24 - bl sub_807FD90 - b _08080B16 -_08080AEC: - movs r4, 0 - ldr r2, =gUnknown_083399D0 - ldr r0, =gUnknown_020322A4 - ldr r3, [r0] - adds r0, r3, 0 - adds r0, 0x7C - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 2 - movs r5, 0x8A - lsls r5, 1 - adds r1, r3, r5 - ldrb r1, [r1] - adds r0, r2 -_08080B08: - ldrb r2, [r0] - cmp r1, r2 - beq _08080AD8 - adds r0, 0x1 - adds r4, 0x1 - cmp r4, 0x3 - ble _08080B08 -_08080B16: - ldr r3, =gUnknown_020322A4 - ldr r1, [r3] - movs r5, 0x84 - lsls r5, 1 - adds r2, r1, r5 - movs r0, 0 - str r0, [r2] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r1, [r3] - movs r0, 0x8A - lsls r0, 1 - adds r1, r0 - b _08080CB2 - .pool -_08080B3C: - ldr r3, [r2] - movs r2, 0x84 - lsls r2, 1 - adds r1, r3, r2 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0x3C - bgt _08080B50 - b _08080DAE -_08080B50: - movs r5, 0x8A - lsls r5, 1 - adds r0, r3, r5 - adds r4, r3, 0 - adds r4, 0x7C - ldrb r0, [r0] - ldrb r1, [r4] - cmp r0, r1 - bcc _08080B94 - ldr r2, =gUnknown_083399DC - ldr r1, =gUnknown_083399E4 - ldrb r0, [r4] - subs r0, 0x2 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r2 - ldr r2, =0xffffa800 - adds r1, r2, 0 - ldrh r0, [r0] - adds r1, r0 - adds r0, r3, 0 - adds r0, 0x4A - strh r1, [r0] - ldrb r0, [r3] - adds r0, 0x1 - b _08080B98 - .pool -_08080B94: - ldrb r0, [r3] - subs r0, 0x1 -_08080B98: - strb r0, [r3] - ldr r0, =gUnknown_020322A4 - ldr r0, [r0] - movs r3, 0x84 - lsls r3, 1 - adds r0, r3 - movs r1, 0 - str r1, [r0] - b _08080DAE - .pool -_08080BB0: - ldr r4, =gUnknown_020322A4 - ldr r1, [r4] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - bl sub_808074C - movs r0, 0x2B - bl PlaySE - ldr r0, [r4] - movs r5, 0xA0 - lsls r5, 1 - adds r0, r5 - bl sub_8082CB4 - movs r0, 0x2 - bl ShowBg - b _08080DAE - .pool -_08080BDC: - movs r1, 0x80 - lsls r1, 3 - movs r0, 0 - bl SetGpuRegBits - ldr r4, =gUnknown_020322A4 - ldr r2, [r4] - adds r1, r2, 0 - adds r1, 0x4A - movs r3, 0x80 - lsls r3, 2 - adds r0, r3, 0 - ldrh r5, [r1] - adds r0, r5 - strh r0, [r1] - movs r0, 0x8D - lsls r0, 1 - adds r1, r2, r0 - ldrh r0, [r1] - adds r0, 0x4 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xFF - bls _08080C5C - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - ldr r3, [r4] - movs r2, 0x8D - lsls r2, 1 - adds r1, r3, r2 - movs r0, 0x80 - lsls r0, 1 - strh r0, [r1] - ldr r2, =gUnknown_083399DC - ldr r1, =gUnknown_083399E4 - adds r0, r3, 0 - adds r0, 0x7C - ldrb r0, [r0] - subs r0, 0x2 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r2 - ldrh r1, [r0] - adds r0, r3, 0 - adds r0, 0x4A - strh r1, [r0] - movs r0, 0xC - movs r1, 0x2 - bl SetGpuRegBits - ldr r0, [r4] - movs r3, 0x84 - lsls r3, 1 - adds r0, r3 - movs r1, 0 - str r1, [r0] - movs r0, 0x34 - bl PlaySE - bl sub_80807BC -_08080C5C: - ldr r0, [r4] - movs r5, 0xA0 - lsls r5, 1 - adds r0, r5 - bl sub_8082CB4 - b _08080DAE - .pool -_08080C78: - bl sub_8083380 - lsls r0, 24 - cmp r0, 0 - beq _08080C8C - ldr r0, =gUnknown_020322A4 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08080C8C: - ldr r0, =gUnknown_020322A4 - ldr r0, [r0] - movs r1, 0xA0 - lsls r1, 1 - adds r0, r1 - bl sub_8082CB4 - b _08080DAE - .pool -_08080CA0: - ldr r0, =gUnknown_08339C2C - movs r2, 0x10 - negs r2, r2 - movs r1, 0x78 - movs r3, 0x3 - bl CreateSprite -_08080CAE: - ldr r0, =gUnknown_020322A4 - ldr r1, [r0] -_08080CB2: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08080DAE - .pool -_08080CC4: - bl sub_8080DF8 - ldr r5, =gUnknown_020322A4 - ldr r4, [r5] - adds r1, r4, 0 - adds r1, 0x4C - movs r3, 0 - movs r2, 0 - movs r0, 0x80 - strh r0, [r1] - movs r1, 0x82 - lsls r1, 1 - adds r0, r4, r1 - str r2, [r0] - ldr r2, =0x00000123 - adds r0, r4, r2 - strb r3, [r0] - ldr r0, [r5] - adds r0, 0x72 - strb r3, [r0] - ldr r0, =sub_8081898 - bl SetMainCallback2 - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0x1 - bne _08080D44 - movs r0, 0xD0 - lsls r0, 2 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - bne _08080D30 - ldr r0, =sub_8081224 - movs r1, 0xA - bl CreateTask - ldr r1, [r5] - movs r3, 0x90 - lsls r3, 1 - adds r1, r3 - b _08080D42 - .pool -_08080D30: - ldr r0, =gUnknown_083399EC - ldr r0, [r0] - movs r1, 0xA - bl CreateTask - ldr r1, [r5] - movs r5, 0x90 - lsls r5, 1 - adds r1, r5 -_08080D42: - strb r0, [r1] -_08080D44: - ldr r1, =gSpecialVar_0x8004 - ldrh r0, [r1] - cmp r0, 0x1 - bls _08080D80 - movs r4, 0 - ldrh r1, [r1] - cmp r4, r1 - bge _08080D80 - movs r5, 0xA0 - lsls r5, 20 - ldr r6, =gUnknown_083399EC -_08080D5A: - ldm r6!, {r0} - lsrs r1, r5, 24 - bl CreateTask - ldr r1, =gUnknown_020322A4 - ldr r1, [r1] - movs r2, 0x90 - lsls r2, 1 - adds r1, r2 - adds r1, r4 - strb r0, [r1] - movs r3, 0x80 - lsls r3, 17 - adds r5, r3 - adds r4, 0x1 - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r4, r0 - blt _08080D5A -_08080D80: - bl GetCurrentMapMusic - lsls r0, 16 - lsrs r0, 16 - ldr r4, =0x00000193 - cmp r0, r4 - beq _08080D9E - bl GetCurrentMapMusic - ldr r1, =gUnknown_020322A4 - ldr r1, [r1] - movs r5, 0xAA - lsls r5, 1 - adds r1, r5 - strh r0, [r1] -_08080D9E: - adds r0, r4, 0 - bl PlayBGM - movs r0, 0x35 - bl PlaySE - bl sub_807F738 -_08080DAE: - ldr r0, =gUnknown_020322A4 - ldr r1, [r0] - movs r2, 0x8E - lsls r2, 1 - adds r0, r1, r2 - movs r3, 0 - ldrsh r0, [r0, r3] - movs r5, 0x8F - lsls r5, 1 - adds r1, r5 - movs r2, 0 - ldrsh r1, [r1, r2] - bl nullsub_31 - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl RunTextPrinters - bl UpdatePaletteFade - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80808D4 - - thumb_func_start sub_8080DF8 -sub_8080DF8: @ 8080DF8 - push {lr} - ldr r3, =gUnknown_03003110 - movs r0, 0 - ldr r1, =gUnknown_03003090 - movs r2, 0x3 -_08080E02: - strh r0, [r3] - strh r0, [r3, 0x4] - strh r0, [r1] - strh r0, [r1, 0x4] - adds r1, 0x10 - subs r2, 0x1 - cmp r2, 0 - bge _08080E02 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8080DF8 - - thumb_func_start sub_8080E20 -sub_8080E20: @ 8080E20 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r1, =gTasks - lsls r0, r3, 2 - adds r0, r3 - lsls r0, 3 - adds r2, r0, r1 - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - lsls r0, 16 - asrs r0, 16 - movs r4, 0xA - ldrsh r1, [r2, r4] - cmp r0, r1 - ble _08080E58 - ldr r0, =gUnknown_03003090 - movs r4, 0xC - ldrsh r1, [r2, r4] - lsls r1, 4 - adds r0, 0x4 - adds r1, r0 - ldr r0, =0x00002345 - strh r0, [r1] - adds r0, r3, 0 - bl DestroyTask -_08080E58: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8080E20 - - thumb_func_start sub_8080E6C -sub_8080E6C: @ 8080E6C - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =sub_8080E20 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0xA] - strh r5, [r1, 0xC] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8080E6C - - thumb_func_start sub_8080EA4 -sub_8080EA4: @ 8080EA4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r4, =gUnknown_020322A4 - ldr r0, [r4] - adds r0, 0x4A - ldrh r0, [r0] - movs r1, 0x1 - bl task_tutorial_oak_boy_girl - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - beq _08080EC2 - b _08080FB8 -_08080EC2: - ldr r2, =gTasks - lsls r1, r5, 2 - adds r0, r1, r5 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r0, [r0, r2] - adds r6, r1, 0 - cmp r0, 0 - beq _08080ED8 - b _08080FC6 -_08080ED8: - ldr r0, [r4] - ldr r1, =0x00000123 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08080F9A - bl Random - lsls r0, 16 - lsrs r0, 16 - ldr r1, =0x0000028f - bl __udivsi3 - lsls r0, 24 - lsrs r1, r0, 24 - adds r3, r1, 0 - ldr r0, [r4] - adds r0, 0x4C - movs r4, 0 - ldrsh r2, [r0, r4] - ldr r0, =0x000001f3 - cmp r2, r0 - bgt _08080F40 - cmp r1, 0x4B - bls _08080F2C - ldr r1, =gUnknown_03003090 - ldr r0, =0x00004523 - b _08080F30 - .pool -_08080F2C: - ldr r1, =gUnknown_03003090 - ldr r0, =0x00005432 -_08080F30: - strh r0, [r1, 0x14] - ldr r0, =0x00005432 - b _08080F9E - .pool -_08080F40: - ldr r0, =0x000005db - cmp r2, r0 - bgt _08080F6E - cmp r1, 0x50 - bhi _08080F9A - adds r0, r1, 0 - subs r0, 0x15 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3B - bhi _08080F68 - ldr r1, =gUnknown_03003090 - ldr r0, =0x00005432 - b _08080F9E - .pool -_08080F68: - cmp r1, 0x9 - bhi _08080FA0 - b _08080F90 -_08080F6E: - cmp r1, 0x5A - bhi _08080F9A - adds r0, r1, 0 - subs r0, 0x47 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bhi _08080F8C - ldr r1, =gUnknown_03003090 - ldr r0, =0x00005432 - b _08080F9E - .pool -_08080F8C: - cmp r3, 0x1D - bhi _08080FA0 -_08080F90: - movs r0, 0x1 - movs r1, 0x5 - bl sub_8080E6C - b _08080FA0 -_08080F9A: - ldr r1, =gUnknown_03003090 - ldr r0, =0x00004523 -_08080F9E: - strh r0, [r1, 0x14] -_08080FA0: - ldr r0, =gTasks - adds r1, r6, r5 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - b _08080FC4 - .pool -_08080FB8: - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - movs r0, 0 -_08080FC4: - strh r0, [r1, 0x8] -_08080FC6: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8080EA4 - - thumb_func_start sub_8080FD0 -sub_8080FD0: @ 8080FD0 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r6, =gUnknown_020322A4 - ldr r3, [r6] - adds r0, r3, 0 - adds r0, 0x4A - ldrh r0, [r0] - movs r1, 0xC0 - lsls r1, 5 - adds r0, r1 - ldr r1, =0x0000ffff - ands r0, r1 - adds r1, r3, 0 - adds r1, 0x9A - ldrb r1, [r1] - lsrs r2, r0, 8 - ldr r0, =gUnknown_083399E7 - adds r1, r0 - ldrb r1, [r1] - adds r0, r1, 0 - adds r0, 0x14 - cmp r2, r0 - bls _080810E0 - adds r0, 0x14 - cmp r2, r0 - bcs _080810E0 - ldr r2, =gTasks - lsls r1, r4, 2 - adds r0, r1, r4 - lsls r0, 3 - adds r2, r0, r2 - movs r5, 0x8 - ldrsh r0, [r2, r5] - adds r5, r1, 0 - cmp r0, 0 - bne _080810EE - ldr r1, =0x00000123 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080810CC - bl Random - lsls r0, 16 - lsrs r0, 16 - ldr r1, =0x0000028f - bl __udivsi3 - lsls r0, 24 - lsrs r2, r0, 24 - adds r3, r2, 0 - ldr r0, [r6] - adds r0, 0x4C - movs r6, 0 - ldrsh r1, [r0, r6] - ldr r0, =0x000001f3 - cmp r1, r0 - bgt _08081088 - cmp r2, 0x42 - bls _08081078 - ldr r1, =gUnknown_03003090 - ldr r0, =0x00004523 - strh r0, [r1, 0x24] - b _080810B0 - .pool -_08081078: - ldr r1, =gUnknown_03003090 - ldr r0, =0x00005432 - strh r0, [r1, 0x24] - b _080810B0 - .pool -_08081088: - cmp r2, 0x41 - bls _08081092 - ldr r1, =gUnknown_03003090 - ldr r0, =0x00004523 - strh r0, [r1, 0x24] -_08081092: - adds r0, r2, 0 - subs r0, 0x29 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x18 - bhi _080810A4 - ldr r1, =gUnknown_03003090 - ldr r0, =0x00005432 - strh r0, [r1, 0x24] -_080810A4: - cmp r3, 0x9 - bhi _080810B0 - movs r0, 0x2 - movs r1, 0x5 - bl sub_8080E6C -_080810B0: - ldr r0, =gTasks - adds r1, r5, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - b _080810EC - .pool -_080810CC: - ldr r0, =gUnknown_03003090 - ldr r1, =0x00004523 - strh r1, [r0, 0x24] - movs r0, 0x1 - strh r0, [r2, 0x8] - b _080810EE - .pool -_080810E0: - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0 -_080810EC: - strh r0, [r1, 0x8] -_080810EE: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8080FD0 - - thumb_func_start sub_80810F8 -sub_80810F8: @ 80810F8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r5, =gUnknown_020322A4 - ldr r3, [r5] - adds r0, r3, 0 - adds r0, 0x4A - ldrh r0, [r0] - movs r1, 0xC0 - lsls r1, 5 - adds r0, r1 - ldr r1, =0x0000ffff - ands r0, r1 - adds r1, r3, 0 - adds r1, 0x9C - ldrb r1, [r1] - lsrs r2, r0, 8 - ldr r0, =gUnknown_083399E7 - adds r1, r0 - ldrb r1, [r1] - adds r0, r1, 0 - adds r0, 0x14 - cmp r2, r0 - bls _0808120C - adds r0, 0x14 - cmp r2, r0 - bcs _0808120C - ldr r2, =gTasks - lsls r1, r4, 2 - adds r0, r1, r4 - lsls r0, 3 - adds r2, r0, r2 - movs r6, 0x8 - ldrsh r0, [r2, r6] - adds r6, r1, 0 - cmp r0, 0 - bne _0808121A - ldr r1, =0x00000123 - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080811F8 - bl Random - lsls r0, 16 - lsrs r0, 16 - ldr r1, =0x0000028f - bl __udivsi3 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, [r5] - adds r0, 0x4C - movs r3, 0 - ldrsh r1, [r0, r3] - ldr r0, =0x000001f3 - cmp r1, r0 - bgt _080811AC - cmp r2, 0x58 - bls _0808119C - ldr r1, =gUnknown_03003090 - ldr r0, =0x00004523 - strh r0, [r1, 0x34] - b _080811DE - .pool -_0808119C: - ldr r1, =gUnknown_03003090 - ldr r0, =0x00005432 - strh r0, [r1, 0x34] - b _080811DE - .pool -_080811AC: - cmp r2, 0x3C - bls _080811C0 - ldr r1, =gUnknown_03003090 - ldr r0, =0x00004523 - b _080811D0 - .pool -_080811C0: - adds r0, r2, 0 - subs r0, 0x38 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - bhi _080811D2 - ldr r1, =gUnknown_03003090 - ldr r0, =0x00005432 -_080811D0: - strh r0, [r1, 0x34] -_080811D2: - cmp r2, 0x4 - bhi _080811DE - movs r0, 0x3 - movs r1, 0x5 - bl sub_8080E6C -_080811DE: - ldr r0, =gTasks - adds r1, r6, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x1 - b _08081218 - .pool -_080811F8: - ldr r0, =gUnknown_03003090 - ldr r1, =0x00004523 - strh r1, [r0, 0x34] - movs r0, 0x1 - strh r0, [r2, 0x8] - b _0808121A - .pool -_0808120C: - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0 -_08081218: - strh r0, [r1, 0x8] -_0808121A: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80810F8 - - thumb_func_start sub_8081224 -sub_8081224: @ 8081224 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gUnknown_020322A4 - ldr r0, [r0] - adds r0, 0x4A - ldrh r0, [r0] - movs r1, 0x1 - bl task_tutorial_oak_boy_girl - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _08081270 - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r2, r1, r0 - movs r1, 0x8 - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _0808127E - ldr r0, =gUnknown_03003090 - ldr r1, =0x00004523 - strh r1, [r0, 0x14] - movs r0, 0x1 - strh r0, [r2, 0x8] - b _0808127E - .pool -_08081270: - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0 - strh r0, [r1, 0x8] -_0808127E: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8081224 - - thumb_func_start sub_8081288 -sub_8081288: @ 8081288 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r7, r0, 16 - mov r8, r7 - lsls r1, 24 - ldr r0, =gUnknown_08339B40 - ldr r4, =sBlenderSyncArrowsPos - lsrs r1, 23 - adds r2, r1, r4 - ldrb r6, [r2] - ldr r5, =gUnknown_083399C0 - adds r2, r1, r5 - movs r3, 0 - ldrsb r3, [r2, r3] - lsls r2, r3, 2 - adds r2, r3 - lsls r2, 1 - subs r6, r2 - adds r4, 0x1 - adds r4, r1, r4 - ldrb r2, [r4] - adds r5, 0x1 - adds r1, r5 - movs r3, 0 - ldrsb r3, [r1, r3] - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 1 - subs r2, r1 - adds r1, r6, 0 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r1, r0, 24 - adds r2, r1, 0 - ldr r0, =0x00004523 - cmp r7, r0 - bne _08081314 - lsls r4, r1, 4 - adds r4, r1 - lsls r4, 2 - ldr r5, =gSprites - adds r0, r4, r5 - movs r1, 0x2 - bl StartSpriteAnim - adds r5, 0x1C - adds r4, r5 - ldr r0, =sub_8082F9C - str r0, [r4] - movs r0, 0x28 - bl PlaySE - b _08081358 - .pool -_08081314: - ldr r0, =0x00005432 - cmp r7, r0 - bne _0808133C - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - movs r1, 0 - bl StartSpriteAnim - movs r0, 0x1F - bl PlaySE - b _08081358 - .pool -_0808133C: - ldr r0, =0x00002345 - cmp r8, r0 - bne _08081358 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - movs r1, 0x1 - bl StartSpriteAnim - movs r0, 0x20 - bl PlaySE -_08081358: - bl sub_8082E84 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8081288 - - thumb_func_start sub_8081370 -sub_8081370: @ 8081370 - push {r4-r7,lr} - lsls r0, 16 - lsrs r4, r0, 16 - adds r5, r4, 0 - bl sub_807F738 - ldr r0, =0x00004523 - cmp r4, r0 - beq _080813A4 - cmp r4, r0 - bgt _08081398 - ldr r0, =0x00002345 - cmp r4, r0 - beq _08081474 - b _080814A0 - .pool -_08081398: - ldr r0, =0x00005432 - cmp r5, r0 - beq _0808143C - b _080814A0 - .pool -_080813A4: - ldr r7, =gUnknown_020322A4 - ldr r4, [r7] - adds r5, r4, 0 - adds r5, 0x4C - ldrh r6, [r5] - movs r0, 0 - ldrsh r1, [r5, r0] - ldr r0, =0x000005db - cmp r1, r0 - bgt _080813E0 - ldr r1, =gUnknown_08339CC3 - adds r0, r4, 0 - adds r0, 0x7C - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - movs r0, 0xC0 - lsls r0, 1 - bl __divsi3 - adds r0, r6, r0 - strh r0, [r5] - b _080814A0 - .pool -_080813E0: - ldr r1, =gUnknown_08339CC3 - adds r0, r4, 0 - adds r0, 0x7C - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x80 - bl __divsi3 - adds r0, r6, r0 - strh r0, [r5] - movs r1, 0x8E - lsls r1, 1 - adds r4, r1 - movs r1, 0 - ldrsh r0, [r5, r1] - movs r1, 0x64 - bl __divsi3 - adds r1, r0, 0 - subs r1, 0xA - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_80832BC - ldr r0, [r7] - movs r1, 0x8F - lsls r1, 1 - adds r4, r0, r1 - adds r0, 0x4C - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x64 - bl __divsi3 - adds r1, r0, 0 - subs r1, 0xA - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_80832BC - b _080814A0 - .pool -_0808143C: - ldr r0, =gUnknown_020322A4 - ldr r2, [r0] - adds r4, r2, 0 - adds r4, 0x4C - ldrh r5, [r4] - movs r0, 0 - ldrsh r1, [r4, r0] - ldr r0, =0x000005db - cmp r1, r0 - bgt _080814A0 - ldr r1, =gUnknown_08339CC3 - adds r0, r2, 0 - adds r0, 0x7C - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x80 - lsls r0, 1 - bl __divsi3 - adds r0, r5, r0 - b _0808149E - .pool -_08081474: - ldr r0, =gUnknown_020322A4 - ldr r0, [r0] - adds r4, r0, 0 - adds r4, 0x4C - ldr r1, =gUnknown_08339CC3 - adds r0, 0x7C - ldrb r0, [r0] - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x80 - lsls r0, 1 - bl __divsi3 - ldrh r1, [r4] - subs r1, r0 - strh r1, [r4] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x7F - bgt _080814A0 - movs r0, 0x80 -_0808149E: - strh r0, [r4] -_080814A0: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8081370 - - thumb_func_start sub_80814B0 -sub_80814B0: @ 80814B0 - push {lr} - lsls r0, 16 - lsrs r3, r0, 16 - lsls r1, 16 - lsrs r1, 16 - lsls r2, 16 - lsrs r2, 16 - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - beq _080814E4 - ldr r0, =gLinkVSyncDisabled - ldrb r0, [r0] - cmp r0, 0 - beq _080814E4 - movs r0, 0xFF - lsls r0, 8 - ands r0, r3 - cmp r0, r2 - bne _080814EC - movs r0, 0x1 - b _080814EE - .pool -_080814E4: - cmp r3, r1 - bne _080814EC - movs r0, 0x1 - b _080814EE -_080814EC: - movs r0, 0 -_080814EE: - pop {r1} - bx r1 - thumb_func_end sub_80814B0 - - thumb_func_start sub_80814F4 -sub_80814F4: @ 80814F4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - beq _0808153C - ldr r3, =gUnknown_03003110 - ldrh r0, [r3, 0x4] - ldr r2, =gUnknown_03003090 - cmp r0, 0 - beq _0808151C - movs r1, 0 - strh r0, [r2, 0x4] - ldr r0, =0x00004444 - strh r0, [r2] - strh r1, [r3, 0x4] -_0808151C: - ldr r0, =gUnknown_03003090 - ldr r3, =0x00004444 - adds r1, r2, 0 - adds r1, 0x10 - adds r2, r0, 0 - adds r2, 0x14 - movs r7, 0x2 -_0808152A: - ldrh r0, [r2] - cmp r0, 0 - beq _08081532 - strh r3, [r1] -_08081532: - adds r1, 0x10 - adds r2, 0x10 - subs r7, 0x1 - cmp r7, 0 - bge _0808152A -_0808153C: - movs r7, 0 - ldr r1, =gUnknown_020322A4 - ldr r0, [r1] - adds r0, 0x7C - ldrb r0, [r0] - cmp r7, r0 - blt _0808154C - b _080816F6 -_0808154C: - ldr r0, =gUnknown_03003090 - adds r2, r0, 0 - adds r2, 0x20 - str r2, [sp] - movs r1, 0 - mov r9, r1 - movs r2, 0 - str r2, [sp, 0x4] - mov r8, r0 - ldr r0, =0x00005432 - mov r10, r0 -_08081562: - mov r1, r8 - ldrh r0, [r1] - ldr r1, =0x00004444 - movs r2, 0x88 - lsls r2, 7 - bl sub_80814B0 - cmp r0, 0 - bne _08081576 - b _080816D2 -_08081576: - ldr r6, =gUnknown_020322A4 - ldr r0, [r6] - adds r0, 0x96 - ldr r2, [sp, 0x4] - adds r0, r2 - ldrh r5, [r0] - mov r0, r8 - ldrh r4, [r0, 0x4] - ldr r1, =0x00004523 - cmp r4, r1 - bne _080815F4 - adds r0, r1, 0 - bl sub_8081370 - ldr r0, [r6] - movs r2, 0x8B - lsls r2, 1 - adds r4, r0, r2 - adds r0, 0x4C - movs r1, 0 - ldrsh r0, [r0, r1] - movs r1, 0x37 - bl __divsi3 - ldrh r1, [r4] - adds r1, r0 - strh r1, [r4] - lsls r1, 16 - ldr r0, =0x03e70000 - cmp r1, r0 - bls _080815BA - movs r0, 0xFA - lsls r0, 2 - strh r0, [r4] -_080815BA: - lsls r1, r5, 24 - lsrs r1, 24 - ldr r0, =0x00004523 - bl sub_8081288 - ldr r1, [r6] - movs r2, 0x92 - lsls r2, 1 - adds r1, r2 - add r1, r9 - ldrh r0, [r1] - adds r0, 0x1 - b _0808165E - .pool -_080815F4: - cmp r4, r10 - bne _08081632 - mov r0, r10 - bl sub_8081370 - ldr r0, [r6] - movs r1, 0x8B - lsls r1, 1 - adds r4, r0, r1 - adds r0, 0x4C - movs r2, 0 - ldrsh r0, [r0, r2] - movs r1, 0x46 - bl __divsi3 - ldrh r1, [r4] - adds r1, r0 - strh r1, [r4] - lsls r1, r5, 24 - lsrs r1, 24 - mov r0, r10 - bl sub_8081288 - ldr r1, [r6] - movs r0, 0x93 - lsls r0, 1 - adds r1, r0 - add r1, r9 - ldrh r0, [r1] - adds r0, 0x1 - b _0808165E -_08081632: - ldr r0, =0x00002345 - cmp r4, r0 - bne _0808166A - lsls r1, r5, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_8081288 - adds r0, r4, 0 - bl sub_8081370 - ldr r0, [r6] - movs r1, 0x94 - lsls r1, 1 - adds r0, r1 - mov r2, r9 - adds r1, r0, r2 - ldrh r2, [r1] - ldr r0, =0x000003e6 - cmp r2, r0 - bhi _08081660 - adds r0, r2, 0x1 -_0808165E: - strh r0, [r1] -_08081660: - mov r0, r8 - ldrh r1, [r0, 0x4] - ldr r0, =0x00002345 - cmp r1, r0 - beq _08081678 -_0808166A: - ldr r1, [sp] - ldrh r0, [r1] - ldr r2, =0x00004523 - cmp r0, r2 - beq _08081678 - cmp r0, r10 - bne _080816D2 -_08081678: - ldr r0, =gUnknown_020322A4 - ldr r0, [r0] - adds r2, r0, 0 - adds r2, 0x4C - movs r0, 0 - ldrsh r1, [r2, r0] - ldr r0, =0x000005dc - cmp r1, r0 - ble _080816C8 - adds r0, r1, 0 - ldr r2, =0xfffffd12 - adds r0, r2 - movs r1, 0x14 - bl __divsi3 - adds r1, r0, 0 - movs r0, 0x80 - lsls r0, 1 - adds r1, r0 - lsls r1, 16 - lsrs r1, 16 - ldr r0, =gMPlay_BGM - bl m4aMPlayTempoControl - b _080816D2 - .pool -_080816C8: - ldr r0, =gMPlay_BGM - movs r1, 0x80 - lsls r1, 1 - bl m4aMPlayTempoControl -_080816D2: - ldr r1, [sp] - adds r1, 0x2 - str r1, [sp] - movs r2, 0x6 - add r9, r2 - ldr r0, [sp, 0x4] - adds r0, 0x2 - str r0, [sp, 0x4] - movs r1, 0x10 - add r8, r1 - adds r7, 0x1 - ldr r0, =gUnknown_020322A4 - ldr r0, [r0] - adds r0, 0x7C - ldrb r0, [r0] - cmp r7, r0 - bge _080816F6 - b _08081562 -_080816F6: - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - beq _08081722 - movs r7, 0 - ldr r3, =gUnknown_020322A4 - ldr r0, [r3] - adds r0, 0x7C - ldrb r0, [r0] - cmp r7, r0 - bge _08081722 - movs r2, 0 - ldr r1, =gUnknown_03003090 -_08081710: - strh r2, [r1] - strh r2, [r1, 0x4] - adds r1, 0x10 - adds r7, 0x1 - ldr r0, [r3] - adds r0, 0x7C - ldrb r0, [r0] - cmp r7, r0 - blt _08081710 -_08081722: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80814F4 - - thumb_func_start sub_8081744 -sub_8081744: @ 8081744 - push {r4-r6,lr} - movs r4, 0 - movs r6, 0 - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - beq _0808175A - bl GetMultiplayerId - lsls r0, 24 - lsrs r6, r0, 24 -_0808175A: - ldr r3, =gUnknown_020322A4 - ldr r1, [r3] - lsls r2, r6, 1 - adds r0, r1, 0 - adds r0, 0x96 - adds r0, r2 - ldrb r5, [r0] - adds r1, 0x63 - ldrb r0, [r1] - cmp r0, 0 - bne _0808182C - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x13] - cmp r0, 0x2 - bne _080817A8 - ldr r2, =gMain - ldrh r1, [r2, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080817B6 - ldrh r2, [r2, 0x28] - ldr r1, =0x00000201 - adds r0, r1, 0 - ands r0, r2 - cmp r0, r1 - beq _080817B6 - b _080817BA - .pool -_080817A8: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080817B6 - movs r4, 0x1 -_080817B6: - cmp r4, 0 - beq _0808182C -_080817BA: - ldr r4, =gUnknown_020322A4 - ldr r1, [r4] - lsls r2, r5, 1 - adds r0, r1, 0 - adds r0, 0x8E - adds r0, r2 - adds r1, 0x50 - ldrh r0, [r0] - adds r1, r0 - ldrb r1, [r1] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - adds r1, r5, 0x4 - lsls r1, 24 - lsrs r1, 24 - bl StartSpriteAnim - ldr r0, [r4] - adds r0, 0x4A - ldrh r0, [r0] - adds r1, r6, 0 - bl task_tutorial_oak_boy_girl - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _08081810 - ldr r1, =gUnknown_03003110 - ldr r0, =0x00004523 - b _08081828 - .pool -_08081810: - cmp r0, 0x1 - bne _08081824 - ldr r1, =gUnknown_03003110 - ldr r0, =0x00005432 - b _08081828 - .pool -_08081824: - ldr r1, =gUnknown_03003110 - ldr r0, =0x00002345 -_08081828: - strh r0, [r1, 0x4] - adds r3, r4, 0 -_0808182C: - ldr r1, [r3] - adds r1, 0x72 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x5 - bls _0808185A - ldr r0, [r3] - adds r1, r0, 0 - adds r1, 0x4C - ldrh r2, [r1] - movs r4, 0 - ldrsh r0, [r1, r4] - cmp r0, 0x80 - ble _08081852 - subs r0, r2, 0x1 - strh r0, [r1] -_08081852: - ldr r0, [r3] - adds r0, 0x72 - movs r1, 0 - strb r1, [r0] -_0808185A: - ldr r0, =gUnknown_020322D5 - ldrb r0, [r0] - cmp r0, 0 - beq _0808187E - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x80 - lsls r0, 2 - ands r0, r1 - cmp r0, 0 - beq _0808187E - ldr r0, [r3] - ldr r1, =0x00000123 - adds r2, r0, r1 - ldrb r0, [r2] - movs r1, 0x1 - eors r0, r1 - strb r0, [r2] -_0808187E: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8081744 - - thumb_func_start sub_8081898 -sub_8081898: @ 8081898 - push {r4-r6,lr} - bl sub_8082D28 - ldr r4, =gUnknown_020322A4 - ldr r0, [r4] - movs r1, 0x82 - lsls r1, 1 - adds r2, r0, r1 - ldr r1, [r2] - ldr r0, =0x00057e03 - cmp r1, r0 - bhi _080818B4 - adds r0, r1, 0x1 - str r0, [r2] -_080818B4: - bl sub_8081744 - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0x4C - ldrh r0, [r0] - movs r5, 0x8B - lsls r5, 1 - adds r1, r5 - ldrh r1, [r1] - bl sub_800A994 - bl sub_80814F4 - ldr r0, [r4] - adds r0, r5 - ldrh r0, [r0] - movs r6, 0xFA - lsls r6, 2 - adds r1, r6, 0 - bl sub_8083140 - ldr r0, [r4] - adds r0, 0x4C - ldrh r0, [r0] - bl sub_8083230 - bl sub_808330C - bl sub_8082AD4 - ldr r2, [r4] - adds r3, r2, 0 - adds r3, 0x63 - ldrb r0, [r3] - cmp r0, 0 - bne _0808191A - movs r1, 0x8C - lsls r1, 1 - adds r0, r2, r1 - ldrh r1, [r0] - ldr r0, =0x000003e7 - cmp r1, r0 - bls _0808191A - adds r0, r2, r5 - strh r6, [r0] - movs r0, 0x1 - strb r0, [r3] - ldr r0, =sub_8081FC8 - bl SetMainCallback2 -_0808191A: - ldr r0, =gUnknown_020322A4 - ldr r1, [r0] - movs r2, 0x8E - lsls r2, 1 - adds r0, r1, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - movs r2, 0x8F - lsls r2, 1 - adds r1, r2 - movs r2, 0 - ldrsh r1, [r1, r2] - bl nullsub_31 - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl RunTextPrinters - bl UpdatePaletteFade - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8081898 - - thumb_func_start nullsub_31 -nullsub_31: @ 8081960 - bx lr - thumb_func_end nullsub_31 - - thumb_func_start help_system_is_not_first_time -help_system_is_not_first_time: @ 8081964 - push {r4,r5,lr} - lsls r1, 24 - lsls r2, 24 - lsrs r1, 20 - adds r4, r1, r0 - lsrs r2, 20 - adds r5, r2, r0 - ldrh r0, [r4] - ldrh r1, [r5] - cmp r0, r1 - bne _080819A2 - adds r0, r4, 0x2 - adds r1, r5, 0x2 - bl StringCompare - cmp r0, 0 - bne _080819B0 - ldr r0, [r4, 0x8] - ldr r2, =0xffffff00 - ands r0, r2 - ldr r1, [r5, 0x8] - ands r1, r2 - cmp r0, r1 - bne _080819B0 - ldr r0, [r4, 0xC] - ldr r2, =0x00ffffff - ands r0, r2 - ldr r1, [r5, 0xC] - ands r1, r2 - cmp r0, r1 - bne _080819B0 -_080819A2: - movs r0, 0x1 - b _080819B2 - .pool -_080819B0: - movs r0, 0 -_080819B2: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end help_system_is_not_first_time - - thumb_func_start sub_80819B8 -sub_80819B8: @ 80819B8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - mov r10, r0 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x10] - lsls r3, 24 - lsrs r3, 24 - mov r2, sp - movs r4, 0x5 -_080819D4: - ldrh r0, [r1] - strh r0, [r2] - adds r1, 0x2 - adds r2, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080819D4 - movs r6, 0 - mov r1, sp - movs r4, 0x4 -_080819E8: - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _080819F2 - adds r6, 0x1 -_080819F2: - adds r1, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _080819E8 - cmp r6, 0x5 - beq _08081A46 - cmp r3, 0x3 - bhi _08081A46 - movs r4, 0 - ldr r3, [sp, 0x10] - cmp r4, r3 - bge _08081A5E - mov r3, r10 -_08081A0C: - movs r6, 0 - ldr r7, [sp, 0x10] - cmp r6, r7 - bge _08081A54 - mov r9, r3 - mov r5, r10 - lsls r0, r4, 24 - mov r8, r0 -_08081A1C: - mov r1, r9 - ldrh r0, [r1] - ldrh r2, [r5] - cmp r0, r2 - bne _08081A4A - cmp r4, r6 - beq _08081A4A - cmp r0, 0xAF - bne _08081A46 - lsls r2, r6, 24 - lsrs r2, 24 - mov r0, r10 - mov r7, r8 - lsrs r1, r7, 24 - str r3, [sp, 0xC] - bl help_system_is_not_first_time - lsls r0, 24 - ldr r3, [sp, 0xC] - cmp r0, 0 - beq _08081A4A -_08081A46: - movs r0, 0xC - b _08081B9E -_08081A4A: - adds r5, 0x10 - adds r6, 0x1 - ldr r0, [sp, 0x10] - cmp r6, r0 - blt _08081A1C -_08081A54: - adds r3, 0x10 - adds r4, 0x1 - ldr r1, [sp, 0x10] - cmp r4, r1 - blt _08081A0C -_08081A5E: - movs r2, 0 - mov r1, sp - movs r4, 0x4 -_08081A64: - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, 0 - ble _08081A72 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 -_08081A72: - adds r1, 0x2 - subs r4, 0x1 - cmp r4, 0 - bge _08081A64 - cmp r2, 0x3 - bls _08081A82 - movs r0, 0xD - b _08081B9E -_08081A82: - cmp r2, 0x3 - bne _08081A8A - movs r0, 0xB - b _08081B9E -_08081A8A: - movs r4, 0 - mov r1, sp -_08081A8E: - movs r7, 0 - ldrsh r0, [r1, r7] - cmp r0, 0x32 - ble _08081A98 - b _08081B98 -_08081A98: - adds r1, 0x2 - adds r4, 0x1 - cmp r4, 0x4 - ble _08081A8E - cmp r2, 0x1 - bne _08081AEA - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - ble _08081AB2 - movs r0, 0x1 - b _08081B9E -_08081AB2: - mov r0, sp - ldrh r0, [r0, 0x2] - lsls r0, 16 - cmp r0, 0 - ble _08081AC0 - movs r0, 0x2 - b _08081B9E -_08081AC0: - mov r0, sp - movs r3, 0x4 - ldrsh r0, [r0, r3] - cmp r0, 0 - ble _08081ACE - movs r0, 0x3 - b _08081B9E -_08081ACE: - mov r0, sp - movs r4, 0x6 - ldrsh r0, [r0, r4] - cmp r0, 0 - ble _08081ADC - movs r0, 0x4 - b _08081B9E -_08081ADC: - mov r0, sp - movs r7, 0x8 - ldrsh r0, [r0, r7] - cmp r0, 0 - ble _08081AEA - movs r0, 0x5 - b _08081B9E -_08081AEA: - cmp r2, 0x2 - bne _08081B9C - movs r4, 0 - ldr r5, =gUnknown_03000DF8 - mov r1, sp - adds r2, r5, 0 -_08081AF6: - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, 0 - ble _08081B02 - strh r4, [r2] - adds r2, 0x2 -_08081B02: - adds r1, 0x2 - adds r4, 0x1 - cmp r4, 0x4 - ble _08081AF6 - movs r4, 0 - ldrsh r3, [r5, r4] - lsls r0, r3, 1 - mov r7, sp - adds r1, r7, r0 - movs r0, 0x2 - ldrsh r2, [r5, r0] - lsls r0, r2, 1 - add r0, sp - movs r4, 0 - ldrsh r1, [r1, r4] - movs r7, 0 - ldrsh r0, [r0, r7] - cmp r1, r0 - blt _08081B58 - adds r0, r3, 0 - cmp r0, 0 - bne _08081B38 - lsls r0, r2, 16 - b _08081B62 - .pool -_08081B38: - cmp r0, 0x1 - bne _08081B40 - lsls r0, r2, 16 - b _08081B6E -_08081B40: - cmp r0, 0x2 - bne _08081B48 - lsls r0, r2, 16 - b _08081B7A -_08081B48: - cmp r0, 0x3 - bne _08081B50 - lsls r0, r2, 16 - b _08081B86 -_08081B50: - cmp r0, 0x4 - bne _08081B9C - lsls r0, r2, 16 - b _08081B92 -_08081B58: - movs r2, 0x2 - ldrsh r0, [r5, r2] - cmp r0, 0 - bne _08081B68 - lsls r0, r3, 16 -_08081B62: - movs r1, 0x6 - orrs r0, r1 - b _08081B9E -_08081B68: - cmp r0, 0x1 - bne _08081B74 - lsls r0, r3, 16 -_08081B6E: - movs r1, 0x7 - orrs r0, r1 - b _08081B9E -_08081B74: - cmp r0, 0x2 - bne _08081B80 - lsls r0, r3, 16 -_08081B7A: - movs r1, 0x8 - orrs r0, r1 - b _08081B9E -_08081B80: - cmp r0, 0x3 - bne _08081B8C - lsls r0, r3, 16 -_08081B86: - movs r1, 0x9 - orrs r0, r1 - b _08081B9E -_08081B8C: - cmp r0, 0x4 - bne _08081B9C - lsls r0, r3, 16 -_08081B92: - movs r1, 0xA - orrs r0, r1 - b _08081B9E -_08081B98: - movs r0, 0xE - b _08081B9E -_08081B9C: - movs r0, 0 -_08081B9E: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80819B8 - - thumb_func_start sub_8081BB0 -sub_8081BB0: @ 8081BB0 - ldr r1, =gUnknown_03000E04 - strh r0, [r1] - bx lr - .pool - thumb_func_end sub_8081BB0 - - thumb_func_start sub_8081BBC -sub_8081BBC: @ 8081BBC - ldr r0, =gUnknown_03000E04 - movs r1, 0 - ldrsh r0, [r0, r1] - bx lr - .pool - thumb_func_end sub_8081BBC - - thumb_func_start sub_8081BC8 -sub_8081BC8: @ 8081BC8 - ldr r1, =gUnknown_03000E06 - strh r0, [r1] - bx lr - .pool - thumb_func_end sub_8081BC8 - - thumb_func_start sub_8081BD4 -sub_8081BD4: @ 8081BD4 - ldr r0, =gUnknown_03000E06 - movs r1, 0 - ldrsh r0, [r0, r1] - bx lr - .pool - thumb_func_end sub_8081BD4 - - thumb_func_start sub_8081BE0 -sub_8081BE0: @ 8081BE0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - str r0, [sp] - mov r8, r1 - str r3, [sp, 0x4] - ldr r0, [sp, 0x30] - lsls r2, 24 - lsrs r2, 24 - mov r9, r2 - lsls r0, 16 - lsrs r0, 16 - str r0, [sp, 0x8] - ldr r7, =gUnknown_03000DE8 - adds r2, r7, 0 - movs r1, 0 - adds r0, r7, 0 - adds r0, 0xA -_08081C0A: - strh r1, [r0] - subs r0, 0x2 - cmp r0, r2 - bge _08081C0A - movs r6, 0 - cmp r6, r9 - bge _08081C40 - ldr r0, =gUnknown_03000DE8 - mov r12, r0 - ldr r5, [sp] - adds r5, 0x9 -_08081C20: - movs r3, 0 - adds r4, r5, 0 - mov r2, r12 -_08081C26: - adds r1, r4, r3 - ldrh r0, [r2] - ldrb r1, [r1] - adds r0, r1 - strh r0, [r2] - adds r2, 0x2 - adds r3, 0x1 - cmp r3, 0x5 - ble _08081C26 - adds r5, 0x10 - adds r6, 0x1 - cmp r6, r9 - blt _08081C20 -_08081C40: - movs r1, 0 - ldrsh r3, [r7, r1] - ldrh r0, [r7] - ldrh r1, [r7, 0x2] - subs r0, r1 - strh r0, [r7] - ldrh r0, [r7, 0x4] - subs r1, r0 - strh r1, [r7, 0x2] - ldrh r1, [r7, 0x6] - subs r0, r1 - strh r0, [r7, 0x4] - ldrh r0, [r7, 0x8] - subs r1, r0 - strh r1, [r7, 0x6] - subs r0, r3 - strh r0, [r7, 0x8] - movs r3, 0 - movs r2, 0 - adds r1, r7, 0 - movs r6, 0x4 -_08081C6A: - movs r4, 0 - ldrsh r0, [r1, r4] - cmp r0, 0 - bge _08081C76 - strh r2, [r1] - adds r3, 0x1 -_08081C76: - adds r1, 0x2 - subs r6, 0x1 - cmp r6, 0 - bge _08081C6A - lsls r0, r3, 24 - lsrs r0, 24 - mov r10, r0 - movs r4, 0 - ldr r1, =gUnknown_03000DE8 - movs r6, 0x4 -_08081C8A: - ldrh r2, [r1] - movs r5, 0 - ldrsh r0, [r1, r5] - cmp r0, 0 - ble _08081CA4 - cmp r0, r3 - bge _08081CA0 - strh r4, [r1] - b _08081CA4 - .pool -_08081CA0: - subs r0, r2, r3 - strh r0, [r1] -_08081CA4: - adds r1, 0x2 - subs r6, 0x1 - cmp r6, 0 - bge _08081C8A - ldr r1, =gUnknown_03000DE8 - ldr r2, =gUnknown_020322A8 - movs r6, 0x4 -_08081CB2: - movs r3, 0 - ldrsh r0, [r1, r3] - stm r2!, {r0} - adds r1, 0x2 - subs r6, 0x1 - cmp r6, 0 - bge _08081CB2 - ldr r1, =0x0000014d - ldr r0, [sp, 0x8] - bl __udivsi3 - lsls r0, 16 - lsrs r0, 16 - adds r3, r0, 0 - adds r3, 0x64 - ldr r4, =gUnknown_020322D0 - str r3, [r4] - movs r6, 0x4 -_08081CD6: - movs r0, 0 - ldrsh r5, [r7, r0] - adds r0, r5, 0 - muls r0, r3 - movs r1, 0xA - str r3, [sp, 0xC] - bl __divsi3 - adds r5, r0, 0 - movs r1, 0xA - bl __modsi3 - adds r4, r0, 0 - adds r0, r5, 0 - movs r1, 0xA - bl __divsi3 - adds r5, r0, 0 - ldr r3, [sp, 0xC] - cmp r4, 0x4 - ble _08081D02 - adds r5, 0x1 -_08081D02: - strh r5, [r7] - adds r7, 0x2 - subs r6, 0x1 - cmp r6, 0 - bge _08081CD6 - ldr r1, =gUnknown_03000DE8 - ldr r2, =gUnknown_020322BC - movs r6, 0x4 -_08081D12: - movs r3, 0 - ldrsh r0, [r1, r3] - stm r2!, {r0} - adds r1, 0x2 - subs r6, 0x1 - cmp r6, 0 - bge _08081D12 - ldr r4, =gUnknown_03000DE8 - ldr r0, [sp] - adds r1, r4, 0 - mov r2, r9 - mov r3, r10 - bl sub_80819B8 - mov r5, r8 - strb r0, [r5] - movs r1, 0xA - ldrsh r0, [r4, r1] - mov r1, r9 - bl __divsi3 - mov r3, r9 - subs r0, r3 - strh r0, [r4, 0xA] - lsls r0, 16 - cmp r0, 0 - bge _08081D4C - movs r0, 0 - strh r0, [r4, 0xA] -_08081D4C: - mov r5, r8 - ldrb r0, [r5] - cmp r0, 0xC - bne _08081DA6 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - lsrs r3, r0, 16 - movs r6, 0 - ldr r0, =gUnknown_08339CC8 - adds r0, r3, r0 - ldrb r0, [r0] - adds r1, r4, 0 - movs r4, 0x1 - movs r3, 0x2 -_08081D74: - adds r2, r0, 0 - asrs r2, r6 - ands r2, r4 - cmp r2, 0 - beq _08081D9C - strh r3, [r1] - b _08081D9E - .pool -_08081D9C: - strh r2, [r1] -_08081D9E: - adds r1, 0x2 - adds r6, 0x1 - cmp r6, 0x4 - ble _08081D74 -_08081DA6: - ldr r7, =gUnknown_03000DE8 - movs r2, 0xFF - adds r1, r7, 0 - movs r6, 0x5 -_08081DAE: - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, 0xFF - ble _08081DB8 - strh r2, [r1] -_08081DB8: - adds r1, 0x2 - subs r6, 0x1 - cmp r6, 0 - bge _08081DAE - ldrh r0, [r7] - mov r4, r8 - strb r0, [r4, 0x1] - ldrh r0, [r7, 0x2] - strb r0, [r4, 0x2] - ldrh r0, [r7, 0x4] - strb r0, [r4, 0x3] - ldrh r0, [r7, 0x6] - strb r0, [r4, 0x4] - ldrh r0, [r7, 0x8] - strb r0, [r4, 0x5] - ldrh r0, [r7, 0xA] - strb r0, [r4, 0x6] - movs r6, 0 - adds r2, r7, 0 -_08081DDE: - ldr r5, [sp, 0x4] - adds r1, r5, r6 - ldrh r0, [r2] - strb r0, [r1] - adds r2, 0x2 - adds r6, 0x1 - cmp r6, 0x5 - ble _08081DDE - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8081BE0 - - thumb_func_start sub_8081E04 -sub_8081E04: @ 8081E04 - push {r4,lr} - sub sp, 0x4 - ldr r4, [sp, 0xC] - lsls r2, 24 - lsrs r2, 24 - lsls r4, 16 - lsrs r4, 16 - str r4, [sp] - bl sub_8081BE0 - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8081E04 - - thumb_func_start sub_8081E20 -sub_8081E20: @ 8081E20 - push {r4-r6,lr} - ldr r0, =gUnknown_020322A4 - ldr r0, [r0] - movs r2, 0x82 - lsls r2, 1 - adds r1, r0, r2 - ldrh r1, [r1] - adds r0, 0x4E - ldrh r4, [r0] - movs r2, 0 - ldr r5, =0x00000383 - cmp r1, r5 - bhi _08081E48 - movs r2, 0x5 - b _08081E9A - .pool -_08081E48: - ldr r3, =0xfffffc7c - adds r0, r1, r3 - lsls r0, 16 - lsrs r0, 16 - ldr r3, =0x00000257 - cmp r0, r3 - bhi _08081E64 - movs r2, 0x4 - b _08081E9A - .pool -_08081E64: - ldr r6, =0xfffffa24 - adds r0, r1, r6 - lsls r0, 16 - lsrs r0, 16 - cmp r0, r3 - bhi _08081E78 - movs r2, 0x3 - b _08081E9A - .pool -_08081E78: - ldr r3, =0xfffff7cc - adds r0, r1, r3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, r5 - bhi _08081E8C - movs r2, 0x2 - b _08081E9A - .pool -_08081E8C: - ldr r6, =0xfffff31c - adds r0, r1, r6 - lsls r0, 16 - ldr r1, =0x012b0000 - cmp r0, r1 - bhi _08081E9A - movs r2, 0x1 -_08081E9A: - lsls r0, r2, 16 - asrs r0, 16 - bl sub_8081BC8 - movs r2, 0 - cmp r4, 0x40 - bhi _08081F7C - adds r0, r4, 0 - subs r0, 0x32 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x31 - bhi _08081EC4 - ldr r2, =0x0000ffff - b _08081F7C - .pool -_08081EC4: - adds r0, r4, 0 - subs r0, 0x64 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x31 - bhi _08081ED8 - ldr r2, =0x0000fffe - b _08081F7C - .pool -_08081ED8: - adds r0, r4, 0 - subs r0, 0x96 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x31 - bhi _08081EEC - ldr r2, =0x0000fffd - b _08081F7C - .pool -_08081EEC: - adds r0, r4, 0 - subs r0, 0xC8 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x31 - bhi _08081F00 - ldr r2, =0x0000fffc - b _08081F7C - .pool -_08081F00: - adds r0, r4, 0 - subs r0, 0xFA - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x31 - bhi _08081F14 - ldr r2, =0x0000fffb - b _08081F7C - .pool -_08081F14: - ldr r1, =0xfffffea2 - adds r0, r4, r1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x31 - bhi _08081F2C - ldr r2, =0x0000fffa - b _08081F7C - .pool -_08081F2C: - ldr r3, =0xfffffe70 - adds r0, r4, r3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x31 - bhi _08081F44 - ldr r2, =0x0000fff9 - b _08081F7C - .pool -_08081F44: - ldr r6, =0xfffffe0c - adds r0, r4, r6 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x31 - bhi _08081F5C - ldr r2, =0x0000fff8 - b _08081F7C - .pool -_08081F5C: - ldr r1, =0xfffffdda - adds r0, r4, r1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x31 - bhi _08081F74 - ldr r2, =0x0000fff7 - b _08081F7C - .pool -_08081F74: - ldr r0, =0x00000257 - cmp r4, r0 - bls _08081F7C - ldr r2, =0x0000fff6 -_08081F7C: - lsls r0, r2, 16 - asrs r0, 16 - bl sub_8081BB0 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8081E20 - - thumb_func_start sub_8081F94 -sub_8081F94: @ 8081F94 - push {lr} - adds r1, r0, 0 - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - beq _08081FB8 - ldr r0, =gLinkVSyncDisabled - ldrb r0, [r0] - cmp r0, 0 - beq _08081FB8 - movs r2, 0xBC - lsls r2, 6 - b _08081FBA - .pool -_08081FB8: - ldr r2, =0x00002fff -_08081FBA: - adds r0, r2, 0 - strh r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_8081F94 - - thumb_func_start sub_8081FC8 -sub_8081FC8: @ 8081FC8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r4, =gUnknown_020322A4 - ldr r0, [r4] - adds r0, 0x63 - ldrb r0, [r0] - cmp r0, 0x2 - bhi _08081FDE - bl sub_8082D28 -_08081FDE: - bl GetMultiplayerId - ldr r0, [r4] - adds r0, 0x63 - ldrb r0, [r0] - subs r0, 0x1 - cmp r0, 0xC - bls _08081FF0 - b _0808249E -_08081FF0: - lsls r0, 2 - ldr r1, =_08082004 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08082004: - .4byte _08082038 - .4byte _08082078 - .4byte _080820D4 - .4byte _080821C8 - .4byte _08082278 - .4byte _08082286 - .4byte _080822B0 - .4byte _08082458 - .4byte _080822E4 - .4byte _08082308 - .4byte _080823B0 - .4byte _08082430 - .4byte _0808246C -_08082038: - ldr r0, =gMPlay_BGM - movs r1, 0x80 - lsls r1, 1 - bl m4aMPlayTempoControl - movs r4, 0 - b _08082064 - .pool -_0808204C: - ldr r0, =gUnknown_020322A4 - ldr r0, [r0] - movs r1, 0x90 - lsls r1, 1 - adds r0, r1 - adds r0, r4 - ldrb r0, [r0] - bl DestroyTask - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_08082064: - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r4, r0 - bcc _0808204C - b _08082458 - .pool -_08082078: - ldr r4, =gUnknown_020322A4 - ldr r1, [r4] - adds r1, 0x4C - ldrh r0, [r1] - subs r0, 0x20 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - bgt _080820C6 - bl sub_8009F8C - ldr r2, [r4] - adds r1, r2, 0 - adds r1, 0x4C - movs r0, 0 - strh r0, [r1] - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - beq _080820B0 - adds r1, 0x17 - ldrb r0, [r1] - adds r0, 0x1 - b _080820B6 - .pool -_080820B0: - adds r1, r2, 0 - adds r1, 0x63 - movs r0, 0x5 -_080820B6: - strb r0, [r1] - ldr r0, =gUnknown_020322A4 - ldr r1, [r0] - movs r0, 0 - strb r0, [r1] - ldr r0, =gMPlay_SE2 - bl m4aMPlayStop -_080820C6: - bl sub_807F738 - b _0808249E - .pool -_080820D4: - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - beq _080820E0 - b _08082458 -_080820E0: - bl sub_800A520 - lsls r0, 24 - cmp r0, 0 - bne _080820EC - b _0808249E -_080820EC: - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - beq _0808218C - ldr r0, =gLinkVSyncDisabled - ldrb r0, [r0] - cmp r0, 0 - beq _0808218C - ldr r3, =gUnknown_020322A4 - ldr r1, [r3] - movs r4, 0x8E - lsls r4, 5 - adds r2, r1, r4 - movs r5, 0x82 - lsls r5, 1 - adds r0, r1, r5 - ldr r0, [r0] - str r0, [r2] - adds r0, r1, 0 - adds r0, 0x4E - ldrh r0, [r0] - ldr r2, =0x000011c4 - adds r1, r2 - strh r0, [r1] - movs r4, 0 - mov r8, r3 - mov r12, r8 - ldr r7, =0x000011c8 - movs r6, 0x92 - lsls r6, 1 -_08082128: - movs r3, 0 - adds r5, r4, 0x1 - lsls r0, r4, 1 - adds r0, r4 - lsls r4, r0, 1 -_08082132: - mov r1, r12 - ldr r0, [r1] - lsls r1, r3, 1 - adds r1, r4 - adds r2, r0, r7 - adds r2, r1 - adds r0, r6 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x2 - bls _08082132 - lsls r0, r5, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _08082128 - mov r2, r8 - ldr r1, [r2] - movs r4, 0x8E - lsls r4, 5 - adds r1, r4 - movs r0, 0 - movs r2, 0x20 - bl SendBlock - lsls r0, 24 - cmp r0, 0 - bne _08082172 - b _0808249E -_08082172: - mov r5, r8 - ldr r1, [r5] - b _0808245C - .pool -_0808218C: - ldr r4, =gUnknown_020322A4 - ldr r3, [r4] - movs r0, 0xCC - lsls r0, 1 - adds r1, r3, r0 - movs r2, 0x82 - lsls r2, 1 - adds r0, r3, r2 - ldr r0, [r0] - str r0, [r1] - adds r0, r3, 0 - adds r0, 0x4E - ldrh r2, [r0] - movs r5, 0xCE - lsls r5, 1 - adds r0, r3, r5 - strh r2, [r0] - movs r0, 0 - movs r2, 0x28 - bl SendBlock - lsls r0, 24 - cmp r0, 0 - bne _080821BE - b _0808249E -_080821BE: - ldr r1, [r4] - b _0808245C - .pool -_080821C8: - bl GetBlockReceivedStatus - lsls r0, 24 - cmp r0, 0 - bne _080821D4 - b _0808249E -_080821D4: - bl ResetBlockReceivedFlags - ldr r5, =gUnknown_020322A4 - ldr r1, [r5] - adds r1, 0x63 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - beq _08082254 - ldr r0, =gLinkVSyncDisabled - ldrb r0, [r0] - cmp r0, 0 - beq _08082254 - ldr r2, =gBlockRecvBuffer - ldr r3, [r5] - ldrh r0, [r2, 0x4] - adds r1, r3, 0 - adds r1, 0x4E - strh r0, [r1] - movs r0, 0x82 - lsls r0, 1 - adds r1, r3, r0 - ldr r0, [r2] - str r0, [r1] - movs r4, 0 - adds r7, r2, 0 - adds r7, 0x8 - adds r6, r5, 0 - movs r2, 0x92 - lsls r2, 1 -_08082216: - movs r3, 0 - adds r5, r4, 0x1 - lsls r0, r4, 1 - adds r0, r4 - lsls r4, r0, 1 -_08082220: - ldr r1, [r6] - lsls r0, r3, 1 - adds r0, r4 - adds r1, r2 - adds r1, r0 - adds r0, r7, r0 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x2 - bls _08082220 - lsls r0, r5, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _08082216 - b _0808249E - .pool -_08082254: - ldr r2, =gBlockRecvBuffer - ldr r0, =gUnknown_020322A4 - ldr r3, [r0] - ldrh r0, [r2, 0x4] - adds r1, r3, 0 - adds r1, 0x4E - strh r0, [r1] - movs r4, 0x82 - lsls r4, 1 - adds r1, r3, r4 - ldr r0, [r2] - str r0, [r1] - b _0808249E - .pool -_08082278: - bl sub_8083B08 - lsls r0, 24 - cmp r0, 0 - bne _08082284 - b _0808249E -_08082284: - b _08082458 -_08082286: - bl berry_blender_related - lsls r0, 24 - cmp r0, 0 - bne _08082292 - b _0808249E -_08082292: - ldr r0, =gUnknown_03005D98 - ldrb r0, [r0] - cmp r0, 0 - bne _080822A8 - movs r0, 0x22 - bl IncrementGameStat - b _08082458 - .pool -_080822A8: - movs r0, 0x21 - bl IncrementGameStat - b _08082458 -_080822B0: - ldr r6, =gUnknown_020322A4 - ldr r4, [r6] - ldr r5, =0x000011b8 - adds r4, r5 - ldr r5, =sText_WouldLikeToBlendAnotherBerry - bl sav2_get_text_speed - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_808417C - cmp r0, 0 - bne _080822D2 - b _0808249E -_080822D2: - ldr r1, [r6] - b _0808245C - .pool -_080822E4: - ldr r4, =gUnknown_020322A4 - ldr r0, [r4] - adds r0, 0x9E - movs r1, 0 - strb r1, [r0] - ldr r0, =gUnknown_083399B8 - movs r1, 0x1 - movs r2, 0xD - movs r3, 0 - bl CreateYesNoMenu - ldr r1, [r4] - b _0808245C - .pool -_08082308: - bl sub_8198C58 - lsls r0, 24 - asrs r2, r0, 24 - cmp r2, 0 - beq _0808236C - cmp r2, 0 - bgt _08082322 - movs r0, 0x1 - negs r0, r0 - cmp r2, r0 - beq _08082328 - b _0808249E -_08082322: - cmp r2, 0x1 - beq _08082328 - b _0808249E -_08082328: - ldr r2, =gUnknown_020322A4 - ldr r0, [r2] - adds r0, 0x9E - movs r1, 0x1 - strb r1, [r0] - ldr r1, [r2] - adds r1, 0x63 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r4, 0 -_0808233E: - ldr r0, =gUnknown_020322A4 - ldr r0, [r0] - lsls r1, r4, 1 - adds r0, 0x8E - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0xFF - beq _0808235C - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r4, 0 - movs r1, 0x3 - bl CopyWindowToVram -_0808235C: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _0808233E - b _0808249E - .pool -_0808236C: - ldr r1, =gUnknown_020322A4 - ldr r0, [r1] - adds r0, 0x9E - strb r2, [r0] - ldr r1, [r1] - adds r1, 0x63 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r4, 0 -_08082380: - ldr r0, =gUnknown_020322A4 - ldr r0, [r0] - lsls r1, r4, 1 - adds r0, 0x8E - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0xFF - beq _0808239E - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r4, 0 - movs r1, 0x3 - bl CopyWindowToVram -_0808239E: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _08082380 - b _0808249E - .pool -_080823B0: - ldr r6, =gUnknown_03003110 - adds r0, r6, 0 - bl sub_8081F94 - ldr r4, =gUnknown_020322A4 - ldr r2, [r4] - adds r0, r2, 0 - adds r0, 0x9E - ldrb r5, [r0] - cmp r5, 0 - bne _0808241C - movs r0, 0x4 - bl IsBagPocketNonEmpty - lsls r0, 24 - cmp r0, 0 - bne _080823EC - ldr r0, [r4] - adds r0, 0x70 - movs r1, 0x2 - strh r1, [r0] - ldr r0, =0x00009999 - b _08082414 - .pool -_080823EC: - bl sub_8136EF4 - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _0808240C - ldr r0, [r4] - adds r0, 0x70 - movs r1, 0x3 - strh r1, [r0] - ldr r0, =0x0000aaaa - b _08082414 - .pool -_0808240C: - ldr r0, [r4] - adds r0, 0x70 - strh r5, [r0] - ldr r0, =0x00007779 -_08082414: - strh r0, [r6, 0x2] - b _08082458 - .pool -_0808241C: - adds r1, r2, 0 - adds r1, 0x70 - movs r0, 0x1 - strh r0, [r1] - ldr r0, =0x00008888 - strh r0, [r6, 0x2] - subs r1, 0xD - b _0808245E - .pool -_08082430: - ldr r0, =gUnknown_03005D98 - ldrb r0, [r0] - cmp r0, 0 - beq _08082458 - ldr r0, =sub_8082924 - bl SetMainCallback2 - ldr r2, =gUnknown_020322A4 - ldr r0, [r2] - adds r0, 0x63 - movs r1, 0 - strb r1, [r0] - ldr r0, [r2] - b _0808249C - .pool -_08082458: - ldr r0, =gUnknown_020322A4 - ldr r1, [r0] -_0808245C: - adds r1, 0x63 -_0808245E: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0808249E - .pool -_0808246C: - ldr r6, =gUnknown_020322A4 - ldr r4, [r6] - ldr r0, =0x000011b8 - adds r4, r0 - ldr r5, =sText_CommunicationStandby - bl sav2_get_text_speed - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_808417C - cmp r0, 0 - beq _0808249E - ldr r0, =sub_8082644 - bl SetMainCallback2 - ldr r0, [r6] - adds r0, 0x63 - movs r1, 0 - strb r1, [r0] - ldr r0, [r6] -_0808249C: - strb r1, [r0] -_0808249E: - bl sub_808330C - ldr r4, =gUnknown_020322A4 - ldr r0, [r4] - adds r0, 0x4C - ldrh r0, [r0] - bl sub_8083230 - bl sub_8082AD4 - ldr r1, [r4] - movs r2, 0x8E - lsls r2, 1 - adds r0, r1, r2 - movs r4, 0 - ldrsh r0, [r0, r4] - movs r5, 0x8F - lsls r5, 1 - adds r1, r5 - movs r2, 0 - ldrsh r1, [r1, r2] - bl nullsub_31 - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl RunTextPrinters - bl UpdatePaletteFade - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8081FC8 - - thumb_func_start sub_80824FC -sub_80824FC: @ 80824FC - push {r4,lr} - ldr r1, =gUnknown_020322A4 - ldr r0, [r1] - movs r2, 0xD0 - lsls r2, 1 - adds r0, r2 - ldr r0, [r0] - adds r4, r1, 0 - cmp r0, 0x6 - bls _08082512 - b _0808263C -_08082512: - lsls r0, 2 - ldr r1, =_08082524 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08082524: - .4byte _08082540 - .4byte _08082558 - .4byte _08082584 - .4byte _08082594 - .4byte _080825BA - .4byte _08082600 - .4byte _0808261A -_08082540: - bl sub_800ADF8 - ldr r0, =gUnknown_020322A4 - ldr r2, [r0] - movs r3, 0xD0 - lsls r3, 1 - adds r1, r2, r3 - movs r0, 0x1 - b _0808260C - .pool -_08082558: - bl sub_800A520 - lsls r0, 24 - cmp r0, 0 - beq _0808263C - ldr r0, =gUnknown_020322A4 - ldr r1, [r0] - movs r2, 0xD0 - lsls r2, 1 - adds r1, r2 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - ldr r1, =gSoftResetDisabled - movs r0, 0x1 - strb r0, [r1] - b _0808263C - .pool -_08082584: - bl sub_8153430 - ldr r0, =gUnknown_020322A4 - ldr r2, [r0] - b _08082602 - .pool -_08082594: - ldr r1, [r4] - movs r2, 0x84 - lsls r2, 1 - adds r1, r2 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0xA - bne _0808263C - bl sub_800ADF8 - ldr r1, [r4] - movs r3, 0xD0 - lsls r3, 1 - adds r1, r3 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - b _0808263C -_080825BA: - bl sub_800A520 - lsls r0, 24 - cmp r0, 0 - beq _0808263C - bl sub_8153474 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _080825E4 - ldr r0, =gUnknown_020322A4 - ldr r0, [r0] - movs r1, 0xD0 - lsls r1, 1 - adds r0, r1 - movs r1, 0x5 - str r1, [r0] - b _0808263C - .pool -_080825E4: - ldr r0, =gUnknown_020322A4 - ldr r1, [r0] - movs r3, 0x84 - lsls r3, 1 - adds r0, r1, r3 - str r2, [r0] - movs r0, 0xD0 - lsls r0, 1 - adds r1, r0 - movs r0, 0x3 - str r0, [r1] - b _0808263C - .pool -_08082600: - ldr r2, [r4] -_08082602: - movs r3, 0xD0 - lsls r3, 1 - adds r1, r2, r3 - ldr r0, [r1] - adds r0, 0x1 -_0808260C: - str r0, [r1] - movs r0, 0x84 - lsls r0, 1 - adds r1, r2, r0 - movs r0, 0 - str r0, [r1] - b _0808263C -_0808261A: - ldr r1, [r4] - movs r2, 0x84 - lsls r2, 1 - adds r1, r2 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0x5 - ble _0808263C - ldr r1, =gSoftResetDisabled - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - b _0808263E - .pool -_0808263C: - movs r0, 0 -_0808263E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80824FC - - thumb_func_start sub_8082644 -sub_8082644: @ 8082644 - push {r4-r6,lr} - sub sp, 0x4 - ldr r1, =gUnknown_020322A4 - ldr r0, [r1] - adds r0, 0x63 - ldrb r0, [r0] - adds r6, r1, 0 - cmp r0, 0xC - bls _08082658 - b _080828DC -_08082658: - lsls r0, 2 - ldr r1, =_0808266C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0808266C: - .4byte _080826A0 - .4byte _080826EC - .4byte _0808271C - .4byte _08082754 - .4byte _0808278C - .4byte _080827AA - .4byte _080827C8 - .4byte _080827FC - .4byte _08082818 - .4byte _08082828 - .4byte _0808284C - .4byte _080828A4 - .4byte _080828C6 -_080826A0: - ldr r1, [r6] - adds r0, r1, 0 - adds r0, 0x64 - ldrh r2, [r0] - ldr r0, =0x00002222 - cmp r2, r0 - bne _080826B0 - b _080827A2 -_080826B0: - ldr r0, =0x00001111 - cmp r2, r0 - beq _080826B8 - b _080828DC -_080826B8: - adds r0, r1, 0 - adds r0, 0x6C - ldrh r2, [r0] - ldr r0, =0x00009999 - cmp r2, r0 - bne _080826D8 - adds r1, 0x63 - movs r0, 0x2 - strb r0, [r1] - b _080828DC - .pool -_080826D8: - ldr r0, =0x0000aaaa - cmp r2, r0 - bne _080827A2 - adds r1, 0x63 - movs r0, 0x1 - strb r0, [r1] - b _080828DC - .pool -_080826EC: - ldr r0, [r6] - adds r0, 0x63 - movs r1, 0x3 - strb r1, [r0] - ldr r4, =gStringVar4 - ldr r0, [r6] - adds r0, 0x6E - ldrh r0, [r0] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - ldr r0, =gLinkPlayers + 8 - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - ldr r1, =sText_ApostropheSPokeblockCaseIsFull - b _08082740 - .pool -_0808271C: - ldr r1, [r6] - adds r1, 0x63 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r4, =gStringVar4 - ldr r0, [r6] - adds r0, 0x6E - ldrh r0, [r0] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - ldr r0, =gLinkPlayers + 8 - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - ldr r1, =sText_HasNoBerriesToPut -_08082740: - adds r0, r4, 0 - bl StringAppend - b _080828DC - .pool -_08082754: - ldr r4, [r6] - ldr r0, =0x000011b8 - adds r4, r0 - ldr r5, =gStringVar4 - bl sav2_get_text_speed - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_808417C - cmp r0, 0 - bne _08082774 - b _080828DC -_08082774: - ldr r1, [r6] - movs r0, 0x84 - lsls r0, 1 - adds r2, r1, r0 - movs r0, 0 - str r0, [r2] - b _080828BC - .pool -_0808278C: - ldr r4, [r6] - movs r2, 0x84 - lsls r2, 1 - adds r1, r4, r2 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0x3C - bgt _080827A0 - b _080828DC -_080827A0: - adds r1, r4, 0 -_080827A2: - adds r1, 0x63 - movs r0, 0x5 - strb r0, [r1] - b _080828DC -_080827AA: - ldr r0, [r6] - ldr r1, =0x000011b8 - adds r0, r1 - ldr r1, =gText_SavingDontTurnOff2 - movs r2, 0 - bl sub_808417C - bl sub_800ADF8 - b _080828BA - .pool -_080827C8: - bl sub_800A520 - lsls r0, 24 - cmp r0, 0 - bne _080827D4 - b _080828DC -_080827D4: - ldr r3, =gUnknown_020322A4 - ldr r1, [r3] - movs r2, 0x84 - lsls r2, 1 - adds r0, r1, r2 - movs r2, 0 - str r2, [r0] - adds r1, 0x63 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r3] - movs r1, 0xD0 - lsls r1, 1 - adds r0, r1 - str r2, [r0] - b _080828DC - .pool -_080827FC: - bl sub_80824FC - lsls r0, 24 - cmp r0, 0 - beq _080828DC - movs r0, 0x37 - bl PlaySE - ldr r0, =gUnknown_020322A4 - ldr r1, [r0] - b _080828BC - .pool -_08082818: - ldr r1, [r6] - adds r1, 0x63 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - bl sub_800ADF8 - b _080828DC -_08082828: - bl sub_800A520 - lsls r0, 24 - cmp r0, 0 - beq _080828DC - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, =gUnknown_020322A4 - ldr r1, [r0] - b _080828BC - .pool -_0808284C: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080828DC - ldr r2, [r6] - adds r0, r2, 0 - adds r0, 0x64 - ldrh r1, [r0] - ldr r0, =0x00002222 - cmp r1, r0 - bne _08082898 - bl FreeAllWindowBuffers - movs r0, 0x2 - bl UnsetBgTilemapBuffer - movs r0, 0x1 - bl UnsetBgTilemapBuffer - ldr r0, [r6] - bl Free - str r4, [r6] - ldr r0, =sub_807FA80 - bl SetMainCallback2 - b _080828DC - .pool -_08082898: - movs r1, 0x84 - lsls r1, 1 - adds r0, r2, r1 - str r4, [r0] - adds r1, r2, 0 - b _080828BC -_080828A4: - ldr r1, [r6] - movs r2, 0x84 - lsls r2, 1 - adds r1, r2 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0x1E - ble _080828DC - bl sub_800AC34 -_080828BA: - ldr r1, [r6] -_080828BC: - adds r1, 0x63 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _080828DC -_080828C6: - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r4, [r0] - cmp r4, 0 - bne _080828DC - ldr r0, [r6] - bl Free - str r4, [r6] - ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 -_080828DC: - bl sub_8082AD4 - ldr r0, =gUnknown_020322A4 - ldr r1, [r0] - movs r2, 0x8E - lsls r2, 1 - adds r0, r1, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - movs r2, 0x8F - lsls r2, 1 - adds r1, r2 - movs r2, 0 - ldrsh r1, [r1, r2] - bl nullsub_31 - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl RunTextPrinters - bl UpdatePaletteFade - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8082644 - - thumb_func_start sub_8082924 -sub_8082924: @ 8082924 - push {r4-r6,lr} - ldr r1, =gUnknown_020322A4 - ldr r0, [r1] - adds r0, 0x63 - ldrb r0, [r0] - adds r6, r1, 0 - cmp r0, 0xA - bls _08082936 - b _08082A92 -_08082936: - lsls r0, 2 - ldr r1, =_08082948 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08082948: - .4byte _08082974 - .4byte _080829AA - .4byte _080829D4 - .4byte _08082A00 - .4byte _08082A92 - .4byte _08082A92 - .4byte _08082A92 - .4byte _08082A92 - .4byte _08082A92 - .4byte _08082A30 - .4byte _08082A48 -_08082974: - ldr r1, [r6] - adds r0, r1, 0 - adds r0, 0x70 - ldrh r0, [r0] - cmp r0, 0x1 - bhi _08082986 - adds r1, 0x63 - movs r0, 0x9 - strb r0, [r1] -_08082986: - ldr r2, [r6] - adds r0, r2, 0 - adds r0, 0x70 - ldrh r1, [r0] - cmp r1, 0x2 - bne _08082996 - subs r0, 0xD - strb r1, [r0] -_08082996: - ldr r1, [r6] - adds r0, r1, 0 - adds r0, 0x70 - ldrh r0, [r0] - cmp r0, 0x3 - bne _08082A92 - adds r1, 0x63 - movs r0, 0x1 - strb r0, [r1] - b _08082A92 -_080829AA: - ldr r0, [r6] - adds r0, 0x63 - movs r2, 0 - movs r1, 0x3 - strb r1, [r0] - ldr r0, [r6] - ldr r1, =0x000011b8 - adds r0, r1 - strh r2, [r0] - ldr r0, =gStringVar4 - ldr r1, =sText_YourPokeblockCaseIsFull - bl StringCopy - b _08082A92 - .pool -_080829D4: - ldr r1, [r6] - adds r1, 0x63 - ldrb r0, [r1] - adds r0, 0x1 - movs r2, 0 - strb r0, [r1] - ldr r0, [r6] - ldr r1, =0x000011b8 - adds r0, r1 - strh r2, [r0] - ldr r0, =gStringVar4 - ldr r1, =sText_RunOutOfBerriesForBlending - bl StringCopy - b _08082A92 - .pool -_08082A00: - ldr r4, [r6] - ldr r2, =0x000011b8 - adds r4, r2 - ldr r5, =gStringVar4 - bl sav2_get_text_speed - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_808417C - cmp r0, 0 - beq _08082A92 - ldr r0, [r6] - adds r0, 0x63 - movs r1, 0x9 - strb r1, [r0] - b _08082A92 - .pool -_08082A30: - movs r0, 0x3 - bl BeginFastPaletteFade - ldr r0, =gUnknown_020322A4 - ldr r1, [r0] - adds r1, 0x63 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08082A92 - .pool -_08082A48: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08082A92 - ldr r0, [r6] - adds r0, 0x70 - ldrh r0, [r0] - cmp r0, 0 - bne _08082A70 - ldr r0, =sub_807FA80 - bl SetMainCallback2 - b _08082A76 - .pool -_08082A70: - ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 -_08082A76: - bl FreeAllWindowBuffers - movs r0, 0x2 - bl UnsetBgTilemapBuffer - movs r0, 0x1 - bl UnsetBgTilemapBuffer - ldr r4, =gUnknown_020322A4 - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] -_08082A92: - bl sub_8082AD4 - ldr r0, =gUnknown_020322A4 - ldr r1, [r0] - movs r2, 0x8E - lsls r2, 1 - adds r0, r1, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - movs r2, 0x8F - lsls r2, 1 - adds r1, r2 - movs r2, 0 - ldrsh r1, [r1, r2] - bl nullsub_31 - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl RunTextPrinters - bl UpdatePaletteFade - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8082924 - - thumb_func_start sub_8082AD4 -sub_8082AD4: @ 8082AD4 - push {r4-r7,lr} - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _08082AE0 - b _08082CA4 -_08082AE0: - ldr r4, =gUnknown_03003090 - ldrh r0, [r4] - ldr r1, =0x00002fff - movs r2, 0xBC - lsls r2, 6 - bl sub_80814B0 - cmp r0, 0 - beq _08082B66 - ldrh r1, [r4, 0x2] - ldr r0, =0x00001111 - cmp r1, r0 - bne _08082B58 - ldrh r3, [r4, 0x4] - ldr r0, =0x00009999 - cmp r3, r0 - beq _08082B38 - cmp r3, r0 - bgt _08082B24 - ldr r0, =0x00008888 - b _08082B26 - .pool -_08082B24: - ldr r0, =0x0000aaaa -_08082B26: - cmp r3, r0 - beq _08082B38 - ldr r2, =gUnknown_020322A4 - b _08082B48 - .pool -_08082B38: - ldr r2, =gUnknown_020322A4 - ldr r0, [r2] - adds r1, r0, 0 - adds r1, 0x6C - strh r3, [r1] - ldrh r1, [r4, 0x6] - adds r0, 0x6E - strh r1, [r0] -_08082B48: - ldr r0, [r2] - adds r0, 0x64 - ldr r1, =0x00001111 - b _08082B64 - .pool -_08082B58: - ldr r0, =0x00002222 - cmp r1, r0 - bne _08082B66 - ldr r0, =gUnknown_020322A4 - ldr r0, [r0] - adds r0, 0x64 -_08082B64: - strh r1, [r0] -_08082B66: - bl GetMultiplayerId - lsls r0, 24 - cmp r0, 0 - beq _08082B72 - b _08082CA4 -_08082B72: - ldr r2, =gUnknown_020322A4 - ldr r0, [r2] - adds r0, 0x64 - ldrh r1, [r0] - ldr r0, =0x00001111 - cmp r1, r0 - bne _08082B82 - b _08082CA4 -_08082B82: - ldr r0, =0x00002222 - cmp r1, r0 - bne _08082B8A - b _08082CA4 -_08082B8A: - movs r5, 0 - adds r7, r2, 0 - b _08082BF4 - .pool -_08082B9C: - ldr r6, =gUnknown_03003090 - lsls r4, r5, 4 - adds r0, r4, r6 - ldrh r0, [r0] - ldr r1, =0x00002fff - movs r2, 0xBC - lsls r2, 6 - bl sub_80814B0 - cmp r0, 0 - beq _08082BEE - adds r0, r6, 0x2 - adds r0, r4, r0 - ldrh r2, [r0] - ldr r0, =0x00008888 - cmp r2, r0 - beq _08082BE4 - cmp r2, r0 - bgt _08082BD8 - ldr r0, =0x00007779 - b _08082BE0 - .pool -_08082BD8: - ldr r0, =0x00009999 - cmp r2, r0 - beq _08082BE4 - ldr r0, =0x0000aaaa -_08082BE0: - cmp r2, r0 - bne _08082BEE -_08082BE4: - ldr r0, [r7] - lsls r1, r5, 1 - adds r0, 0x64 - adds r0, r1 - strh r2, [r0] -_08082BEE: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_08082BF4: - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - bcc _08082B9C - movs r5, 0 - b _08082C12 - .pool -_08082C0C: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_08082C12: - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - bcs _08082C2E - ldr r0, =gUnknown_020322A4 - ldr r0, [r0] - lsls r1, r5, 1 - adds r0, 0x64 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - bne _08082C0C -_08082C2E: - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - bne _08082CA4 - movs r5, 0 - ldr r4, =0x00007779 - b _08082C4E - .pool -_08082C48: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_08082C4E: - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - bcs _08082C6A - ldr r0, =gUnknown_020322A4 - ldr r0, [r0] - lsls r1, r5, 1 - adds r0, 0x64 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r4 - beq _08082C48 -_08082C6A: - ldr r4, =gUnknown_03003110 - adds r0, r4, 0 - bl sub_8081F94 - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - bne _08082C90 - ldr r0, =0x00002222 - strh r0, [r4, 0x2] - b _08082CA4 - .pool -_08082C90: - ldr r0, =0x00001111 - strh r0, [r4, 0x2] - ldr r0, =gUnknown_020322A4 - ldr r0, [r0] - lsls r1, r5, 1 - adds r0, 0x64 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r4, 0x4] - strh r5, [r4, 0x6] -_08082CA4: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8082AD4 - - thumb_func_start sub_8082CB4 -sub_8082CB4: @ 8082CB4 - push {r4,lr} - sub sp, 0x14 - movs r1, 0xF0 - lsls r1, 7 - str r1, [sp] - movs r1, 0xA0 - lsls r1, 7 - str r1, [sp, 0x4] - mov r3, sp - ldr r1, =gUnknown_020322A4 - ldr r1, [r1] - mov r12, r1 - movs r1, 0x8E - lsls r1, 1 - add r1, r12 - ldrh r2, [r1] - movs r1, 0x78 - subs r1, r2 - strh r1, [r3, 0x8] - movs r1, 0x8F - lsls r1, 1 - add r1, r12 - ldrh r2, [r1] - movs r1, 0x50 - subs r1, r2 - strh r1, [r3, 0xA] - mov r2, sp - movs r3, 0x8D - lsls r3, 1 - add r3, r12 - ldrh r1, [r3] - strh r1, [r2, 0xC] - ldrh r1, [r3] - strh r1, [r2, 0xE] - mov r1, r12 - adds r1, 0x4A - ldrh r1, [r1] - strh r1, [r2, 0x10] - mov r1, sp - ldm r1!, {r2-r4} - stm r0!, {r2-r4} - ldm r1!, {r2,r3} - stm r0!, {r2,r3} - add sp, 0x14 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8082CB4 - - thumb_func_start sub_8082D18 -sub_8082D18: @ 8082D18 - ldr r0, =gUnknown_020322A4 - ldr r0, [r0] - adds r0, 0x4A - ldrh r0, [r0] - bx lr - .pool - thumb_func_end sub_8082D18 - - thumb_func_start sub_8082D28 -sub_8082D28: @ 8082D28 - push {r4,lr} - movs r1, 0 - ldr r4, =gReceivedRemoteLinkPlayers - ldrb r0, [r4] - cmp r0, 0 - beq _08082D3C - bl GetMultiplayerId - lsls r0, 24 - lsrs r1, r0, 24 -_08082D3C: - ldr r0, =gLinkVSyncDisabled - ldrb r0, [r0] - cmp r0, 0 - beq _08082DCC - ldrb r0, [r4] - cmp r0, 0 - beq _08082DCC - cmp r1, 0 - bne _08082D90 - ldr r0, =gUnknown_020322A4 - ldr r3, [r0] - adds r2, r3, 0 - adds r2, 0x4A - adds r0, r3, 0 - adds r0, 0x4C - ldrh r0, [r0] - ldrh r1, [r2] - adds r0, r1 - strh r0, [r2] - ldr r1, =gUnknown_03003110 - movs r4, 0x8B - lsls r4, 1 - adds r0, r3, r4 - ldrh r0, [r0] - strh r0, [r1, 0xA] - ldrh r0, [r2] - strh r0, [r1, 0xC] - movs r1, 0xA0 - lsls r1, 1 - adds r0, r3, r1 - bl sub_8082CB4 - b _08082DEA - .pool -_08082D90: - ldr r3, =gUnknown_03003090 - ldrh r0, [r3] - movs r1, 0xFF - lsls r1, 8 - ands r1, r0 - movs r0, 0x88 - lsls r0, 7 - cmp r1, r0 - bne _08082DEA - ldr r0, =gUnknown_020322A4 - ldr r2, [r0] - ldrh r0, [r3, 0xA] - movs r4, 0x8B - lsls r4, 1 - adds r1, r2, r4 - strh r0, [r1] - ldrh r0, [r3, 0xC] - adds r1, r2, 0 - adds r1, 0x4A - strh r0, [r1] - movs r1, 0xA0 - lsls r1, 1 - adds r0, r2, r1 - bl sub_8082CB4 - b _08082DEA - .pool -_08082DCC: - ldr r0, =gUnknown_020322A4 - ldr r1, [r0] - adds r2, r1, 0 - adds r2, 0x4A - adds r0, r1, 0 - adds r0, 0x4C - ldrh r0, [r0] - ldrh r3, [r2] - adds r0, r3 - strh r0, [r2] - movs r4, 0xA0 - lsls r4, 1 - adds r0, r1, r4 - bl sub_8082CB4 -_08082DEA: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8082D28 - - thumb_func_start sub_8082DF4 -sub_8082DF4: @ 8082DF4 - push {r4-r6,lr} - ldr r4, =gUnknown_020322A4 - ldr r0, [r4] - movs r6, 0x8E - lsls r6, 1 - adds r0, r6 - ldrh r1, [r0] - movs r0, 0x14 - bl SetGpuReg - ldr r0, [r4] - movs r5, 0x8F - lsls r5, 1 - adds r0, r5 - ldrh r1, [r0] - movs r0, 0x16 - bl SetGpuReg - ldr r0, [r4] - adds r0, r6 - ldrh r1, [r0] - movs r0, 0x10 - bl SetGpuReg - ldr r0, [r4] - adds r0, r5 - ldrh r1, [r0] - movs r0, 0x12 - bl SetGpuReg - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8082DF4 - - thumb_func_start sub_8082E3C -sub_8082E3C: @ 8082E3C - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - ldrh r1, [r2, 0x32] - adds r0, r1 - strh r0, [r2, 0x32] - ldrh r0, [r2, 0x30] - ldrh r1, [r2, 0x34] - adds r0, r1 - strh r0, [r2, 0x34] - movs r1, 0x32 - ldrsh r0, [r2, r1] - cmp r0, 0 - bge _08082E5A - adds r0, 0x7 -_08082E5A: - asrs r0, 3 - strh r0, [r2, 0x24] - movs r1, 0x34 - ldrsh r0, [r2, r1] - cmp r0, 0 - bge _08082E68 - adds r0, 0x7 -_08082E68: - asrs r0, 3 - strh r0, [r2, 0x26] - adds r0, r2, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08082E80 - adds r0, r2, 0 - bl DestroySprite -_08082E80: - pop {r0} - bx r0 - thumb_func_end sub_8082E3C - - thumb_func_start sub_8082E84 -sub_8082E84: @ 8082E84 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - bl Random - lsls r0, 16 - lsrs r1, r0, 16 - movs r0, 0x1 - ands r1, r0 - adds r0, r1, 0x1 - cmp r0, 0 - beq _08082F40 - ldr r0, =gSineTable - mov r9, r0 - ldr r2, =gSprites - mov r10, r2 - adds r6, r1, 0x1 - movs r3, 0x1F - mov r8, r3 - movs r7, 0x10 -_08082EB0: - bl Random - ldr r1, =gUnknown_020322A4 - ldr r4, [r1] - adds r4, 0x4A - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x14 - bl __umodsi3 - ldrh r1, [r4] - adds r1, r0 - lsls r1, 16 - movs r0, 0xFF - lsls r0, 16 - ands r0, r1 - lsrs r2, r0, 16 - adds r0, r2, 0 - adds r0, 0x40 - lsls r0, 1 - add r0, r9 - movs r3, 0 - ldrsh r1, [r0, r3] - cmp r1, 0 - bge _08082EE4 - adds r1, 0x3 -_08082EE4: - asrs r1, 2 - lsls r0, r2, 1 - add r0, r9 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r0, 0 - bge _08082EF4 - adds r0, 0x3 -_08082EF4: - asrs r2, r0, 2 - adds r1, 0x78 - adds r2, 0x50 - ldr r0, =gUnknown_08339BE0 - movs r3, 0x1 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl Random - lsls r5, r4, 4 - adds r5, r4 - lsls r5, 2 - mov r3, r10 - adds r4, r5, r3 - lsls r0, 16 - lsrs r0, 16 - mov r1, r8 - ands r0, r1 - subs r0, r7, r0 - strh r0, [r4, 0x2E] - bl Random - lsls r0, 16 - lsrs r0, 16 - mov r2, r8 - ands r0, r2 - subs r0, r7, r0 - strh r0, [r4, 0x30] - ldr r3, =gSprites + 0x1C - adds r5, r3 - ldr r0, =sub_8082E3C - str r0, [r5] - subs r6, 0x1 - cmp r6, 0 - bne _08082EB0 -_08082F40: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8082E84 - - thumb_func_start sub_8082F68 -sub_8082F68: @ 8082F68 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r1, 0x2E - ldrsh r0, [r4, r1] - movs r1, 0x3 - bl __divsi3 - negs r0, r0 - strh r0, [r4, 0x26] - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08082F94 - adds r0, r4, 0 - bl DestroySprite -_08082F94: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8082F68 - - thumb_func_start sub_8082F9C -sub_8082F9C: @ 8082F9C - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - movs r1, 0x2E - ldrsh r0, [r2, r1] - lsls r0, 1 - negs r0, r0 - strh r0, [r2, 0x26] - lsls r0, 16 - asrs r0, 16 - movs r1, 0xC - negs r1, r1 - cmp r0, r1 - bge _08082FC0 - ldr r0, =0x0000fff4 - strh r0, [r2, 0x26] -_08082FC0: - adds r0, r2, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08082FD4 - adds r0, r2, 0 - bl DestroySprite -_08082FD4: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8082F9C - - thumb_func_start sub_8082FDC -sub_8082FDC: @ 8082FDC - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 16 - lsrs r1, 16 - ldr r2, =gUnknown_020322A4 - ldr r3, [r2] - lsls r4, r0, 1 - adds r2, r3, 0 - adds r2, 0x74 - adds r2, r4 - strh r1, [r2] - lsls r0, 4 - movs r2, 0xAC - lsls r2, 1 - adds r0, r2 - adds r3, r0 - adds r0, r3, 0 - bl sub_807FE14 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8082FDC - - thumb_func_start sub_8083010 -sub_8083010: @ 8083010 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _0808304C - cmp r0, 0x1 - bgt _08083026 - cmp r0, 0 - beq _0808302C - b _080830B2 -_08083026: - cmp r0, 0x2 - beq _08083066 - b _080830B2 -_0808302C: - ldrh r0, [r4, 0x30] - adds r0, 0x8 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x58 - ble _080830B2 - movs r0, 0x58 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r0, 0x38 - bl PlaySE - b _080830B2 -_0808304C: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080830B2 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r0, 0 - strh r0, [r4, 0x32] - b _080830B2 -_08083066: - ldrh r0, [r4, 0x30] - adds r0, 0x4 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB0 - ble _080830B2 - ldrh r0, [r4, 0x34] - adds r0, 0x1 - adds r1, r0, 0 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080830A0 - adds r0, r4, 0 - bl DestroySprite - ldr r0, =gUnknown_08339C60 - movs r2, 0x14 - negs r2, r2 - movs r1, 0x78 - movs r3, 0x2 - bl CreateSprite - b _080830B2 - .pool -_080830A0: - movs r0, 0 - strh r0, [r4, 0x2E] - ldr r0, =0x0000fff0 - strh r0, [r4, 0x30] - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim -_080830B2: - ldrh r0, [r4, 0x30] - strh r0, [r4, 0x26] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8083010 - - thumb_func_start sub_80830C0 -sub_80830C0: @ 80830C0 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080830FC - cmp r0, 0x1 - bgt _080830D6 - cmp r0, 0 - beq _080830DC - b _08083130 -_080830D6: - cmp r0, 0x2 - beq _08083112 - b _08083130 -_080830DC: - ldrh r0, [r4, 0x30] - adds r0, 0x8 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5C - ble _08083130 - movs r0, 0x5C - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r0, 0x15 - bl PlaySE - b _08083130 -_080830FC: - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _08083130 - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - b _08083130 -_08083112: - ldrh r0, [r4, 0x30] - adds r0, 0x4 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB0 - ble _08083130 - ldr r0, =gUnknown_020322A4 - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - adds r0, r4, 0 - bl DestroySprite -_08083130: - ldrh r0, [r4, 0x30] - strh r0, [r4, 0x26] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80830C0 - - thumb_func_start sub_8083140 -sub_8083140: @ 8083140 - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r3, r1, 16 - ldr r1, =gUnknown_020322A4 - ldr r1, [r1] - movs r2, 0x8C - lsls r2, 1 - adds r1, r2 - ldrh r2, [r1] - cmp r2, r0 - bcs _08083166 - adds r0, r2, 0x2 - strh r0, [r1] - ldrh r0, [r1] - adds r1, r3, 0 - bl sub_8083170 -_08083166: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8083140 - - thumb_func_start sub_8083170 -sub_8083170: @ 8083170 - push {r4-r7,lr} - lsls r0, 16 - lsls r1, 16 - lsrs r1, 16 - ldr r7, =0x06006000 - lsrs r0, 10 - bl __divsi3 - adds r1, r0, 0 - cmp r1, 0 - bge _08083188 - adds r0, r1, 0x7 -_08083188: - asrs r4, r0, 3 - movs r3, 0 - cmp r3, r4 - bge _080831B0 - ldr r0, =0x000080e9 - adds r6, r0, 0 - adds r0, 0x10 - adds r5, r0, 0 - adds r2, r7, 0 - adds r2, 0x56 - adds r0, r7, 0 - adds r3, r4, 0 -_080831A0: - strh r6, [r0, 0x16] - strh r5, [r2] - adds r2, 0x2 - adds r0, 0x2 - subs r3, 0x1 - cmp r3, 0 - bne _080831A0 - adds r3, r4, 0 -_080831B0: - adds r0, r1, 0 - cmp r1, 0 - bge _080831B8 - adds r0, r1, 0x7 -_080831B8: - asrs r2, r0, 3 - lsls r0, r2, 3 - subs r2, r1, r0 - cmp r2, 0 - beq _080831D6 - lsls r0, r3, 1 - adds r0, r7 - ldr r4, =0xffff80e1 - adds r1, r2, r4 - strh r1, [r0, 0x16] - adds r0, 0x56 - adds r4, 0x10 - adds r1, r2, r4 - strh r1, [r0] - adds r3, 0x1 -_080831D6: - cmp r3, 0x7 - bgt _080831FA - ldr r0, =0x000080e1 - adds r4, r0, 0 - adds r0, 0x10 - adds r2, r0, 0 - lsls r1, r3, 1 - adds r0, r1, 0 - adds r0, 0x56 - adds r0, r7 - adds r1, r7 -_080831EC: - strh r4, [r1, 0x16] - strh r2, [r0] - adds r0, 0x2 - adds r1, 0x2 - adds r3, 0x1 - cmp r3, 0x7 - ble _080831EC -_080831FA: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8083170 - - thumb_func_start sub_8083210 -sub_8083210: @ 8083210 - push {lr} - lsls r0, 16 - lsrs r0, 16 - ldr r1, =0x00057e40 - muls r0, r1 - cmp r0, 0 - bge _08083222 - ldr r1, =0x0000ffff - adds r0, r1 -_08083222: - asrs r0, 16 - pop {r1} - bx r1 - .pool - thumb_func_end sub_8083210 - - thumb_func_start sub_8083230 -sub_8083230: @ 8083230 - push {r4-r6,lr} - sub sp, 0x8 - lsls r0, 16 - lsrs r0, 16 - bl sub_8083210 - adds r5, r0, 0 - ldr r0, =gUnknown_020322A4 - ldr r0, [r0] - adds r1, r0, 0 - adds r1, 0x4E - ldrh r0, [r1] - cmp r0, r5 - bcs _0808324E - strh r5, [r1] -_0808324E: - movs r6, 0 -_08083250: - mov r0, sp - adds r4, r0, r6 - adds r0, r5, 0 - movs r1, 0xA - bl __umodsi3 - strb r0, [r4] - adds r0, r5, 0 - movs r1, 0xA - bl __udivsi3 - adds r5, r0, 0 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x4 - bls _08083250 - ldr r2, =0x06006458 - mov r0, sp - ldr r3, =0x00008072 - adds r1, r3, 0 - ldrb r0, [r0, 0x4] - adds r0, r1, r0 - strh r0, [r2] - adds r2, 0x2 - mov r0, sp - ldrb r0, [r0, 0x3] - adds r0, r1 - strh r0, [r2] - adds r2, 0x2 - mov r0, sp - ldrb r0, [r0, 0x2] - adds r0, r1 - strh r0, [r2] - adds r2, 0x4 - mov r0, sp - ldrb r0, [r0, 0x1] - adds r0, r1 - strh r0, [r2] - adds r2, 0x2 - mov r0, sp - ldrb r0, [r0] - adds r1, r0 - strh r1, [r2] - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8083230 - - thumb_func_start sub_80832BC -sub_80832BC: @ 80832BC - push {r4-r6,lr} - adds r6, r0, 0 - lsls r4, r1, 16 - lsrs r5, r4, 16 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _080832E0 - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r5, 0 - bl __umodsi3 - lsrs r1, r4, 17 - subs r0, r1 - strh r0, [r6] -_080832E0: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80832BC - - thumb_func_start sub_80832E8 -sub_80832E8: @ 80832E8 - push {lr} - adds r1, r0, 0 - ldrh r2, [r1] - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, 0 - bge _080832FA - adds r0, r2, 0x1 - strh r0, [r1] -_080832FA: - ldrh r2, [r1] - movs r3, 0 - ldrsh r0, [r1, r3] - cmp r0, 0 - ble _08083308 - subs r0, r2, 0x1 - strh r0, [r1] -_08083308: - pop {r0} - bx r0 - thumb_func_end sub_80832E8 - - thumb_func_start sub_808330C -sub_808330C: @ 808330C - push {r4,lr} - ldr r4, =gUnknown_020322A4 - ldr r0, [r4] - movs r1, 0x8E - lsls r1, 1 - adds r0, r1 - bl sub_80832E8 - ldr r0, [r4] - movs r1, 0x8F - lsls r1, 1 - adds r0, r1 - bl sub_80832E8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_808330C - - thumb_func_start sub_8083334 -sub_8083334: @ 8083334 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r1, 16 - lsrs r1, 16 - movs r5, 0x8 - cmp r1, 0x9 - bhi _08083344 - movs r5, 0x10 -_08083344: - ldrh r0, [r4] - movs r2, 0 - ldrsh r1, [r4, r2] - cmp r1, 0 - bne _08083362 - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r5, 0 - bl __modsi3 - lsrs r1, r5, 1 - subs r0, r1 - b _08083376 -_08083362: - cmp r1, 0 - bge _0808336A - adds r0, 0x1 - strh r0, [r4] -_0808336A: - ldrh r1, [r4] - movs r2, 0 - ldrsh r0, [r4, r2] - cmp r0, 0 - ble _08083378 - subs r0, r1, 0x1 -_08083376: - strh r0, [r4] -_08083378: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8083334 - - thumb_func_start sub_8083380 -sub_8083380: @ 8083380 - push {r4,r5,lr} - ldr r5, =gUnknown_020322A4 - ldr r2, [r5] - movs r4, 0x84 - lsls r4, 1 - adds r0, r2, r4 - ldr r1, [r0] - cmp r1, 0 - bne _080833A0 - movs r3, 0x8E - lsls r3, 1 - adds r0, r2, r3 - strh r1, [r0] - adds r3, 0x2 - adds r0, r2, r3 - strh r1, [r0] -_080833A0: - ldr r0, [r5] - adds r2, r0, r4 - ldr r1, [r2] - adds r1, 0x1 - str r1, [r2] - movs r2, 0x8E - lsls r2, 1 - adds r0, r2 - lsls r1, 16 - lsrs r1, 16 - bl sub_8083334 - ldr r1, [r5] - movs r3, 0x8F - lsls r3, 1 - adds r0, r1, r3 - adds r1, r4 - ldrh r1, [r1] - bl sub_8083334 - ldr r2, [r5] - adds r0, r2, r4 - ldr r0, [r0] - cmp r0, 0x14 - beq _080833DC - movs r0, 0 - b _080833F0 - .pool -_080833DC: - movs r1, 0x8E - lsls r1, 1 - adds r0, r2, r1 - movs r1, 0 - strh r1, [r0] - movs r3, 0x8F - lsls r3, 1 - adds r0, r2, r3 - strh r1, [r0] - movs r0, 0x1 -_080833F0: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8083380 - - thumb_func_start sub_80833F8 -sub_80833F8: @ 80833F8 - ldr r1, =gUnknown_020322A4 - ldr r2, [r1] - movs r3, 0x8E - lsls r3, 1 - adds r1, r2, r3 - ldrh r1, [r1] - negs r1, r1 - strh r1, [r0, 0x24] - adds r3, 0x2 - adds r1, r2, r3 - ldrh r1, [r1] - negs r1, r1 - strh r1, [r0, 0x26] - bx lr - .pool - thumb_func_end sub_80833F8 - - thumb_func_start UpdateBerryBlenderRecord -@ void UpdateBerryBlenderRecord() -UpdateBerryBlenderRecord: @ 8083418 - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r2, [r0] - ldr r0, =gUnknown_020322A4 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x7C - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 1 - ldr r3, =0x000009bc - adds r2, r3 - adds r2, r0 - adds r1, 0x4E - ldrh r1, [r1] - ldrh r0, [r2] - cmp r0, r1 - bcs _0808343E - strh r1, [r2] -_0808343E: - pop {r0} - bx r0 - .pool - thumb_func_end UpdateBerryBlenderRecord - - thumb_func_start berry_blender_related -berry_blender_related: @ 8083450 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4C - ldr r1, =gUnknown_020322A4 - ldr r0, [r1] - ldrb r0, [r0] - adds r4, r1, 0 - cmp r0, 0x6 - bls _0808346A - b _08083898 -_0808346A: - lsls r0, 2 - ldr r1, =_0808347C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0808347C: - .4byte _08083498 - .4byte _080834AE - .4byte _080834C8 - .4byte _08083518 - .4byte _08083790 - .4byte _080837A8 - .4byte _0808386C -_08083498: - ldr r1, [r4] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r4] - movs r1, 0x84 - lsls r1, 1 - adds r0, r1 - movs r1, 0x11 - str r1, [r0] - b _08083898 -_080834AE: - ldr r1, [r4] - movs r3, 0x84 - lsls r3, 1 - adds r2, r1, r3 - ldr r0, [r2] - subs r0, 0xA - str r0, [r2] - cmp r0, 0 - blt _080834C2 - b _08083898 -_080834C2: - movs r0, 0 - str r0, [r2] - b _08083854 -_080834C8: - ldr r1, [r4] - movs r0, 0x84 - lsls r0, 1 - adds r1, r0 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0x14 - bgt _080834DC - b _08083898 -_080834DC: - movs r6, 0 -_080834DE: - ldr r4, =gUnknown_020322A4 - ldr r0, [r4] - adds r0, 0x46 - adds r0, r6 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl DestroySprite - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x2 - bls _080834DE - ldr r1, [r4] - movs r3, 0x84 - lsls r3, 1 - adds r2, r1, r3 - movs r0, 0 - str r0, [r2] - b _08083854 - .pool -_08083518: - ldr r4, =sText_BlendingResults - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0xA8 - bl GetStringCenterAlignXOffset - lsls r2, r0, 24 - lsrs r2, 24 - movs r0, 0xFF - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - movs r0, 0x5 - adds r1, r4, 0 - movs r3, 0x1 - bl sub_80840D4 - ldr r1, =gUnknown_020322A4 - ldr r0, [r1] - adds r2, r0, 0 - adds r2, 0x7C - ldrb r0, [r2] - movs r3, 0x15 - mov r9, r3 - cmp r0, 0x4 - bne _08083550 - movs r0, 0x11 - mov r9, r0 -_08083550: - movs r6, 0 - mov r3, sp - adds r3, 0x10 - str r3, [sp, 0x48] - ldrb r2, [r2] - cmp r6, r2 - bcs _0808361A - adds r7, r1, 0 - movs r0, 0x3 - mov r10, r0 -_08083564: - ldr r0, [r7] - movs r2, 0x9E - lsls r2, 1 - adds r1, r0, r2 - adds r1, r6 - ldrb r5, [r1] - adds r0, 0x9F - adds r6, 0x1 - mov r8, r6 - mov r1, r8 - movs r2, 0 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - ldr r0, [r7] - adds r0, 0x9F - ldr r1, =sText_Dot - bl StringAppend - ldr r0, [r7] - adds r0, 0x9F - ldr r1, =gText_Space - bl StringAppend - ldr r0, [r7] - adds r0, 0x9F - lsls r4, r5, 3 - subs r4, r5 - lsls r4, 2 - ldr r3, =gLinkPlayers + 8 - adds r1, r4, r3 - bl StringAppend - ldr r1, [r7] - adds r1, 0x9F - mov r0, r9 - lsls r6, r0, 24 - lsrs r6, 24 - movs r2, 0xFF - str r2, [sp] - mov r3, r10 - str r3, [sp, 0x4] - movs r0, 0x5 - movs r2, 0x8 - adds r3, r6, 0 - bl sub_80840D4 - ldr r1, [r7] - adds r0, r1, 0 - adds r0, 0x9F - lsls r5, 4 - adds r5, r1 - movs r1, 0xAD - lsls r1, 1 - adds r5, r1 - adds r1, r5, 0 - bl StringCopy - ldr r0, [r7] - adds r0, 0x9F - ldr r2, =gLinkPlayers - adds r4, r2 - ldrb r1, [r4, 0x1A] - bl ConvertInternationalString - ldr r0, [r7] - adds r0, 0x9F - ldr r1, =sText_SpaceBerry - bl StringAppend - ldr r1, [r7] - adds r1, 0x9F - movs r3, 0xFF - str r3, [sp] - mov r0, r10 - str r0, [sp, 0x4] - movs r0, 0x5 - movs r2, 0x54 - adds r3, r6, 0 - bl sub_80840D4 - movs r1, 0x10 - add r9, r1 - mov r2, r8 - lsls r2, 16 - lsrs r6, r2, 16 - ldr r0, [r7] - adds r0, 0x7C - ldrb r0, [r0] - cmp r6, r0 - bcc _08083564 -_0808361A: - ldr r1, =sText_MaximumSpeed - movs r3, 0xFF - mov r10, r3 - str r3, [sp] - movs r0, 0x3 - mov r9, r0 - str r0, [sp, 0x4] - movs r0, 0x5 - movs r2, 0 - movs r3, 0x51 - bl sub_80840D4 - ldr r6, =gUnknown_020322A4 - ldr r0, [r6] - adds r4, r0, 0 - adds r4, 0x9F - adds r0, 0x4E - ldrh r0, [r0] - movs r1, 0x64 - bl __udivsi3 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r0, [r6] - adds r0, 0x9F - ldr r1, =sText_Dot - bl StringAppend - ldr r0, [r6] - adds r0, 0x4E - ldrh r0, [r0] - movs r1, 0x64 - bl __umodsi3 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldr r0, [sp, 0x48] - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, [r6] - adds r0, 0x9F - ldr r1, [sp, 0x48] - bl StringAppend - ldr r0, [r6] - adds r0, 0x9F - ldr r1, =sText_RPM - bl StringAppend - ldr r1, [r6] - adds r1, 0x9F - movs r0, 0x1 - movs r2, 0xA8 - bl GetStringRightAlignXOffset - ldr r1, [r6] - adds r1, 0x9F - lsls r2, r0, 24 - lsrs r2, 24 - mov r3, r10 - str r3, [sp] - mov r0, r9 - str r0, [sp, 0x4] - movs r0, 0x5 - movs r3, 0x51 - bl sub_80840D4 - ldr r1, =sText_Time - mov r2, r10 - str r2, [sp] - mov r3, r9 - str r3, [sp, 0x4] - movs r0, 0x5 - movs r2, 0 - movs r3, 0x61 - bl sub_80840D4 - ldr r5, [r6] - movs r1, 0x82 - lsls r1, 1 - adds r0, r5, r1 - ldr r0, [r0] - mov r8, r0 - movs r1, 0x3C - bl __udivsi3 - movs r1, 0x3C - bl __umodsi3 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - movs r1, 0xE1 - lsls r1, 4 - mov r0, r8 - bl __udivsi3 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r5, 0x9F - adds r0, r5, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, [r6] - adds r0, 0x9F - ldr r1, =sText_Min - bl StringAppend - adds r1, r4, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, [r6] - adds r0, 0x9F - ldr r1, =sText_Sec - bl StringAppend - ldr r1, [r6] - adds r1, 0x9F - movs r0, 0x1 - movs r2, 0xA8 - bl GetStringRightAlignXOffset - ldr r1, [r6] - adds r1, 0x9F - lsls r2, r0, 24 - lsrs r2, 24 - mov r3, r10 - str r3, [sp] - mov r0, r9 - str r0, [sp, 0x4] - movs r0, 0x5 - movs r3, 0x61 - bl sub_80840D4 - ldr r1, [r6] - movs r3, 0x84 - lsls r3, 1 - adds r2, r1, r3 - movs r0, 0 - str r0, [r2] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - movs r0, 0x5 - movs r1, 0x2 - bl CopyWindowToVram - b _08083898 - .pool -_08083790: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0808379E - b _08083898 -_0808379E: - ldr r1, [r4] - b _08083854 - .pool -_080837A8: - movs r0, 0x5 - movs r1, 0x1 - bl sub_8198070 - movs r6, 0 - add r7, sp, 0x40 - ldr r5, =gUnknown_020322A4 -_080837B6: - ldr r0, [r5] - lsls r2, r6, 1 - adds r0, 0x74 - adds r0, r2 - ldrh r1, [r0] - cmp r1, 0 - beq _080837CC - add r0, sp, 0x38 - adds r0, r2 - subs r1, 0x85 - strh r1, [r0] -_080837CC: - ldr r0, [r5] - adds r0, 0x8E - adds r0, r2 - ldrh r0, [r0] - cmp r0, 0xFF - beq _080837EA - lsls r4, r6, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r4, 0 - movs r1, 0x3 - bl CopyWindowToVram -_080837EA: - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, 0x3 - bls _080837B6 - bl sub_8081E20 - ldr r4, =gUnknown_020322A4 - ldr r3, [r4] - movs r1, 0xAC - lsls r1, 1 - adds r0, r3, r1 - adds r1, r3, 0 - adds r1, 0x7C - ldrb r2, [r1] - subs r1, 0x2E - ldrh r1, [r1] - str r1, [sp] - adds r1, r7, 0 - add r3, sp, 0x8 - bl sub_8081BE0 - ldr r1, [r4] - adds r1, 0x9F - adds r0, r7, 0 - bl sub_80838AC - ldr r1, [r4] - movs r2, 0xD4 - lsls r2, 1 - adds r1, r2 - adds r0, r7, 0 - bl sub_8083F94 - ldr r0, =sub_8083F3C - movs r1, 0x6 - bl CreateTask - bl sub_80EECEC - ldr r0, =gSpecialVar_ItemId - ldrh r0, [r0] - movs r1, 0x1 - bl RemoveBagItem - adds r0, r7, 0 - bl sub_8136F2C - ldr r1, [r4] - ldr r3, =0x000011b8 - adds r2, r1, r3 - movs r0, 0 - strh r0, [r2] -_08083854: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08083898 - .pool -_0808386C: - ldr r4, [r4] - ldr r0, =0x000011b8 - adds r5, r4, r0 - adds r4, 0x9F - bl sav2_get_text_speed - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_808417C - cmp r0, 0 - beq _08083898 - bl UpdateBerryBlenderRecord - movs r0, 0x1 - b _0808389A - .pool -_08083898: - movs r0, 0 -_0808389A: - add sp, 0x4C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end berry_blender_related - - thumb_func_start sub_80838AC -sub_80838AC: @ 80838AC - push {r4-r6,lr} - sub sp, 0xC - adds r5, r0, 0 - adds r6, r1, 0 - movs r0, 0xFF - strb r0, [r6] - ldr r1, =gPokeblockNames - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r6, 0 - bl StringCopy - ldr r1, =gText_WasMade - adds r0, r6, 0 - bl StringAppend - ldr r1, =sText_NewLine - adds r0, r6, 0 - bl StringAppend - adds r0, r5, 0 - bl sub_8136EA4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - bl sub_8136EDC - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r1, =sText_TheLevelIs - adds r0, r6, 0 - bl StringAppend - mov r0, sp - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r0, r6, 0 - mov r1, sp - bl StringAppend - ldr r1, =sText_TheFeelIs - adds r0, r6, 0 - bl StringAppend - mov r0, sp - adds r1, r5, 0 - movs r2, 0 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r0, r6, 0 - mov r1, sp - bl StringAppend - ldr r1, =sText_Dot2 - adds r0, r6, 0 - bl StringAppend - ldr r1, =gText_NewParagraph - adds r0, r6, 0 - bl StringAppend - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80838AC - - thumb_func_start sub_808395C -sub_808395C: @ 808395C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r9, r0 - mov r12, r2 - lsls r1, 24 - lsrs r7, r1, 24 - movs r0, 0 - cmp r0, r7 - bge _080839A8 -_08083972: - movs r5, 0 - adds r1, r0, 0x1 - mov r8, r1 - cmp r5, r7 - bge _080839A2 - mov r1, r9 - adds r6, r1, r0 -_08083980: - ldrb r4, [r6] - lsls r1, r4, 2 - add r1, r12 - mov r0, r9 - adds r2, r0, r5 - ldrb r3, [r2] - lsls r0, r3, 2 - add r0, r12 - ldr r1, [r1] - ldr r0, [r0] - cmp r1, r0 - bls _0808399C - strb r3, [r6] - strb r4, [r2] -_0808399C: - adds r5, 0x1 - cmp r5, r7 - blt _08083980 -_080839A2: - mov r0, r8 - cmp r0, r7 - blt _08083972 -_080839A8: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_808395C - - thumb_func_start sub_80839B4 -sub_80839B4: @ 80839B4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - movs r5, 0 - ldr r2, =gUnknown_020322A4 - ldr r0, [r2] - adds r0, 0x7C - adds r1, r2, 0 - add r3, sp, 0x4 - mov r10, r3 - b _080839E4 - .pool -_080839D4: - mov r4, sp - adds r0, r4, r5 - strb r5, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, [r2] - adds r0, 0x7C -_080839E4: - ldrb r0, [r0] - cmp r5, r0 - bcc _080839D4 - movs r5, 0 - ldr r0, [r1] - adds r1, r0, 0 - adds r1, 0x7C - ldrb r2, [r1] - cmp r5, r2 - bcs _08083A5E - mov r9, r10 - movs r3, 0x92 - lsls r3, 1 - adds r3, r0 - mov r8, r3 - mov r12, r1 - movs r4, 0x93 - lsls r4, 1 - adds r7, r0, r4 - movs r1, 0x94 - lsls r1, 1 - adds r6, r0, r1 -_08083A10: - lsls r4, r5, 2 - add r4, r9 - lsls r3, r5, 1 - adds r3, r5 - lsls r3, 1 - mov r2, r8 - adds r0, r2, r3 - ldrh r2, [r0] - lsls r0, r2, 5 - subs r0, r2 - lsls r1, r0, 6 - subs r1, r0 - lsls r1, 3 - adds r1, r2 - lsls r1, 6 - str r1, [r4] - adds r0, r7, r3 - ldrh r2, [r0] - lsls r0, r2, 5 - subs r0, r2 - lsls r0, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - str r1, [r4] - movs r0, 0xFA - lsls r0, 2 - adds r1, r0 - adds r3, r6, r3 - ldrh r0, [r3] - subs r1, r0 - str r1, [r4] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - mov r1, r12 - ldrb r1, [r1] - cmp r5, r1 - bcc _08083A10 -_08083A5E: - ldr r4, =gUnknown_020322A4 - ldr r0, [r4] - adds r0, 0x7C - ldrb r1, [r0] - mov r0, sp - mov r2, r10 - bl sub_808395C - movs r5, 0 - ldr r0, [r4] - adds r0, 0x7C - ldrb r0, [r0] - cmp r5, r0 - bcs _08083A9E - adds r2, r4, 0 - movs r3, 0x9E - lsls r3, 1 -_08083A80: - ldr r1, [r2] - adds r1, r3 - adds r1, r5 - mov r4, sp - adds r0, r4, r5 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, [r2] - adds r0, 0x7C - ldrb r0, [r0] - cmp r5, r0 - bcc _08083A80 -_08083A9E: - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _08083AB4 - movs r3, 0 - b _08083ABC - .pool -_08083AB4: - bl GetMultiplayerId - lsls r0, 24 - lsrs r3, r0, 24 -_08083ABC: - movs r5, 0 - ldr r1, =gUnknown_020322A4 - ldr r0, [r1] - adds r0, 0x7C - ldrb r0, [r0] - cmp r5, r0 - bcs _08083AF2 - movs r6, 0x9E - lsls r6, 1 - movs r4, 0xD2 - lsls r4, 1 -_08083AD2: - ldr r2, [r1] - adds r0, r2, r6 - adds r0, r5 - ldrb r0, [r0] - cmp r0, r3 - bne _08083AE2 - adds r0, r2, r4 - strb r5, [r0] -_08083AE2: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, [r1] - adds r0, 0x7C - ldrb r0, [r0] - cmp r5, r0 - bcc _08083AD2 -_08083AF2: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80839B4 - - thumb_func_start sub_8083B08 -sub_8083B08: @ 8083B08 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - ldr r1, =gUnknown_020322A4 - ldr r0, [r1] - ldrb r0, [r0] - adds r2, r1, 0 - cmp r0, 0x6 - bls _08083B22 - b _08083E12 -_08083B22: - lsls r0, 2 - ldr r1, =_08083B34 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08083B34: - .4byte _08083B50 - .4byte _08083B66 - .4byte _08083B80 - .4byte _08083B9A - .4byte _08083DC8 - .4byte _08083DE2 - .4byte _08083E08 -_08083B50: - ldr r1, [r2] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r2] - movs r1, 0x84 - lsls r1, 1 - adds r0, r1 - movs r1, 0xFF - str r1, [r0] - b _08083E12 -_08083B66: - ldr r1, [r2] - movs r3, 0x84 - lsls r3, 1 - adds r2, r1, r3 - ldr r0, [r2] - subs r0, 0xA - str r0, [r2] - cmp r0, 0 - blt _08083B7A - b _08083E12 -_08083B7A: - movs r0, 0 - str r0, [r2] - b _08083DF8 -_08083B80: - ldr r1, [r2] - movs r0, 0x84 - lsls r0, 1 - adds r2, r1, r0 - ldr r0, [r2] - adds r0, 0x1 - str r0, [r2] - cmp r0, 0x14 - bgt _08083B94 - b _08083E12 -_08083B94: - movs r0, 0 - str r0, [r2] - b _08083DF8 -_08083B9A: - movs r0, 0x5 - movs r1, 0 - movs r2, 0x1 - movs r3, 0xD - bl SetWindowBorderStyle - ldr r4, =sText_Ranking - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0xA8 - bl GetStringCenterAlignXOffset - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - movs r0, 0xFF - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - movs r0, 0x5 - adds r1, r4, 0 - movs r3, 0x1 - bl sub_80840D4 - ldr r1, =gUnknown_08339B40 - mov r8, r1 - mov r0, r8 - movs r1, 0x80 - movs r2, 0x34 - movs r3, 0 - bl CreateSprite - ldr r7, =gUnknown_020322A4 - ldr r1, [r7] - adds r1, 0x46 - strb r0, [r1] - ldr r0, [r7] - adds r0, 0x46 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r6, =gSprites - adds r0, r6 - movs r1, 0x3 - bl StartSpriteAnim - ldr r0, [r7] - adds r0, 0x46 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r5, r6, 0 - adds r5, 0x1C - adds r0, r5 - ldr r4, =SpriteCallbackDummy - str r4, [r0] - mov r0, r8 - movs r1, 0xA0 - movs r2, 0x34 - movs r3, 0 - bl CreateSprite - ldr r1, [r7] - adds r1, 0x47 - strb r0, [r1] - ldr r0, [r7] - adds r0, 0x47 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - str r4, [r0] - mov r0, r8 - movs r1, 0xC0 - movs r2, 0x34 - movs r3, 0 - bl CreateSprite - ldr r1, [r7] - adds r1, 0x48 - strb r0, [r1] - ldr r0, [r7] - adds r0, 0x48 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x1 - bl StartSpriteAnim - ldr r0, [r7] - adds r0, 0x48 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - str r4, [r0] - bl sub_80839B4 - movs r2, 0x29 - str r2, [sp, 0x8] - movs r2, 0 - ldr r0, [r7] - adds r0, 0x7C - ldrb r0, [r0] - cmp r2, r0 - bcc _08083C7C - b _08083D8A -_08083C7C: - movs r3, 0xFF - mov r10, r3 - movs r0, 0x3 - mov r9, r0 -_08083C84: - ldr r0, [r7] - movs r3, 0x9E - lsls r3, 1 - adds r1, r0, r3 - adds r1, r2 - ldrb r5, [r1] - adds r0, 0x9F - adds r2, 0x1 - mov r8, r2 - mov r1, r8 - movs r2, 0 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - ldr r0, [r7] - adds r0, 0x9F - ldr r1, =sText_Dot - bl StringAppend - ldr r0, [r7] - adds r0, 0x9F - ldr r1, =gText_Space - bl StringAppend - ldr r0, [r7] - adds r0, 0x9F - lsls r1, r5, 3 - subs r1, r5 - lsls r1, 2 - ldr r2, =gLinkPlayers + 8 - adds r1, r2 - bl StringAppend - ldr r1, [r7] - adds r1, 0x9F - ldr r0, [sp, 0x8] - lsls r6, r0, 24 - lsrs r6, 24 - mov r2, r10 - str r2, [sp] - mov r3, r9 - str r3, [sp, 0x4] - movs r0, 0x5 - movs r2, 0 - adds r3, r6, 0 - bl sub_80840D4 - ldr r1, [r7] - adds r0, r1, 0 - adds r0, 0x9F - lsls r4, r5, 1 - adds r4, r5 - lsls r4, 1 - movs r2, 0x92 - lsls r2, 1 - adds r1, r2 - adds r1, r4 - ldrh r1, [r1] - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r1, [r7] - adds r1, 0x9F - mov r3, r10 - str r3, [sp] - mov r0, r9 - str r0, [sp, 0x4] - movs r0, 0x5 - movs r2, 0x4E - adds r3, r6, 0 - bl sub_80840D4 - ldr r1, [r7] - adds r0, r1, 0 - adds r0, 0x9F - movs r2, 0x93 - lsls r2, 1 - adds r1, r2 - adds r1, r4 - ldrh r1, [r1] - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r1, [r7] - adds r1, 0x9F - mov r3, r10 - str r3, [sp] - mov r0, r9 - str r0, [sp, 0x4] - movs r0, 0x5 - movs r2, 0x6E - adds r3, r6, 0 - bl sub_80840D4 - ldr r1, [r7] - adds r0, r1, 0 - adds r0, 0x9F - movs r2, 0x94 - lsls r2, 1 - adds r1, r2 - adds r1, r4 - ldrh r1, [r1] - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r1, [r7] - adds r1, 0x9F - mov r3, r10 - str r3, [sp] - mov r0, r9 - str r0, [sp, 0x4] - movs r0, 0x5 - movs r2, 0x8E - adds r3, r6, 0 - bl sub_80840D4 - ldr r1, [sp, 0x8] - adds r1, 0x10 - str r1, [sp, 0x8] - mov r2, r8 - lsls r2, 16 - lsrs r2, 16 - ldr r0, [r7] - adds r0, 0x7C - ldrb r0, [r0] - cmp r2, r0 - bcs _08083D8A - b _08083C84 -_08083D8A: - movs r0, 0x5 - bl PutWindowTilemap - movs r0, 0x5 - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, =gUnknown_020322A4 - ldr r1, [r0] - movs r3, 0x84 - lsls r3, 1 - adds r2, r1, r3 - movs r0, 0 - str r0, [r2] - b _08083DF8 - .pool -_08083DC8: - ldr r2, [r2] - movs r0, 0x84 - lsls r0, 1 - adds r1, r2, r0 - ldr r0, [r1] - adds r0, 0x1 - str r0, [r1] - cmp r0, 0x14 - ble _08083E12 - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - b _08083E12 -_08083DE2: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08083E12 - movs r0, 0x5 - bl PlaySE - ldr r0, =gUnknown_020322A4 - ldr r1, [r0] -_08083DF8: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08083E12 - .pool -_08083E08: - ldr r1, [r2] - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - b _08083E14 -_08083E12: - movs r0, 0 -_08083E14: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8083B08 - - thumb_func_start ShowBerryBlenderRecordWindow -ShowBerryBlenderRecordWindow: @ 8083E24 - push {r4-r7,lr} - sub sp, 0x34 - ldr r0, =gUnknown_08339D14 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x2C] - str r1, [sp, 0x30] - ldr r5, =gUnknown_0203AB74 - add r0, sp, 0x2C - bl AddWindow - strb r0, [r5] - ldrb r0, [r5] - movs r1, 0 - bl sub_81973FC - ldrb r0, [r5] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r6, =gText_BlenderMaxSpeedRecord - movs r0, 0x1 - adds r1, r6, 0 - movs r2, 0x90 - bl GetStringCenterAlignXOffset - adds r3, r0, 0 - ldrb r0, [r5] - lsls r3, 24 - lsrs r3, 24 - movs r1, 0x1 - str r1, [sp] - movs r4, 0 - str r4, [sp, 0x4] - str r4, [sp, 0x8] - adds r2, r6, 0 - bl PrintTextOnWindow - ldrb r0, [r5] - ldr r2, =gText_234Players - movs r1, 0x29 - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x4 - bl PrintTextOnWindow - movs r6, 0 - movs r7, 0xA4 - lsls r7, 22 -_08083E8A: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - lsls r1, r6, 1 - ldr r2, =0x000009bc - adds r0, r2 - adds r0, r1 - ldrh r4, [r0] - adds r0, r4, 0 - movs r1, 0x64 - bl __udivsi3 - adds r1, r0, 0 - add r0, sp, 0xC - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - adds r5, r0, 0 - ldr r1, =sText_Dot - bl StringAppend - adds r5, r0, 0 - adds r0, r4, 0 - movs r1, 0x64 - bl __umodsi3 - adds r1, r0, 0 - adds r0, r5, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - adds r5, r0, 0 - ldr r1, =sText_RPM - bl StringAppend - movs r0, 0x1 - add r1, sp, 0xC - movs r2, 0x8C - bl GetStringRightAlignXOffset - adds r3, r0, 0 - ldr r4, =gUnknown_0203AB74 - ldrb r0, [r4] - lsls r3, 24 - lsrs r3, 24 - lsrs r1, r7, 24 - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - str r1, [sp, 0x8] - movs r1, 0x1 - add r2, sp, 0xC - bl PrintTextOnWindow - movs r0, 0x80 - lsls r0, 21 - adds r7, r0 - adds r6, 0x1 - cmp r6, 0x2 - ble _08083E8A - ldrb r0, [r4] - bl PutWindowTilemap - ldrb r0, [r4] - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0x34 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end ShowBerryBlenderRecordWindow - - thumb_func_start sub_8083F3C -sub_8083F3C: @ 8083F3C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08083F62 - ldr r0, =0x0000016f - bl PlayFanfare - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08083F62: - bl IsFanfareTaskInactive - lsls r0, 24 - cmp r0, 0 - beq _08083F82 - ldr r0, =gUnknown_020322A4 - ldr r0, [r0] - movs r1, 0xAA - lsls r1, 1 - adds r0, r1 - ldrh r0, [r0] - bl PlayBGM - adds r0, r5, 0 - bl DestroyTask -_08083F82: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8083F3C - - thumb_func_start sub_8083F94 -sub_8083F94: @ 8083F94 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - adds r6, r0, 0 - adds r7, r1, 0 - bl sub_8136EA4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - bl sub_8136EDC - adds r1, r0, 0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 1 - lsls r1, 24 - lsrs r1, 24 - bl __divsi3 - lsls r0, 16 - lsrs r3, r0, 16 - strb r3, [r7, 0xD] - ldrb r0, [r6] - strb r0, [r7, 0xC] - movs r0, 0xFF - strb r0, [r7] - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - beq _080840C4 - ldr r0, =gUnknown_020322A4 - ldr r2, [r0] - movs r4, 0xD2 - lsls r4, 1 - adds r1, r2, r4 - ldrb r1, [r1] - mov r8, r0 - cmp r1, 0 - bne _08084058 - cmp r3, 0x14 - bls _08084058 - adds r0, r2, 0 - adds r0, 0x7C - ldrb r1, [r0] - subs r1, 0x1 - movs r0, 0x9E - lsls r0, 1 - mov r9, r0 - adds r0, r2, r0 - adds r0, r1 - ldrb r0, [r0] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - ldr r5, =gLinkPlayers + 8 - adds r1, r5 - adds r0, r7, 0 - bl StringCopy - adds r0, r6, 0 - bl sub_81370B4 - strb r0, [r7, 0xB] - ldrb r1, [r7, 0xB] - ldrb r2, [r7, 0xC] - ldrb r3, [r7, 0xD] - mov r6, r8 - ldr r4, [r6] - adds r0, r4, 0 - adds r0, 0x7C - ldrb r0, [r0] - subs r0, 0x1 - add r4, r9 - adds r4, r0 - ldrb r4, [r4] - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r5, r0 - ldrb r0, [r5, 0x12] - str r0, [sp] - adds r0, r7, 0 - bl Put3CheersForPokeblocksOnTheAir - lsls r0, 24 - cmp r0, 0 - bne _080840BA - b _080840C4 - .pool -_08084058: - mov r0, r8 - ldr r2, [r0] - movs r1, 0xD2 - lsls r1, 1 - adds r0, r2, r1 - ldrb r1, [r0] - adds r0, r2, 0 - adds r0, 0x7C - ldrb r0, [r0] - subs r0, 0x1 - cmp r1, r0 - bne _080840C4 - cmp r3, 0x14 - bhi _080840C4 - movs r4, 0x9E - lsls r4, 1 - adds r0, r2, r4 - ldrb r0, [r0] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - ldr r5, =gLinkPlayers + 8 - adds r1, r5 - adds r0, r7, 0 - bl StringCopy - adds r0, r6, 0 - bl sub_81370B4 - strb r0, [r7, 0xB] - ldrb r1, [r7, 0xB] - ldrb r2, [r7, 0xC] - ldrb r3, [r7, 0xD] - mov r6, r8 - ldr r0, [r6] - adds r0, r4 - ldrb r4, [r0] - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r5, r0 - ldrb r0, [r5, 0x12] - str r0, [sp] - adds r0, r7, 0 - bl Put3CheersForPokeblocksOnTheAir - lsls r0, 24 - cmp r0, 0 - beq _080840C4 -_080840BA: - movs r0, 0x1 - b _080840C6 - .pool -_080840C4: - movs r0, 0 -_080840C6: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8083F94 - - thumb_func_start sub_80840D4 -sub_80840D4: @ 80840D4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x18 - mov r9, r1 - ldr r4, [sp, 0x38] - lsls r0, 24 - lsrs r6, r0, 24 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - lsls r3, 24 - lsrs r7, r3, 24 - movs r5, 0 - cmp r4, 0x1 - beq _08084116 - cmp r4, 0x1 - bgt _08084100 - cmp r4, 0 - beq _08084108 - b _08084132 -_08084100: - cmp r4, 0x2 - beq _08084124 - cmp r4, 0x3 - bne _08084136 -_08084108: - add r1, sp, 0x14 - movs r0, 0x1 - strb r0, [r1] - movs r0, 0x2 - strb r0, [r1, 0x1] - movs r0, 0x3 - b _08084130 -_08084116: - add r0, sp, 0x14 - strb r5, [r0] - adds r1, r0, 0 - movs r0, 0x2 - strb r0, [r1, 0x1] - movs r0, 0x3 - b _08084130 -_08084124: - add r0, sp, 0x14 - strb r5, [r0] - adds r1, r0, 0 - movs r0, 0x4 - strb r0, [r1, 0x1] - movs r0, 0x5 -_08084130: - strb r0, [r1, 0x2] -_08084132: - cmp r4, 0x3 - beq _08084148 -_08084136: - add r0, sp, 0x14 - ldrb r0, [r0] - lsls r1, r0, 4 - orrs r1, r0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl FillWindowPixelBuffer -_08084148: - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - str r0, [sp, 0x4] - add r0, sp, 0x14 - str r0, [sp, 0x8] - ldr r0, [sp, 0x34] - lsls r0, 24 - asrs r0, 24 - str r0, [sp, 0xC] - mov r0, r9 - str r0, [sp, 0x10] - adds r0, r6, 0 - movs r1, 0x1 - mov r2, r8 - adds r3, r7, 0 - bl AddTextPrinterParametrized2 - add sp, 0x18 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80840D4 - - thumb_func_start sub_808417C -sub_808417C: @ 808417C - push {r4-r7,lr} - sub sp, 0x8 - adds r5, r0, 0 - adds r7, r1, 0 - adds r6, r2, 0 - movs r0, 0 - ldrsh r4, [r5, r0] - cmp r4, 0 - beq _08084194 - cmp r4, 0x1 - beq _080841C6 - b _080841DA -_08084194: - movs r0, 0x4 - movs r1, 0 - movs r2, 0x14 - movs r3, 0xF - bl sub_8197B1C - str r6, [sp] - str r4, [sp, 0x4] - movs r0, 0x4 - adds r1, r7, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_80840D4 - movs r0, 0x4 - bl PutWindowTilemap - movs r0, 0x4 - movs r1, 0x3 - bl CopyWindowToVram - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - b _080841DA -_080841C6: - movs r0, 0x4 - bl IsTextPrinterActive - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - bne _080841DA - strh r0, [r5] - movs r0, 0x1 - b _080841DC -_080841DA: - movs r0, 0 -_080841DC: - add sp, 0x8 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_808417C - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/bike.s b/asm/bike.s index b5d40a312..89791b987 100644 --- a/asm/bike.s +++ b/asm/bike.s @@ -2004,7 +2004,7 @@ GetOnOffBike: @ 811A080 beq _0811A0B0 movs r0, 0x1 bl SetPlayerAvatarTransitionFlags - bl sav1_reset_battle_music_maybe + bl Overworld_ClearSavedMusic bl sub_8085784 b _0811A0C4 .pool diff --git a/asm/cable_club.s b/asm/cable_club.s index 2ce8bb0b1..611b87eef 100644 --- a/asm/cable_club.s +++ b/asm/cable_club.s @@ -244,7 +244,7 @@ sub_80B252C: @ 80B252C lsrs r1, r0, 24 cmp r1, 0 bne _080B2570 - ldr r0, =gUnknown_020229C6 + ldr r0, =gLinkType strh r1, [r0] ldr r1, =gTasks lsls r0, r4, 2 @@ -286,7 +286,7 @@ _080B258E: b _080B25BA .pool _080B25A4: - ldr r1, =gUnknown_020229C6 + ldr r1, =gLinkType movs r0, 0 strh r0, [r1] ldr r1, =gTasks @@ -743,7 +743,7 @@ _080B2994: strb r0, [r1] ldrb r0, [r4] bl sub_800AA04 - ldr r4, =gUnknown_020228C4 + ldr r4, =gBlockSendBuffer adds r0, r4, 0 bl sub_80C30A4 ldr r0, =gUnknown_0203CEF8 @@ -833,7 +833,7 @@ _080B2A6C: strb r0, [r1] ldrb r0, [r4] bl sub_800AA04 - ldr r4, =gUnknown_020228C4 + ldr r4, =gBlockSendBuffer adds r0, r4, 0 bl sub_80C30A4 ldr r0, =gUnknown_0203CEF8 @@ -964,7 +964,7 @@ task_map_chg_seq_0807EC34: @ 80B2B94 ldrh r0, [r5] cmp r0, 0x1 bne _080B2C10 - ldr r0, =gUnknown_020229C6 + ldr r0, =gLinkType ldrh r2, [r0] ldr r0, =0x00002266 cmp r2, r0 @@ -1215,20 +1215,20 @@ _080B2DC0: b _080B2E34 _080B2DCA: movs r3, 0x2 - ldr r1, =gUnknown_020229C6 + ldr r1, =gLinkType ldr r4, =0x00002233 b _080B2E30 .pool _080B2DDC: movs r3, 0x2 - ldr r1, =gUnknown_020229C6 + ldr r1, =gLinkType ldr r4, =0x00002244 b _080B2E30 .pool _080B2DEC: movs r3, 0x4 movs r2, 0x4 - ldr r1, =gUnknown_020229C6 + ldr r1, =gLinkType ldr r4, =0x00002255 b _080B2E30 .pool @@ -1243,12 +1243,12 @@ _080B2E00: ands r0, r1 cmp r0, 0 bne _080B2E2C - ldr r1, =gUnknown_020229C6 + ldr r1, =gLinkType ldr r4, =0x00002266 b _080B2E30 .pool _080B2E2C: - ldr r1, =gUnknown_020229C6 + ldr r1, =gLinkType ldr r4, =0x00002277 _080B2E30: adds r0, r4, 0 @@ -1266,7 +1266,7 @@ _080B2E34: thumb_func_start sub_80B2E4C sub_80B2E4C: @ 80B2E4C push {lr} - ldr r1, =gUnknown_020229C6 + ldr r1, =gLinkType ldr r2, =0x00001133 adds r0, r2, 0 strh r0, [r1] @@ -1287,7 +1287,7 @@ sub_80B2E74: @ 80B2E74 ldr r1, =gSpecialVar_Result movs r0, 0 strh r0, [r1] - ldr r1, =gUnknown_020229C6 + ldr r1, =gLinkType ldr r2, =0x00003311 adds r0, r2, 0 strh r0, [r1] @@ -1454,7 +1454,7 @@ _080B2FC6: thumb_func_start sub_80B2FD8 sub_80B2FD8: @ 80B2FD8 push {lr} - ldr r1, =gUnknown_020229C6 + ldr r1, =gLinkType ldr r2, =0x00004411 adds r0, r2, 0 strh r0, [r1] @@ -1472,7 +1472,7 @@ sub_80B2FD8: @ 80B2FD8 thumb_func_start sub_80B3000 sub_80B3000: @ 80B3000 push {lr} - ldr r1, =gUnknown_020229C6 + ldr r1, =gLinkType ldr r2, =0x00006601 adds r0, r2, 0 strh r0, [r1] @@ -1490,7 +1490,7 @@ sub_80B3000: @ 80B3000 thumb_func_start sub_80B3028 sub_80B3028: @ 80B3028 push {lr} - ldr r1, =gUnknown_020229C6 + ldr r1, =gLinkType ldr r2, =0x00006602 adds r0, r2, 0 strh r0, [r1] @@ -1540,17 +1540,17 @@ _080B3084: .4byte _080B3128 .4byte _080B30D8 _080B30A8: - ldr r1, =gUnknown_020229C6 + ldr r1, =gLinkType ldr r2, =0x00002233 b _080B3124 .pool _080B30B8: - ldr r1, =gUnknown_020229C6 + ldr r1, =gLinkType ldr r2, =0x00002244 b _080B3124 .pool _080B30C8: - ldr r1, =gUnknown_020229C6 + ldr r1, =gLinkType ldr r2, =0x00002255 b _080B3124 .pool @@ -1564,22 +1564,22 @@ _080B30D8: ands r0, r1 cmp r0, 0 bne _080B3100 - ldr r1, =gUnknown_020229C6 + ldr r1, =gLinkType ldr r2, =0x00002266 b _080B3124 .pool _080B3100: - ldr r1, =gUnknown_020229C6 + ldr r1, =gLinkType ldr r2, =0x00002277 b _080B3124 .pool _080B3110: - ldr r1, =gUnknown_020229C6 + ldr r1, =gLinkType ldr r2, =0x00001111 b _080B3124 .pool _080B3120: - ldr r1, =gUnknown_020229C6 + ldr r1, =gLinkType ldr r2, =0x00003322 _080B3124: adds r0, r2, 0 @@ -1809,7 +1809,7 @@ _080B32F8: movs r0, 0x1 movs r1, 0 bl fade_screen - ldr r1, =gUnknown_020229C6 + ldr r1, =gLinkType ldr r2, =0x00002211 adds r0, r2, 0 strh r0, [r1] @@ -1922,7 +1922,7 @@ _080B3408: movs r0, 0x1 movs r1, 0 bl fade_screen - ldr r0, =gUnknown_020229C6 + ldr r0, =gLinkType ldr r2, =0x00002211 adds r1, r2, 0 strh r1, [r0] @@ -2548,7 +2548,7 @@ nullsub_37: @ 80B3964 thumb_func_start sub_80B3968 sub_80B3968: @ 80B3968 push {lr} - ldr r1, =gUnknown_020229C6 + ldr r1, =gLinkType ldr r2, =0x00002211 adds r0, r2, 0 strh r0, [r1] @@ -2829,7 +2829,7 @@ sub_80B3BC4: @ 80B3BC4 ldrb r0, [r0] cmp r0, 0 bne _080B3BD6 - ldr r1, =gUnknown_020229C6 + ldr r1, =gLinkType ldr r2, =0x00002288 adds r0, r2, 0 strh r0, [r1] diff --git a/asm/clock.s b/asm/clock.s deleted file mode 100644 index 5d771a8b6..000000000 --- a/asm/clock.s +++ /dev/null @@ -1,175 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_809E778 -sub_809E778: @ 809E778 - push {lr} - ldr r0, =0x00000895 - bl FlagSet - bl RtcCalcLocalTime - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - adds r2, 0xA0 - ldr r3, =gLocalTime - ldr r0, [r3] - ldr r1, [r3, 0x4] - str r0, [r2] - str r1, [r2, 0x4] - ldr r0, =0x00004040 - ldrh r1, [r3] - bl VarSet - pop {r0} - bx r0 - .pool - thumb_func_end sub_809E778 - - thumb_func_start DoTimeBasedEvents -DoTimeBasedEvents: @ 809E7B0 - push {r4,lr} - ldr r0, =0x00000895 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0809E7DA - bl sub_813B9C0 - lsls r0, 24 - cmp r0, 0 - bne _0809E7DA - bl RtcCalcLocalTime - ldr r4, =gLocalTime - adds r0, r4, 0 - bl sub_809E7E8 - adds r0, r4, 0 - bl sub_809E858 -_0809E7DA: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end DoTimeBasedEvents - - thumb_func_start sub_809E7E8 -sub_809E7E8: @ 809E7E8 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, =0x00004040 - bl GetVarPointer - adds r6, r0, 0 - ldrh r0, [r6] - movs r2, 0 - ldrsh r1, [r5, r2] - cmp r0, r1 - beq _0809E84E - cmp r0, r1 - bgt _0809E84E - ldrh r4, [r5] - subs r4, r0 - lsls r4, 16 - lsrs r4, 16 - bl ClearUpperFlags - adds r0, r4, 0 - bl sub_8122580 - adds r0, r4, 0 - bl sub_80ED888 - adds r0, r4, 0 - bl sub_80AEFBC - adds r0, r4, 0 - bl UpdatePartyPokerusTime - adds r0, r4, 0 - bl sub_8137904 - adds r0, r4, 0 - bl sub_8137A20 - adds r0, r4, 0 - bl sub_8139EF4 - adds r0, r4, 0 - bl sub_813A7F4 - adds r0, r4, 0 - bl sub_813945C - adds r0, r4, 0 - bl SetRandomLotteryNumber - ldrh r0, [r5] - strh r0, [r6] -_0809E84E: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_809E7E8 - - thumb_func_start sub_809E858 -sub_809E858: @ 809E858 - push {r4-r6,lr} - sub sp, 0x8 - adds r5, r0, 0 - mov r4, sp - ldr r6, =gSaveBlock2Ptr - ldr r1, [r6] - adds r1, 0xA0 - mov r0, sp - adds r2, r5, 0 - bl CalcTimeDifference - mov r0, sp - movs r2, 0 - ldrsh r1, [r0, r2] - lsls r0, r1, 1 - adds r0, r1 - lsls r1, r0, 4 - subs r1, r0 - lsls r1, 5 - movs r2, 0x2 - ldrsb r2, [r4, r2] - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 2 - adds r1, r0 - movs r0, 0x3 - ldrsb r0, [r4, r0] - adds r0, r1, r0 - cmp r0, 0 - beq _0809E8A8 - cmp r0, 0 - blt _0809E8A8 - bl BerryTreeTimeUpdate - ldr r2, [r6] - adds r2, 0xA0 - ldr r0, [r5] - ldr r1, [r5, 0x4] - str r0, [r2] - str r1, [r2, 0x4] -_0809E8A8: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_809E858 - - thumb_func_start sub_809E8B4 -sub_809E8B4: @ 809E8B4 - push {lr} - bl sub_809E778 - ldr r0, =c2_exit_to_overworld_1_continue_scripts_restart_music - bl SetMainCallback2 - pop {r0} - bx r0 - .pool - thumb_func_end sub_809E8B4 - - thumb_func_start Special_StartWallClock -Special_StartWallClock: @ 809E8C8 - push {lr} - ldr r0, =Cb2_StartWallClock - bl SetMainCallback2 - ldr r1, =gMain - ldr r0, =sub_809E8B4 - str r0, [r1, 0x8] - pop {r0} - bx r0 - .pool - thumb_func_end Special_StartWallClock - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/coins.s b/asm/coins.s deleted file mode 100644 index d2b6cbb47..000000000 --- a/asm/coins.s +++ /dev/null @@ -1,74 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start GiveCoins -@ bool8 GiveCoins(u16 toAdd) -GiveCoins: @ 8145C80 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - bl GetCoins - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, =0x0000270e - cmp r1, r0 - bls _08145C9C - movs r0, 0 - b _08145CC0 - .pool -_08145C9C: - adds r0, r1, r4 - cmp r1, r0 - ble _08145CAC - ldr r0, =0x0000270f - b _08145CBA - .pool -_08145CAC: - lsls r0, 16 - lsrs r1, r0, 16 - ldr r0, =0x0000270f - cmp r1, r0 - bls _08145CB8 - adds r1, r0, 0 -_08145CB8: - adds r0, r1, 0 -_08145CBA: - bl SetCoins - movs r0, 0x1 -_08145CC0: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end GiveCoins - - thumb_func_start TakeCoins -@ bool8 TakeCoins(u16 toSub) -TakeCoins: @ 8145CCC - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - bl GetCoins - lsls r0, 16 - lsrs r0, 16 - cmp r0, r4 - bcs _08145CE2 - movs r0, 0 - b _08145CEE -_08145CE2: - subs r0, r4 - lsls r0, 16 - lsrs r0, 16 - bl SetCoins - movs r0, 0x1 -_08145CEE: - pop {r4} - pop {r1} - bx r1 - thumb_func_end TakeCoins - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/contest.s b/asm/contest.s index 50398c518..e3e4ccf86 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -1416,13 +1416,13 @@ sub_80D833C: @ 80D833C cmp r0, 0 bne _080D83CC ldr r0, =gDisplayedStringBattle - ldr r1, =gUnknown_0827D507 + ldr r1, =gText_0827D507 bl StringCopy b _080D83D4 .pool _080D83CC: ldr r0, =gDisplayedStringBattle - ldr r1, =gUnknown_0827D531 + ldr r1, =gText_0827D531 bl StringCopy _080D83D4: bl sub_80DB89C @@ -1753,13 +1753,13 @@ _080D868E: cmp r0, 0 bne _080D86DC ldr r0, =gDisplayedStringBattle - ldr r1, =gUnknown_0827D507 + ldr r1, =gText_0827D507 bl StringCopy b _080D86E4 .pool _080D86DC: ldr r0, =gDisplayedStringBattle - ldr r1, =gUnknown_0827D531 + ldr r1, =gText_0827D531 bl StringCopy _080D86E4: bl sub_80DB89C @@ -2655,7 +2655,7 @@ _080D8F38: bl StringCopy _080D8F48: ldr r4, =gStringVar4 - ldr r1, =gUnknown_0827D55A + ldr r1, =gText_0827D55A adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 @@ -3566,7 +3566,7 @@ _080D96D4: adds r1, r2 bl StringCopy ldr r4, =gStringVar4 - ldr r1, =gUnknown_0827E793 + ldr r1, =gText_0827E793 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 @@ -3638,20 +3638,20 @@ _080D9774: asrs r0, r4, 24 cmp r0, 0x1 bne _080D97A0 - ldr r0, =gUnknown_0827E32E + ldr r0, =gText_0827E32E b _080D97A6 .pool _080D97A0: cmp r0, 0x2 bne _080D97B4 - ldr r0, =gUnknown_0827E35B + ldr r0, =gText_0827E35B _080D97A6: movs r1, 0x1 bl sub_80DEC30 b _080D97BC .pool _080D97B4: - ldr r0, =gUnknown_0827E38D + ldr r0, =gText_0827E38D movs r1, 0x1 bl sub_80DEC30 _080D97BC: @@ -3675,7 +3675,7 @@ _080D97DC: adds r1, r2 bl StringCopy ldr r4, =gStringVar4 - ldr r1, =gUnknown_0827E2FE + ldr r1, =gText_0827E2FE adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 @@ -3813,7 +3813,7 @@ _080D9904: adds r1, r2 bl StringCopy ldr r4, =gStringVar4 - ldr r1, =gUnknown_0827E6E3 + ldr r1, =gText_0827E6E3 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 @@ -4043,7 +4043,7 @@ _080D9B30: cmp r3, 0 bge _080D9B48 ldr r0, =gStringVar4 - ldr r1, =gUnknown_0827E73C + ldr r1, =gText_0827E73C bl StringExpandPlaceholders b _080D9B74 .pool @@ -4058,13 +4058,13 @@ _080D9B48: cmp r0, 0x4 bgt _080D9B6C ldr r0, =gStringVar4 - ldr r1, =gUnknown_0827E717 + ldr r1, =gText_0827E717 bl StringExpandPlaceholders b _080D9B74 .pool _080D9B6C: ldr r0, =gStringVar4 - ldr r1, =gUnknown_0827E76A + ldr r1, =gText_0827E76A bl StringExpandPlaceholders _080D9B74: ldr r0, =gStringVar4 @@ -4402,7 +4402,7 @@ _080D9DD4: adds r1, r2 bl StringCopy ldr r4, =gStringVar4 - ldr r1, =gUnknown_0827E7EA + ldr r1, =gText_0827E7EA adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 @@ -4426,7 +4426,7 @@ _080D9E60: _080D9E6A: bl sub_80DB89C ldr r4, =gStringVar4 - ldr r1, =gUnknown_0827E817 + ldr r1, =gText_0827E817 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 @@ -4491,7 +4491,7 @@ _080D9EDC: adds r1, r2 bl StringCopy ldr r4, =gStringVar4 - ldr r1, =gUnknown_0827E58A + ldr r1, =gText_0827E58A adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 @@ -4630,7 +4630,7 @@ _080DA038: adds r1, r2 bl StringCopy ldr r4, =gStringVar4 - ldr r1, =gUnknown_0827D56F + ldr r1, =gText_0827D56F adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 @@ -5373,7 +5373,7 @@ _080DA668: ldr r0, [r0] str r0, [r1] ldr r4, =gStringVar4 - ldr r1, =gUnknown_0827D597 + ldr r1, =gText_0827D597 adds r0, r4, 0 bl StringExpandPlaceholders adds r0, r4, 0 @@ -11207,7 +11207,7 @@ sub_80DD45C: @ 80DD45C cmp r1, 0 bne _080DD4DC ldr r0, =gStringVar3 - ldr r1, =gUnknown_0827E837 + ldr r1, =gText_0827E837 bl StringCopy b _080DD52C .pool @@ -11216,7 +11216,7 @@ _080DD4DC: cmp r0, 0x1 bne _080DD4F4 ldr r0, =gStringVar3 - ldr r1, =gUnknown_0827E83F + ldr r1, =gText_0827E83F bl StringCopy b _080DD52C .pool @@ -11225,7 +11225,7 @@ _080DD4F4: cmp r0, 0x2 bne _080DD50C ldr r0, =gStringVar3 - ldr r1, =gUnknown_0827E847 + ldr r1, =gText_0827E847 bl StringCopy b _080DD52C .pool @@ -11234,13 +11234,13 @@ _080DD50C: cmp r0, 0x3 bne _080DD524 ldr r0, =gStringVar3 - ldr r1, =gUnknown_0827E850 + ldr r1, =gText_0827E850 bl StringCopy b _080DD52C .pool _080DD524: ldr r0, =gStringVar3 - ldr r1, =gUnknown_0827E85A + ldr r1, =gText_0827E85A bl StringCopy _080DD52C: ldr r4, =gStringVar4 @@ -13829,13 +13829,13 @@ sub_80DEA5C: @ 80DEA5C strh r0, [r4, 0x26] movs r0, 0x3 movs r1, 0 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x20] movs r0, 0x3 movs r1, 0x1 - bl sub_80A5C6C + bl GetBankPosition lsls r0, 24 lsrs r0, 24 strh r0, [r4, 0x22] @@ -14067,7 +14067,7 @@ _080DEC80: b _080DEC9C .pool _080DEC94: - bl sav2_get_text_speed + bl GetPlayerTextSpeed lsls r0, 24 lsrs r1, r0, 24 _080DEC9C: diff --git a/asm/contest_link_80FC4F4.s b/asm/contest_link_80FC4F4.s index f1e2019da..ba96bf4ea 100644 --- a/asm/contest_link_80FC4F4.s +++ b/asm/contest_link_80FC4F4.s @@ -284,7 +284,7 @@ _080FC6FE: lsls r0, 24 cmp r0, 0 beq _080FC7F4 - ldr r0, =gUnknown_020228C4 + ldr r0, =gBlockSendBuffer ldr r1, =gUnknown_02039F25 ldrb r1, [r1] lsls r1, 6 @@ -297,7 +297,7 @@ _080FC6FE: b _080FC7F4 .pool _080FC738: - ldr r0, =gUnknown_020228C4 + ldr r0, =gBlockSendBuffer ldr r1, =gUnknown_02039F25 ldrb r1, [r1] lsls r1, 6 @@ -487,7 +487,7 @@ _080FC8D8: beq _080FC954 b _080FC96E _080FC8DE: - ldr r1, =gUnknown_020228C4 + ldr r1, =gBlockSendBuffer ldrh r0, [r4, 0x1A] strb r0, [r1] bl GetMultiplayerId @@ -1142,7 +1142,7 @@ _080FCE8C: beq _080FCEFC b _080FCF16 _080FCE92: - ldr r1, =gUnknown_020228C4 + ldr r1, =gBlockSendBuffer movs r0, 0x6E strb r0, [r1] bl GetMultiplayerId diff --git a/asm/crt0.s b/asm/crt0.s index 0b14a1469..9ed678968 100644 --- a/asm/crt0.s +++ b/asm/crt0.s @@ -68,8 +68,8 @@ GPIOPortReadEnable: @ 80000C8 .4byte gAbilityDescriptionPointers .4byte gItems .4byte gBattleMoves - .4byte gUnknown_0832C400 - .4byte gUnknown_0832C460 + .4byte gBallSpriteSheets + .4byte gBallSpritePalettes .4byte 0x000000a8, 0x00000864, 0x0000089b diff --git a/asm/dewford_trend.s b/asm/dewford_trend.s index 89f89c4e0..7d9d67902 100644 --- a/asm/dewford_trend.s +++ b/asm/dewford_trend.s @@ -79,8 +79,8 @@ _08122522: .pool thumb_func_end InitDewfordTrend - thumb_func_start sub_8122580 -sub_8122580: @ 8122580 + thumb_func_start UpdateDewfordTrendPerDay +UpdateDewfordTrendPerDay: @ 8122580 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -253,7 +253,7 @@ _081226BE: pop {r0} bx r0 .pool - thumb_func_end sub_8122580 + thumb_func_end UpdateDewfordTrendPerDay thumb_func_start sub_81226D8 sub_81226D8: @ 81226D8 diff --git a/asm/easy_chat.s b/asm/easy_chat.s index eb20e68fa..3a359c9fa 100644 --- a/asm/easy_chat.s +++ b/asm/easy_chat.s @@ -1635,7 +1635,7 @@ _0811AF86: thumb_func_start sub_811AF8C sub_811AF8C: @ 811AF8C push {lr} - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -1684,7 +1684,7 @@ _0811AFE6: thumb_func_start sub_811AFEC sub_811AFEC: @ 811AFEC push {r4,lr} - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -1727,7 +1727,7 @@ _0811B03A: thumb_func_start sub_811B040 sub_811B040: @ 811B040 push {lr} - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -1832,7 +1832,7 @@ sub_811B0E8: @ 811B0E8 thumb_func_start sub_811B0F8 sub_811B0F8: @ 811B0F8 push {r4,lr} - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -3691,7 +3691,7 @@ sub_811BDF0: @ 811BDF0 adds r6, r0, 0 ldr r0, =gSaveBlock1Ptr ldr r4, [r0] - bl sub_81AFBF0 + bl UnkTextUtil_Reset ldr r0, =0x00003b70 adds r5, r4, r0 adds r0, r5, 0 @@ -3707,17 +3707,17 @@ sub_811BDF0: @ 811BDF0 bl TVShowConvertInternationalString movs r0, 0 mov r1, sp - bl sub_81AFC0C + bl UnkTextUtil_SetPtrI b _0811BE3C .pool _0811BE34: ldr r1, =gText_Lady movs r0, 0 - bl sub_81AFC0C + bl UnkTextUtil_SetPtrI _0811BE3C: ldr r1, =gText_F700sQuiz adds r0, r6, 0 - bl sub_81AFC28 + bl UnkTextUtil_StringExpandPlaceholders add sp, 0x20 pop {r4-r6} pop {r0} diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s index 29164ed7b..9252b79d2 100644 --- a/asm/field_control_avatar.s +++ b/asm/field_control_avatar.s @@ -721,7 +721,7 @@ TryGetInvisibleMapObjectScript: @ 809C458 ldr r2, [r0, 0x8] cmp r2, 0 bne _0809C490 - ldr r0, =EventScript_2C8436 + ldr r0, =EventScript_TestSignpostMsg b _0809C532 .pool _0809C490: @@ -1365,7 +1365,7 @@ per_step_scripts: @ 809C9F4 bne _0809CA04 b _0809CB24 _0809CA04: - bl sub_80B215C + bl IncrementRematchStepCounter bl AdjustFriendship_step bl sub_81D4998 ldr r0, =gPlayerAvatar @@ -1531,8 +1531,8 @@ _0809CB72: .pool thumb_func_end AdjustFriendship_step - thumb_func_start overworld_poison_timer_set -overworld_poison_timer_set: @ 809CB80 + thumb_func_start ResetPoisonStepCounter +ResetPoisonStepCounter: @ 809CB80 push {lr} ldr r0, =0x0000402b movs r1, 0 @@ -1540,7 +1540,7 @@ overworld_poison_timer_set: @ 809CB80 pop {r0} bx r0 .pool - thumb_func_end overworld_poison_timer_set + thumb_func_end ResetPoisonStepCounter thumb_func_start overworld_poison_step overworld_poison_step: @ 809CB94 diff --git a/asm/field_effect.s b/asm/field_effect.s index bfa563af1..170aa6a63 100644 --- a/asm/field_effect.s +++ b/asm/field_effect.s @@ -1961,7 +1961,7 @@ mapldr_080842E8: @ 80B69FC movs r1, 0 bl CreateTask bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeMapObjects ldr r1, =gFieldCallback movs r0, 0 str r0, [r1] @@ -2057,7 +2057,7 @@ mapldr_08084390: @ 80B6AA4 bl FieldObjectTurn _080B6AE6: bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeMapObjects ldr r1, =gFieldCallback movs r0, 0 str r0, [r1] @@ -2116,7 +2116,7 @@ sub_80B6B68: @ 80B6B68 bl sub_8085784 bl pal_fill_for_maplights bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeMapObjects ldr r0, =sub_80B6B94 movs r1, 0 bl CreateTask @@ -2534,7 +2534,7 @@ _080B6E9A: sub_80B6EC0: @ 80B6EC0 push {r4,lr} adds r4, r0, 0 - bl player_bitmagic + bl FreezeMapObjects bl CameraObjectReset2 ldrb r0, [r4, 0xA] bl sub_80E1558 @@ -3476,7 +3476,7 @@ sub_80B764C: @ 80B764C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 - bl player_bitmagic + bl FreezeMapObjects bl CameraObjectReset2 movs r0, 0 bl SetCameraPanningCallback @@ -3807,7 +3807,7 @@ sub_80B78EC: @ 80B78EC adds r5, r0, 0 adds r4, r1, 0 bl CameraObjectReset2 - bl player_bitmagic + bl FreezeMapObjects ldr r1, =gPlayerAvatar movs r0, 0x1 strb r0, [r1, 0x6] @@ -4055,7 +4055,7 @@ sub_80B7AE8: @ 80B7AE8 push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 - bl player_bitmagic + bl FreezeMapObjects bl CameraObjectReset2 ldr r1, =gPlayerAvatar movs r0, 0x1 @@ -4287,7 +4287,7 @@ _080B7CC4: sub_80B7CC8: @ 80B7CC8 push {lr} bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeMapObjects ldr r0, =sub_80B7CE4 movs r1, 0x50 bl CreateTask @@ -4461,7 +4461,7 @@ mapldr_080859D4: @ 80B7E48 bl sub_8085784 bl pal_fill_for_maplights bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeMapObjects ldr r1, =gFieldCallback movs r0, 0 str r0, [r1] @@ -4672,7 +4672,7 @@ sub_80B800C: @ 80B800C push {r4,lr} adds r4, r0, 0 bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeMapObjects bl CameraObjectReset2 bl player_get_direction_lower_nybble lsls r0, 24 @@ -4906,7 +4906,7 @@ mapldr_08085D88: @ 80B8200 bl sub_8085784 bl pal_fill_for_maplights bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeMapObjects ldr r1, =gFieldCallback movs r0, 0 str r0, [r1] @@ -6295,7 +6295,7 @@ sub_80B8D44: @ 80B8D44 ldr r0, =gFieldEffectArguments ldr r0, [r0] strh r0, [r1, 0x26] - bl sav1_reset_battle_music_maybe + bl Overworld_ClearSavedMusic ldr r0, =0x0000016d bl Overworld_ChangeMusicTo movs r0, 0 @@ -6334,7 +6334,7 @@ sub_80B8DB4: @ 80B8DB4 push {r6} adds r4, r0, 0 bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeMapObjects ldr r5, =gPlayerAvatar movs r0, 0x1 strb r0, [r5, 0x6] diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s index ae405f127..62681e7fb 100644 --- a/asm/field_player_avatar.s +++ b/asm/field_player_avatar.s @@ -3896,7 +3896,7 @@ sub_808C750: @ 808C750 lsls r4, 24 lsrs r4, 24 bl ScriptContext2_Enable - bl sav1_reset_battle_music_maybe + bl Overworld_ClearSavedMusic bl Overworld_ChangeMusicToDefault ldr r2, =gPlayerAvatar ldrb r1, [r2] diff --git a/asm/field_poison.s b/asm/field_poison.s deleted file mode 100644 index 83262a1a5..000000000 --- a/asm/field_poison.s +++ /dev/null @@ -1,323 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80F9568 -sub_80F9568: @ 80F9568 - push {lr} - movs r1, 0x41 - bl GetMonData - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _080F9580 - movs r0, 0xCE - lsls r0, 1 - cmp r1, r0 - bne _080F9584 -_080F9580: - movs r0, 0 - b _080F9586 -_080F9584: - movs r0, 0x1 -_080F9586: - pop {r1} - bx r1 - thumb_func_end sub_80F9568 - - thumb_func_start sub_80F958C -sub_80F958C: @ 80F958C - push {r4,r5,lr} - ldr r4, =gPlayerParty - movs r5, 0 -_080F9592: - adds r0, r4, 0 - bl sub_80F9568 - cmp r0, 0 - beq _080F95B0 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _080F95B0 - movs r0, 0 - b _080F95BA - .pool -_080F95B0: - adds r5, 0x1 - adds r4, 0x64 - cmp r5, 0x5 - ble _080F9592 - movs r0, 0x1 -_080F95BA: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80F958C - - thumb_func_start sub_80F95C0 -sub_80F95C0: @ 80F95C0 - push {r4,r5,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - adds r4, r0, 0 - muls r4, r1 - ldr r0, =gPlayerParty - adds r4, r0 - movs r0, 0 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0x7 - bl AdjustFriendship - adds r0, r4, 0 - movs r1, 0x37 - mov r2, sp - bl SetMonData - ldr r5, =gStringVar1 - adds r0, r4, 0 - movs r1, 0x2 - adds r2, r5, 0 - bl GetMonData - adds r0, r5, 0 - bl StringGetEnd10 - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80F95C0 - - thumb_func_start sub_80F960C -sub_80F960C: @ 80F960C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - bl sub_80F9568 - cmp r0, 0 - beq _080F964C - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _080F964C - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData - bl pokemon_ailments_get_primary - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080F964C - movs r0, 0x1 - b _080F964E - .pool -_080F964C: - movs r0, 0 -_080F964E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80F960C - - thumb_func_start sub_80F9654 -sub_80F9654: @ 80F9654 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - movs r0, 0 - ldrsh r5, [r4, r0] - cmp r5, 0x1 - beq _080F96AE - cmp r5, 0x1 - bgt _080F967C - cmp r5, 0 - beq _080F9682 - b _080F9722 - .pool -_080F967C: - cmp r5, 0x2 - beq _080F96C0 - b _080F9722 -_080F9682: - ldrh r1, [r4, 0x2] - movs r2, 0x2 - ldrsh r0, [r4, r2] - cmp r0, 0x5 - bgt _080F96A8 -_080F968C: - lsls r0, r1, 24 - lsrs r0, 24 - bl sub_80F960C - cmp r0, 0 - bne _080F96FC - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - adds r1, r0, 0 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x5 - ble _080F968C -_080F96A8: - movs r0, 0x2 - strh r0, [r4] - b _080F9722 -_080F96AE: - bl IsFieldMessageBoxHidden - lsls r0, 24 - cmp r0, 0 - beq _080F9722 - ldrh r0, [r4] - subs r0, 0x1 - strh r0, [r4] - b _080F9722 -_080F96C0: - bl sub_80F958C - adds r1, r0, 0 - cmp r1, 0 - beq _080F9714 - bl InBattlePyramid - adds r4, r0, 0 - bl InBattlePike - orrs r4, r0 - lsls r4, 24 - cmp r4, 0 - bne _080F96E6 - bl sub_81D5C18 - lsls r0, 24 - cmp r0, 0 - beq _080F96F0 -_080F96E6: - ldr r0, =gSpecialVar_Result - strh r5, [r0] - b _080F9718 - .pool -_080F96F0: - ldr r1, =gSpecialVar_Result - movs r0, 0x1 - strh r0, [r1] - b _080F9718 - .pool -_080F96FC: - ldrb r0, [r4, 0x2] - bl sub_80F95C0 - ldr r0, =gText_PkmnFainted3 - bl ShowFieldMessage - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080F9722 - .pool -_080F9714: - ldr r0, =gSpecialVar_Result - strh r1, [r0] -_080F9718: - bl EnableBothScriptContexts - adds r0, r6, 0 - bl DestroyTask -_080F9722: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80F9654 - - thumb_func_start sub_80F972C -sub_80F972C: @ 80F972C - push {lr} - ldr r0, =sub_80F9654 - movs r1, 0x50 - bl CreateTask - bl ScriptContext1_Stop - pop {r0} - bx r0 - .pool - thumb_func_end sub_80F972C - - thumb_func_start overworld_poison -overworld_poison: @ 80F9744 - push {r4-r7,lr} - sub sp, 0x4 - ldr r4, =gPlayerParty - movs r7, 0 - movs r6, 0 - movs r5, 0x5 -_080F9750: - adds r0, r4, 0 - movs r1, 0x5 - bl GetMonData - cmp r0, 0 - beq _080F9794 - adds r0, r4, 0 - movs r1, 0x37 - bl GetMonData - bl pokemon_ailments_get_primary - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080F9794 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - str r0, [sp] - cmp r0, 0 - beq _080F9786 - subs r0, 0x1 - str r0, [sp] - cmp r0, 0 - bne _080F9788 -_080F9786: - adds r6, 0x1 -_080F9788: - adds r0, r4, 0 - movs r1, 0x39 - mov r2, sp - bl SetMonData - adds r7, 0x1 -_080F9794: - adds r4, 0x64 - subs r5, 0x1 - cmp r5, 0 - bge _080F9750 - cmp r6, 0 - bne _080F97A4 - cmp r7, 0 - beq _080F97A8 -_080F97A4: - bl overworld_posion_effect -_080F97A8: - cmp r6, 0 - beq _080F97B4 - movs r0, 0x2 - b _080F97BE - .pool -_080F97B4: - cmp r7, 0 - bne _080F97BC - movs r0, 0 - b _080F97BE -_080F97BC: - movs r0, 0x1 -_080F97BE: - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end overworld_poison - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/field_screen.s b/asm/field_screen.s index 497346f8a..408f131c7 100644 --- a/asm/field_screen.s +++ b/asm/field_screen.s @@ -7527,15 +7527,15 @@ SetSav1Weather: @ 80AED7C .pool thumb_func_end SetSav1Weather - thumb_func_start sav1_get_weather_probably -sav1_get_weather_probably: @ 80AEDAC + thumb_func_start GetSav1Weather +GetSav1Weather: @ 80AEDAC ldr r0, =gSaveBlock1Ptr ldr r0, [r0] adds r0, 0x2E ldrb r0, [r0] bx lr .pool - thumb_func_end sav1_get_weather_probably + thumb_func_end GetSav1Weather thumb_func_start sub_80AEDBC sub_80AEDBC: @ 80AEDBC @@ -7565,7 +7565,7 @@ sub_80AEDBC: @ 80AEDBC sub_80AEDF0: @ 80AEDF0 push {lr} bl SetSav1Weather - bl sav1_get_weather_probably + bl GetSav1Weather lsls r0, 24 lsrs r0, 24 bl weather_set @@ -7577,7 +7577,7 @@ sub_80AEDF0: @ 80AEDF0 sub_80AEE08: @ 80AEE08 push {lr} bl SetSav1Weather - bl sav1_get_weather_probably + bl GetSav1Weather lsls r0, 24 lsrs r0, 24 bl sub_80AB104 @@ -7588,7 +7588,7 @@ sub_80AEE08: @ 80AEE08 thumb_func_start DoCurrentWeather DoCurrentWeather: @ 80AEE20 push {r4,r5,lr} - bl sav1_get_weather_probably + bl GetSav1Weather lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xF @@ -7632,7 +7632,7 @@ _080AEE6E: thumb_func_start sub_80AEE84 sub_80AEE84: @ 80AEE84 push {r4,r5,lr} - bl sav1_get_weather_probably + bl GetSav1Weather lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0xF @@ -7777,8 +7777,8 @@ _080AEFB6: bx r1 thumb_func_end sub_80AEEE8 - thumb_func_start sub_80AEFBC -sub_80AEFBC: @ 80AEFBC + thumb_func_start UpdateWeatherPerDay +UpdateWeatherPerDay: @ 80AEFBC lsls r0, 16 ldr r1, =gSaveBlock1Ptr ldr r2, [r1] @@ -7794,7 +7794,7 @@ sub_80AEFBC: @ 80AEFBC strb r1, [r2] bx lr .pool - thumb_func_end sub_80AEFBC + thumb_func_end UpdateWeatherPerDay thumb_func_start sub_80AEFDC sub_80AEFDC: @ 80AEFDC @@ -8382,7 +8382,7 @@ _080AF46C: _080AF480: movs r0, 0 bl sub_80AF0F4 - bl player_bitmagic + bl FreezeMapObjects adds r0, r6, 0 adds r1, r7, 0 bl PlayerGetDestCoords @@ -8508,7 +8508,7 @@ _080AF580: _080AF58A: movs r0, 0 bl sub_80AF0F4 - bl player_bitmagic + bl FreezeMapObjects adds r0, r6, 0 adds r1, r7, 0 bl PlayerGetDestCoords @@ -8583,7 +8583,7 @@ task_map_chg_seq_0807E2CC: @ 80AF610 b _080AF65A .pool _080AF634: - bl player_bitmagic + bl FreezeMapObjects bl ScriptContext2_Enable ldrh r0, [r4, 0x8] adds r0, 0x1 @@ -9062,7 +9062,7 @@ _080AFA34: beq _080AFA6C b _080AFA7C _080AFA3A: - bl player_bitmagic + bl FreezeMapObjects bl ScriptContext2_Enable b _080AFA64 _080AFA44: @@ -9133,7 +9133,7 @@ _080AFAC0: .4byte _080AFBB8 .4byte _080AFBD4 _080AFAD4: - bl player_bitmagic + bl FreezeMapObjects adds r0, r4, 0 adds r1, r6, 0 bl PlayerGetDestCoords @@ -9290,7 +9290,7 @@ _080AFC1C: beq _080AFC46 b _080AFC56 _080AFC22: - bl player_bitmagic + bl FreezeMapObjects bl ScriptContext2_Enable b _080AFC3E _080AFC2C: @@ -9877,7 +9877,7 @@ sub_80B009C: @ 80B009C lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 - bl sav1_get_flash_used_on_map + bl Overworld_GetFlashLevel lsls r0, 24 lsrs r0, 24 movs r5, 0 @@ -9982,7 +9982,7 @@ task0A_mpl_807E31C: @ 80B0160 b _080B01B6 .pool _080B0184: - bl player_bitmagic + bl FreezeMapObjects bl ScriptContext2_Enable bl sub_808D194 ldrh r0, [r4, 0x8] @@ -10033,7 +10033,7 @@ _080B01E4: beq _080B022A b _080B023A _080B01EE: - bl player_bitmagic + bl FreezeMapObjects bl ScriptContext2_Enable movs r0, 0x2D bl PlaySE diff --git a/asm/fldeff_80F9BCC.s b/asm/fldeff_80F9BCC.s index efdc114a2..a1e4f4ff6 100644 --- a/asm/fldeff_80F9BCC.s +++ b/asm/fldeff_80F9BCC.s @@ -2200,8 +2200,8 @@ _080FAE2A: .pool thumb_func_end sub_80FADE4 - thumb_func_start task50_overworld_posion_effect -task50_overworld_posion_effect: @ 80FAE38 + thumb_func_start task50_overworld_poison_effect +task50_overworld_poison_effect: @ 80FAE38 push {lr} lsls r0, 24 lsrs r2, r0, 24 @@ -2260,32 +2260,32 @@ _080FAE92: _080FAEA2: pop {r0} bx r0 - thumb_func_end task50_overworld_posion_effect + thumb_func_end task50_overworld_poison_effect - thumb_func_start overworld_posion_effect -overworld_posion_effect: @ 80FAEA8 + thumb_func_start overworld_poison_effect +overworld_poison_effect: @ 80FAEA8 push {lr} movs r0, 0x4F bl PlaySE - ldr r0, =task50_overworld_posion_effect + ldr r0, =task50_overworld_poison_effect movs r1, 0x50 bl CreateTask pop {r0} bx r0 .pool - thumb_func_end overworld_posion_effect + thumb_func_end overworld_poison_effect - thumb_func_start c3_80A0DD8_is_running -c3_80A0DD8_is_running: @ 80FAEC0 + thumb_func_start FieldPoisonEffectIsRunning +FieldPoisonEffectIsRunning: @ 80FAEC0 push {lr} - ldr r0, =task50_overworld_posion_effect + ldr r0, =task50_overworld_poison_effect bl FuncIsActiveTask lsls r0, 24 lsrs r0, 24 pop {r1} bx r1 .pool - thumb_func_end c3_80A0DD8_is_running + thumb_func_end FieldPoisonEffectIsRunning thumb_func_start sub_80FAED4 sub_80FAED4: @ 80FAED4 diff --git a/asm/international_string_util.s b/asm/international_string_util.s index 08e435249..469d88787 100755 --- a/asm/international_string_util.s +++ b/asm/international_string_util.s @@ -113,8 +113,8 @@ _081DB4D4: bx r1 thumb_func_end sub_81DB494 - thumb_func_start sub_81DB4DC -sub_81DB4DC: @ 81DB4DC + thumb_func_start PadNameString +PadNameString: @ 81DB4DC push {r4,r5,lr} adds r4, r0, 0 lsls r1, 24 @@ -156,7 +156,7 @@ _081DB51E: pop {r4,r5} pop {r0} bx r0 - thumb_func_end sub_81DB4DC + thumb_func_end PadNameString thumb_func_start sub_81DB52C sub_81DB52C: @ 81DB52C diff --git a/asm/item_menu.s b/asm/item_menu.s index a868b2672..1be72593a 100755 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -1863,7 +1863,7 @@ DisplayItemMessage: @ 81ABB4C strh r0, [r4, 0x14] movs r1, 0x11 bl FillWindowPixelBuffer - bl sav2_get_text_speed + bl GetPlayerTextSpeed lsls r0, 24 lsrs r0, 24 ldrb r1, [r4, 0x14] @@ -3360,7 +3360,7 @@ _081AC8D4: bl memcpy ldr r0, =gSpecialVar_ItemId ldrh r0, [r0] - bl itemid_is_mail + bl ItemIsMail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -4664,7 +4664,7 @@ item_menu_type_b: @ 81AD4B4 lsrs r4, r0, 24 ldr r5, =gSpecialVar_ItemId ldrh r0, [r5] - bl itemid_is_mail + bl ItemIsMail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -4748,7 +4748,7 @@ _081AD550: cmp r6, 0x1 bne _081AD5C4 bl ScriptContext2_Enable - bl player_bitmagic + bl FreezeMapObjects bl sub_808B864 bl sub_808BCF4 ldr r2, =gSpecialVar_ItemId diff --git a/asm/item_use.s b/asm/item_use.s index 172080b16..f732c34e9 100644 --- a/asm/item_use.s +++ b/asm/item_use.s @@ -266,7 +266,7 @@ sub_80FD254: @ 80FD254 ldr r1, =bag_menu_mail_related mov r0, sp movs r2, 0 - bl sub_8121478 + bl ReadMail add sp, 0x24 pop {r0} bx r0 diff --git a/asm/learn_move.s b/asm/learn_move.s index 159b16f7e..acd9f4f98 100755 --- a/asm/learn_move.s +++ b/asm/learn_move.s @@ -353,7 +353,7 @@ _08160994: b _08160E88 .pool _081609A8: - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -433,7 +433,7 @@ _08160A50: b _08160E88 .pool _08160A64: - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -493,7 +493,7 @@ _08160ADC: b _08160E88 .pool _08160AEC: - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -551,7 +551,7 @@ _08160B6C: b _08160E88 .pool _08160B80: - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 diff --git a/asm/link.s b/asm/link.s index d2dc05630..953e1ac25 100644 --- a/asm/link.s +++ b/asm/link.s @@ -206,7 +206,7 @@ sub_8009570: @ 8009570 ldr r0, =sub_80096BC bl SetVBlankCallback bl sub_800A2E0 - ldr r1, =gUnknown_020229C6 + ldr r1, =gLinkType ldr r2, =0x00001111 adds r0, r2, 0 strh r0, [r1] @@ -291,7 +291,7 @@ sub_8009638: @ 8009638 ldr r0, [r4] ldrb r0, [r0, 0x8] strb r0, [r5, 0x13] - ldr r0, =gUnknown_020229C6 + ldr r0, =gLinkType ldrh r0, [r0] str r0, [r5, 0x14] ldr r0, =gGameLanguage @@ -339,7 +339,7 @@ sub_80096BC: @ 80096BC sub_80096D0: @ 80096D0 push {lr} ldr r3, =gUnknown_020229C4 - ldr r1, =gUnknown_03003110 + ldr r1, =gSendCmd ldr r2, =0x0000efff adds r0, r1, 0 adds r0, 0xE @@ -646,7 +646,7 @@ _08009976: orrs r1, r0 _08009990: adds r0, r2, 0 - bl sub_800A994 + bl SetLinkDebugValues _08009996: add sp, 0x4 pop {r4,r5} @@ -685,7 +685,7 @@ sub_80099E0: @ 80099E0 _080099F4: movs r1, 0 ldr r5, =gUnknown_03003084 - ldr r3, =gUnknown_03003110 + ldr r3, =gSendCmd movs r2, 0 _080099FC: lsls r0, r1, 1 @@ -781,7 +781,7 @@ _08009AAE: movs r0, 0 strh r0, [r3] lsls r4, r6, 4 - ldr r5, =gUnknown_03003090 + ldr r5, =gRecvCmds adds r2, r4, r5 ldrh r0, [r2] mov r12, r1 @@ -901,12 +901,12 @@ _08009BC4: adds r1, r0 movs r2, 0 strh r2, [r1] - ldr r0, =gUnknown_03003090 + ldr r0, =gRecvCmds adds r0, 0x2 adds r0, r4, r0 ldrh r0, [r0] strh r0, [r1, 0x2] - ldr r0, =gUnknown_03003090 + ldr r0, =gRecvCmds adds r0, 0x4 adds r0, r4, r0 ldrh r0, [r0] @@ -930,7 +930,7 @@ _08009BF0: mov r8, r0 movs r2, 0 adds r5, r3, 0 - ldr r7, =gUnknown_03003090 + ldr r7, =gRecvCmds adds r3, r4, 0 _08009C14: ldrh r1, [r5] @@ -955,7 +955,7 @@ _08009C40: ldr r1, =gBlockRecvBuffer mov r9, r1 adds r7, r3, 0 - ldr r3, =gUnknown_03003090 + ldr r3, =gRecvCmds mov r8, r3 lsls r5, r6, 8 adds r3, r4, 0 @@ -1069,7 +1069,7 @@ _08009D38: b _08009D6E _08009D3E: ldr r3, =gUnknown_082ED1A8 - ldr r0, =gUnknown_03003090 + ldr r0, =gRecvCmds adds r0, 0x2 adds r0, r4, r0 ldrh r2, [r0] @@ -1084,7 +1084,7 @@ _08009D3E: b _08009D6E .pool _08009D64: - ldr r0, =gUnknown_03003090 + ldr r0, =gRecvCmds adds r0, 0x2 adds r0, r4, r0 ldrh r0, [r0] @@ -1183,26 +1183,26 @@ _08009E2C: b _08009F06 .pool _08009E38: - ldr r0, =gUnknown_03003110 + ldr r0, =gSendCmd strh r2, [r0] - ldr r1, =gUnknown_020229C6 + ldr r1, =gLinkType ldrh r1, [r1] b _08009F04 .pool _08009E4C: - ldr r0, =gUnknown_03003110 + ldr r0, =gSendCmd strh r2, [r0] ldr r1, =gMain ldrh r1, [r1, 0x2C] b _08009F04 .pool _08009E60: - ldr r0, =gUnknown_03003110 + ldr r0, =gSendCmd movs r1, 0 b _08009F02 .pool _08009E6C: - ldr r0, =gUnknown_03003110 + ldr r0, =gSendCmd strh r2, [r0] movs r1, 0 adds r3, r0, 0 @@ -1219,7 +1219,7 @@ _08009E76: b _08009F06 .pool _08009E8C: - ldr r1, =gUnknown_03003110 + ldr r1, =gSendCmd strh r2, [r1] ldr r2, =gUnknown_03000D10 ldrh r0, [r2, 0x2] @@ -1230,28 +1230,28 @@ _08009E8C: b _08009F06 .pool _08009EA8: - ldr r0, =gUnknown_03003110 + ldr r0, =gSendCmd strh r2, [r0] ldr r1, =gSpecialVar_ItemId ldrh r1, [r1] b _08009F04 .pool _08009EBC: - ldr r0, =gUnknown_03003110 + ldr r0, =gSendCmd strh r2, [r0] ldr r1, =gUnknown_03003150 ldrb r1, [r1] b _08009F04 .pool _08009ED0: - ldr r0, =gUnknown_03003110 + ldr r0, =gSendCmd strh r2, [r0] ldr r1, =gUnknown_030030F4 ldrh r1, [r1] b _08009F04 .pool _08009EE4: - ldr r0, =gUnknown_03003110 + ldr r0, =gSendCmd strh r2, [r0] b _08009F06 .pool @@ -1264,7 +1264,7 @@ _08009EF0: ldrb r0, [r0] cmp r0, 0 bne _08009F06 - ldr r0, =gUnknown_03003110 + ldr r0, =gSendCmd _08009F02: strh r2, [r0] _08009F04: @@ -1814,7 +1814,7 @@ _0800A30C: str r7, [r4, 0x4] b _0800A336 _0800A324: - ldr r5, =gUnknown_020228C4 + ldr r5, =gBlockSendBuffer cmp r7, r5 beq _0800A334 adds r0, r5, 0 @@ -1863,7 +1863,7 @@ sub_800A388: @ 800A388 push {r4-r6,lr} ldr r0, =gUnknown_03000D10 ldr r5, [r0, 0x4] - ldr r2, =gUnknown_03003110 + ldr r2, =gSendCmd ldr r1, =0x00008888 strh r1, [r2] movs r3, 0 @@ -2644,15 +2644,15 @@ _0800A94E: .pool thumb_func_end task00_link_test - thumb_func_start sub_800A994 -sub_800A994: @ 800A994 + thumb_func_start SetLinkDebugValues +SetLinkDebugValues: @ 800A994 ldr r2, =gUnknown_0300302C str r0, [r2] ldr r0, =gUnknown_03003070 str r1, [r0] bx lr .pool - thumb_func_end sub_800A994 + thumb_func_end SetLinkDebugValues thumb_func_start sub_800A9A8 sub_800A9A8: @ 800A9A8 @@ -2772,7 +2772,7 @@ sub_800AA60: @ 800AA60 ldr r0, =gUnknown_02022A74 ldr r2, =0x00002288 mov r8, r2 - ldr r7, =gUnknown_020229C6 + ldr r7, =gLinkType mov r6, r12 adds r6, 0x14 adds r5, r0, 0x4 @@ -3798,7 +3798,7 @@ sub_800B348: @ 800B348 strh r2, [r0] ldrb r2, [r3, 0x2] strb r2, [r0, 0x2] - ldr r0, =gUnknown_020228C4 + ldr r0, =gBlockSendBuffer movs r2, 0x3C bl memcpy pop {r4-r6} @@ -3861,8 +3861,8 @@ HandleLinkConnection: @ 800B40C cmp r0, 0 bne _0800B45C ldr r0, =gUnknown_03003144 - ldr r1, =gUnknown_03003110 - ldr r2, =gUnknown_03003090 + ldr r1, =gSendCmd + ldr r2, =gRecvCmds bl sub_800B638 ldr r4, =gUnknown_030030E0 str r0, [r4] @@ -10247,13 +10247,13 @@ _0800E64A: adds r0, r4, 0 bl sub_800D724 strh r5, [r7] - ldr r1, =gUnknown_03003110 + ldr r1, =gSendCmd ldr r2, =0x01000008 adds r0, r7, 0 bl CpuSet mov r0, r8 strh r5, [r0] - ldr r1, =gUnknown_03003090 + ldr r1, =gRecvCmds ldr r2, =0x01000028 bl CpuSet mov r0, r9 @@ -10306,7 +10306,7 @@ sub_800E700: @ 800E700 lsrs r1, r0, 16 cmp r1, 0 bne _0800E732 - ldr r0, =gUnknown_020229C6 + ldr r0, =gLinkType strh r1, [r0] bl sub_800AAF4 movs r0, 0 @@ -11278,7 +11278,7 @@ sub_800EFB0: @ 800EFB0 push {r4-r7,lr} sub sp, 0x4 movs r2, 0 - ldr r7, =gUnknown_03003090 + ldr r7, =gRecvCmds ldr r0, =gUnknown_03005000 adds r6, r7, 0 ldr r1, =0x00000c87 @@ -11323,8 +11323,8 @@ _0800EFD0: thumb_func_start sub_800F014 sub_800F014: @ 800F014 push {lr} - ldr r3, =gUnknown_03003110 - ldr r2, =gUnknown_03003090 + ldr r3, =gSendCmd + ldr r2, =gRecvCmds movs r1, 0x6 _0800F01C: ldrh r0, [r3] @@ -11334,7 +11334,7 @@ _0800F01C: subs r1, 0x1 cmp r1, 0 bge _0800F01C - ldr r1, =gUnknown_03003110 + ldr r1, =gSendCmd movs r2, 0 adds r0, r1, 0 adds r0, 0xC @@ -11413,7 +11413,7 @@ _0800F0C4: .pool _0800F0CC: movs r3, 0 - ldr r4, =gUnknown_03003090 + ldr r4, =gRecvCmds _0800F0D0: movs r2, 0 lsls r0, r3, 4 @@ -11681,7 +11681,7 @@ _0800F2E0: str r2, [sp, 0x4] adds r5, 0x1 str r5, [sp] - ldr r1, =gUnknown_03003090 + ldr r1, =gRecvCmds mov r9, r1 adds r5, r3, 0 adds r7, r4, 0 @@ -11908,7 +11908,7 @@ sub_800F4F0: @ 800F4F0 mov r1, sp bl sub_800D934 movs r1, 0 - ldr r0, =gUnknown_03003090 + ldr r0, =gRecvCmds mov r12, r0 _0800F506: movs r4, 0 @@ -12012,7 +12012,7 @@ _0800F5C0: ldrb r1, [r2] strb r0, [r2] bl sub_8010528 - ldr r5, =gUnknown_03003110 + ldr r5, =gSendCmd add r4, sp, 0x48 adds r0, r5, 0 adds r1, r4, 0 @@ -12305,8 +12305,8 @@ sub_800F820: @ 800F820 lsls r0, 24 cmp r0, 0 bne _0800F83C - bl sub_8082D18 - ldr r1, =gUnknown_03003110 + bl GetBlenderArrowPosition + ldr r1, =gSendCmd strh r0, [r1, 0xC] _0800F83C: ldr r1, =gUnknown_020223C0 @@ -12345,7 +12345,7 @@ sub_800F86C: @ 800F86C _0800F87A: mov r1, r8 lsls r0, r1, 4 - ldr r2, =gUnknown_03003090 + ldr r2, =gRecvCmds adds r1, r0, r2 ldrh r7, [r1] movs r3, 0xFF @@ -12555,7 +12555,7 @@ _0800FA0E: adds r2, r4, 0x1 lsls r0, r2, 1 adds r0, r3 - ldr r4, =gUnknown_03003090 + ldr r4, =gRecvCmds adds r0, r4 ldrh r0, [r0] strh r0, [r1] @@ -12686,7 +12686,7 @@ _0800FB10: adds r0, r7, r2 strb r1, [r0] _0800FB48: - ldr r0, =gUnknown_03003090 + ldr r0, =gRecvCmds adds r0, 0x6 adds r0, r5, r0 ldrh r0, [r0] @@ -12699,7 +12699,7 @@ _0800FB78: movs r0, 0xEE lsls r0, 8 bl sub_800FD14 - ldr r1, =gUnknown_03003110 + ldr r1, =gSendCmd ldr r3, =gUnknown_03003092 adds r0, r5, r3 ldrh r0, [r0] @@ -12708,7 +12708,7 @@ _0800FB78: adds r0, r5, r4 ldrh r0, [r0] strh r0, [r1, 0x4] - ldr r0, =gUnknown_03003090 + ldr r0, =gRecvCmds adds r0, 0x6 adds r0, r5, r0 ldrh r0, [r0] @@ -12910,7 +12910,7 @@ sub_800FD14: @ 800FD14 push {r4,r5,lr} lsls r0, 16 lsrs r1, r0, 16 - ldr r5, =gUnknown_03003110 + ldr r5, =gSendCmd strh r1, [r5] movs r0, 0xF0 lsls r0, 7 @@ -13063,7 +13063,7 @@ _0800FE46: sub_800FE50: @ 800FE50 push {r4,lr} adds r4, r0, 0 - ldr r0, =gUnknown_03003110 + ldr r0, =gSendCmd ldrh r0, [r0] cmp r0, 0 bne _0800FE76 @@ -13097,7 +13097,7 @@ sub_800FE84: @ 800FE84 ldr r0, [r5] cmp r0, 0 bne _0800FEB8 - ldr r0, =gUnknown_03003110 + ldr r0, =gSendCmd ldrh r0, [r0] cmp r0, 0 bne _0800FEB8 @@ -13149,7 +13149,7 @@ _0800FEC8: str r7, [r5, 0x70] b _0800FF1C _0800FF0A: - ldr r4, =gUnknown_020228C4 + ldr r4, =gBlockSendBuffer cmp r7, r4 beq _0800FF1A adds r0, r4, 0 @@ -13182,7 +13182,7 @@ _0800FF32: thumb_func_start rfufunc_80F9F44 rfufunc_80F9F44: @ 800FF4C push {r4,r5,lr} - ldr r0, =gUnknown_03003110 + ldr r0, =gSendCmd ldrh r0, [r0] cmp r0, 0 bne _0800FFA0 @@ -13207,7 +13207,7 @@ rfufunc_80F9F44: @ 800FF4C .pool _0800FF84: bl GetMultiplayerId - ldr r1, =gUnknown_03003090 + ldr r1, =gRecvCmds lsls r0, 24 lsrs r0, 20 adds r0, r1 @@ -13233,7 +13233,7 @@ sub_800FFB0: @ 800FFB0 ldr r0, =gUnknown_03005000 mov r12, r0 ldr r5, [r0, 0x70] - ldr r3, =gUnknown_03003110 + ldr r3, =gSendCmd mov r2, r12 adds r2, 0x6C ldrh r1, [r2] @@ -13302,7 +13302,7 @@ rfufunc_80FA020: @ 8010028 ldrb r0, [r5, 0xC] cmp r0, 0 bne _080100F0 - ldr r3, =gUnknown_03003110 + ldr r3, =gSendCmd adds r2, r5, 0 adds r2, 0x6E ldrh r0, [r2] @@ -13313,7 +13313,7 @@ rfufunc_80FA020: @ 8010028 strh r0, [r3] movs r4, 0 mov r9, r5 - ldr r0, =gUnknown_03003090 + ldr r0, =gRecvCmds mov r12, r0 lsls r5, r6, 4 adds r7, r2, 0 @@ -13539,7 +13539,7 @@ _08010220: thumb_func_start sub_801022C sub_801022C: @ 801022C push {r4,lr} - ldr r0, =gUnknown_03003110 + ldr r0, =gSendCmd ldrh r0, [r0] cmp r0, 0 bne _0801024E @@ -13694,7 +13694,7 @@ sub_8010358: @ 8010358 ldrb r0, [r0] cmp r0, 0 bne _0801037A - ldr r0, =gUnknown_03003110 + ldr r0, =gSendCmd ldrh r0, [r0] cmp r0, 0 bne _0801037A @@ -13723,7 +13723,7 @@ sub_8010390: @ 8010390 ldrb r0, [r0] cmp r0, 0 bne _0801041E - ldr r0, =gUnknown_03003110 + ldr r0, =gSendCmd ldrh r0, [r0] cmp r0, 0 bne _0801041E @@ -13766,7 +13766,7 @@ _080103FA: ldrb r0, [r0] cmp r0, 0 bne _0801041E - ldr r0, =gUnknown_03003110 + ldr r0, =gSendCmd ldrh r0, [r0] cmp r0, 0 bne _0801041E @@ -14404,7 +14404,7 @@ _080108F0: b _080109D2 .pool _08010904: - ldr r0, =gUnknown_03003110 + ldr r0, =gSendCmd ldrh r0, [r0] cmp r0, 0 bne _080109D2 @@ -14676,7 +14676,7 @@ _08010B28: .4byte _08010C0A .4byte _08010C94 _08010B40: - ldr r0, =gUnknown_03003110 + ldr r0, =gSendCmd ldrh r0, [r0] cmp r0, 0 beq _08010B4A @@ -14690,7 +14690,7 @@ _08010B4A: b _08010C4A .pool _08010B60: - ldr r0, =gUnknown_03003110 + ldr r0, =gSendCmd ldrh r0, [r0] cmp r0, 0 beq _08010B6A @@ -14734,7 +14734,7 @@ _08010B8C: b _08010C4A .pool _08010BC0: - ldr r5, =gUnknown_020228C4 + ldr r5, =gBlockSendBuffer adds r1, r5, 0 ldr r0, =gUnknown_082ED7EC ldm r0!, {r2-r4} @@ -14772,7 +14772,7 @@ _08010BE2: adds r0, 0x1 strh r0, [r1, 0x8] _08010C0A: - ldr r5, =gUnknown_020228C4 + ldr r5, =gBlockSendBuffer ldr r1, =gUnknown_03005000 ldrb r0, [r1, 0xD] strb r0, [r5, 0xF] @@ -14796,7 +14796,7 @@ _08010C20: mov r1, r12 movs r2, 0x8C bl memcpy - ldr r1, =gUnknown_020228C4 + ldr r1, =gBlockSendBuffer movs r0, 0 movs r2, 0xA0 bl SendBlock @@ -14921,7 +14921,7 @@ _08010D56: cmp r0, 0 beq _08010DA6 bl sub_800B348 - ldr r1, =gUnknown_020228C4 + ldr r1, =gBlockSendBuffer movs r0, 0 movs r2, 0x3C bl SendBlock @@ -16575,7 +16575,7 @@ sub_8011AC8: @ 8011AC8 sub sp, 0x4 movs r0, 0 str r0, [sp] - ldr r1, =gUnknown_03003090 + ldr r1, =gRecvCmds ldr r2, =0x05000014 mov r0, sp bl CpuSet @@ -16608,7 +16608,7 @@ sub_8011AFC: @ 8011AFC lsls r0, 24 cmp r0, 0 beq _08011B70 - ldr r1, =gUnknown_020229C6 + ldr r1, =gLinkType ldr r2, =0x00001111 adds r0, r2, 0 strh r0, [r1] @@ -16968,7 +16968,7 @@ sub_8011E2C: @ 8011E2C push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 - ldr r6, =gUnknown_03003110 + ldr r6, =gSendCmd ldrh r0, [r6] cmp r0, 0 bne _08011E7A @@ -20832,7 +20832,7 @@ _08013FFC: b _0801405A .pool _08014038: - ldr r4, =gUnknown_020228C4 + ldr r4, =gBlockSendBuffer ldr r0, =gSaveBlock1Ptr ldr r1, [r0] ldr r0, =0x00002be0 @@ -21403,7 +21403,7 @@ _080145D8: .pool _080145F4: bl overworld_free_bg_tilemaps - ldr r0, =gUnknown_020228C4 + ldr r0, =gBlockSendBuffer movs r1, 0x1 bl sub_80143E4 bl sp000_heal_pokemon @@ -21422,7 +21422,7 @@ _08014620: bl sp000_heal_pokemon bl copy_player_party_to_sav1 bl copy_bags_and_unk_data_from_save_blocks - ldr r0, =gUnknown_020228C4 + ldr r0, =gBlockSendBuffer movs r1, 0x1 bl sub_80143E4 movs r0, 0x2 @@ -21438,7 +21438,7 @@ _0801464C: bl sp000_heal_pokemon bl copy_player_party_to_sav1 bl copy_bags_and_unk_data_from_save_blocks - ldr r0, =gUnknown_020228C4 + ldr r0, =gBlockSendBuffer movs r1, 0x1 bl sub_80143E4 movs r0, 0x5 @@ -21450,7 +21450,7 @@ _0801464C: b _080146B0 .pool _08014678: - ldr r0, =gUnknown_020228C4 + ldr r0, =gBlockSendBuffer movs r1, 0x1 bl sub_80143E4 bl overworld_free_bg_tilemaps @@ -21463,7 +21463,7 @@ _08014678: b _080146B0 .pool _08014698: - ldr r0, =gUnknown_020228C4 + ldr r0, =gBlockSendBuffer movs r1, 0x1 bl sub_80143E4 bl overworld_free_bg_tilemaps @@ -21503,7 +21503,7 @@ _080146F6: bl sub_801DD98 b _08014764 _080146FC: - ldr r0, =gUnknown_020228C4 + ldr r0, =gBlockSendBuffer movs r1, 0 bl sub_80143E4 ldr r0, =sub_80141A4 @@ -21573,7 +21573,7 @@ sub_8014790: @ 8014790 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r7, r0, r1 - ldr r0, =gUnknown_020228C4 + ldr r0, =gBlockSendBuffer mov r9, r0 movs r1, 0 ldrsh r0, [r7, r1] @@ -23720,7 +23720,7 @@ _08015BBE: bne _08015BCA bl _08016878 _08015BCA: - ldr r0, =gUnknown_020228C4 + ldr r0, =gBlockSendBuffer movs r1, 0x1 bl sub_80143E4 ldr r0, =sub_80140E0 @@ -24247,7 +24247,7 @@ _080160DA: bne _080160E4 b _08016878 _080160E4: - ldr r0, =gUnknown_020228C4 + ldr r0, =gBlockSendBuffer movs r1, 0x1 bl sub_80143E4 ldr r0, =sub_80140E0 @@ -25082,7 +25082,7 @@ _08016894: sub_801689C: @ 801689C push {r4,r5,lr} adds r2, r0, 0 - ldr r3, =gUnknown_03003090 + ldr r3, =gRecvCmds ldrh r5, [r3, 0x12] adds r4, r5, 0 cmp r4, 0 @@ -26142,7 +26142,7 @@ _080170E0: negs r0, r0 b _08017110 _080170F2: - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 movs r2, 0x80 @@ -28007,14 +28007,14 @@ _08017F8A: lsls r0, r4, 24 lsrs r0, 24 adds r1, r5, 0 - bl sub_81AFC0C + bl UnkTextUtil_SetPtrI adds r5, 0x10 adds r4, 0x1 cmp r4, 0x3 ble _08017F8A ldr r1, =gUnknown_082EE47C adds r0, r7, 0 - bl sub_81AFC28 + bl UnkTextUtil_StringExpandPlaceholders b _08017FB4 .pool _08017FAC: @@ -28045,7 +28045,7 @@ _08017FC6: sub_8017FD8: @ 8017FD8 push {lr} adds r2, r0, 0 - ldr r0, =gUnknown_03003090 + ldr r0, =gRecvCmds ldrh r1, [r0, 0x2] cmp r1, 0 beq _08017FFC @@ -28379,7 +28379,7 @@ sub_8018220: @ 8018220 ldr r0, =gUnknown_02039B58 adds r1, r0 mov r8, r1 - bl sub_81AFBF0 + bl UnkTextUtil_Reset mov r6, r9 adds r6, 0xC0 bl sub_8068BB0 @@ -28393,11 +28393,11 @@ sub_8018220: @ 8018220 bl StringCopy movs r0, 0 adds r1, r6, 0 - bl sub_81AFC0C + bl UnkTextUtil_SetPtrI mov r1, r8 adds r1, 0x30 movs r0, 0x1 - bl sub_81AFC0C + bl UnkTextUtil_SetPtrI movs r4, 0xBA lsls r4, 1 add r4, r9 @@ -28411,7 +28411,7 @@ sub_8018220: @ 8018220 bl StringCopy movs r0, 0x2 adds r1, r4, 0 - bl sub_81AFC0C + bl UnkTextUtil_SetPtrI mov r5, r9 adds r5, 0xDE mov r0, r8 @@ -28422,7 +28422,7 @@ sub_8018220: @ 8018220 bl ConvertIntToDecimalStringN movs r0, 0x3 adds r1, r5, 0 - bl sub_81AFC0C + bl UnkTextUtil_SetPtrI movs r2, 0xED add r2, r9 mov r10, r2 @@ -28442,16 +28442,16 @@ sub_8018220: @ 8018220 bl ConvertIntToDecimalStringN movs r0, 0x4 mov r1, r10 - bl sub_81AFC0C + bl UnkTextUtil_SetPtrI movs r0, 0x5 adds r1, r4, 0 - bl sub_81AFC0C + bl UnkTextUtil_SetPtrI movs r4, 0xD2 lsls r4, 1 add r4, r9 ldr r1, =gUnknown_082EFF64 adds r0, r4, 0 - bl sub_81AFC28 + bl UnkTextUtil_StringExpandPlaceholders ldr r0, =gStringVar4 adds r1, r4, 0 bl StringCopy @@ -28468,7 +28468,7 @@ _0801830C: bl ConvertIntToDecimalStringN movs r0, 0 adds r1, r6, 0 - bl sub_81AFC0C + bl UnkTextUtil_SetPtrI mov r2, r8 ldrh r1, [r2, 0x16] cmp r1, r4 @@ -28483,7 +28483,7 @@ _08018328: bl ConvertIntToDecimalStringN movs r0, 0x2 adds r1, r4, 0 - bl sub_81AFC0C + bl UnkTextUtil_SetPtrI mov r0, r8 ldrh r1, [r0, 0x20] adds r0, r5, 0 @@ -28492,7 +28492,7 @@ _08018328: bl ConvertIntToDecimalStringN movs r0, 0x3 adds r1, r5, 0 - bl sub_81AFC0C + bl UnkTextUtil_SetPtrI movs r7, 0 movs r6, 0x80 lsls r6, 19 @@ -28505,7 +28505,7 @@ _08018360: bl CopyEasyChatWord lsrs r0, r6, 24 adds r1, r4, 0 - bl sub_81AFC0C + bl UnkTextUtil_SetPtrI movs r2, 0x80 lsls r2, 17 adds r6, r2 @@ -28519,7 +28519,7 @@ _08018360: add r4, r9 ldr r1, =gUnknown_082EFFA4 adds r0, r4, 0 - bl sub_81AFC28 + bl UnkTextUtil_StringExpandPlaceholders ldr r5, =gStringVar4 adds r0, r5, 0 adds r1, r4, 0 @@ -28529,7 +28529,7 @@ _08018360: bne _080183D0 ldr r1, =gUnknown_082F0020 adds r0, r4, 0 - bl sub_81AFC28 + bl UnkTextUtil_StringExpandPlaceholders adds r0, r5, 0 adds r1, r4, 0 bl StringAppend @@ -28546,7 +28546,7 @@ _080183D0: adds r1, r0 ldr r1, [r1] adds r0, r4, 0 - bl sub_81AFC28 + bl UnkTextUtil_StringExpandPlaceholders adds r0, r5, 0 adds r1, r4, 0 bl StringAppend @@ -29500,7 +29500,7 @@ _08018BD6: b _08018C3E .pool _08018BE4: - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r6, r0, 24 movs r1, 0x80 @@ -32659,7 +32659,7 @@ sub_801A43C: @ 801A43C bl LoadPalette movs r0, 0xF0 bl sub_81978B0 - bl sub_81AFBF0 + bl UnkTextUtil_Reset movs r0, 0x20 str r0, [sp] str r0, [sp, 0x4] @@ -33721,7 +33721,7 @@ _0801AE48: beq _0801AE54 b _0801AFAE _0801AE54: - ldr r4, =gUnknown_020228C4 + ldr r4, =gBlockSendBuffer adds r0, r4, 0 movs r1, 0 movs r2, 0x20 @@ -33738,7 +33738,7 @@ _0801AE78: movs r0, 0x51 _0801AE7A: strb r0, [r4] - ldr r1, =gUnknown_020228C4 + ldr r1, =gBlockSendBuffer movs r0, 0 movs r2, 0x20 bl SendBlock @@ -41936,10 +41936,10 @@ _0801F020: ldrb r1, [r4, 0x8] cmp r0, r1 beq _0801F0A8 - bl sub_81AFBF0 + bl UnkTextUtil_Reset movs r0, 0 adds r1, r4, 0 - bl sub_81AFC0C + bl UnkTextUtil_SetPtrI ldr r1, =gText_F700JoinedChat b _0801F094 .pool @@ -41976,14 +41976,14 @@ _0801F07A: ldrb r5, [r5] cmp r0, r5 beq _0801F0A8 - bl sub_81AFBF0 + bl UnkTextUtil_Reset movs r0, 0 adds r1, r4, 0 - bl sub_81AFC0C + bl UnkTextUtil_SetPtrI ldr r1, =gText_F700LeftChat _0801F094: adds r0, r6, 0 - bl sub_81AFC28 + bl UnkTextUtil_StringExpandPlaceholders movs r0, 0x1 b _0801F0AA .pool @@ -43456,11 +43456,11 @@ sub_801FBF8: @ 801FBF8 beq _0801FC38 b _0801FC42 _0801FC08: - bl sub_81AFBF0 + bl UnkTextUtil_Reset bl sub_801F1D0 adds r1, r0, 0 movs r0, 0 - bl sub_81AFC0C + bl UnkTextUtil_SetPtrI movs r0, 0x5 movs r1, 0 bl sub_801FF18 @@ -43617,11 +43617,11 @@ sub_801FD30: @ 801FD30 beq _0801FD74 b _0801FD7E _0801FD40: - bl sub_81AFBF0 + bl UnkTextUtil_Reset ldr r0, =gSaveBlock2Ptr ldr r1, [r0] movs r0, 0 - bl sub_81AFC0C + bl UnkTextUtil_SetPtrI movs r0, 0x9 movs r1, 0 bl sub_801FF18 @@ -43925,7 +43925,7 @@ _0801FF98: adds r0, r1, 0 adds r0, 0x22 ldr r1, [r4] - bl sub_81AFC28 + bl UnkTextUtil_StringExpandPlaceholders ldr r0, [r5] adds r6, r0, 0 adds r6, 0x22 @@ -47204,7 +47204,7 @@ _08021A92: lsls r4, 2 str r4, [sp, 0x24] _08021A98: - bl sub_81AFBF0 + bl UnkTextUtil_Reset ldr r0, [sp, 0x10] cmp r0, 0x1 beq _08021B48 @@ -47463,10 +47463,10 @@ _08021CC8: ldr r0, [sp, 0xC] adds r1, r0, r1 movs r0, 0 - bl sub_81AFC0C + bl UnkTextUtil_SetPtrI ldr r0, =gStringVar4 adds r1, r4, 0 - bl sub_81AFC28 + bl UnkTextUtil_StringExpandPlaceholders ldr r1, [sp, 0xC] movs r2, 0xDD lsls r2, 1 @@ -50249,7 +50249,7 @@ sub_802339C: @ 802339C mov r10, r3 _080233C0: lsls r0, r7, 4 - ldr r1, =gUnknown_03003090 + ldr r1, =gRecvCmds adds r2, r0, r1 ldrh r1, [r2] movs r0, 0xFF @@ -50858,7 +50858,7 @@ sub_802385C: @ 802385C push {r4,r5,lr} adds r5, r0, 0 movs r4, 0 - ldr r3, =gUnknown_03003090 + ldr r3, =gRecvCmds ldrb r0, [r5, 0x9] cmp r4, r0 bcs _08023880 @@ -52112,7 +52112,7 @@ _0802426A: bl sub_8197930 b _080242D0 _08024270: - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r4, r0, 24 movs r0, 0x2 @@ -52672,8 +52672,8 @@ SetBerryPowder: @ 802467C .pool thumb_func_end SetBerryPowder - thumb_func_start ApplyNewEncyprtionKeyToBerryPowder -ApplyNewEncyprtionKeyToBerryPowder: @ 8024690 + thumb_func_start ApplyNewEncryptionKeyToBerryPowder +ApplyNewEncryptionKeyToBerryPowder: @ 8024690 push {lr} adds r1, r0, 0 ldr r0, =gSaveBlock2Ptr @@ -52681,11 +52681,11 @@ ApplyNewEncyprtionKeyToBerryPowder: @ 8024690 movs r2, 0xFA lsls r2, 1 adds r0, r2 - bl ApplyNewEncyprtionKeyToWord + bl ApplyNewEncryptionKeyToWord pop {r0} bx r0 .pool - thumb_func_end ApplyNewEncyprtionKeyToBerryPowder + thumb_func_end ApplyNewEncryptionKeyToBerryPowder thumb_func_start sub_80246AC sub_80246AC: @ 80246AC @@ -59626,7 +59626,7 @@ sub_8027DD0: @ 8027DD0 sub_8027DFC: @ 8027DFC push {lr} adds r2, r0, 0 - ldr r3, =gUnknown_03003090 + ldr r3, =gRecvCmds ldrh r0, [r3] movs r1, 0xFF lsls r1, 8 @@ -60082,7 +60082,7 @@ sub_8028164: @ 8028164 mov r9, r0 adds r2, r7, 0 adds r2, 0x14 - ldr r4, =gUnknown_03003090 + ldr r4, =gRecvCmds ldrh r0, [r4] movs r1, 0xFF lsls r1, 8 @@ -60295,7 +60295,7 @@ sub_8028318: @ 8028318 push {r4,lr} adds r2, r0, 0 adds r4, r1, 0 - ldr r3, =gUnknown_03003090 + ldr r3, =gRecvCmds ldrh r0, [r3] movs r1, 0xFF lsls r1, 8 @@ -60347,7 +60347,7 @@ sub_8028350: @ 8028350 sub_8028374: @ 8028374 push {lr} adds r2, r0, 0 - ldr r3, =gUnknown_03003090 + ldr r3, =gRecvCmds ldrh r0, [r3] movs r1, 0xFF lsls r1, 8 @@ -63514,7 +63514,7 @@ _08029DA0: movs r1, 0x1 adds r2, r5, 0 bl PrintTextOnWindow - bl sub_81AFBF0 + bl UnkTextUtil_Reset bl sub_802762C lsls r0, 16 lsrs r0, 16 @@ -63523,11 +63523,11 @@ _08029DA0: bl CopyItemName movs r0, 0 adds r1, r5, 0 - bl sub_81AFC0C + bl UnkTextUtil_SetPtrI ldr r7, =gStringVar4 ldr r1, =gText_FirstPlacePrize adds r0, r7, 0 - bl sub_81AFC28 + bl UnkTextUtil_StringExpandPlaceholders ldr r0, [r4] add r0, r10 ldrb r0, [r0] @@ -63548,7 +63548,7 @@ _08029DA0: beq _08029EC8 cmp r4, 0x3 beq _08029EC8 - bl sub_81AFBF0 + bl UnkTextUtil_Reset bl sub_802762C lsls r0, 16 lsrs r0, 16 @@ -63556,12 +63556,12 @@ _08029DA0: bl CopyItemName movs r0, 0 adds r1, r5, 0 - bl sub_81AFC0C + bl UnkTextUtil_SetPtrI cmp r4, 0x2 bne _08029E9C ldr r1, =gText_CantHoldAnyMore adds r0, r7, 0 - bl sub_81AFC28 + bl UnkTextUtil_StringExpandPlaceholders b _08029EA8 .pool _08029E9C: @@ -63569,7 +63569,7 @@ _08029E9C: bne _08029EA8 ldr r1, =gText_FilledStorageSpace adds r0, r7, 0 - bl sub_81AFC28 + bl UnkTextUtil_StringExpandPlaceholders _08029EA8: ldr r0, =gUnknown_02022CF8 ldr r0, [r0] @@ -70729,19 +70729,19 @@ sub_802D7E8: @ 802D7E8 movs r2, 0 movs r3, 0x1 bl ConvertIntToDecimalStringN - bl sub_81AFBF0 + bl UnkTextUtil_Reset ldr r1, [r5] adds r1, 0x26 movs r0, 0 - bl sub_81AFC0C + bl UnkTextUtil_SetPtrI ldr r1, [r5] adds r1, 0x66 movs r0, 0x1 - bl sub_81AFC0C + bl UnkTextUtil_SetPtrI ldr r0, [r5] adds r0, 0xA6 ldr r1, =gText_AwesomeWonF701F700 - bl sub_81AFC28 + bl UnkTextUtil_StringExpandPlaceholders movs r0, 0x4 movs r1, 0x8 movs r2, 0x16 @@ -70786,15 +70786,15 @@ sub_802D884: @ 802D884 ldr r1, [r4] adds r1, 0x26 bl CopyItemName - bl sub_81AFBF0 + bl UnkTextUtil_Reset ldr r1, [r4] adds r1, 0x26 movs r0, 0 - bl sub_81AFC0C + bl UnkTextUtil_SetPtrI ldr r0, [r4] adds r0, 0xA6 ldr r1, =gText_FilledStorageSpace2 - bl sub_81AFC28 + bl UnkTextUtil_StringExpandPlaceholders movs r0, 0x4 movs r1, 0x8 movs r2, 0x16 @@ -70839,15 +70839,15 @@ sub_802D8FC: @ 802D8FC ldr r1, [r4] adds r1, 0x26 bl CopyItemName - bl sub_81AFBF0 + bl UnkTextUtil_Reset ldr r1, [r4] adds r1, 0x26 movs r0, 0 - bl sub_81AFC0C + bl UnkTextUtil_SetPtrI ldr r0, [r4] adds r0, 0xA6 ldr r1, =gText_CantHoldMore - bl sub_81AFC28 + bl UnkTextUtil_StringExpandPlaceholders movs r0, 0x4 movs r1, 0x9 movs r2, 0x16 @@ -71033,7 +71033,7 @@ _0802DA84: thumb_func_start sub_802DA8C sub_802DA8C: @ 802DA8C push {lr} - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r0, 24 pop {r1} @@ -71819,7 +71819,7 @@ sub_802E0D0: @ 802E0D0 push {r4,lr} sub sp, 0xC adds r4, r1, 0 - ldr r3, =gUnknown_03003090 + ldr r3, =gRecvCmds lsls r2, r0, 4 adds r0, r2, r3 ldrh r1, [r0] @@ -71946,7 +71946,7 @@ sub_802E1BC: @ 802E1BC sub sp, 0xC adds r5, r0, 0 adds r4, r1, 0 - ldr r2, =gUnknown_03003090 + ldr r2, =gRecvCmds ldrh r0, [r2] movs r1, 0xFF lsls r1, 8 @@ -72036,7 +72036,7 @@ sub_802E264: @ 802E264 adds r4, r0, 0 adds r5, r2, 0 adds r6, r3, 0 - ldr r3, =gUnknown_03003090 + ldr r3, =gRecvCmds lsls r2, r1, 4 adds r0, r2, r3 ldrh r1, [r0] @@ -72091,7 +72091,7 @@ sub_802E2D0: @ 802E2D0 push {r4,lr} sub sp, 0xC adds r4, r0, 0 - ldr r3, =gUnknown_03003090 + ldr r3, =gRecvCmds lsls r2, r1, 4 adds r0, r2, r3 ldrh r1, [r0] @@ -73085,7 +73085,7 @@ sub_802EAB0: @ 802EAB0 ldrb r0, [r0] cmp r0, 0 beq _0802EB14 - ldr r1, =gUnknown_03003090 + ldr r1, =gRecvCmds ldrh r0, [r1, 0x2] ldr r5, =0x00007fff cmp r0, r5 diff --git a/asm/load_save.s b/asm/load_save.s deleted file mode 100644 index 2b4be8e67..000000000 --- a/asm/load_save.s +++ /dev/null @@ -1,669 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start MoveSaveBlocks_ResetHeap -MoveSaveBlocks_ResetHeap: @ 8076C2C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - ldr r5, =gMain - ldr r0, [r5, 0xC] - str r0, [sp] - ldr r1, [r5, 0x10] - str r1, [sp, 0x4] - movs r0, 0 - str r0, [r5, 0xC] - str r0, [r5, 0x10] - ldr r1, =gUnknown_0203CF5C - str r0, [r1] - ldr r4, =0x02000000 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r6, =0x00000f2c - adds r0, r4, 0 - adds r2, r6, 0 - bl memcpy - ldr r1, =gSaveBlock1Ptr - mov r10, r1 - ldr r1, [r1] - ldr r7, =0x00003d88 - ldr r0, =0x02000f2c - adds r2, r7, 0 - bl memcpy - ldr r0, =gPokemonStoragePtr - mov r8, r0 - ldr r1, [r0] - ldr r0, =0x000083d0 - mov r9, r0 - ldr r0, =0x02004cb4 - mov r2, r9 - bl memcpy - ldrb r1, [r4, 0xA] - ldrb r0, [r4, 0xB] - adds r1, r0 - ldrb r0, [r4, 0xC] - adds r1, r0 - ldrb r0, [r4, 0xD] - adds r0, r1 - bl SetSaveBlocksPointers - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - adds r1, r4, 0 - adds r2, r6, 0 - bl memcpy - mov r1, r10 - ldr r0, [r1] - ldr r1, =0x02000f2c - adds r2, r7, 0 - bl memcpy - mov r1, r8 - ldr r0, [r1] - ldr r1, =0x02004cb4 - mov r2, r9 - bl memcpy - movs r1, 0xE0 - lsls r1, 9 - adds r0, r4, 0 - bl InitHeap - ldr r0, [sp, 0x4] - str r0, [r5, 0x10] - ldr r1, [sp] - str r1, [r5, 0xC] - bl Random - adds r4, r0, 0 - bl Random - lsls r4, 16 - lsls r0, 16 - lsrs r0, 16 - adds r4, r0 - adds r0, r4, 0 - bl ApplyNewEncyprtionKeyToAllEncryptedData - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - adds r0, 0xAC - str r4, [r0] - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end MoveSaveBlocks_ResetHeap - - thumb_func_start sav2_x1_query_bit1 -sav2_x1_query_bit1: @ 8076D24 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r1, [r0, 0x9] - movs r0, 0x1 - ands r0, r1 - bx lr - .pool - thumb_func_end sav2_x1_query_bit1 - - thumb_func_start sav2_x9_clear_bit1 -sav2_x9_clear_bit1: @ 8076D34 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldrb r1, [r2, 0x9] - movs r0, 0xFE - ands r0, r1 - strb r0, [r2, 0x9] - bx lr - .pool - thumb_func_end sav2_x9_clear_bit1 - - thumb_func_start sub_8076D48 -sub_8076D48: @ 8076D48 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldrb r1, [r2, 0x9] - movs r0, 0x1 - orrs r0, r1 - strb r0, [r2, 0x9] - bx lr - .pool - thumb_func_end sub_8076D48 - - thumb_func_start sub_8076D5C -sub_8076D5C: @ 8076D5C - push {lr} - movs r0, 0 - bl sub_8084FAC - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldrb r1, [r2, 0x9] - movs r0, 0x1 - orrs r0, r1 - strb r0, [r2, 0x9] - pop {r0} - bx r0 - .pool - thumb_func_end sub_8076D5C - - thumb_func_start sav2_gender2_inplace_and_xFE -sav2_gender2_inplace_and_xFE: @ 8076D78 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldrb r1, [r2, 0x9] - movs r0, 0xFE - ands r0, r1 - strb r0, [r2, 0x9] - bx lr - .pool - thumb_func_end sav2_gender2_inplace_and_xFE - - thumb_func_start copy_player_party_to_sav1 -@ void copy_player_party_to_sav1() -copy_player_party_to_sav1: @ 8076D8C - push {r4,lr} - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =gPlayerPartyCount - ldrb r1, [r1] - movs r2, 0x8D - lsls r2, 2 - adds r0, r2 - strb r1, [r0] - movs r4, 0 -_08076DA0: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x64 - muls r1, r4 - adds r0, r1 - movs r2, 0x8E - lsls r2, 2 - adds r0, r2 - ldr r2, =gPlayerParty - adds r1, r2 - movs r2, 0x64 - bl memcpy - adds r4, 0x1 - cmp r4, 0x5 - ble _08076DA0 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end copy_player_party_to_sav1 - - thumb_func_start copy_player_party_from_sav1 -copy_player_party_from_sav1: @ 8076DD4 - push {r4,r5,lr} - ldr r1, =gPlayerPartyCount - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r2, 0x8D - lsls r2, 2 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - movs r4, 0 - ldr r5, =gPlayerParty -_08076DEA: - movs r0, 0x64 - adds r2, r4, 0 - muls r2, r0 - adds r0, r2, r5 - ldr r1, =gSaveBlock1Ptr - ldr r1, [r1] - adds r1, r2 - movs r2, 0x8E - lsls r2, 2 - adds r1, r2 - movs r2, 0x64 - bl memcpy - adds r4, 0x1 - cmp r4, 0x5 - ble _08076DEA - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end copy_player_party_from_sav1 - - thumb_func_start save_serialize_npcs -save_serialize_npcs: @ 8076E1C - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, =gSaveBlock1Ptr - mov r12, r0 - movs r5, 0xA3 - lsls r5, 4 - mov r8, r5 - ldr r4, =gMapObjects - movs r3, 0 - movs r2, 0xF -_08076E32: - mov r6, r12 - ldr r1, [r6] - adds r1, r3 - add r1, r8 - adds r0, r4, 0 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r4, 0x24 - adds r3, 0x24 - subs r2, 0x1 - cmp r2, 0 - bge _08076E32 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end save_serialize_npcs - - thumb_func_start save_deserialize_npcs -save_deserialize_npcs: @ 8076E64 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, =gSaveBlock1Ptr - mov r12, r0 - movs r5, 0xA3 - lsls r5, 4 - mov r8, r5 - ldr r4, =gMapObjects - movs r3, 0 - movs r2, 0xF -_08076E7A: - mov r6, r12 - ldr r1, [r6] - adds r1, r3 - adds r0, r4, 0 - add r1, r8 - ldm r1!, {r5-r7} - stm r0!, {r5-r7} - ldm r1!, {r5-r7} - stm r0!, {r5-r7} - ldm r1!, {r5-r7} - stm r0!, {r5-r7} - adds r4, 0x24 - adds r3, 0x24 - subs r2, 0x1 - cmp r2, 0 - bge _08076E7A - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end save_deserialize_npcs - - thumb_func_start SaveSerializedGame -SaveSerializedGame: @ 8076EAC - push {lr} - bl copy_player_party_to_sav1 - bl save_serialize_npcs - pop {r0} - bx r0 - thumb_func_end SaveSerializedGame - - thumb_func_start LoadSerializedGame -LoadSerializedGame: @ 8076EBC - push {lr} - bl copy_player_party_from_sav1 - bl save_deserialize_npcs - pop {r0} - bx r0 - thumb_func_end LoadSerializedGame - - thumb_func_start copy_bags_and_unk_data_from_save_blocks -copy_bags_and_unk_data_from_save_blocks: @ 8076ECC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r2, 0 - ldr r0, =gUnknown_02032180 - mov r12, r0 - ldr r1, =gSaveBlock2Ptr - mov r10, r1 - ldr r5, =gSaveBlock1Ptr - movs r3, 0xAC - lsls r3, 3 - ldr r4, =gUnknown_02031C58 -_08076EE8: - lsls r0, r2, 2 - ldr r1, [r5] - adds r1, r3 - adds r1, r0 - ldr r0, [r1] - stm r4!, {r0} - adds r2, 0x1 - cmp r2, 0x1D - ble _08076EE8 - movs r2, 0 - ldr r0, =gUnknown_02031C58 - ldr r5, =gSaveBlock1Ptr - movs r3, 0xBB - lsls r3, 3 - adds r4, r0, 0 - adds r4, 0x78 -_08076F08: - lsls r0, r2, 2 - ldr r1, [r5] - adds r1, r3 - adds r1, r0 - ldr r0, [r1] - stm r4!, {r0} - adds r2, 0x1 - cmp r2, 0x1D - ble _08076F08 - movs r2, 0 - ldr r0, =gUnknown_02031C58 - ldr r5, =gSaveBlock1Ptr - movs r3, 0xCA - lsls r3, 3 - adds r4, r0, 0 - adds r4, 0xF0 -_08076F28: - lsls r0, r2, 2 - ldr r1, [r5] - adds r1, r3 - adds r1, r0 - ldr r0, [r1] - stm r4!, {r0} - adds r2, 0x1 - cmp r2, 0xF - ble _08076F28 - movs r2, 0 - ldr r0, =gUnknown_02031C58 - ldr r5, =gSaveBlock1Ptr - movs r6, 0x98 - lsls r6, 1 - adds r4, r0, r6 - movs r3, 0xD2 - lsls r3, 3 -_08076F4A: - lsls r0, r2, 2 - ldr r1, [r5] - adds r1, r3 - adds r1, r0 - ldr r0, [r1] - stm r4!, {r0} - adds r2, 0x1 - cmp r2, 0x3F - ble _08076F4A - movs r2, 0 - ldr r0, =gUnknown_02031C58 - ldr r5, =gSaveBlock1Ptr - movs r7, 0x8C - lsls r7, 2 - adds r4, r0, r7 - movs r3, 0xF2 - lsls r3, 3 -_08076F6C: - lsls r0, r2, 2 - ldr r1, [r5] - adds r1, r3 - adds r1, r0 - ldr r0, [r1] - stm r4!, {r0} - adds r2, 0x1 - cmp r2, 0x2D - ble _08076F6C - ldr r0, =gUnknown_02031C58 - ldr r1, =gSaveBlock1Ptr - mov r8, r1 - movs r5, 0xBA - lsls r5, 2 - adds r4, r0, r5 - movs r3, 0 - ldr r6, =0x00002be0 - mov r9, r6 - movs r2, 0xF -_08076F92: - mov r7, r8 - ldr r1, [r7] - adds r1, r3 - adds r0, r4, 0 - add r1, r9 - ldm r1!, {r5-r7} - stm r0!, {r5-r7} - ldm r1!, {r5-r7} - stm r0!, {r5-r7} - ldm r1!, {r5-r7} - stm r0!, {r5-r7} - adds r4, 0x24 - adds r3, 0x24 - subs r2, 0x1 - cmp r2, 0 - bge _08076F92 - mov r1, r10 - ldr r0, [r1] - adds r0, 0xAC - ldr r0, [r0] - mov r5, r12 - str r0, [r5] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end copy_bags_and_unk_data_from_save_blocks - - thumb_func_start copy_bags_and_unk_data_to_save_blocks -copy_bags_and_unk_data_to_save_blocks: @ 8076FE0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r2, 0 - ldr r0, =gSaveBlock2Ptr - mov r8, r0 - ldr r1, =gUnknown_02032180 - mov r12, r1 - ldr r5, =gSaveBlock1Ptr - movs r3, 0xAC - lsls r3, 3 - ldr r4, =gUnknown_02031C58 -_08076FFC: - ldr r0, [r5] - lsls r1, r2, 2 - adds r0, r3 - adds r0, r1 - ldm r4!, {r1} - str r1, [r0] - adds r2, 0x1 - cmp r2, 0x1D - ble _08076FFC - movs r2, 0 - ldr r5, =gSaveBlock1Ptr - movs r4, 0xBB - lsls r4, 3 - ldr r0, =gUnknown_02031C58 - adds r3, r0, 0 - adds r3, 0x78 -_0807701C: - ldr r0, [r5] - lsls r1, r2, 2 - adds r0, r4 - adds r0, r1 - ldm r3!, {r1} - str r1, [r0] - adds r2, 0x1 - cmp r2, 0x1D - ble _0807701C - movs r2, 0 - ldr r5, =gSaveBlock1Ptr - movs r4, 0xCA - lsls r4, 3 - ldr r0, =gUnknown_02031C58 - adds r3, r0, 0 - adds r3, 0xF0 -_0807703C: - ldr r0, [r5] - lsls r1, r2, 2 - adds r0, r4 - adds r0, r1 - ldm r3!, {r1} - str r1, [r0] - adds r2, 0x1 - cmp r2, 0xF - ble _0807703C - movs r2, 0 - ldr r5, =gSaveBlock1Ptr - movs r4, 0xD2 - lsls r4, 3 - ldr r0, =gUnknown_02031C58 - movs r6, 0x98 - lsls r6, 1 - adds r3, r0, r6 -_0807705E: - ldr r0, [r5] - lsls r1, r2, 2 - adds r0, r4 - adds r0, r1 - ldm r3!, {r1} - str r1, [r0] - adds r2, 0x1 - cmp r2, 0x3F - ble _0807705E - movs r2, 0 - ldr r5, =gSaveBlock1Ptr - movs r4, 0xF2 - lsls r4, 3 - ldr r0, =gUnknown_02031C58 - movs r7, 0x8C - lsls r7, 2 - adds r3, r0, r7 -_08077080: - ldr r0, [r5] - lsls r1, r2, 2 - adds r0, r4 - adds r0, r1 - ldm r3!, {r1} - str r1, [r0] - adds r2, 0x1 - cmp r2, 0x2D - ble _08077080 - ldr r0, =gSaveBlock1Ptr - mov r9, r0 - ldr r1, =0x00002be0 - mov r10, r1 - ldr r4, =gUnknown_02031C58 - movs r3, 0 - movs r2, 0xF -_080770A0: - mov r5, r9 - ldr r1, [r5] - adds r1, r3 - add r1, r10 - movs r6, 0xBA - lsls r6, 2 - adds r0, r4, r6 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r4, 0x24 - adds r3, 0x24 - subs r2, 0x1 - cmp r2, 0 - bge _080770A0 - mov r7, r8 - ldr r0, [r7] - adds r0, 0xAC - ldr r4, [r0] - mov r2, r12 - ldr r1, [r2] - str r1, [r0] - adds r0, r4, 0 - bl ApplyNewEncyprtionKeyToBagItems - ldr r0, [r7] - adds r0, 0xAC - str r4, [r0] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end copy_bags_and_unk_data_to_save_blocks - - thumb_func_start ApplyNewEncyprtionKeyToHword -ApplyNewEncyprtionKeyToHword: @ 8077100 - ldr r2, =gSaveBlock2Ptr - ldr r2, [r2] - adds r2, 0xAC - ldr r2, [r2] - ldrh r3, [r0] - eors r2, r3 - eors r2, r1 - strh r2, [r0] - bx lr - .pool - thumb_func_end ApplyNewEncyprtionKeyToHword - - thumb_func_start ApplyNewEncyprtionKeyToWord -ApplyNewEncyprtionKeyToWord: @ 8077118 - ldr r2, =gSaveBlock2Ptr - ldr r3, [r2] - adds r3, 0xAC - ldr r2, [r0] - ldr r3, [r3] - eors r2, r3 - eors r2, r1 - str r2, [r0] - bx lr - .pool - thumb_func_end ApplyNewEncyprtionKeyToWord - - thumb_func_start ApplyNewEncyprtionKeyToAllEncryptedData -ApplyNewEncyprtionKeyToAllEncryptedData: @ 8077130 - push {r4,r5,lr} - adds r4, r0, 0 - bl ApplyNewEncyprtionKeyToGameStats - adds r0, r4, 0 - bl ApplyNewEncyprtionKeyToBagItems_ - adds r0, r4, 0 - bl ApplyNewEncyprtionKeyToBerryPowder - ldr r5, =gSaveBlock1Ptr - ldr r0, [r5] - movs r1, 0x92 - lsls r1, 3 - adds r0, r1 - adds r1, r4, 0 - bl ApplyNewEncyprtionKeyToWord - ldr r0, [r5] - ldr r1, =0x00000494 - adds r0, r1 - adds r1, r4, 0 - bl ApplyNewEncyprtionKeyToHword - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end ApplyNewEncyprtionKeyToAllEncryptedData - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc new file mode 100644 index 000000000..a16b59366 --- /dev/null +++ b/asm/macros/battle_script.inc @@ -0,0 +1,1401 @@ +@ commands + .macro attackcanceler + .byte 0x0 + .endm + + .macro accuracycheck param0, param1 + .byte 0x1 + .4byte \param0 + .2byte \param1 + .endm + + .macro attackstring + .byte 0x2 + .endm + + .macro ppreduce + .byte 0x3 + .endm + + .macro critcalc + .byte 0x4 + .endm + + .macro damagecalc + .byte 0x5 + .endm + + .macro typecalc + .byte 0x6 + .endm + + .macro adjustnormaldamage + .byte 0x7 + .endm + + .macro adjustnormaldamage2 + .byte 0x8 + .endm + + .macro attackanimation + .byte 0x9 + .endm + + .macro waitanimation + .byte 0xa + .endm + + .macro healthbarupdate bank + .byte 0xb + .byte \bank + .endm + + .macro datahpupdate bank + .byte 0xc + .byte \bank + .endm + + .macro critmessage + .byte 0xd + .endm + + .macro effectivenesssound + .byte 0xe + .endm + + .macro resultmessage + .byte 0xf + .endm + + .macro printstring param0 + .byte 0x10 + .2byte \param0 + .endm + + .macro printselectionstring param0 + .byte 0x11 + .2byte \param0 + .endm + + .macro waitmessage param0 + .byte 0x12 + .2byte \param0 + .endm + + .macro printfromtable param0 + .byte 0x13 + .4byte \param0 + .endm + + .macro printselectionstringfromtable param0 + .byte 0x14 + .4byte \param0 + .endm + + .macro seteffectwithchance + .byte 0x15 + .endm + + .macro seteffectprimary + .byte 0x16 + .endm + + .macro seteffectsecondary + .byte 0x17 + .endm + + .macro clearstatusfromeffect bank + .byte 0x18 + .byte \bank + .endm + + .macro tryfaintmon bank, param1, param2 + .byte 0x19 + .byte \bank + .byte \param1 + .4byte \param2 + .endm + + .macro dofaintanimation bank + .byte 0x1a + .byte \bank + .endm + + .macro cleareffectsonfaint bank + .byte 0x1b + .byte \bank + .endm + + .macro jumpifstatus bank, status1, param2 + .byte 0x1c + .byte \bank + .4byte \status1 + .4byte \param2 + .endm + + .macro jumpifstatus2 bank, status2, param2 + .byte 0x1d + .byte \bank + .4byte \status2 + .4byte \param2 + .endm + + .macro jumpifability param0, ability, param2 + .byte 0x1e + .byte \param0 + .byte \ability + .4byte \param2 + .endm + + .macro jumpifsideaffecting bank, sidestatus, param2 + .byte 0x1f + .byte \bank + .2byte \sidestatus + .4byte \param2 + .endm + + .macro jumpifstat bank, ifflag, stat, param3, param4 + .byte 0x20 + .byte \bank + .byte \ifflag + .byte \stat + .byte \param3 + .4byte \param4 + .endm + + .macro jumpifstatus3condition bank, status3, param2, param3 + .byte 0x21 + .byte \bank + .4byte \status3 + .byte \param2 + .4byte \param3 + .endm + + .macro jumpiftype bank, type, param2 + .byte 0x22 + .byte \bank + .byte \type + .4byte \param2 + .endm + + .macro getexp bank + .byte 0x23 + .byte \bank + .endm + + .macro atk24 param0 + .byte 0x24 + .4byte \param0 + .endm + + .macro movevaluescleanup + .byte 0x25 + .endm + + .macro setmultihit param0 + .byte 0x26 + .byte \param0 + .endm + + .macro decrementmultihit param0 + .byte 0x27 + .4byte \param0 + .endm + + .macro goto param0 + .byte 0x28 + .4byte \param0 + .endm + + .macro jumpifbyte ifflag, param1, param2, param3 + .byte 0x29 + .byte \ifflag + .4byte \param1 + .byte \param2 + .4byte \param3 + .endm + + .macro jumpifhalfword ifflag, param1, param2, param3 + .byte 0x2a + .byte \ifflag + .4byte \param1 + .2byte \param2 + .4byte \param3 + .endm + + .macro jumpifword ifflag, param1, param2, param3 + .byte 0x2b + .byte \ifflag + .4byte \param1 + .4byte \param2 + .4byte \param3 + .endm + + .macro jumpifarrayequal param0, param1, param2, param3 + .byte 0x2c + .4byte \param0 + .4byte \param1 + .byte \param2 + .4byte \param3 + .endm + + .macro jumpifarraynotequal param0, param1, param2, param3 + .byte 0x2d + .4byte \param0 + .4byte \param1 + .byte \param2 + .4byte \param3 + .endm + + .macro setbyte param0, param1 + .byte 0x2e + .4byte \param0 + .byte \param1 + .endm + + .macro addbyte param0, param1 + .byte 0x2f + .4byte \param0 + .byte \param1 + .endm + + .macro subbyte param0, param1 + .byte 0x30 + .4byte \param0 + .byte \param1 + .endm + + .macro copyarray param0, param1, param2 + .byte 0x31 + .4byte \param0 + .4byte \param1 + .byte \param2 + .endm + + .macro copyarraywithindex param0, param1, param2, param3 + .byte 0x32 + .4byte \param0 + .4byte \param1 + .4byte \param2 + .byte \param3 + .endm + + .macro orbyte param0, param1 + .byte 0x33 + .4byte \param0 + .byte \param1 + .endm + + .macro orhalfword param0, param1 + .byte 0x34 + .4byte \param0 + .2byte \param1 + .endm + + .macro orword param0, param1 + .byte 0x35 + .4byte \param0 + .4byte \param1 + .endm + + .macro bicbyte param0, param1 + .byte 0x36 + .4byte \param0 + .byte \param1 + .endm + + .macro bichalfword param0, param1 + .byte 0x37 + .4byte \param0 + .2byte \param1 + .endm + + .macro bicword param0, param1 + .byte 0x38 + .4byte \param0 + .4byte \param1 + .endm + + .macro pause param0 + .byte 0x39 + .2byte \param0 + .endm + + .macro waitstate + .byte 0x3a + .endm + + .macro healthbar_update bank + .byte 0x3b + .byte \bank + .endm + + .macro return + .byte 0x3c + .endm + + .macro end + .byte 0x3d + .endm + + .macro end2 + .byte 0x3e + .endm + + .macro end3 + .byte 0x3f + .endm + + .macro jumpifaffectedbyprotect param0 + .byte 0x40 + .4byte \param0 + .endm + + .macro call param0 + .byte 0x41 + .4byte \param0 + .endm + + .macro jumpiftype2 bank, type, param2 + .byte 0x42 + .byte \bank + .byte \type + .4byte \param2 + .endm + + .macro jumpifabilitypresent ability, param1 + .byte 0x43 + .byte \ability + .4byte \param1 + .endm + + .macro endselectionscript + .byte 0x44 + .endm + + .macro playanimation bank, param1, param2 + .byte 0x45 + .byte \bank + .byte \param1 + .4byte \param2 + .endm + + .macro playanimation2 bank, param1, param2 + .byte 0x46 + .byte \bank + .4byte \param1 + .4byte \param2 + .endm + + .macro setgraphicalstatchangevalues + .byte 0x47 + .endm + + .macro playstatchangeanimation bank, param1, param2 + .byte 0x48 + .byte \bank + .byte \param1 + .byte \param2 + .endm + + .macro moveend param0, param1 + .byte 0x49 + .byte \param0 + .byte \param1 + .endm + + .macro typecalc2 + .byte 0x4a + .endm + + .macro returnatktoball + .byte 0x4b + .endm + + .macro getswitchedmondata bank + .byte 0x4c + .byte \bank + .endm + + .macro switchindataupdate bank + .byte 0x4d + .byte \bank + .endm + + .macro switchinanim bank, dontclearsubstitutebit + .byte 0x4e + .byte \bank + .byte \dontclearsubstitutebit + .endm + + .macro jumpifcantswitch bank, param1 + .byte 0x4f + .byte \bank + .4byte \param1 + .endm + + .macro openpartyscreen param0, param1 + .byte 0x50 + .byte \param0 + .4byte \param1 + .endm + + .macro switchhandleorder bank, param1 + .byte 0x51 + .byte \bank + .byte \param1 + .endm + + .macro switchineffects bank + .byte 0x52 + .byte \bank + .endm + + .macro trainerslidein bank + .byte 0x53 + .byte \bank + .endm + + .macro playse param0 + .byte 0x54 + .2byte \param0 + .endm + + .macro fanfare param0 + .byte 0x55 + .2byte \param0 + .endm + + .macro playfaintcry bank + .byte 0x56 + .byte \bank + .endm + + .macro atk57 + .byte 0x57 + .endm + + .macro returntoball bank + .byte 0x58 + .byte \bank + .endm + + .macro handlelearnnewmove param0, param1, param2 + .byte 0x59 + .4byte \param0 + .4byte \param1 + .byte \param2 + .endm + + .macro yesnoboxlearnmove param0 + .byte 0x5a + .4byte \param0 + .endm + + .macro yesnoboxstoplearningmove param0 + .byte 0x5b + .4byte \param0 + .endm + + .macro hitanimation bank + .byte 0x5c + .byte \bank + .endm + + .macro getmoneyreward + .byte 0x5d + .endm + + .macro atk5E bank + .byte 0x5e + .byte \bank + .endm + + .macro atk5F + .byte 0x5f + .endm + + .macro incrementgamestat param0 + .byte 0x60 + .byte \param0 + .endm + + .macro drawpartystatussummary bank + .byte 0x61 + .byte \bank + .endm + + .macro atk62 bank + .byte 0x62 + .byte \bank + .endm + + .macro jumptorandomattack param0 + .byte 0x63 + .byte \param0 + .endm + + .macro statusanimation bank + .byte 0x64 + .byte \bank + .endm + + .macro status2animation bank, status2 + .byte 0x65 + .byte \bank + .4byte \status2 + .endm + + .macro chosenstatusanimation bank, param1, param2 + .byte 0x66 + .byte \bank + .byte \param1 + .4byte \param2 + .endm + + .macro yesnobox + .byte 0x67 + .endm + + .macro cancelallactions + .byte 0x68 + .endm + + .macro adjustsetdamage + .byte 0x69 + .endm + + .macro removeitem bank + .byte 0x6a + .byte \bank + .endm + + .macro atknameinbuff1 + .byte 0x6b + .endm + + .macro drawlvlupbox + .byte 0x6c + .endm + + .macro resetsentmonsvalue + .byte 0x6d + .endm + + .macro setatktoplayer0 + .byte 0x6e + .endm + + .macro makevisible bank + .byte 0x6f + .byte \bank + .endm + + .macro recordlastability bank + .byte 0x70 + .byte \bank + .endm + + .macro buffermovetolearn + .byte 0x71 + .endm + + .macro jumpifplayerran param0 + .byte 0x72 + .4byte \param0 + .endm + + .macro hpthresholds bank + .byte 0x73 + .byte \bank + .endm + + .macro hpthresholds2 bank + .byte 0x74 + .byte \bank + .endm + + .macro useitemonopponent + .byte 0x75 + .endm + + .macro various bank, param1 + .byte 0x76 + .byte \bank + .byte \param1 + .endm + + .macro setprotectlike + .byte 0x77 + .endm + + .macro faintifabilitynotdamp + .byte 0x78 + .endm + + .macro setatkhptozero + .byte 0x79 + .endm + + .macro jumpifnexttargetvalid param0 + .byte 0x7a + .4byte \param0 + .endm + + .macro tryhealhalfhealth param0, bank + .byte 0x7b + .4byte \param0 + .byte \bank + .endm + + .macro trymirrormove + .byte 0x7c + .endm + + .macro setrain + .byte 0x7d + .endm + + .macro setreflect + .byte 0x7e + .endm + + .macro setseeded + .byte 0x7f + .endm + + .macro manipulatedamage param0 + .byte 0x80 + .byte \param0 + .endm + + .macro trysetrest param0 + .byte 0x81 + .4byte \param0 + .endm + + .macro jumpifnotfirstturn param0 + .byte 0x82 + .4byte \param0 + .endm + + .macro nop + .byte 0x83 + .endm + + .macro jumpifcantmakeasleep param0 + .byte 0x84 + .4byte \param0 + .endm + + .macro stockpile + .byte 0x85 + .endm + + .macro stockpiletobasedamage param0 + .byte 0x86 + .4byte \param0 + .endm + + .macro stockpiletohpheal param0 + .byte 0x87 + .4byte \param0 + .endm + + .macro negativedamage + .byte 0x88 + .endm + + .macro statbuffchange param0, param1 + .byte 0x89 + .byte \param0 + .4byte \param1 + .endm + + .macro normalisebuffs + .byte 0x8a + .endm + + .macro setbide + .byte 0x8b + .endm + + .macro confuseifrepeatingattackends + .byte 0x8c + .endm + + .macro setmultihitcounter param0 + .byte 0x8d + .byte \param0 + .endm + + .macro initmultihitstring + .byte 0x8e + .endm + + .macro forcerandomswitch param0 + .byte 0x8f + .4byte \param0 + .endm + + .macro tryconversiontypechange param0 + .byte 0x90 + .4byte \param0 + .endm + + .macro givepaydaymoney + .byte 0x91 + .endm + + .macro setlightscreen + .byte 0x92 + .endm + + .macro tryKO param0 + .byte 0x93 + .4byte \param0 + .endm + + .macro damagetohalftargethp + .byte 0x94 + .endm + + .macro setsandstorm + .byte 0x95 + .endm + + .macro weatherdamage + .byte 0x96 + .endm + + .macro tryinfatuating param0 + .byte 0x97 + .4byte \param0 + .endm + + .macro updatestatusicon bank + .byte 0x98 + .byte \bank + .endm + + .macro setmist + .byte 0x99 + .endm + + .macro setfocusenergy + .byte 0x9a + .endm + + .macro transformdataexecution + .byte 0x9b + .endm + + .macro setsubstitute + .byte 0x9c + .endm + + .macro mimicattackcopy param0 + .byte 0x9d + .4byte \param0 + .endm + + .macro metronome + .byte 0x9e + .endm + + .macro dmgtolevel + .byte 0x9f + .endm + + .macro psywavedamageeffect + .byte 0xa0 + .endm + + .macro counterdamagecalculator param0 + .byte 0xa1 + .4byte \param0 + .endm + + .macro mirrorcoatdamagecalculator param0 + .byte 0xa2 + .4byte \param0 + .endm + + .macro disablelastusedattack param0 + .byte 0xa3 + .4byte \param0 + .endm + + .macro trysetencore param0 + .byte 0xa4 + .4byte \param0 + .endm + + .macro painsplitdmgcalc param0 + .byte 0xa5 + .4byte \param0 + .endm + + .macro settypetorandomresistance param0 + .byte 0xa6 + .4byte \param0 + .endm + + .macro setalwayshitflag + .byte 0xa7 + .endm + + .macro copymovepermanently param0 + .byte 0xa8 + .4byte \param0 + .endm + + .macro trychoosesleeptalkmove param0 + .byte 0xa9 + .4byte \param0 + .endm + + .macro setdestinybond + .byte 0xaa + .endm + + .macro trysetdestinybondtohappen + .byte 0xab + .endm + + .macro remaininghptopower + .byte 0xac + .endm + + .macro tryspiteppreduce param0 + .byte 0xad + .4byte \param0 + .endm + + .macro healpartystatus + .byte 0xae + .endm + + .macro cursetarget param0 + .byte 0xaf + .4byte \param0 + .endm + + .macro trysetspikes param0 + .byte 0xb0 + .4byte \param0 + .endm + + .macro setforesight + .byte 0xb1 + .endm + + .macro trysetperishsong param0 + .byte 0xb2 + .4byte \param0 + .endm + + .macro rolloutdamagecalculation + .byte 0xb3 + .endm + + .macro jumpifconfusedandstatmaxed stat, param1 + .byte 0xb4 + .byte \stat + .4byte \param1 + .endm + + .macro furycuttercalc + .byte 0xb5 + .endm + + .macro happinesstodamagecalculation + .byte 0xb6 + .endm + + .macro presentdamagecalculation + .byte 0xb7 + .endm + + .macro setsafeguard + .byte 0xb8 + .endm + + .macro magnitudedamagecalculation + .byte 0xb9 + .endm + + .macro jumpifnopursuitswitchdmg param0 + .byte 0xba + .4byte \param0 + .endm + + .macro setsunny + .byte 0xbb + .endm + + .macro maxattackhalvehp param0 + .byte 0xbc + .4byte \param0 + .endm + + .macro copyfoestats param0 + .byte 0xbd + .4byte \param0 + .endm + + .macro rapidspinfree + .byte 0xbe + .endm + + .macro setdefensecurlbit + .byte 0xbf + .endm + + .macro recoverbasedonsunlight param0 + .byte 0xc0 + .4byte \param0 + .endm + + .macro hiddenpowercalc + .byte 0xc1 + .endm + + .macro selectfirstvalidtarget + .byte 0xc2 + .endm + + .macro trysetfutureattack param0 + .byte 0xc3 + .4byte \param0 + .endm + + .macro trydobeatup param0, param1 + .byte 0xc4 + .4byte \param0 + .4byte \param1 + .endm + + .macro setsemiinvulnerablebit + .byte 0xc5 + .endm + + .macro clearsemiinvulnerablebit + .byte 0xc6 + .endm + + .macro setminimize + .byte 0xc7 + .endm + + .macro sethail + .byte 0xc8 + .endm + + .macro jumpifattackandspecialattackcannotfall param0 + .byte 0xc9 + .4byte \param0 + .endm + + .macro setforcedtarget + .byte 0xca + .endm + + .macro setcharge + .byte 0xcb + .endm + + .macro callterrainattack + .byte 0xcc + .endm + + .macro cureifburnedparalysedorpoisoned param0 + .byte 0xcd + .4byte \param0 + .endm + + .macro settorment param0 + .byte 0xce + .4byte \param0 + .endm + + .macro jumpifnodamage param0 + .byte 0xcf + .4byte \param0 + .endm + + .macro settaunt param0 + .byte 0xd0 + .4byte \param0 + .endm + + .macro trysethelpinghand param0 + .byte 0xd1 + .4byte \param0 + .endm + + .macro tryswapitems param0 + .byte 0xd2 + .4byte \param0 + .endm + + .macro trycopyability param0 + .byte 0xd3 + .4byte \param0 + .endm + + .macro trywish param0, param1 + .byte 0xd4 + .byte \param0 + .4byte \param1 + .endm + + .macro trysetroots param0 + .byte 0xd5 + .4byte \param0 + .endm + + .macro doubledamagedealtifdamaged + .byte 0xd6 + .endm + + .macro setyawn param0 + .byte 0xd7 + .4byte \param0 + .endm + + .macro setdamagetohealthdifference param0 + .byte 0xd8 + .4byte \param0 + .endm + + .macro scaledamagebyhealthratio + .byte 0xd9 + .endm + + .macro tryswapabilities param0 + .byte 0xda + .4byte \param0 + .endm + + .macro tryimprision param0 + .byte 0xdb + .4byte \param0 + .endm + + .macro trysetgrudge param0 + .byte 0xdc + .4byte \param0 + .endm + + .macro weightdamagecalculation + .byte 0xdd + .endm + + .macro asistattackselect param0 + .byte 0xde + .4byte \param0 + .endm + + .macro trysetmagiccoat param0 + .byte 0xdf + .4byte \param0 + .endm + + .macro trysetsnatch param0 + .byte 0xe0 + .4byte \param0 + .endm + + .macro trygetintimidatetarget param0 + .byte 0xe1 + .4byte \param0 + .endm + + .macro switchoutabilities bank + .byte 0xe2 + .byte \bank + .endm + + .macro jumpifhasnohp bank, param1 + .byte 0xe3 + .byte \bank + .4byte \param1 + .endm + + .macro getsecretpowereffect + .byte 0xe4 + .endm + + .macro pickup + .byte 0xe5 + .endm + + .macro docastformchangeanimation + .byte 0xe6 + .endm + + .macro trycastformdatachange + .byte 0xe7 + .endm + + .macro settypebasedhalvers param0 + .byte 0xe8 + .4byte \param0 + .endm + + .macro setweatherballtype + .byte 0xe9 + .endm + + .macro tryrecycleitem param0 + .byte 0xea + .4byte \param0 + .endm + + .macro settypetoterrain param0 + .byte 0xeb + .4byte \param0 + .endm + + .macro pursuitrelated param0 + .byte 0xec + .4byte \param0 + .endm + + .macro snatchsetbanks + .byte 0xed + .endm + + .macro removelightscreenreflect + .byte 0xee + .endm + + .macro handleballthrow + .byte 0xef + .endm + + .macro givecaughtmon + .byte 0xf0 + .endm + + .macro trysetcaughtmondexflags param0 + .byte 0xf1 + .4byte \param0 + .endm + + .macro displaydexinfo + .byte 0xf2 + .endm + + .macro trygivecaughtmonnick param0 + .byte 0xf3 + .4byte \param0 + .endm + + .macro subattackerhpbydmg + .byte 0xf4 + .endm + + .macro removeattackerstatus1 + .byte 0xf5 + .endm + + .macro finishaction + .byte 0xf6 + .endm + + .macro finishturn + .byte 0xf7 + .endm + + .macro trainerslideout param0 + .byte 0xf8 + .byte \param0 + .endm + +@ various command changed to more readable macros + .macro cancelmultiturnmoves bank + various \bank, VARIOUS_CANCEL_MULTI_TURN_MOVES + .endm + + .macro setmagiccoattarget bank + various \bank, VARIOUS_SET_MAGIC_COAT_TARGET + .endm + + .macro getifcantrunfrombattle bank + various \bank, VARIOUS_IS_RUNNING_IMPOSSIBLE + .endm + + .macro getmovetarget bank + various \bank, VARIOUS_GET_MOVE_TARGET + .endm + + .macro various4 bank + various \bank, 4 + .endm + + .macro resetintrimidatetracebits bank + various \bank, VARIOUS_RESET_INTIMIDATE_TRACE_BITS + .endm + + .macro updatechoicemoveonlvlup bank + various \bank, VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP + .endm + + .macro various7 bank + various \bank, 7 + .endm + + .macro various8 bank + various \bank, 8 + .endm + + .macro various9 bank + various \bank, 9 + .endm + + .macro various10 bank + various \bank, 10 + .endm + + .macro various11 bank + various \bank, 11 + .endm + + .macro various12 bank + various \bank, 12 + .endm + + .macro forfeityesnobox bank + various \bank, VARIOUS_EMIT_YESNOBOX + .endm + + .macro various14 bank + various \bank, 14 + .endm + + .macro various15 bank + various \bank, 15 + .endm + + .macro various16 bank + various \bank, 16 + .endm + + .macro various17 bank + various \bank, 17 + .endm + + .macro waitcry bank + various \bank, VARIOUS_WAIT_CRY + .endm + + .macro returnopponentmon1toball bank + various \bank, VARIOUS_RETURN_OPPONENT_MON1 + .endm + + .macro returnopponentmon2toball bank + various \bank, VARIOUS_RETURN_OPPONENT_MON2 + .endm + + .macro various21 bank + various \bank, 21 + .endm + + .macro various22 bank + various \bank, 22 + .endm + + .macro various23 bank + various \bank, 23 + .endm + + .macro various24 bank + various \bank, 24 + .endm + + .macro setoutcomeonteleport bank + various \bank, VARIOUS_SET_TELEPORT_OUTCOME + .endm + + .macro playtrainerdefeatbgm bank + various \bank, VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC + .endm + +@ helpful macros + .macro setstatchanger stat, stages, down + setbyte sSTATCHANGER \stat | \stages << 4 | \down << 7 + .endm + + .macro setmoveeffect effect + setbyte cEFFECT_CHOOSER \effect + .endm + + .macro chosenstatus1animation bank, status + chosenstatusanimation \bank 0x0 \status + .endm + + .macro chosenstatus2animation bank, status + chosenstatusanimation \bank 0x1 \status + .endm + + .macro sethword dst, value + setbyte \dst, \value & 0xFF + setbyte \dst + 1, (\value >> 8) & 0xFF + .endm + + .macro setword dst, value + setbyte \dst, \value & 0xFF + setbyte \dst + 1, (\value >> 8) & 0xFF + setbyte \dst + 2, (\value >> 16) & 0xFF + setbyte \dst + 3, (\value >> 24) & 0xFF + .endm + + .macro copybyte dst, src + copyarray \dst, \src, 0x1 + .endm + + .macro copyhword dst, src + copyarray \dst, \src, 0x2 + .endm + + .macro copyword dst, src + copyarray \dst, \src, 0x4 + .endm + + .macro jumpifbytenotequal byte1, byte2, jumpptr + jumpifarraynotequal \byte1, \byte2, 0x1, \jumpptr + .endm + + .macro jumpifbyteequal byte1, byte2, jumpptr + jumpifarrayequal \byte1, \byte2, 0x1, \jumpptr + .endm + + .macro jumpifmove move, jumpptr + jumpifhalfword EQUAL, gCurrentMove, \move, \jumpptr + .endm + + .macro jumpifnotmove move, jumpptr + jumpifhalfword NOT_EQUAL, gCurrentMove, \move, \jumpptr + .endm + + .macro jumpifstatus3 bank, status, jumpptr + jumpifstatus3condition \bank, \status, 0x0, \jumpptr + .endm + + .macro jumpifnostatus3 bank, status, jumpptr + jumpifstatus3condition \bank, \status, 0x1, \jumpptr + .endm + + .macro jumpifmovehadnoeffect jumpptr + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED, \jumpptr + .endm + + .macro jumpifbattletype flags, jumpptr + jumpifword COMMON_BITS, gBattleTypeFlags, \flags, \jumpptr + .endm + + .macro jumpifnotbattletype flags, jumpptr + jumpifword NO_COMMON_BITS, gBattleTypeFlags, \flags, \jumpptr + .endm diff --git a/asm/macros/event.inc b/asm/macros/event.inc index 69cdb38e5..a88db5f1f 100644 --- a/asm/macros/event.inc +++ b/asm/macros/event.inc @@ -663,11 +663,13 @@ .byte 0x5d .endm - .macro ontrainerbattleend + @ Goes to address after the trainerbattle command (called by the battle functions, see battle_setup.c) + .macro gotopostbattlescript .byte 0x5e .endm - .macro ontrainerbattleendgoto + @ Goes to address specified in the trainerbattle command (called by the battle functions, see battle_setup.c) + .macro gotobeatenscript .byte 0x5f .endm diff --git a/asm/macros/pokemon_data.inc b/asm/macros/pokemon_data.inc index 31c015334..ce8ef98ac 100644 --- a/asm/macros/pokemon_data.inc +++ b/asm/macros/pokemon_data.inc @@ -52,5 +52,5 @@ .byte \max_level .endif - .2byte SPECIES_\species + .2byte \species .endm diff --git a/asm/mail_data.s b/asm/mail_data.s deleted file mode 100755 index 70fc856d1..000000000 --- a/asm/mail_data.s +++ /dev/null @@ -1,589 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start ClearMailData -ClearMailData: @ 80D436C - push {r4,r5,lr} - movs r4, 0 - ldr r5, =gSaveBlock1Ptr -_080D4372: - lsls r1, r4, 3 - adds r1, r4 - lsls r1, 2 - ldr r0, =0x00002be0 - adds r1, r0 - ldr r0, [r5] - adds r0, r1 - bl ClearMailStruct - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _080D4372 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end ClearMailData - - thumb_func_start ClearMailStruct -ClearMailStruct: @ 80D439C - push {r4-r6,lr} - adds r3, r0, 0 - ldr r0, =0x0000ffff - adds r4, r0, 0 - adds r1, r3, 0 - movs r2, 0x8 -_080D43A8: - ldrh r0, [r1] - orrs r0, r4 - strh r0, [r1] - adds r1, 0x2 - subs r2, 0x1 - cmp r2, 0 - bge _080D43A8 - movs r2, 0 - adds r6, r3, 0 - adds r6, 0x1A - adds r4, r3, 0 - adds r4, 0x12 - movs r5, 0xFF -_080D43C2: - adds r1, r4, r2 - ldrb r0, [r1] - orrs r0, r5 - strb r0, [r1] - adds r2, 0x1 - cmp r2, 0x7 - ble _080D43C2 - adds r1, r6, 0 - movs r2, 0 - adds r0, r1, 0x3 -_080D43D6: - strb r2, [r0] - subs r0, 0x1 - cmp r0, r1 - bge _080D43D6 - movs r1, 0 - movs r0, 0x1 - strh r0, [r3, 0x1E] - strh r1, [r3, 0x20] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end ClearMailStruct - - thumb_func_start MonHasMail -MonHasMail: @ 80D43F0 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0xC - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl itemid_is_mail - lsls r0, 24 - cmp r0, 0 - beq _080D4418 - adds r0, r4, 0 - movs r1, 0x40 - bl GetMonData - cmp r0, 0xFF - beq _080D4418 - movs r0, 0x1 - b _080D441A -_080D4418: - movs r0, 0 -_080D441A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end MonHasMail - - thumb_func_start sub_80D4420 -sub_80D4420: @ 80D4420 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - mov r8, r0 - lsls r1, 16 - lsrs r0, r1, 16 - str r0, [sp, 0x8] - mov r0, sp - movs r2, 0 - ldrb r3, [r0, 0x8] - strb r3, [r0] - lsrs r1, 24 - strb r1, [r0, 0x1] - add r3, sp, 0x4 - strb r2, [r3] - ldr r4, =gSaveBlock1Ptr - mov r10, r4 - mov r9, r3 - adds r4, r3, 0 -_080D444C: - mov r1, r10 - ldr r0, [r1] - ldrb r2, [r4] - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - adds r0, r1 - movs r1, 0xB0 - lsls r1, 6 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _080D4468 - b _080D45A8 -_080D4468: - movs r4, 0 - ldr r2, =gSaveBlock2Ptr - mov r12, r2 - ldr r7, =gSaveBlock1Ptr - add r5, sp, 0x4 - ldr r3, =0x0000ffff - adds r6, r3, 0 -_080D4476: - ldr r2, [r7] - lsls r3, r4, 1 - ldrb r1, [r5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r3, r0 - ldr r0, =0x00002be0 - adds r2, r0 - adds r2, r3 - ldrh r0, [r2] - orrs r0, r6 - strh r0, [r2] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x8 - bls _080D4476 - movs r4, 0 - ldr r5, =gSaveBlock1Ptr - add r3, sp, 0x4 -_080D44A0: - ldr r2, [r5] - ldrb r1, [r3] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4, r0 - ldr r1, =0x00002bf2 - adds r2, r1 - adds r2, r0 - mov r1, r12 - ldr r0, [r1] - adds r0, r4 - ldrb r0, [r0] - strb r0, [r2] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x6 - bls _080D44A0 - mov r3, r10 - ldr r2, [r3] - mov r0, r9 - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4, r0 - ldr r1, =0x00002bf2 - adds r2, r1 - adds r2, r0 - movs r0, 0xFF - strb r0, [r2] - mov r2, r9 - ldrb r1, [r2] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, [r3] - adds r0, r1 - ldr r3, =0x00002bf2 - adds r0, r3 - movs r1, 0 - bl sub_81DB4DC - movs r4, 0 - ldr r6, =gSaveBlock1Ptr - add r3, sp, 0x4 - ldr r5, =gSaveBlock2Ptr -_080D4500: - ldr r2, [r6] - ldrb r1, [r3] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4, r0 - ldr r1, =0x00002bfa - adds r2, r1 - adds r2, r0 - ldr r0, [r5] - adds r0, 0xA - adds r0, r4 - ldrb r0, [r0] - strb r0, [r2] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080D4500 - mov r0, r8 - movs r1, 0xB - bl GetBoxMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - mov r0, r8 - movs r1, 0 - bl GetBoxMonData - adds r1, r0, 0 - adds r0, r4, 0 - bl sub_80D45C8 - mov r2, r10 - ldr r3, [r2] - mov r4, r9 - ldrb r2, [r4] - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - adds r1, r3, r1 - ldr r2, =0x00002bfe - adds r1, r2 - strh r0, [r1] - ldrb r1, [r4] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r3, r0 - movs r4, 0xB0 - lsls r4, 6 - adds r3, r4 - mov r0, sp - ldrh r0, [r0, 0x8] - strh r0, [r3] - mov r0, r8 - movs r1, 0x40 - mov r2, r9 - bl SetMonData - mov r0, r8 - movs r1, 0xC - mov r2, sp - bl SetMonData - mov r1, r9 - ldrb r0, [r1] - b _080D45B6 - .pool -_080D45A8: - adds r0, r2, 0x1 - strb r0, [r3] - ldrb r0, [r4] - cmp r0, 0x5 - bhi _080D45B4 - b _080D444C -_080D45B4: - movs r0, 0xFF -_080D45B6: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80D4420 - - thumb_func_start sub_80D45C8 -sub_80D45C8: @ 80D45C8 - push {lr} - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xC9 - bne _080D45E0 - adds r0, r1, 0 - bl mon_icon_personality_to_unown_id - lsls r0, 16 - ldr r1, =0x75300000 - adds r0, r1 - lsrs r0, 16 -_080D45E0: - pop {r1} - bx r1 - .pool - thumb_func_end sub_80D45C8 - - thumb_func_start sub_80D45E8 -sub_80D45E8: @ 80D45E8 - push {lr} - lsls r0, 16 - lsrs r3, r0, 16 - ldr r0, =0xffff8ad0 - adds r2, r3, r0 - lsls r0, r2, 16 - lsrs r0, 16 - cmp r0, 0x1B - bhi _080D4604 - movs r0, 0xC9 - strh r2, [r1] - b _080D4606 - .pool -_080D4604: - adds r0, r3, 0 -_080D4606: - pop {r1} - bx r1 - thumb_func_end sub_80D45E8 - - thumb_func_start GiveMailToMon2 -GiveMailToMon2: @ 80D460C - push {r4-r7,lr} - sub sp, 0x8 - adds r6, r0, 0 - adds r7, r1, 0 - ldrh r5, [r7, 0x20] - adds r1, r5, 0 - bl sub_80D4420 - add r4, sp, 0x4 - strb r0, [r4] - ldrb r2, [r4] - cmp r2, 0xFF - beq _080D4670 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - ldr r0, =0x00002be0 - adds r1, r0 - adds r0, r7, 0 - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - adds r0, r6, 0 - movs r1, 0x40 - adds r2, r4, 0 - bl SetMonData - mov r0, sp - strb r5, [r0] - mov r1, sp - lsrs r0, r5, 8 - strb r0, [r1, 0x1] - adds r0, r6, 0 - movs r1, 0xC - mov r2, sp - bl SetMonData - ldrb r0, [r4] - b _080D4672 - .pool -_080D4670: - movs r0, 0xFF -_080D4672: - add sp, 0x8 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end GiveMailToMon2 - - thumb_func_start sub_80D467C -sub_80D467C: @ 80D467C - movs r0, 0 - bx lr - thumb_func_end sub_80D467C - - thumb_func_start TakeMailFromMon -TakeMailFromMon: @ 80D4680 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - bl MonHasMail - lsls r0, 24 - cmp r0, 0 - beq _080D46D2 - adds r0, r4, 0 - movs r1, 0x40 - bl GetMonData - add r2, sp, 0x4 - strb r0, [r2] - ldr r0, =gSaveBlock1Ptr - ldr r3, [r0] - ldrb r1, [r2] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r3, r0 - movs r0, 0xB0 - lsls r0, 6 - adds r3, r0 - movs r1, 0 - movs r0, 0 - strh r0, [r3] - movs r0, 0xFF - strb r0, [r2] - mov r0, sp - strb r1, [r0] - strb r1, [r0, 0x1] - adds r0, r4, 0 - movs r1, 0x40 - bl SetMonData - adds r0, r4, 0 - movs r1, 0xC - mov r2, sp - bl SetMonData -_080D46D2: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end TakeMailFromMon - - thumb_func_start sub_80D46E0 -sub_80D46E0: @ 80D46E0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gSaveBlock1Ptr - ldr r2, [r1] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r2, r1 - movs r0, 0xB0 - lsls r0, 6 - adds r2, r0 - movs r0, 0 - strh r0, [r2] - bx lr - .pool - thumb_func_end sub_80D46E0 - - thumb_func_start sub_80D4700 -sub_80D4700: @ 80D4700 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0xC - adds r5, r0, 0 - mov r0, sp - movs r1, 0 - strb r1, [r0] - strb r1, [r0, 0x1] - add r1, sp, 0x4 - movs r0, 0xFF - strb r0, [r1] - movs r7, 0x6 - mov r9, r1 - ldr r0, =gSaveBlock1Ptr - mov r8, r0 - ldr r3, =0x00002be0 -_080D4724: - mov r1, r8 - ldr r0, [r1] - lsls r1, r7, 3 - adds r1, r7 - lsls r1, 2 - adds r4, r0, r1 - movs r2, 0xB0 - lsls r2, 6 - adds r0, r4, r2 - ldrh r6, [r0] - cmp r6, 0 - bne _080D47A0 - adds r4, r3 - adds r0, r5, 0 - movs r1, 0x40 - str r3, [sp, 0x8] - bl GetMonData - mov r1, r8 - ldr r2, [r1] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldr r3, [sp, 0x8] - adds r1, r3 - ldm r1!, {r0,r2,r3} - stm r4!, {r0,r2,r3} - ldm r1!, {r0,r2,r3} - stm r4!, {r0,r2,r3} - ldm r1!, {r0,r2,r3} - stm r4!, {r0,r2,r3} - adds r0, r5, 0 - movs r1, 0x40 - bl GetMonData - mov r1, r8 - ldr r2, [r1] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r2, r1 - movs r3, 0xB0 - lsls r3, 6 - adds r2, r3 - strh r6, [r2] - adds r0, r5, 0 - movs r1, 0x40 - mov r2, r9 - bl SetMonData - adds r0, r5, 0 - movs r1, 0xC - mov r2, sp - bl SetMonData - adds r0, r7, 0 - b _080D47AC - .pool -_080D47A0: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0xF - bls _080D4724 - movs r0, 0xFF -_080D47AC: - add sp, 0xC - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80D4700 - - thumb_func_start itemid_is_mail -itemid_is_mail: @ 80D47BC - push {lr} - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x84 - bgt _080D47CE - cmp r0, 0x79 - blt _080D47CE - movs r0, 0x1 - b _080D47D0 -_080D47CE: - movs r0, 0 -_080D47D0: - pop {r1} - bx r1 - thumb_func_end itemid_is_mail - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/main_menu.s b/asm/main_menu.s index 6194f0487..52afc783e 100644 --- a/asm/main_menu.s +++ b/asm/main_menu.s @@ -2215,7 +2215,7 @@ sub_8030A70: @ 8030A70 str r2, [sp, 0x10] movs r2, 0x70 movs r3, 0x3A - bl sub_8076438 + bl CreatePokeballSpriteToReleaseMon lsls r0, r4, 2 adds r0, r4 lsls r0, 3 @@ -3025,7 +3025,7 @@ task_new_game_prof_birch_speech_part2_4: @ 8031188 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 diff --git a/asm/map_obj_8097404.s b/asm/map_obj_8097404.s index 96ffc2254..4a6ae9945 100644 --- a/asm/map_obj_8097404.s +++ b/asm/map_obj_8097404.s @@ -82,9 +82,9 @@ _0809748E: bx r1 thumb_func_end sub_8097404 - thumb_func_start player_bitmagic -@ void player_bitmagic() -player_bitmagic: @ 8097494 + thumb_func_start FreezeMapObjects +@ void FreezeMapObjects() +FreezeMapObjects: @ 8097494 push {r4,r5,lr} movs r4, 0 ldr r5, =gMapObjects @@ -113,7 +113,7 @@ _080974B8: pop {r0} bx r0 .pool - thumb_func_end player_bitmagic + thumb_func_end FreezeMapObjects thumb_func_start sub_80974D0 sub_80974D0: @ 80974D0 diff --git a/asm/map_obj_lock.s b/asm/map_obj_lock.s index 2270051c2..f7a33e508 100644 --- a/asm/map_obj_lock.s +++ b/asm/map_obj_lock.s @@ -62,7 +62,7 @@ _080983E2: thumb_func_start ScriptFreezeMapObjects ScriptFreezeMapObjects: @ 80983E8 push {lr} - bl player_bitmagic + bl FreezeMapObjects ldr r0, =sub_80983A4 movs r1, 0x50 bl CreateTask @@ -348,7 +348,7 @@ sub_8098630: @ 8098630 bl sub_80B47E0 lsls r0, 24 lsrs r4, r0, 24 - ldr r0, =gUnknown_030060A8 + ldr r0, =gNoOfApproachingTrainers ldrb r0, [r0] cmp r0, 0x2 bne _080986E0 diff --git a/asm/menu.s b/asm/menu.s index 71ff9218c..64644504e 100755 --- a/asm/menu.s +++ b/asm/menu.s @@ -22,7 +22,7 @@ AddTextPrinterWithCallbackForMessage: @ 8197A9C ands r1, r2 orrs r1, r0 strb r1, [r3] - bl sav2_get_text_speed + bl GetPlayerTextSpeed adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 @@ -2266,8 +2266,8 @@ sub_8198C34: @ 8198C34 bx r0 thumb_func_end sub_8198C34 - thumb_func_start sub_8198C58 -sub_8198C58: @ 8198C58 + thumb_func_start ProcessMenuInputNoWrap_ +ProcessMenuInputNoWrap_: @ 8198C58 push {r4,lr} bl ProcessMenuInputNoWrapAround lsls r0, 24 @@ -2282,7 +2282,7 @@ _08198C6E: pop {r4} pop {r1} bx r1 - thumb_func_end sub_8198C58 + thumb_func_end ProcessMenuInputNoWrap_ thumb_func_start sub_8198C78 sub_8198C78: @ 8198C78 diff --git a/asm/menu_helpers.s b/asm/menu_helpers.s index 423f653d9..7419bd56f 100644 --- a/asm/menu_helpers.s +++ b/asm/menu_helpers.s @@ -277,7 +277,7 @@ Task_CallYesOrNoCallback: @ 8121FDC push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -512,7 +512,7 @@ itemid_80BF6D8_mail_related: @ 812217C bne _081221A4 _08122192: adds r0, r4, 0 - bl itemid_is_mail + bl ItemIsMail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 diff --git a/asm/mystery_event_menu.s b/asm/mystery_event_menu.s index df8e443a1..f15346b81 100644 --- a/asm/mystery_event_menu.s +++ b/asm/mystery_event_menu.s @@ -232,7 +232,7 @@ _08178B56: ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] - ldr r1, =gUnknown_020229C6 + ldr r1, =gLinkType ldr r2, =0x00005501 adds r0, r2, 0 strh r0, [r1] diff --git a/asm/mystery_event_script.s b/asm/mystery_event_script.s index 62177f1ea..a7cee8846 100644 --- a/asm/mystery_event_script.s +++ b/asm/mystery_event_script.s @@ -721,7 +721,7 @@ _08153D86: bl GetMonData lsls r0, 16 lsrs r0, 16 - bl itemid_is_mail + bl ItemIsMail lsls r0, 24 cmp r0, 0 beq _08153DA4 diff --git a/asm/naming_screen.s b/asm/naming_screen.s index 22d7b260e..cded48783 100644 --- a/asm/naming_screen.s +++ b/asm/naming_screen.s @@ -904,7 +904,7 @@ _080E3586: movs r1, 0x1 orrs r0, r1 strb r0, [r2] - bl sav2_get_text_speed + bl GetPlayerTextSpeed adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 diff --git a/asm/new_menu_helpers.s b/asm/new_menu_helpers.s index d79f7df32..25f7fe605 100755 --- a/asm/new_menu_helpers.s +++ b/asm/new_menu_helpers.s @@ -185,7 +185,7 @@ AddTextPrinterForMessage: @ 81972C4 ands r1, r2 orrs r1, r0 strb r1, [r3] - bl sav2_get_text_speed + bl GetPlayerTextSpeed adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 @@ -222,7 +222,7 @@ AddTextPrinterForMessage_2: @ 8197310 ands r1, r2 orrs r1, r0 strb r1, [r3] - bl sav2_get_text_speed + bl GetPlayerTextSpeed adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 @@ -945,7 +945,7 @@ DisplayItemMessageOnField: @ 81978EC lsls r4, 24 lsrs r4, 24 bl sub_81973A4 - bl sav2_get_text_speed + bl GetPlayerTextSpeed lsls r0, 24 lsrs r0, 24 movs r2, 0x80 @@ -1021,8 +1021,8 @@ _0819798A: bx r1 thumb_func_end sub_8197964 - thumb_func_start sav2_get_text_speed -sav2_get_text_speed: @ 8197990 + thumb_func_start GetPlayerTextSpeed +GetPlayerTextSpeed: @ 8197990 push {lr} ldr r0, =gSaveBlock2Ptr ldr r2, [r0] @@ -1045,7 +1045,7 @@ _081979AC: pop {r1} bx r1 .pool - thumb_func_end sav2_get_text_speed + thumb_func_end GetPlayerTextSpeed thumb_func_start sub_81979C4 sub_81979C4: @ 81979C4 diff --git a/asm/rom4.s b/asm/overworld.s index 8b7dec1ae..7e91b8054 100644 --- a/asm/rom4.s +++ b/asm/overworld.s @@ -238,8 +238,8 @@ _08084854: .pool thumb_func_end sav12_xor_set - thumb_func_start ApplyNewEncyprtionKeyToGameStats -ApplyNewEncyprtionKeyToGameStats: @ 8084864 + thumb_func_start ApplyNewEncryptionKeyToGameStats +ApplyNewEncryptionKeyToGameStats: @ 8084864 push {r4-r6,lr} adds r5, r0, 0 movs r4, 0 @@ -251,7 +251,7 @@ _0808486C: ldr r0, [r6] adds r0, r1 adds r1, r5, 0 - bl ApplyNewEncyprtionKeyToWord + bl ApplyNewEncryptionKeyToWord adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 @@ -261,7 +261,7 @@ _0808486C: pop {r0} bx r0 .pool - thumb_func_end ApplyNewEncyprtionKeyToGameStats + thumb_func_end ApplyNewEncryptionKeyToGameStats thumb_func_start CopyFieldObjectTemplatesToSav1 @ void CopyFieldObjectTemplatesToSav1() @@ -1381,12 +1381,12 @@ _080850C8: bl prev_quest_postbuffer_cursor_backup_reset adds r0, r6, 0 adds r1, r5, 0 - bl sub_80B21B4 + bl TryUpdateRandomTrainerRematches bl DoTimeBasedEvents bl sub_80AEDBC bl sub_8085B2C bl update_sav1_flash_used_on_map - bl sav1_reset_battle_music_maybe + bl Overworld_ClearSavedMusic bl mapheader_run_script_with_tag_x3 bl not_trainer_hill_battle_pyramid ldr r0, [r4] @@ -1478,7 +1478,7 @@ _080851A2: asrs r1, 24 lsls r1, 16 lsrs r1, 16 - bl sub_80B21B4 + bl TryUpdateRandomTrainerRematches cmp r7, 0x1 beq _080851EE bl DoTimeBasedEvents @@ -1491,7 +1491,7 @@ _080851EE: bl FlagClear _08085200: bl update_sav1_flash_used_on_map - bl sav1_reset_battle_music_maybe + bl Overworld_ClearSavedMusic bl mapheader_run_script_with_tag_x3 bl UpdateLocationHistoryForRoamer bl RoamerMoveToOtherLocationSet @@ -1880,15 +1880,15 @@ _080854FE: .pool thumb_func_end Overworld_SetFlashLevel - thumb_func_start sav1_get_flash_used_on_map -sav1_get_flash_used_on_map: @ 8085514 + thumb_func_start Overworld_GetFlashLevel +Overworld_GetFlashLevel: @ 8085514 ldr r0, =gSaveBlock1Ptr ldr r0, [r0] adds r0, 0x30 ldrb r0, [r0] bx lr .pool - thumb_func_end sav1_get_flash_used_on_map + thumb_func_end Overworld_GetFlashLevel thumb_func_start sub_8085524 sub_8085524: @ 8085524 @@ -2133,7 +2133,7 @@ sav1_map_get_music: @ 80856D4 lsls r0, 5 cmp r1, r0 bne _080856FC - bl sav1_get_weather_probably + bl GetSav1Weather lsls r0, 24 lsrs r0, 24 cmp r0, 0x8 @@ -2272,15 +2272,15 @@ Overworld_SetSavedMusic: @ 80857F4 .pool thumb_func_end Overworld_SetSavedMusic - thumb_func_start sav1_reset_battle_music_maybe -sav1_reset_battle_music_maybe: @ 8085800 + thumb_func_start Overworld_ClearSavedMusic +Overworld_ClearSavedMusic: @ 8085800 ldr r0, =gSaveBlock1Ptr ldr r1, [r0] movs r0, 0 strh r0, [r1, 0x2C] bx lr .pool - thumb_func_end sav1_reset_battle_music_maybe + thumb_func_end Overworld_ClearSavedMusic thumb_func_start sub_8085810 sub_8085810: @ 8085810 @@ -3192,8 +3192,8 @@ CB2_NewGame: @ 8085EF8 .pool thumb_func_end CB2_NewGame - thumb_func_start c2_whiteout -c2_whiteout: @ 8085F58 + thumb_func_start CB2_WhiteOut +CB2_WhiteOut: @ 8085F58 push {lr} sub sp, 0x4 ldr r1, =gMain @@ -3232,7 +3232,7 @@ _08085FB0: pop {r0} bx r0 .pool - thumb_func_end c2_whiteout + thumb_func_end CB2_WhiteOut thumb_func_start c2_load_new_map c2_load_new_map: @ 8085FCC @@ -3661,7 +3661,7 @@ sub_80863B0: @ 80863B0 b _080863F0 .pool _080863D4: - bl sav1_get_flash_used_on_map + bl Overworld_GetFlashLevel lsls r0, 24 lsrs r0, 24 cmp r0, 0 diff --git a/asm/party_menu.s b/asm/party_menu.s index 018ee7b84..0ee74ea95 100755 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -2554,7 +2554,7 @@ sub_81B1708: @ 81B1708 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -3402,14 +3402,14 @@ sub_81B1DB8: @ 81B1DB8 lsrs r4, r5, 16 adds r7, r4, 0 adds r0, r4, 0 - bl itemid_is_mail + bl ItemIsMail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _081B1DE2 adds r0, r6, 0 adds r1, r4, 0 - bl sub_80D4420 + bl GiveMailToMon lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF @@ -4010,7 +4010,7 @@ sub_81B227C: @ 81B227C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -5992,7 +5992,7 @@ sub_81B3300: @ 81B3300 movs r1, 0x1 orrs r0, r1 strb r0, [r2] - bl sav2_get_text_speed + bl GetPlayerTextSpeed adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 @@ -6216,7 +6216,7 @@ _081B34D2: bl GetMonData lsls r0, 16 lsrs r0, 16 - bl itemid_is_mail + bl ItemIsMail lsls r0, 24 cmp r0, 0 beq _081B3508 @@ -7791,7 +7791,7 @@ _081B425A: .pool _081B4278: ldrh r0, [r6] - bl itemid_is_mail + bl ItemIsMail lsls r0, 24 cmp r0, 0 beq _081B42A4 @@ -7952,7 +7952,7 @@ sub_81B43DC: @ 81B43DC push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -7999,7 +7999,7 @@ _081B4402: .pool _081B4458: ldrh r0, [r5] - bl itemid_is_mail + bl ItemIsMail lsls r0, 24 cmp r0, 0 beq _081B4498 @@ -8485,7 +8485,7 @@ sub_81B48DC: @ 81B48DC muls r1, r0 ldr r0, =gPlayerParty adds r4, r1, r0 - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -8681,7 +8681,7 @@ sub_81B4A98: @ 81B4A98 adds r0, r1 ldr r1, =sub_81B4AE0 movs r2, 0x1 - bl sub_8121478 + bl ReadMail pop {r0} bx r0 .pool @@ -8777,7 +8777,7 @@ sub_81B4BA0: @ 81B4BA0 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -8801,7 +8801,7 @@ _081B4BC6: muls r0, r1 ldr r1, =gPlayerParty adds r0, r1 - bl sub_80D4700 + bl TakeMailFromMon2 lsls r0, 24 lsrs r0, 24 cmp r0, 0xFF @@ -8883,7 +8883,7 @@ sub_81B4C94: @ 81B4C94 push {r7} lsls r0, 24 lsrs r5, r0, 24 - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -9691,7 +9691,7 @@ sub_81B5430: @ 81B5430 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -9985,7 +9985,7 @@ sub_81B56D8: @ 81B56D8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -10735,7 +10735,7 @@ sub_81B5CB0: @ 81B5CB0 b _081B5D24 .pool _081B5CD8: - bl itemid_is_mail + bl ItemIsMail lsls r0, 24 cmp r0, 0 beq _081B5CFC @@ -10821,7 +10821,7 @@ _081B5D68: adds r0, r7, r5 ldrb r4, [r0] adds r0, r1, 0 - bl itemid_is_mail + bl ItemIsMail adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -10853,7 +10853,7 @@ _081B5DAC: adds r0, r5, r7 ldrb r4, [r0, 0x6] adds r0, r1, 0 - bl itemid_is_mail + bl ItemIsMail adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -12970,7 +12970,7 @@ sub_81B7028: @ 81B7028 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -13272,7 +13272,7 @@ sub_81B72C8: @ 81B72C8 muls r1, r0 ldr r0, =gPlayerParty adds r4, r1, r0 - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r5, r0, 24 cmp r5, 0 @@ -14728,7 +14728,7 @@ sub_81B7FAC: @ 81B7FAC .pool _081B7FF8: ldrh r0, [r5] - bl itemid_is_mail + bl ItemIsMail lsls r0, 24 cmp r0, 0 beq _081B800C @@ -14770,7 +14770,7 @@ sub_81B8044: @ 81B8044 lsrs r4, r0, 24 ldr r5, =gUnknown_0203CEC8 ldrh r0, [r5, 0xC] - bl itemid_is_mail + bl ItemIsMail lsls r0, 24 cmp r0, 0 beq _081B807C @@ -15054,7 +15054,7 @@ sub_81B82D4: @ 81B82D4 push {r4-r7,lr} lsls r0, 24 lsrs r5, r0, 24 - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -15093,7 +15093,7 @@ _081B82FA: .pool _081B8338: adds r0, r4, 0 - bl itemid_is_mail + bl ItemIsMail lsls r0, 24 cmp r0, 0 beq _081B835C diff --git a/asm/player_pc.s b/asm/player_pc.s index 2287d4123..47cea14f5 100644 --- a/asm/player_pc.s +++ b/asm/player_pc.s @@ -1263,7 +1263,7 @@ sub_816B8A4: @ 816B8A4 adds r0, r1 ldr r1, =sub_816B900 movs r2, 0x1 - bl sub_8121478 + bl ReadMail adds r0, r4, 0 bl DestroyTask _0816B8E6: @@ -1378,7 +1378,7 @@ sub_816B9D8: @ 816B9D8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r0, 24 movs r1, 0x1 diff --git a/asm/pokeball.s b/asm/pokeball.s deleted file mode 100755 index b4fc36d97..000000000 --- a/asm/pokeball.s +++ /dev/null @@ -1,2861 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80753E8 -sub_80753E8: @ 80753E8 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - ldr r1, =gDoingBattleAnim - movs r0, 0x1 - strb r0, [r1] - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r6, =gActiveBank - ldrb r1, [r6] - ldr r2, [r0, 0x4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0] - ldr r0, =sub_8075450 - movs r1, 0x5 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0xA] - strh r5, [r1, 0xC] - ldrb r0, [r6] - strh r0, [r1, 0xE] - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80753E8 - - thumb_func_start sub_8075450 -sub_8075450: @ 8075450 - 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 r10, r0 - movs r0, 0 - str r0, [sp] - ldr r1, =gTasks - mov r2, r10 - lsls r0, r2, 2 - add r0, r10 - lsls r0, 3 - adds r1, r0, r1 - ldrh r2, [r1, 0x8] - movs r3, 0x8 - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _08075488 - adds r0, r2, 0x1 - strh r0, [r1, 0x8] - b _08075602 - .pool -_08075488: - ldrh r0, [r1, 0xC] - mov r8, r0 - ldrb r5, [r1, 0xE] - adds r0, r5, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080754B4 - ldr r1, =gBattlePartyID - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - b _080754C2 - .pool -_080754B4: - ldr r1, =gBattlePartyID - lsls r0, r5, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty -_080754C2: - adds r0, r1 - movs r1, 0x26 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - bl ball_number_to_ball_processing_index - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_8076A78 - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 3 - ldr r1, =gUnknown_0832C588 - adds r0, r1 - movs r1, 0x20 - movs r2, 0x50 - movs r3, 0x1D - bl CreateSprite - lsls r0, 24 - lsrs r7, r0, 24 - ldr r2, =gSprites - mov r9, r2 - lsls r0, r7, 4 - adds r0, r7 - lsls r6, r0, 2 - adds r4, r6, r2 - movs r0, 0x80 - strh r0, [r4, 0x2E] - movs r3, 0 - strh r3, [r4, 0x30] - mov r0, r8 - strh r0, [r4, 0x3C] - mov r2, r8 - cmp r2, 0xFE - beq _08075548 - cmp r2, 0xFF - bne _08075584 - ldr r0, =gBankTarget - strb r5, [r0] - movs r0, 0x18 - strh r0, [r4, 0x20] - movs r0, 0x44 - strh r0, [r4, 0x22] - mov r0, r9 - adds r0, 0x1C - adds r0, r6, r0 - ldr r1, =sub_80761B4 - str r1, [r0] - b _08075592 - .pool -_08075548: - adds r0, r5, 0 - movs r1, 0 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x20] - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x18 - strh r0, [r4, 0x22] - ldr r0, =gBankTarget - strb r5, [r0] - movs r3, 0 - strh r3, [r4, 0x2E] - mov r0, r9 - adds r0, 0x1C - adds r0, r6, r0 - ldr r1, =sub_8076398 - str r1, [r0] - b _08075592 - .pool -_08075584: - movs r0, 0x1 - bl GetBankByIdentity - ldr r1, =gBankTarget - strb r0, [r1] - movs r0, 0x1 - str r0, [sp] -_08075592: - ldr r0, =gSprites - lsls r1, r7, 4 - adds r1, r7 - lsls r1, 2 - adds r4, r1, r0 - ldr r5, =gBankTarget - ldrb r0, [r5] - strh r0, [r4, 0x3A] - ldr r2, [sp] - cmp r2, 0 - bne _080755B8 - mov r0, r10 - bl DestroyTask - b _08075602 - .pool -_080755B8: - movs r0, 0x22 - strh r0, [r4, 0x2E] - ldrb r0, [r5] - movs r1, 0 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrb r0, [r5] - movs r1, 0x1 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x10 - strh r0, [r4, 0x36] - ldr r0, =0x0000ffd8 - strh r0, [r4, 0x38] - adds r0, r4, 0 - bl sub_80A68D4 - mov r3, r10 - strh r3, [r4, 0x6] - ldr r1, =gTasks - mov r2, r10 - lsls r0, r2, 2 - add r0, r10 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r5] - strh r1, [r0, 0x10] - ldr r1, =TaskDummy - str r1, [r0] - movs r0, 0x3D - bl PlaySE -_08075602: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8075450 - - thumb_func_start objc_0804ABD4 -objc_0804ABD4: @ 8075620 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r7, r0, 0 - bl sub_80A6900 - lsls r0, 24 - cmp r0, 0 - beq _080756C0 - ldrb r6, [r7, 0x6] - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - ldrb r5, [r0, 0x10] - ldrb r0, [r0, 0xC] - mov r8, r0 - adds r0, r7, 0 - movs r1, 0x1 - bl StartSpriteAnim - adds r2, r7, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r7, 0x24] - ldrh r1, [r7, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r7, 0x20] - ldrh r0, [r7, 0x26] - ldrh r2, [r7, 0x22] - adds r0, r2 - strh r0, [r7, 0x22] - strh r1, [r7, 0x24] - strh r1, [r7, 0x26] - strh r1, [r7, 0x38] - adds r0, r5, 0 - bl sub_8076B14 - lsls r0, 16 - lsrs r0, 16 - bl ball_number_to_ball_processing_index - adds r4, r0, 0 - ldrh r0, [r7, 0x20] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r7, 0x22] - subs r1, 0x5 - lsls r1, 24 - lsrs r1, 24 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp] - movs r2, 0x1 - movs r3, 0x1C - bl sub_8171D98 - movs r0, 0 - adds r1, r5, 0 - movs r2, 0xE - adds r3, r4, 0 - bl sub_81729E8 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r7, 0x2E] - strh r5, [r7, 0x3A] - mov r0, r8 - strh r0, [r7, 0x3C] - adds r0, r6, 0 - bl DestroyTask - ldr r0, =sub_80756D4 - str r0, [r7, 0x1C] -_080756C0: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end objc_0804ABD4 - - thumb_func_start sub_80756D4 -sub_80756D4: @ 80756D4 - ldr r1, =sub_80756E0 - str r1, [r0, 0x1C] - bx lr - .pool - thumb_func_end sub_80756D4 - - thumb_func_start sub_80756E0 -sub_80756E0: @ 80756E0 - push {r4-r7,lr} - adds r6, r0, 0 - ldrh r0, [r6, 0x38] - adds r0, 0x1 - movs r7, 0 - strh r0, [r6, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bne _0807573A - strh r7, [r6, 0x38] - ldr r0, =sub_807574C - str r0, [r6, 0x1C] - ldr r5, =gBankSpriteIds - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gSprites - adds r0, r4 - movs r1, 0x2 - bl StartSpriteAffineAnim - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl AnimateSprite - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r7, [r0, 0x30] -_0807573A: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80756E0 - - thumb_func_start sub_807574C -sub_807574C: @ 807574C - push {r4-r6,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - bne _08075764 - movs r0, 0x3C - bl PlaySE -_08075764: - ldr r6, =gSprites - ldr r5, =gBankSpriteIds - movs r1, 0x3A - ldrsh r0, [r4, r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r6 - adds r0, r1, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bge _080757BC - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAnim - movs r2, 0x3A - ldrsh r0, [r4, r2] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - adds r0, 0x3E - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - movs r0, 0 - strh r0, [r4, 0x38] - ldr r0, =sub_80757E4 - str r0, [r4, 0x1C] - b _080757DC - .pool -_080757BC: - ldrh r0, [r1, 0x30] - adds r0, 0x60 - strh r0, [r1, 0x30] - movs r1, 0x3A - ldrsh r0, [r4, r1] - adds r0, r5 - ldrb r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - movs r2, 0x30 - ldrsh r0, [r1, r2] - negs r0, r0 - asrs r0, 8 - strh r0, [r1, 0x26] -_080757DC: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_807574C - - thumb_func_start sub_80757E4 -sub_80757E4: @ 80757E4 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0807582C - ldrh r0, [r4, 0x38] - adds r0, 0x1 - movs r1, 0 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _0807582C - strh r1, [r4, 0x34] - movs r0, 0x20 - strh r0, [r4, 0x36] - strh r1, [r4, 0x38] - movs r0, 0 - movs r1, 0x20 - bl Cos - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - movs r0, 0x36 - ldrsh r1, [r4, r0] - movs r0, 0 - bl Cos - negs r0, r0 - strh r0, [r4, 0x26] - ldr r0, =sub_8075838 - str r0, [r4, 0x1C] -_0807582C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80757E4 - - thumb_func_start sub_8075838 -sub_8075838: @ 8075838 - push {r4,r5,lr} - adds r4, r0, 0 - movs r5, 0 - ldrh r0, [r4, 0x34] - movs r1, 0xFF - ands r1, r0 - cmp r1, 0 - beq _0807584E - cmp r1, 0x1 - beq _080758C2 - b _080758EE -_0807584E: - movs r1, 0x38 - ldrsh r0, [r4, r1] - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl Cos - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r1, [r4, 0x38] - adds r1, 0x4 - ldrh r2, [r4, 0x34] - lsls r0, r2, 16 - asrs r0, 24 - adds r1, r0 - strh r1, [r4, 0x38] - lsls r1, 16 - asrs r1, 16 - cmp r1, 0x3F - ble _080758EE - ldrh r0, [r4, 0x36] - subs r0, 0xA - strh r0, [r4, 0x36] - ldr r1, =0x00000101 - adds r0, r2, r1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 24 - cmp r0, 0x4 - bne _0807588A - movs r5, 0x1 -_0807588A: - cmp r0, 0x2 - beq _080758AA - cmp r0, 0x2 - bgt _0807589C - cmp r0, 0x1 - beq _080758A2 - b _080758BA - .pool -_0807589C: - cmp r0, 0x3 - beq _080758B2 - b _080758BA -_080758A2: - movs r0, 0x38 - bl PlaySE - b _080758EE -_080758AA: - movs r0, 0x39 - bl PlaySE - b _080758EE -_080758B2: - movs r0, 0x3A - bl PlaySE - b _080758EE -_080758BA: - movs r0, 0x3B - bl PlaySE - b _080758EE -_080758C2: - movs r2, 0x38 - ldrsh r0, [r4, r2] - movs r2, 0x36 - ldrsh r1, [r4, r2] - bl Cos - negs r0, r0 - strh r0, [r4, 0x26] - ldrh r1, [r4, 0x38] - subs r1, 0x4 - ldrh r2, [r4, 0x34] - lsls r0, r2, 16 - asrs r0, 24 - subs r1, r0 - strh r1, [r4, 0x38] - lsls r1, 16 - cmp r1, 0 - bgt _080758EE - strh r5, [r4, 0x38] - ldr r0, =0xffffff00 - ands r0, r2 - strh r0, [r4, 0x34] -_080758EE: - cmp r5, 0 - beq _08075926 - movs r5, 0 - strh r5, [r4, 0x34] - movs r0, 0x40 - movs r1, 0x20 - bl Cos - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] - strh r5, [r4, 0x26] - movs r2, 0x3C - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _0807591C - ldr r0, =sub_8075D14 - str r0, [r4, 0x1C] - b _08075926 - .pool -_0807591C: - ldr r0, =sub_8075930 - str r0, [r4, 0x1C] - movs r0, 0x1 - strh r0, [r4, 0x36] - strh r5, [r4, 0x38] -_08075926: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8075838 - - thumb_func_start sub_8075930 -sub_8075930: @ 8075930 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - bne _08075964 - movs r0, 0 - strh r0, [r4, 0x34] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r0, =sub_8075970 - str r0, [r4, 0x1C] - movs r0, 0x17 - bl PlaySE -_08075964: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8075930 - - thumb_func_start sub_8075970 -sub_8075970: @ 8075970 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x34] - movs r1, 0xFF - ands r1, r0 - cmp r1, 0x4 - bhi _08075A70 - lsls r0, r1, 2 - ldr r1, =_0807598C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0807598C: - .4byte _080759A0 - .4byte _080759D2 - .4byte _080759A0 - .4byte _08075A26 - .4byte _08075A70 -_080759A0: - ldrh r0, [r4, 0x36] - ldrh r2, [r4, 0x24] - adds r1, r0, r2 - strh r1, [r4, 0x24] - ldrh r1, [r4, 0x38] - adds r0, r1 - strh r0, [r4, 0x38] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x38] - adds r0, 0x3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x6 - bls _08075AB6 - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - movs r0, 0 - strh r0, [r4, 0x38] - b _08075AB6 -_080759D2: - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - bne _08075A18 - movs r0, 0 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x36] - negs r0, r0 - strh r0, [r4, 0x36] - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] - adds r2, r4, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2] - movs r2, 0x36 - ldrsh r0, [r4, r2] - cmp r0, 0 - bge _08075A0E - adds r0, r4, 0 - movs r1, 0x2 - bl ChangeSpriteAffineAnim - b _08075AB6 -_08075A0E: - adds r0, r4, 0 - movs r1, 0x1 - bl ChangeSpriteAffineAnim - b _08075AB6 -_08075A18: - adds r0, r4, 0 - adds r0, 0x2C - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] - b _08075AB6 -_08075A26: - movs r1, 0x80 - lsls r1, 1 - adds r0, r1, 0 - ldrh r2, [r4, 0x34] - adds r0, r2 - strh r0, [r4, 0x34] - lsls r0, 16 - asrs r0, 24 - movs r2, 0x3C - ldrsh r1, [r4, r2] - cmp r0, r1 - bne _08075A48 - ldr r0, =sub_8075D14 - str r0, [r4, 0x1C] - b _08075AB6 - .pool -_08075A48: - cmp r1, 0x4 - bne _08075A5C - cmp r0, 0x3 - bne _08075A5C - ldr r0, =sub_8075FB4 - str r0, [r4, 0x1C] - b _08075A62 - .pool -_08075A5C: - ldrh r0, [r4, 0x34] - adds r0, 0x1 - strh r0, [r4, 0x34] -_08075A62: - adds r2, r4, 0 - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - b _08075AB6 -_08075A70: - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1F - bne _08075AB6 - movs r0, 0 - strh r0, [r4, 0x38] - ldrh r1, [r4, 0x34] - ldr r0, =0xffffff00 - ands r0, r1 - strh r0, [r4, 0x34] - adds r0, r4, 0 - movs r1, 0x3 - bl StartSpriteAffineAnim - movs r1, 0x36 - ldrsh r0, [r4, r1] - cmp r0, 0 - bge _08075AA8 - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - b _08075AB0 - .pool -_08075AA8: - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim -_08075AB0: - movs r0, 0x17 - bl PlaySE -_08075AB6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8075970 - - thumb_func_start c3_0804B070 -c3_0804B070: @ 8075ABC - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r2, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r2 - ldrb r1, [r0, 0xC] - mov r12, r1 - ldrb r5, [r0, 0xA] - ldrh r6, [r0, 0x8] - ldrb r3, [r0, 0xE] - mov r8, r3 - ldrb r7, [r0, 0x10] - movs r3, 0x12 - ldrsh r1, [r0, r3] - lsls r3, r1, 16 - ldrh r1, [r0, 0x14] - orrs r3, r1 - movs r1, 0x26 - ldrsh r0, [r0, r1] - cmp r0, 0x20 - bhi _08075B88 - lsls r0, 2 - ldr r1, =_08075B04 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08075B04: - .4byte _08075B88 - .4byte _08075BB4 - .4byte _08075BDA - .4byte _08075C54 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075BF8 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075B88 - .4byte _08075C66 - .4byte _08075C7E - .4byte _08075CA8 -_08075B88: - ldr r0, =gSprites - lsls r1, r7, 4 - adds r1, r7 - lsls r1, 2 - adds r1, r0 - adds r1, 0x3F - ldrb r0, [r1] - lsls r0, 26 - cmp r0, 0 - blt _08075B9E - b _08075D04 -_08075B9E: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r2 - mov r1, r12 - adds r1, 0x1 - strh r1, [r0, 0x26] - b _08075D04 - .pool -_08075BB4: - adds r0, r3, 0 - bl ShouldPlayNormalPokeCry - cmp r0, 0x1 - bne _08075BCC - lsls r1, r5, 24 - asrs r1, 24 - adds r0, r6, 0 - movs r2, 0 - bl PlayCry3 - b _08075C2E -_08075BCC: - lsls r1, r5, 24 - asrs r1, 24 - adds r0, r6, 0 - movs r2, 0xB - bl PlayCry3 - b _08075C2E -_08075BDA: - bl StopCryAndClearCrySongs - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - movs r1, 0x3 - strh r1, [r0, 0x1C] - movs r1, 0x14 - strh r1, [r0, 0x26] - b _08075D04 - .pool -_08075BF8: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r2 - ldrh r2, [r1, 0x1C] - movs r7, 0x1C - ldrsh r0, [r1, r7] - cmp r0, 0 - bne _08075CBA - adds r0, r3, 0 - bl ShouldPlayNormalPokeCry - cmp r0, 0x1 - bne _08075C22 - lsls r1, r5, 24 - asrs r1, 24 - adds r0, r6, 0 - movs r2, 0x1 - bl PlayCry4 - b _08075C2E -_08075C22: - lsls r1, r5, 24 - asrs r1, 24 - adds r0, r6, 0 - movs r2, 0xC - bl PlayCry4 -_08075C2E: - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0, 0x4] - mov r2, r8 - lsls r1, r2, 1 - add r1, r8 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r0, 0x41 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - adds r0, r4, 0 - bl DestroyTask - b _08075D04 - .pool -_08075C54: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r2 - movs r1, 0x6 - strh r1, [r0, 0x1C] - movs r1, 0x1E - strh r1, [r0, 0x26] - b _08075D04 -_08075C66: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r2 - ldrh r2, [r1, 0x1C] - movs r3, 0x1C - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _08075CBA - ldrh r0, [r1, 0x26] - adds r0, 0x1 - strh r0, [r1, 0x26] -_08075C7E: - bl IsCryPlayingOrClearCrySongs - lsls r0, 24 - cmp r0, 0 - bne _08075D04 - bl StopCryAndClearCrySongs - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - movs r0, 0x3 - strh r0, [r1, 0x1C] - ldrh r0, [r1, 0x26] - adds r0, 0x1 - strh r0, [r1, 0x26] - b _08075D04 - .pool -_08075CA8: - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r1, r0, r2 - ldrh r2, [r1, 0x1C] - movs r7, 0x1C - ldrsh r0, [r1, r7] - cmp r0, 0 - beq _08075CC0 -_08075CBA: - subs r0, r2, 0x1 - strh r0, [r1, 0x1C] - b _08075D04 -_08075CC0: - adds r0, r3, 0 - bl ShouldPlayNormalPokeCry - cmp r0, 0x1 - bne _08075CD8 - lsls r1, r5, 24 - asrs r1, 24 - adds r0, r6, 0 - movs r2, 0 - bl PlayCry4 - b _08075CE4 -_08075CD8: - lsls r1, r5, 24 - asrs r1, 24 - adds r0, r6, 0 - movs r2, 0xB - bl PlayCry4 -_08075CE4: - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0, 0x4] - mov r2, r8 - lsls r1, r2, 1 - add r1, r8 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1, 0x1] - movs r0, 0x41 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - adds r0, r4, 0 - bl DestroyTask -_08075D04: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end c3_0804B070 - - thumb_func_start sub_8075D14 -sub_8075D14: @ 8075D14 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r6, r0, 0 - ldrh r0, [r6, 0x3A] - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r6, 0 - movs r1, 0x1 - bl StartSpriteAnim - adds r0, r5, 0 - bl sub_8076B14 - lsls r0, 16 - lsrs r0, 16 - bl ball_number_to_ball_processing_index - adds r4, r0, 0 - ldrh r0, [r6, 0x20] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x22] - subs r1, 0x5 - lsls r1, 24 - lsrs r1, 24 - lsls r4, 24 - lsrs r4, 24 - str r4, [sp] - movs r2, 0x1 - movs r3, 0x1C - bl sub_8171D98 - ldrh r1, [r6, 0x3A] - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x1 - movs r2, 0xE - adds r3, r4, 0 - bl sub_81729E8 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x2E] - ldr r0, =sub_8075FD4 - str r0, [r6, 0x1C] - ldr r0, =gMain - ldr r1, =0x00000439 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08075D88 - b _08075EF4 -_08075D88: - adds r0, r5, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _08075DC0 - ldr r0, =gBattlePartyID - lsls r2, r5, 1 - adds r0, r2, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gEnemyParty - adds r7, r1, r0 - movs r4, 0x19 - mov r10, r4 - b _08075DD4 - .pool -_08075DC0: - ldr r0, =gBattlePartyID - lsls r2, r5, 1 - adds r0, r2, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r7, r1, r0 - movs r0, 0xE7 - mov r10, r0 -_08075DD4: - mov r8, r2 - adds r0, r7, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - movs r0, 0 - bl GetBankByIdentity - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - beq _08075E00 - movs r0, 0x1 - bl GetBankByIdentity - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - bne _08075E56 -_08075E00: - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _08075E56 - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0, 0x8] - ldrb r1, [r0, 0x9] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08075E56 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x42 - ands r0, r1 - cmp r0, 0x42 - bne _08075E4C - bl IsBGMPlaying - lsls r0, 24 - cmp r0, 0 - beq _08075E56 - ldr r0, =gMPlay_BGM - bl m4aMPlayStop - b _08075E56 - .pool -_08075E4C: - ldr r0, =gMPlay_BGM - ldr r1, =0x0000ffff - movs r2, 0x80 - bl m4aMPlayVolumeControl -_08075E56: - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _08075E70 - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0, 0x8] - ldrb r1, [r0, 0x9] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08075E80 -_08075E70: - movs r4, 0 - b _08075EA2 - .pool -_08075E80: - movs r0, 0 - bl GetBankByIdentity - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - beq _08075E9C - movs r0, 0x1 - bl GetBankByIdentity - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - bne _08075EA0 -_08075E9C: - movs r4, 0x1 - b _08075EA2 -_08075EA0: - movs r4, 0x2 -_08075EA2: - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0, 0x4] - mov r2, r8 - adds r1, r2, r5 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - movs r2, 0x40 - orrs r0, r2 - strb r0, [r1, 0x1] - ldr r0, =c3_0804B070 - movs r1, 0x3 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r3, 0 - mov r0, r9 - strh r0, [r1, 0x8] - mov r2, r10 - lsls r0, r2, 24 - asrs r0, 24 - strh r0, [r1, 0xA] - strh r4, [r1, 0xC] - strh r5, [r1, 0xE] - ldr r2, =gBankSpriteIds - movs r4, 0x3A - ldrsh r0, [r6, r4] - adds r0, r2 - ldrb r0, [r0] - strh r0, [r1, 0x10] - lsrs r0, r7, 16 - strh r0, [r1, 0x12] - strh r7, [r1, 0x14] - strh r3, [r1, 0x26] -_08075EF4: - ldr r4, =gBankSpriteIds - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r5, =gSprites - adds r0, r5 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldrh r0, [r6, 0x3A] - lsls r0, 24 - lsrs r0, 24 - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08075F50 - movs r2, 0x3A - ldrsh r0, [r6, r2] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_8039B58 - b _08075F66 - .pool -_08075F50: - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =sub_8039E44 -_08075F66: - str r1, [r0] - ldr r5, =gBankSpriteIds - movs r2, 0x3A - ldrsh r0, [r6, r2] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, =gSprites - adds r0, r4 - bl AnimateSprite - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r5 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x80 - lsls r1, 5 - strh r1, [r0, 0x30] - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8075D14 - - thumb_func_start sub_8075FB4 -sub_8075FB4: @ 8075FB4 - adds r3, r0, 0 - adds r3, 0x2C - ldrb r1, [r3] - movs r2, 0x40 - orrs r1, r2 - strb r1, [r3] - ldr r1, =sub_80760F8 - str r1, [r0, 0x1C] - movs r1, 0 - strh r1, [r0, 0x34] - strh r1, [r0, 0x36] - strh r1, [r0, 0x38] - bx lr - .pool - thumb_func_end sub_8075FB4 - - thumb_func_start sub_8075FD4 -sub_8075FD4: @ 8075FD4 - push {r4-r7,lr} - adds r5, r0, 0 - movs r7, 0 - ldrh r0, [r5, 0x3A] - lsls r0, 24 - lsrs r6, r0, 24 - ldr r4, =gSprites - ldr r0, =gBankSpriteIds - adds r3, r6, r0 - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x3E - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 - strb r1, [r0] - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08076016 - adds r2, r5, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_08076016: - ldrb r0, [r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - adds r0, r1, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bge _08076040 - adds r0, r1, 0 - movs r1, 0 - bl StartSpriteAffineAnim - movs r7, 0x1 - b _0807605C - .pool -_08076040: - ldr r2, =0xfffffee0 - adds r0, r2, 0 - ldrh r2, [r1, 0x30] - adds r0, r2 - strh r0, [r1, 0x30] - ldrb r0, [r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 24 - strh r0, [r1, 0x26] -_0807605C: - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080760DE - cmp r7, 0 - beq _080760DE - ldr r2, =gSprites - ldr r0, =gBankSpriteIds - adds r0, r6, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r2, 0 - movs r1, 0 - strh r1, [r0, 0x26] - ldr r0, =gDoingBattleAnim - strb r2, [r0] - ldr r4, =gBattleSpritesDataPtr - ldr r0, [r4] - ldr r0, [r0, 0x4] - lsls r1, r6, 1 - adds r1, r6 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - adds r0, r5, 0 - bl FreeSpriteOamMatrix - adds r0, r5, 0 - bl DestroySprite - movs r3, 0 - ldr r0, [r4] - ldr r2, [r0, 0x4] - movs r5, 0x8 - movs r4, 0x3 -_080760B6: - ldrb r1, [r2] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - bne _080760C2 - adds r3, 0x1 -_080760C2: - adds r2, 0xC - subs r4, 0x1 - cmp r4, 0 - bge _080760B6 - cmp r3, 0x4 - bne _080760DE - movs r4, 0 -_080760D0: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_8076AE8 - adds r4, 0x1 - cmp r4, 0xB - ble _080760D0 -_080760DE: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8075FD4 - - thumb_func_start sub_80760F8 -sub_80760F8: @ 80760F8 - push {r4-r7,lr} - adds r6, r0, 0 - ldrh r0, [r6, 0x3A] - lsls r0, 24 - lsrs r7, r0, 24 - ldrh r0, [r6, 0x36] - adds r0, 0x1 - strh r0, [r6, 0x36] - lsls r0, 16 - asrs r1, r0, 16 - cmp r1, 0x28 - beq _08076196 - cmp r1, 0x5F - bne _08076130 - ldr r0, =gDoingBattleAnim - movs r1, 0 - strb r1, [r0] - bl m4aMPlayAllStop - ldr r0, =0x00000173 - bl PlaySE - b _08076196 - .pool -_08076130: - ldr r0, =0x0000013b - cmp r1, r0 - bne _08076196 - ldr r5, =gSprites - ldr r4, =gBankSpriteIds - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r0, [r0, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - movs r1, 0x3A - ldrsh r0, [r6, r1] - adds r0, r4 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - bl DestroySprite - adds r0, r6, 0 - bl DestroySpriteAndFreeResources - ldr r0, =gMain - ldr r1, =0x00000439 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08076196 - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0, 0x4] - lsls r1, r7, 1 - adds r1, r7 - lsls r1, 2 - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x9 - negs r0, r0 - ands r0, r2 - strb r0, [r1] -_08076196: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80760F8 - - thumb_func_start sub_80761B4 -sub_80761B4: @ 80761B4 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x19 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x3A] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x2 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x3A] - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x3 - bl sub_80A5C6C - lsls r0, 24 - lsrs r0, 24 - adds r0, 0x18 - strh r0, [r4, 0x36] - ldr r0, =0x0000ffe2 - strh r0, [r4, 0x38] - ldrh r0, [r4, 0x3A] - strh r0, [r4, 0x6] - adds r0, r4, 0 - bl sub_80A68D4 - ldr r0, =sub_8076204 - str r0, [r4, 0x1C] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80761B4 - - thumb_func_start sub_8076204 -sub_8076204: @ 8076204 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - ldrh r0, [r5, 0x3C] - movs r1, 0xFF - mov r8, r1 - lsrs r0, 8 - subs r0, 0x23 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2C - bhi _080762F8 - ldrh r1, [r5, 0x6] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - bne _08076266 - ldrh r0, [r5, 0x30] - movs r1, 0x1 - adds r6, r1, 0 - ands r6, r0 - ldrh r0, [r5, 0x32] - adds r7, r1, 0 - ands r7, r0 - movs r2, 0x30 - ldrsh r0, [r5, r2] - movs r1, 0x3 - bl __divsi3 - movs r1, 0x2 - negs r1, r1 - adds r4, r1, 0 - ands r0, r4 - orrs r6, r0 - strh r6, [r5, 0x30] - movs r2, 0x32 - ldrsh r0, [r5, r2] - movs r1, 0x3 - bl __divsi3 - ands r0, r4 - orrs r7, r0 - strh r7, [r5, 0x32] - adds r0, r5, 0 - movs r1, 0x4 - bl StartSpriteAffineAnim -_08076266: - ldrh r4, [r5, 0x2E] - adds r0, r5, 0 - bl sub_80A6F3C - movs r1, 0x3A - ldrsh r0, [r5, r1] - movs r1, 0x3 - bl __divsi3 - adds r1, r0, 0 - ldrh r0, [r5, 0x3C] - adds r0, r1 - strh r0, [r5, 0x3C] - lsls r0, 16 - asrs r0, 24 - mov r2, r8 - ands r0, r2 - movs r2, 0x38 - ldrsh r1, [r5, r2] - bl Sin - ldrh r1, [r5, 0x26] - adds r0, r1 - strh r0, [r5, 0x26] - movs r2, 0x80 - lsls r2, 1 - adds r0, r2, 0 - ldrh r1, [r5, 0x6] - adds r0, r1 - strh r0, [r5, 0x6] - lsls r0, 16 - lsrs r0, 24 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - beq _080762B6 - strh r4, [r5, 0x2E] - b _080762BE -_080762B6: - lsls r0, r4, 16 - asrs r0, 16 - subs r0, 0x1 - strh r0, [r5, 0x2E] -_080762BE: - ldrh r0, [r5, 0x3C] - lsrs r0, 8 - cmp r0, 0x4F - ble _08076364 - ldrh r0, [r5, 0x30] - movs r1, 0x1 - adds r6, r1, 0 - ands r6, r0 - ldrh r0, [r5, 0x32] - adds r7, r1, 0 - ands r7, r0 - movs r2, 0x30 - ldrsh r1, [r5, r2] - lsls r0, r1, 1 - adds r0, r1 - movs r1, 0x2 - negs r1, r1 - adds r2, r1, 0 - ands r0, r2 - orrs r0, r6 - strh r0, [r5, 0x30] - movs r0, 0x32 - ldrsh r1, [r5, r0] - lsls r0, r1, 1 - adds r0, r1 - ands r0, r2 - orrs r0, r7 - strh r0, [r5, 0x32] - b _08076364 -_080762F8: - adds r0, r5, 0 - bl sub_80A6900 - lsls r0, 24 - cmp r0, 0 - beq _08076364 - ldrh r0, [r5, 0x24] - ldrh r1, [r5, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x26] - ldrh r2, [r5, 0x22] - adds r0, r2 - strh r0, [r5, 0x22] - strh r1, [r5, 0x26] - strh r1, [r5, 0x24] - ldrb r0, [r5, 0x6] - strh r0, [r5, 0x3A] - strh r1, [r5, 0x2E] - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _08076358 - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0, 0x8] - ldrb r1, [r0, 0x9] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08076358 - movs r0, 0x3A - ldrsh r4, [r5, r0] - movs r0, 0x2 - bl GetBankByIdentity - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bne _08076358 - ldr r0, =sub_8076374 - b _0807635A - .pool -_08076358: - ldr r0, =sub_8075D14 -_0807635A: - str r0, [r5, 0x1C] - adds r0, r5, 0 - movs r1, 0 - bl StartSpriteAffineAnim -_08076364: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8076204 - - thumb_func_start sub_8076374 -sub_8076374: @ 8076374 - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x2E] - adds r1, r0, 0x1 - strh r1, [r2, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x18 - ble _0807638E - movs r0, 0 - strh r0, [r2, 0x2E] - ldr r0, =sub_8075D14 - str r0, [r2, 0x1C] -_0807638E: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8076374 - - thumb_func_start sub_8076398 -sub_8076398: @ 8076398 - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xF - ble _080763EC - movs r0, 0 - strh r0, [r5, 0x2E] - bl IsDoubleBattle - lsls r0, 24 - cmp r0, 0 - beq _080763E8 - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0, 0x8] - ldrb r1, [r0, 0x9] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080763E8 - movs r0, 0x3A - ldrsh r4, [r5, r0] - movs r0, 0x3 - bl GetBankByIdentity - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bne _080763E8 - ldr r0, =sub_8076374 - b _080763EA - .pool -_080763E8: - ldr r0, =sub_8075D14 -_080763EA: - str r0, [r5, 0x1C] -_080763EC: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8076398 - - thumb_func_start sub_80763F8 -sub_80763F8: @ 80763F8 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - movs r4, 0 - str r4, [sp] - bl sub_8171D98 - lsls r0, 24 - lsrs r0, 24 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80763F8 - - thumb_func_start sub_8076420 -sub_8076420: @ 8076420 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - movs r3, 0 - bl sub_81729E8 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_8076420 - - thumb_func_start sub_8076438 -sub_8076438: @ 8076438 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r5, r0, 0 - mov r9, r2 - mov r10, r3 - ldr r6, [sp, 0x28] - ldr r4, [sp, 0x2C] - ldr r0, [sp, 0x30] - ldr r2, [sp, 0x38] - lsls r5, 24 - lsrs r5, 24 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp] - mov r1, r9 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r3, 24 - lsrs r3, 24 - mov r10, r3 - lsls r6, 24 - lsrs r6, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - lsls r0, r2, 16 - lsrs r7, r0, 16 - ldr r0, =gUnknown_0832C400 - bl LoadCompressedObjectPicUsingHeap - ldr r0, =gUnknown_0832C460 - bl LoadCompressedObjectPaletteUsingHeap - ldr r0, =gUnknown_0832C588 - mov r1, r9 - mov r2, r10 - adds r3, r4, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gSprites - mov r8, r1 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - adds r2, r4, r1 - strh r5, [r2, 0x2E] - lsls r1, r5, 4 - adds r1, r5 - lsls r1, 2 - add r1, r8 - ldrh r0, [r1, 0x20] - strh r0, [r2, 0x38] - ldrh r0, [r1, 0x22] - strh r0, [r2, 0x3A] - mov r3, r9 - strh r3, [r1, 0x20] - mov r0, r10 - strh r0, [r1, 0x22] - strh r7, [r1, 0x3C] - mov r3, sp - ldrh r3, [r3, 0x4] - strh r3, [r2, 0x30] - mov r0, sp - ldrh r0, [r0] - strh r0, [r2, 0x32] - mov r3, sp - ldrh r3, [r3, 0x34] - strh r3, [r2, 0x34] - ldr r3, [sp, 0x34] - lsrs r0, r3, 16 - strh r0, [r2, 0x36] - movs r0, 0x3 - ands r6, r0 - lsls r6, 2 - ldrb r3, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r6 - strb r0, [r2, 0x5] - movs r0, 0x1C - add r8, r0 - add r4, r8 - ldr r0, =sub_8076524 - str r0, [r4] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8076438 - - thumb_func_start sub_8076524 -sub_8076524: @ 8076524 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - ldrh r1, [r6, 0x30] - movs r2, 0x30 - ldrsh r0, [r6, r2] - cmp r0, 0 - bne _080765D0 - ldrh r0, [r6, 0x2E] - lsls r0, 24 - lsrs r7, r0, 24 - ldrh r0, [r6, 0x32] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldrh r4, [r6, 0x34] - ldrh r0, [r6, 0x36] - lsls r0, 16 - orrs r4, r0 - adds r0, r6, 0 - adds r0, 0x43 - ldrb r0, [r0] - cmp r0, 0 - beq _0807655E - subs r0, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - b _08076560 -_0807655E: - movs r5, 0 -_08076560: - adds r0, r6, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldrh r0, [r6, 0x20] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r6, 0x22] - subs r1, 0x5 - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r6, 0x5] - lsls r2, 28 - lsrs r2, 30 - adds r3, r5, 0 - bl sub_80763F8 - movs r0, 0x1 - mov r1, r8 - adds r2, r4, 0 - bl sub_8076420 - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r6, 0x30] - ldr r0, =sub_80765E0 - str r0, [r6, 0x1C] - ldr r0, =gSprites - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - adds r4, r0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - adds r0, r4, 0 - bl AnimateSprite - movs r0, 0x80 - lsls r0, 5 - strh r0, [r4, 0x30] - strh r5, [r6, 0x3C] - b _080765D4 - .pool -_080765D0: - subs r0, r1, 0x1 - strh r0, [r6, 0x30] -_080765D4: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8076524 - - thumb_func_start sub_80765E0 -sub_80765E0: @ 80765E0 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r4, r0, 0 - movs r0, 0 - mov r12, r0 - movs r7, 0 - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08076610 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_08076610: - ldr r1, =gSprites - lsls r2, r6, 4 - adds r0, r2, r6 - lsls r0, 2 - adds r5, r0, r1 - adds r0, r5, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 26 - mov r8, r2 - cmp r0, 0 - bge _08076634 - adds r0, r5, 0 - movs r1, 0 - bl StartSpriteAffineAnim - movs r1, 0x1 - mov r12, r1 -_08076634: - movs r2, 0x38 - ldrsh r0, [r4, r2] - movs r3, 0x20 - ldrsh r1, [r4, r3] - subs r0, r1 - movs r1, 0x3C - ldrsh r2, [r4, r1] - muls r0, r2 - cmp r0, 0 - bge _0807664A - adds r0, 0x7F -_0807664A: - asrs r0, 7 - ldrh r3, [r4, 0x20] - adds r0, r3 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - movs r1, 0x3A - ldrsh r0, [r4, r1] - movs r3, 0x22 - ldrsh r1, [r4, r3] - subs r0, r1 - muls r0, r2 - cmp r0, 0 - bge _08076668 - adds r0, 0x7F -_08076668: - asrs r0, 7 - ldrh r1, [r4, 0x22] - adds r0, r1 - mov r2, r9 - strh r2, [r5, 0x20] - strh r0, [r5, 0x22] - ldrh r2, [r4, 0x3C] - movs r3, 0x3C - ldrsh r0, [r4, r3] - cmp r0, 0x7F - bgt _080766AC - ldr r1, =gSineTable - lsls r0, r2, 24 - lsrs r0, 23 - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0 - bge _08076690 - adds r0, 0x7 -_08076690: - asrs r0, 3 - negs r0, r0 - lsls r0, 16 - lsrs r0, 16 - adds r1, r2, 0x4 - strh r1, [r4, 0x3C] - strh r0, [r5, 0x24] - strh r0, [r5, 0x26] - b _080766BA - .pool -_080766AC: - ldrh r0, [r4, 0x38] - strh r0, [r5, 0x20] - ldrh r0, [r4, 0x3A] - strh r0, [r5, 0x22] - strh r7, [r5, 0x24] - strh r7, [r5, 0x26] - movs r7, 0x1 -_080766BA: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0807670E - mov r2, r12 - cmp r2, 0 - beq _0807670E - cmp r7, 0 - beq _0807670E - ldr r1, =gSprites - mov r3, r8 - adds r0, r3, r6 - lsls r0, 2 - adds r2, r0, r1 - movs r0, 0x3C - ldrsh r1, [r2, r0] - movs r0, 0xCE - lsls r0, 1 - cmp r1, r0 - bne _080766FC - ldrh r1, [r2, 0x3C] - adds r0, r2, 0 - movs r2, 0x1 - movs r3, 0 - bl DoMonFrontSpriteAnimation - b _08076708 - .pool -_080766FC: - ldrh r1, [r2, 0x3C] - adds r0, r2, 0 - movs r2, 0 - movs r3, 0 - bl DoMonFrontSpriteAnimation -_08076708: - adds r0, r4, 0 - bl DestroySpriteAndFreeResources -_0807670E: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80765E0 - - thumb_func_start sub_807671C -sub_807671C: @ 807671C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r10, r0 - adds r6, r2, 0 - mov r8, r3 - ldr r5, [sp, 0x20] - ldr r4, [sp, 0x24] - ldr r0, [sp, 0x28] - mov r9, r0 - mov r0, r10 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r6, 24 - lsrs r6, 24 - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r5, 24 - lsrs r5, 24 - lsls r4, 24 - lsrs r4, 24 - mov r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r0, =gUnknown_0832C400 - bl LoadCompressedObjectPicUsingHeap - ldr r0, =gUnknown_0832C460 - bl LoadCompressedObjectPaletteUsingHeap - ldr r0, =gUnknown_0832C588 - adds r1, r6, 0 - mov r2, r8 - adds r3, r4, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r6, =gSprites - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - adds r2, r3, r6 - mov r1, r10 - strh r1, [r2, 0x2E] - mov r4, r9 - strh r4, [r2, 0x30] - strh r7, [r2, 0x32] - mov r1, sp - ldrh r1, [r1, 0x2C] - strh r1, [r2, 0x34] - ldr r4, [sp, 0x2C] - lsrs r1, r4, 16 - strh r1, [r2, 0x36] - movs r1, 0x3 - ands r5, r1 - lsls r5, 2 - ldrb r4, [r2, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r4 - orrs r1, r5 - strb r1, [r2, 0x5] - adds r6, 0x1C - adds r3, r6 - ldr r1, =sub_80767D4 - str r1, [r3] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_807671C - - thumb_func_start sub_80767D4 -sub_80767D4: @ 80767D4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r4, r0, 0 - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _0807686C - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r7, r0, 24 - ldrh r0, [r4, 0x32] - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldrh r5, [r4, 0x34] - ldrh r0, [r4, 0x36] - lsls r0, 16 - orrs r5, r0 - adds r0, r4, 0 - adds r0, 0x43 - ldrb r0, [r0] - cmp r0, 0 - beq _0807680E - subs r0, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - b _08076810 -_0807680E: - movs r6, 0 -_08076810: - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim - ldrh r0, [r4, 0x20] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x22] - subs r1, 0x5 - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r4, 0x5] - lsls r2, 28 - lsrs r2, 30 - adds r3, r6, 0 - bl sub_80763F8 - movs r0, 0x1 - mov r1, r8 - adds r2, r5, 0 - bl sub_8076420 - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r4, 0x30] - ldr r0, =sub_807687C - str r0, [r4, 0x1C] - lsls r4, r7, 4 - adds r4, r7 - lsls r4, 2 - ldr r0, =gSprites - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x2 - bl StartSpriteAffineAnim - adds r0, r4, 0 - bl AnimateSprite - strh r5, [r4, 0x30] - b _08076870 - .pool -_0807686C: - subs r0, r1, 0x1 - strh r0, [r4, 0x30] -_08076870: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80767D4 - - thumb_func_start sub_807687C -sub_807687C: @ 807687C - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x38] - adds r0, 0x1 - strh r0, [r5, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - bne _08076894 - movs r0, 0x3C - bl PlaySE -_08076894: - ldrh r1, [r5, 0x2E] - lsls r1, 24 - lsrs r1, 24 - ldr r2, =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - adds r0, r4, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 26 - cmp r0, 0 - bge _080768D8 - adds r0, r5, 0 - movs r1, 0x2 - bl StartSpriteAnim - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - movs r0, 0 - strh r0, [r5, 0x38] - ldr r0, =sub_80768F0 - str r0, [r5, 0x1C] - b _080768E8 - .pool -_080768D8: - ldrh r0, [r4, 0x30] - adds r0, 0x60 - strh r0, [r4, 0x30] - movs r1, 0x30 - ldrsh r0, [r4, r1] - negs r0, r0 - asrs r0, 8 - strh r0, [r4, 0x26] -_080768E8: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_807687C - - thumb_func_start sub_80768F0 -sub_80768F0: @ 80768F0 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08076904 - ldr r0, =SpriteCallbackDummy - str r0, [r2, 0x1C] -_08076904: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80768F0 - - thumb_func_start obj_delete_and_free_associated_resources_ -obj_delete_and_free_associated_resources_: @ 807690C - push {lr} - bl DestroySpriteAndFreeResources - pop {r0} - bx r0 - thumb_func_end obj_delete_and_free_associated_resources_ - - thumb_func_start sub_8076918 -sub_8076918: @ 8076918 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - ldr r0, =gHealthBoxesIds - adds r0, r5, r0 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r6, =gSprites - adds r4, r0, r6 - movs r1, 0 - movs r0, 0x5 - strh r0, [r4, 0x2E] - strh r1, [r4, 0x30] - movs r0, 0x73 - strh r0, [r4, 0x24] - strh r1, [r4, 0x26] - ldr r0, =sub_80769CC - str r0, [r4, 0x1C] - adds r0, r5, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _08076966 - ldrh r0, [r4, 0x2E] - negs r0, r0 - strh r0, [r4, 0x2E] - ldrh r0, [r4, 0x30] - negs r0, r0 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x24] - negs r0, r0 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x26] - negs r0, r0 - strh r0, [r4, 0x26] -_08076966: - movs r0, 0x38 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r6, 0 - adds r1, 0x1C - adds r1, r0, r1 - adds r0, r6 - ldr r1, [r1] - bl _call_via_r1 - adds r0, r5, 0 - bl GetBankIdentity - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _08076990 - ldr r0, =sub_80769A8 - str r0, [r4, 0x1C] -_08076990: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8076918 - - thumb_func_start sub_80769A8 -sub_80769A8: @ 80769A8 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bne _080769C2 - movs r0, 0 - strh r0, [r1, 0x30] - ldr r0, =sub_80769CC - str r0, [r1, 0x1C] -_080769C2: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80769A8 - - thumb_func_start sub_80769CC -sub_80769CC: @ 80769CC - push {lr} - adds r2, r0, 0 - ldrh r0, [r2, 0x24] - ldrh r1, [r2, 0x2E] - subs r0, r1 - strh r0, [r2, 0x24] - ldrh r0, [r2, 0x26] - ldrh r1, [r2, 0x30] - subs r0, r1 - strh r0, [r2, 0x26] - ldr r0, [r2, 0x24] - cmp r0, 0 - bne _080769EA - ldr r0, =SpriteCallbackDummy - str r0, [r2, 0x1C] -_080769EA: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80769CC - - thumb_func_start DoHitAnimHealthboxEffect -DoHitAnimHealthboxEffect: @ 80769F4 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, =oamc_804BEB4 - adds r0, r5, 0 - bl CreateInvisibleSpriteWithCallback - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r3, r1, r2 - movs r0, 0x1 - strh r0, [r3, 0x2E] - ldr r0, =gHealthBoxesIds - adds r4, r0 - ldrb r0, [r4] - strh r0, [r3, 0x30] - adds r2, 0x1C - adds r1, r2 - str r5, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end DoHitAnimHealthboxEffect - - thumb_func_start oamc_804BEB4 -oamc_804BEB4: @ 8076A38 - push {lr} - adds r3, r0, 0 - ldrh r1, [r3, 0x30] - lsls r1, 24 - lsrs r1, 24 - ldr r2, =gSprites - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - ldrh r0, [r3, 0x2E] - movs r2, 0 - strh r0, [r1, 0x26] - ldrh r0, [r3, 0x2E] - negs r0, r0 - strh r0, [r3, 0x2E] - ldrh r0, [r3, 0x32] - adds r0, 0x1 - strh r0, [r3, 0x32] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x15 - bne _08076A70 - strh r2, [r1, 0x24] - strh r2, [r1, 0x26] - adds r0, r3, 0 - bl DestroySprite -_08076A70: - pop {r0} - bx r0 - .pool - thumb_func_end oamc_804BEB4 - - thumb_func_start sub_8076A78 -sub_8076A78: @ 8076A78 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gUnknown_0832C400 - lsls r6, r4, 3 - adds r5, r6, r0 - ldrh r0, [r5, 0x6] - bl GetSpriteTileStartByTag - lsls r0, 16 - ldr r1, =0xffff0000 - cmp r0, r1 - bne _08076AA0 - adds r0, r5, 0 - bl LoadCompressedObjectPicUsingHeap - ldr r0, =gUnknown_0832C460 - adds r0, r6, r0 - bl LoadCompressedObjectPaletteUsingHeap -_08076AA0: - cmp r4, 0x6 - beq _08076ACC - cmp r4, 0x6 - blt _08076AB0 - cmp r4, 0xB - bgt _08076AB0 - cmp r4, 0xA - bge _08076ACC -_08076AB0: - ldr r1, =gUnknown_0832C400 - lsls r0, r4, 3 - adds r0, r1 - ldrh r0, [r0, 0x6] - bl GetSpriteTileStartByTag - adds r1, r0, 0 - lsls r1, 16 - ldr r0, =gUnknown_08C02300 - lsrs r1, 11 - ldr r2, =0x06010100 - adds r1, r2 - bl LZDecompressVram -_08076ACC: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8076A78 - - thumb_func_start sub_8076AE8 -sub_8076AE8: @ 8076AE8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - ldr r0, =gUnknown_0832C400 - lsrs r4, 21 - adds r0, r4, r0 - ldrh r0, [r0, 0x6] - bl FreeSpriteTilesByTag - ldr r0, =gUnknown_0832C460 - adds r4, r0 - ldrh r0, [r4, 0x4] - bl FreeSpritePaletteByTag - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8076AE8 - - thumb_func_start sub_8076B14 -sub_8076B14: @ 8076B14 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _08076B40 - ldr r1, =gBattlePartyID - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - b _08076B4E - .pool -_08076B40: - ldr r1, =gBattlePartyID - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty -_08076B4E: - adds r0, r1 - movs r1, 0x26 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8076B14 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokeblock_feed.s b/asm/pokeblock_feed.s index 9cbee2fb9..aef726c16 100644 --- a/asm/pokeblock_feed.s +++ b/asm/pokeblock_feed.s @@ -740,7 +740,7 @@ _0817A268: movs r1, 0x1 orrs r0, r1 strb r0, [r2] - bl sav2_get_text_speed + bl GetPlayerTextSpeed adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 diff --git a/asm/pokemon_icon.s b/asm/pokemon_icon.s index 6009bd3f3..79838f6f9 100755 --- a/asm/pokemon_icon.s +++ b/asm/pokemon_icon.s @@ -156,7 +156,7 @@ mon_icon_convert_unown_species_id: @ 80D2E08 cmp r2, 0xC9 bne _080D2E32 adds r0, r1, 0 - bl mon_icon_personality_to_unown_id + bl GetUnownLetterByPersonality lsls r0, 16 lsrs r0, 16 cmp r0, 0 @@ -186,8 +186,8 @@ _080D2E40: bx r1 thumb_func_end mon_icon_convert_unown_species_id - thumb_func_start mon_icon_personality_to_unown_id -mon_icon_personality_to_unown_id: @ 80D2E48 + thumb_func_start GetUnownLetterByPersonality +GetUnownLetterByPersonality: @ 80D2E48 push {lr} adds r2, r0, 0 cmp r2, 0 @@ -219,7 +219,7 @@ _080D2E7E: _080D2E80: pop {r1} bx r1 - thumb_func_end mon_icon_personality_to_unown_id + thumb_func_end GetUnownLetterByPersonality thumb_func_start sub_80D2E84 sub_80D2E84: @ 80D2E84 @@ -229,7 +229,7 @@ sub_80D2E84: @ 80D2E84 lsrs r4, r0, 16 adds r0, r4, 0 mov r1, sp - bl sub_80D45E8 + bl MailSpeciesToSpecies lsls r0, 16 lsrs r0, 16 cmp r0, 0xC9 diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 94245f93b..1b93496a7 100755 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -2201,7 +2201,7 @@ _080C83CC: ldr r1, =0x00000ce6 adds r0, r1 ldrh r0, [r0] - bl itemid_is_mail + bl ItemIsMail lsls r0, 24 cmp r0, 0 beq _080C83F4 @@ -2304,7 +2304,7 @@ _080C84C8: ldr r1, =0x00000ce6 adds r0, r1 ldrh r0, [r0] - bl itemid_is_mail + bl ItemIsMail lsls r0, 24 cmp r0, 0 beq _080C84F8 @@ -2874,7 +2874,7 @@ _080C8A0C: ldr r2, =0x00000ce6 adds r0, r2 ldrh r0, [r0] - bl itemid_is_mail + bl ItemIsMail lsls r0, 24 cmp r0, 0 bne _080C8A8C @@ -2913,7 +2913,7 @@ _080C8A7C: ldr r2, =0x00000ce6 adds r0, r1, r2 ldrh r0, [r0] - bl itemid_is_mail + bl ItemIsMail lsls r0, 24 cmp r0, 0 beq _080C8A98 @@ -3409,7 +3409,7 @@ _080C8F0C: adds r0, 0x1 strb r0, [r1] _080C8F22: - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -3661,7 +3661,7 @@ _080C914E: ldr r1, =0x00000ce6 adds r0, r1 ldrh r0, [r0] - bl itemid_is_mail + bl ItemIsMail lsls r0, 24 cmp r0, 0 bne _080C9168 @@ -3943,7 +3943,7 @@ _080C93E4: ldr r1, =0x00000ce6 adds r0, r1 ldrh r0, [r0] - bl itemid_is_mail + bl ItemIsMail lsls r0, 24 cmp r0, 0 bne _080C9404 @@ -4133,7 +4133,7 @@ _080C9584: b _080C9664 .pool _080C95A4: - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -4927,7 +4927,7 @@ _080C9C78: b _080C9CAA .pool _080C9C8C: - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -5058,7 +5058,7 @@ _080C9DAC: b _080C9DE0 .pool _080C9DC0: - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -6737,7 +6737,7 @@ sub_80CAC58: @ 80CAC58 sub sp, 0xC lsls r0, 24 lsrs r6, r0, 24 - bl sub_81AFBF0 + bl UnkTextUtil_Reset ldr r1, =gUnknown_0857276C lsls r0, r6, 3 adds r0, r1 @@ -6774,7 +6774,7 @@ _080CACB8: adds r1, r2 _080CACC0: movs r0, 0 - bl sub_81AFC0C + bl UnkTextUtil_SetPtrI b _080CAD30 .pool _080CACD0: @@ -6817,7 +6817,7 @@ _080CAD16: ldr r0, =0x000021eb adds r1, r0 movs r0, 0 - bl sub_81AFC0C + bl UnkTextUtil_SetPtrI _080CAD30: ldr r5, =gUnknown_02039D08 ldr r0, [r5] @@ -6827,7 +6827,7 @@ _080CAD30: lsls r1, r6, 3 adds r1, r2 ldr r1, [r1] - bl sub_81AFC28 + bl UnkTextUtil_StringExpandPlaceholders movs r0, 0x1 movs r1, 0x11 bl FillWindowPixelBuffer @@ -16168,7 +16168,7 @@ sub_80CFB44: @ 80CFB44 .pool _080CFB8C: ldrh r0, [r1] - bl itemid_is_mail + bl ItemIsMail lsls r0, 24 cmp r0, 0 bne _080CFBA4 @@ -16197,7 +16197,7 @@ _080CFBAC: .pool _080CFBCC: ldrh r0, [r1] - bl itemid_is_mail + bl ItemIsMail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index d30c6b4ee..91fd35c1f 100755 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -212,17 +212,17 @@ _081C3FEC: movs r2, 0x1 movs r3, 0x2 bl ConvertIntToDecimalStringN - bl sub_81AFBF0 + bl UnkTextUtil_Reset movs r0, 0 adds r1, r4, 0 - bl sub_81AFC0C + bl UnkTextUtil_SetPtrI movs r0, 0x1 adds r1, r4, 0 - bl sub_81AFC0C + bl UnkTextUtil_SetPtrI ldr r4, =gStringVar4 ldr r1, =gUnknown_0861CE97 adds r0, r4, 0 - bl sub_81AFC28 + bl UnkTextUtil_StringExpandPlaceholders movs r0, 0x1 adds r1, r4, 0 movs r2, 0x2C @@ -1424,16 +1424,16 @@ sub_81C4A08: @ 81C4A08 bl GetMonData lsls r0, 16 lsrs r0, 16 - bl ball_number_to_ball_processing_index + bl ItemIdToBallId adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 adds r0, r4, 0 - bl sub_8076A78 + bl LoadBallGfx lsls r0, r4, 1 adds r0, r4 lsls r0, 3 - ldr r1, =gUnknown_0832C588 + ldr r1, =gBallSpriteTemplates adds r0, r1 movs r1, 0x10 movs r2, 0x88 @@ -4207,7 +4207,7 @@ sub_81C61E0: @ 81C61E0 cmp r0, 0x3 beq _081C620C ldrh r0, [r4] - bl itemid_is_mail + bl ItemIsMail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -4673,7 +4673,7 @@ sub_81C6648: @ 81C6648 bl sub_81C61A8 ldr r5, =gSpecialVar_ItemId ldrh r0, [r5] - bl itemid_is_mail + bl ItemIsMail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -5547,7 +5547,7 @@ DisplayItemMessageInBattlePyramid: @ 81C6DD8 movs r0, 0x2 movs r1, 0x11 bl FillWindowPixelBuffer - bl sav2_get_text_speed + bl GetPlayerTextSpeed lsls r0, 24 lsrs r0, 24 movs r1, 0x1 diff --git a/asm/pokenav.s b/asm/pokenav.s index 6da267d78..8b38def62 100755 --- a/asm/pokenav.s +++ b/asm/pokenav.s @@ -8089,7 +8089,7 @@ _081CB0C0: thumb_func_start sub_81CB0C8 sub_81CB0C8: @ 81CB0C8 push {lr} - ldr r1, =gUnknown_085500A4 + ldr r1, =gRematchTable lsls r0, 4 adds r0, r1 ldrh r2, [r0, 0xA] @@ -10207,7 +10207,7 @@ sub_81CC158: @ 81CC158 adds r1, 0xF bl sub_81CAF78 adds r5, r0, 0 - bl sav2_get_text_speed + bl GetPlayerTextSpeed lsls r0, 24 lsrs r0, 24 ldrb r2, [r4, 0x14] @@ -16941,17 +16941,17 @@ sub_81CF7F4: @ 81CF7F4 mov r8, r0 bl sub_81CF0F0 adds r7, r0, 0 - bl sub_81AFBF0 + bl UnkTextUtil_Reset ldr r4, =gStringVar1 movs r0, 0 adds r1, r4, 0 - bl sub_81AFC0C + bl UnkTextUtil_SetPtrI movs r0, 0xFF strb r0, [r4] ldr r5, =gStringVar2 ldr r1, =gText_NumberF700 adds r0, r5, 0 - bl sub_81AFC28 + bl UnkTextUtil_StringExpandPlaceholders mov r1, r8 ldrb r0, [r1, 0x8] movs r1, 0x1 @@ -19854,14 +19854,14 @@ sub_81D0E84: @ 81D0E84 movs r2, 0 movs r3, 0x2 bl ConvertIntToDecimalStringN - bl sub_81AFBF0 + bl UnkTextUtil_Reset movs r0, 0 adds r1, r4, 0 - bl sub_81AFC0C + bl UnkTextUtil_SetPtrI ldr r4, =gStringVar4 ldr r1, =gText_RibbonsF700 adds r0, r4, 0 - bl sub_81AFC28 + bl UnkTextUtil_StringExpandPlaceholders ldrb r0, [r5, 0xA] movs r1, 0x44 bl FillWindowPixelBuffer @@ -20738,7 +20738,7 @@ _081D15B6: thumb_func_start sub_81D15BC sub_81D15BC: @ 81D15BC - ldr r1, =gUnknown_085500A4 + ldr r1, =gRematchTable lsls r0, 4 adds r0, r1 ldrh r0, [r0] @@ -20751,7 +20751,7 @@ sub_81D15CC: @ 81D15CC push {lr} adds r3, r0, 0 movs r1, 0 - ldr r2, =gUnknown_085500A4 + ldr r2, =gRematchTable _081D15D4: ldrh r0, [r2] cmp r0, r3 @@ -21440,7 +21440,7 @@ _081D1A24: cmp r0, 0 bne _081D1A1C adds r0, r7, 0 - bl sub_80B2318 + bl CountBattledRematchTeams lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 @@ -23751,7 +23751,7 @@ sub_81D2BF4: @ 81D2BF4 movs r1, 0x1 orrs r0, r1 strb r0, [r2] - bl sav2_get_text_speed + bl GetPlayerTextSpeed adds r3, r0, 0 lsls r3, 24 lsrs r3, 24 @@ -28068,7 +28068,7 @@ sub_81D4E30: @ 81D4E30 lsls r2, 6 movs r1, 0 bl memset - ldr r1, =gUnknown_020229C6 + ldr r1, =gLinkType ldr r2, =0x00005503 adds r0, r2, 0 strh r0, [r1] @@ -30343,8 +30343,8 @@ _081D6176: .pool thumb_func_end sub_81D6134 - thumb_func_start battle_init -battle_init: @ 81D6180 + thumb_func_start sub_81D6180 +sub_81D6180: @ 81D6180 lsls r0, 24 ldr r1, =gSaveBlock2Ptr ldr r1, [r1] @@ -30355,7 +30355,7 @@ battle_init: @ 81D6180 ldrh r0, [r1] bx lr .pool - thumb_func_end battle_init + thumb_func_end sub_81D6180 thumb_func_start GetTrainerHillTrainerFlag @ u8 GetTrainerHillTrainerFlag(u8 fieldObjectId) diff --git a/asm/record_mixing.s b/asm/record_mixing.s index 35e0557ee..f4271556c 100644 --- a/asm/record_mixing.s +++ b/asm/record_mixing.s @@ -993,7 +993,7 @@ _080E75AC: movs r0, 0xC8 muls r0, r2 adds r1, r0 - ldr r0, =gUnknown_020228C4 + ldr r0, =gBlockSendBuffer movs r2, 0xC8 bl memcpy b _080E75FC @@ -3650,7 +3650,7 @@ _080E8A78: beq _080E8A90 mov r0, r8 movs r1, 0xFC - bl sub_81DB4DC + bl PadNameString _080E8A90: ldrb r1, [r7] lsrs r1, 4 diff --git a/asm/rom6.s b/asm/rom6.s index ebff777ea..f2fabec35 100644 --- a/asm/rom6.s +++ b/asm/rom6.s @@ -1223,7 +1223,7 @@ sub_8135F04: @ 8135F04 adds r4, 0x1 ldr r6, =gStringVar1 adds r0, r5, 0 - bl sub_8136EA4 + bl GetHighestPokeblocksFlavorLevel adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -1364,7 +1364,7 @@ _08136032: bls _08136002 ldr r4, =gStringVar1 mov r0, r8 - bl sub_8136EDC + bl GetPokeblocksFeel adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 @@ -2601,7 +2601,7 @@ sub_8136AB4: @ 8136AB4 ldr r1, =gText_ThrowAwayVar1 adds r0, r5, 0 bl StringExpandPlaceholders - bl sav2_get_text_speed + bl GetPlayerTextSpeed lsls r0, 24 lsrs r0, 24 movs r1, 0x1 @@ -2657,7 +2657,7 @@ sub_8136B78: @ 8136B78 ldr r1, =gText_Var1ThrownAway adds r0, r5, 0 bl StringExpandPlaceholders - bl sav2_get_text_speed + bl GetPlayerTextSpeed lsls r0, 24 lsrs r0, 24 movs r1, 0x1 @@ -2995,8 +2995,8 @@ _08136E8C: bx r0 thumb_func_end ClearPokeblocks - thumb_func_start sub_8136EA4 -sub_8136EA4: @ 8136EA4 + thumb_func_start GetHighestPokeblocksFlavorLevel +GetHighestPokeblocksFlavorLevel: @ 8136EA4 push {r4-r6,lr} adds r6, r0, 0 movs r1, 0x1 @@ -3024,10 +3024,10 @@ _08136ECC: pop {r4-r6} pop {r1} bx r1 - thumb_func_end sub_8136EA4 + thumb_func_end GetHighestPokeblocksFlavorLevel - thumb_func_start sub_8136EDC -sub_8136EDC: @ 8136EDC + thumb_func_start GetPokeblocksFeel +GetPokeblocksFeel: @ 8136EDC push {lr} movs r1, 0x6 bl sub_8136F9C @@ -3039,10 +3039,10 @@ sub_8136EDC: @ 8136EDC _08136EEE: pop {r1} bx r1 - thumb_func_end sub_8136EDC + thumb_func_end GetPokeblocksFeel - thumb_func_start sub_8136EF4 -sub_8136EF4: @ 8136EF4 + thumb_func_start GetFirstFreePokeblockSlot +GetFirstFreePokeblockSlot: @ 8136EF4 push {lr} movs r1, 0 ldr r0, =gSaveBlock1Ptr @@ -3070,13 +3070,13 @@ _08136F18: _08136F26: pop {r1} bx r1 - thumb_func_end sub_8136EF4 + thumb_func_end GetFirstFreePokeblockSlot - thumb_func_start sub_8136F2C -sub_8136F2C: @ 8136F2C + thumb_func_start AddPokeblock +AddPokeblock: @ 8136F2C push {r4,lr} adds r4, r0, 0 - bl sub_8136EF4 + bl GetFirstFreePokeblockSlot lsls r0, 24 asrs r1, r0, 24 movs r0, 0x1 @@ -3102,7 +3102,7 @@ _08136F62: pop {r4} pop {r1} bx r1 - thumb_func_end sub_8136F2C + thumb_func_end AddPokeblock thumb_func_start sub_8136F68 sub_8136F68: @ 8136F68 @@ -3287,8 +3287,8 @@ _081370AC: bx r1 thumb_func_end sub_8137068 - thumb_func_start sub_81370B4 -sub_81370B4: @ 81370B4 + thumb_func_start GetPokeblocksFlavor +GetPokeblocksFlavor: @ 81370B4 push {r4-r7,lr} adds r5, r0, 0 movs r7, 0 @@ -3324,7 +3324,7 @@ _081370E2: pop {r4-r7} pop {r1} bx r1 - thumb_func_end sub_81370B4 + thumb_func_end GetPokeblocksFlavor thumb_func_start sub_81370FC sub_81370FC: @ 81370FC @@ -4180,7 +4180,7 @@ _0813785A: thumb_func_start sp0C8_whiteout_maybe sp0C8_whiteout_maybe: @ 813787C push {lr} - ldr r0, =c2_whiteout + ldr r0, =CB2_WhiteOut bl SetMainCallback2 movs r0, 0 pop {r1} @@ -4188,6 +4188,8 @@ sp0C8_whiteout_maybe: @ 813787C .pool thumb_func_end sp0C8_whiteout_maybe +@ time_events.o + thumb_func_start sub_8137890 sub_8137890: @ 8137890 push {r4,lr} @@ -4244,8 +4246,8 @@ sub_81378E4: @ 81378E4 bx r0 thumb_func_end sub_81378E4 - thumb_func_start sub_8137904 -sub_8137904: @ 8137904 + thumb_func_start UpdateMirageRnd +UpdateMirageRnd: @ 8137904 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 @@ -4271,7 +4273,7 @@ _08137928: pop {r0} bx r0 .pool - thumb_func_end sub_8137904 + thumb_func_end UpdateMirageRnd thumb_func_start sub_813793C sub_813793C: @ 813793C @@ -4385,8 +4387,8 @@ sub_8137A0C: @ 8137A0C .pool thumb_func_end sub_8137A0C - thumb_func_start sub_8137A20 -sub_8137A20: @ 8137A20 + thumb_func_start UpdateBirchState +UpdateBirchState: @ 8137A20 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 16 @@ -4405,7 +4407,9 @@ sub_8137A20: @ 8137A20 pop {r0} bx r0 .pool - thumb_func_end sub_8137A20 + thumb_func_end UpdateBirchState + +@ birch_pc.o thumb_func_start sub_8137A4C sub_8137A4C: @ 8137A4C @@ -7605,15 +7609,15 @@ _08139456: bx r1 thumb_func_end sub_81393FC - thumb_func_start sub_813945C -sub_813945C: @ 813945C + thumb_func_start SetShoalItemFlag +SetShoalItemFlag: @ 813945C push {lr} ldr r0, =0x000008bf bl FlagSet pop {r0} bx r0 .pool - thumb_func_end sub_813945C + thumb_func_end SetShoalItemFlag thumb_func_start sub_813946C sub_813946C: @ 813946C @@ -8934,8 +8938,8 @@ _08139EEE: bx r1 thumb_func_end sub_8139ED0 - thumb_func_start sub_8139EF4 -sub_8139EF4: @ 8139EF4 + thumb_func_start UpdateFrontierManiac +UpdateFrontierManiac: @ 8139EF4 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 16 @@ -8954,7 +8958,7 @@ sub_8139EF4: @ 8139EF4 pop {r0} bx r0 .pool - thumb_func_end sub_8139EF4 + thumb_func_end UpdateFrontierManiac thumb_func_start sub_8139F20 sub_8139F20: @ 8139F20 @@ -10002,8 +10006,8 @@ _0813A7C6: .pool thumb_func_end sub_813A7B8 - thumb_func_start sub_813A7F4 -sub_813A7F4: @ 813A7F4 + thumb_func_start UpdateFrontierGambler +UpdateFrontierGambler: @ 813A7F4 push {r4,r5,lr} adds r4, r0, 0 lsls r4, 16 @@ -10022,7 +10026,7 @@ sub_813A7F4: @ 813A7F4 pop {r0} bx r0 .pool - thumb_func_end sub_813A7F4 + thumb_func_end UpdateFrontierGambler thumb_func_start sub_813A820 sub_813A820: @ 813A820 diff --git a/asm/script_menu.s b/asm/script_menu.s index be7cbfbc7..233a5e14c 100644 --- a/asm/script_menu.s +++ b/asm/script_menu.s @@ -444,7 +444,7 @@ task_yes_no_maybe: @ 80E215C b _080E21C4 .pool _080E2180: - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 movs r0, 0x1 diff --git a/asm/script_pokemon_util_80F87D8.s b/asm/script_pokemon_util_80F87D8.s index 3a3cf4269..e093ea149 100644 --- a/asm/script_pokemon_util_80F87D8.s +++ b/asm/script_pokemon_util_80F87D8.s @@ -1359,8 +1359,8 @@ ScriptGiveEgg: @ 80F92C8 bx r1 thumb_func_end ScriptGiveEgg - thumb_func_start sub_80F92F8 -sub_80F92F8: @ 80F92F8 + thumb_func_start HasEnoughMonsForDoubleBattle +HasEnoughMonsForDoubleBattle: @ 80F92F8 push {lr} bl GetMonsStateToDoubles lsls r0, 24 @@ -1382,7 +1382,7 @@ _080F9318: pop {r0} bx r0 .pool - thumb_func_end sub_80F92F8 + thumb_func_end HasEnoughMonsForDoubleBattle thumb_func_start sub_80F9320 sub_80F9320: @ 80F9320 diff --git a/asm/shop.s b/asm/shop.s index 94756624c..2d6791a62 100644 --- a/asm/shop.s +++ b/asm/shop.s @@ -1219,7 +1219,7 @@ BuyMenuDisplayMessage: @ 80E04E8 adds r6, r2, 0 lsls r4, 24 lsrs r4, 24 - bl sav2_get_text_speed + bl GetPlayerTextSpeed lsls r0, 24 lsrs r0, 24 movs r1, 0x1 diff --git a/asm/slot_machine.s b/asm/slot_machine.s index 6390ae992..24e755648 100644 --- a/asm/slot_machine.s +++ b/asm/slot_machine.s @@ -1581,7 +1581,7 @@ sub_812B158: @ 812B158 thumb_func_start sub_812B1B0 sub_812B1B0: @ 812B1B0 push {lr} - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 diff --git a/asm/start_menu.s b/asm/start_menu.s index 634425f80..6182c3c27 100644 --- a/asm/start_menu.s +++ b/asm/start_menu.s @@ -356,7 +356,7 @@ sub_809FA9C: @ 809FA9C bl is_c1_link_related_active cmp r0, 0 bne _0809FAB2 - bl player_bitmagic + bl FreezeMapObjects bl sub_808B864 bl sub_808BCF4 _0809FAB2: @@ -1121,7 +1121,7 @@ sub_80A00EC: @ 80A00EC thumb_func_start sub_80A0108 sub_80A0108: @ 80A0108 push {lr} - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -1226,7 +1226,7 @@ sub_80A01D0: @ 80A01D0 thumb_func_start sub_80A01EC sub_80A01EC: @ 80A01EC push {lr} - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -1441,7 +1441,7 @@ sub_80A0388: @ 80A0388 thumb_func_start sub_80A03A4 sub_80A03A4: @ 80A03A4 push {lr} - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 diff --git a/asm/trade.s b/asm/trade.s index cbf980b74..10daff6b9 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -1,5 +1,7 @@ .include "asm/macros.inc" - .include "constants/constants.inc" + .include "constants/gba_constants.inc" + .include "constants/misc_constants.inc" + .include "constants/species_constants.inc" .syntax unified @@ -401,7 +403,7 @@ _080774B2: ldrb r2, [r0] cmp r2, 0 bne _0807754C - ldr r1, =gUnknown_020229C6 + ldr r1, =gLinkType ldr r5, =0x00001122 adds r0, r5, 0 strh r0, [r1] @@ -2142,7 +2144,7 @@ _08078484: .4byte _080786F0 .4byte _08078720 _080784DC: - ldr r0, =gUnknown_020228C4 + ldr r0, =gBlockSendBuffer ldr r1, =gPlayerParty movs r2, 0xC8 bl sub_8078438 @@ -2208,7 +2210,7 @@ _08078552: b _080787A2 .pool _0807857C: - ldr r0, =gUnknown_020228C4 + ldr r0, =gBlockSendBuffer ldr r1, =gPlayerParty + 200 movs r2, 0xC8 bl sub_8078438 @@ -2247,7 +2249,7 @@ _080785B6: b _080787A2 .pool _080785E0: - ldr r0, =gUnknown_020228C4 + ldr r0, =gBlockSendBuffer ldr r1, =gPlayerParty + 400 movs r2, 0xC8 bl sub_8078438 @@ -2286,7 +2288,7 @@ _0807861A: b _080787A2 .pool _08078644: - ldr r0, =gUnknown_020228C4 + ldr r0, =gBlockSendBuffer ldr r1, =gSaveBlock1Ptr ldr r1, [r1] ldr r2, =0x00002be0 @@ -2328,7 +2330,7 @@ _0807868A: b _080787A2 .pool _080786B4: - ldr r0, =gUnknown_020228C4 + ldr r0, =gBlockSendBuffer ldr r1, =gSaveBlock1Ptr ldr r1, [r1] ldr r2, =0x000031a8 @@ -3694,7 +3696,7 @@ _0807920E: thumb_func_start sub_8079218 sub_8079218: @ 8079218 push {lr} - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -3796,7 +3798,7 @@ _080792D8: thumb_func_start sub_80792E4 sub_80792E4: @ 80792E4 push {lr} - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 asrs r1, r0, 24 cmp r1, 0 @@ -7258,7 +7260,7 @@ _0807AEAC: ldrb r0, [r0] cmp r0, 0 bne _0807AEC0 - ldr r1, =gUnknown_020229C6 + ldr r1, =gLinkType ldr r2, =0x00001144 adds r0, r2, 0 strh r0, [r1] @@ -10445,7 +10447,7 @@ _0807CD1C: str r2, [sp, 0x10] movs r2, 0x78 movs r3, 0x54 - bl sub_8076438 + bl CreatePokeballSpriteToReleaseMon ldr r0, [r7] adds r0, 0xD3 ldrb r1, [r0] @@ -12550,7 +12552,7 @@ _0807E168: str r2, [sp, 0x10] movs r2, 0x78 movs r3, 0x54 - bl sub_8076438 + bl CreatePokeballSpriteToReleaseMon ldr r0, [r7] adds r0, 0xD3 ldrb r1, [r0] @@ -13367,7 +13369,7 @@ sub_807E7E8: @ 807E7E8 ldrh r0, [r5, 0x28] cmp r0, 0 beq _0807E960 - bl itemid_is_mail + bl ItemIsMail lsls r0, 24 cmp r0, 0 beq _0807E954 @@ -13440,7 +13442,7 @@ _0807E98E: bl StringCopy adds r0, r4, 0 movs r1, 0 - bl sub_81DB4DC + bl PadNameString ldr r1, [r6, 0x18] lsrs r0, r1, 24 strb r0, [r5, 0x1A] diff --git a/asm/trainer_rematch.s b/asm/trainer_rematch.s index b814934a3..1c874f28f 100755 --- a/asm/trainer_rematch.s +++ b/asm/trainer_rematch.s @@ -178,14 +178,14 @@ sub_81DA6CC: @ 81DA6CC push {r4-r6,lr} adds r5, r0, 0 movs r4, 0 - ldr r6, =gUnknown_085500A4 + ldr r6, =gRematchTable _081DA6D4: lsls r0, r4, 1 lsls r1, r5, 4 adds r0, r1 adds r0, r6 ldrh r0, [r0] - bl HasTrainerAlreadyBeenFought + bl HasTrainerBeenFought lsls r0, 24 cmp r0, 0 bne _081DA6F0 diff --git a/asm/trainer_see.s b/asm/trainer_see.s index ad6cc370e..16398f9a4 100644 --- a/asm/trainer_see.s +++ b/asm/trainer_see.s @@ -5,133 +5,6 @@ .text - thumb_func_start CheckForTrainersWantingBattle -@ bool8 CheckForTrainersWantingBattle() -CheckForTrainersWantingBattle: @ 80B3BE8 - push {r4-r7,lr} - ldr r0, =gUnknown_030060A8 - movs r1, 0 - strb r1, [r0] - ldr r0, =gUnknown_02038BFC - strb r1, [r0] - movs r4, 0 - ldr r6, =gMapObjects -_080B3BF8: - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - adds r1, r0, r6 - ldrb r0, [r1] - lsls r0, 31 - cmp r0, 0 - beq _080B3C38 - ldrb r0, [r1, 0x7] - cmp r0, 0x1 - beq _080B3C12 - cmp r0, 0x3 - bne _080B3C38 -_080B3C12: - adds r0, r4, 0 - bl CheckIfTrainerWantsBattle - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - beq _080B3C42 - cmp r0, 0 - beq _080B3C38 - ldr r0, =gUnknown_030060A8 - ldrb r1, [r0] - adds r5, r0, 0 - cmp r1, 0x1 - bhi _080B3C88 - bl GetMonsStateToDoubles_2 - lsls r0, 24 - cmp r0, 0 - bne _080B3C42 -_080B3C38: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _080B3BF8 -_080B3C42: - ldr r0, =gUnknown_030060A8 - ldrb r4, [r0] - adds r5, r0, 0 - cmp r4, 0x1 - bne _080B3C88 - bl ResetTrainerOpponentIds - ldr r2, =gUnknown_03006090 - ldrb r0, [r5] - subs r0, 0x1 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r0, r1, r2 - ldrb r0, [r0] - adds r2, 0x4 - adds r1, r2 - ldr r1, [r1] - bl SingleTrainerWantsBattle - ldr r0, =gUnknown_030060AC - strb r4, [r0] - movs r0, 0x1 - b _080B3CF4 - .pool -_080B3C88: - ldrb r0, [r5] - cmp r0, 0x2 - bne _080B3CEC - bl ResetTrainerOpponentIds - movs r4, 0 - ldrb r5, [r5] - cmp r4, r5 - bcs _080B3CC6 - ldr r6, =gUnknown_03006090 - adds r7, r6, 0x4 - ldr r5, =gUnknown_02038BFC -_080B3CA0: - lsls r1, r4, 1 - adds r1, r4 - lsls r1, 2 - adds r0, r1, r6 - ldrb r0, [r0] - adds r1, r7 - ldr r1, [r1] - bl TwoTrainersWantBattle - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - ldr r0, =gUnknown_030060A8 - ldrb r0, [r0] - cmp r4, r0 - bcc _080B3CA0 -_080B3CC6: - bl TwoTrainersWantBattleExecuteScript - ldr r1, =gUnknown_02038BFC - movs r0, 0 - strb r0, [r1] - ldr r1, =gUnknown_030060AC - movs r0, 0x1 - strb r0, [r1] - movs r0, 0x1 - b _080B3CF4 - .pool -_080B3CEC: - ldr r1, =gUnknown_030060AC - movs r0, 0 - strb r0, [r1] - movs r0, 0 -_080B3CF4: - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end CheckForTrainersWantingBattle - thumb_func_start CheckIfTrainerWantsBattle @ u8 CheckIfTrainerWantsBattle(u8 trainerFieldObjectId) CheckIfTrainerWantsBattle: @ 80B3D00 @@ -203,8 +76,8 @@ _080B3D7C: movs r1, 0x2 mov r9, r1 _080B3D8A: - ldr r2, =gUnknown_03006090 - ldr r4, =gUnknown_030060A8 + ldr r2, =gApproachingTrainers + ldr r4, =gNoOfApproachingTrainers ldrb r1, [r4] lsls r0, r1, 1 adds r0, r1 @@ -608,8 +481,8 @@ TrainerApproachPlayer: @ 80B406C ldr r0, =c3_8081EDC movs r1, 0x50 bl CreateTask - ldr r4, =gUnknown_03006090 - ldr r3, =gUnknown_030060A8 + ldr r4, =gApproachingTrainers + ldr r3, =gNoOfApproachingTrainers ldrb r2, [r3] lsls r1, r2, 1 adds r1, r2 @@ -645,16 +518,16 @@ TrainerApproachPlayer: @ 80B406C sub_80B40C8: @ 80B40C8 push {r4,r5,lr} adds r2, r0, 0 - ldr r0, =gUnknown_02038BFC + ldr r0, =gApproachingTrainerId ldrb r0, [r0] cmp r0, 0 bne _080B40E4 - ldr r0, =gUnknown_03006090 + ldr r0, =gApproachingTrainers ldrb r5, [r0, 0x8] b _080B40E8 .pool _080B40E4: - ldr r0, =gUnknown_03006090 + ldr r0, =gApproachingTrainers ldrb r5, [r0, 0x14] _080B40E8: ldr r4, =c3_8081EDC @@ -1290,11 +1163,11 @@ sub_80B45BC: @ 80B45BC thumb_func_start sub_80B45D0 sub_80B45D0: @ 80B45D0 push {lr} - ldr r0, =gUnknown_030060A8 + ldr r0, =gNoOfApproachingTrainers ldrb r0, [r0] cmp r0, 0x2 bne _080B4610 - ldr r1, =gUnknown_02038BFC + ldr r1, =gApproachingTrainerId ldrb r0, [r1] cmp r0, 0 bne _080B460C @@ -1304,7 +1177,7 @@ sub_80B45D0: @ 80B45D0 movs r0, 0x1 strh r0, [r1] bl UnfreezeMapObjects - ldr r0, =gUnknown_03006090 + ldr r0, =gApproachingTrainers ldrb r0, [r0, 0xC] bl sub_80974D0 b _080B4616 @@ -1531,16 +1404,16 @@ _080B47B2: thumb_func_start sub_80B47BC sub_80B47BC: @ 80B47BC push {lr} - ldr r0, =gUnknown_02038BFC + ldr r0, =gApproachingTrainerId ldrb r0, [r0] cmp r0, 0 beq _080B47D4 - ldr r0, =gUnknown_03006090 + ldr r0, =gApproachingTrainers ldrb r0, [r0, 0xC] b _080B47D8 .pool _080B47D4: - ldr r0, =gUnknown_03006090 + ldr r0, =gApproachingTrainers ldrb r0, [r0] _080B47D8: pop {r1} @@ -1560,12 +1433,12 @@ sub_80B47E0: @ 80B47E0 _080B47EE: cmp r0, 0 beq _080B47FC - ldr r0, =gUnknown_03006090 + ldr r0, =gApproachingTrainers ldrb r0, [r0, 0xC] b _080B4800 .pool _080B47FC: - ldr r0, =gUnknown_03006090 + ldr r0, =gApproachingTrainers ldrb r0, [r0] _080B4800: pop {r1} @@ -1580,7 +1453,7 @@ sub_80B4808: @ 80B4808 ldrb r0, [r0] cmp r0, 0x1 bne _080B4870 - ldr r2, =gUnknown_03006090 + ldr r2, =gApproachingTrainers ldr r0, =gUnknown_03006080 ldrh r1, [r0] lsls r0, r1, 1 diff --git a/asm/unk_81BAD84.s b/asm/unk_81BAD84.s deleted file mode 100644 index 2a95feed4..000000000 --- a/asm/unk_81BAD84.s +++ /dev/null @@ -1,57 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_81BAD84 -sub_81BAD84: @ 81BAD84 - push {r4-r6,lr} - movs r6, 0x80 - lsls r6, 19 - movs r2, 0 - strh r2, [r6] - ldr r1, =0x04000010 - strh r2, [r1] - adds r1, 0x2 - strh r2, [r1] - adds r1, 0x3E - strh r2, [r1] - ldr r5, =gUnknown_08617128 - lsls r4, r0, 1 - adds r4, r0 - lsls r4, 2 - adds r0, r4, r5 - ldr r0, [r0] - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - adds r0, r5, 0x4 - adds r0, r4, r0 - ldr r0, [r0] - ldr r1, =0x0600f800 - bl LZ77UnCompVram - adds r5, 0x8 - adds r4, r5 - ldr r0, [r4] - movs r1, 0xA0 - lsls r1, 19 - movs r4, 0x80 - lsls r4, 1 - adds r2, r4, 0 - bl CpuSet - ldr r1, =0x04000008 - movs r2, 0xF8 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - strh r4, [r6] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81BAD84 - - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/unk_text_util.s b/asm/unk_text_util.s deleted file mode 100755 index f8dabb5b7..000000000 --- a/asm/unk_text_util.s +++ /dev/null @@ -1,99 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_81AFBF0 -sub_81AFBF0: @ 81AFBF0 - push {lr} - ldr r1, =gUnknown_0203CE9C - movs r2, 0 - adds r0, r1, 0 - adds r0, 0x1C -_081AFBFA: - str r2, [r0] - subs r0, 0x4 - cmp r0, r1 - bge _081AFBFA - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AFBF0 - - thumb_func_start sub_81AFC0C -sub_81AFC0C: @ 81AFC0C - push {lr} - adds r2, r1, 0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x7 - bhi _081AFC20 - ldr r1, =gUnknown_0203CE9C - lsls r0, 2 - adds r0, r1 - str r2, [r0] -_081AFC20: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81AFC0C - - thumb_func_start sub_81AFC28 -sub_81AFC28: @ 81AFC28 - push {r4,r5,lr} - adds r2, r0, 0 - adds r4, r1, 0 - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - beq _081AFC68 - ldr r5, =gUnknown_0203CE9C -_081AFC38: - cmp r1, 0xF7 - beq _081AFC48 - strb r1, [r2] - adds r4, 0x1 - adds r2, 0x1 - b _081AFC60 - .pool -_081AFC48: - adds r4, 0x1 - ldrb r0, [r4] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - cmp r1, 0 - beq _081AFC5E - adds r0, r2, 0 - bl StringCopy - adds r2, r0, 0 -_081AFC5E: - adds r4, 0x1 -_081AFC60: - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - bne _081AFC38 -_081AFC68: - movs r0, 0xFF - strb r0, [r2] - adds r0, r2, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81AFC28 - - thumb_func_start sub_81AFC74 -sub_81AFC74: @ 81AFC74 - lsls r0, 24 - ldr r1, =gUnknown_0203CE9C - lsrs r0, 22 - adds r0, r1 - ldr r0, [r0] - bx lr - .pool - thumb_func_end sub_81AFC74 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/use_pokeblock.s b/asm/use_pokeblock.s index 3a8b76ab1..f22fd9061 100755 --- a/asm/use_pokeblock.s +++ b/asm/use_pokeblock.s @@ -1240,7 +1240,7 @@ sub_8166D44: @ 8166D44 thumb_func_start sub_8166DE4 sub_8166DE4: @ 8166DE4 push {r4,lr} - bl sub_8198C58 + bl ProcessMenuInputNoWrap_ lsls r0, 24 lsrs r4, r0, 24 asrs r1, r0, 24 @@ -1769,7 +1769,7 @@ _0816721C: adds r0, r6, r0 ldrb r1, [r0] mov r0, r10 - bl GetMonFlavourRelation + bl GetMonFlavorRelation lsls r0, 24 asrs r2, r0, 24 cmp r0, r9 diff --git a/asm/wallclock.s b/asm/wallclock.s deleted file mode 100644 index 5c818212c..000000000 --- a/asm/wallclock.s +++ /dev/null @@ -1,1515 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_81347B4 -sub_81347B4: @ 81347B4 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end sub_81347B4 - - thumb_func_start LoadWallClockGraphics -LoadWallClockGraphics: @ 81347C8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - movs r1, 0 - bl SetGpuReg - movs r0, 0xE - movs r1, 0 - bl SetGpuReg - movs r0, 0xC - movs r1, 0 - bl SetGpuReg - movs r0, 0xA - movs r1, 0 - bl SetGpuReg - movs r0, 0x8 - movs r1, 0 - bl SetGpuReg - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r3, 0xC0 - lsls r3, 19 - movs r4, 0xC0 - lsls r4, 9 - add r0, sp, 0x4 - mov r8, r0 - mov r2, sp - movs r6, 0 - ldr r1, =0x040000d4 - movs r5, 0x80 - lsls r5, 5 - ldr r7, =0x81000800 - movs r0, 0x81 - lsls r0, 24 - mov r12, r0 -_0813486C: - strh r6, [r2] - mov r0, sp - str r0, [r1] - str r3, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r5 - subs r4, r5 - cmp r4, r5 - bhi _0813486C - strh r6, [r2] - mov r2, sp - str r2, [r1] - str r3, [r1, 0x4] - lsrs r0, r4, 1 - mov r2, r12 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r0, 0xE0 - lsls r0, 19 - movs r3, 0x80 - lsls r3, 3 - movs r4, 0 - str r4, [sp, 0x4] - ldr r2, =0x040000d4 - mov r1, r8 - str r1, [r2] - str r0, [r2, 0x4] - lsrs r0, r3, 2 - movs r1, 0x85 - lsls r1, 24 - orrs r0, r1 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r1, 0xA0 - lsls r1, 19 - mov r0, sp - strh r4, [r0] - str r0, [r2] - str r1, [r2, 0x4] - lsrs r3, 1 - movs r0, 0x81 - lsls r0, 24 - orrs r3, r0 - str r3, [r2, 0x8] - ldr r0, [r2, 0x8] - ldr r0, =gUnknown_08DCC05C - movs r1, 0xC0 - lsls r1, 19 - bl LZ77UnCompVram - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0 - bne _081348FC - ldr r0, =gUnknown_08DCC01C - movs r1, 0 - movs r2, 0x20 - bl LoadPalette - b _08134906 - .pool -_081348FC: - ldr r0, =gUnknown_08DCC03C - movs r1, 0 - movs r2, 0x20 - bl LoadPalette -_08134906: - bl GetOverworldTextboxPalettePtr - movs r1, 0xE0 - movs r2, 0x20 - bl LoadPalette - ldr r0, =gUnknown_085B21D4 - movs r1, 0xC0 - movs r2, 0x8 - bl LoadPalette - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_085B21FC - movs r0, 0 - movs r2, 0x3 - bl InitBgsFromTemplates - ldr r0, =gUnknown_085B21DC - bl InitWindows - bl DeactivateAllTextPrinters - movs r1, 0x94 - lsls r1, 2 - movs r0, 0 - movs r2, 0xD0 - bl sub_809882C - bl clear_scheduled_bg_copies_to_vram - bl remove_some_task - bl ResetTasks - bl ResetSpriteData - bl ResetPaletteFade - bl FreeAllSpritePalettes - ldr r0, =gUnknown_085B2208 - bl LoadCompressedObjectPic - ldr r0, =gUnknown_085B2218 - bl LoadSpritePalettes - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end LoadWallClockGraphics - - thumb_func_start sub_813498C -sub_813498C: @ 813498C - push {lr} - sub sp, 0x4 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - movs r0, 0x1 - bl EnableInterrupts - ldr r0, =sub_81347B4 - bl SetVBlankCallback - ldr r0, =sub_8134C9C - bl SetMainCallback2 - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - movs r0, 0x54 - movs r1, 0 - bl SetGpuReg - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl ShowBg - add sp, 0x4 - pop {r0} - bx r0 - .pool - thumb_func_end sub_813498C - - thumb_func_start Cb2_StartWallClock -Cb2_StartWallClock: @ 81349F4 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0xC - bl LoadWallClockGraphics - ldr r0, =gUnknown_08DCC648 - ldr r1, =0x06003800 - bl LZ77UnCompVram - ldr r0, =sub_8134CB8 - movs r1, 0 - bl CreateTask - adds r6, r0, 0 - lsls r6, 24 - lsrs r6, 24 - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - mov r8, r1 - movs r1, 0xA - strh r1, [r0, 0xC] - mov r2, r8 - strh r2, [r0, 0xE] - strh r2, [r0, 0x10] - strh r2, [r0, 0x12] - strh r2, [r0, 0x14] - strh r2, [r0, 0x8] - movs r1, 0x96 - lsls r1, 1 - strh r1, [r0, 0xA] - ldr r0, =gUnknown_085B2250 - movs r1, 0x78 - movs r2, 0x50 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gSprites - mov r9, r1 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r9 - strh r6, [r1, 0x2E] - ldrb r2, [r1, 0x1] - movs r5, 0x4 - negs r5, r5 - adds r0, r5, 0 - ands r0, r2 - movs r2, 0x1 - mov r10, r2 - mov r2, r10 - orrs r0, r2 - strb r0, [r1, 0x1] - ldrb r2, [r1, 0x3] - movs r4, 0x3F - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - strb r0, [r1, 0x3] - ldr r0, =gUnknown_085B2268 - movs r1, 0x78 - movs r2, 0x50 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r9 - strh r6, [r1, 0x2E] - ldrb r0, [r1, 0x1] - ands r5, r0 - mov r0, r10 - orrs r5, r0 - strb r5, [r1, 0x1] - ldrb r0, [r1, 0x3] - ands r4, r0 - movs r0, 0x2 - orrs r4, r0 - strb r4, [r1, 0x3] - ldr r0, =gUnknown_085B22A0 - movs r1, 0x78 - movs r2, 0x50 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r9 - strh r6, [r1, 0x2E] - movs r0, 0x2D - strh r0, [r1, 0x30] - ldr r0, =gUnknown_085B22B8 - movs r1, 0x78 - movs r2, 0x50 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r9 - strh r6, [r1, 0x2E] - movs r0, 0x5A - strh r0, [r1, 0x30] - bl sub_813498C - ldr r2, =gText_Confirm3 - movs r0, 0x1 - str r0, [sp] - mov r1, r8 - str r1, [sp, 0x4] - str r1, [sp, 0x8] - movs r1, 0x1 - movs r3, 0 - bl PrintTextOnWindow - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end Cb2_StartWallClock - - thumb_func_start Cb2_ViewWallClock -Cb2_ViewWallClock: @ 8134B44 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - bl LoadWallClockGraphics - ldr r0, =gUnknown_08DCC908 - ldr r1, =0x06003800 - bl LZ77UnCompVram - ldr r0, =sub_8134F10 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r7, 0 - bl sub_8135130 - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - movs r1, 0x12 - ldrsh r0, [r0, r1] - cmp r0, 0 - bne _08134B9C - movs r2, 0x2D - mov r10, r2 - movs r0, 0x5A - str r0, [sp, 0xC] - b _08134BA4 - .pool -_08134B9C: - movs r1, 0x5A - mov r10, r1 - movs r2, 0x87 - str r2, [sp, 0xC] -_08134BA4: - ldr r0, =gUnknown_085B2250 - movs r1, 0x78 - movs r2, 0x50 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - ldr r6, =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - movs r0, 0 - mov r9, r0 - strh r7, [r1, 0x2E] - ldrb r2, [r1, 0x1] - movs r5, 0x4 - negs r5, r5 - adds r0, r5, 0 - ands r0, r2 - movs r2, 0x1 - mov r8, r2 - mov r2, r8 - orrs r0, r2 - strb r0, [r1, 0x1] - ldrb r2, [r1, 0x3] - movs r4, 0x3F - negs r4, r4 - adds r0, r4, 0 - ands r0, r2 - strb r0, [r1, 0x3] - ldr r0, =gUnknown_085B2268 - movs r1, 0x78 - movs r2, 0x50 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - strh r7, [r1, 0x2E] - ldrb r0, [r1, 0x1] - ands r5, r0 - mov r0, r8 - orrs r5, r0 - strb r5, [r1, 0x1] - ldrb r0, [r1, 0x3] - ands r4, r0 - movs r0, 0x2 - orrs r4, r0 - strb r4, [r1, 0x3] - ldr r0, =gUnknown_085B22A0 - movs r1, 0x78 - movs r2, 0x50 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - strh r7, [r1, 0x2E] - mov r2, r10 - strh r2, [r1, 0x30] - ldr r0, =gUnknown_085B22B8 - movs r1, 0x78 - movs r2, 0x50 - movs r3, 0x2 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - strh r7, [r1, 0x2E] - mov r0, sp - ldrh r0, [r0, 0xC] - strh r0, [r1, 0x30] - bl sub_813498C - ldr r2, =gText_Cancel4 - movs r0, 0x1 - str r0, [sp] - mov r1, r9 - str r1, [sp, 0x4] - str r1, [sp, 0x8] - movs r1, 0x1 - movs r3, 0 - bl PrintTextOnWindow - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end Cb2_ViewWallClock - - thumb_func_start sub_8134C9C -sub_8134C9C: @ 8134C9C - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end sub_8134C9C - - thumb_func_start sub_8134CB8 -sub_8134CB8: @ 8134CB8 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08134CD8 - ldr r0, =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_8134CE8 - str r0, [r1] -_08134CD8: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8134CB8 - - thumb_func_start sub_8134CE8 -sub_8134CE8: @ 8134CE8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - movs r1, 0x6 - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - beq _08134D1C - ldrh r0, [r5, 0x8] - ldrb r1, [r5, 0x10] - ldrb r2, [r5, 0x14] - bl sub_8134FFC - strh r0, [r5, 0x8] - b _08134DBE - .pool -_08134D1C: - movs r2, 0xE - ldrsh r1, [r5, r2] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - strh r0, [r5, 0x8] - movs r3, 0xC - ldrsh r0, [r5, r3] - movs r1, 0xC - bl __modsi3 - lsls r0, 16 - asrs r0, 16 - lsls r4, r0, 4 - subs r4, r0 - lsls r4, 1 - movs r1, 0xE - ldrsh r0, [r5, r1] - movs r1, 0xA - bl __divsi3 - lsls r0, 16 - asrs r0, 16 - lsls r1, r0, 2 - adds r1, r0 - adds r4, r1 - strh r4, [r5, 0xA] - ldr r2, =gMain - ldrh r0, [r2, 0x2E] - movs r3, 0x1 - adds r1, r3, 0 - ands r1, r0 - cmp r1, 0 - beq _08134D70 - ldr r0, =sub_8134DC4 - str r0, [r5] - b _08134DBE - .pool -_08134D70: - strh r1, [r5, 0x10] - ldrh r1, [r2, 0x2C] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08134D7E - strh r3, [r5, 0x10] -_08134D7E: - ldrh r1, [r2, 0x2C] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08134D8C - movs r0, 0x2 - strh r0, [r5, 0x10] -_08134D8C: - ldrh r1, [r5, 0x10] - movs r2, 0x10 - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _08134DBC - ldrh r2, [r5, 0x14] - movs r3, 0x14 - ldrsh r0, [r5, r3] - cmp r0, 0xFE - bgt _08134DA4 - adds r0, r2, 0x1 - strh r0, [r5, 0x14] -_08134DA4: - ldrh r0, [r5, 0x8] - lsls r1, 24 - lsrs r1, 24 - ldrb r2, [r5, 0x14] - bl sub_8134FFC - strh r0, [r5, 0x8] - ldrb r1, [r5, 0x10] - adds r0, r6, 0 - bl sub_813504C - b _08134DBE -_08134DBC: - strh r0, [r5, 0x14] -_08134DBE: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8134CE8 - - thumb_func_start sub_8134DC4 -sub_8134DC4: @ 8134DC4 - push {r4,r5,lr} - sub sp, 0xC - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r5, 0x94 - lsls r5, 2 - movs r0, 0 - movs r1, 0 - adds r2, r5, 0 - movs r3, 0xD - bl SetWindowBorderStyle - ldr r2, =gText_IsThisTheCorrectTime - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r1, 0x1 - movs r3, 0 - bl PrintTextOnWindow - movs r0, 0 - bl PutWindowTilemap - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - ldr r0, =gUnknown_085B21F4 - adds r1, r5, 0 - movs r2, 0xD - movs r3, 0x1 - bl CreateYesNoMenu - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =c3_80BF560 - str r1, [r0] - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8134DC4 - - thumb_func_start c3_80BF560 -c3_80BF560: @ 8134E30 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl sub_8198C58 - lsls r0, 24 - asrs r1, r0, 24 - cmp r1, 0 - beq _08134E56 - cmp r1, 0 - bgt _08134E50 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _08134E74 - b _08134E96 -_08134E50: - cmp r1, 0x1 - beq _08134E74 - b _08134E96 -_08134E56: - movs r0, 0x5 - bl PlaySE - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_8134EA4 - b _08134E94 - .pool -_08134E74: - movs r0, 0x5 - bl PlaySE - movs r0, 0 - movs r1, 0 - bl sub_8198070 - movs r0, 0 - bl ClearWindowTilemap - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_8134CE8 -_08134E94: - str r0, [r1] -_08134E96: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end c3_80BF560 - - thumb_func_start sub_8134EA4 -sub_8134EA4: @ 8134EA4 - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gTasks - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - adds r4, r1 - movs r1, 0xC - ldrsh r0, [r4, r1] - movs r2, 0xE - ldrsh r1, [r4, r2] - bl RtcInitLocalTimeOffset - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r0, =c2_080111BC - str r0, [r4] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8134EA4 - - thumb_func_start c2_080111BC -c2_080111BC: @ 8134EE8 - push {lr} - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08134F02 - bl FreeAllWindowBuffers - ldr r0, =gMain - ldr r0, [r0, 0x8] - bl SetMainCallback2 -_08134F02: - pop {r0} - bx r0 - .pool - thumb_func_end c2_080111BC - - thumb_func_start sub_8134F10 -sub_8134F10: @ 8134F10 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08134F30 - ldr r0, =gTasks - lsls r1, r2, 2 - adds r1, r2 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_8134F40 - str r0, [r1] -_08134F30: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8134F10 - - thumb_func_start sub_8134F40 -sub_8134F40: @ 8134F40 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_8135130 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08134F66 - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_8134F78 - str r0, [r1] -_08134F66: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8134F40 - - thumb_func_start sub_8134F78 -sub_8134F78: @ 8134F78 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_8134FB0 - str r1, [r0] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8134F78 - - thumb_func_start sub_8134FB0 -sub_8134FB0: @ 8134FB0 - push {lr} - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08134FC6 - ldr r0, =gMain - ldr r0, [r0, 0x8] - bl SetMainCallback2 -_08134FC6: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8134FB0 - - thumb_func_start sub_8134FD4 -sub_8134FD4: @ 8134FD4 - push {lr} - lsls r0, 16 - lsrs r0, 16 - adds r1, r0, 0 - cmp r0, 0x3C - bls _08134FE4 - movs r0, 0x6 - b _08134FF6 -_08134FE4: - cmp r0, 0x1E - bls _08134FEC - movs r0, 0x3 - b _08134FF6 -_08134FEC: - cmp r1, 0xA - bhi _08134FF4 - movs r0, 0x1 - b _08134FF6 -_08134FF4: - movs r0, 0x2 -_08134FF6: - pop {r1} - bx r1 - thumb_func_end sub_8134FD4 - - thumb_func_start sub_8134FFC -sub_8134FFC: @ 8134FFC - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r2, 24 - adds r0, r2, 0 - bl sub_8134FD4 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r5, 0x1 - beq _0813501E - cmp r5, 0x2 - beq _08135030 - b _08135044 -_0813501E: - cmp r4, 0 - beq _08135026 - subs r0, r4, r1 - b _0813503C -_08135026: - movs r2, 0xB4 - lsls r2, 1 - adds r0, r2, 0 - subs r0, r1 - b _0813503C -_08135030: - movs r0, 0xB4 - lsls r0, 1 - subs r0, r1 - cmp r4, r0 - bge _08135042 - adds r0, r4, r1 -_0813503C: - lsls r0, 16 - lsrs r4, r0, 16 - b _08135044 -_08135042: - movs r4, 0 -_08135044: - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8134FFC - - thumb_func_start sub_813504C -sub_813504C: @ 813504C - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - cmp r4, 0x1 - beq _08135060 - cmp r4, 0x2 - beq _081350A0 - b _081350DE -_08135060: - ldr r0, =gTasks - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - ldrh r2, [r1, 0xE] - movs r5, 0xE - ldrsh r0, [r1, r5] - cmp r0, 0 - ble _08135080 - subs r0, r2, 0x1 - strh r0, [r1, 0xE] - b _081350DE - .pool -_08135080: - movs r0, 0x3B - strh r0, [r1, 0xE] - ldrh r2, [r1, 0xC] - movs r6, 0xC - ldrsh r0, [r1, r6] - cmp r0, 0 - ble _08135092 - subs r0, r2, 0x1 - b _08135094 -_08135092: - movs r0, 0x17 -_08135094: - strh r0, [r1, 0xC] - adds r0, r3, 0 - adds r1, r4, 0 - bl sub_81350E8 - b _081350DE -_081350A0: - ldr r0, =gTasks - lsls r1, r3, 2 - adds r1, r3 - lsls r1, 3 - adds r1, r0 - ldrh r2, [r1, 0xE] - movs r5, 0xE - ldrsh r0, [r1, r5] - cmp r0, 0x3A - bgt _081350C0 - adds r0, r2, 0x1 - strh r0, [r1, 0xE] - b _081350DE - .pool -_081350C0: - movs r5, 0 - strh r5, [r1, 0xE] - ldrh r2, [r1, 0xC] - movs r6, 0xC - ldrsh r0, [r1, r6] - cmp r0, 0x16 - bgt _081350D4 - adds r0, r2, 0x1 - strh r0, [r1, 0xC] - b _081350D6 -_081350D4: - strh r5, [r1, 0xC] -_081350D6: - adds r0, r3, 0 - adds r1, r4, 0 - bl sub_81350E8 -_081350DE: - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_813504C - - thumb_func_start sub_81350E8 -sub_81350E8: @ 81350E8 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r3, r1, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldrb r0, [r1, 0xC] - cmp r3, 0x1 - beq _0813510C - cmp r3, 0x2 - beq _0813511E - b _0813512A - .pool -_0813510C: - cmp r0, 0xB - beq _08135116 - cmp r0, 0x17 - beq _0813511A - b _0813512A -_08135116: - movs r0, 0 - b _08135128 -_0813511A: - strh r3, [r1, 0x12] - b _0813512A -_0813511E: - cmp r0, 0 - beq _08135128 - cmp r0, 0xC - bne _0813512A - movs r0, 0x1 -_08135128: - strh r0, [r1, 0x12] -_0813512A: - pop {r0} - bx r0 - thumb_func_end sub_81350E8 - - thumb_func_start sub_8135130 -sub_8135130: @ 8135130 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl RtcCalcLocalTime - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r6, r0, r1 - ldr r5, =gLocalTime - movs r0, 0x2 - ldrsb r0, [r5, r0] - strh r0, [r6, 0xC] - movs r0, 0x3 - ldrsb r0, [r5, r0] - strh r0, [r6, 0xE] - movs r0, 0xE - ldrsh r1, [r6, r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 1 - strh r0, [r6, 0x8] - movs r1, 0xC - ldrsh r0, [r6, r1] - movs r1, 0xC - bl __modsi3 - lsls r0, 16 - asrs r0, 16 - lsls r4, r0, 4 - subs r4, r0 - lsls r4, 1 - movs r1, 0xE - ldrsh r0, [r6, r1] - movs r1, 0xA - bl __divsi3 - lsls r0, 16 - asrs r0, 16 - lsls r1, r0, 2 - adds r1, r0 - adds r4, r1 - strh r4, [r6, 0xA] - movs r0, 0x2 - ldrsb r0, [r5, r0] - cmp r0, 0xB - bgt _081351A0 - movs r0, 0 - b _081351A2 - .pool -_081351A0: - movs r0, 0x1 -_081351A2: - strh r0, [r6, 0x12] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8135130 - - thumb_func_start sub_81351AC -sub_81351AC: @ 81351AC - push {r4-r7,lr} - sub sp, 0x4 - adds r6, r0, 0 - ldr r2, =gTasks - movs r0, 0x2E - ldrsh r1, [r6, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r4, [r0, 0x8] - adds r7, r4, 0 - adds r0, r4, 0 - bl Sin2 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _081351D4 - adds r0, 0xF -_081351D4: - lsls r0, 12 - lsrs r5, r0, 16 - adds r0, r4, 0 - bl Cos2 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _081351E8 - adds r0, 0xF -_081351E8: - lsls r1, r0, 12 - lsrs r1, 16 - lsls r3, r5, 16 - lsrs r2, r3, 16 - negs r3, r3 - lsrs r3, 16 - str r1, [sp] - movs r0, 0 - bl SetOamMatrix - ldr r1, =gUnknown_085B22D0 - lsls r2, r7, 1 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r3, r0, 16 - adds r1, 0x1 - adds r2, r1 - movs r0, 0 - ldrsb r0, [r2, r0] - lsls r0, 16 - lsrs r2, r0, 16 - cmp r3, 0x80 - bls _08135224 - movs r1, 0xFF - lsls r1, 8 - adds r0, r1, 0 - orrs r3, r0 -_08135224: - cmp r2, 0x80 - bls _08135230 - movs r1, 0xFF - lsls r1, 8 - adds r0, r1, 0 - orrs r2, r0 -_08135230: - strh r3, [r6, 0x24] - strh r2, [r6, 0x26] - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81351AC - - thumb_func_start sub_8135244 -sub_8135244: @ 8135244 - push {r4-r7,lr} - sub sp, 0x4 - adds r6, r0, 0 - ldr r2, =gTasks - movs r0, 0x2E - ldrsh r1, [r6, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrh r4, [r0, 0xA] - adds r7, r4, 0 - adds r0, r4, 0 - bl Sin2 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _0813526C - adds r0, 0xF -_0813526C: - lsls r0, 12 - lsrs r5, r0, 16 - adds r0, r4, 0 - bl Cos2 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0 - bge _08135280 - adds r0, 0xF -_08135280: - lsls r1, r0, 12 - lsrs r1, 16 - lsls r3, r5, 16 - lsrs r2, r3, 16 - negs r3, r3 - lsrs r3, 16 - str r1, [sp] - movs r0, 0x1 - bl SetOamMatrix - ldr r1, =gUnknown_085B22D0 - lsls r2, r7, 1 - adds r0, r2, r1 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r0, 16 - lsrs r3, r0, 16 - adds r1, 0x1 - adds r2, r1 - movs r0, 0 - ldrsb r0, [r2, r0] - lsls r0, 16 - lsrs r2, r0, 16 - cmp r3, 0x80 - bls _081352BC - movs r1, 0xFF - lsls r1, 8 - adds r0, r1, 0 - orrs r3, r0 -_081352BC: - cmp r2, 0x80 - bls _081352C8 - movs r1, 0xFF - lsls r1, 8 - adds r0, r1, 0 - orrs r2, r0 -_081352C8: - strh r3, [r6, 0x24] - strh r2, [r6, 0x26] - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8135244 - - thumb_func_start sub_81352DC -sub_81352DC: @ 81352DC - push {r4,lr} - adds r4, r0, 0 - ldr r2, =gTasks - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0x12 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _0813531C - ldrh r1, [r4, 0x30] - adds r0, r1, 0 - subs r0, 0x3C - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1D - bhi _08135308 - adds r0, r1, 0x5 - strh r0, [r4, 0x30] -_08135308: - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0x3B - bgt _0813533C - adds r0, r1, 0x1 - b _0813533A - .pool -_0813531C: - ldrh r1, [r4, 0x30] - adds r0, r1, 0 - subs r0, 0x2E - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1D - bhi _0813532E - subs r0, r1, 0x5 - strh r0, [r4, 0x30] -_0813532E: - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0x4B - ble _0813533C - subs r0, r1, 0x1 -_0813533A: - strh r0, [r4, 0x30] -_0813533C: - ldrh r0, [r4, 0x30] - bl Cos2 - lsls r0, 16 - asrs r0, 16 - lsls r1, r0, 4 - subs r1, r0 - lsls r0, r1, 1 - cmp r0, 0 - bge _08135354 - ldr r1, =0x00000fff - adds r0, r1 -_08135354: - asrs r0, 12 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x30] - bl Sin2 - lsls r0, 16 - asrs r0, 16 - lsls r1, r0, 4 - subs r1, r0 - lsls r0, r1, 1 - cmp r0, 0 - bge _08135370 - ldr r2, =0x00000fff - adds r0, r2 -_08135370: - asrs r0, 12 - strh r0, [r4, 0x26] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81352DC - - thumb_func_start sub_8135380 -sub_8135380: @ 8135380 - push {r4,lr} - adds r4, r0, 0 - ldr r2, =gTasks - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r1, 0x12 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _081353C0 - ldrh r1, [r4, 0x30] - adds r0, r1, 0 - subs r0, 0x69 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1D - bhi _081353AC - adds r0, r1, 0x5 - strh r0, [r4, 0x30] -_081353AC: - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0x68 - bgt _081353E0 - adds r0, r1, 0x1 - b _081353DE - .pool -_081353C0: - ldrh r1, [r4, 0x30] - adds r0, r1, 0 - subs r0, 0x5B - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1D - bhi _081353D2 - subs r0, r1, 0x5 - strh r0, [r4, 0x30] -_081353D2: - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0x78 - ble _081353E0 - subs r0, r1, 0x1 -_081353DE: - strh r0, [r4, 0x30] -_081353E0: - ldrh r0, [r4, 0x30] - bl Cos2 - lsls r0, 16 - asrs r0, 16 - lsls r1, r0, 4 - subs r1, r0 - lsls r0, r1, 1 - cmp r0, 0 - bge _081353F8 - ldr r1, =0x00000fff - adds r0, r1 -_081353F8: - asrs r0, 12 - strh r0, [r4, 0x24] - ldrh r0, [r4, 0x30] - bl Sin2 - lsls r0, 16 - asrs r0, 16 - lsls r1, r0, 4 - subs r1, r0 - lsls r0, r1, 1 - cmp r0, 0 - bge _08135414 - ldr r2, =0x00000fff - adds r0, r2 -_08135414: - asrs r0, 12 - strh r0, [r4, 0x26] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8135380 - - .align 2, 0 @ Don't pad with nop. diff --git a/asmdiff.sh b/asmdiff.sh index 1d2141c32..1d2141c32 100644..100755 --- a/asmdiff.sh +++ b/asmdiff.sh diff --git a/constants/ability_constants.inc b/constants/ability_constants.inc deleted file mode 100644 index 8ccc872f7..000000000 --- a/constants/ability_constants.inc +++ /dev/null @@ -1,78 +0,0 @@ - .set ABILITY_NONE, 0x00 - .set ABILITY_STENCH, 0x01 - .set ABILITY_DRIZZLE, 0x02 - .set ABILITY_SPEED_BOOST, 0x03 - .set ABILITY_BATTLE_ARMOR, 0x04 - .set ABILITY_STURDY, 0x05 - .set ABILITY_DAMP, 0x06 - .set ABILITY_LIMBER, 0x07 - .set ABILITY_SAND_VEIL, 0x08 - .set ABILITY_STATIC, 0x09 - .set ABILITY_VOLT_ABSORB, 0x0a - .set ABILITY_WATER_ABSORB, 0x0b - .set ABILITY_OBLIVIOUS, 0x0c - .set ABILITY_CLOUD_NINE, 0x0d - .set ABILITY_COMPOUND_EYES, 0x0e - .set ABILITY_INSOMNIA, 0x0f - .set ABILITY_COLOR_CHANGE, 0x10 - .set ABILITY_IMMUNITY, 0x11 - .set ABILITY_FLASH_FIRE, 0x12 - .set ABILITY_SHIELD_DUST, 0x13 - .set ABILITY_OWN_TEMPO, 0x14 - .set ABILITY_SUCTION_CUPS, 0x15 - .set ABILITY_INTIMIDATE, 0x16 - .set ABILITY_SHADOW_TAG, 0x17 - .set ABILITY_ROUGH_SKIN, 0x18 - .set ABILITY_WONDER_GUARD, 0x19 - .set ABILITY_LEVITATE, 0x1a - .set ABILITY_EFFECT_SPORE, 0x1b - .set ABILITY_SYNCHRONIZE, 0x1c - .set ABILITY_CLEAR_BODY, 0x1d - .set ABILITY_NATURAL_CURE, 0x1e - .set ABILITY_LIGHTNING_ROD, 0x1f - .set ABILITY_SERENE_GRACE, 0x20 - .set ABILITY_SWIFT_SWIM, 0x21 - .set ABILITY_CHLOROPHYLL, 0x22 - .set ABILITY_ILLUMINATE, 0x23 - .set ABILITY_TRACE, 0x24 - .set ABILITY_HUGE_POWER, 0x25 - .set ABILITY_POISON_POINT, 0x26 - .set ABILITY_INNER_FOCUS, 0x27 - .set ABILITY_MAGMA_ARMOR, 0x28 - .set ABILITY_WATER_VEIL, 0x29 - .set ABILITY_MAGNET_PULL, 0x2a - .set ABILITY_SOUNDPROOF, 0x2b - .set ABILITY_RAIN_DISH, 0x2c - .set ABILITY_SAND_STREAM, 0x2d - .set ABILITY_PRESSURE, 0x2e - .set ABILITY_THICK_FAT, 0x2f - .set ABILITY_EARLY_BIRD, 0x30 - .set ABILITY_FLAME_BODY, 0x31 - .set ABILITY_RUN_AWAY, 0x32 - .set ABILITY_KEEN_EYE, 0x33 - .set ABILITY_HYPER_CUTTER, 0x34 - .set ABILITY_PICKUP, 0x35 - .set ABILITY_TRUANT, 0x36 - .set ABILITY_HUSTLE, 0x37 - .set ABILITY_CUTE_CHARM, 0x38 - .set ABILITY_PLUS, 0x39 - .set ABILITY_MINUS, 0x3a - .set ABILITY_FORECAST, 0x3b - .set ABILITY_STICKY_HOLD, 0x3c - .set ABILITY_SHED_SKIN, 0x3d - .set ABILITY_GUTS, 0x3e - .set ABILITY_MARVEL_SCALE, 0x3f - .set ABILITY_LIQUID_OOZE, 0x40 - .set ABILITY_OVERGROW, 0x41 - .set ABILITY_BLAZE, 0x42 - .set ABILITY_TORRENT, 0x43 - .set ABILITY_SWARM, 0x44 - .set ABILITY_ROCK_HEAD, 0x45 - .set ABILITY_DROUGHT, 0x46 - .set ABILITY_ARENA_TRAP, 0x47 - .set ABILITY_VITAL_SPIRIT, 0x48 - .set ABILITY_WHITE_SMOKE, 0x49 - .set ABILITY_PURE_POWER, 0x4a - .set ABILITY_SHELL_ARMOR, 0x4b - .set ABILITY_CACOPHONY, 0x4c - .set ABILITY_AIR_LOCK, 0x4d diff --git a/constants/battle_constants.inc b/constants/battle_constants.inc new file mode 100644 index 000000000..7309d68cd --- /dev/null +++ b/constants/battle_constants.inc @@ -0,0 +1,170 @@ +@ battle types + .set BATTLE_TYPE_DOUBLE , 0x0001 + .set BATTLE_TYPE_LINK, 0x0002 + .set BATTLE_TYPE_WILD, 0x0004 + .set BATTLE_TYPE_TRAINER, 0x0008 + .set BATTLE_TYPE_FIRST_BATTLE, 0x0010 + .set BATTLE_TYPE_20, 0x0020 + .set BATTLE_TYPE_MULTI, 0x0040 + .set BATTLE_TYPE_SAFARI, 0x0080 + .set BATTLE_TYPE_BATTLE_TOWER, 0x0100 + .set BATTLE_TYPE_WALLY_TUTORIAL, 0x0200 + .set BATTLE_TYPE_ROAMER, 0x0400 + .set BATTLE_TYPE_EREADER_TRAINER, 0x0800 + .set BATTLE_TYPE_KYOGRE_GROUDON, 0x1000 + .set BATTLE_TYPE_LEGENDARY, 0x2000 + .set BATTLE_TYPE_REGI, 0x4000 + .set BATTLE_TYPE_TWO_OPPONENTS, 0x8000 + .set BATTLE_TYPE_DOME, 0x10000 + .set BATTLE_TYPE_PALACE, 0x20000 + .set BATTLE_TYPE_ARENA, 0x40000 + .set BATTLE_TYPE_FACTORY, 0x80000 + .set BATTLE_TYPE_PIKE, 0x100000 + .set BATTLE_TYPE_PYRAMID, 0x200000 + .set BATTLE_TYPE_INGAME_PARTNER, 0x400000 + .set BATTLE_TYPE_x800000, 0x800000 + .set BATTLE_TYPE_RECORDED, 0x1000000 + .set BATTLE_TYPE_x2000000, 0x2000000 + .set BATTLE_TYPE_x4000000, 0x4000000 + .set BATTLE_TYPE_SECRET_BASE, 0x8000000 + .set BATTLE_TYPE_GROUDON, 0x10000000 + .set BATTLE_TYPE_KYOGRE, 0x20000000 + .set BATTLE_TYPE_RAYQUAZA, 0x40000000 + .set BATTLE_TYPE_x80000000, 0x80000000 + +@ battle outcomes + .set WON, 0x1 + .set LOST, 0x2 + .set DREW, 0x3 + .set RAN, 0x4 + .set PLAYER_TELEPORTED, 0x5 + .set MON_FLED, 0x6 + .set CAUGHT, 0x7 + .set OUT_OF_BALLS, 0x8 + .set FORFEITED, 0x9 + .set OPPONENT_TELEPORTED, 0xA + +@ identities + .set IDENTITY_PLAYER_MON1, 0 + .set IDENTITY_OPPONENT_MON1, 1 + .set IDENTITY_PLAYER_MON2, 2 + .set IDENTITY_OPPONENT_MON2, 3 + +@ status 1 + .set STATUS_SLEEP, 0x7 + .set STATUS_POISON, 0x8 + .set STATUS_BURN, 0x10 + .set STATUS_FREEZE, 0x20 + .set STATUS_PARALYSIS, 0x40 + .set STATUS_TOXIC_POISON, 0x80 + .set STATUS_TOXIC_COUNTER, 0xF00 + + .set STATUS_ANY, STATUS_SLEEP | STATUS_POISON | STATUS_BURN | STATUS_FREEZE | STATUS_PARALYSIS | STATUS_TOXIC_POISON + +@ status 2 + .set STATUS2_CONFUSION, 0x00000007 + .set STATUS2_FLINCHED, 0x00000008 + .set STATUS2_UPROAR, 0x00000070 + .set STATUS2_BIDE, 0x00000300 + .set STATUS2_LOCK_CONFUSE, 0x00000C00 + .set STATUS2_MULTIPLETURNS, 0x00001000 + .set STATUS2_WRAPPED, 0x0000E000 + .set STATUS2_INFATUATION, 0x000F0000 + .set STATUS2_FOCUS_ENERGY, 0x00100000 + .set STATUS2_TRANSFORMED, 0x00200000 + .set STATUS2_RECHARGE, 0x00400000 + .set STATUS2_RAGE, 0x00800000 + .set STATUS2_SUBSTITUTE, 0x01000000 + .set STATUS2_DESTINY_BOND, 0x02000000 + .set STATUS2_ESCAPE_PREVENTION, 0x04000000 + .set STATUS2_NIGHTMARE, 0x08000000 + .set STATUS2_CURSED, 0x10000000 + .set STATUS2_FORESIGHT, 0x20000000 + .set STATUS2_DEFENSE_CURL, 0x40000000 + .set STATUS2_TORMENT, 0x80000000 + +@ status 3 + .set STATUS3_LEECHSEED_BANK, 0x3 + .set STATUS3_LEECHSEED, 0x4 + .set STATUS3_ALWAYS_HITS, 0x18 + .set STATUS3_PERISH_SONG, 0x20 + .set STATUS3_ON_AIR, 0x40 + .set STATUS3_UNDERGROUND, 0x80 + .set STATUS3_MINIMIZED, 0x100 + .set STATUS3_ROOTED, 0x400 + .set STATUS3_CHARGED_UP, 0x200 + .set STATUS3_YAWN, 0x1800 + .set STATUS3_IMPRISONED_OTHERS, 0x2000 + .set STATUS3_GRUDGE, 0x4000 + .set STATUS3_CANT_SCORE_A_CRIT, 0x8000 + .set STATUS3_MUDSPORT, 0x10000 + .set STATUS3_WATERSPORT, 0x20000 + .set STATUS3_UNDERWATER, 0x40000 + .set STATUS3_INTIMIDATE_POKES, 0x80000 + .set STATUS3_TRACE, 0x100000 + +@ side status + .set SIDE_STATUS_REFLECT, 0x1 + .set SIDE_STATUS_LIGHTSCREEN, 0x2 + .set SIDE_STATUS_X4, 0x4 + .set SIDE_STATUS_SPIKES, 0x10 + .set SIDE_STATUS_SAFEGUARD, 0x20 + .set SIDE_STATUS_FUTUREATTACK, 0x40 + .set SIDE_STATUS_MIST, 0x100 + .set SIDE_STATUS_SPIKES_DAMAGED, 0x200 + +@ stats + .set HP, 0x0 + .set ATK, 0x1 + .set DEF, 0x2 + .set SPEED, 0x3 + .set SPATK, 0x4 + .set SPDEF, 0x5 + .set ACC, 0x6 + .set EVASION, 0x7 + +@ weather flags + .set WEATHER_RAIN_TEMPORARY, 0x01 + .set WEATHER_RAIN_DOWNPOUR, 0x02 + .set WEATHER_RAIN_PERMANENT, 0x04 + .set WEATHER_SANDSTORM_TEMPORARY, 0x08 + .set WEATHER_SANDSTORM_PERMANENT, 0x10 + .set WEATHER_SUN_TEMPORARY, 0x20 + .set WEATHER_SUN_PERMANENT, 0x40 + .set WEATHER_HAIL, 0x80 + +@ hitmarker + .set HITMARKER_x10, 0x00000010 + .set HITMARKER_x20, 0x00000020 + .set HITMARKER_DESTINYBOND, 0x00000040 + .set HITMARKER_NO_ANIMATIONS, 0x00000080 + .set HITMARKER_IGNORE_SUBSTITUTE, 0x00000100 + .set HITMARKER_NO_ATTACKSTRING, 0x00000200 + .set HITMARKER_ATTACKSTRING_PRINTED, 0x00000400 + .set HITMARKER_NO_PPDEDUCT, 0x00000800 + .set HITMARKER_PURSUIT_TRAP, 0x00001000 + .set HITMARKER_IGNORE_SAFEGUARD, 0x00002000 + .set HITMARKER_SYNCHRONISE_EFFECT, 0x00004000 + .set HITMARKER_RUN, 0x00008000 + .set HITMARKER_IGNORE_ON_AIR, 0x00010000 + .set HITMARKER_IGNORE_UNDERGROUND, 0x00020000 + .set HITMARKER_IGNORE_UNDERWATER, 0x00040000 + .set HITMARKER_UNABLE_TO_USE_MOVE, 0x00080000 + .set HITMARKER_x100000, 0x00100000 + .set HITMARKER_x200000, 0x00200000 + .set HITMARKER_x400000, 0x00400000 + .set HITMARKER_x800000, 0x00800000 + .set HITMARKER_GRUDGE, 0x01000000 + .set HITMARKER_OBEYS, 0x02000000 + .set HITMARKER_x4000000, 0x04000000 + .set HITMARKER_x8000000, 0x08000000 + +@ move flags + .set MOVESTATUS_MISSED, 0x1 + .set MOVESTATUS_SUPEREFFECTIVE, 0x2 + .set MOVESTATUS_NOTVERYEFFECTIVE, 0x4 + .set MOVESTATUS_NOTAFFECTED, 0x8 + .set MOVESTATUS_ONEHITKO, 0x10 + .set MOVESTATUS_FAILED, 0x20 + .set MOVESTATUS_ENDURED, 0x40 + .set MOVESTATUS_HUNGON, 0x80 diff --git a/constants/battle_script_constants.inc b/constants/battle_script_constants.inc new file mode 100644 index 000000000..fe0e7dddc --- /dev/null +++ b/constants/battle_script_constants.inc @@ -0,0 +1,169 @@ +@ animation ids + .set ANIM_CASTFORM_CHANGE, 0x0 + .set ANIM_STATS_CHANGE, 0x1 + .set ANIM_SUBSTITUTE_FADE, 0x2 + .set ANIM_SUBSTITUTE_APPEAR, 0x3 + .set ANIM_x4, 0x4 + .set ANIM_ITEM_KNOCKOFF, 0x5 + .set ANIM_TURN_TRAP, 0x6 + .set ANIM_ITEM_EFFECT, 0x7 + .set ANIM_SMOKEBALL_ESCAPE, 0x8 + .set ANIM_HANGED_ON, 0x9 + .set ANIM_RAIN_CONTINUES, 0xA + .set ANIM_SUN_CONTINUES, 0xB + .set ANIM_SANDSTORM_CONTINUES, 0xC + .set ANIM_HAIL_CONTINUES, 0xD + .set ANIM_LEECH_SEED_DRAIN, 0xE + .set ANIM_MON_HIT, 0xF + .set ANIM_ITEM_STEAL, 0x10 + .set ANIM_SNATCH_MOVE, 0x11 + .set ANIM_FUTURE_SIGHT_HIT, 0x12 + .set ANIM_DOOM_DESIRE_HIT, 0x13 + .set ANIM_x14, 0x14 + .set ANIM_INGRAIN_HEAL, 0x15 + .set ANIM_WISH_HEAL, 0x16 + +@ atk 80 + .set ATK80_DMG_CHANGE_SIGN, 0x0 + .set ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP, 0x1 + .set ATK80_DMG_DOUBLED, 0x2 + +@ compare operands + .set EQUAL, 0x0 + .set NOT_EQUAL, 0x1 + .set GREATER_THAN, 0x2 + .set LESS_THAN, 0x3 + .set COMMON_BITS, 0x4 + .set NO_COMMON_BITS, 0x5 + +@ move effects + .set EFFECT_SLEEP, 0x1 + .set EFFECT_POISON, 0x2 + .set EFFECT_BURN, 0x3 + .set EFFECT_FREEZE, 0x4 + .set EFFECT_PARALYSIS, 0x5 + .set EFFECT_TOXIC, 0x6 + .set EFFECT_CONFUSION, 0x7 + .set EFFECT_FLINCH, 0x8 + .set EFFECT_TRI_ATTACK, 0x9 + .set EFFECT_UPROAR, 0xA + .set EFFECT_PAYDAY, 0xB + .set EFFECT_CHARGING, 0xC + .set EFFECT_WRAP, 0xD + .set EFFECT_RECOIL_25, 0xE + .set EFFECT_ATK_PLUS_1, 0xF + .set EFFECT_DEF_PLUS_1, 0x10 + .set EFFECT_SPD_PLUS_1, 0x11 + .set EFFECT_SP_ATK_PLUS_1, 0x12 + .set EFFECT_SP_DEF_PLUS_1, 0x13 + .set EFFECT_ACC_PLUS_1, 0x14 + .set EFFECT_EVS_PLUS_1, 0x15 + .set EFFECT_ATK_MINUS_1, 0x16 + .set EFFECT_DEF_MINUS_1, 0x17 + .set EFFECT_SPD_MINUS_1, 0x18 + .set EFFECT_SP_ATK_MINUS_1, 0x19 + .set EFFECT_SP_DEF_MINUS_1, 0x1A + .set EFFECT_ACC_MINUS_1, 0x1B + .set EFFECT_EVS_MINUS_1, 0x1C + .set EFFECT_RECHARGE, 0x1D + .set EFFECT_RAGE, 0x1E + .set EFFECT_STEAL_ITEM, 0x1F + .set EFFECT_PREVENT_ESCAPE, 0x20 + .set EFFECT_NIGHTMARE, 0x21 + .set EFFECT_ALL_STATS_UP, 0x22 + .set EFFECT_RAPIDSPIN, 0x23 + .set EFFECT_REMOVE_PARALYSIS, 0x24 + .set EFFECT_ATK_DEF_DOWN, 0x25 + .set EFFECT_RECOIL_33_PARALYSIS, 0x26 + .set EFFECT_ATK_PLUS_2, 0x27 + .set EFFECT_DEF_PLUS_2, 0x28 + .set EFFECT_SPD_PLUS_2, 0x29 + .set EFFECT_SP_ATK_PLUS_2, 0x2A + .set EFFECT_SP_DEF_PLUS_2, 0x2B + .set EFFECT_ACC_PLUS_2, 0x2C + .set EFFECT_EVS_PLUS_2, 0x2D + .set EFFECT_ATK_MINUS_2, 0x2E + .set EFFECT_DEF_MINUS_2, 0x2F + .set EFFECT_SPD_MINUS_2, 0x30 + .set EFFECT_SP_ATK_MINUS_2, 0x31 + .set EFFECT_SP_DEF_MINUS_2, 0x32 + .set EFFECT_ACC_MINUS_2, 0x33 + .set EFFECT_EVS_MINUS_2, 0x34 + .set EFFECT_THRASH, 0x35 + .set EFFECT_KNOCK_OFF, 0x36 + .set EFFECT_NOTHING_37, 0x37 + .set EFFECT_NOTHING_38, 0x38 + .set EFFECT_NOTHING_39, 0x39 + .set EFFECT_NOTHING_3A, 0x3A + .set EFFECT_SP_ATK_TWO_DOWN, 0x3B + .set EFFECT_NOTHING_3C, 0x3C + .set EFFECT_NOTHING_3D, 0x3D + .set EFFECT_NOTHING_3E, 0x3E + .set EFFECT_NOTHING_3F, 0x3F + + .set AFFECTS_USER, 0x40 + .set CERTAIN, 0x80 + +@ accuracy calc + .set NO_ACC_CALC, 0xFFFE + .set NO_ACC_CALC_CHECK_LOCK_ON, 0xFFFF + .set ACC_CURR_MOVE, 0x0 + +@ bank values + .set TARGET, 0x0 + .set ATTACKER, 0x1 + .set EFFECT_BANK, 0x2 + .set GBANK_1, 0x3 + .set ATTACKER_WITH_PARTNER, 0x4 @ only for cmd98 + .set BANK0, 0x7 + .set SCRIPTING_BANK, 0xA + .set OPPONENT1, 0xC + +@ various + .set VARIOUS_CANCEL_MULTI_TURN_MOVES, 0 + .set VARIOUS_SET_MAGIC_COAT_TARGET, 1 + .set VARIOUS_IS_RUNNING_IMPOSSIBLE, 2 + .set VARIOUS_GET_MOVE_TARGET, 3 + .set VARIOUS_RESET_INTIMIDATE_TRACE_BITS, 5 + .set VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP, 6 + .set VARIOUS_EMIT_YESNOBOX, 13 + .set VARIOUS_WAIT_CRY, 18 + .set VARIOUS_RETURN_OPPONENT_MON1, 19 + .set VARIOUS_RETURN_OPPONENT_MON2, 20 + .set VARIOUS_SET_TELEPORT_OUTCOME, 25 + .set VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC, 26 + +@ jumpifcant switch flag argument + .set ATK4F_DONT_CHECK_STATUSES, 0x80 + +@ battle scripting struct + .equiv sPAINSPLIT_HP, gBattleScripting + .equiv sBIDE_DMG, gBattleScripting + 4 + .equiv sMULTIHIT_STRING, gBattleScripting + 8 + .equiv sDMG_MULTIPLIER, gBattleScripting + 0xE + .equiv sTWOTURN_STRINGID, gBattleScripting + 0xF + .equiv sANIM_ARG1, gBattleScripting + 0x10 + .equiv sANIM_ARG2, gBattleScripting + 0x11 + .equiv sTRIPLE_KICK_POWER, gBattleScripting + 0x12 + .equiv sMOVEEND_STATE, gBattleScripting + 0x14 + .equiv sBANK_WITH_ABILITY, gBattleScripting + 0x15 + .equiv sMULTIHIT_EFFECT, gBattleScripting + 0x16 + .equiv sBANK, gBattleScripting + 0x17 + .equiv sANIM_TURN, gBattleScripting + 0x18 + .equiv sANIM_TARGETS_HIT, gBattleScripting + 0x19 + .equiv sSTATCHANGER, gBattleScripting + 0x1A + .equiv sFIELD_1B, gBattleScripting + 0x1B + .equiv sGIVEEXP_STATE, gBattleScripting + 0x1C + .equiv sBATTLE_STYLE, gBattleScripting + 0x1D + .equiv sLVLBOX_STATE, gBattleScripting + 0x1E + .equiv sLEARNMOVE_STATE, gBattleScripting + 0x1F + .equiv sFIELD_20, gBattleScripting + 0x20 + .equiv sRESHOW_MAIN_STATE, gBattleScripting + 0x21 + .equiv sRESHOW_HELPER_STATE, gBattleScripting + 0x22 + .equiv sFIELD_23, gBattleScripting + 0x23 + .equiv sFIELD_24, gBattleScripting + 0x24 + .equiv sMULTIPLAYER_ID, gBattleScripting + 0x25 + +@ battle communication struct + .equiv cEFFECT_CHOOSER, gBattleCommunication + 3 + .equiv cMULTISTRING_CHOOSER, gBattleCommunication + 5 diff --git a/constants/battle_text.inc b/constants/battle_text.inc new file mode 100644 index 000000000..1d3a5f346 --- /dev/null +++ b/constants/battle_text.inc @@ -0,0 +1,375 @@ + .set STRINGID_INTROMSG, 0 + .set STRINGID_INTROSENDOUT, 1 + .set STRINGID_RETURNMON, 2 + .set STRINGID_SWITCHINMON, 3 + .set STRINGID_USEDMOVE, 4 + .set STRINGID_BATTLEEND, 5 + .set STRINGID_TRAINER1LOSETEXT, 12 + .set STRINGID_PKMNGAINEDEXP, 13 + .set STRINGID_PKMNGREWTOLV, 14 + .set STRINGID_PKMNLEARNEDMOVE, 15 + .set STRINGID_TRYTOLEARNMOVE1, 16 + .set STRINGID_TRYTOLEARNMOVE2, 17 + .set STRINGID_TRYTOLEARNMOVE3, 18 + .set STRINGID_PKMNFORGOTMOVE, 19 + .set STRINGID_STOPLEARNINGMOVE, 20 + .set STRINGID_DIDNOTLEARNMOVE, 21 + .set STRINGID_PKMNLEARNEDMOVE2, 22 + .set STRINGID_ATTACKMISSED, 23 + .set STRINGID_PKMNPROTECTEDITSELF, 24 + .set STRINGID_STATSWONTINCREASE2, 25 + .set STRINGID_AVOIDEDDAMAGE, 26 + .set STRINGID_ITDOESNTAFFECT, 27 + .set STRINGID_ATTACKERFAINTED, 28 + .set STRINGID_TARGETFAINTED, 29 + .set STRINGID_PLAYERGOTMONEY, 30 + .set STRINGID_PLAYERWHITEOUT, 31 + .set STRINGID_PLAYERWHITEOUT2, 32 + .set STRINGID_PREVENTSESCAPE, 33 + .set STRINGID_HITXTIMES, 34 + .set STRINGID_PKMNFELLASLEEP, 35 + .set STRINGID_PKMNMADESLEEP, 36 + .set STRINGID_PKMNALREADYASLEEP, 37 + .set STRINGID_PKMNALREADYASLEEP2, 38 + .set STRINGID_PKMNWASNTAFFECTED, 39 + .set STRINGID_PKMNWASPOISONED, 40 + .set STRINGID_PKMNPOISONEDBY, 41 + .set STRINGID_PKMNHURTBYPOISON, 42 + .set STRINGID_PKMNALREADYPOISONED, 43 + .set STRINGID_PKMNBADLYPOISONED, 44 + .set STRINGID_PKMNENERGYDRAINED, 45 + .set STRINGID_PKMNWASBURNED, 46 + .set STRINGID_PKMNBURNEDBY, 47 + .set STRINGID_PKMNHURTBYBURN, 48 + .set STRINGID_PKMNWASFROZEN, 49 + .set STRINGID_PKMNFROZENBY, 50 + .set STRINGID_PKMNISFROZEN, 51 + .set STRINGID_PKMNWASDEFROSTED, 52 + .set STRINGID_PKMNWASDEFROSTED2, 53 + .set STRINGID_PKMNWASDEFROSTEDBY, 54 + .set STRINGID_PKMNWASPARALYZED, 55 + .set STRINGID_PKMNWASPARALYZEDBY, 56 + .set STRINGID_PKMNISPARALYZED, 57 + .set STRINGID_PKMNISALREADYPARALYZED, 58 + .set STRINGID_PKMNHEALEDPARALYSIS, 59 + .set STRINGID_PKMNDREAMEATEN, 60 + .set STRINGID_STATSWONTINCREASE, 61 + .set STRINGID_STATSWONTDECREASE, 62 + .set STRINGID_TEAMSTOPPEDWORKING, 63 + .set STRINGID_FOESTOPPEDWORKING, 64 + .set STRINGID_PKMNISCONFUSED, 65 + .set STRINGID_PKMNHEALEDCONFUSION, 66 + .set STRINGID_PKMNWASCONFUSED, 67 + .set STRINGID_PKMNALREADYCONFUSED, 68 + .set STRINGID_PKMNFELLINLOVE, 69 + .set STRINGID_PKMNINLOVE, 70 + .set STRINGID_PKMNIMMOBILIZEDBYLOVE, 71 + .set STRINGID_PKMNBLOWNAWAY, 72 + .set STRINGID_PKMNCHANGEDTYPE, 73 + .set STRINGID_PKMNFLINCHED, 74 + .set STRINGID_PKMNREGAINEDHEALTH, 75 + .set STRINGID_PKMNHPFULL, 76 + .set STRINGID_PKMNRAISEDSPDEF, 77 + .set STRINGID_PKMNRAISEDDEF, 78 + .set STRINGID_PKMNCOVEREDBYVEIL, 79 + .set STRINGID_PKMNUSEDSAFEGUARD, 80 + .set STRINGID_PKMNSAFEGUARDEXPIRED, 81 + .set STRINGID_PKMNWENTTOSLEEP, 82 + .set STRINGID_PKMNSLEPTHEALTHY, 83 + .set STRINGID_PKMNWHIPPEDWHIRLWIND, 84 + .set STRINGID_PKMNTOOKSUNLIGHT, 85 + .set STRINGID_PKMNLOWEREDHEAD, 86 + .set STRINGID_PKMNISGLOWING, 87 + .set STRINGID_PKMNFLEWHIGH, 88 + .set STRINGID_PKMNDUGHOLE, 89 + .set STRINGID_PKMNSQUEEZEDBYBIND, 90 + .set STRINGID_PKMNTRAPPEDINVORTEX, 91 + .set STRINGID_PKMNWRAPPEDBY, 92 + .set STRINGID_PKMNCLAMPED, 93 + .set STRINGID_PKMNHURTBY, 94 + .set STRINGID_PKMNFREEDFROM, 95 + .set STRINGID_PKMNCRASHED, 96 + .set STRINGID_PKMNSHROUDEDINMIST, 97 + .set STRINGID_PKMNPROTECTEDBYMIST, 98 + .set STRINGID_PKMNGETTINGPUMPED, 99 + .set STRINGID_PKMNHITWITHRECOIL, 100 + .set STRINGID_PKMNPROTECTEDITSELF2, 101 + .set STRINGID_PKMNBUFFETEDBYSANDSTORM, 102 + .set STRINGID_PKMNPELTEDBYHAIL, 103 + .set STRINGID_PKMNSEEDED, 104 + .set STRINGID_PKMNEVADEDATTACK, 105 + .set STRINGID_PKMNSAPPEDBYLEECHSEED, 106 + .set STRINGID_PKMNFASTASLEEP, 107 + .set STRINGID_PKMNWOKEUP, 108 + .set STRINGID_PKMNUPROARKEPTAWAKE, 109 + .set STRINGID_PKMNWOKEUPINUPROAR, 110 + .set STRINGID_PKMNCAUSEDUPROAR, 111 + .set STRINGID_PKMNMAKINGUPROAR, 112 + .set STRINGID_PKMNCALMEDDOWN, 113 + .set STRINGID_PKMNCANTSLEEPINUPROAR, 114 + .set STRINGID_PKMNSTOCKPILED, 115 + .set STRINGID_PKMNCANTSTOCKPILE, 116 + .set STRINGID_PKMNCANTSLEEPINUPROAR2, 117 + .set STRINGID_UPROARKEPTPKMNAWAKE, 118 + .set STRINGID_PKMNSTAYEDAWAKEUSING, 119 + .set STRINGID_PKMNSTORINGENERGY, 120 + .set STRINGID_PKMNUNLEASHEDENERGY, 121 + .set STRINGID_PKMNFATIGUECONFUSION, 122 + .set STRINGID_PKMNPICKEDUPITEM, 123 + .set STRINGID_PKMNUNAFFECTED, 124 + .set STRINGID_PKMNTRANSFORMEDINTO, 125 + .set STRINGID_PKMNMADESUBSTITUTE, 126 + .set STRINGID_PKMNHASSUBSTITUTE, 127 + .set STRINGID_SUBSTITUTEDAMAGED, 128 + .set STRINGID_PKMNSUBSTITUTEFADED, 129 + .set STRINGID_PKMNMUSTRECHARGE, 130 + .set STRINGID_PKMNRAGEBUILDING, 131 + .set STRINGID_PKMNMOVEWASDISABLED, 132 + .set STRINGID_PKMNMOVEISDISABLED, 133 + .set STRINGID_PKMNMOVEDISABLEDNOMORE, 134 + .set STRINGID_PKMNGOTENCORE, 135 + .set STRINGID_PKMNENCOREENDED, 136 + .set STRINGID_PKMNTOOKAIM, 137 + .set STRINGID_PKMNSKETCHEDMOVE, 138 + .set STRINGID_PKMNTRYINGTOTAKEFOE, 139 + .set STRINGID_PKMNTOOKFOE, 140 + .set STRINGID_PKMNREDUCEDPP, 141 + .set STRINGID_PKMNSTOLEITEM, 142 + .set STRINGID_TARGETCANTESCAPENOW, 143 + .set STRINGID_PKMNFELLINTONIGHTMARE, 144 + .set STRINGID_PKMNLOCKEDINNIGHTMARE, 145 + .set STRINGID_PKMNLAIDCURSE, 146 + .set STRINGID_PKMNAFFLICTEDBYCURSE, 147 + .set STRINGID_SPIKESSCATTERED, 148 + .set STRINGID_PKMNHURTBYSPIKES, 149 + .set STRINGID_PKMNIDENTIFIED, 150 + .set STRINGID_PKMNPERISHCOUNTFELL, 151 + .set STRINGID_PKMNBRACEDITSELF, 152 + .set STRINGID_PKMNENDUREDHIT, 153 + .set STRINGID_MAGNITUDESTRENGTH, 154 + .set STRINGID_PKMNCUTHPMAXEDATTACK, 155 + .set STRINGID_PKMNCOPIEDSTATCHANGES, 156 + .set STRINGID_PKMNGOTFREE, 157 + .set STRINGID_PKMNSHEDLEECHSEED, 158 + .set STRINGID_PKMNBLEWAWAYSPIKES, 159 + .set STRINGID_PKMNFLEDFROMBATTLE, 160 + .set STRINGID_PKMNFORESAWATTACK, 161 + .set STRINGID_PKMNTOOKATTACK, 162 + .set STRINGID_PKMNATTACK, 163 + .set STRINGID_PKMNCENTERATTENTION, 164 + .set STRINGID_PKMNCHARGINGPOWER, 165 + .set STRINGID_NATUREPOWERTURNEDINTO, 166 + .set STRINGID_PKMNSTATUSNORMAL, 167 + .set STRINGID_PKMNHASNOMOVESLEFT, 168 + .set STRINGID_PKMNSUBJECTEDTOTORMENT, 169 + .set STRINGID_PKMNCANTUSEMOVETORMENT, 170 + .set STRINGID_PKMNTIGHTENINGFOCUS, 171 + .set STRINGID_PKMNFELLFORTAUNT, 172 + .set STRINGID_PKMNCANTUSEMOVETAUNT, 173 + .set STRINGID_PKMNREADYTOHELP, 174 + .set STRINGID_PKMNSWITCHEDITEMS, 175 + .set STRINGID_PKMNCOPIEDFOE, 176 + .set STRINGID_PKMNMADEWISH, 177 + .set STRINGID_PKMNWISHCAMETRUE, 178 + .set STRINGID_PKMNPLANTEDROOTS, 179 + .set STRINGID_PKMNABSORBEDNUTRIENTS, 180 + .set STRINGID_PKMNANCHOREDITSELF, 181 + .set STRINGID_PKMNWASMADEDROWSY, 182 + .set STRINGID_PKMNKNOCKEDOFF, 183 + .set STRINGID_PKMNSWAPPEDABILITIES, 184 + .set STRINGID_PKMNSEALEDOPPONENTMOVE, 185 + .set STRINGID_PKMNCANTUSEMOVESEALED, 186 + .set STRINGID_PKMNWANTSGRUDGE, 187 + .set STRINGID_PKMNLOSTPPGRUDGE, 188 + .set STRINGID_PKMNSHROUDEDITSELF, 189 + .set STRINGID_PKMNMOVEBOUNCED, 190 + .set STRINGID_PKMNWAITSFORTARGET, 191 + .set STRINGID_PKMNSNATCHEDMOVE, 192 + .set STRINGID_PKMNMADEITRAIN, 193 + .set STRINGID_PKMNRAISEDSPEED, 194 + .set STRINGID_PKMNPROTECTEDBY, 195 + .set STRINGID_PKMNPREVENTSUSAGE, 196 + .set STRINGID_PKMNRESTOREDHPUSING, 197 + .set STRINGID_PKMNCHANGEDTYPEWITH, 198 + .set STRINGID_PKMNPREVENTSPARALYSISWITH, 199 + .set STRINGID_PKMNPREVENTSROMANCEWITH, 200 + .set STRINGID_PKMNPREVENTSPOISONINGWITH, 201 + .set STRINGID_PKMNPREVENTSCONFUSIONWITH, 202 + .set STRINGID_PKMNRAISEDFIREPOWERWITH, 203 + .set STRINGID_PKMNANCHORSITSELFWITH, 204 + .set STRINGID_PKMNCUTSATTACKWITH, 205 + .set STRINGID_PKMNPREVENTSSTATLOSSWITH, 206 + .set STRINGID_PKMNHURTSWITH, 207 + .set STRINGID_PKMNTRACED, 208 + .set STRINGID_STATSHARPLY, 209 + .set STRINGID_STATROSE, 210 + .set STRINGID_STATHARSHLY, 211 + .set STRINGID_STATFELL, 212 + .set STRINGID_PKMNSSTATCHANGED, 213 + .set STRINGID_PKMNSSTATCHANGED2, 214 + .set STRINGID_PKMNSSTATCHANGED3, 215 + .set STRINGID_PKMNSSTATCHANGED4, 216 + .set STRINGID_CRITICALHIT, 217 + .set STRINGID_ONEHITKO, 218 + .set STRINGID_123POOF, 219 + .set STRINGID_ANDELLIPSIS, 220 + .set STRINGID_NOTVERYEFFECTIVE, 221 + .set STRINGID_SUPEREFFECTIVE, 222 + .set STRINGID_GOTAWAYSAFELY, 223 + .set STRINGID_WILDPKMNFLED, 224 + .set STRINGID_NORUNNINGFROMTRAINERS, 225 + .set STRINGID_CANTESCAPE, 226 + .set STRINGID_DONTLEAVEBIRCH, 227 + .set STRINGID_BUTNOTHINGHAPPENED, 228 + .set STRINGID_BUTITFAILED, 229 + .set STRINGID_ITHURTCONFUSION, 230 + .set STRINGID_MIRRORMOVEFAILED, 231 + .set STRINGID_STARTEDTORAIN, 232 + .set STRINGID_DOWNPOURSTARTED, 233 + .set STRINGID_RAINCONTINUES, 234 + .set STRINGID_DOWNPOURCONTINUES, 235 + .set STRINGID_RAINSTOPPED, 236 + .set STRINGID_SANDSTORMBREWED, 237 + .set STRINGID_SANDSTORMRAGES, 238 + .set STRINGID_SANDSTORMSUBSIDED, 239 + .set STRINGID_SUNLIGHTGOTBRIGHT, 240 + .set STRINGID_SUNLIGHTSTRONG, 241 + .set STRINGID_SUNLIGHTFADED, 242 + .set STRINGID_STARTEDHAIL, 243 + .set STRINGID_HAILCONTINUES, 244 + .set STRINGID_HAILSTOPPED, 245 + .set STRINGID_FAILEDTOSPITUP, 246 + .set STRINGID_FAILEDTOSWALLOW, 247 + .set STRINGID_WINDBECAMEHEATWAVE, 248 + .set STRINGID_STATCHANGESGONE, 249 + .set STRINGID_COINSSCATTERED, 250 + .set STRINGID_TOOWEAKFORSUBSTITUTE, 251 + .set STRINGID_SHAREDPAIN, 252 + .set STRINGID_BELLCHIMED, 253 + .set STRINGID_FAINTINTHREE, 254 + .set STRINGID_NOPPLEFT, 255 + .set STRINGID_BUTNOPPLEFT, 256 + .set STRINGID_PLAYERUSEDITEM, 257 + .set STRINGID_WALLYUSEDITEM, 258 + .set STRINGID_TRAINERBLOCKEDBALL, 259 + .set STRINGID_DONTBEATHIEF, 260 + .set STRINGID_ITDODGEDBALL, 261 + .set STRINGID_YOUMISSEDPKMN, 262 + .set STRINGID_PKMNBROKEFREE, 263 + .set STRINGID_ITAPPEAREDCAUGHT, 264 + .set STRINGID_AARGHALMOSTHADIT, 265 + .set STRINGID_SHOOTSOCLOSE, 266 + .set STRINGID_GOTCHAPKMNCAUGHT, 267 + .set STRINGID_GOTCHAPKMNCAUGHT2, 268 + .set STRINGID_GIVENICKNAMECAPTURED, 269 + .set STRINGID_PKMNSENTTOPC, 270 + .set STRINGID_PKMNDATAADDEDTODEX, 271 + .set STRINGID_ITISRAINING, 272 + .set STRINGID_SANDSTORMISRAGING, 273 + .set STRINGID_CANTESCAPE2, 274 + .set STRINGID_PKMNIGNORESASLEEP, 275 + .set STRINGID_PKMNIGNOREDORDERS, 276 + .set STRINGID_PKMNBEGANTONAP, 277 + .set STRINGID_PKMNLOAFING, 278 + .set STRINGID_PKMNWONTOBEY, 279 + .set STRINGID_PKMNTURNEDAWAY, 280 + .set STRINGID_PKMNPRETENDNOTNOTICE, 281 + .set STRINGID_ENEMYABOUTTOSWITCHPKMN, 282 + .set STRINGID_CREPTCLOSER, 283 + .set STRINGID_CANTGETCLOSER, 284 + .set STRINGID_PKMNWATCHINGCAREFULLY, 285 + .set STRINGID_PKMNCURIOUSABOUTX, 286 + .set STRINGID_PKMNENTHRALLEDBYX, 287 + .set STRINGID_PKMNIGNOREDX, 288 + .set STRINGID_THREWPOKEBLOCKATPKMN, 289 + .set STRINGID_OUTOFSAFARIBALLS, 290 + .set STRINGID_PKMNSITEMCUREDPARALYSIS, 291 + .set STRINGID_PKMNSITEMCUREDPOISON, 292 + .set STRINGID_PKMNSITEMHEALEDBURN, 293 + .set STRINGID_PKMNSITEMDEFROSTEDIT, 294 + .set STRINGID_PKMNSITEMWOKEIT, 295 + .set STRINGID_PKMNSITEMSNAPPEDOUT, 296 + .set STRINGID_PKMNSITEMCUREDPROBLEM, 297 + .set STRINGID_PKMNSITEMRESTOREDHEALTH, 298 + .set STRINGID_PKMNSITEMRESTOREDPP, 299 + .set STRINGID_PKMNSITEMRESTOREDSTATUS, 300 + .set STRINGID_PKMNSITEMRESTOREDHPALITTLE, 301 + .set STRINGID_ITEMALLOWSONLYYMOVE, 302 + .set STRINGID_PKMNHUNGONWITHX, 303 + .set STRINGID_EMPTYSTRING3, 304 + .set STRINGID_PKMNSXPREVENTSBURNS, 305 + .set STRINGID_PKMNSXBLOCKSY, 306 + .set STRINGID_PKMNSXRESTOREDHPALITTLE2, 307 + .set STRINGID_PKMNSXWHIPPEDUPSANDSTORM, 308 + .set STRINGID_PKMNSXPREVENTSYLOSS, 309 + .set STRINGID_PKMNSXINFATUATEDY, 310 + .set STRINGID_PKMNSXMADEYINEFFECTIVE, 311 + .set STRINGID_PKMNSXCUREDYPROBLEM, 312 + .set STRINGID_ITSUCKEDLIQUIDOOZE, 313 + .set STRINGID_PKMNTRANSFORMED, 314 + .set STRINGID_ELECTRICITYWEAKENED, 315 + .set STRINGID_FIREWEAKENED, 316 + .set STRINGID_PKMNHIDUNDERWATER, 317 + .set STRINGID_PKMNSPRANGUP, 318 + .set STRINGID_HMMOVESCANTBEFORGOTTEN, 319 + .set STRINGID_XFOUNDONEY, 320 + .set STRINGID_PLAYERDEFEATEDTRAINER1, 321 + .set STRINGID_SOOTHINGAROMA, 322 + .set STRINGID_ITEMSCANTBEUSEDNOW, 323 + .set STRINGID_FORXCOMMAYZ, 324 + .set STRINGID_USINGXTHEYOFZN, 325 + .set STRINGID_PKMNUSEDXTOGETPUMPED, 326 + .set STRINGID_PKMNSXMADEYUSELESS, 327 + .set STRINGID_PKMNTRAPPEDBYSANDTOMB, 328 + .set STRINGID_EMPTYSTRING4, 329 + .set STRINGID_ABOOSTED, 330 + .set STRINGID_PKMNSXINTENSIFIEDSUN, 331 + .set STRINGID_PKMNMAKESGROUNDMISS, 332 + .set STRINGID_YOUTHROWABALLNOWRIGHT, 333 + .set STRINGID_PKMNSXTOOKATTACK, 334 + .set STRINGID_PKMNCHOSEXASDESTINY, 335 + .set STRINGID_PKMNLOSTFOCUS, 336 + .set STRINGID_USENEXTPKMN, 337 + .set STRINGID_PKMNFLEDUSINGITS, 338 + .set STRINGID_PKMNFLEDUSING, 339 + .set STRINGID_PKMNWASDRAGGEDOUT, 340 + .set STRINGID_PREVENTEDFROMWORKING, 341 + .set STRINGID_PKMNSITEMNORMALIZEDSTATUS, 342 + .set STRINGID_TRAINER1USEDITEM, 343 + .set STRINGID_BOXISFULL, 344 + .set STRINGID_PKMNAVOIDEDATTACK, 345 + .set STRINGID_PKMNSXMADEITINEFFECTIVE, 346 + .set STRINGID_PKMNSXPREVENTSFLINCHING, 347 + .set STRINGID_PKMNALREADYHASBURN, 348 + .set STRINGID_STATSWONTDECREASE2, 349 + .set STRINGID_PKMNSXBLOCKSY2, 350 + .set STRINGID_PKMNSXWOREOFF, 351 + .set STRINGID_PKMNRAISEDDEFALITTLE, 352 + .set STRINGID_PKMNRAISEDSPDEFALITTLE, 353 + .set STRINGID_THEWALLSHATTERED, 354 + .set STRINGID_PKMNSXPREVENTSYSZ, 355 + .set STRINGID_PKMNSXCUREDITSYPROBLEM, 356 + .set STRINGID_ATTACKERCANTESCAPE, 357 + .set STRINGID_PKMNOBTAINEDX, 358 + .set STRINGID_PKMNOBTAINEDX2, 359 + .set STRINGID_PKMNOBTAINEDXYOBTAINEDZ, 360 + .set STRINGID_BUTNOEFFECT, 361 + .set STRINGID_PKMNSXHADNOEFFECTONY, 362 + .set STRINGID_TWOENEMIESDEFEATED, 363 + .set STRINGID_TRAINER2LOSETEXT, 364 + .set STRINGID_PKMNINCAPABLEOFPOWER, 365 + .set STRINGID_GLINTAPPEARSINEYE, 366 + .set STRINGID_PKMNGETTINGINTOPOSITION, 367 + .set STRINGID_PKMNBEGANGROWLINGDEEPLY, 368 + .set STRINGID_PKMNEAGERFORMORE, 369 + .set STRINGID_DEFEATEDOPPONENTBYREFEREE, 370 + .set STRINGID_LOSTTOOPPONENTBYREFEREE, 371 + .set STRINGID_TIEDOPPONENTBYREFEREE, 372 + .set STRINGID_QUESTIONFORFEITMATCH, 373 + .set STRINGID_FORFEITEDMATCH, 374 + .set STRINGID_PKMNTRANSFERREDSOMEONESPC, 375 + .set STRINGID_PKMNTRANSFERREDLANETTESPC, 376 + .set STRINGID_PKMNBOXSOMEONESPCFULL, 377 + .set STRINGID_PKMNBOXLANETTESPCFULL, 378 + .set STRINGID_TRAINER1WINTEXT, 379 + .set STRINGID_TRAINER2WINTEXT, 380 diff --git a/constants/constants.inc b/constants/constants.inc index fbd4e8af0..99c3d3c73 100644 --- a/constants/constants.inc +++ b/constants/constants.inc @@ -1,20 +1,12 @@ .include "constants/gba_constants.inc" .include "constants/misc_constants.inc" - .include "constants/species_constants.inc" - .include "constants/ability_constants.inc" - .include "constants/move_constants.inc" - .include "constants/item_constants.inc" .include "constants/type_constants.inc" .include "constants/contest_constants.inc" .include "constants/pokemon_data_constants.inc" .include "constants/item_data_constants.inc" .include "constants/battle_move_constants.inc" - .include "constants/easy_chat_constants.inc" .include "constants/trainer_constants.inc" .include "constants/battle_frontier_constants.inc" .include "constants/map_constants.inc" - .include "constants/map_object_constants.inc" .include "constants/berry_constants.inc" - .include "constants/field_object_constants.inc" .include "constants/contest_move_effects.inc" - .include "constants/songs.inc" diff --git a/constants/easy_chat_constants.inc b/constants/easy_chat_constants.inc deleted file mode 100644 index 4d9aecec5..000000000 --- a/constants/easy_chat_constants.inc +++ /dev/null @@ -1,1067 +0,0 @@ - .set EC_GROUP_POKEMON, 0x0 - .set EC_GROUP_TRAINER, 0x1 - .set EC_GROUP_STATUS, 0x2 - .set EC_GROUP_BATTLE, 0x3 - .set EC_GROUP_GREETINGS, 0x4 - .set EC_GROUP_PEOPLE, 0x5 - .set EC_GROUP_VOICES, 0x6 - .set EC_GROUP_SPEECH, 0x7 - .set EC_GROUP_ENDINGS, 0x8 - .set EC_GROUP_FEELINGS, 0x9 - .set EC_GROUP_CONDITIONS, 0xa - .set EC_GROUP_ACTIONS, 0xb - .set EC_GROUP_LIFESTYLE, 0xc - .set EC_GROUP_HOBBIES, 0xd - .set EC_GROUP_TIME, 0xe - .set EC_GROUP_MISC, 0xf - .set EC_GROUP_ADJECTIVES, 0x10 - .set EC_GROUP_EVENTS, 0x11 - .set EC_GROUP_MOVE_1, 0x12 - .set EC_GROUP_MOVE_2, 0x13 - .set EC_GROUP_TRENDY_SAYING, 0x14 - .set EC_GROUP_POKEMON2, 0x15 - -@ Trainer - .set EC_WORD_I_CHOOSE_YOU, (EC_GROUP_TRAINER << 9) | 0x0 - .set EC_WORD_GOTCHA, (EC_GROUP_TRAINER << 9) | 0x1 - .set EC_WORD_TRADE, (EC_GROUP_TRAINER << 9) | 0x2 - .set EC_WORD_SAPPHIRE, (EC_GROUP_TRAINER << 9) | 0x3 - .set EC_WORD_EVOLVE, (EC_GROUP_TRAINER << 9) | 0x4 - .set EC_WORD_ENCYCLOPEDIA, (EC_GROUP_TRAINER << 9) | 0x5 - .set EC_WORD_NATURE, (EC_GROUP_TRAINER << 9) | 0x6 - .set EC_WORD_CENTER, (EC_GROUP_TRAINER << 9) | 0x7 - .set EC_WORD_EGG, (EC_GROUP_TRAINER << 9) | 0x8 - .set EC_WORD_LINK, (EC_GROUP_TRAINER << 9) | 0x9 - .set EC_WORD_SP_ABILITY, (EC_GROUP_TRAINER << 9) | 0xa - .set EC_WORD_TRAINER, (EC_GROUP_TRAINER << 9) | 0xb - .set EC_WORD_VERSION, (EC_GROUP_TRAINER << 9) | 0xc - .set EC_WORD_POKENAV, (EC_GROUP_TRAINER << 9) | 0xd - .set EC_WORD_POKEMON, (EC_GROUP_TRAINER << 9) | 0xe - .set EC_WORD_GET, (EC_GROUP_TRAINER << 9) | 0xf - .set EC_WORD_POKEDEX, (EC_GROUP_TRAINER << 9) | 0x10 - .set EC_WORD_RUBY, (EC_GROUP_TRAINER << 9) | 0x11 - .set EC_WORD_LEVEL, (EC_GROUP_TRAINER << 9) | 0x12 - .set EC_WORD_RED, (EC_GROUP_TRAINER << 9) | 0x13 - .set EC_WORD_GREEN, (EC_GROUP_TRAINER << 9) | 0x14 - .set EC_WORD_BAG, (EC_GROUP_TRAINER << 9) | 0x15 - .set EC_WORD_FLAME, (EC_GROUP_TRAINER << 9) | 0x16 - .set EC_WORD_GOLD, (EC_GROUP_TRAINER << 9) | 0x17 - .set EC_WORD_LEAF, (EC_GROUP_TRAINER << 9) | 0x18 - .set EC_WORD_SILVER, (EC_GROUP_TRAINER << 9) | 0x19 - .set EC_WORD_EMERALD, (EC_GROUP_TRAINER << 9) | 0x1a - -@ Status - .set EC_WORD_DARK, (EC_GROUP_STATUS << 9) | 0x0 - .set EC_WORD_STENCH, (EC_GROUP_STATUS << 9) | 0x1 - .set EC_WORD_THICK_FAT, (EC_GROUP_STATUS << 9) | 0x2 - .set EC_WORD_RAIN_DISH, (EC_GROUP_STATUS << 9) | 0x3 - .set EC_WORD_DRIZZLE, (EC_GROUP_STATUS << 9) | 0x4 - .set EC_WORD_ARENA_TRAP, (EC_GROUP_STATUS << 9) | 0x5 - .set EC_WORD_INTIMIDATE, (EC_GROUP_STATUS << 9) | 0x6 - .set EC_WORD_ROCK_HEAD, (EC_GROUP_STATUS << 9) | 0x7 - .set EC_WORD_COLOR, (EC_GROUP_STATUS << 9) | 0x8 - .set EC_WORD_ALT_COLOR, (EC_GROUP_STATUS << 9) | 0x9 - .set EC_WORD_ROCK, (EC_GROUP_STATUS << 9) | 0xa - .set EC_WORD_BEAUTIFUL, (EC_GROUP_STATUS << 9) | 0xb - .set EC_WORD_BEAUTY, (EC_GROUP_STATUS << 9) | 0xc - .set EC_WORD_AIR_LOCK, (EC_GROUP_STATUS << 9) | 0xd - .set EC_WORD_PSYCHIC, (EC_GROUP_STATUS << 9) | 0xe - .set EC_WORD_HYPER_CUTTER, (EC_GROUP_STATUS << 9) | 0xf - .set EC_WORD_FIGHTING, (EC_GROUP_STATUS << 9) | 0x10 - .set EC_WORD_SHADOW_TAG, (EC_GROUP_STATUS << 9) | 0x11 - .set EC_WORD_SMART, (EC_GROUP_STATUS << 9) | 0x12 - .set EC_WORD_SMARTNESS, (EC_GROUP_STATUS << 9) | 0x13 - .set EC_WORD_SPEED_BOOST, (EC_GROUP_STATUS << 9) | 0x14 - .set EC_WORD_COOL, (EC_GROUP_STATUS << 9) | 0x15 - .set EC_WORD_COOLNESS, (EC_GROUP_STATUS << 9) | 0x16 - .set EC_WORD_BATTLE_ARMOR, (EC_GROUP_STATUS << 9) | 0x17 - .set EC_WORD_CUTE, (EC_GROUP_STATUS << 9) | 0x18 - .set EC_WORD_CUTENESS, (EC_GROUP_STATUS << 9) | 0x19 - .set EC_WORD_STURDY, (EC_GROUP_STATUS << 9) | 0x1a - .set EC_WORD_SUCTION_CUPS, (EC_GROUP_STATUS << 9) | 0x1b - .set EC_WORD_GRASS, (EC_GROUP_STATUS << 9) | 0x1c - .set EC_WORD_CLEAR_BODY, (EC_GROUP_STATUS << 9) | 0x1d - .set EC_WORD_TORRENT, (EC_GROUP_STATUS << 9) | 0x1e - .set EC_WORD_GHOST, (EC_GROUP_STATUS << 9) | 0x1f - .set EC_WORD_ICE, (EC_GROUP_STATUS << 9) | 0x20 - .set EC_WORD_GUTS, (EC_GROUP_STATUS << 9) | 0x21 - .set EC_WORD_ROUGH_SKIN, (EC_GROUP_STATUS << 9) | 0x22 - .set EC_WORD_SHELL_ARMOR, (EC_GROUP_STATUS << 9) | 0x23 - .set EC_WORD_NATURAL_CURE, (EC_GROUP_STATUS << 9) | 0x24 - .set EC_WORD_DAMP, (EC_GROUP_STATUS << 9) | 0x25 - .set EC_WORD_GROUND, (EC_GROUP_STATUS << 9) | 0x26 - .set EC_WORD_LIMBER, (EC_GROUP_STATUS << 9) | 0x27 - .set EC_WORD_MAGNET_PULL, (EC_GROUP_STATUS << 9) | 0x28 - .set EC_WORD_WHITE_SMOKE, (EC_GROUP_STATUS << 9) | 0x29 - .set EC_WORD_SYNCHRONIZE, (EC_GROUP_STATUS << 9) | 0x2a - .set EC_WORD_OVERGROW, (EC_GROUP_STATUS << 9) | 0x2b - .set EC_WORD_SWIFT_SWIM, (EC_GROUP_STATUS << 9) | 0x2c - .set EC_WORD_SAND_STREAM, (EC_GROUP_STATUS << 9) | 0x2d - .set EC_WORD_SAND_VEIL, (EC_GROUP_STATUS << 9) | 0x2e - .set EC_WORD_KEEN_EYE, (EC_GROUP_STATUS << 9) | 0x2f - .set EC_WORD_INNER_FOCUS, (EC_GROUP_STATUS << 9) | 0x30 - .set EC_WORD_STATIC, (EC_GROUP_STATUS << 9) | 0x31 - .set EC_WORD_TYPE, (EC_GROUP_STATUS << 9) | 0x32 - .set EC_WORD_TOUGH, (EC_GROUP_STATUS << 9) | 0x33 - .set EC_WORD_TOUGHNESS, (EC_GROUP_STATUS << 9) | 0x34 - .set EC_WORD_SHED_SKIN, (EC_GROUP_STATUS << 9) | 0x35 - .set EC_WORD_HUGE_POWER, (EC_GROUP_STATUS << 9) | 0x36 - .set EC_WORD_VOLT_ABSORB, (EC_GROUP_STATUS << 9) | 0x37 - .set EC_WORD_WATER_ABSORB, (EC_GROUP_STATUS << 9) | 0x38 - .set EC_WORD_ELECTRIC, (EC_GROUP_STATUS << 9) | 0x39 - .set EC_WORD_FORECAST, (EC_GROUP_STATUS << 9) | 0x3a - .set EC_WORD_SERENE_GRACE, (EC_GROUP_STATUS << 9) | 0x3b - .set EC_WORD_POISON, (EC_GROUP_STATUS << 9) | 0x3c - .set EC_WORD_POISON_POINT, (EC_GROUP_STATUS << 9) | 0x3d - .set EC_WORD_DRAGON, (EC_GROUP_STATUS << 9) | 0x3e - .set EC_WORD_TRACE, (EC_GROUP_STATUS << 9) | 0x3f - .set EC_WORD_OBLIVIOUS, (EC_GROUP_STATUS << 9) | 0x40 - .set EC_WORD_TRUANT, (EC_GROUP_STATUS << 9) | 0x41 - .set EC_WORD_RUN_AWAY, (EC_GROUP_STATUS << 9) | 0x42 - .set EC_WORD_STICKY_HOLD, (EC_GROUP_STATUS << 9) | 0x43 - .set EC_WORD_CLOUD_NINE, (EC_GROUP_STATUS << 9) | 0x44 - .set EC_WORD_NORMAL, (EC_GROUP_STATUS << 9) | 0x45 - .set EC_WORD_STEEL, (EC_GROUP_STATUS << 9) | 0x46 - .set EC_WORD_ILLUMINATE, (EC_GROUP_STATUS << 9) | 0x47 - .set EC_WORD_EARLY_BIRD, (EC_GROUP_STATUS << 9) | 0x48 - .set EC_WORD_HUSTLE, (EC_GROUP_STATUS << 9) | 0x49 - .set EC_WORD_SHINE, (EC_GROUP_STATUS << 9) | 0x4a - .set EC_WORD_FLYING, (EC_GROUP_STATUS << 9) | 0x4b - .set EC_WORD_DROUGHT, (EC_GROUP_STATUS << 9) | 0x4c - .set EC_WORD_LIGHTNINGROD, (EC_GROUP_STATUS << 9) | 0x4d - .set EC_WORD_COMPOUNDEYES, (EC_GROUP_STATUS << 9) | 0x4e - .set EC_WORD_MARVEL_SCALE, (EC_GROUP_STATUS << 9) | 0x4f - .set EC_WORD_WONDER_GUARD, (EC_GROUP_STATUS << 9) | 0x50 - .set EC_WORD_INSOMNIA, (EC_GROUP_STATUS << 9) | 0x51 - .set EC_WORD_LEVITATE, (EC_GROUP_STATUS << 9) | 0x52 - .set EC_WORD_PLUS, (EC_GROUP_STATUS << 9) | 0x53 - .set EC_WORD_PRESSURE, (EC_GROUP_STATUS << 9) | 0x54 - .set EC_WORD_LIQUID_OOZE, (EC_GROUP_STATUS << 9) | 0x55 - .set EC_WORD_COLOR_CHANGE, (EC_GROUP_STATUS << 9) | 0x56 - .set EC_WORD_SOUNDPROOF, (EC_GROUP_STATUS << 9) | 0x57 - .set EC_WORD_EFFECT_SPORE, (EC_GROUP_STATUS << 9) | 0x58 - .set EC_WORD_PKRS, (EC_GROUP_STATUS << 9) | 0x59 - .set EC_WORD_FIRE, (EC_GROUP_STATUS << 9) | 0x5a - .set EC_WORD_FLAME_BODY, (EC_GROUP_STATUS << 9) | 0x5b - .set EC_WORD_MINUS, (EC_GROUP_STATUS << 9) | 0x5c - .set EC_WORD_OWN_TEMPO, (EC_GROUP_STATUS << 9) | 0x5d - .set EC_WORD_MAGMA_ARMOR, (EC_GROUP_STATUS << 9) | 0x5e - .set EC_WORD_WATER, (EC_GROUP_STATUS << 9) | 0x5f - .set EC_WORD_WATER_VEIL, (EC_GROUP_STATUS << 9) | 0x60 - .set EC_WORD_BUG, (EC_GROUP_STATUS << 9) | 0x61 - .set EC_WORD_SWARM, (EC_GROUP_STATUS << 9) | 0x62 - .set EC_WORD_CUTE_CHARM, (EC_GROUP_STATUS << 9) | 0x63 - .set EC_WORD_IMMUNITY, (EC_GROUP_STATUS << 9) | 0x64 - .set EC_WORD_BLAZE, (EC_GROUP_STATUS << 9) | 0x65 - .set EC_WORD_PICKUP, (EC_GROUP_STATUS << 9) | 0x66 - .set EC_WORD_PATTERN, (EC_GROUP_STATUS << 9) | 0x67 - .set EC_WORD_FLASH_FIRE, (EC_GROUP_STATUS << 9) | 0x68 - .set EC_WORD_VITAL_SPIRIT, (EC_GROUP_STATUS << 9) | 0x69 - .set EC_WORD_CHLOROPHYLL, (EC_GROUP_STATUS << 9) | 0x6a - .set EC_WORD_PURE_POWER, (EC_GROUP_STATUS << 9) | 0x6b - .set EC_WORD_SHIELD_DUST, (EC_GROUP_STATUS << 9) | 0x6c - -@ Battle - .set EC_WORD_MATCH_UP, (EC_GROUP_BATTLE << 9) | 0x0 - .set EC_WORD_GO, (EC_GROUP_BATTLE << 9) | 0x1 - .set EC_WORD_NO_1, (EC_GROUP_BATTLE << 9) | 0x2 - .set EC_WORD_DECIDE, (EC_GROUP_BATTLE << 9) | 0x3 - .set EC_WORD_LET_ME_WIN, (EC_GROUP_BATTLE << 9) | 0x4 - .set EC_WORD_WINS, (EC_GROUP_BATTLE << 9) | 0x5 - .set EC_WORD_WIN, (EC_GROUP_BATTLE << 9) | 0x6 - .set EC_WORD_WON, (EC_GROUP_BATTLE << 9) | 0x7 - .set EC_WORD_IF_I_WIN, (EC_GROUP_BATTLE << 9) | 0x8 - .set EC_WORD_WHEN_I_WIN, (EC_GROUP_BATTLE << 9) | 0x9 - .set EC_WORD_CAN_T_WIN, (EC_GROUP_BATTLE << 9) | 0xa - .set EC_WORD_CAN_WIN, (EC_GROUP_BATTLE << 9) | 0xb - .set EC_WORD_NO_MATCH, (EC_GROUP_BATTLE << 9) | 0xc - .set EC_WORD_SPIRIT, (EC_GROUP_BATTLE << 9) | 0xd - .set EC_WORD_DECIDED, (EC_GROUP_BATTLE << 9) | 0xe - .set EC_WORD_TRUMP_CARD, (EC_GROUP_BATTLE << 9) | 0xf - .set EC_WORD_TAKE_THAT, (EC_GROUP_BATTLE << 9) | 0x10 - .set EC_WORD_COME_ON, (EC_GROUP_BATTLE << 9) | 0x11 - .set EC_WORD_ATTACK, (EC_GROUP_BATTLE << 9) | 0x12 - .set EC_WORD_SURRENDER, (EC_GROUP_BATTLE << 9) | 0x13 - .set EC_WORD_GUTSY, (EC_GROUP_BATTLE << 9) | 0x14 - .set EC_WORD_TALENT, (EC_GROUP_BATTLE << 9) | 0x15 - .set EC_WORD_STRATEGY, (EC_GROUP_BATTLE << 9) | 0x16 - .set EC_WORD_SMITE, (EC_GROUP_BATTLE << 9) | 0x17 - .set EC_WORD_MATCH, (EC_GROUP_BATTLE << 9) | 0x18 - .set EC_WORD_VICTORY, (EC_GROUP_BATTLE << 9) | 0x19 - .set EC_WORD_OFFENSIVE, (EC_GROUP_BATTLE << 9) | 0x1a - .set EC_WORD_SENSE, (EC_GROUP_BATTLE << 9) | 0x1b - .set EC_WORD_VERSUS, (EC_GROUP_BATTLE << 9) | 0x1c - .set EC_WORD_FIGHTS, (EC_GROUP_BATTLE << 9) | 0x1d - .set EC_WORD_POWER, (EC_GROUP_BATTLE << 9) | 0x1e - .set EC_WORD_CHALLENGE, (EC_GROUP_BATTLE << 9) | 0x1f - .set EC_WORD_STRONG, (EC_GROUP_BATTLE << 9) | 0x20 - .set EC_WORD_TOO_STRONG, (EC_GROUP_BATTLE << 9) | 0x21 - .set EC_WORD_GO_EASY, (EC_GROUP_BATTLE << 9) | 0x22 - .set EC_WORD_FOE, (EC_GROUP_BATTLE << 9) | 0x23 - .set EC_WORD_GENIUS, (EC_GROUP_BATTLE << 9) | 0x24 - .set EC_WORD_LEGEND, (EC_GROUP_BATTLE << 9) | 0x25 - .set EC_WORD_ESCAPE, (EC_GROUP_BATTLE << 9) | 0x26 - .set EC_WORD_AIM, (EC_GROUP_BATTLE << 9) | 0x27 - .set EC_WORD_BATTLE, (EC_GROUP_BATTLE << 9) | 0x28 - .set EC_WORD_FIGHT, (EC_GROUP_BATTLE << 9) | 0x29 - .set EC_WORD_RESUSCITATE, (EC_GROUP_BATTLE << 9) | 0x2a - .set EC_WORD_POINTS, (EC_GROUP_BATTLE << 9) | 0x2b - .set EC_WORD_SERIOUS, (EC_GROUP_BATTLE << 9) | 0x2c - .set EC_WORD_GIVE_UP, (EC_GROUP_BATTLE << 9) | 0x2d - .set EC_WORD_LOSS, (EC_GROUP_BATTLE << 9) | 0x2e - .set EC_WORD_IF_I_LOSE, (EC_GROUP_BATTLE << 9) | 0x2f - .set EC_WORD_LOST, (EC_GROUP_BATTLE << 9) | 0x30 - .set EC_WORD_LOSE, (EC_GROUP_BATTLE << 9) | 0x31 - .set EC_WORD_GUARD, (EC_GROUP_BATTLE << 9) | 0x32 - .set EC_WORD_PARTNER, (EC_GROUP_BATTLE << 9) | 0x33 - .set EC_WORD_REJECT, (EC_GROUP_BATTLE << 9) | 0x34 - .set EC_WORD_ACCEPT, (EC_GROUP_BATTLE << 9) | 0x35 - .set EC_WORD_INVINCIBLE, (EC_GROUP_BATTLE << 9) | 0x36 - .set EC_WORD_RECEIVED, (EC_GROUP_BATTLE << 9) | 0x37 - .set EC_WORD_EASY, (EC_GROUP_BATTLE << 9) | 0x38 - .set EC_WORD_WEAK, (EC_GROUP_BATTLE << 9) | 0x39 - .set EC_WORD_TOO_WEAK, (EC_GROUP_BATTLE << 9) | 0x3a - .set EC_WORD_PUSHOVER, (EC_GROUP_BATTLE << 9) | 0x3b - .set EC_WORD_LEADER, (EC_GROUP_BATTLE << 9) | 0x3c - .set EC_WORD_RULE, (EC_GROUP_BATTLE << 9) | 0x3d - .set EC_WORD_MOVE, (EC_GROUP_BATTLE << 9) | 0x3e - -@ Greetings - .set EC_WORD_THANKS, (EC_GROUP_GREETINGS << 9) | 0x0 - .set EC_WORD_YES, (EC_GROUP_GREETINGS << 9) | 0x1 - .set EC_WORD_HERE_GOES, (EC_GROUP_GREETINGS << 9) | 0x2 - .set EC_WORD_HERE_I_COME, (EC_GROUP_GREETINGS << 9) | 0x3 - .set EC_WORD_HERE_IT_IS, (EC_GROUP_GREETINGS << 9) | 0x4 - .set EC_WORD_YEAH, (EC_GROUP_GREETINGS << 9) | 0x5 - .set EC_WORD_WELCOME, (EC_GROUP_GREETINGS << 9) | 0x6 - .set EC_WORD_OI, (EC_GROUP_GREETINGS << 9) | 0x7 - .set EC_WORD_HOW_DO, (EC_GROUP_GREETINGS << 9) | 0x8 - .set EC_WORD_CONGRATS, (EC_GROUP_GREETINGS << 9) | 0x9 - .set EC_WORD_GIVE_ME, (EC_GROUP_GREETINGS << 9) | 0xa - .set EC_WORD_SORRY, (EC_GROUP_GREETINGS << 9) | 0xb - .set EC_WORD_APOLOGIZE, (EC_GROUP_GREETINGS << 9) | 0xc - .set EC_WORD_FORGIVE, (EC_GROUP_GREETINGS << 9) | 0xd - .set EC_WORD_HEY_THERE, (EC_GROUP_GREETINGS << 9) | 0xe - .set EC_WORD_HELLO, (EC_GROUP_GREETINGS << 9) | 0xf - .set EC_WORD_GOOD_BYE, (EC_GROUP_GREETINGS << 9) | 0x10 - .set EC_WORD_THANK_YOU, (EC_GROUP_GREETINGS << 9) | 0x11 - .set EC_WORD_I_VE_ARRIVED, (EC_GROUP_GREETINGS << 9) | 0x12 - .set EC_WORD_PARDON, (EC_GROUP_GREETINGS << 9) | 0x13 - .set EC_WORD_EXCUSE, (EC_GROUP_GREETINGS << 9) | 0x14 - .set EC_WORD_SEE_YA, (EC_GROUP_GREETINGS << 9) | 0x15 - .set EC_WORD_EXCUSE_ME, (EC_GROUP_GREETINGS << 9) | 0x16 - .set EC_WORD_WELL_THEN, (EC_GROUP_GREETINGS << 9) | 0x17 - .set EC_WORD_GO_AHEAD, (EC_GROUP_GREETINGS << 9) | 0x18 - .set EC_WORD_APPRECIATE, (EC_GROUP_GREETINGS << 9) | 0x19 - .set EC_WORD_HEY_QUES, (EC_GROUP_GREETINGS << 9) | 0x1a - .set EC_WORD_WHAT_S_UP_QUES, (EC_GROUP_GREETINGS << 9) | 0x1b - .set EC_WORD_HUH_QUES, (EC_GROUP_GREETINGS << 9) | 0x1c - .set EC_WORD_NO, (EC_GROUP_GREETINGS << 9) | 0x1d - .set EC_WORD_HI, (EC_GROUP_GREETINGS << 9) | 0x1e - .set EC_WORD_YEAH_YEAH, (EC_GROUP_GREETINGS << 9) | 0x1f - .set EC_WORD_BYE_BYE, (EC_GROUP_GREETINGS << 9) | 0x20 - .set EC_WORD_MEET_YOU, (EC_GROUP_GREETINGS << 9) | 0x21 - .set EC_WORD_HEY, (EC_GROUP_GREETINGS << 9) | 0x22 - .set EC_WORD_SMELL, (EC_GROUP_GREETINGS << 9) | 0x23 - .set EC_WORD_LISTENING, (EC_GROUP_GREETINGS << 9) | 0x24 - .set EC_WORD_HOO_HAH, (EC_GROUP_GREETINGS << 9) | 0x25 - .set EC_WORD_YAHOO, (EC_GROUP_GREETINGS << 9) | 0x26 - .set EC_WORD_YO, (EC_GROUP_GREETINGS << 9) | 0x27 - .set EC_WORD_COME_OVER, (EC_GROUP_GREETINGS << 9) | 0x28 - .set EC_WORD_COUNT_ON, (EC_GROUP_GREETINGS << 9) | 0x29 - -@ People - .set EC_WORD_OPPONENT, (EC_GROUP_PEOPLE << 9) | 0x0 - .set EC_WORD_I, (EC_GROUP_PEOPLE << 9) | 0x1 - .set EC_WORD_YOU, (EC_GROUP_PEOPLE << 9) | 0x2 - .set EC_WORD_YOURS, (EC_GROUP_PEOPLE << 9) | 0x3 - .set EC_WORD_SON, (EC_GROUP_PEOPLE << 9) | 0x4 - .set EC_WORD_YOUR, (EC_GROUP_PEOPLE << 9) | 0x5 - .set EC_WORD_YOU_RE, (EC_GROUP_PEOPLE << 9) | 0x6 - .set EC_WORD_YOU_VE, (EC_GROUP_PEOPLE << 9) | 0x7 - .set EC_WORD_MOTHER, (EC_GROUP_PEOPLE << 9) | 0x8 - .set EC_WORD_GRANDFATHER, (EC_GROUP_PEOPLE << 9) | 0x9 - .set EC_WORD_UNCLE, (EC_GROUP_PEOPLE << 9) | 0xa - .set EC_WORD_FATHER, (EC_GROUP_PEOPLE << 9) | 0xb - .set EC_WORD_BOY, (EC_GROUP_PEOPLE << 9) | 0xc - .set EC_WORD_ADULT, (EC_GROUP_PEOPLE << 9) | 0xd - .set EC_WORD_BROTHER, (EC_GROUP_PEOPLE << 9) | 0xe - .set EC_WORD_SISTER, (EC_GROUP_PEOPLE << 9) | 0xf - .set EC_WORD_GRANDMOTHER, (EC_GROUP_PEOPLE << 9) | 0x10 - .set EC_WORD_AUNT, (EC_GROUP_PEOPLE << 9) | 0x11 - .set EC_WORD_PARENT, (EC_GROUP_PEOPLE << 9) | 0x12 - .set EC_WORD_MAN, (EC_GROUP_PEOPLE << 9) | 0x13 - .set EC_WORD_ME, (EC_GROUP_PEOPLE << 9) | 0x14 - .set EC_WORD_GIRL, (EC_GROUP_PEOPLE << 9) | 0x15 - .set EC_WORD_BABE, (EC_GROUP_PEOPLE << 9) | 0x16 - .set EC_WORD_FAMILY, (EC_GROUP_PEOPLE << 9) | 0x17 - .set EC_WORD_HER, (EC_GROUP_PEOPLE << 9) | 0x18 - .set EC_WORD_HIM, (EC_GROUP_PEOPLE << 9) | 0x19 - .set EC_WORD_HE, (EC_GROUP_PEOPLE << 9) | 0x1a - .set EC_WORD_PLACE, (EC_GROUP_PEOPLE << 9) | 0x1b - .set EC_WORD_DAUGHTER, (EC_GROUP_PEOPLE << 9) | 0x1c - .set EC_WORD_HIS, (EC_GROUP_PEOPLE << 9) | 0x1d - .set EC_WORD_HE_S, (EC_GROUP_PEOPLE << 9) | 0x1e - .set EC_WORD_AREN_T, (EC_GROUP_PEOPLE << 9) | 0x1f - .set EC_WORD_SIBLINGS, (EC_GROUP_PEOPLE << 9) | 0x20 - .set EC_WORD_KID, (EC_GROUP_PEOPLE << 9) | 0x21 - .set EC_WORD_CHILDREN, (EC_GROUP_PEOPLE << 9) | 0x22 - .set EC_WORD_MR, (EC_GROUP_PEOPLE << 9) | 0x23 - .set EC_WORD_MRS, (EC_GROUP_PEOPLE << 9) | 0x24 - .set EC_WORD_MYSELF, (EC_GROUP_PEOPLE << 9) | 0x25 - .set EC_WORD_I_WAS, (EC_GROUP_PEOPLE << 9) | 0x26 - .set EC_WORD_TO_ME, (EC_GROUP_PEOPLE << 9) | 0x27 - .set EC_WORD_MY, (EC_GROUP_PEOPLE << 9) | 0x28 - .set EC_WORD_I_AM, (EC_GROUP_PEOPLE << 9) | 0x29 - .set EC_WORD_I_VE, (EC_GROUP_PEOPLE << 9) | 0x2a - .set EC_WORD_WHO, (EC_GROUP_PEOPLE << 9) | 0x2b - .set EC_WORD_SOMEONE, (EC_GROUP_PEOPLE << 9) | 0x2c - .set EC_WORD_WHO_WAS, (EC_GROUP_PEOPLE << 9) | 0x2d - .set EC_WORD_TO_WHOM, (EC_GROUP_PEOPLE << 9) | 0x2e - .set EC_WORD_WHOSE, (EC_GROUP_PEOPLE << 9) | 0x2f - .set EC_WORD_WHO_IS, (EC_GROUP_PEOPLE << 9) | 0x30 - .set EC_WORD_IT_S, (EC_GROUP_PEOPLE << 9) | 0x31 - .set EC_WORD_LADY, (EC_GROUP_PEOPLE << 9) | 0x32 - .set EC_WORD_FRIEND, (EC_GROUP_PEOPLE << 9) | 0x33 - .set EC_WORD_ALLY, (EC_GROUP_PEOPLE << 9) | 0x34 - .set EC_WORD_PERSON, (EC_GROUP_PEOPLE << 9) | 0x35 - .set EC_WORD_DUDE, (EC_GROUP_PEOPLE << 9) | 0x36 - .set EC_WORD_THEY, (EC_GROUP_PEOPLE << 9) | 0x37 - .set EC_WORD_THEY_WERE, (EC_GROUP_PEOPLE << 9) | 0x38 - .set EC_WORD_TO_THEM, (EC_GROUP_PEOPLE << 9) | 0x39 - .set EC_WORD_THEIR, (EC_GROUP_PEOPLE << 9) | 0x3a - .set EC_WORD_THEY_RE, (EC_GROUP_PEOPLE << 9) | 0x3b - .set EC_WORD_THEY_VE, (EC_GROUP_PEOPLE << 9) | 0x3c - .set EC_WORD_WE, (EC_GROUP_PEOPLE << 9) | 0x3d - .set EC_WORD_BEEN, (EC_GROUP_PEOPLE << 9) | 0x3e - .set EC_WORD_TO_US, (EC_GROUP_PEOPLE << 9) | 0x3f - .set EC_WORD_OUR, (EC_GROUP_PEOPLE << 9) | 0x40 - .set EC_WORD_WE_RE, (EC_GROUP_PEOPLE << 9) | 0x41 - .set EC_WORD_RIVAL, (EC_GROUP_PEOPLE << 9) | 0x42 - .set EC_WORD_WE_VE, (EC_GROUP_PEOPLE << 9) | 0x43 - .set EC_WORD_WOMAN, (EC_GROUP_PEOPLE << 9) | 0x44 - .set EC_WORD_SHE, (EC_GROUP_PEOPLE << 9) | 0x45 - .set EC_WORD_SHE_WAS, (EC_GROUP_PEOPLE << 9) | 0x46 - .set EC_WORD_TO_HER, (EC_GROUP_PEOPLE << 9) | 0x47 - .set EC_WORD_HERS, (EC_GROUP_PEOPLE << 9) | 0x48 - .set EC_WORD_SHE_IS, (EC_GROUP_PEOPLE << 9) | 0x49 - .set EC_WORD_SOME, (EC_GROUP_PEOPLE << 9) | 0x4a - -@ Voices - .set EC_WORD_EXCL, (EC_GROUP_VOICES << 9) | 0x0 - .set EC_WORD_EXCL_EXCL, (EC_GROUP_VOICES << 9) | 0x1 - .set EC_WORD_QUES_EXCL, (EC_GROUP_VOICES << 9) | 0x2 - .set EC_WORD_QUES, (EC_GROUP_VOICES << 9) | 0x3 - .set EC_WORD_ELLIPSIS, (EC_GROUP_VOICES << 9) | 0x4 - .set EC_WORD_ELLIPSIS_EXCL, (EC_GROUP_VOICES << 9) | 0x5 - .set EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS, (EC_GROUP_VOICES << 9) | 0x6 - .set EC_WORD_DASH, (EC_GROUP_VOICES << 9) | 0x7 - .set EC_WORD_DASH_DASH_DASH, (EC_GROUP_VOICES << 9) | 0x8 - .set EC_WORD_UH_OH, (EC_GROUP_VOICES << 9) | 0x9 - .set EC_WORD_WAAAH, (EC_GROUP_VOICES << 9) | 0xa - .set EC_WORD_AHAHA, (EC_GROUP_VOICES << 9) | 0xb - .set EC_WORD_OH_QUES, (EC_GROUP_VOICES << 9) | 0xc - .set EC_WORD_NOPE, (EC_GROUP_VOICES << 9) | 0xd - .set EC_WORD_URGH, (EC_GROUP_VOICES << 9) | 0xe - .set EC_WORD_HMM, (EC_GROUP_VOICES << 9) | 0xf - .set EC_WORD_WHOAH, (EC_GROUP_VOICES << 9) | 0x10 - .set EC_WORD_WROOOAAR_EXCL, (EC_GROUP_VOICES << 9) | 0x11 - .set EC_WORD_WOW, (EC_GROUP_VOICES << 9) | 0x12 - .set EC_WORD_GIGGLE, (EC_GROUP_VOICES << 9) | 0x13 - .set EC_WORD_SIGH, (EC_GROUP_VOICES << 9) | 0x14 - .set EC_WORD_UNBELIEVABLE, (EC_GROUP_VOICES << 9) | 0x15 - .set EC_WORD_CRIES, (EC_GROUP_VOICES << 9) | 0x16 - .set EC_WORD_AGREE, (EC_GROUP_VOICES << 9) | 0x17 - .set EC_WORD_EH_QUES, (EC_GROUP_VOICES << 9) | 0x18 - .set EC_WORD_CRY, (EC_GROUP_VOICES << 9) | 0x19 - .set EC_WORD_EHEHE, (EC_GROUP_VOICES << 9) | 0x1a - .set EC_WORD_OI_OI_OI, (EC_GROUP_VOICES << 9) | 0x1b - .set EC_WORD_OH_YEAH, (EC_GROUP_VOICES << 9) | 0x1c - .set EC_WORD_OH, (EC_GROUP_VOICES << 9) | 0x1d - .set EC_WORD_OOPS, (EC_GROUP_VOICES << 9) | 0x1e - .set EC_WORD_SHOCKED, (EC_GROUP_VOICES << 9) | 0x1f - .set EC_WORD_EEK, (EC_GROUP_VOICES << 9) | 0x20 - .set EC_WORD_GRAAAH, (EC_GROUP_VOICES << 9) | 0x21 - .set EC_WORD_GWAHAHAHA, (EC_GROUP_VOICES << 9) | 0x22 - .set EC_WORD_WAY, (EC_GROUP_VOICES << 9) | 0x23 - .set EC_WORD_TCH, (EC_GROUP_VOICES << 9) | 0x24 - .set EC_WORD_HEHE, (EC_GROUP_VOICES << 9) | 0x25 - .set EC_WORD_HAH, (EC_GROUP_VOICES << 9) | 0x26 - .set EC_WORD_YUP, (EC_GROUP_VOICES << 9) | 0x27 - .set EC_WORD_HAHAHA, (EC_GROUP_VOICES << 9) | 0x28 - .set EC_WORD_AIYEEH, (EC_GROUP_VOICES << 9) | 0x29 - .set EC_WORD_HIYAH, (EC_GROUP_VOICES << 9) | 0x2a - .set EC_WORD_FUFUFU, (EC_GROUP_VOICES << 9) | 0x2b - .set EC_WORD_LOL, (EC_GROUP_VOICES << 9) | 0x2c - .set EC_WORD_SNORT, (EC_GROUP_VOICES << 9) | 0x2d - .set EC_WORD_HUMPH, (EC_GROUP_VOICES << 9) | 0x2e - .set EC_WORD_HEHEHE, (EC_GROUP_VOICES << 9) | 0x2f - .set EC_WORD_HEH, (EC_GROUP_VOICES << 9) | 0x30 - .set EC_WORD_HOHOHO, (EC_GROUP_VOICES << 9) | 0x31 - .set EC_WORD_UH_HUH, (EC_GROUP_VOICES << 9) | 0x32 - .set EC_WORD_OH_DEAR, (EC_GROUP_VOICES << 9) | 0x33 - .set EC_WORD_ARRGH, (EC_GROUP_VOICES << 9) | 0x34 - .set EC_WORD_MUFUFU, (EC_GROUP_VOICES << 9) | 0x35 - .set EC_WORD_MMM, (EC_GROUP_VOICES << 9) | 0x36 - .set EC_WORD_OH_KAY, (EC_GROUP_VOICES << 9) | 0x37 - .set EC_WORD_OKAY, (EC_GROUP_VOICES << 9) | 0x38 - .set EC_WORD_LALALA, (EC_GROUP_VOICES << 9) | 0x39 - .set EC_WORD_YAY, (EC_GROUP_VOICES << 9) | 0x3a - .set EC_WORD_AWW, (EC_GROUP_VOICES << 9) | 0x3b - .set EC_WORD_WOWEE, (EC_GROUP_VOICES << 9) | 0x3c - .set EC_WORD_GWAH, (EC_GROUP_VOICES << 9) | 0x3d - .set EC_WORD_WAHAHAHA, (EC_GROUP_VOICES << 9) | 0x3e - -@ Speech - .set EC_WORD_LISTEN, (EC_GROUP_SPEECH << 9) | 0x0 - .set EC_WORD_NOT_VERY, (EC_GROUP_SPEECH << 9) | 0x1 - .set EC_WORD_MEAN, (EC_GROUP_SPEECH << 9) | 0x2 - .set EC_WORD_LIE, (EC_GROUP_SPEECH << 9) | 0x3 - .set EC_WORD_LAY, (EC_GROUP_SPEECH << 9) | 0x4 - .set EC_WORD_RECOMMEND, (EC_GROUP_SPEECH << 9) | 0x5 - .set EC_WORD_NITWIT, (EC_GROUP_SPEECH << 9) | 0x6 - .set EC_WORD_QUITE, (EC_GROUP_SPEECH << 9) | 0x7 - .set EC_WORD_FROM, (EC_GROUP_SPEECH << 9) | 0x8 - .set EC_WORD_FEELING, (EC_GROUP_SPEECH << 9) | 0x9 - .set EC_WORD_BUT, (EC_GROUP_SPEECH << 9) | 0xa - .set EC_WORD_HOWEVER, (EC_GROUP_SPEECH << 9) | 0xb - .set EC_WORD_CASE, (EC_GROUP_SPEECH << 9) | 0xc - .set EC_WORD_THE, (EC_GROUP_SPEECH << 9) | 0xd - .set EC_WORD_MISS, (EC_GROUP_SPEECH << 9) | 0xe - .set EC_WORD_HOW, (EC_GROUP_SPEECH << 9) | 0xf - .set EC_WORD_HIT, (EC_GROUP_SPEECH << 9) | 0x10 - .set EC_WORD_ENOUGH, (EC_GROUP_SPEECH << 9) | 0x11 - .set EC_WORD_A_LOT, (EC_GROUP_SPEECH << 9) | 0x12 - .set EC_WORD_A_LITTLE, (EC_GROUP_SPEECH << 9) | 0x13 - .set EC_WORD_ABSOLUTELY, (EC_GROUP_SPEECH << 9) | 0x14 - .set EC_WORD_AND, (EC_GROUP_SPEECH << 9) | 0x15 - .set EC_WORD_ONLY, (EC_GROUP_SPEECH << 9) | 0x16 - .set EC_WORD_AROUND, (EC_GROUP_SPEECH << 9) | 0x17 - .set EC_WORD_PROBABLY, (EC_GROUP_SPEECH << 9) | 0x18 - .set EC_WORD_IF, (EC_GROUP_SPEECH << 9) | 0x19 - .set EC_WORD_VERY, (EC_GROUP_SPEECH << 9) | 0x1a - .set EC_WORD_A_TINY_BIT, (EC_GROUP_SPEECH << 9) | 0x1b - .set EC_WORD_WILD, (EC_GROUP_SPEECH << 9) | 0x1c - .set EC_WORD_THAT_S, (EC_GROUP_SPEECH << 9) | 0x1d - .set EC_WORD_JUST, (EC_GROUP_SPEECH << 9) | 0x1e - .set EC_WORD_EVEN_SO, (EC_GROUP_SPEECH << 9) | 0x1f - .set EC_WORD_MUST_BE, (EC_GROUP_SPEECH << 9) | 0x20 - .set EC_WORD_NATURALLY, (EC_GROUP_SPEECH << 9) | 0x21 - .set EC_WORD_FOR_NOW, (EC_GROUP_SPEECH << 9) | 0x22 - .set EC_WORD_UNDERSTOOD, (EC_GROUP_SPEECH << 9) | 0x23 - .set EC_WORD_JOKING, (EC_GROUP_SPEECH << 9) | 0x24 - .set EC_WORD_READY, (EC_GROUP_SPEECH << 9) | 0x25 - .set EC_WORD_SOMETHING, (EC_GROUP_SPEECH << 9) | 0x26 - .set EC_WORD_SOMEHOW, (EC_GROUP_SPEECH << 9) | 0x27 - .set EC_WORD_ALTHOUGH, (EC_GROUP_SPEECH << 9) | 0x28 - .set EC_WORD_ALSO, (EC_GROUP_SPEECH << 9) | 0x29 - .set EC_WORD_PERFECT, (EC_GROUP_SPEECH << 9) | 0x2a - .set EC_WORD_AS_MUCH_AS, (EC_GROUP_SPEECH << 9) | 0x2b - .set EC_WORD_REALLY, (EC_GROUP_SPEECH << 9) | 0x2c - .set EC_WORD_TRULY, (EC_GROUP_SPEECH << 9) | 0x2d - .set EC_WORD_SERIOUSLY, (EC_GROUP_SPEECH << 9) | 0x2e - .set EC_WORD_TOTALLY, (EC_GROUP_SPEECH << 9) | 0x2f - .set EC_WORD_UNTIL, (EC_GROUP_SPEECH << 9) | 0x30 - .set EC_WORD_AS_IF, (EC_GROUP_SPEECH << 9) | 0x31 - .set EC_WORD_MOOD, (EC_GROUP_SPEECH << 9) | 0x32 - .set EC_WORD_RATHER, (EC_GROUP_SPEECH << 9) | 0x33 - .set EC_WORD_AWFULLY, (EC_GROUP_SPEECH << 9) | 0x34 - .set EC_WORD_MODE, (EC_GROUP_SPEECH << 9) | 0x35 - .set EC_WORD_MORE, (EC_GROUP_SPEECH << 9) | 0x36 - .set EC_WORD_TOO_LATE, (EC_GROUP_SPEECH << 9) | 0x37 - .set EC_WORD_FINALLY, (EC_GROUP_SPEECH << 9) | 0x38 - .set EC_WORD_ANY, (EC_GROUP_SPEECH << 9) | 0x39 - .set EC_WORD_INSTEAD, (EC_GROUP_SPEECH << 9) | 0x3a - .set EC_WORD_FANTASTIC, (EC_GROUP_SPEECH << 9) | 0x3b - -@ Endings - .set EC_WORD_WILL, (EC_GROUP_ENDINGS << 9) | 0x0 - .set EC_WORD_WILL_BE_HERE, (EC_GROUP_ENDINGS << 9) | 0x1 - .set EC_WORD_OR, (EC_GROUP_ENDINGS << 9) | 0x2 - .set EC_WORD_TIMES, (EC_GROUP_ENDINGS << 9) | 0x3 - .set EC_WORD_WONDER, (EC_GROUP_ENDINGS << 9) | 0x4 - .set EC_WORD_IS_IT_QUES, (EC_GROUP_ENDINGS << 9) | 0x5 - .set EC_WORD_BE, (EC_GROUP_ENDINGS << 9) | 0x6 - .set EC_WORD_GIMME, (EC_GROUP_ENDINGS << 9) | 0x7 - .set EC_WORD_COULD, (EC_GROUP_ENDINGS << 9) | 0x8 - .set EC_WORD_LIKELY_TO, (EC_GROUP_ENDINGS << 9) | 0x9 - .set EC_WORD_WOULD, (EC_GROUP_ENDINGS << 9) | 0xa - .set EC_WORD_IS, (EC_GROUP_ENDINGS << 9) | 0xb - .set EC_WORD_ISN_T_IT_QUES, (EC_GROUP_ENDINGS << 9) | 0xc - .set EC_WORD_LET_S, (EC_GROUP_ENDINGS << 9) | 0xd - .set EC_WORD_OTHER, (EC_GROUP_ENDINGS << 9) | 0xe - .set EC_WORD_ARE, (EC_GROUP_ENDINGS << 9) | 0xf - .set EC_WORD_WAS, (EC_GROUP_ENDINGS << 9) | 0x10 - .set EC_WORD_WERE, (EC_GROUP_ENDINGS << 9) | 0x11 - .set EC_WORD_THOSE, (EC_GROUP_ENDINGS << 9) | 0x12 - .set EC_WORD_ISN_T, (EC_GROUP_ENDINGS << 9) | 0x13 - .set EC_WORD_WON_T, (EC_GROUP_ENDINGS << 9) | 0x14 - .set EC_WORD_CAN_T, (EC_GROUP_ENDINGS << 9) | 0x15 - .set EC_WORD_CAN, (EC_GROUP_ENDINGS << 9) | 0x16 - .set EC_WORD_DON_T, (EC_GROUP_ENDINGS << 9) | 0x17 - .set EC_WORD_DO, (EC_GROUP_ENDINGS << 9) | 0x18 - .set EC_WORD_DOES, (EC_GROUP_ENDINGS << 9) | 0x19 - .set EC_WORD_WHOM, (EC_GROUP_ENDINGS << 9) | 0x1a - .set EC_WORD_WHICH, (EC_GROUP_ENDINGS << 9) | 0x1b - .set EC_WORD_WASN_T, (EC_GROUP_ENDINGS << 9) | 0x1c - .set EC_WORD_WEREN_T, (EC_GROUP_ENDINGS << 9) | 0x1d - .set EC_WORD_HAVE, (EC_GROUP_ENDINGS << 9) | 0x1e - .set EC_WORD_HAVEN_T, (EC_GROUP_ENDINGS << 9) | 0x1f - .set EC_WORD_A, (EC_GROUP_ENDINGS << 9) | 0x20 - .set EC_WORD_AN, (EC_GROUP_ENDINGS << 9) | 0x21 - .set EC_WORD_NOT, (EC_GROUP_ENDINGS << 9) | 0x22 - .set EC_WORD_THERE, (EC_GROUP_ENDINGS << 9) | 0x23 - .set EC_WORD_OK_QUES, (EC_GROUP_ENDINGS << 9) | 0x24 - .set EC_WORD_SO, (EC_GROUP_ENDINGS << 9) | 0x25 - .set EC_WORD_MAYBE, (EC_GROUP_ENDINGS << 9) | 0x26 - .set EC_WORD_ABOUT, (EC_GROUP_ENDINGS << 9) | 0x27 - .set EC_WORD_OVER, (EC_GROUP_ENDINGS << 9) | 0x28 - .set EC_WORD_IT, (EC_GROUP_ENDINGS << 9) | 0x29 - .set EC_WORD_ALL, (EC_GROUP_ENDINGS << 9) | 0x2a - .set EC_WORD_FOR, (EC_GROUP_ENDINGS << 9) | 0x2b - .set EC_WORD_ON, (EC_GROUP_ENDINGS << 9) | 0x2c - .set EC_WORD_OFF, (EC_GROUP_ENDINGS << 9) | 0x2d - .set EC_WORD_AS, (EC_GROUP_ENDINGS << 9) | 0x2e - .set EC_WORD_TO, (EC_GROUP_ENDINGS << 9) | 0x2f - .set EC_WORD_WITH, (EC_GROUP_ENDINGS << 9) | 0x30 - .set EC_WORD_BETTER, (EC_GROUP_ENDINGS << 9) | 0x31 - .set EC_WORD_EVER, (EC_GROUP_ENDINGS << 9) | 0x32 - .set EC_WORD_SINCE, (EC_GROUP_ENDINGS << 9) | 0x33 - .set EC_WORD_OF, (EC_GROUP_ENDINGS << 9) | 0x34 - .set EC_WORD_BELONGS_TO, (EC_GROUP_ENDINGS << 9) | 0x35 - .set EC_WORD_AT, (EC_GROUP_ENDINGS << 9) | 0x36 - .set EC_WORD_IN, (EC_GROUP_ENDINGS << 9) | 0x37 - .set EC_WORD_OUT, (EC_GROUP_ENDINGS << 9) | 0x38 - .set EC_WORD_TOO, (EC_GROUP_ENDINGS << 9) | 0x39 - .set EC_WORD_LIKE, (EC_GROUP_ENDINGS << 9) | 0x3a - .set EC_WORD_DID, (EC_GROUP_ENDINGS << 9) | 0x3b - .set EC_WORD_DIDN_T, (EC_GROUP_ENDINGS << 9) | 0x3c - .set EC_WORD_DOESN_T, (EC_GROUP_ENDINGS << 9) | 0x3d - .set EC_WORD_WITHOUT, (EC_GROUP_ENDINGS << 9) | 0x3e - .set EC_WORD_AFTER, (EC_GROUP_ENDINGS << 9) | 0x3f - .set EC_WORD_BEFORE, (EC_GROUP_ENDINGS << 9) | 0x40 - .set EC_WORD_WHILE, (EC_GROUP_ENDINGS << 9) | 0x41 - .set EC_WORD_THAN, (EC_GROUP_ENDINGS << 9) | 0x42 - .set EC_WORD_ONCE, (EC_GROUP_ENDINGS << 9) | 0x43 - .set EC_WORD_ANYWHERE, (EC_GROUP_ENDINGS << 9) | 0x44 - -@ Feelings - .set EC_WORD_MEET, (EC_GROUP_FEELINGS << 9) | 0x0 - .set EC_WORD_PLAY, (EC_GROUP_FEELINGS << 9) | 0x1 - .set EC_WORD_HURRIED, (EC_GROUP_FEELINGS << 9) | 0x2 - .set EC_WORD_GOES, (EC_GROUP_FEELINGS << 9) | 0x3 - .set EC_WORD_GIDDY, (EC_GROUP_FEELINGS << 9) | 0x4 - .set EC_WORD_HAPPY, (EC_GROUP_FEELINGS << 9) | 0x5 - .set EC_WORD_HAPPINESS, (EC_GROUP_FEELINGS << 9) | 0x6 - .set EC_WORD_EXCITE, (EC_GROUP_FEELINGS << 9) | 0x7 - .set EC_WORD_IMPORTANT, (EC_GROUP_FEELINGS << 9) | 0x8 - .set EC_WORD_FUNNY, (EC_GROUP_FEELINGS << 9) | 0x9 - .set EC_WORD_GOT, (EC_GROUP_FEELINGS << 9) | 0xa - .set EC_WORD_GO_HOME, (EC_GROUP_FEELINGS << 9) | 0xb - .set EC_WORD_DISAPPOINTED, (EC_GROUP_FEELINGS << 9) | 0xc - .set EC_WORD_DISAPPOINTS, (EC_GROUP_FEELINGS << 9) | 0xd - .set EC_WORD_SAD, (EC_GROUP_FEELINGS << 9) | 0xe - .set EC_WORD_TRY, (EC_GROUP_FEELINGS << 9) | 0xf - .set EC_WORD_TRIES, (EC_GROUP_FEELINGS << 9) | 0x10 - .set EC_WORD_HEARS, (EC_GROUP_FEELINGS << 9) | 0x11 - .set EC_WORD_THINK, (EC_GROUP_FEELINGS << 9) | 0x12 - .set EC_WORD_HEAR, (EC_GROUP_FEELINGS << 9) | 0x13 - .set EC_WORD_WANTS, (EC_GROUP_FEELINGS << 9) | 0x14 - .set EC_WORD_MISHEARD, (EC_GROUP_FEELINGS << 9) | 0x15 - .set EC_WORD_DISLIKE, (EC_GROUP_FEELINGS << 9) | 0x16 - .set EC_WORD_ANGRY, (EC_GROUP_FEELINGS << 9) | 0x17 - .set EC_WORD_ANGER, (EC_GROUP_FEELINGS << 9) | 0x18 - .set EC_WORD_SCARY, (EC_GROUP_FEELINGS << 9) | 0x19 - .set EC_WORD_LONESOME, (EC_GROUP_FEELINGS << 9) | 0x1a - .set EC_WORD_DISAPPOINT, (EC_GROUP_FEELINGS << 9) | 0x1b - .set EC_WORD_JOY, (EC_GROUP_FEELINGS << 9) | 0x1c - .set EC_WORD_GETS, (EC_GROUP_FEELINGS << 9) | 0x1d - .set EC_WORD_NEVER, (EC_GROUP_FEELINGS << 9) | 0x1e - .set EC_WORD_DARN, (EC_GROUP_FEELINGS << 9) | 0x1f - .set EC_WORD_DOWNCAST, (EC_GROUP_FEELINGS << 9) | 0x20 - .set EC_WORD_INCREDIBLE, (EC_GROUP_FEELINGS << 9) | 0x21 - .set EC_WORD_LIKES, (EC_GROUP_FEELINGS << 9) | 0x22 - .set EC_WORD_DISLIKES, (EC_GROUP_FEELINGS << 9) | 0x23 - .set EC_WORD_BORING, (EC_GROUP_FEELINGS << 9) | 0x24 - .set EC_WORD_CARE, (EC_GROUP_FEELINGS << 9) | 0x25 - .set EC_WORD_CARES, (EC_GROUP_FEELINGS << 9) | 0x26 - .set EC_WORD_ALL_RIGHT, (EC_GROUP_FEELINGS << 9) | 0x27 - .set EC_WORD_ADORE, (EC_GROUP_FEELINGS << 9) | 0x28 - .set EC_WORD_DISASTER, (EC_GROUP_FEELINGS << 9) | 0x29 - .set EC_WORD_ENJOY, (EC_GROUP_FEELINGS << 9) | 0x2a - .set EC_WORD_ENJOYS, (EC_GROUP_FEELINGS << 9) | 0x2b - .set EC_WORD_EAT, (EC_GROUP_FEELINGS << 9) | 0x2c - .set EC_WORD_LACKING, (EC_GROUP_FEELINGS << 9) | 0x2d - .set EC_WORD_BAD, (EC_GROUP_FEELINGS << 9) | 0x2e - .set EC_WORD_HARD, (EC_GROUP_FEELINGS << 9) | 0x2f - .set EC_WORD_TERRIBLE, (EC_GROUP_FEELINGS << 9) | 0x30 - .set EC_WORD_SHOULD, (EC_GROUP_FEELINGS << 9) | 0x31 - .set EC_WORD_NICE, (EC_GROUP_FEELINGS << 9) | 0x32 - .set EC_WORD_DRINK, (EC_GROUP_FEELINGS << 9) | 0x33 - .set EC_WORD_SURPRISE, (EC_GROUP_FEELINGS << 9) | 0x34 - .set EC_WORD_FEAR, (EC_GROUP_FEELINGS << 9) | 0x35 - .set EC_WORD_WANT, (EC_GROUP_FEELINGS << 9) | 0x36 - .set EC_WORD_WAIT, (EC_GROUP_FEELINGS << 9) | 0x37 - .set EC_WORD_SATISFIED, (EC_GROUP_FEELINGS << 9) | 0x38 - .set EC_WORD_SEE, (EC_GROUP_FEELINGS << 9) | 0x39 - .set EC_WORD_RARE, (EC_GROUP_FEELINGS << 9) | 0x3a - .set EC_WORD_NEGATIVE, (EC_GROUP_FEELINGS << 9) | 0x3b - .set EC_WORD_DONE, (EC_GROUP_FEELINGS << 9) | 0x3c - .set EC_WORD_DANGER, (EC_GROUP_FEELINGS << 9) | 0x3d - .set EC_WORD_DEFEATED, (EC_GROUP_FEELINGS << 9) | 0x3e - .set EC_WORD_BEAT, (EC_GROUP_FEELINGS << 9) | 0x3f - .set EC_WORD_GREAT, (EC_GROUP_FEELINGS << 9) | 0x40 - .set EC_WORD_ROMANTIC, (EC_GROUP_FEELINGS << 9) | 0x41 - .set EC_WORD_QUESTION, (EC_GROUP_FEELINGS << 9) | 0x42 - .set EC_WORD_UNDERSTAND, (EC_GROUP_FEELINGS << 9) | 0x43 - .set EC_WORD_UNDERSTANDS, (EC_GROUP_FEELINGS << 9) | 0x44 - -@ Conditions - .set EC_WORD_HOT, (EC_GROUP_CONDITIONS << 9) | 0x0 - .set EC_WORD_EXISTS, (EC_GROUP_CONDITIONS << 9) | 0x1 - .set EC_WORD_EXCESS, (EC_GROUP_CONDITIONS << 9) | 0x2 - .set EC_WORD_APPROVED, (EC_GROUP_CONDITIONS << 9) | 0x3 - .set EC_WORD_HAS, (EC_GROUP_CONDITIONS << 9) | 0x4 - .set EC_WORD_GOOD, (EC_GROUP_CONDITIONS << 9) | 0x5 - .set EC_WORD_LESS, (EC_GROUP_CONDITIONS << 9) | 0x6 - .set EC_WORD_MOMENTUM, (EC_GROUP_CONDITIONS << 9) | 0x7 - .set EC_WORD_GOING, (EC_GROUP_CONDITIONS << 9) | 0x8 - .set EC_WORD_WEIRD, (EC_GROUP_CONDITIONS << 9) | 0x9 - .set EC_WORD_BUSY, (EC_GROUP_CONDITIONS << 9) | 0xa - .set EC_WORD_TOGETHER, (EC_GROUP_CONDITIONS << 9) | 0xb - .set EC_WORD_FULL, (EC_GROUP_CONDITIONS << 9) | 0xc - .set EC_WORD_ABSENT, (EC_GROUP_CONDITIONS << 9) | 0xd - .set EC_WORD_BEING, (EC_GROUP_CONDITIONS << 9) | 0xe - .set EC_WORD_NEED, (EC_GROUP_CONDITIONS << 9) | 0xf - .set EC_WORD_TASTY, (EC_GROUP_CONDITIONS << 9) | 0x10 - .set EC_WORD_SKILLED, (EC_GROUP_CONDITIONS << 9) | 0x11 - .set EC_WORD_NOISY, (EC_GROUP_CONDITIONS << 9) | 0x12 - .set EC_WORD_BIG, (EC_GROUP_CONDITIONS << 9) | 0x13 - .set EC_WORD_LATE, (EC_GROUP_CONDITIONS << 9) | 0x14 - .set EC_WORD_CLOSE, (EC_GROUP_CONDITIONS << 9) | 0x15 - .set EC_WORD_DOCILE, (EC_GROUP_CONDITIONS << 9) | 0x16 - .set EC_WORD_AMUSING, (EC_GROUP_CONDITIONS << 9) | 0x17 - .set EC_WORD_ENTERTAINING, (EC_GROUP_CONDITIONS << 9) | 0x18 - .set EC_WORD_PERFECTION, (EC_GROUP_CONDITIONS << 9) | 0x19 - .set EC_WORD_PRETTY, (EC_GROUP_CONDITIONS << 9) | 0x1a - .set EC_WORD_HEALTHY, (EC_GROUP_CONDITIONS << 9) | 0x1b - .set EC_WORD_EXCELLENT, (EC_GROUP_CONDITIONS << 9) | 0x1c - .set EC_WORD_UPSIDE_DOWN, (EC_GROUP_CONDITIONS << 9) | 0x1d - .set EC_WORD_COLD, (EC_GROUP_CONDITIONS << 9) | 0x1e - .set EC_WORD_REFRESHING, (EC_GROUP_CONDITIONS << 9) | 0x1f - .set EC_WORD_UNAVOIDABLE, (EC_GROUP_CONDITIONS << 9) | 0x20 - .set EC_WORD_MUCH, (EC_GROUP_CONDITIONS << 9) | 0x21 - .set EC_WORD_OVERWHELMING, (EC_GROUP_CONDITIONS << 9) | 0x22 - .set EC_WORD_FABULOUS, (EC_GROUP_CONDITIONS << 9) | 0x23 - .set EC_WORD_ELSE, (EC_GROUP_CONDITIONS << 9) | 0x24 - .set EC_WORD_EXPENSIVE, (EC_GROUP_CONDITIONS << 9) | 0x25 - .set EC_WORD_CORRECT, (EC_GROUP_CONDITIONS << 9) | 0x26 - .set EC_WORD_IMPOSSIBLE, (EC_GROUP_CONDITIONS << 9) | 0x27 - .set EC_WORD_SMALL, (EC_GROUP_CONDITIONS << 9) | 0x28 - .set EC_WORD_DIFFERENT, (EC_GROUP_CONDITIONS << 9) | 0x29 - .set EC_WORD_TIRED, (EC_GROUP_CONDITIONS << 9) | 0x2a - .set EC_WORD_SKILL, (EC_GROUP_CONDITIONS << 9) | 0x2b - .set EC_WORD_TOP, (EC_GROUP_CONDITIONS << 9) | 0x2c - .set EC_WORD_NON_STOP, (EC_GROUP_CONDITIONS << 9) | 0x2d - .set EC_WORD_PREPOSTEROUS, (EC_GROUP_CONDITIONS << 9) | 0x2e - .set EC_WORD_NONE, (EC_GROUP_CONDITIONS << 9) | 0x2f - .set EC_WORD_NOTHING, (EC_GROUP_CONDITIONS << 9) | 0x30 - .set EC_WORD_NATURAL, (EC_GROUP_CONDITIONS << 9) | 0x31 - .set EC_WORD_BECOMES, (EC_GROUP_CONDITIONS << 9) | 0x32 - .set EC_WORD_LUKEWARM, (EC_GROUP_CONDITIONS << 9) | 0x33 - .set EC_WORD_FAST, (EC_GROUP_CONDITIONS << 9) | 0x34 - .set EC_WORD_LOW, (EC_GROUP_CONDITIONS << 9) | 0x35 - .set EC_WORD_AWFUL, (EC_GROUP_CONDITIONS << 9) | 0x36 - .set EC_WORD_ALONE, (EC_GROUP_CONDITIONS << 9) | 0x37 - .set EC_WORD_BORED, (EC_GROUP_CONDITIONS << 9) | 0x38 - .set EC_WORD_SECRET, (EC_GROUP_CONDITIONS << 9) | 0x39 - .set EC_WORD_MYSTERY, (EC_GROUP_CONDITIONS << 9) | 0x3a - .set EC_WORD_LACKS, (EC_GROUP_CONDITIONS << 9) | 0x3b - .set EC_WORD_BEST, (EC_GROUP_CONDITIONS << 9) | 0x3c - .set EC_WORD_LOUSY, (EC_GROUP_CONDITIONS << 9) | 0x3d - .set EC_WORD_MISTAKE, (EC_GROUP_CONDITIONS << 9) | 0x3e - .set EC_WORD_KIND, (EC_GROUP_CONDITIONS << 9) | 0x3f - .set EC_WORD_WELL, (EC_GROUP_CONDITIONS << 9) | 0x40 - .set EC_WORD_WEAKENED, (EC_GROUP_CONDITIONS << 9) | 0x41 - .set EC_WORD_SIMPLE, (EC_GROUP_CONDITIONS << 9) | 0x42 - .set EC_WORD_SEEMS, (EC_GROUP_CONDITIONS << 9) | 0x43 - .set EC_WORD_BADLY, (EC_GROUP_CONDITIONS << 9) | 0x44 - -@ Actions - .set EC_WORD_MEETS, (EC_GROUP_ACTIONS << 9) | 0x0 - .set EC_WORD_CONCEDE, (EC_GROUP_ACTIONS << 9) | 0x1 - .set EC_WORD_GIVE, (EC_GROUP_ACTIONS << 9) | 0x2 - .set EC_WORD_GIVES, (EC_GROUP_ACTIONS << 9) | 0x3 - .set EC_WORD_PLAYED, (EC_GROUP_ACTIONS << 9) | 0x4 - .set EC_WORD_PLAYS, (EC_GROUP_ACTIONS << 9) | 0x5 - .set EC_WORD_COLLECT, (EC_GROUP_ACTIONS << 9) | 0x6 - .set EC_WORD_WALKING, (EC_GROUP_ACTIONS << 9) | 0x7 - .set EC_WORD_WALKS, (EC_GROUP_ACTIONS << 9) | 0x8 - .set EC_WORD_SAYS, (EC_GROUP_ACTIONS << 9) | 0x9 - .set EC_WORD_WENT, (EC_GROUP_ACTIONS << 9) | 0xa - .set EC_WORD_SAID, (EC_GROUP_ACTIONS << 9) | 0xb - .set EC_WORD_WAKE_UP, (EC_GROUP_ACTIONS << 9) | 0xc - .set EC_WORD_WAKES_UP, (EC_GROUP_ACTIONS << 9) | 0xd - .set EC_WORD_ANGERS, (EC_GROUP_ACTIONS << 9) | 0xe - .set EC_WORD_TEACH, (EC_GROUP_ACTIONS << 9) | 0xf - .set EC_WORD_TEACHES, (EC_GROUP_ACTIONS << 9) | 0x10 - .set EC_WORD_PLEASE, (EC_GROUP_ACTIONS << 9) | 0x11 - .set EC_WORD_LEARN, (EC_GROUP_ACTIONS << 9) | 0x12 - .set EC_WORD_CHANGE, (EC_GROUP_ACTIONS << 9) | 0x13 - .set EC_WORD_STORY, (EC_GROUP_ACTIONS << 9) | 0x14 - .set EC_WORD_TRUST, (EC_GROUP_ACTIONS << 9) | 0x15 - .set EC_WORD_LAVISH, (EC_GROUP_ACTIONS << 9) | 0x16 - .set EC_WORD_LISTENS, (EC_GROUP_ACTIONS << 9) | 0x17 - .set EC_WORD_HEARING, (EC_GROUP_ACTIONS << 9) | 0x18 - .set EC_WORD_TRAINS, (EC_GROUP_ACTIONS << 9) | 0x19 - .set EC_WORD_CHOOSE, (EC_GROUP_ACTIONS << 9) | 0x1a - .set EC_WORD_COME, (EC_GROUP_ACTIONS << 9) | 0x1b - .set EC_WORD_CAME, (EC_GROUP_ACTIONS << 9) | 0x1c - .set EC_WORD_SEARCH, (EC_GROUP_ACTIONS << 9) | 0x1d - .set EC_WORD_MAKE, (EC_GROUP_ACTIONS << 9) | 0x1e - .set EC_WORD_CAUSE, (EC_GROUP_ACTIONS << 9) | 0x1f - .set EC_WORD_KNOW, (EC_GROUP_ACTIONS << 9) | 0x20 - .set EC_WORD_KNOWS, (EC_GROUP_ACTIONS << 9) | 0x21 - .set EC_WORD_REFUSE, (EC_GROUP_ACTIONS << 9) | 0x22 - .set EC_WORD_STORES, (EC_GROUP_ACTIONS << 9) | 0x23 - .set EC_WORD_BRAG, (EC_GROUP_ACTIONS << 9) | 0x24 - .set EC_WORD_IGNORANT, (EC_GROUP_ACTIONS << 9) | 0x25 - .set EC_WORD_THINKS, (EC_GROUP_ACTIONS << 9) | 0x26 - .set EC_WORD_BELIEVE, (EC_GROUP_ACTIONS << 9) | 0x27 - .set EC_WORD_SLIDE, (EC_GROUP_ACTIONS << 9) | 0x28 - .set EC_WORD_EATS, (EC_GROUP_ACTIONS << 9) | 0x29 - .set EC_WORD_USE, (EC_GROUP_ACTIONS << 9) | 0x2a - .set EC_WORD_USES, (EC_GROUP_ACTIONS << 9) | 0x2b - .set EC_WORD_USING, (EC_GROUP_ACTIONS << 9) | 0x2c - .set EC_WORD_COULDN_T, (EC_GROUP_ACTIONS << 9) | 0x2d - .set EC_WORD_CAPABLE, (EC_GROUP_ACTIONS << 9) | 0x2e - .set EC_WORD_DISAPPEAR, (EC_GROUP_ACTIONS << 9) | 0x2f - .set EC_WORD_APPEAR, (EC_GROUP_ACTIONS << 9) | 0x30 - .set EC_WORD_THROW, (EC_GROUP_ACTIONS << 9) | 0x31 - .set EC_WORD_WORRY, (EC_GROUP_ACTIONS << 9) | 0x32 - .set EC_WORD_SLEPT, (EC_GROUP_ACTIONS << 9) | 0x33 - .set EC_WORD_SLEEP, (EC_GROUP_ACTIONS << 9) | 0x34 - .set EC_WORD_RELEASE, (EC_GROUP_ACTIONS << 9) | 0x35 - .set EC_WORD_DRINKS, (EC_GROUP_ACTIONS << 9) | 0x36 - .set EC_WORD_RUNS, (EC_GROUP_ACTIONS << 9) | 0x37 - .set EC_WORD_RUN, (EC_GROUP_ACTIONS << 9) | 0x38 - .set EC_WORD_WORKS, (EC_GROUP_ACTIONS << 9) | 0x39 - .set EC_WORD_WORKING, (EC_GROUP_ACTIONS << 9) | 0x3a - .set EC_WORD_TALKING, (EC_GROUP_ACTIONS << 9) | 0x3b - .set EC_WORD_TALK, (EC_GROUP_ACTIONS << 9) | 0x3c - .set EC_WORD_SINK, (EC_GROUP_ACTIONS << 9) | 0x3d - .set EC_WORD_SMACK, (EC_GROUP_ACTIONS << 9) | 0x3e - .set EC_WORD_PRETEND, (EC_GROUP_ACTIONS << 9) | 0x3f - .set EC_WORD_PRAISE, (EC_GROUP_ACTIONS << 9) | 0x40 - .set EC_WORD_OVERDO, (EC_GROUP_ACTIONS << 9) | 0x41 - .set EC_WORD_SHOW, (EC_GROUP_ACTIONS << 9) | 0x42 - .set EC_WORD_LOOKS, (EC_GROUP_ACTIONS << 9) | 0x43 - .set EC_WORD_SEES, (EC_GROUP_ACTIONS << 9) | 0x44 - .set EC_WORD_SEEK, (EC_GROUP_ACTIONS << 9) | 0x45 - .set EC_WORD_OWN, (EC_GROUP_ACTIONS << 9) | 0x46 - .set EC_WORD_TAKE, (EC_GROUP_ACTIONS << 9) | 0x47 - .set EC_WORD_ALLOW, (EC_GROUP_ACTIONS << 9) | 0x48 - .set EC_WORD_FORGET, (EC_GROUP_ACTIONS << 9) | 0x49 - .set EC_WORD_FORGETS, (EC_GROUP_ACTIONS << 9) | 0x4a - .set EC_WORD_APPEARS, (EC_GROUP_ACTIONS << 9) | 0x4b - .set EC_WORD_FAINT, (EC_GROUP_ACTIONS << 9) | 0x4c - .set EC_WORD_FAINTED, (EC_GROUP_ACTIONS << 9) | 0x4d - -@ Lifestyle - .set EC_WORD_CHORES, (EC_GROUP_LIFESTYLE << 9) | 0x0 - .set EC_WORD_HOME, (EC_GROUP_LIFESTYLE << 9) | 0x1 - .set EC_WORD_MONEY, (EC_GROUP_LIFESTYLE << 9) | 0x2 - .set EC_WORD_ALLOWANCE, (EC_GROUP_LIFESTYLE << 9) | 0x3 - .set EC_WORD_BATH, (EC_GROUP_LIFESTYLE << 9) | 0x4 - .set EC_WORD_CONVERSATION, (EC_GROUP_LIFESTYLE << 9) | 0x5 - .set EC_WORD_SCHOOL, (EC_GROUP_LIFESTYLE << 9) | 0x6 - .set EC_WORD_COMMEMORATE, (EC_GROUP_LIFESTYLE << 9) | 0x7 - .set EC_WORD_HABIT, (EC_GROUP_LIFESTYLE << 9) | 0x8 - .set EC_WORD_GROUP, (EC_GROUP_LIFESTYLE << 9) | 0x9 - .set EC_WORD_WORD, (EC_GROUP_LIFESTYLE << 9) | 0xa - .set EC_WORD_STORE, (EC_GROUP_LIFESTYLE << 9) | 0xb - .set EC_WORD_SERVICE, (EC_GROUP_LIFESTYLE << 9) | 0xc - .set EC_WORD_WORK, (EC_GROUP_LIFESTYLE << 9) | 0xd - .set EC_WORD_SYSTEM, (EC_GROUP_LIFESTYLE << 9) | 0xe - .set EC_WORD_TRAIN, (EC_GROUP_LIFESTYLE << 9) | 0xf - .set EC_WORD_CLASS, (EC_GROUP_LIFESTYLE << 9) | 0x10 - .set EC_WORD_LESSONS, (EC_GROUP_LIFESTYLE << 9) | 0x11 - .set EC_WORD_INFORMATION, (EC_GROUP_LIFESTYLE << 9) | 0x12 - .set EC_WORD_LIVING, (EC_GROUP_LIFESTYLE << 9) | 0x13 - .set EC_WORD_TEACHER, (EC_GROUP_LIFESTYLE << 9) | 0x14 - .set EC_WORD_TOURNAMENT, (EC_GROUP_LIFESTYLE << 9) | 0x15 - .set EC_WORD_LETTER, (EC_GROUP_LIFESTYLE << 9) | 0x16 - .set EC_WORD_EVENT, (EC_GROUP_LIFESTYLE << 9) | 0x17 - .set EC_WORD_DIGITAL, (EC_GROUP_LIFESTYLE << 9) | 0x18 - .set EC_WORD_TEST, (EC_GROUP_LIFESTYLE << 9) | 0x19 - .set EC_WORD_DEPT_STORE, (EC_GROUP_LIFESTYLE << 9) | 0x1a - .set EC_WORD_TELEVISION, (EC_GROUP_LIFESTYLE << 9) | 0x1b - .set EC_WORD_PHONE, (EC_GROUP_LIFESTYLE << 9) | 0x1c - .set EC_WORD_ITEM, (EC_GROUP_LIFESTYLE << 9) | 0x1d - .set EC_WORD_NAME, (EC_GROUP_LIFESTYLE << 9) | 0x1e - .set EC_WORD_NEWS, (EC_GROUP_LIFESTYLE << 9) | 0x1f - .set EC_WORD_POPULAR, (EC_GROUP_LIFESTYLE << 9) | 0x20 - .set EC_WORD_PARTY, (EC_GROUP_LIFESTYLE << 9) | 0x21 - .set EC_WORD_STUDY, (EC_GROUP_LIFESTYLE << 9) | 0x22 - .set EC_WORD_MACHINE, (EC_GROUP_LIFESTYLE << 9) | 0x23 - .set EC_WORD_MAIL, (EC_GROUP_LIFESTYLE << 9) | 0x24 - .set EC_WORD_MESSAGE, (EC_GROUP_LIFESTYLE << 9) | 0x25 - .set EC_WORD_PROMISE, (EC_GROUP_LIFESTYLE << 9) | 0x26 - .set EC_WORD_DREAM, (EC_GROUP_LIFESTYLE << 9) | 0x27 - .set EC_WORD_KINDERGARTEN, (EC_GROUP_LIFESTYLE << 9) | 0x28 - .set EC_WORD_LIFE, (EC_GROUP_LIFESTYLE << 9) | 0x29 - .set EC_WORD_RADIO, (EC_GROUP_LIFESTYLE << 9) | 0x2a - .set EC_WORD_RENTAL, (EC_GROUP_LIFESTYLE << 9) | 0x2b - .set EC_WORD_WORLD, (EC_GROUP_LIFESTYLE << 9) | 0x2c - -@ Hobbies - .set EC_WORD_IDOL, (EC_GROUP_HOBBIES << 9) | 0x0 - .set EC_WORD_ANIME, (EC_GROUP_HOBBIES << 9) | 0x1 - .set EC_WORD_SONG, (EC_GROUP_HOBBIES << 9) | 0x2 - .set EC_WORD_MOVIE, (EC_GROUP_HOBBIES << 9) | 0x3 - .set EC_WORD_SWEETS, (EC_GROUP_HOBBIES << 9) | 0x4 - .set EC_WORD_CHAT, (EC_GROUP_HOBBIES << 9) | 0x5 - .set EC_WORD_CHILD_S_PLAY, (EC_GROUP_HOBBIES << 9) | 0x6 - .set EC_WORD_TOYS, (EC_GROUP_HOBBIES << 9) | 0x7 - .set EC_WORD_MUSIC, (EC_GROUP_HOBBIES << 9) | 0x8 - .set EC_WORD_CARDS, (EC_GROUP_HOBBIES << 9) | 0x9 - .set EC_WORD_SHOPPING, (EC_GROUP_HOBBIES << 9) | 0xa - .set EC_WORD_CAMERA, (EC_GROUP_HOBBIES << 9) | 0xb - .set EC_WORD_VIEWING, (EC_GROUP_HOBBIES << 9) | 0xc - .set EC_WORD_SPECTATOR, (EC_GROUP_HOBBIES << 9) | 0xd - .set EC_WORD_GOURMET, (EC_GROUP_HOBBIES << 9) | 0xe - .set EC_WORD_GAME, (EC_GROUP_HOBBIES << 9) | 0xf - .set EC_WORD_RPG, (EC_GROUP_HOBBIES << 9) | 0x10 - .set EC_WORD_COLLECTION, (EC_GROUP_HOBBIES << 9) | 0x11 - .set EC_WORD_COMPLETE, (EC_GROUP_HOBBIES << 9) | 0x12 - .set EC_WORD_MAGAZINE, (EC_GROUP_HOBBIES << 9) | 0x13 - .set EC_WORD_WALK, (EC_GROUP_HOBBIES << 9) | 0x14 - .set EC_WORD_BIKE, (EC_GROUP_HOBBIES << 9) | 0x15 - .set EC_WORD_HOBBY, (EC_GROUP_HOBBIES << 9) | 0x16 - .set EC_WORD_SPORTS, (EC_GROUP_HOBBIES << 9) | 0x17 - .set EC_WORD_SOFTWARE, (EC_GROUP_HOBBIES << 9) | 0x18 - .set EC_WORD_SONGS, (EC_GROUP_HOBBIES << 9) | 0x19 - .set EC_WORD_DIET, (EC_GROUP_HOBBIES << 9) | 0x1a - .set EC_WORD_TREASURE, (EC_GROUP_HOBBIES << 9) | 0x1b - .set EC_WORD_TRAVEL, (EC_GROUP_HOBBIES << 9) | 0x1c - .set EC_WORD_DANCE, (EC_GROUP_HOBBIES << 9) | 0x1d - .set EC_WORD_CHANNEL, (EC_GROUP_HOBBIES << 9) | 0x1e - .set EC_WORD_MAKING, (EC_GROUP_HOBBIES << 9) | 0x1f - .set EC_WORD_FISHING, (EC_GROUP_HOBBIES << 9) | 0x20 - .set EC_WORD_DATE, (EC_GROUP_HOBBIES << 9) | 0x21 - .set EC_WORD_DESIGN, (EC_GROUP_HOBBIES << 9) | 0x22 - .set EC_WORD_LOCOMOTIVE, (EC_GROUP_HOBBIES << 9) | 0x23 - .set EC_WORD_PLUSH_DOLL, (EC_GROUP_HOBBIES << 9) | 0x24 - .set EC_WORD_PC, (EC_GROUP_HOBBIES << 9) | 0x25 - .set EC_WORD_FLOWERS, (EC_GROUP_HOBBIES << 9) | 0x26 - .set EC_WORD_HERO, (EC_GROUP_HOBBIES << 9) | 0x27 - .set EC_WORD_NAP, (EC_GROUP_HOBBIES << 9) | 0x28 - .set EC_WORD_HEROINE, (EC_GROUP_HOBBIES << 9) | 0x29 - .set EC_WORD_FASHION, (EC_GROUP_HOBBIES << 9) | 0x2a - .set EC_WORD_ADVENTURE, (EC_GROUP_HOBBIES << 9) | 0x2b - .set EC_WORD_BOARD, (EC_GROUP_HOBBIES << 9) | 0x2c - .set EC_WORD_BALL, (EC_GROUP_HOBBIES << 9) | 0x2d - .set EC_WORD_BOOK, (EC_GROUP_HOBBIES << 9) | 0x2e - .set EC_WORD_FESTIVAL, (EC_GROUP_HOBBIES << 9) | 0x2f - .set EC_WORD_COMICS, (EC_GROUP_HOBBIES << 9) | 0x30 - .set EC_WORD_HOLIDAY, (EC_GROUP_HOBBIES << 9) | 0x31 - .set EC_WORD_PLANS, (EC_GROUP_HOBBIES << 9) | 0x32 - .set EC_WORD_TRENDY, (EC_GROUP_HOBBIES << 9) | 0x33 - .set EC_WORD_VACATION, (EC_GROUP_HOBBIES << 9) | 0x34 - .set EC_WORD_LOOK, (EC_GROUP_HOBBIES << 9) | 0x35 - -@ Time - .set EC_WORD_FALL, (EC_GROUP_TIME << 9) | 0x0 - .set EC_WORD_MORNING, (EC_GROUP_TIME << 9) | 0x1 - .set EC_WORD_TOMORROW, (EC_GROUP_TIME << 9) | 0x2 - .set EC_WORD_LAST, (EC_GROUP_TIME << 9) | 0x3 - .set EC_WORD_DAY, (EC_GROUP_TIME << 9) | 0x4 - .set EC_WORD_SOMETIME, (EC_GROUP_TIME << 9) | 0x5 - .set EC_WORD_ALWAYS, (EC_GROUP_TIME << 9) | 0x6 - .set EC_WORD_CURRENT, (EC_GROUP_TIME << 9) | 0x7 - .set EC_WORD_FOREVER, (EC_GROUP_TIME << 9) | 0x8 - .set EC_WORD_DAYS, (EC_GROUP_TIME << 9) | 0x9 - .set EC_WORD_END, (EC_GROUP_TIME << 9) | 0xa - .set EC_WORD_TUESDAY, (EC_GROUP_TIME << 9) | 0xb - .set EC_WORD_YESTERDAY, (EC_GROUP_TIME << 9) | 0xc - .set EC_WORD_TODAY, (EC_GROUP_TIME << 9) | 0xd - .set EC_WORD_FRIDAY, (EC_GROUP_TIME << 9) | 0xe - .set EC_WORD_MONDAY, (EC_GROUP_TIME << 9) | 0xf - .set EC_WORD_LATER, (EC_GROUP_TIME << 9) | 0x10 - .set EC_WORD_EARLIER, (EC_GROUP_TIME << 9) | 0x11 - .set EC_WORD_ANOTHER, (EC_GROUP_TIME << 9) | 0x12 - .set EC_WORD_TIME, (EC_GROUP_TIME << 9) | 0x13 - .set EC_WORD_FINISH, (EC_GROUP_TIME << 9) | 0x14 - .set EC_WORD_WEDNESDAY, (EC_GROUP_TIME << 9) | 0x15 - .set EC_WORD_SOON, (EC_GROUP_TIME << 9) | 0x16 - .set EC_WORD_START, (EC_GROUP_TIME << 9) | 0x17 - .set EC_WORD_MONTH, (EC_GROUP_TIME << 9) | 0x18 - .set EC_WORD_STOP, (EC_GROUP_TIME << 9) | 0x19 - .set EC_WORD_NOW, (EC_GROUP_TIME << 9) | 0x1a - .set EC_WORD_FINAL, (EC_GROUP_TIME << 9) | 0x1b - .set EC_WORD_NEXT, (EC_GROUP_TIME << 9) | 0x1c - .set EC_WORD_AGE, (EC_GROUP_TIME << 9) | 0x1d - .set EC_WORD_SATURDAY, (EC_GROUP_TIME << 9) | 0x1e - .set EC_WORD_SUMMER, (EC_GROUP_TIME << 9) | 0x1f - .set EC_WORD_SUNDAY, (EC_GROUP_TIME << 9) | 0x20 - .set EC_WORD_BEGINNING, (EC_GROUP_TIME << 9) | 0x21 - .set EC_WORD_SPRING, (EC_GROUP_TIME << 9) | 0x22 - .set EC_WORD_DAYTIME, (EC_GROUP_TIME << 9) | 0x23 - .set EC_WORD_WINTER, (EC_GROUP_TIME << 9) | 0x24 - .set EC_WORD_DAILY, (EC_GROUP_TIME << 9) | 0x25 - .set EC_WORD_OLDEN, (EC_GROUP_TIME << 9) | 0x26 - .set EC_WORD_ALMOST, (EC_GROUP_TIME << 9) | 0x27 - .set EC_WORD_NEARLY, (EC_GROUP_TIME << 9) | 0x28 - .set EC_WORD_THURSDAY, (EC_GROUP_TIME << 9) | 0x29 - .set EC_WORD_NIGHTTIME, (EC_GROUP_TIME << 9) | 0x2a - .set EC_WORD_NIGHT, (EC_GROUP_TIME << 9) | 0x2b - .set EC_WORD_WEEK, (EC_GROUP_TIME << 9) | 0x2c - -@ Misc. - .set EC_WORD_HIGHS, (EC_GROUP_MISC << 9) | 0x0 - .set EC_WORD_LOWS, (EC_GROUP_MISC << 9) | 0x1 - .set EC_WORD_UM, (EC_GROUP_MISC << 9) | 0x2 - .set EC_WORD_REAR, (EC_GROUP_MISC << 9) | 0x3 - .set EC_WORD_THINGS, (EC_GROUP_MISC << 9) | 0x4 - .set EC_WORD_THING, (EC_GROUP_MISC << 9) | 0x5 - .set EC_WORD_BELOW, (EC_GROUP_MISC << 9) | 0x6 - .set EC_WORD_ABOVE, (EC_GROUP_MISC << 9) | 0x7 - .set EC_WORD_BACK, (EC_GROUP_MISC << 9) | 0x8 - .set EC_WORD_HIGH, (EC_GROUP_MISC << 9) | 0x9 - .set EC_WORD_HERE, (EC_GROUP_MISC << 9) | 0xa - .set EC_WORD_INSIDE, (EC_GROUP_MISC << 9) | 0xb - .set EC_WORD_OUTSIDE, (EC_GROUP_MISC << 9) | 0xc - .set EC_WORD_BESIDE, (EC_GROUP_MISC << 9) | 0xd - .set EC_WORD_THIS_IS_IT_EXCL, (EC_GROUP_MISC << 9) | 0xe - .set EC_WORD_THIS, (EC_GROUP_MISC << 9) | 0xf - .set EC_WORD_EVERY, (EC_GROUP_MISC << 9) | 0x10 - .set EC_WORD_THESE, (EC_GROUP_MISC << 9) | 0x11 - .set EC_WORD_THESE_WERE, (EC_GROUP_MISC << 9) | 0x12 - .set EC_WORD_DOWN, (EC_GROUP_MISC << 9) | 0x13 - .set EC_WORD_THAT, (EC_GROUP_MISC << 9) | 0x14 - .set EC_WORD_THOSE_ARE, (EC_GROUP_MISC << 9) | 0x15 - .set EC_WORD_THOSE_WERE, (EC_GROUP_MISC << 9) | 0x16 - .set EC_WORD_THAT_S_IT_EXCL, (EC_GROUP_MISC << 9) | 0x17 - .set EC_WORD_AM, (EC_GROUP_MISC << 9) | 0x18 - .set EC_WORD_THAT_WAS, (EC_GROUP_MISC << 9) | 0x19 - .set EC_WORD_FRONT, (EC_GROUP_MISC << 9) | 0x1a - .set EC_WORD_UP, (EC_GROUP_MISC << 9) | 0x1b - .set EC_WORD_CHOICE, (EC_GROUP_MISC << 9) | 0x1c - .set EC_WORD_FAR, (EC_GROUP_MISC << 9) | 0x1d - .set EC_WORD_AWAY, (EC_GROUP_MISC << 9) | 0x1e - .set EC_WORD_NEAR, (EC_GROUP_MISC << 9) | 0x1f - .set EC_WORD_WHERE, (EC_GROUP_MISC << 9) | 0x20 - .set EC_WORD_WHEN, (EC_GROUP_MISC << 9) | 0x21 - .set EC_WORD_WHAT, (EC_GROUP_MISC << 9) | 0x22 - .set EC_WORD_DEEP, (EC_GROUP_MISC << 9) | 0x23 - .set EC_WORD_SHALLOW, (EC_GROUP_MISC << 9) | 0x24 - .set EC_WORD_WHY, (EC_GROUP_MISC << 9) | 0x25 - .set EC_WORD_CONFUSED, (EC_GROUP_MISC << 9) | 0x26 - .set EC_WORD_OPPOSITE, (EC_GROUP_MISC << 9) | 0x27 - .set EC_WORD_LEFT, (EC_GROUP_MISC << 9) | 0x28 - .set EC_WORD_RIGHT, (EC_GROUP_MISC << 9) | 0x29 - -@ Adjectives - .set EC_WORD_WANDERING, (EC_GROUP_ADJECTIVES << 9) | 0x0 - .set EC_WORD_RICKETY, (EC_GROUP_ADJECTIVES << 9) | 0x1 - .set EC_WORD_ROCK_SOLID, (EC_GROUP_ADJECTIVES << 9) | 0x2 - .set EC_WORD_HUNGRY, (EC_GROUP_ADJECTIVES << 9) | 0x3 - .set EC_WORD_TIGHT, (EC_GROUP_ADJECTIVES << 9) | 0x4 - .set EC_WORD_TICKLISH, (EC_GROUP_ADJECTIVES << 9) | 0x5 - .set EC_WORD_TWIRLING, (EC_GROUP_ADJECTIVES << 9) | 0x6 - .set EC_WORD_SPIRALING, (EC_GROUP_ADJECTIVES << 9) | 0x7 - .set EC_WORD_THIRSTY, (EC_GROUP_ADJECTIVES << 9) | 0x8 - .set EC_WORD_LOLLING, (EC_GROUP_ADJECTIVES << 9) | 0x9 - .set EC_WORD_SILKY, (EC_GROUP_ADJECTIVES << 9) | 0xa - .set EC_WORD_SADLY, (EC_GROUP_ADJECTIVES << 9) | 0xb - .set EC_WORD_HOPELESS, (EC_GROUP_ADJECTIVES << 9) | 0xc - .set EC_WORD_USELESS, (EC_GROUP_ADJECTIVES << 9) | 0xd - .set EC_WORD_DROOLING, (EC_GROUP_ADJECTIVES << 9) | 0xe - .set EC_WORD_EXCITING, (EC_GROUP_ADJECTIVES << 9) | 0xf - .set EC_WORD_THICK, (EC_GROUP_ADJECTIVES << 9) | 0x10 - .set EC_WORD_SMOOTH, (EC_GROUP_ADJECTIVES << 9) | 0x11 - .set EC_WORD_SLIMY, (EC_GROUP_ADJECTIVES << 9) | 0x12 - .set EC_WORD_THIN, (EC_GROUP_ADJECTIVES << 9) | 0x13 - .set EC_WORD_BREAK, (EC_GROUP_ADJECTIVES << 9) | 0x14 - .set EC_WORD_VORACIOUS, (EC_GROUP_ADJECTIVES << 9) | 0x15 - .set EC_WORD_SCATTER, (EC_GROUP_ADJECTIVES << 9) | 0x16 - .set EC_WORD_AWESOME, (EC_GROUP_ADJECTIVES << 9) | 0x17 - .set EC_WORD_WIMPY, (EC_GROUP_ADJECTIVES << 9) | 0x18 - .set EC_WORD_WOBBLY, (EC_GROUP_ADJECTIVES << 9) | 0x19 - .set EC_WORD_SHAKY, (EC_GROUP_ADJECTIVES << 9) | 0x1a - .set EC_WORD_RIPPED, (EC_GROUP_ADJECTIVES << 9) | 0x1b - .set EC_WORD_SHREDDED, (EC_GROUP_ADJECTIVES << 9) | 0x1c - .set EC_WORD_INCREASING, (EC_GROUP_ADJECTIVES << 9) | 0x1d - .set EC_WORD_YET, (EC_GROUP_ADJECTIVES << 9) | 0x1e - .set EC_WORD_DESTROYED, (EC_GROUP_ADJECTIVES << 9) | 0x1f - .set EC_WORD_FIERY, (EC_GROUP_ADJECTIVES << 9) | 0x20 - .set EC_WORD_LOVEY_DOVEY, (EC_GROUP_ADJECTIVES << 9) | 0x21 - .set EC_WORD_HAPPILY, (EC_GROUP_ADJECTIVES << 9) | 0x22 - .set EC_WORD_ANTICIPATION, (EC_GROUP_ADJECTIVES << 9) | 0x23 - -@ Events - .set EC_WORD_APPEAL, (EC_GROUP_EVENTS << 9) | 0x0 - .set EC_WORD_EVENTS, (EC_GROUP_EVENTS << 9) | 0x1 - .set EC_WORD_STAY_AT_HOME, (EC_GROUP_EVENTS << 9) | 0x2 - .set EC_WORD_BERRY, (EC_GROUP_EVENTS << 9) | 0x3 - .set EC_WORD_CONTEST, (EC_GROUP_EVENTS << 9) | 0x4 - .set EC_WORD_MC, (EC_GROUP_EVENTS << 9) | 0x5 - .set EC_WORD_JUDGE, (EC_GROUP_EVENTS << 9) | 0x6 - .set EC_WORD_SUPER, (EC_GROUP_EVENTS << 9) | 0x7 - .set EC_WORD_STAGE, (EC_GROUP_EVENTS << 9) | 0x8 - .set EC_WORD_HALL_OF_FAME, (EC_GROUP_EVENTS << 9) | 0x9 - .set EC_WORD_EVOLUTION, (EC_GROUP_EVENTS << 9) | 0xa - .set EC_WORD_HYPER, (EC_GROUP_EVENTS << 9) | 0xb - .set EC_WORD_BATTLE_TOWER, (EC_GROUP_EVENTS << 9) | 0xc - .set EC_WORD_LEADERS, (EC_GROUP_EVENTS << 9) | 0xd - .set EC_WORD_BATTLE_ROOM, (EC_GROUP_EVENTS << 9) | 0xe - .set EC_WORD_HIDDEN, (EC_GROUP_EVENTS << 9) | 0xf - .set EC_WORD_SECRET_BASE, (EC_GROUP_EVENTS << 9) | 0x10 - .set EC_WORD_BLEND, (EC_GROUP_EVENTS << 9) | 0x11 - .set EC_WORD_POKEBLOCK, (EC_GROUP_EVENTS << 9) | 0x12 - .set EC_WORD_MASTER, (EC_GROUP_EVENTS << 9) | 0x13 - .set EC_WORD_RANK, (EC_GROUP_EVENTS << 9) | 0x14 - .set EC_WORD_RIBBON, (EC_GROUP_EVENTS << 9) | 0x15 - .set EC_WORD_CRUSH, (EC_GROUP_EVENTS << 9) | 0x16 - .set EC_WORD_DIRECT, (EC_GROUP_EVENTS << 9) | 0x17 - .set EC_WORD_TOWER, (EC_GROUP_EVENTS << 9) | 0x18 - .set EC_WORD_UNION, (EC_GROUP_EVENTS << 9) | 0x19 - .set EC_WORD_ROOM, (EC_GROUP_EVENTS << 9) | 0x1a - .set EC_WORD_WIRELESS, (EC_GROUP_EVENTS << 9) | 0x1b - .set EC_WORD_FRONTIER, (EC_GROUP_EVENTS << 9) | 0x1c - -@ Trendy Saying - .set EC_WORD_KTHX_BYE, (EC_GROUP_TRENDY_SAYING << 9) | 0x0 - .set EC_WORD_YES_SIR_EXCL, (EC_GROUP_TRENDY_SAYING << 9) | 0x1 - .set EC_WORD_AVANT_GARDE, (EC_GROUP_TRENDY_SAYING << 9) | 0x2 - .set EC_WORD_COUPLE, (EC_GROUP_TRENDY_SAYING << 9) | 0x3 - .set EC_WORD_MUCH_OBLIGED, (EC_GROUP_TRENDY_SAYING << 9) | 0x4 - .set EC_WORD_YEEHAW_EXCL, (EC_GROUP_TRENDY_SAYING << 9) | 0x5 - .set EC_WORD_MEGA, (EC_GROUP_TRENDY_SAYING << 9) | 0x6 - .set EC_WORD_1_HIT_KO_EXCL, (EC_GROUP_TRENDY_SAYING << 9) | 0x7 - .set EC_WORD_DESTINY, (EC_GROUP_TRENDY_SAYING << 9) | 0x8 - .set EC_WORD_CANCEL, (EC_GROUP_TRENDY_SAYING << 9) | 0x9 - .set EC_WORD_NEW, (EC_GROUP_TRENDY_SAYING << 9) | 0xa - .set EC_WORD_FLATTEN, (EC_GROUP_TRENDY_SAYING << 9) | 0xb - .set EC_WORD_KIDDING, (EC_GROUP_TRENDY_SAYING << 9) | 0xc - .set EC_WORD_LOSER, (EC_GROUP_TRENDY_SAYING << 9) | 0xd - .set EC_WORD_LOSING, (EC_GROUP_TRENDY_SAYING << 9) | 0xe - .set EC_WORD_HAPPENING, (EC_GROUP_TRENDY_SAYING << 9) | 0xf - .set EC_WORD_HIP_AND, (EC_GROUP_TRENDY_SAYING << 9) | 0x10 - .set EC_WORD_SHAKE, (EC_GROUP_TRENDY_SAYING << 9) | 0x11 - .set EC_WORD_SHADY, (EC_GROUP_TRENDY_SAYING << 9) | 0x12 - .set EC_WORD_UPBEAT, (EC_GROUP_TRENDY_SAYING << 9) | 0x13 - .set EC_WORD_MODERN, (EC_GROUP_TRENDY_SAYING << 9) | 0x14 - .set EC_WORD_SMELL_YA, (EC_GROUP_TRENDY_SAYING << 9) | 0x15 - .set EC_WORD_BANG, (EC_GROUP_TRENDY_SAYING << 9) | 0x16 - .set EC_WORD_KNOCKOUT, (EC_GROUP_TRENDY_SAYING << 9) | 0x17 - .set EC_WORD_HASSLE, (EC_GROUP_TRENDY_SAYING << 9) | 0x18 - .set EC_WORD_WINNER, (EC_GROUP_TRENDY_SAYING << 9) | 0x19 - .set EC_WORD_FEVER, (EC_GROUP_TRENDY_SAYING << 9) | 0x1a - .set EC_WORD_WANNABE, (EC_GROUP_TRENDY_SAYING << 9) | 0x1b - .set EC_WORD_BABY, (EC_GROUP_TRENDY_SAYING << 9) | 0x1c - .set EC_WORD_HEART, (EC_GROUP_TRENDY_SAYING << 9) | 0x1d - .set EC_WORD_OLD, (EC_GROUP_TRENDY_SAYING << 9) | 0x1e - .set EC_WORD_YOUNG, (EC_GROUP_TRENDY_SAYING << 9) | 0x1f - .set EC_WORD_UGLY, (EC_GROUP_TRENDY_SAYING << 9) | 0x20 - diff --git a/constants/field_object_constants.inc b/constants/field_object_constants.inc deleted file mode 100644 index 50cdbd848..000000000 --- a/constants/field_object_constants.inc +++ /dev/null @@ -1,251 +0,0 @@ - .set FIELD_OBJ_GFX_BRENDAN_NORMAL, 0 - .set FIELD_OBJ_GFX_BRENDAN_MACH_BIKE, 1 - .set FIELD_OBJ_GFX_BRENDAN_SURFING, 2 - .set FIELD_OBJ_GFX_BRENDAN_FIELD_MOVE, 3 - .set FIELD_OBJ_GFX_QUINTY_PLUMP, 4 - .set FIELD_OBJ_GFX_LITTLE_BOY_1, 5 - .set FIELD_OBJ_GFX_LITTLE_GIRL_1, 6 - .set FIELD_OBJ_GFX_BOY_1, 7 - .set FIELD_OBJ_GFX_GIRL_1, 8 - .set FIELD_OBJ_GFX_BOY_2, 9 - .set FIELD_OBJ_GFX_GIRL_2, 10 - .set FIELD_OBJ_GFX_LITTLE_BOY_2, 11 - .set FIELD_OBJ_GFX_LITTLE_GIRL_2, 12 - .set FIELD_OBJ_GFX_BOY_3, 13 - .set FIELD_OBJ_GFX_GIRL_3, 14 - .set FIELD_OBJ_GFX_BOY_4, 15 - .set FIELD_OBJ_GFX_WOMAN_1, 16 - .set FIELD_OBJ_GFX_FAT_MAN, 17 - .set FIELD_OBJ_GFX_WOMAN_2, 18 - .set FIELD_OBJ_GFX_MAN_1, 19 - .set FIELD_OBJ_GFX_WOMAN_3, 20 - .set FIELD_OBJ_GFX_OLD_MAN_1, 21 - .set FIELD_OBJ_GFX_OLD_WOMAN_1, 22 - .set FIELD_OBJ_GFX_MAN_2, 23 - .set FIELD_OBJ_GFX_WOMAN_4, 24 - .set FIELD_OBJ_GFX_MAN_3, 25 - .set FIELD_OBJ_GFX_WOMAN_5, 26 - .set FIELD_OBJ_GFX_COOK, 27 - .set FIELD_OBJ_GFX_WOMAN_6, 28 - .set FIELD_OBJ_GFX_OLD_MAN_2, 29 - .set FIELD_OBJ_GFX_OLD_WOMAN_2, 30 - .set FIELD_OBJ_GFX_CAMPER, 31 - .set FIELD_OBJ_GFX_PICNICKER, 32 - .set FIELD_OBJ_GFX_MAN_4, 33 - .set FIELD_OBJ_GFX_WOMAN_7, 34 - .set FIELD_OBJ_GFX_YOUNGSTER, 35 - .set FIELD_OBJ_GFX_BUG_CATCHER, 36 - .set FIELD_OBJ_GFX_PSYCHIC_M, 37 - .set FIELD_OBJ_GFX_SCHOOL_KID_M, 38 - .set FIELD_OBJ_GFX_MANIAC, 39 - .set FIELD_OBJ_GFX_HEX_MANIAC, 40 - .set FIELD_OBJ_GFX_RAYQUAZA_1, 41 - .set FIELD_OBJ_GFX_SWIMMER_M, 42 - .set FIELD_OBJ_GFX_SWIMMER_F, 43 - .set FIELD_OBJ_GFX_BLACK_BELT, 44 - .set FIELD_OBJ_GFX_BEAUTY, 45 - .set FIELD_OBJ_GFX_SCIENTIST_1, 46 - .set FIELD_OBJ_GFX_LASS, 47 - .set FIELD_OBJ_GFX_GENTLEMAN, 48 - .set FIELD_OBJ_GFX_SAILOR, 49 - .set FIELD_OBJ_GFX_FISHERMAN, 50 - .set FIELD_OBJ_GFX_RUNNING_TRIATHLETE_M, 51 - .set FIELD_OBJ_GFX_RUNNING_TRIATHLETE_F, 52 - .set FIELD_OBJ_GFX_TUBER_F, 53 - .set FIELD_OBJ_GFX_TUBER_M, 54 - .set FIELD_OBJ_GFX_HIKER, 55 - .set FIELD_OBJ_GFX_CYCLING_TRIATHLETE_M, 56 - .set FIELD_OBJ_GFX_CYCLING_TRIATHLETE_F, 57 - .set FIELD_OBJ_GFX_NURSE, 58 - .set FIELD_OBJ_GFX_ITEM_BALL, 59 - .set FIELD_OBJ_GFX_BERRY_TREE, 60 - .set FIELD_OBJ_GFX_BERRY_TREE_EARLY_STAGES, 61 - .set FIELD_OBJ_GFX_BERRY_TREE_LATE_STAGES, 62 - .set FIELD_OBJ_GFX_BRENDAN_ACRO_BIKE, 63 - .set FIELD_OBJ_GFX_PROF_BIRCH, 64 - .set FIELD_OBJ_GFX_MAN_5, 65 - .set FIELD_OBJ_GFX_MAN_6, 66 - .set FIELD_OBJ_GFX_REPORTER_M, 67 - .set FIELD_OBJ_GFX_REPORTER_F, 68 - .set FIELD_OBJ_GFX_MAUVILLE_OLD_MAN, 69 - .set FIELD_OBJ_GFX_ANABEL, 70 - .set FIELD_OBJ_GFX_TUCKER, 71 - .set FIELD_OBJ_GFX_GRETA, 72 - .set FIELD_OBJ_GFX_SPENSER, 73 - .set FIELD_OBJ_GFX_NOLAND, 74 - .set FIELD_OBJ_GFX_LUCY, 75 - .set FIELD_OBJ_GFX_UNUSED_NATU_DOLL, 76 - .set FIELD_OBJ_GFX_UNUSED_MAGNEMITE_DOLL, 77 - .set FIELD_OBJ_GFX_UNUSED_SQUIRTLE_DOLL, 78 - .set FIELD_OBJ_GFX_UNUSED_WOOPER_DOLL, 79 - .set FIELD_OBJ_GFX_UNUSED_PIKACHU_DOLL, 80 - .set FIELD_OBJ_GFX_UNUSED_PORYGON2_DOLL, 81 - .set FIELD_OBJ_GFX_CUTTABLE_TREE, 82 - .set FIELD_OBJ_GFX_MART_EMPLOYEE, 83 - .set FIELD_OBJ_GFX_ROOFTOP_SALE_WOMAN, 84 - .set FIELD_OBJ_GFX_TEALA, 85 - .set FIELD_OBJ_GFX_BREAKABLE_ROCK, 86 - .set FIELD_OBJ_GFX_PUSHABLE_BOULDER, 87 - .set FIELD_OBJ_GFX_MR_BRINEYS_BOAT, 88 - .set FIELD_OBJ_GFX_MAY_NORMAL, 89 - .set FIELD_OBJ_GFX_MAY_MACH_BIKE, 90 - .set FIELD_OBJ_GFX_MAY_ACRO_BIKE, 91 - .set FIELD_OBJ_GFX_MAY_SURFING, 92 - .set FIELD_OBJ_GFX_MAY_FIELD_MOVE, 93 - .set FIELD_OBJ_GFX_TRUCK, 94 - .set FIELD_OBJ_GFX_VIGOROTH_CARRYING_BOX, 95 - .set FIELD_OBJ_GFX_VIGOROTH_FACING_AWAY, 96 - .set FIELD_OBJ_GFX_BIRCHS_BAG, 97 - .set FIELD_OBJ_GFX_ENEMY_ZIGZAGOON, 98 - .set FIELD_OBJ_GFX_ARTIST, 99 - .set FIELD_OBJ_GFX_RIVAL_BRENDAN_NORMAL, 100 - .set FIELD_OBJ_GFX_RIVAL_BRENDAN_MACH_BIKE, 101 - .set FIELD_OBJ_GFX_RIVAL_BRENDAN_ACRO_BIKE, 102 - .set FIELD_OBJ_GFX_RIVAL_BRENDAN_SURFING, 103 - .set FIELD_OBJ_GFX_RIVAL_BRENDAN_FIELD_MOVE, 104 - .set FIELD_OBJ_GFX_RIVAL_MAY_NORMAL, 105 - .set FIELD_OBJ_GFX_RIVAL_MAY_MACH_BIKE, 106 - .set FIELD_OBJ_GFX_RIVAL_MAY_ACRO_BIKE, 107 - .set FIELD_OBJ_GFX_RIVAL_MAY_SURFING, 108 - .set FIELD_OBJ_GFX_RIVAL_MAY_FIELD_MOVE, 109 - .set FIELD_OBJ_GFX_CAMERAMAN, 110 - .set FIELD_OBJ_GFX_BRENDAN_UNDERWATER, 111 - .set FIELD_OBJ_GFX_MAY_UNDERWATER, 112 - .set FIELD_OBJ_GFX_MOVING_BOX, 113 - .set FIELD_OBJ_GFX_CABLE_CAR, 114 - .set FIELD_OBJ_GFX_SCIENTIST_2, 115 - .set FIELD_OBJ_GFX_MAN_7, 116 - .set FIELD_OBJ_GFX_AQUA_MEMBER_M, 117 - .set FIELD_OBJ_GFX_AQUA_MEMBER_F, 118 - .set FIELD_OBJ_GFX_MAGMA_MEMBER_M, 119 - .set FIELD_OBJ_GFX_MAGMA_MEMBER_F, 120 - .set FIELD_OBJ_GFX_SIDNEY, 121 - .set FIELD_OBJ_GFX_PHOEBE, 122 - .set FIELD_OBJ_GFX_GLACIA, 123 - .set FIELD_OBJ_GFX_DRAKE, 124 - .set FIELD_OBJ_GFX_ROXANNE, 125 - .set FIELD_OBJ_GFX_BRAWLY, 126 - .set FIELD_OBJ_GFX_WATTSON, 127 - .set FIELD_OBJ_GFX_FLANNERY, 128 - .set FIELD_OBJ_GFX_NORMAN, 129 - .set FIELD_OBJ_GFX_WINONA, 130 - .set FIELD_OBJ_GFX_LIZA, 131 - .set FIELD_OBJ_GFX_TATE, 132 - .set FIELD_OBJ_GFX_WALLACE, 133 - .set FIELD_OBJ_GFX_STEVEN, 134 - .set FIELD_OBJ_GFX_WALLY, 135 - .set FIELD_OBJ_GFX_RUBY_SAPPHIRE_LITTLE_BOY, 136 - .set FIELD_OBJ_GFX_BRENDAN_FISHING, 137 - .set FIELD_OBJ_GFX_MAY_FISHING, 138 - .set FIELD_OBJ_GFX_HOT_SPRINGS_OLD_WOMAN, 139 - .set FIELD_OBJ_GFX_SS_TIDAL, 140 - .set FIELD_OBJ_GFX_SUBMARINE_SHADOW, 141 - .set FIELD_OBJ_GFX_PICHU_DOLL, 142 - .set FIELD_OBJ_GFX_PIKACHU_DOLL, 143 - .set FIELD_OBJ_GFX_MARILL_DOLL, 144 - .set FIELD_OBJ_GFX_TOGEPI_DOLL, 145 - .set FIELD_OBJ_GFX_CYNDAQUIL_DOLL, 146 - .set FIELD_OBJ_GFX_CHIKORITA_DOLL, 147 - .set FIELD_OBJ_GFX_TOTODILE_DOLL, 148 - .set FIELD_OBJ_GFX_JIGGLYPUFF_DOLL, 149 - .set FIELD_OBJ_GFX_MEOWTH_DOLL, 150 - .set FIELD_OBJ_GFX_CLEFAIRY_DOLL, 151 - .set FIELD_OBJ_GFX_DITTO_DOLL, 152 - .set FIELD_OBJ_GFX_SMOOCHUM_DOLL, 153 - .set FIELD_OBJ_GFX_TREECKO_DOLL, 154 - .set FIELD_OBJ_GFX_TORCHIC_DOLL, 155 - .set FIELD_OBJ_GFX_MUDKIP_DOLL, 156 - .set FIELD_OBJ_GFX_DUSKULL_DOLL, 157 - .set FIELD_OBJ_GFX_WYNAUT_DOLL, 158 - .set FIELD_OBJ_GFX_BALTOY_DOLL, 159 - .set FIELD_OBJ_GFX_KECLEON_DOLL, 160 - .set FIELD_OBJ_GFX_AZURILL_DOLL, 161 - .set FIELD_OBJ_GFX_SKITTY_DOLL, 162 - .set FIELD_OBJ_GFX_SWABLU_DOLL, 163 - .set FIELD_OBJ_GFX_GULPIN_DOLL, 164 - .set FIELD_OBJ_GFX_LOTAD_DOLL, 165 - .set FIELD_OBJ_GFX_SEEDOT_DOLL, 166 - .set FIELD_OBJ_GFX_PIKA_CUSHION, 167 - .set FIELD_OBJ_GFX_ROUND_CUSHION, 168 - .set FIELD_OBJ_GFX_KISS_CUSHION, 169 - .set FIELD_OBJ_GFX_ZIGZAG_CUSHION, 170 - .set FIELD_OBJ_GFX_SPIN_CUSHION, 171 - .set FIELD_OBJ_GFX_DIAMOND_CUSHION, 172 - .set FIELD_OBJ_GFX_BALL_CUSHION, 173 - .set FIELD_OBJ_GFX_GRASS_CUSHION, 174 - .set FIELD_OBJ_GFX_FIRE_CUSHION, 175 - .set FIELD_OBJ_GFX_WATER_CUSHION, 176 - .set FIELD_OBJ_GFX_BIG_SNORLAX_DOLL, 177 - .set FIELD_OBJ_GFX_BIG_RHYDON_DOLL, 178 - .set FIELD_OBJ_GFX_BIG_LAPRAS_DOLL, 179 - .set FIELD_OBJ_GFX_BIG_VENUSAUR_DOLL, 180 - .set FIELD_OBJ_GFX_BIG_CHARIZARD_DOLL, 181 - .set FIELD_OBJ_GFX_BIG_BLASTOISE_DOLL, 182 - .set FIELD_OBJ_GFX_BIG_WAILMER_DOLL, 183 - .set FIELD_OBJ_GFX_BIG_REGIROCK_DOLL, 184 - .set FIELD_OBJ_GFX_BIG_REGICE_DOLL, 185 - .set FIELD_OBJ_GFX_BIG_REGISTEEL_DOLL, 186 - .set FIELD_OBJ_GFX_LATIAS, 187 - .set FIELD_OBJ_GFX_LATIOS, 188 - .set FIELD_OBJ_GFX_BOY_5, 189 - .set FIELD_OBJ_GFX_CONTEST_OLD_MAN, 190 - .set FIELD_OBJ_GFX_BRENDAN_WATERING, 191 - .set FIELD_OBJ_GFX_MAY_WATERING, 192 - .set FIELD_OBJ_GFX_BRENDAN_UNKNOWN, 193 - .set FIELD_OBJ_GFX_MAY_UNKNOWN, 194 - .set FIELD_OBJ_GFX_ARCHIE, 195 - .set FIELD_OBJ_GFX_MAXIE, 196 - .set FIELD_OBJ_GFX_KYOGRE_1, 197 - .set FIELD_OBJ_GFX_GROUDON_1, 198 - .set FIELD_OBJ_GFX_FOSSIL, 199 - .set FIELD_OBJ_GFX_REGIROCK, 200 - .set FIELD_OBJ_GFX_REGICE, 201 - .set FIELD_OBJ_GFX_REGISTEEL, 202 - .set FIELD_OBJ_GFX_SKITTY, 203 - .set FIELD_OBJ_GFX_KECLEON_1, 204 - .set FIELD_OBJ_GFX_KYOGRE_2, 205 - .set FIELD_OBJ_GFX_GROUDON_2, 206 - .set FIELD_OBJ_GFX_RAYQUAZA_2, 207 - .set FIELD_OBJ_GFX_ZIGZAGOON, 208 - .set FIELD_OBJ_GFX_PIKACHU, 209 - .set FIELD_OBJ_GFX_AZUMARILL, 210 - .set FIELD_OBJ_GFX_WINGULL, 211 - .set FIELD_OBJ_GFX_KECLEON_2, 212 - .set FIELD_OBJ_GFX_TUBER_M_SWIMMING, 213 - .set FIELD_OBJ_GFX_AZURILL, 214 - .set FIELD_OBJ_GFX_MOM, 215 - .set FIELD_OBJ_GFX_LINK_BRENDAN, 216 - .set FIELD_OBJ_GFX_LINK_MAY, 217 - .set FIELD_OBJ_GFX_JUAN, 218 - .set FIELD_OBJ_GFX_SCOTT, 219 - .set FIELD_OBJ_GFX_POOCHYENA, 220 - .set FIELD_OBJ_GFX_KYOGRE_3, 221 - .set FIELD_OBJ_GFX_GROUDON_3, 222 - .set FIELD_OBJ_GFX_MYSTERY_EVENT_DELIVERYMAN, 223 - .set FIELD_OBJ_GFX_STATUE, 224 - .set FIELD_OBJ_GFX_KIRLIA, 225 - .set FIELD_OBJ_GFX_DUSCLOPS, 226 - .set FIELD_OBJ_GFX_UNION_ROOM_ATTENDANT, 227 - .set FIELD_OBJ_GFX_SUDOWOODO, 228 - .set FIELD_OBJ_GFX_MEW, 229 - .set FIELD_OBJ_GFX_RED, 230 - .set FIELD_OBJ_GFX_LEAF, 231 - .set FIELD_OBJ_GFX_DEOXYS, 232 - .set FIELD_OBJ_GFX_BIRTH_ISLAND_STONE, 233 - .set FIELD_OBJ_GFX_BRANDON, 234 - .set FIELD_OBJ_GFX_RUBY_SAPPHIRE_BRENDAN, 235 - .set FIELD_OBJ_GFX_RUBY_SAPPHIRE_MAY, 236 - .set FIELD_OBJ_GFX_LUGIA, 237 - .set FIELD_OBJ_GFX_HO_OH, 238 - - .set SHADOW_SIZE_S, 0 - .set SHADOW_SIZE_M, 1 - .set SHADOW_SIZE_L, 2 - .set SHADOW_SIZE_XL, 3 - - .set F_INANIMATE, 1 << 6 - .set F_DISABLE_REFLECTION_PALETTE_LOAD, 1 << 7 - - .set TRACKS_NONE, 0 - .set TRACKS_FOOT, 1 - .set TRACKS_BIKE_TIRE, 2 diff --git a/constants/flags.inc b/constants/flags.inc deleted file mode 100644 index 66663cb65..000000000 --- a/constants/flags.inc +++ /dev/null @@ -1,1574 +0,0 @@ - .equiv FLAG_0x001, 0x1 - .equiv FLAG_0x002, 0x2 - .equiv FLAG_0x003, 0x3 - .equiv FLAG_0x004, 0x4 - .equiv FLAG_0x005, 0x5 - .equiv FLAG_0x006, 0x6 - .equiv FLAG_0x007, 0x7 - .equiv FLAG_0x008, 0x8 - .equiv FLAG_0x009, 0x9 - .equiv FLAG_0x00A, 0xA - .equiv FLAG_0x00B, 0xB - .equiv FLAG_0x00C, 0xC - .equiv FLAG_0x00D, 0xD - .equiv FLAG_0x00E, 0xE - .equiv FLAG_0x00F, 0xF - .equiv FLAG_0x010, 0x10 - .equiv FLAG_0x011, 0x11 - .equiv FLAG_0x012, 0x12 - .equiv FLAG_0x013, 0x13 - .equiv FLAG_0x014, 0x14 - .equiv FLAG_0x015, 0x15 - .equiv FLAG_0x016, 0x16 - .equiv FLAG_0x017, 0x17 - .equiv FLAG_0x018, 0x18 - .equiv FLAG_0x019, 0x19 - .equiv FLAG_0x01A, 0x1A - .equiv FLAG_0x01B, 0x1B - .equiv FLAG_0x01C, 0x1C - .equiv FLAG_0x01D, 0x1D - .equiv FLAG_0x01E, 0x1E - .equiv FLAG_0x01F, 0x1F - .equiv FLAG_0x020, 0x20 - .equiv FLAG_0x021, 0x21 - .equiv FLAG_0x022, 0x22 - .equiv FLAG_0x023, 0x23 - .equiv FLAG_0x024, 0x24 - .equiv FLAG_0x025, 0x25 - .equiv FLAG_0x026, 0x26 - .equiv FLAG_0x027, 0x27 - .equiv FLAG_0x028, 0x28 - .equiv FLAG_0x029, 0x29 - .equiv FLAG_0x02A, 0x2A - .equiv FLAG_0x02B, 0x2B - .equiv FLAG_0x02C, 0x2C - .equiv FLAG_0x02D, 0x2D - .equiv FLAG_0x02E, 0x2E - .equiv FLAG_0x02F, 0x2F - .equiv FLAG_0x030, 0x30 - .equiv FLAG_0x031, 0x31 - .equiv FLAG_0x032, 0x32 - .equiv FLAG_0x033, 0x33 - .equiv FLAG_0x034, 0x34 - .equiv FLAG_0x035, 0x35 - .equiv FLAG_0x036, 0x36 - .equiv FLAG_0x037, 0x37 - .equiv FLAG_0x038, 0x38 - .equiv FLAG_0x039, 0x39 - .equiv FLAG_0x03A, 0x3A - .equiv FLAG_0x03B, 0x3B - .equiv FLAG_0x03C, 0x3C - .equiv FLAG_0x03D, 0x3D - .equiv FLAG_0x03E, 0x3E - .equiv FLAG_0x03F, 0x3F - .equiv FLAG_0x040, 0x40 - .equiv FLAG_0x041, 0x41 - .equiv FLAG_0x042, 0x42 - .equiv FLAG_0x043, 0x43 - .equiv FLAG_0x044, 0x44 - .equiv FLAG_0x045, 0x45 - .equiv FLAG_0x046, 0x46 - .equiv FLAG_0x047, 0x47 - .equiv FLAG_0x048, 0x48 - .equiv FLAG_0x049, 0x49 - .equiv FLAG_0x04A, 0x4A - .equiv FLAG_0x04B, 0x4B - .equiv FLAG_0x04C, 0x4C - .equiv FLAG_0x04D, 0x4D - .equiv FLAG_0x04E, 0x4E - .equiv FLAG_0x04F, 0x4F - .equiv FLAG_0x050, 0x50 - .equiv FLAG_0x051, 0x51 - .equiv FLAG_0x052, 0x52 - .equiv FLAG_LEGENDARIES_IN_SOOTOPOLIS, 0x53 - .equiv FLAG_0x054, 0x54 - .equiv FLAG_0x055, 0x55 - .equiv FLAG_0x056, 0x56 - .equiv FLAG_0x057, 0x57 - .equiv FLAG_0x058, 0x58 - .equiv FLAG_0x059, 0x59 - .equiv FLAG_0x05A, 0x5A - .equiv FLAG_0x05B, 0x5B - .equiv FLAG_0x05C, 0x5C - .equiv FLAG_0x05D, 0x5D - .equiv FLAG_0x05E, 0x5E - .equiv FLAG_0x05F, 0x5F - .equiv FLAG_0x060, 0x60 - .equiv FLAG_0x061, 0x61 - .equiv FLAG_0x062, 0x62 - .equiv FLAG_0x063, 0x63 - .equiv FLAG_0x064, 0x64 - .equiv FLAG_0x065, 0x65 - .equiv FLAG_0x066, 0x66 - .equiv FLAG_0x067, 0x67 - .equiv FLAG_0x068, 0x68 - .equiv FLAG_0x069, 0x69 - .equiv FLAG_0x06A, 0x6A - .equiv FLAG_0x06B, 0x6B - .equiv FLAG_0x06C, 0x6C - .equiv FLAG_0x06D, 0x6D - .equiv FLAG_0x06E, 0x6E - .equiv FLAG_0x06F, 0x6F - .equiv FLAG_0x070, 0x70 - .equiv FLAG_0x071, 0x71 - .equiv FLAG_0x072, 0x72 - .equiv FLAG_0x073, 0x73 - .equiv FLAG_0x074, 0x74 - .equiv FLAG_0x075, 0x75 - .equiv FLAG_0x076, 0x76 - .equiv FLAG_0x077, 0x77 - .equiv FLAG_0x078, 0x78 - .equiv FLAG_0x079, 0x79 - .equiv FLAG_0x07A, 0x7A - .equiv FLAG_0x07B, 0x7B - .equiv FLAG_0x07C, 0x7C - .equiv FLAG_0x07D, 0x7D - .equiv FLAG_0x07E, 0x7E - .equiv FLAG_0x07F, 0x7F - .equiv FLAG_0x080, 0x80 - .equiv FLAG_0x081, 0x81 - .equiv FLAG_0x082, 0x82 - .equiv FLAG_0x083, 0x83 - .equiv FLAG_0x084, 0x84 - .equiv FLAG_0x085, 0x85 - .equiv FLAG_PENDING_DAYCARE_EGG, 0x86 - .equiv FLAG_0x087, 0x87 - .equiv FLAG_0x088, 0x88 - .equiv FLAG_0x089, 0x89 - .equiv FLAG_0x08A, 0x8A - .equiv FLAG_0x08B, 0x8B - .equiv FLAG_0x08C, 0x8C - .equiv FLAG_0x08D, 0x8D - .equiv FLAG_0x08E, 0x8E - .equiv FLAG_0x08F, 0x8F - .equiv FLAG_0x090, 0x90 - .equiv FLAG_0x091, 0x91 - .equiv FLAG_0x092, 0x92 - .equiv FLAG_0x093, 0x93 - .equiv FLAG_0x094, 0x94 - .equiv FLAG_0x095, 0x95 - .equiv FLAG_0x096, 0x96 - .equiv FLAG_0x097, 0x97 - .equiv FLAG_0x098, 0x98 - .equiv FLAG_0x099, 0x99 - .equiv FLAG_0x09A, 0x9A - .equiv FLAG_0x09B, 0x9B - .equiv FLAG_0x09C, 0x9C - .equiv FLAG_0x09D, 0x9D - .equiv FLAG_0x09E, 0x9E - .equiv FLAG_0x09F, 0x9F - .equiv FLAG_0x0A0, 0xA0 - .equiv FLAG_0x0A1, 0xA1 - .equiv FLAG_0x0A2, 0xA2 - .equiv FLAG_0x0A3, 0xA3 - .equiv FLAG_0x0A4, 0xA4 - .equiv FLAG_0x0A5, 0xA5 - .equiv FLAG_0x0A6, 0xA6 - .equiv FLAG_0x0A7, 0xA7 - .equiv FLAG_0x0A8, 0xA8 - .equiv FLAG_0x0A9, 0xA9 - .equiv FLAG_0x0AA, 0xAA - .equiv FLAG_0x0AB, 0xAB - .equiv FLAG_0x0AC, 0xAC - .equiv FLAG_0x0AD, 0xAD - .equiv FLAG_0x0AE, 0xAE - .equiv FLAG_0x0AF, 0xAF - .equiv FLAG_0x0B0, 0xB0 - .equiv FLAG_0x0B1, 0xB1 - .equiv FLAG_0x0B2, 0xB2 - .equiv FLAG_0x0B3, 0xB3 - .equiv FLAG_0x0B4, 0xB4 - .equiv FLAG_0x0B5, 0xB5 - .equiv FLAG_0x0B6, 0xB6 - .equiv FLAG_0x0B7, 0xB7 - .equiv FLAG_0x0B8, 0xB8 - .equiv FLAG_0x0B9, 0xB9 - .equiv FLAG_0x0BA, 0xBA - .equiv FLAG_0x0BB, 0xBB - .equiv FLAG_0x0BC, 0xBC - .equiv FLAG_0x0BD, 0xBD - .equiv FLAG_0x0BE, 0xBE - .equiv FLAG_0x0BF, 0xBF - .equiv FLAG_0x0C0, 0xC0 - .equiv FLAG_0x0C1, 0xC1 - .equiv FLAG_0x0C2, 0xC2 - .equiv FLAG_0x0C3, 0xC3 - .equiv FLAG_0x0C4, 0xC4 - .equiv FLAG_0x0C5, 0xC5 - .equiv FLAG_0x0C6, 0xC6 - .equiv FLAG_0x0C7, 0xC7 - .equiv FLAG_0x0C8, 0xC8 - .equiv FLAG_0x0C9, 0xC9 - .equiv FLAG_0x0CA, 0xCA - .equiv FLAG_0x0CB, 0xCB - .equiv FLAG_0x0CC, 0xCC - .equiv FLAG_0x0CD, 0xCD - .equiv FLAG_0x0CE, 0xCE - .equiv FLAG_0x0CF, 0xCF - .equiv FLAG_0x0D0, 0xD0 - .equiv FLAG_0x0D1, 0xD1 - .equiv FLAG_0x0D2, 0xD2 - .equiv FLAG_0x0D3, 0xD3 - .equiv FLAG_0x0D4, 0xD4 - .equiv FLAG_0x0D5, 0xD5 - .equiv FLAG_0x0D6, 0xD6 - .equiv FLAG_0x0D7, 0xD7 - .equiv FLAG_0x0D8, 0xD8 - .equiv FLAG_0x0D9, 0xD9 - .equiv FLAG_0x0DA, 0xDA - .equiv FLAG_0x0DB, 0xDB - .equiv FLAG_0x0DC, 0xDC - .equiv FLAG_0x0DD, 0xDD - .equiv FLAG_0x0DE, 0xDE - .equiv FLAG_0x0DF, 0xDF - .equiv FLAG_0x0E0, 0xE0 - .equiv FLAG_0x0E1, 0xE1 - .equiv FLAG_0x0E2, 0xE2 - .equiv FLAG_0x0E3, 0xE3 - .equiv FLAG_0x0E4, 0xE4 - .equiv FLAG_0x0E5, 0xE5 - .equiv FLAG_0x0E6, 0xE6 - .equiv FLAG_0x0E7, 0xE7 - .equiv FLAG_0x0E8, 0xE8 - .equiv FLAG_0x0E9, 0xE9 - .equiv FLAG_0x0EA, 0xEA - .equiv FLAG_0x0EB, 0xEB - .equiv FLAG_0x0EC, 0xEC - .equiv FLAG_0x0ED, 0xED - .equiv FLAG_0x0EE, 0xEE - .equiv FLAG_0x0EF, 0xEF - .equiv FLAG_0x0F0, 0xF0 - .equiv FLAG_0x0F1, 0xF1 - .equiv FLAG_0x0F2, 0xF2 - .equiv FLAG_0x0F3, 0xF3 - .equiv FLAG_0x0F4, 0xF4 - .equiv FLAG_0x0F5, 0xF5 - .equiv FLAG_0x0F6, 0xF6 - .equiv FLAG_0x0F7, 0xF7 - .equiv FLAG_0x0F8, 0xF8 - .equiv FLAG_0x0F9, 0xF9 - .equiv FLAG_0x0FA, 0xFA - .equiv FLAG_0x0FB, 0xFB - .equiv FLAG_0x0FC, 0xFC - .equiv FLAG_0x0FD, 0xFD - .equiv FLAG_0x0FE, 0xFE - .equiv FLAG_0x0FF, 0xFF - .equiv FLAG_0x100, 0x100 - .equiv FLAG_0x101, 0x101 - .equiv FLAG_0x102, 0x102 - .equiv FLAG_0x103, 0x103 - .equiv FLAG_0x104, 0x104 - .equiv FLAG_0x105, 0x105 - .equiv FLAG_0x106, 0x106 - .equiv FLAG_0x107, 0x107 - .equiv FLAG_0x108, 0x108 - .equiv FLAG_0x109, 0x109 - .equiv FLAG_0x10A, 0x10A - .equiv FLAG_0x10B, 0x10B - .equiv FLAG_0x10C, 0x10C - .equiv FLAG_0x10D, 0x10D - .equiv FLAG_0x10E, 0x10E - .equiv FLAG_0x10F, 0x10F - .equiv FLAG_0x110, 0x110 - .equiv FLAG_0x111, 0x111 - .equiv FLAG_0x112, 0x112 - .equiv FLAG_0x113, 0x113 - .equiv FLAG_0x114, 0x114 - .equiv FLAG_0x115, 0x115 - .equiv FLAG_0x116, 0x116 - .equiv FLAG_0x117, 0x117 - .equiv FLAG_0x118, 0x118 - .equiv FLAG_0x119, 0x119 - .equiv FLAG_0x11A, 0x11A - .equiv FLAG_0x11B, 0x11B - .equiv FLAG_0x11C, 0x11C - .equiv FLAG_0x11D, 0x11D - .equiv FLAG_0x11E, 0x11E - .equiv FLAG_0x11F, 0x11F - .equiv FLAG_0x120, 0x120 - .equiv FLAG_0x121, 0x121 - .equiv FLAG_0x122, 0x122 - .equiv FLAG_0x123, 0x123 - .equiv FLAG_0x124, 0x124 - .equiv FLAG_0x125, 0x125 - .equiv FLAG_0x126, 0x126 - .equiv FLAG_0x127, 0x127 - .equiv FLAG_0x128, 0x128 - .equiv FLAG_0x129, 0x129 - .equiv FLAG_0x12A, 0x12A - .equiv FLAG_0x12B, 0x12B - .equiv FLAG_0x12C, 0x12C - .equiv FLAG_0x12D, 0x12D - .equiv FLAG_0x12E, 0x12E - .equiv FLAG_0x12F, 0x12F - .equiv FLAG_0x130, 0x130 - .equiv FLAG_0x131, 0x131 - .equiv FLAG_0x132, 0x132 - .equiv FLAG_0x133, 0x133 - .equiv FLAG_0x134, 0x134 - .equiv FLAG_0x135, 0x135 - .equiv FLAG_0x136, 0x136 - .equiv FLAG_0x137, 0x137 - .equiv FLAG_0x138, 0x138 - .equiv FLAG_0x139, 0x139 - .equiv FLAG_0x13A, 0x13A - .equiv FLAG_0x13B, 0x13B - .equiv FLAG_0x13C, 0x13C - .equiv FLAG_0x13D, 0x13D - .equiv FLAG_0x13E, 0x13E - .equiv FLAG_0x13F, 0x13F - .equiv FLAG_0x140, 0x140 - .equiv FLAG_0x141, 0x141 - .equiv FLAG_0x142, 0x142 - .equiv FLAG_0x143, 0x143 - .equiv FLAG_0x144, 0x144 - .equiv FLAG_0x145, 0x145 - .equiv FLAG_0x146, 0x146 - .equiv FLAG_0x147, 0x147 - .equiv FLAG_0x148, 0x148 - .equiv FLAG_0x149, 0x149 - .equiv FLAG_0x14A, 0x14A - .equiv FLAG_0x14B, 0x14B - .equiv FLAG_0x14C, 0x14C - .equiv FLAG_0x14D, 0x14D - .equiv FLAG_0x14E, 0x14E - .equiv FLAG_0x14F, 0x14F - .equiv FLAG_0x150, 0x150 - .equiv FLAG_0x151, 0x151 - .equiv FLAG_0x152, 0x152 - .equiv FLAG_0x153, 0x153 - .equiv FLAG_0x154, 0x154 - .equiv FLAG_0x155, 0x155 - .equiv FLAG_0x156, 0x156 - .equiv FLAG_0x157, 0x157 - .equiv FLAG_0x158, 0x158 - .equiv FLAG_0x159, 0x159 - .equiv FLAG_0x15A, 0x15A - .equiv FLAG_0x15B, 0x15B - .equiv FLAG_0x15C, 0x15C - .equiv FLAG_0x15D, 0x15D - .equiv FLAG_0x15E, 0x15E - .equiv FLAG_0x15F, 0x15F - .equiv FLAG_0x160, 0x160 - .equiv FLAG_0x161, 0x161 - .equiv FLAG_0x162, 0x162 - .equiv FLAG_0x163, 0x163 - .equiv FLAG_0x164, 0x164 - .equiv FLAG_0x165, 0x165 - .equiv FLAG_0x166, 0x166 - .equiv FLAG_0x167, 0x167 - .equiv FLAG_0x168, 0x168 - .equiv FLAG_0x169, 0x169 - .equiv FLAG_0x16A, 0x16A - .equiv FLAG_0x16B, 0x16B - .equiv FLAG_0x16C, 0x16C - .equiv FLAG_0x16D, 0x16D - .equiv FLAG_0x16E, 0x16E - .equiv FLAG_0x16F, 0x16F - .equiv FLAG_0x170, 0x170 - .equiv FLAG_0x171, 0x171 - .equiv FLAG_0x172, 0x172 - .equiv FLAG_0x173, 0x173 - .equiv FLAG_0x174, 0x174 - .equiv FLAG_0x175, 0x175 - .equiv FLAG_0x176, 0x176 - .equiv FLAG_0x177, 0x177 - .equiv FLAG_0x178, 0x178 - .equiv FLAG_0x179, 0x179 - .equiv FLAG_0x17A, 0x17A - .equiv FLAG_0x17B, 0x17B - .equiv FLAG_0x17C, 0x17C - .equiv FLAG_0x17D, 0x17D - .equiv FLAG_0x17E, 0x17E - .equiv FLAG_0x17F, 0x17F - .equiv FLAG_0x180, 0x180 - .equiv FLAG_0x181, 0x181 - .equiv FLAG_0x182, 0x182 - .equiv FLAG_0x183, 0x183 - .equiv FLAG_0x184, 0x184 - .equiv FLAG_0x185, 0x185 - .equiv FLAG_0x186, 0x186 - .equiv FLAG_0x187, 0x187 - .equiv FLAG_0x188, 0x188 - .equiv FLAG_0x189, 0x189 - .equiv FLAG_0x18A, 0x18A - .equiv FLAG_0x18B, 0x18B - .equiv FLAG_0x18C, 0x18C - .equiv FLAG_0x18D, 0x18D - .equiv FLAG_0x18E, 0x18E - .equiv FLAG_0x18F, 0x18F - .equiv FLAG_0x190, 0x190 - .equiv FLAG_0x191, 0x191 - .equiv FLAG_0x192, 0x192 - .equiv FLAG_0x193, 0x193 - .equiv FLAG_0x194, 0x194 - .equiv FLAG_0x195, 0x195 - .equiv FLAG_0x196, 0x196 - .equiv FLAG_0x197, 0x197 - .equiv FLAG_0x198, 0x198 - .equiv FLAG_0x199, 0x199 - .equiv FLAG_0x19A, 0x19A - .equiv FLAG_0x19B, 0x19B - .equiv FLAG_0x19C, 0x19C - .equiv FLAG_0x19D, 0x19D - .equiv FLAG_0x19E, 0x19E - .equiv FLAG_0x19F, 0x19F - .equiv FLAG_0x1A0, 0x1A0 - .equiv FLAG_0x1A1, 0x1A1 - .equiv FLAG_0x1A2, 0x1A2 - .equiv FLAG_0x1A3, 0x1A3 - .equiv FLAG_0x1A4, 0x1A4 - .equiv FLAG_0x1A5, 0x1A5 - .equiv FLAG_0x1A6, 0x1A6 - .equiv FLAG_0x1A7, 0x1A7 - .equiv FLAG_0x1A8, 0x1A8 - .equiv FLAG_0x1A9, 0x1A9 - .equiv FLAG_0x1AA, 0x1AA - .equiv FLAG_0x1AB, 0x1AB - .equiv FLAG_0x1AC, 0x1AC - .equiv FLAG_0x1AD, 0x1AD - .equiv FLAG_0x1AE, 0x1AE - .equiv FLAG_0x1AF, 0x1AF - .equiv FLAG_0x1B0, 0x1B0 - .equiv FLAG_0x1B1, 0x1B1 - .equiv FLAG_0x1B2, 0x1B2 - .equiv FLAG_0x1B3, 0x1B3 - .equiv FLAG_0x1B4, 0x1B4 - .equiv FLAG_0x1B5, 0x1B5 - .equiv FLAG_0x1B6, 0x1B6 - .equiv FLAG_0x1B7, 0x1B7 - .equiv FLAG_0x1B8, 0x1B8 - .equiv FLAG_0x1B9, 0x1B9 - .equiv FLAG_0x1BA, 0x1BA - .equiv FLAG_0x1BB, 0x1BB - .equiv FLAG_0x1BC, 0x1BC - .equiv FLAG_0x1BD, 0x1BD - .equiv FLAG_0x1BE, 0x1BE - .equiv FLAG_0x1BF, 0x1BF - .equiv FLAG_0x1C0, 0x1C0 - .equiv FLAG_0x1C1, 0x1C1 - .equiv FLAG_0x1C2, 0x1C2 - .equiv FLAG_0x1C3, 0x1C3 - .equiv FLAG_0x1C4, 0x1C4 - .equiv FLAG_0x1C5, 0x1C5 - .equiv FLAG_0x1C6, 0x1C6 - .equiv FLAG_0x1C7, 0x1C7 - .equiv FLAG_0x1C8, 0x1C8 - .equiv FLAG_0x1C9, 0x1C9 - .equiv FLAG_0x1CA, 0x1CA - .equiv FLAG_0x1CB, 0x1CB - .equiv FLAG_0x1CC, 0x1CC - .equiv FLAG_0x1CD, 0x1CD - .equiv FLAG_0x1CE, 0x1CE - .equiv FLAG_0x1CF, 0x1CF - .equiv FLAG_0x1D0, 0x1D0 - .equiv FLAG_0x1D1, 0x1D1 - .equiv FLAG_0x1D2, 0x1D2 - .equiv FLAG_0x1D3, 0x1D3 - .equiv FLAG_0x1D4, 0x1D4 - .equiv FLAG_0x1D5, 0x1D5 - .equiv FLAG_0x1D6, 0x1D6 - .equiv FLAG_0x1D7, 0x1D7 - .equiv FLAG_0x1D8, 0x1D8 - .equiv FLAG_0x1D9, 0x1D9 - .equiv FLAG_0x1DA, 0x1DA - .equiv FLAG_0x1DB, 0x1DB - .equiv FLAG_0x1DC, 0x1DC - .equiv FLAG_0x1DD, 0x1DD - .equiv FLAG_0x1DE, 0x1DE - .equiv FLAG_0x1DF, 0x1DF - .equiv FLAG_0x1E0, 0x1E0 - .equiv FLAG_0x1E1, 0x1E1 - .equiv FLAG_0x1E2, 0x1E2 - .equiv FLAG_0x1E3, 0x1E3 - .equiv FLAG_0x1E4, 0x1E4 - .equiv FLAG_0x1E5, 0x1E5 - .equiv FLAG_0x1E6, 0x1E6 - .equiv FLAG_0x1E7, 0x1E7 - .equiv FLAG_0x1E8, 0x1E8 - .equiv FLAG_0x1E9, 0x1E9 - .equiv FLAG_0x1EA, 0x1EA - .equiv FLAG_0x1EB, 0x1EB - .equiv FLAG_0x1EC, 0x1EC - .equiv FLAG_0x1ED, 0x1ED - .equiv FLAG_0x1EE, 0x1EE - .equiv FLAG_0x1EF, 0x1EF - .equiv FLAG_0x1F0, 0x1F0 - .equiv FLAG_0x1F1, 0x1F1 - .equiv FLAG_0x1F2, 0x1F2 - .equiv FLAG_0x1F3, 0x1F3 - .equiv FLAG_0x1F4, 0x1F4 - .equiv FLAG_0x1F5, 0x1F5 - .equiv FLAG_0x1F6, 0x1F6 - .equiv FLAG_0x1F7, 0x1F7 - .equiv FLAG_0x1F8, 0x1F8 - .equiv FLAG_0x1F9, 0x1F9 - .equiv FLAG_0x1FA, 0x1FA - .equiv FLAG_0x1FB, 0x1FB - .equiv FLAG_0x1FC, 0x1FC - .equiv FLAG_0x1FD, 0x1FD - .equiv FLAG_0x1FE, 0x1FE - .equiv FLAG_0x1FF, 0x1FF - .equiv FLAG_0x200, 0x200 - .equiv FLAG_0x201, 0x201 - .equiv FLAG_0x202, 0x202 - .equiv FLAG_0x203, 0x203 - .equiv FLAG_0x204, 0x204 - .equiv FLAG_0x205, 0x205 - .equiv FLAG_0x206, 0x206 - .equiv FLAG_0x207, 0x207 - .equiv FLAG_0x208, 0x208 - .equiv FLAG_0x209, 0x209 - .equiv FLAG_0x20A, 0x20A - .equiv FLAG_0x20B, 0x20B - .equiv FLAG_0x20C, 0x20C - .equiv FLAG_0x20D, 0x20D - .equiv FLAG_0x20E, 0x20E - .equiv FLAG_0x20F, 0x20F - .equiv FLAG_0x210, 0x210 - .equiv FLAG_0x211, 0x211 - .equiv FLAG_0x212, 0x212 - .equiv FLAG_0x213, 0x213 - .equiv FLAG_0x214, 0x214 - .equiv FLAG_0x215, 0x215 - .equiv FLAG_0x216, 0x216 - .equiv FLAG_0x217, 0x217 - .equiv FLAG_0x218, 0x218 - .equiv FLAG_0x219, 0x219 - .equiv FLAG_0x21A, 0x21A - .equiv FLAG_0x21B, 0x21B - .equiv FLAG_0x21C, 0x21C - .equiv FLAG_0x21D, 0x21D - .equiv FLAG_0x21E, 0x21E - .equiv FLAG_0x21F, 0x21F - .equiv FLAG_0x220, 0x220 - .equiv FLAG_0x221, 0x221 - .equiv FLAG_0x222, 0x222 - .equiv FLAG_0x223, 0x223 - .equiv FLAG_0x224, 0x224 - .equiv FLAG_0x225, 0x225 - .equiv FLAG_0x226, 0x226 - .equiv FLAG_0x227, 0x227 - .equiv FLAG_0x228, 0x228 - .equiv FLAG_0x229, 0x229 - .equiv FLAG_0x22A, 0x22A - .equiv FLAG_0x22B, 0x22B - .equiv FLAG_0x22C, 0x22C - .equiv FLAG_0x22D, 0x22D - .equiv FLAG_0x22E, 0x22E - .equiv FLAG_0x22F, 0x22F - .equiv FLAG_0x230, 0x230 - .equiv FLAG_0x231, 0x231 - .equiv FLAG_0x232, 0x232 - .equiv FLAG_0x233, 0x233 - .equiv FLAG_0x234, 0x234 - .equiv FLAG_0x235, 0x235 - .equiv FLAG_0x236, 0x236 - .equiv FLAG_0x237, 0x237 - .equiv FLAG_0x238, 0x238 - .equiv FLAG_0x239, 0x239 - .equiv FLAG_0x23A, 0x23A - .equiv FLAG_0x23B, 0x23B - .equiv FLAG_0x23C, 0x23C - .equiv FLAG_0x23D, 0x23D - .equiv FLAG_0x23E, 0x23E - .equiv FLAG_0x23F, 0x23F - .equiv FLAG_0x240, 0x240 - .equiv FLAG_0x241, 0x241 - .equiv FLAG_0x242, 0x242 - .equiv FLAG_0x243, 0x243 - .equiv FLAG_0x244, 0x244 - .equiv FLAG_0x245, 0x245 - .equiv FLAG_0x246, 0x246 - .equiv FLAG_0x247, 0x247 - .equiv FLAG_0x248, 0x248 - .equiv FLAG_0x249, 0x249 - .equiv FLAG_0x24A, 0x24A - .equiv FLAG_0x24B, 0x24B - .equiv FLAG_0x24C, 0x24C - .equiv FLAG_0x24D, 0x24D - .equiv FLAG_0x24E, 0x24E - .equiv FLAG_0x24F, 0x24F - .equiv FLAG_0x250, 0x250 - .equiv FLAG_0x251, 0x251 - .equiv FLAG_0x252, 0x252 - .equiv FLAG_0x253, 0x253 - .equiv FLAG_0x254, 0x254 - .equiv FLAG_0x255, 0x255 - .equiv FLAG_0x256, 0x256 - .equiv FLAG_0x257, 0x257 - .equiv FLAG_0x258, 0x258 - .equiv FLAG_0x259, 0x259 - .equiv FLAG_0x25A, 0x25A - .equiv FLAG_0x25B, 0x25B - .equiv FLAG_0x25C, 0x25C - .equiv FLAG_0x25D, 0x25D - .equiv FLAG_0x25E, 0x25E - .equiv FLAG_0x25F, 0x25F - .equiv FLAG_0x260, 0x260 - .equiv FLAG_0x261, 0x261 - .equiv FLAG_0x262, 0x262 - .equiv FLAG_0x263, 0x263 - .equiv FLAG_0x264, 0x264 - .equiv FLAG_0x265, 0x265 - .equiv FLAG_0x266, 0x266 - .equiv FLAG_0x267, 0x267 - .equiv FLAG_0x268, 0x268 - .equiv FLAG_0x269, 0x269 - .equiv FLAG_0x26A, 0x26A - .equiv FLAG_0x26B, 0x26B - .equiv FLAG_0x26C, 0x26C - .equiv FLAG_0x26D, 0x26D - .equiv FLAG_0x26E, 0x26E - .equiv FLAG_0x26F, 0x26F - .equiv FLAG_0x270, 0x270 - .equiv FLAG_0x271, 0x271 - .equiv FLAG_0x272, 0x272 - .equiv FLAG_0x273, 0x273 - .equiv FLAG_0x274, 0x274 - .equiv FLAG_0x275, 0x275 - .equiv FLAG_0x276, 0x276 - .equiv FLAG_0x277, 0x277 - .equiv FLAG_0x278, 0x278 - .equiv FLAG_0x279, 0x279 - .equiv FLAG_0x27A, 0x27A - .equiv FLAG_0x27B, 0x27B - .equiv FLAG_0x27C, 0x27C - .equiv FLAG_0x27D, 0x27D - .equiv FLAG_0x27E, 0x27E - .equiv FLAG_0x27F, 0x27F - .equiv FLAG_0x280, 0x280 - .equiv FLAG_0x281, 0x281 - .equiv FLAG_0x282, 0x282 - .equiv FLAG_0x283, 0x283 - .equiv FLAG_0x284, 0x284 - .equiv FLAG_0x285, 0x285 - .equiv FLAG_0x286, 0x286 - .equiv FLAG_0x287, 0x287 - .equiv FLAG_0x288, 0x288 - .equiv FLAG_0x289, 0x289 - .equiv FLAG_0x28A, 0x28A - .equiv FLAG_0x28B, 0x28B - .equiv FLAG_0x28C, 0x28C - .equiv FLAG_0x28D, 0x28D - .equiv FLAG_0x28E, 0x28E - .equiv FLAG_0x28F, 0x28F - .equiv FLAG_0x290, 0x290 - .equiv FLAG_0x291, 0x291 - .equiv FLAG_0x292, 0x292 - .equiv FLAG_0x293, 0x293 - .equiv FLAG_0x294, 0x294 - .equiv FLAG_0x295, 0x295 - .equiv FLAG_0x296, 0x296 - .equiv FLAG_0x297, 0x297 - .equiv FLAG_0x298, 0x298 - .equiv FLAG_0x299, 0x299 - .equiv FLAG_0x29A, 0x29A - .equiv FLAG_0x29B, 0x29B - .equiv FLAG_0x29C, 0x29C - .equiv FLAG_0x29D, 0x29D - .equiv FLAG_0x29E, 0x29E - .equiv FLAG_0x29F, 0x29F - .equiv FLAG_0x2A0, 0x2A0 - .equiv FLAG_0x2A1, 0x2A1 - .equiv FLAG_0x2A2, 0x2A2 - .equiv FLAG_0x2A3, 0x2A3 - .equiv FLAG_0x2A4, 0x2A4 - .equiv FLAG_0x2A5, 0x2A5 - .equiv FLAG_0x2A6, 0x2A6 - .equiv FLAG_0x2A7, 0x2A7 - .equiv FLAG_0x2A8, 0x2A8 - .equiv FLAG_0x2A9, 0x2A9 - .equiv FLAG_0x2AA, 0x2AA - .equiv FLAG_0x2AB, 0x2AB - .equiv FLAG_0x2AC, 0x2AC - .equiv FLAG_0x2AD, 0x2AD - .equiv FLAG_0x2AE, 0x2AE - .equiv FLAG_0x2AF, 0x2AF - .equiv FLAG_0x2B0, 0x2B0 - .equiv FLAG_0x2B1, 0x2B1 - .equiv FLAG_0x2B2, 0x2B2 - .equiv FLAG_0x2B3, 0x2B3 - .equiv FLAG_0x2B4, 0x2B4 - .equiv FLAG_0x2B5, 0x2B5 - .equiv FLAG_0x2B6, 0x2B6 - .equiv FLAG_0x2B7, 0x2B7 - .equiv FLAG_0x2B8, 0x2B8 - .equiv FLAG_0x2B9, 0x2B9 - .equiv FLAG_0x2BA, 0x2BA - .equiv FLAG_0x2BB, 0x2BB - .equiv FLAG_0x2BC, 0x2BC - .equiv FLAG_0x2BD, 0x2BD - .equiv FLAG_0x2BE, 0x2BE - .equiv FLAG_0x2BF, 0x2BF - .equiv FLAG_0x2C0, 0x2C0 - .equiv FLAG_0x2C1, 0x2C1 - .equiv FLAG_0x2C2, 0x2C2 - .equiv FLAG_0x2C3, 0x2C3 - .equiv FLAG_0x2C4, 0x2C4 - .equiv FLAG_0x2C5, 0x2C5 - .equiv FLAG_0x2C6, 0x2C6 - .equiv FLAG_0x2C7, 0x2C7 - .equiv FLAG_0x2C8, 0x2C8 - .equiv FLAG_0x2C9, 0x2C9 - .equiv FLAG_0x2CA, 0x2CA - .equiv FLAG_0x2CB, 0x2CB - .equiv FLAG_0x2CC, 0x2CC - .equiv FLAG_0x2CD, 0x2CD - .equiv FLAG_0x2CE, 0x2CE - .equiv FLAG_0x2CF, 0x2CF - .equiv FLAG_0x2D0, 0x2D0 - .equiv FLAG_0x2D1, 0x2D1 - .equiv FLAG_0x2D2, 0x2D2 - .equiv FLAG_0x2D3, 0x2D3 - .equiv FLAG_0x2D4, 0x2D4 - .equiv FLAG_0x2D5, 0x2D5 - .equiv FLAG_0x2D6, 0x2D6 - .equiv FLAG_0x2D7, 0x2D7 - .equiv FLAG_0x2D8, 0x2D8 - .equiv FLAG_0x2D9, 0x2D9 - .equiv FLAG_0x2DA, 0x2DA - .equiv FLAG_0x2DB, 0x2DB - .equiv FLAG_0x2DC, 0x2DC - .equiv FLAG_0x2DD, 0x2DD - .equiv FLAG_0x2DE, 0x2DE - .equiv FLAG_0x2DF, 0x2DF - .equiv FLAG_0x2E0, 0x2E0 - .equiv FLAG_0x2E1, 0x2E1 - .equiv FLAG_0x2E2, 0x2E2 - .equiv FLAG_0x2E3, 0x2E3 - .equiv FLAG_0x2E4, 0x2E4 - .equiv FLAG_0x2E5, 0x2E5 - .equiv FLAG_0x2E6, 0x2E6 - .equiv FLAG_0x2E7, 0x2E7 - .equiv FLAG_0x2E8, 0x2E8 - .equiv FLAG_0x2E9, 0x2E9 - .equiv FLAG_0x2EA, 0x2EA - .equiv FLAG_0x2EB, 0x2EB - .equiv FLAG_0x2EC, 0x2EC - .equiv FLAG_0x2ED, 0x2ED - .equiv FLAG_0x2EE, 0x2EE - .equiv FLAG_0x2EF, 0x2EF - .equiv FLAG_0x2F0, 0x2F0 - .equiv FLAG_0x2F1, 0x2F1 - .equiv FLAG_0x2F2, 0x2F2 - .equiv FLAG_0x2F3, 0x2F3 - .equiv FLAG_0x2F4, 0x2F4 - .equiv FLAG_0x2F5, 0x2F5 - .equiv FLAG_0x2F6, 0x2F6 - .equiv FLAG_0x2F7, 0x2F7 - .equiv FLAG_0x2F8, 0x2F8 - .equiv FLAG_0x2F9, 0x2F9 - .equiv FLAG_0x2FA, 0x2FA - .equiv FLAG_0x2FB, 0x2FB - .equiv FLAG_0x2FC, 0x2FC - .equiv FLAG_0x2FD, 0x2FD - .equiv FLAG_0x2FE, 0x2FE - .equiv FLAG_0x2FF, 0x2FF - .equiv FLAG_0x300, 0x300 - .equiv FLAG_0x301, 0x301 - .equiv FLAG_0x302, 0x302 - .equiv FLAG_0x303, 0x303 - .equiv FLAG_0x304, 0x304 - .equiv FLAG_0x305, 0x305 - .equiv FLAG_0x306, 0x306 - .equiv FLAG_0x307, 0x307 - .equiv FLAG_0x308, 0x308 - .equiv FLAG_0x309, 0x309 - .equiv FLAG_0x30A, 0x30A - .equiv FLAG_0x30B, 0x30B - .equiv FLAG_0x30C, 0x30C - .equiv FLAG_0x30D, 0x30D - .equiv FLAG_0x30E, 0x30E - .equiv FLAG_0x30F, 0x30F - .equiv FLAG_0x310, 0x310 - .equiv FLAG_0x311, 0x311 - .equiv FLAG_0x312, 0x312 - .equiv FLAG_0x313, 0x313 - .equiv FLAG_0x314, 0x314 - .equiv FLAG_0x315, 0x315 - .equiv FLAG_0x316, 0x316 - .equiv FLAG_0x317, 0x317 - .equiv FLAG_0x318, 0x318 - .equiv FLAG_0x319, 0x319 - .equiv FLAG_0x31A, 0x31A - .equiv FLAG_0x31B, 0x31B - .equiv FLAG_0x31C, 0x31C - .equiv FLAG_0x31D, 0x31D - .equiv FLAG_0x31E, 0x31E - .equiv FLAG_0x31F, 0x31F - .equiv FLAG_0x320, 0x320 - .equiv FLAG_0x321, 0x321 - .equiv FLAG_0x322, 0x322 - .equiv FLAG_0x323, 0x323 - .equiv FLAG_0x324, 0x324 - .equiv FLAG_0x325, 0x325 - .equiv FLAG_0x326, 0x326 - .equiv FLAG_0x327, 0x327 - .equiv FLAG_0x328, 0x328 - .equiv FLAG_0x329, 0x329 - .equiv FLAG_0x32A, 0x32A - .equiv FLAG_0x32B, 0x32B - .equiv FLAG_0x32C, 0x32C - .equiv FLAG_0x32D, 0x32D - .equiv FLAG_0x32E, 0x32E - .equiv FLAG_0x32F, 0x32F - .equiv FLAG_0x330, 0x330 - .equiv FLAG_0x331, 0x331 - .equiv FLAG_0x332, 0x332 - .equiv FLAG_0x333, 0x333 - .equiv FLAG_0x334, 0x334 - .equiv FLAG_0x335, 0x335 - .equiv FLAG_0x336, 0x336 - .equiv FLAG_0x337, 0x337 - .equiv FLAG_0x338, 0x338 - .equiv FLAG_0x339, 0x339 - .equiv FLAG_0x33A, 0x33A - .equiv FLAG_0x33B, 0x33B - .equiv FLAG_0x33C, 0x33C - .equiv FLAG_0x33D, 0x33D - .equiv FLAG_0x33E, 0x33E - .equiv FLAG_0x33F, 0x33F - .equiv FLAG_0x340, 0x340 - .equiv FLAG_0x341, 0x341 - .equiv FLAG_0x342, 0x342 - .equiv FLAG_0x343, 0x343 - .equiv FLAG_0x344, 0x344 - .equiv FLAG_0x345, 0x345 - .equiv FLAG_0x346, 0x346 - .equiv FLAG_0x347, 0x347 - .equiv FLAG_0x348, 0x348 - .equiv FLAG_0x349, 0x349 - .equiv FLAG_0x34A, 0x34A - .equiv FLAG_0x34B, 0x34B - .equiv FLAG_0x34C, 0x34C - .equiv FLAG_0x34D, 0x34D - .equiv FLAG_0x34E, 0x34E - .equiv FLAG_0x34F, 0x34F - .equiv FLAG_0x350, 0x350 - .equiv FLAG_0x351, 0x351 - .equiv FLAG_0x352, 0x352 - .equiv FLAG_0x353, 0x353 - .equiv FLAG_0x354, 0x354 - .equiv FLAG_0x355, 0x355 - .equiv FLAG_0x356, 0x356 - .equiv FLAG_0x357, 0x357 - .equiv FLAG_0x358, 0x358 - .equiv FLAG_0x359, 0x359 - .equiv FLAG_0x35A, 0x35A - .equiv FLAG_0x35B, 0x35B - .equiv FLAG_0x35C, 0x35C - .equiv FLAG_0x35D, 0x35D - .equiv FLAG_0x35E, 0x35E - .equiv FLAG_0x35F, 0x35F - .equiv FLAG_0x360, 0x360 - .equiv FLAG_0x361, 0x361 - .equiv FLAG_0x362, 0x362 - .equiv FLAG_0x363, 0x363 - .equiv FLAG_0x364, 0x364 - .equiv FLAG_0x365, 0x365 - .equiv FLAG_0x366, 0x366 - .equiv FLAG_0x367, 0x367 - .equiv FLAG_0x368, 0x368 - .equiv FLAG_0x369, 0x369 - .equiv FLAG_0x36A, 0x36A - .equiv FLAG_0x36B, 0x36B - .equiv FLAG_0x36C, 0x36C - .equiv FLAG_0x36D, 0x36D - .equiv FLAG_0x36E, 0x36E - .equiv FLAG_0x36F, 0x36F - .equiv FLAG_0x370, 0x370 - .equiv FLAG_0x371, 0x371 - .equiv FLAG_0x372, 0x372 - .equiv FLAG_0x373, 0x373 - .equiv FLAG_0x374, 0x374 - .equiv FLAG_0x375, 0x375 - .equiv FLAG_0x376, 0x376 - .equiv FLAG_0x377, 0x377 - .equiv FLAG_0x378, 0x378 - .equiv FLAG_0x379, 0x379 - .equiv FLAG_0x37A, 0x37A - .equiv FLAG_0x37B, 0x37B - .equiv FLAG_0x37C, 0x37C - .equiv FLAG_0x37D, 0x37D - .equiv FLAG_0x37E, 0x37E - .equiv FLAG_0x37F, 0x37F - .equiv FLAG_0x380, 0x380 - .equiv FLAG_0x381, 0x381 - .equiv FLAG_0x382, 0x382 - .equiv FLAG_0x383, 0x383 - .equiv FLAG_0x384, 0x384 - .equiv FLAG_0x385, 0x385 - .equiv FLAG_0x386, 0x386 - .equiv FLAG_0x387, 0x387 - .equiv FLAG_0x388, 0x388 - .equiv FLAG_0x389, 0x389 - .equiv FLAG_0x38A, 0x38A - .equiv FLAG_0x38B, 0x38B - .equiv FLAG_0x38C, 0x38C - .equiv FLAG_0x38D, 0x38D - .equiv FLAG_0x38E, 0x38E - .equiv FLAG_0x38F, 0x38F - .equiv FLAG_0x390, 0x390 - .equiv FLAG_0x391, 0x391 - .equiv FLAG_0x392, 0x392 - .equiv FLAG_0x393, 0x393 - .equiv FLAG_0x394, 0x394 - .equiv FLAG_0x395, 0x395 - .equiv FLAG_0x396, 0x396 - .equiv FLAG_0x397, 0x397 - .equiv FLAG_0x398, 0x398 - .equiv FLAG_0x399, 0x399 - .equiv FLAG_0x39A, 0x39A - .equiv FLAG_0x39B, 0x39B - .equiv FLAG_0x39C, 0x39C - .equiv FLAG_0x39D, 0x39D - .equiv FLAG_0x39E, 0x39E - .equiv FLAG_0x39F, 0x39F - .equiv FLAG_0x3A0, 0x3A0 - .equiv FLAG_0x3A1, 0x3A1 - .equiv FLAG_0x3A2, 0x3A2 - .equiv FLAG_0x3A3, 0x3A3 - .equiv FLAG_0x3A4, 0x3A4 - .equiv FLAG_0x3A5, 0x3A5 - .equiv FLAG_0x3A6, 0x3A6 - .equiv FLAG_0x3A7, 0x3A7 - .equiv FLAG_0x3A8, 0x3A8 - .equiv FLAG_0x3A9, 0x3A9 - .equiv FLAG_0x3AA, 0x3AA - .equiv FLAG_0x3AB, 0x3AB - .equiv FLAG_0x3AC, 0x3AC - .equiv FLAG_0x3AD, 0x3AD - .equiv FLAG_0x3AE, 0x3AE - .equiv FLAG_0x3AF, 0x3AF - .equiv FLAG_0x3B0, 0x3B0 - .equiv FLAG_0x3B1, 0x3B1 - .equiv FLAG_0x3B2, 0x3B2 - .equiv FLAG_0x3B3, 0x3B3 - .equiv FLAG_0x3B4, 0x3B4 - .equiv FLAG_0x3B5, 0x3B5 - .equiv FLAG_0x3B6, 0x3B6 - .equiv FLAG_0x3B7, 0x3B7 - .equiv FLAG_0x3B8, 0x3B8 - .equiv FLAG_0x3B9, 0x3B9 - .equiv FLAG_0x3BA, 0x3BA - .equiv FLAG_0x3BB, 0x3BB - .equiv FLAG_0x3BC, 0x3BC - .equiv FLAG_0x3BD, 0x3BD - .equiv FLAG_0x3BE, 0x3BE - .equiv FLAG_0x3BF, 0x3BF - .equiv FLAG_0x3C0, 0x3C0 - .equiv FLAG_0x3C1, 0x3C1 - .equiv FLAG_0x3C2, 0x3C2 - .equiv FLAG_0x3C3, 0x3C3 - .equiv FLAG_0x3C4, 0x3C4 - .equiv FLAG_0x3C5, 0x3C5 - .equiv FLAG_0x3C6, 0x3C6 - .equiv FLAG_0x3C7, 0x3C7 - .equiv FLAG_0x3C8, 0x3C8 - .equiv FLAG_0x3C9, 0x3C9 - .equiv FLAG_0x3CA, 0x3CA - .equiv FLAG_0x3CB, 0x3CB - .equiv FLAG_0x3CC, 0x3CC - .equiv FLAG_0x3CD, 0x3CD - .equiv FLAG_0x3CE, 0x3CE - .equiv FLAG_0x3CF, 0x3CF - .equiv FLAG_0x3D0, 0x3D0 - .equiv FLAG_0x3D1, 0x3D1 - .equiv FLAG_0x3D2, 0x3D2 - .equiv FLAG_0x3D3, 0x3D3 - .equiv FLAG_0x3D4, 0x3D4 - .equiv FLAG_0x3D5, 0x3D5 - .equiv FLAG_0x3D6, 0x3D6 - .equiv FLAG_0x3D7, 0x3D7 - .equiv FLAG_0x3D8, 0x3D8 - .equiv FLAG_0x3D9, 0x3D9 - .equiv FLAG_0x3DA, 0x3DA - .equiv FLAG_0x3DB, 0x3DB - .equiv FLAG_0x3DC, 0x3DC - .equiv FLAG_0x3DD, 0x3DD - .equiv FLAG_0x3DE, 0x3DE - .equiv FLAG_0x3DF, 0x3DF - .equiv FLAG_0x3E0, 0x3E0 - .equiv FLAG_0x3E1, 0x3E1 - .equiv FLAG_0x3E2, 0x3E2 - .equiv FLAG_0x3E3, 0x3E3 - .equiv FLAG_0x3E4, 0x3E4 - .equiv FLAG_0x3E5, 0x3E5 - .equiv FLAG_0x3E6, 0x3E6 - .equiv FLAG_0x3E7, 0x3E7 - .equiv FLAG_0x3E8, 0x3E8 - .equiv FLAG_0x3E9, 0x3E9 - .equiv FLAG_0x3EA, 0x3EA - .equiv FLAG_0x3EB, 0x3EB - .equiv FLAG_0x3EC, 0x3EC - .equiv FLAG_0x3ED, 0x3ED - .equiv FLAG_0x3EE, 0x3EE - .equiv FLAG_0x3EF, 0x3EF - .equiv FLAG_0x3F0, 0x3F0 - .equiv FLAG_0x3F1, 0x3F1 - .equiv FLAG_0x3F2, 0x3F2 - .equiv FLAG_0x3F3, 0x3F3 - .equiv FLAG_0x3F4, 0x3F4 - .equiv FLAG_0x3F5, 0x3F5 - .equiv FLAG_0x3F6, 0x3F6 - .equiv FLAG_0x3F7, 0x3F7 - .equiv FLAG_0x3F8, 0x3F8 - .equiv FLAG_0x3F9, 0x3F9 - .equiv FLAG_0x3FA, 0x3FA - .equiv FLAG_0x3FB, 0x3FB - .equiv FLAG_0x3FC, 0x3FC - .equiv FLAG_0x3FD, 0x3FD - .equiv FLAG_0x3FE, 0x3FE - .equiv FLAG_0x3FF, 0x3FF - .equiv FLAG_0x400, 0x400 - .equiv FLAG_0x401, 0x401 - .equiv FLAG_0x402, 0x402 - .equiv FLAG_0x403, 0x403 - .equiv FLAG_0x404, 0x404 - .equiv FLAG_0x405, 0x405 - .equiv FLAG_0x406, 0x406 - .equiv FLAG_0x407, 0x407 - .equiv FLAG_0x408, 0x408 - .equiv FLAG_0x409, 0x409 - .equiv FLAG_0x40A, 0x40A - .equiv FLAG_0x40B, 0x40B - .equiv FLAG_0x40C, 0x40C - .equiv FLAG_0x40D, 0x40D - .equiv FLAG_0x40E, 0x40E - .equiv FLAG_0x40F, 0x40F - .equiv FLAG_0x410, 0x410 - .equiv FLAG_0x411, 0x411 - .equiv FLAG_0x412, 0x412 - .equiv FLAG_0x413, 0x413 - .equiv FLAG_0x414, 0x414 - .equiv FLAG_0x415, 0x415 - .equiv FLAG_0x416, 0x416 - .equiv FLAG_0x417, 0x417 - .equiv FLAG_0x418, 0x418 - .equiv FLAG_0x419, 0x419 - .equiv FLAG_0x41A, 0x41A - .equiv FLAG_0x41B, 0x41B - .equiv FLAG_0x41C, 0x41C - .equiv FLAG_0x41D, 0x41D - .equiv FLAG_0x41E, 0x41E - .equiv FLAG_0x41F, 0x41F - .equiv FLAG_0x420, 0x420 - .equiv FLAG_0x421, 0x421 - .equiv FLAG_0x422, 0x422 - .equiv FLAG_0x423, 0x423 - .equiv FLAG_0x424, 0x424 - .equiv FLAG_0x425, 0x425 - .equiv FLAG_0x426, 0x426 - .equiv FLAG_0x427, 0x427 - .equiv FLAG_0x428, 0x428 - .equiv FLAG_0x429, 0x429 - .equiv FLAG_0x42A, 0x42A - .equiv FLAG_0x42B, 0x42B - .equiv FLAG_0x42C, 0x42C - .equiv FLAG_0x42D, 0x42D - .equiv FLAG_0x42E, 0x42E - .equiv FLAG_0x42F, 0x42F - .equiv FLAG_0x430, 0x430 - .equiv FLAG_0x431, 0x431 - .equiv FLAG_0x432, 0x432 - .equiv FLAG_0x433, 0x433 - .equiv FLAG_0x434, 0x434 - .equiv FLAG_0x435, 0x435 - .equiv FLAG_0x436, 0x436 - .equiv FLAG_0x437, 0x437 - .equiv FLAG_0x438, 0x438 - .equiv FLAG_0x439, 0x439 - .equiv FLAG_0x43A, 0x43A - .equiv FLAG_0x43B, 0x43B - .equiv FLAG_0x43C, 0x43C - .equiv FLAG_0x43D, 0x43D - .equiv FLAG_0x43E, 0x43E - .equiv FLAG_0x43F, 0x43F - .equiv FLAG_0x440, 0x440 - .equiv FLAG_0x441, 0x441 - .equiv FLAG_0x442, 0x442 - .equiv FLAG_0x443, 0x443 - .equiv FLAG_0x444, 0x444 - .equiv FLAG_0x445, 0x445 - .equiv FLAG_0x446, 0x446 - .equiv FLAG_0x447, 0x447 - .equiv FLAG_0x448, 0x448 - .equiv FLAG_0x449, 0x449 - .equiv FLAG_0x44A, 0x44A - .equiv FLAG_0x44B, 0x44B - .equiv FLAG_0x44C, 0x44C - .equiv FLAG_0x44D, 0x44D - .equiv FLAG_0x44E, 0x44E - .equiv FLAG_0x44F, 0x44F - .equiv FLAG_0x450, 0x450 - .equiv FLAG_0x451, 0x451 - .equiv FLAG_0x452, 0x452 - .equiv FLAG_0x453, 0x453 - .equiv FLAG_0x454, 0x454 - .equiv FLAG_0x455, 0x455 - .equiv FLAG_0x456, 0x456 - .equiv FLAG_0x457, 0x457 - .equiv FLAG_0x458, 0x458 - .equiv FLAG_0x459, 0x459 - .equiv FLAG_0x45A, 0x45A - .equiv FLAG_0x45B, 0x45B - .equiv FLAG_0x45C, 0x45C - .equiv FLAG_0x45D, 0x45D - .equiv FLAG_0x45E, 0x45E - .equiv FLAG_0x45F, 0x45F - .equiv FLAG_0x460, 0x460 - .equiv FLAG_0x461, 0x461 - .equiv FLAG_0x462, 0x462 - .equiv FLAG_0x463, 0x463 - .equiv FLAG_0x464, 0x464 - .equiv FLAG_0x465, 0x465 - .equiv FLAG_0x466, 0x466 - .equiv FLAG_0x467, 0x467 - .equiv FLAG_0x468, 0x468 - .equiv FLAG_0x469, 0x469 - .equiv FLAG_0x46A, 0x46A - .equiv FLAG_0x46B, 0x46B - .equiv FLAG_0x46C, 0x46C - .equiv FLAG_0x46D, 0x46D - .equiv FLAG_0x46E, 0x46E - .equiv FLAG_0x46F, 0x46F - .equiv FLAG_0x470, 0x470 - .equiv FLAG_0x471, 0x471 - .equiv FLAG_0x472, 0x472 - .equiv FLAG_0x473, 0x473 - .equiv FLAG_0x474, 0x474 - .equiv FLAG_0x475, 0x475 - .equiv FLAG_0x476, 0x476 - .equiv FLAG_0x477, 0x477 - .equiv FLAG_0x478, 0x478 - .equiv FLAG_0x479, 0x479 - .equiv FLAG_0x47A, 0x47A - .equiv FLAG_0x47B, 0x47B - .equiv FLAG_0x47C, 0x47C - .equiv FLAG_0x47D, 0x47D - .equiv FLAG_0x47E, 0x47E - .equiv FLAG_0x47F, 0x47F - .equiv FLAG_0x480, 0x480 - .equiv FLAG_0x481, 0x481 - .equiv FLAG_0x482, 0x482 - .equiv FLAG_0x483, 0x483 - .equiv FLAG_0x484, 0x484 - .equiv FLAG_0x485, 0x485 - .equiv FLAG_0x486, 0x486 - .equiv FLAG_0x487, 0x487 - .equiv FLAG_0x488, 0x488 - .equiv FLAG_0x489, 0x489 - .equiv FLAG_0x48A, 0x48A - .equiv FLAG_0x48B, 0x48B - .equiv FLAG_0x48C, 0x48C - .equiv FLAG_0x48D, 0x48D - .equiv FLAG_0x48E, 0x48E - .equiv FLAG_0x48F, 0x48F - .equiv FLAG_0x490, 0x490 - .equiv FLAG_0x491, 0x491 - .equiv FLAG_0x492, 0x492 - .equiv FLAG_0x493, 0x493 - .equiv FLAG_0x494, 0x494 - .equiv FLAG_0x495, 0x495 - .equiv FLAG_0x496, 0x496 - .equiv FLAG_0x497, 0x497 - .equiv FLAG_0x498, 0x498 - .equiv FLAG_0x499, 0x499 - .equiv FLAG_0x49A, 0x49A - .equiv FLAG_0x49B, 0x49B - .equiv FLAG_0x49C, 0x49C - .equiv FLAG_0x49D, 0x49D - .equiv FLAG_0x49E, 0x49E - .equiv FLAG_0x49F, 0x49F - .equiv FLAG_0x4A0, 0x4A0 - .equiv FLAG_0x4A1, 0x4A1 - .equiv FLAG_0x4A2, 0x4A2 - .equiv FLAG_0x4A3, 0x4A3 - .equiv FLAG_0x4A4, 0x4A4 - .equiv FLAG_0x4A5, 0x4A5 - .equiv FLAG_0x4A6, 0x4A6 - .equiv FLAG_0x4A7, 0x4A7 - .equiv FLAG_0x4A8, 0x4A8 - .equiv FLAG_0x4A9, 0x4A9 - .equiv FLAG_0x4AA, 0x4AA - .equiv FLAG_0x4AB, 0x4AB - .equiv FLAG_0x4AC, 0x4AC - .equiv FLAG_0x4AD, 0x4AD - .equiv FLAG_0x4AE, 0x4AE - .equiv FLAG_0x4AF, 0x4AF - .equiv FLAG_0x4B0, 0x4B0 - .equiv FLAG_0x4B1, 0x4B1 - .equiv FLAG_0x4B2, 0x4B2 - .equiv FLAG_0x4B3, 0x4B3 - .equiv FLAG_0x4B4, 0x4B4 - .equiv FLAG_0x4B5, 0x4B5 - .equiv FLAG_0x4B6, 0x4B6 - .equiv FLAG_0x4B7, 0x4B7 - .equiv FLAG_0x4B8, 0x4B8 - .equiv FLAG_0x4B9, 0x4B9 - .equiv FLAG_0x4BA, 0x4BA - .equiv FLAG_0x4BB, 0x4BB - .equiv FLAG_0x4BC, 0x4BC - .equiv FLAG_0x4BD, 0x4BD - .equiv FLAG_0x4BE, 0x4BE - .equiv FLAG_0x4BF, 0x4BF - .equiv FLAG_0x4C0, 0x4C0 - .equiv FLAG_0x4C1, 0x4C1 - .equiv FLAG_0x4C2, 0x4C2 - .equiv FLAG_0x4C3, 0x4C3 - .equiv FLAG_0x4C4, 0x4C4 - .equiv FLAG_0x4C5, 0x4C5 - .equiv FLAG_0x4C6, 0x4C6 - .equiv FLAG_0x4C7, 0x4C7 - .equiv FLAG_0x4C8, 0x4C8 - .equiv FLAG_0x4C9, 0x4C9 - .equiv FLAG_0x4CA, 0x4CA - .equiv FLAG_0x4CB, 0x4CB - .equiv FLAG_0x4CC, 0x4CC - .equiv FLAG_0x4CD, 0x4CD - .equiv FLAG_0x4CE, 0x4CE - .equiv FLAG_0x4CF, 0x4CF - .equiv FLAG_0x4D0, 0x4D0 - .equiv FLAG_0x4D1, 0x4D1 - .equiv FLAG_0x4D2, 0x4D2 - .equiv FLAG_0x4D3, 0x4D3 - .equiv FLAG_0x4D4, 0x4D4 - .equiv FLAG_0x4D5, 0x4D5 - .equiv FLAG_0x4D6, 0x4D6 - .equiv FLAG_0x4D7, 0x4D7 - .equiv FLAG_0x4D8, 0x4D8 - .equiv FLAG_0x4D9, 0x4D9 - .equiv FLAG_0x4DA, 0x4DA - .equiv FLAG_0x4DB, 0x4DB - .equiv FLAG_0x4DC, 0x4DC - .equiv FLAG_0x4DD, 0x4DD - .equiv FLAG_0x4DE, 0x4DE - .equiv FLAG_0x4DF, 0x4DF - .equiv FLAG_0x4E0, 0x4E0 - .equiv FLAG_0x4E1, 0x4E1 - .equiv FLAG_0x4E2, 0x4E2 - .equiv FLAG_0x4E3, 0x4E3 - .equiv FLAG_0x4E4, 0x4E4 - .equiv FLAG_0x4E5, 0x4E5 - .equiv FLAG_0x4E6, 0x4E6 - .equiv FLAG_0x4E7, 0x4E7 - .equiv FLAG_0x4E8, 0x4E8 - .equiv FLAG_0x4E9, 0x4E9 - .equiv FLAG_0x4EA, 0x4EA - .equiv FLAG_0x4EB, 0x4EB - .equiv FLAG_0x4EC, 0x4EC - .equiv FLAG_0x4ED, 0x4ED - .equiv FLAG_0x4EE, 0x4EE - .equiv FLAG_0x4EF, 0x4EF - .equiv FLAG_0x4F0, 0x4F0 - .equiv FLAG_0x4F1, 0x4F1 - .equiv FLAG_0x4F2, 0x4F2 - .equiv FLAG_0x4F3, 0x4F3 - .equiv FLAG_0x4F4, 0x4F4 - .equiv FLAG_0x4F5, 0x4F5 - .equiv FLAG_0x4F6, 0x4F6 - .equiv FLAG_0x4F7, 0x4F7 - .equiv FLAG_0x4F8, 0x4F8 - .equiv FLAG_0x4F9, 0x4F9 - .equiv FLAG_0x4FA, 0x4FA - .equiv FLAG_0x4FB, 0x4FB - .equiv FLAG_0x4FC, 0x4FC - .equiv FLAG_0x4FD, 0x4FD - .equiv FLAG_0x4FE, 0x4FE - .equiv FLAG_0x4FF, 0x4FF - .equiv FLAG_TRAINER_FLAG_START, 0x500 - - .equiv TRAINERS_FLAG_NO, 0x356 - .equiv CODE_FLAGS, (FLAG_TRAINER_FLAG_START + TRAINERS_FLAG_NO + 0xA) @ 0x860 - -@ SYSTEM FLAGS - - .equiv FLAG_SYS_POKEMON_GET, CODE_FLAGS + 0x0 - .equiv FLAG_SYS_POKEDEX_GET, CODE_FLAGS + 0x1 - .equiv FLAG_SYS_POKENAV_GET, CODE_FLAGS + 0x2 - .equiv FLAG_0x863, CODE_FLAGS + 0x3 - .equiv FLAG_SYS_GAME_CLEAR, CODE_FLAGS + 0x4 - .equiv FLAG_SYS_CHAT_USED, CODE_FLAGS + 0x5 - .equiv FLAG_SYS_HIPSTER_MEET, CODE_FLAGS + 0x6 - -@ badges - .equiv FLAG_BADGE01_GET, CODE_FLAGS + 0x7 - .equiv FLAG_BADGE02_GET, CODE_FLAGS + 0x8 - .equiv FLAG_BADGE03_GET, CODE_FLAGS + 0x9 - .equiv FLAG_BADGE04_GET, CODE_FLAGS + 0xA - .equiv FLAG_BADGE05_GET, CODE_FLAGS + 0xB - .equiv FLAG_BADGE06_GET, CODE_FLAGS + 0xC - .equiv FLAG_BADGE07_GET, CODE_FLAGS + 0xD - .equiv FLAG_BADGE08_GET, CODE_FLAGS + 0xE - -@ cities and towns - .equiv FLAG_VISITED_LITTLEROOT_TOWN, CODE_FLAGS + 0xF - .equiv FLAG_VISITED_OLDALE_TOWN, CODE_FLAGS + 0x10 - .equiv FLAG_VISITED_DEWFORD_TOWN, CODE_FLAGS + 0x11 - .equiv FLAG_VISITED_LAVARIDGE_TOWN, CODE_FLAGS + 0x12 - .equiv FLAG_VISITED_FALLARBOR_TOWN, CODE_FLAGS + 0x13 - .equiv FLAG_VISITED_VERDANTURF_TOWN, CODE_FLAGS + 0x14 - .equiv FLAG_VISITED_PACIFIDLOG_TOWN, CODE_FLAGS + 0x15 - .equiv FLAG_VISITED_PETALBURG_CITY, CODE_FLAGS + 0x16 - .equiv FLAG_VISITED_SLATEPORT_CITY, CODE_FLAGS + 0x17 - .equiv FLAG_VISITED_MAUVILLE_CITY, CODE_FLAGS + 0x18 - .equiv FLAG_VISITED_RUSTBORO_CITY, CODE_FLAGS + 0x19 - .equiv FLAG_VISITED_FORTREE_CITY, CODE_FLAGS + 0x1A - .equiv FLAG_VISITED_LILYCOVE_CITY, CODE_FLAGS + 0x1B - .equiv FLAG_VISITED_MOSSDEEP_CITY, CODE_FLAGS + 0x1C - .equiv FLAG_VISITED_SOOTOPOLIS_CITY, CODE_FLAGS + 0x1D - .equiv FLAG_VISITED_EVER_GRANDE_CITY, CODE_FLAGS + 0x1E - - .equiv FLAG_0x87F, CODE_FLAGS + 0x1F - .equiv FLAG_0x880, CODE_FLAGS + 0x20 - .equiv FLAG_0x881, CODE_FLAGS + 0x21 - .equiv FLAG_0x882, CODE_FLAGS + 0x22 - .equiv FLAG_0x883, CODE_FLAGS + 0x23 - .equiv FLAG_0x884, CODE_FLAGS + 0x24 - .equiv FLAG_0x885, CODE_FLAGS + 0x25 - .equiv FLAG_0x886, CODE_FLAGS + 0x26 - .equiv FLAG_0x887, CODE_FLAGS + 0x27 - - .equiv FLAG_SYS_USE_FLASH, CODE_FLAGS + 0x28 - .equiv FLAG_SYS_USE_STRENGTH, CODE_FLAGS + 0x29 - .equiv FLAG_SYS_WEATHER_CTRL, CODE_FLAGS + 0x2A - .equiv FLAG_SYS_CYCLING_ROAD, CODE_FLAGS + 0x2B - .equiv FLAG_SYS_SAFARI_MODE, CODE_FLAGS + 0x2C - .equiv FLAG_SYS_CRUISE_MODE, CODE_FLAGS + 0x2D - - .equiv FLAG_0x88E, CODE_FLAGS + 0x2E - .equiv FLAG_0x88F, CODE_FLAGS + 0x2F - - .equiv FLAG_SYS_TV_HOME, CODE_FLAGS + 0x30 - .equiv FLAG_SYS_TV_WATCH, CODE_FLAGS + 0x31 - .equiv FLAG_SYS_TV_START, CODE_FLAGS + 0x32 - .equiv FLAG_SYS_POPWORD_INPUT, CODE_FLAGS + 0x33 - .equiv FLAG_SYS_MIX_RECORD, CODE_FLAGS + 0x34 - .equiv FLAG_SYS_CLOCK_SET, CODE_FLAGS + 0x35 - .equiv FLAG_SYS_NATIONAL_DEX, CODE_FLAGS + 0x36 - .equiv FLAG_SYS_CAVE_SHIP, CODE_FLAGS + 0x37 - .equiv FLAG_SYS_CAVE_WONDER, CODE_FLAGS + 0x38 - .equiv FLAG_SYS_CAVE_BATTLE, CODE_FLAGS + 0x39 - .equiv FLAG_SYS_SHOAL_TIDE, CODE_FLAGS + 0x3A - .equiv FLAG_SYS_RIBBON_GET, CODE_FLAGS + 0x3B - - .equiv FLAG_0x89C, CODE_FLAGS + 0x3C - .equiv FLAG_0x89D, CODE_FLAGS + 0x3D - .equiv FLAG_0x89E, CODE_FLAGS + 0x3E - .equiv FLAG_0x89F, CODE_FLAGS + 0x3F - .equiv FLAG_0x8A0, CODE_FLAGS + 0x40 - .equiv FLAG_0x8A1, CODE_FLAGS + 0x41 - .equiv FLAG_0x8A2, CODE_FLAGS + 0x42 - .equiv FLAG_0x8A3, CODE_FLAGS + 0x43 - .equiv FLAG_0x8A4, CODE_FLAGS + 0x44 - .equiv FLAG_0x8A5, CODE_FLAGS + 0x45 - .equiv FLAG_0x8A6, CODE_FLAGS + 0x46 - .equiv FLAG_0x8A7, CODE_FLAGS + 0x47 - .equiv FLAG_UNLOCK_BATTLE_FRONTIER, CODE_FLAGS + 0x48 - .equiv FLAG_UNLOCK_SOUTHERN_ISLAND, CODE_FLAGS + 0x49 - .equiv FLAG_0x8AA, CODE_FLAGS + 0x4A - - .equiv FLAG_SYS_PC_LANETTE, CODE_FLAGS + 0x4B - .equiv FLAG_SYS_MYSTERY_EVENT_ENABLE, CODE_FLAGS + 0x4C - .equiv FLAG_SYS_ENC_UP_ITEM, CODE_FLAGS + 0x4D - .equiv FLAG_SYS_ENC_DOWN_ITEM, CODE_FLAGS + 0x4E - - .equiv FLAG_SYS_BRAILLE_DIG, CODE_FLAGS + 0x4F - .equiv FLAG_SYS_BRAILLE_STRENGTH, CODE_FLAGS + 0x50 - .equiv FLAG_SYS_BRAILLE_WAIT, CODE_FLAGS + 0x51 - .equiv FLAG_SYS_BRAILLE_FLY, CODE_FLAGS + 0x52 - - .equiv FLAG_SYS_HAS_EON_TICKET, CODE_FLAGS + 0x53 - - .equiv FLAG_SYS_POKEMON_LEAGUE_FLY, CODE_FLAGS + 0x54 - - .equiv FLAG_0x8B5, CODE_FLAGS + 0x55 - .equiv FLAG_0x8B6, CODE_FLAGS + 0x56 - .equiv FLAG_0x8B7, CODE_FLAGS + 0x57 - .equiv FLAG_0x8B8, CODE_FLAGS + 0x58 - .equiv FLAG_0x8B9, CODE_FLAGS + 0x59 - .equiv FLAG_0x8BA, CODE_FLAGS + 0x5A - .equiv FLAG_0x8BB, CODE_FLAGS + 0x5B - .equiv FLAG_0x8BC, CODE_FLAGS + 0x5C - - .equiv FLAG_SYS_TV_LATI, CODE_FLAGS + 0x5D - - .equiv FLAG_0x8BE, CODE_FLAGS + 0x5E - - .equiv FLAG_SYS_SHOAL_ITEM, CODE_FLAGS + 0x5F - .equiv FLAG_SYS_B_DASH, CODE_FLAGS + 0x60 @ got Running Shoes - .equiv FLAG_SYS_CTRL_OBJ_DELETE, CODE_FLAGS + 0x61 - .equiv FLAG_SYS_RESET_RTC_ENABLE, CODE_FLAGS + 0x62 - - .equiv FLAG_0x8C3, CODE_FLAGS + 0x63 - - .equiv FLAG_SYS_TOWER_SILVER, CODE_FLAGS + 0x64 - .equiv FLAG_SYS_TOWER_GOLD, CODE_FLAGS + 0x65 - .equiv FLAG_SYS_DOME_SILVER, CODE_FLAGS + 0x66 - .equiv FLAG_SYS_DOME_GOLD, CODE_FLAGS + 0x67 - .equiv FLAG_SYS_PALACE_SILVER, CODE_FLAGS + 0x68 - .equiv FLAG_SYS_PALACE_GOLD, CODE_FLAGS + 0x69 - .equiv FLAG_SYS_ARENA_SILVER, CODE_FLAGS + 0x6A - .equiv FLAG_SYS_ARENA_GOLD, CODE_FLAGS + 0x6B - .equiv FLAG_SYS_FACTORY_SILVER, CODE_FLAGS + 0x6C - .equiv FLAG_SYS_FACTORY_GOLD, CODE_FLAGS + 0x6D - .equiv FLAG_SYS_PIKE_SILVER, CODE_FLAGS + 0x6E - .equiv FLAG_SYS_PIKE_GOLD, CODE_FLAGS + 0x6F - .equiv FLAG_SYS_PYRAMID_SILVER, CODE_FLAGS + 0x70 - .equiv FLAG_SYS_PYRAMID_GOLD, CODE_FLAGS + 0x71 - .equiv FLAG_SYS_FRONTIER_PASS, CODE_FLAGS + 0x72 - - .equiv FLAG_0x8D3, CODE_FLAGS + 0x73 - .equiv FLAG_0x8D4, CODE_FLAGS + 0x74 - .equiv FLAG_0x8D5, CODE_FLAGS + 0x75 - .equiv FLAG_0x8D6, CODE_FLAGS + 0x76 - - .equiv FLAG_SYS_STORAGE_UNKNOWN_FLAG, CODE_FLAGS + 0x77 - - .equiv FLAG_0x8D8, CODE_FLAGS + 0x78 - .equiv FLAG_0x8D9, CODE_FLAGS + 0x79 - .equiv FLAG_0x8DA, CODE_FLAGS + 0x7A - - .equiv FLAG_SYS_MYSTERY_GIFT_ENABLE, CODE_FLAGS + 0x7B - - .equiv FLAG_0x8DC, CODE_FLAGS + 0x7C - .equiv FLAG_0x8DD, CODE_FLAGS + 0x7D - .equiv FLAG_0x8DE, CODE_FLAGS + 0x7E - .equiv FLAG_0x8DF, CODE_FLAGS + 0x7F - .equiv FLAG_0x8E0, CODE_FLAGS + 0x80 - .equiv FLAG_0x8E1, CODE_FLAGS + 0x81 - .equiv FLAG_0x8E2, CODE_FLAGS + 0x82 - .equiv FLAG_0x8E3, CODE_FLAGS + 0x83 - .equiv FLAG_0x8E4, CODE_FLAGS + 0x84 - .equiv FLAG_0x8E5, CODE_FLAGS + 0x85 - .equiv FLAG_0x8E6, CODE_FLAGS + 0x86 - .equiv FLAG_0x8E7, CODE_FLAGS + 0x87 - .equiv FLAG_0x8E8, CODE_FLAGS + 0x88 - .equiv FLAG_0x8E9, CODE_FLAGS + 0x89 - .equiv FLAG_0x8EA, CODE_FLAGS + 0x8A - .equiv FLAG_0x8EB, CODE_FLAGS + 0x8B - .equiv FLAG_0x8EC, CODE_FLAGS + 0x8C - .equiv FLAG_0x8ED, CODE_FLAGS + 0x8D - .equiv FLAG_0x8EE, CODE_FLAGS + 0x8E - .equiv FLAG_0x8EF, CODE_FLAGS + 0x8F - .equiv FLAG_0x8F0, CODE_FLAGS + 0x90 - .equiv FLAG_0x8F1, CODE_FLAGS + 0x91 - .equiv FLAG_0x8F2, CODE_FLAGS + 0x92 - .equiv FLAG_0x8F3, CODE_FLAGS + 0x93 - .equiv FLAG_0x8F4, CODE_FLAGS + 0x94 - .equiv FLAG_0x8F5, CODE_FLAGS + 0x95 - .equiv FLAG_0x8F6, CODE_FLAGS + 0x96 - .equiv FLAG_0x8F7, CODE_FLAGS + 0x97 - .equiv FLAG_0x8F8, CODE_FLAGS + 0x98 - .equiv FLAG_0x8F9, CODE_FLAGS + 0x99 - .equiv FLAG_0x8FA, CODE_FLAGS + 0x9A - .equiv FLAG_0x8FB, CODE_FLAGS + 0x9B - .equiv FLAG_0x8FC, CODE_FLAGS + 0x9C - .equiv FLAG_0x8FD, CODE_FLAGS + 0x9D - .equiv FLAG_0x8FE, CODE_FLAGS + 0x9E - .equiv FLAG_0x8FF, CODE_FLAGS + 0x9F - .equiv FLAG_0x900, CODE_FLAGS + 0xA0 - .equiv FLAG_0x901, CODE_FLAGS + 0xA1 - .equiv FLAG_0x902, CODE_FLAGS + 0xA2 - .equiv FLAG_0x903, CODE_FLAGS + 0xA3 - .equiv FLAG_0x904, CODE_FLAGS + 0xA4 - .equiv FLAG_0x905, CODE_FLAGS + 0xA5 - .equiv FLAG_0x906, CODE_FLAGS + 0xA6 - .equiv FLAG_0x907, CODE_FLAGS + 0xA7 - .equiv FLAG_0x908, CODE_FLAGS + 0xA8 - .equiv FLAG_0x909, CODE_FLAGS + 0xA9 - .equiv FLAG_0x90A, CODE_FLAGS + 0xAA - .equiv FLAG_0x90B, CODE_FLAGS + 0xAB - .equiv FLAG_0x90C, CODE_FLAGS + 0xAC - .equiv FLAG_0x90D, CODE_FLAGS + 0xAD - .equiv FLAG_0x90E, CODE_FLAGS + 0xAE - .equiv FLAG_0x90F, CODE_FLAGS + 0xAF - .equiv FLAG_0x910, CODE_FLAGS + 0xB0 - .equiv FLAG_0x911, CODE_FLAGS + 0xB1 - .equiv FLAG_0x912, CODE_FLAGS + 0xB2 - .equiv FLAG_0x913, CODE_FLAGS + 0xB3 - .equiv FLAG_0x914, CODE_FLAGS + 0xB4 - .equiv FLAG_0x915, CODE_FLAGS + 0xB5 - .equiv FLAG_0x916, CODE_FLAGS + 0xB6 - .equiv FLAG_0x917, CODE_FLAGS + 0xB7 - .equiv FLAG_0x918, CODE_FLAGS + 0xB8 - .equiv FLAG_0x919, CODE_FLAGS + 0xB9 - .equiv FLAG_0x91A, CODE_FLAGS + 0xBA - .equiv FLAG_0x91B, CODE_FLAGS + 0xBB - .equiv FLAG_0x91C, CODE_FLAGS + 0xBC - .equiv FLAG_0x91D, CODE_FLAGS + 0xBD - .equiv FLAG_0x91E, CODE_FLAGS + 0xBE - .equiv FLAG_0x91F, CODE_FLAGS + 0xBF - .equiv FLAG_0x920, CODE_FLAGS + 0xC0 - .equiv FLAG_0x921, CODE_FLAGS + 0xC1 - .equiv FLAG_0x922, CODE_FLAGS + 0xC2 - .equiv FLAG_0x923, CODE_FLAGS + 0xC3 - .equiv FLAG_0x924, CODE_FLAGS + 0xC4 - .equiv FLAG_0x925, CODE_FLAGS + 0xC5 - .equiv FLAG_0x926, CODE_FLAGS + 0xC6 - .equiv FLAG_0x927, CODE_FLAGS + 0xC7 - .equiv FLAG_0x928, CODE_FLAGS + 0xC8 - .equiv FLAG_0x929, CODE_FLAGS + 0xC9 - .equiv FLAG_0x92A, CODE_FLAGS + 0xCA - .equiv FLAG_0x92B, CODE_FLAGS + 0xCB - .equiv FLAG_0x92C, CODE_FLAGS + 0xCC - .equiv FLAG_0x92D, CODE_FLAGS + 0xCD - .equiv FLAG_0x92E, CODE_FLAGS + 0xCE - .equiv FLAG_0x92F, CODE_FLAGS + 0xCF - .equiv FLAG_0x930, CODE_FLAGS + 0xD0 - .equiv FLAG_0x931, CODE_FLAGS + 0xD1 - .equiv FLAG_0x932, CODE_FLAGS + 0xD2 - .equiv FLAG_0x933, CODE_FLAGS + 0xD3 - .equiv FLAG_0x934, CODE_FLAGS + 0xD4 - .equiv FLAG_0x935, CODE_FLAGS + 0xD5 - .equiv FLAG_0x936, CODE_FLAGS + 0xD6 - .equiv FLAG_0x937, CODE_FLAGS + 0xD7 - .equiv FLAG_0x938, CODE_FLAGS + 0xD8 - .equiv FLAG_0x939, CODE_FLAGS + 0xD9 - .equiv FLAG_0x93A, CODE_FLAGS + 0xDA - .equiv FLAG_0x93B, CODE_FLAGS + 0xDB - .equiv FLAG_0x93C, CODE_FLAGS + 0xDC - .equiv FLAG_0x93D, CODE_FLAGS + 0xDD - .equiv FLAG_0x93E, CODE_FLAGS + 0xDE - .equiv FLAG_0x93F, CODE_FLAGS + 0xDF - .equiv FLAG_0x940, CODE_FLAGS + 0xE0 - .equiv FLAG_0x941, CODE_FLAGS + 0xE1 - .equiv FLAG_0x942, CODE_FLAGS + 0xE2 - .equiv FLAG_0x943, CODE_FLAGS + 0xE3 - .equiv FLAG_0x944, CODE_FLAGS + 0xE4 - .equiv FLAG_0x945, CODE_FLAGS + 0xE5 - .equiv FLAG_0x946, CODE_FLAGS + 0xE6 - .equiv FLAG_0x947, CODE_FLAGS + 0xE7 - .equiv FLAG_0x948, CODE_FLAGS + 0xE8 - .equiv FLAG_0x949, CODE_FLAGS + 0xE9 - .equiv FLAG_0x94A, CODE_FLAGS + 0xEA - .equiv FLAG_0x94B, CODE_FLAGS + 0xEB - .equiv FLAG_0x94C, CODE_FLAGS + 0xEC - .equiv FLAG_0x94D, CODE_FLAGS + 0xED - .equiv FLAG_0x94E, CODE_FLAGS + 0xEE - .equiv FLAG_0x94F, CODE_FLAGS + 0xEF - .equiv FLAG_0x950, CODE_FLAGS + 0xF0 - .equiv FLAG_0x951, CODE_FLAGS + 0xF1 - .equiv FLAG_0x952, CODE_FLAGS + 0xF2 - .equiv FLAG_0x953, CODE_FLAGS + 0xF3 - .equiv FLAG_0x954, CODE_FLAGS + 0xF4 - .equiv FLAG_0x955, CODE_FLAGS + 0xF5 - .equiv FLAG_0x956, CODE_FLAGS + 0xF6 - .equiv FLAG_0x957, CODE_FLAGS + 0xF7 - .equiv FLAG_0x958, CODE_FLAGS + 0xF8 - .equiv FLAG_0x959, CODE_FLAGS + 0xF9 - .equiv FLAG_0x95A, CODE_FLAGS + 0xFA - .equiv FLAG_0x95B, CODE_FLAGS + 0xFB - .equiv FLAG_0x95C, CODE_FLAGS + 0xFC - .equiv FLAG_0x95D, CODE_FLAGS + 0xFD - .equiv FLAG_0x95E, CODE_FLAGS + 0xFE - .equiv FLAG_0x95F, CODE_FLAGS + 0xFF - -@ SPECIAL FLAGS (unknown purpose) - - .equiv FLAG_SPECIAL_FLAG_0x4000, 0x4000 - .equiv FLAG_SPECIAL_FLAG_0x4001, 0x4001 - .equiv FLAG_SPECIAL_FLAG_0x4002, 0x4002 - .equiv FLAG_SPECIAL_FLAG_0x4003, 0x4003 - .equiv FLAG_SPECIAL_FLAG_0x4004, 0x4004 diff --git a/constants/item_constants.inc b/constants/item_constants.inc deleted file mode 100644 index 934ebd798..000000000 --- a/constants/item_constants.inc +++ /dev/null @@ -1,310 +0,0 @@ - .set ITEM_NONE, 0x000 - .set ITEM_MASTER_BALL, 0x001 - .set ITEM_ULTRA_BALL, 0x002 - .set ITEM_GREAT_BALL, 0x003 - .set ITEM_POKE_BALL, 0x004 - .set ITEM_SAFARI_BALL, 0x005 - .set ITEM_NET_BALL, 0x006 - .set ITEM_DIVE_BALL, 0x007 - .set ITEM_NEST_BALL, 0x008 - .set ITEM_REPEAT_BALL, 0x009 - .set ITEM_TIMER_BALL, 0x00a - .set ITEM_LUXURY_BALL, 0x00b - .set ITEM_PREMIER_BALL, 0x00c - .set ITEM_POTION, 0x00d - .set ITEM_ANTIDOTE, 0x00e - .set ITEM_BURN_HEAL, 0x00f - .set ITEM_ICE_HEAL, 0x010 - .set ITEM_AWAKENING, 0x011 - .set ITEM_PARALYZE_HEAL, 0x012 - .set ITEM_FULL_RESTORE, 0x013 - .set ITEM_MAX_POTION, 0x014 - .set ITEM_HYPER_POTION, 0x015 - .set ITEM_SUPER_POTION, 0x016 - .set ITEM_FULL_HEAL, 0x017 - .set ITEM_REVIVE, 0x018 - .set ITEM_MAX_REVIVE, 0x019 - .set ITEM_FRESH_WATER, 0x01a - .set ITEM_SODA_POP, 0x01b - .set ITEM_LEMONADE, 0x01c - .set ITEM_MOOMOO_MILK, 0x01d - .set ITEM_ENERGY_POWDER, 0x01e - .set ITEM_ENERGY_ROOT, 0x01f - .set ITEM_HEAL_POWDER, 0x020 - .set ITEM_REVIVAL_HERB, 0x021 - .set ITEM_ETHER, 0x022 - .set ITEM_MAX_ETHER, 0x023 - .set ITEM_ELIXIR, 0x024 - .set ITEM_MAX_ELIXIR, 0x025 - .set ITEM_LAVA_COOKIE, 0x026 - .set ITEM_BLUE_FLUTE, 0x027 - .set ITEM_YELLOW_FLUTE, 0x028 - .set ITEM_RED_FLUTE, 0x029 - .set ITEM_BLACK_FLUTE, 0x02a - .set ITEM_WHITE_FLUTE, 0x02b - .set ITEM_BERRY_JUICE, 0x02c - .set ITEM_SACRED_ASH, 0x02d - .set ITEM_SHOAL_SALT, 0x02e - .set ITEM_SHOAL_SHELL, 0x02f - .set ITEM_RED_SHARD, 0x030 - .set ITEM_BLUE_SHARD, 0x031 - .set ITEM_YELLOW_SHARD, 0x032 - .set ITEM_GREEN_SHARD, 0x033 - .set ITEM_HP_UP, 0x03f - .set ITEM_PROTEIN, 0x040 - .set ITEM_IRON, 0x041 - .set ITEM_CARBOS, 0x042 - .set ITEM_CALCIUM, 0x043 - .set ITEM_RARE_CANDY, 0x044 - .set ITEM_PP_UP, 0x045 - .set ITEM_ZINC, 0x046 - .set ITEM_PP_MAX, 0x047 - .set ITEM_GUARD_SPEC, 0x049 - .set ITEM_DIRE_HIT, 0x04a - .set ITEM_X_ATTACK, 0x04b - .set ITEM_X_DEFEND, 0x04c - .set ITEM_X_SPEED, 0x04d - .set ITEM_X_ACCURACY, 0x04e - .set ITEM_X_SPECIAL, 0x04f - .set ITEM_POKE_DOLL, 0x050 - .set ITEM_FLUFFY_TAIL, 0x051 - .set ITEM_SUPER_REPEL, 0x053 - .set ITEM_MAX_REPEL, 0x054 - .set ITEM_ESCAPE_ROPE, 0x055 - .set ITEM_REPEL, 0x056 - .set ITEM_SUN_STONE, 0x05d - .set ITEM_MOON_STONE, 0x05e - .set ITEM_FIRE_STONE, 0x05f - .set ITEM_THUNDER_STONE, 0x060 - .set ITEM_WATER_STONE, 0x061 - .set ITEM_LEAF_STONE, 0x062 - .set ITEM_TINY_MUSHROOM, 0x067 - .set ITEM_BIG_MUSHROOM, 0x068 - .set ITEM_PEARL, 0x06a - .set ITEM_BIG_PEARL, 0x06b - .set ITEM_STARDUST, 0x06c - .set ITEM_STAR_PIECE, 0x06d - .set ITEM_NUGGET, 0x06e - .set ITEM_HEART_SCALE, 0x06f - .set ITEM_ORANGE_MAIL, 0x079 - .set ITEM_HARBOR_MAIL, 0x07a - .set ITEM_GLITTER_MAIL, 0x07b - .set ITEM_MECH_MAIL, 0x07c - .set ITEM_WOOD_MAIL, 0x07d - .set ITEM_WAVE_MAIL, 0x07e - .set ITEM_BEAD_MAIL, 0x07f - .set ITEM_SHADOW_MAIL, 0x080 - .set ITEM_TROPIC_MAIL, 0x081 - .set ITEM_DREAM_MAIL, 0x082 - .set ITEM_FAB_MAIL, 0x083 - .set ITEM_RETRO_MAIL, 0x084 - .set ITEM_CHERI_BERRY, 0x085 - .set ITEM_CHESTO_BERRY, 0x086 - .set ITEM_PECHA_BERRY, 0x087 - .set ITEM_RAWST_BERRY, 0x088 - .set ITEM_ASPEAR_BERRY, 0x089 - .set ITEM_LEPPA_BERRY, 0x08a - .set ITEM_ORAN_BERRY, 0x08b - .set ITEM_PERSIM_BERRY, 0x08c - .set ITEM_LUM_BERRY, 0x08d - .set ITEM_SITRUS_BERRY, 0x08e - .set ITEM_FIGY_BERRY, 0x08f - .set ITEM_WIKI_BERRY, 0x090 - .set ITEM_MAGO_BERRY, 0x091 - .set ITEM_AGUAV_BERRY, 0x092 - .set ITEM_IAPAPA_BERRY, 0x093 - .set ITEM_RAZZ_BERRY, 0x094 - .set ITEM_BLUK_BERRY, 0x095 - .set ITEM_NANAB_BERRY, 0x096 - .set ITEM_WEPEAR_BERRY, 0x097 - .set ITEM_PINAP_BERRY, 0x098 - .set ITEM_POMEG_BERRY, 0x099 - .set ITEM_KELPSY_BERRY, 0x09a - .set ITEM_QUALOT_BERRY, 0x09b - .set ITEM_HONDEW_BERRY, 0x09c - .set ITEM_GREPA_BERRY, 0x09d - .set ITEM_TAMATO_BERRY, 0x09e - .set ITEM_CORNN_BERRY, 0x09f - .set ITEM_MAGOST_BERRY, 0x0a0 - .set ITEM_RABUTA_BERRY, 0x0a1 - .set ITEM_NOMEL_BERRY, 0x0a2 - .set ITEM_SPELON_BERRY, 0x0a3 - .set ITEM_PAMTRE_BERRY, 0x0a4 - .set ITEM_WATMEL_BERRY, 0x0a5 - .set ITEM_DURIN_BERRY, 0x0a6 - .set ITEM_BELUE_BERRY, 0x0a7 - .set ITEM_LIECHI_BERRY, 0x0a8 - .set ITEM_GANLON_BERRY, 0x0a9 - .set ITEM_SALAC_BERRY, 0x0aa - .set ITEM_PETAYA_BERRY, 0x0ab - .set ITEM_APICOT_BERRY, 0x0ac - .set ITEM_LANSAT_BERRY, 0x0ad - .set ITEM_STARF_BERRY, 0x0ae - .set ITEM_ENIGMA_BERRY, 0x0af - .set ITEM_BRIGHT_POWDER, 0x0b3 - .set ITEM_WHITE_HERB, 0x0b4 - .set ITEM_MACHO_BRACE, 0x0b5 - .set ITEM_EXP_SHARE, 0x0b6 - .set ITEM_QUICK_CLAW, 0x0b7 - .set ITEM_SOOTHE_BELL, 0x0b8 - .set ITEM_MENTAL_HERB, 0x0b9 - .set ITEM_CHOICE_BAND, 0x0ba - .set ITEM_KINGS_ROCK, 0x0bb - .set ITEM_SILVER_POWDER, 0x0bc - .set ITEM_AMULET_COIN, 0x0bd - .set ITEM_CLEANSE_TAG, 0x0be - .set ITEM_SOUL_DEW, 0x0bf - .set ITEM_DEEP_SEA_TOOTH, 0x0c0 - .set ITEM_DEEP_SEA_SCALE, 0x0c1 - .set ITEM_SMOKE_BALL, 0x0c2 - .set ITEM_EVERSTONE, 0x0c3 - .set ITEM_FOCUS_BAND, 0x0c4 - .set ITEM_LUCKY_EGG, 0x0c5 - .set ITEM_SCOPE_LENS, 0x0c6 - .set ITEM_METAL_COAT, 0x0c7 - .set ITEM_LEFTOVERS, 0x0c8 - .set ITEM_DRAGON_SCALE, 0x0c9 - .set ITEM_LIGHT_BALL, 0x0ca - .set ITEM_SOFT_SAND, 0x0cb - .set ITEM_HARD_STONE, 0x0cc - .set ITEM_MIRACLE_SEED, 0x0cd - .set ITEM_BLACK_GLASSES, 0x0ce - .set ITEM_BLACK_BELT, 0x0cf - .set ITEM_MAGNET, 0x0d0 - .set ITEM_MYSTIC_WATER, 0x0d1 - .set ITEM_SHARP_BEAK, 0x0d2 - .set ITEM_POISON_BARB, 0x0d3 - .set ITEM_NEVER_MELT_ICE, 0x0d4 - .set ITEM_SPELL_TAG, 0x0d5 - .set ITEM_TWISTED_SPOON, 0x0d6 - .set ITEM_CHARCOAL, 0x0d7 - .set ITEM_DRAGON_FANG, 0x0d8 - .set ITEM_SILK_SCARF, 0x0d9 - .set ITEM_UP_GRADE, 0x0da - .set ITEM_SHELL_BELL, 0x0db - .set ITEM_SEA_INCENSE, 0x0dc - .set ITEM_LAX_INCENSE, 0x0dd - .set ITEM_LUCKY_PUNCH, 0x0de - .set ITEM_METAL_POWDER, 0x0df - .set ITEM_THICK_CLUB, 0x0e0 - .set ITEM_STICK, 0x0e1 - .set ITEM_RED_SCARF, 0x0fe - .set ITEM_BLUE_SCARF, 0x0ff - .set ITEM_PINK_SCARF, 0x100 - .set ITEM_GREEN_SCARF, 0x101 - .set ITEM_YELLOW_SCARF, 0x102 - .set ITEM_MACH_BIKE, 0x103 - .set ITEM_COIN_CASE, 0x104 - .set ITEM_ITEMFINDER, 0x105 - .set ITEM_OLD_ROD, 0x106 - .set ITEM_GOOD_ROD, 0x107 - .set ITEM_SUPER_ROD, 0x108 - .set ITEM_SS_TICKET, 0x109 - .set ITEM_CONTEST_PASS, 0x10a - .set ITEM_WAILMER_PAIL, 0x10c - .set ITEM_DEVON_GOODS, 0x10d - .set ITEM_SOOT_SACK, 0x10e - .set ITEM_BASEMENT_KEY, 0x10f - .set ITEM_ACRO_BIKE, 0x110 - .set ITEM_POKEBLOCK_CASE, 0x111 - .set ITEM_LETTER, 0x112 - .set ITEM_EON_TICKET, 0x113 - .set ITEM_RED_ORB, 0x114 - .set ITEM_BLUE_ORB, 0x115 - .set ITEM_SCANNER, 0x116 - .set ITEM_GO_GOGGLES, 0x117 - .set ITEM_METEORITE, 0x118 - .set ITEM_ROOM_1_KEY, 0x119 - .set ITEM_ROOM_2_KEY, 0x11a - .set ITEM_ROOM_4_KEY, 0x11b - .set ITEM_ROOM_6_KEY, 0x11c - .set ITEM_STORAGE_KEY, 0x11d - .set ITEM_ROOT_FOSSIL, 0x11e - .set ITEM_CLAW_FOSSIL, 0x11f - .set ITEM_DEVON_SCOPE, 0x120 - .set ITEM_TM01, 0x121 - .set ITEM_TM02, 0x122 - .set ITEM_TM03, 0x123 - .set ITEM_TM04, 0x124 - .set ITEM_TM05, 0x125 - .set ITEM_TM06, 0x126 - .set ITEM_TM07, 0x127 - .set ITEM_TM08, 0x128 - .set ITEM_TM09, 0x129 - .set ITEM_TM10, 0x12a - .set ITEM_TM11, 0x12b - .set ITEM_TM12, 0x12c - .set ITEM_TM13, 0x12d - .set ITEM_TM14, 0x12e - .set ITEM_TM15, 0x12f - .set ITEM_TM16, 0x130 - .set ITEM_TM17, 0x131 - .set ITEM_TM18, 0x132 - .set ITEM_TM19, 0x133 - .set ITEM_TM20, 0x134 - .set ITEM_TM21, 0x135 - .set ITEM_TM22, 0x136 - .set ITEM_TM23, 0x137 - .set ITEM_TM24, 0x138 - .set ITEM_TM25, 0x139 - .set ITEM_TM26, 0x13a - .set ITEM_TM27, 0x13b - .set ITEM_TM28, 0x13c - .set ITEM_TM29, 0x13d - .set ITEM_TM30, 0x13e - .set ITEM_TM31, 0x13f - .set ITEM_TM32, 0x140 - .set ITEM_TM33, 0x141 - .set ITEM_TM34, 0x142 - .set ITEM_TM35, 0x143 - .set ITEM_TM36, 0x144 - .set ITEM_TM37, 0x145 - .set ITEM_TM38, 0x146 - .set ITEM_TM39, 0x147 - .set ITEM_TM40, 0x148 - .set ITEM_TM41, 0x149 - .set ITEM_TM42, 0x14a - .set ITEM_TM43, 0x14b - .set ITEM_TM44, 0x14c - .set ITEM_TM45, 0x14d - .set ITEM_TM46, 0x14e - .set ITEM_TM47, 0x14f - .set ITEM_TM48, 0x150 - .set ITEM_TM49, 0x151 - .set ITEM_TM50, 0x152 - .set ITEM_HM01, 0x153 - .set ITEM_HM02, 0x154 - .set ITEM_HM03, 0x155 - .set ITEM_HM04, 0x156 - .set ITEM_HM05, 0x157 - .set ITEM_HM06, 0x158 - .set ITEM_HM07, 0x159 - .set ITEM_HM08, 0x15a - .set ITEM_OAKS_PARCEL, 0x15d - .set ITEM_POKE_FLUTE, 0x15e - .set ITEM_SECRET_KEY, 0x15f - .set ITEM_BIKE_VOUCHER, 0x160 - .set ITEM_GOLD_TEETH, 0x161 - .set ITEM_OLD_AMBER, 0x162 - .set ITEM_CARD_KEY, 0x163 - .set ITEM_LIFT_KEY, 0x164 - .set ITEM_HELIX_FOSSIL, 0x165 - .set ITEM_DOME_FOSSIL, 0x166 - .set ITEM_SILPH_SCOPE, 0x167 - .set ITEM_BICYCLE, 0x168 - .set ITEM_TOWN_MAP, 0x169 - .set ITEM_VS_SEEKER, 0x16a - .set ITEM_FAME_CHECKER, 0x16b - .set ITEM_TM_CASE, 0x16c - .set ITEM_BERRY_POUCH, 0x16d - .set ITEM_TEACHY_TV, 0x16e - .set ITEM_TRI_PASS, 0x16f - .set ITEM_RAINBOW_PASS, 0x170 - .set ITEM_TEA, 0x171 - .set ITEM_MYSTIC_TICKET, 0x172 - .set ITEM_AURORA_TICKET, 0x173 - .set ITEM_POWDER_JAR, 0x174 - .set ITEM_RUBY, 0x175 - .set ITEM_SAPPHIRE, 0x176 - .set ITEM_MAGMA_EMBLEM, 0x177 - .set ITEM_OLD_SEA_MAP, 0x178 diff --git a/constants/map_constants.inc b/constants/map_constants.inc index eabfe6e69..a061d2501 100644 --- a/constants/map_constants.inc +++ b/constants/map_constants.inc @@ -1,3 +1,4 @@ +@ TODO: these need to match the names in include/constants/maps.h .set cur_map_group, -1 new_map_group diff --git a/constants/map_object_constants.inc b/constants/map_object_constants.inc deleted file mode 100644 index 50b171d9c..000000000 --- a/constants/map_object_constants.inc +++ /dev/null @@ -1,258 +0,0 @@ - .set MAP_OBJ_GFX_BRENDAN_NORMAL, 0 - .set MAP_OBJ_GFX_BRENDAN_MACH_BIKE, 1 - .set MAP_OBJ_GFX_BRENDAN_SURFING, 2 - .set MAP_OBJ_GFX_BRENDAN_FIELD_MOVE, 3 - .set MAP_OBJ_GFX_QUINTY_PLUMP, 4 - .set MAP_OBJ_GFX_LITTLE_BOY_1, 5 - .set MAP_OBJ_GFX_LITTLE_GIRL_1, 6 - .set MAP_OBJ_GFX_BOY_1, 7 - .set MAP_OBJ_GFX_GIRL_1, 8 - .set MAP_OBJ_GFX_BOY_2, 9 - .set MAP_OBJ_GFX_GIRL_2, 10 - .set MAP_OBJ_GFX_LITTLE_BOY_2, 11 - .set MAP_OBJ_GFX_LITTLE_GIRL_2, 12 - .set MAP_OBJ_GFX_BOY_3, 13 - .set MAP_OBJ_GFX_GIRL_3, 14 - .set MAP_OBJ_GFX_BOY_4, 15 - .set MAP_OBJ_GFX_WOMAN_1, 16 - .set MAP_OBJ_GFX_FAT_MAN, 17 - .set MAP_OBJ_GFX_WOMAN_2, 18 - .set MAP_OBJ_GFX_MAN_1, 19 - .set MAP_OBJ_GFX_WOMAN_3, 20 - .set MAP_OBJ_GFX_OLD_MAN_1, 21 - .set MAP_OBJ_GFX_OLD_WOMAN_1, 22 - .set MAP_OBJ_GFX_MAN_2, 23 - .set MAP_OBJ_GFX_WOMAN_4, 24 - .set MAP_OBJ_GFX_MAN_3, 25 - .set MAP_OBJ_GFX_WOMAN_5, 26 - .set MAP_OBJ_GFX_COOK, 27 - .set MAP_OBJ_GFX_WOMAN_6, 28 - .set MAP_OBJ_GFX_OLD_MAN_2, 29 - .set MAP_OBJ_GFX_OLD_WOMAN_2, 30 - .set MAP_OBJ_GFX_CAMPER, 31 - .set MAP_OBJ_GFX_PICNICKER, 32 - .set MAP_OBJ_GFX_MAN_4, 33 - .set MAP_OBJ_GFX_WOMAN_7, 34 - .set MAP_OBJ_GFX_YOUNGSTER, 35 - .set MAP_OBJ_GFX_BUG_CATCHER, 36 - .set MAP_OBJ_GFX_PSYCHIC_M, 37 - .set MAP_OBJ_GFX_SCHOOL_KID_M, 38 - .set MAP_OBJ_GFX_MANIAC, 39 - .set MAP_OBJ_GFX_HEX_MANIAC, 40 - .set MAP_OBJ_GFX_RAYQUAZA_1, 41 - .set MAP_OBJ_GFX_SWIMMER_M, 42 - .set MAP_OBJ_GFX_SWIMMER_F, 43 - .set MAP_OBJ_GFX_BLACK_BELT, 44 - .set MAP_OBJ_GFX_BEAUTY, 45 - .set MAP_OBJ_GFX_SCIENTIST_1, 46 - .set MAP_OBJ_GFX_LASS, 47 - .set MAP_OBJ_GFX_GENTLEMAN, 48 - .set MAP_OBJ_GFX_SAILOR, 49 - .set MAP_OBJ_GFX_FISHERMAN, 50 - .set MAP_OBJ_GFX_RUNNING_TRIATHLETE_M, 51 - .set MAP_OBJ_GFX_RUNNING_TRIATHLETE_F, 52 - .set MAP_OBJ_GFX_TUBER_F, 53 - .set MAP_OBJ_GFX_TUBER_M, 54 - .set MAP_OBJ_GFX_HIKER, 55 - .set MAP_OBJ_GFX_CYCLING_TRIATHLETE_M, 56 - .set MAP_OBJ_GFX_CYCLING_TRIATHLETE_F, 57 - .set MAP_OBJ_GFX_NURSE, 58 - .set MAP_OBJ_GFX_ITEM_BALL, 59 - .set MAP_OBJ_GFX_BERRY_TREE, 60 - .set MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES, 61 - .set MAP_OBJ_GFX_BERRY_TREE_LATE_STAGES, 62 - .set MAP_OBJ_GFX_BRENDAN_ACRO_BIKE, 63 - .set MAP_OBJ_GFX_PROF_BIRCH, 64 - .set MAP_OBJ_GFX_MAN_5, 65 - .set MAP_OBJ_GFX_MAN_6, 66 - .set MAP_OBJ_GFX_REPORTER_M, 67 - .set MAP_OBJ_GFX_REPORTER_F, 68 - .set MAP_OBJ_GFX_BARD, 69 - .set MAP_OBJ_GFX_ANABEL, 70 - .set MAP_OBJ_GFX_TUCKER, 71 - .set MAP_OBJ_GFX_GRETA, 72 - .set MAP_OBJ_GFX_SPENSER, 73 - .set MAP_OBJ_GFX_NOLAND, 74 - .set MAP_OBJ_GFX_LUCY, 75 - .set MAP_OBJ_GFX_UNUSED_NATU_DOLL, 76 - .set MAP_OBJ_GFX_UNUSED_MAGNEMITE_DOLL, 77 - .set MAP_OBJ_GFX_UNUSED_SQUIRTLE_DOLL, 78 - .set MAP_OBJ_GFX_UNUSED_WOOPER_DOLL, 79 - .set MAP_OBJ_GFX_UNUSED_PIKACHU_DOLL, 80 - .set MAP_OBJ_GFX_UNUSED_PORYGON2_DOLL, 81 - .set MAP_OBJ_GFX_CUTTABLE_TREE, 82 - .set MAP_OBJ_GFX_MART_EMPLOYEE, 83 - .set MAP_OBJ_GFX_ROOFTOP_SALE_WOMAN, 84 - .set MAP_OBJ_GFX_TEALA, 85 - .set MAP_OBJ_GFX_BREAKABLE_ROCK, 86 - .set MAP_OBJ_GFX_PUSHABLE_BOULDER, 87 - .set MAP_OBJ_GFX_MR_BRINEYS_BOAT, 88 - .set MAP_OBJ_GFX_MAY_NORMAL, 89 - .set MAP_OBJ_GFX_MAY_MACH_BIKE, 90 - .set MAP_OBJ_GFX_MAY_ACRO_BIKE, 91 - .set MAP_OBJ_GFX_MAY_SURFING, 92 - .set MAP_OBJ_GFX_MAY_FIELD_MOVE, 93 - .set MAP_OBJ_GFX_TRUCK, 94 - .set MAP_OBJ_GFX_VIGAROTH_CARRYING_BOX, 95 - .set MAP_OBJ_GFX_VIGAROTH_FACING_AWAY, 96 - .set MAP_OBJ_GFX_BIRCHS_BAG, 97 - .set MAP_OBJ_GFX_ZIGZAGOON_1, 98 - .set MAP_OBJ_GFX_ARTIST, 99 - .set MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL, 100 - .set MAP_OBJ_GFX_RIVAL_BRENDAN_MACH_BIKE, 101 - .set MAP_OBJ_GFX_RIVAL_BRENDAN_ACRO_BIKE, 102 - .set MAP_OBJ_GFX_RIVAL_BRENDAN_SURFING, 103 - .set MAP_OBJ_GFX_RIVAL_BRENDAN_FIELD_MOVE, 104 - .set MAP_OBJ_GFX_RIVAL_MAY_NORMAL, 105 - .set MAP_OBJ_GFX_RIVAL_MAY_MACH_BIKE, 106 - .set MAP_OBJ_GFX_RIVAL_MAY_ACRO_BIKE, 107 - .set MAP_OBJ_GFX_RIVAL_MAY_SURFING, 108 - .set MAP_OBJ_GFX_RIVAL_MAY_FIELD_MOVE, 109 - .set MAP_OBJ_GFX_CAMERAMAN, 110 - .set MAP_OBJ_GFX_BRENDAN_UNDERWATER, 111 - .set MAP_OBJ_GFX_MAY_UNDERWATER, 112 - .set MAP_OBJ_GFX_MOVING_BOX, 113 - .set MAP_OBJ_GFX_CABLE_CAR, 114 - .set MAP_OBJ_GFX_SCIENTIST_2, 115 - .set MAP_OBJ_GFX_MAN_7, 116 - .set MAP_OBJ_GFX_AQUA_MEMBER_M, 117 - .set MAP_OBJ_GFX_AQUA_MEMBER_F, 118 - .set MAP_OBJ_GFX_MAGMA_MEMBER_M, 119 - .set MAP_OBJ_GFX_MAGMA_MEMBER_F, 120 - .set MAP_OBJ_GFX_SIDNEY, 121 - .set MAP_OBJ_GFX_PHOEBE, 122 - .set MAP_OBJ_GFX_GLACIA, 123 - .set MAP_OBJ_GFX_DRAKE, 124 - .set MAP_OBJ_GFX_ROXANNE, 125 - .set MAP_OBJ_GFX_BRAWLY, 126 - .set MAP_OBJ_GFX_WATTSON, 127 - .set MAP_OBJ_GFX_FLANNERY, 128 - .set MAP_OBJ_GFX_NORMAN, 129 - .set MAP_OBJ_GFX_WINONA, 130 - .set MAP_OBJ_GFX_LIZA, 131 - .set MAP_OBJ_GFX_TATE, 132 - .set MAP_OBJ_GFX_WALLACE, 133 - .set MAP_OBJ_GFX_STEVEN, 134 - .set MAP_OBJ_GFX_WALLY, 135 - .set MAP_OBJ_GFX_LITTLE_BOY_3, 136 - .set MAP_OBJ_GFX_BRENDAN_FISHING, 137 - .set MAP_OBJ_GFX_MAY_FISHING, 138 - .set MAP_OBJ_GFX_HOT_SPRINGS_OLD_WOMAN, 139 - .set MAP_OBJ_GFX_SS_TIDAL, 140 - .set MAP_OBJ_GFX_SUBMARINE_SHADOW, 141 - .set MAP_OBJ_GFX_PICHU_DOLL, 142 - .set MAP_OBJ_GFX_PIKACHU_DOLL, 143 - .set MAP_OBJ_GFX_MARILL_DOLL, 144 - .set MAP_OBJ_GFX_TOGEPI_DOLL, 145 - .set MAP_OBJ_GFX_CYNDAQUIL_DOLL, 146 - .set MAP_OBJ_GFX_CHIKORITA_DOLL, 147 - .set MAP_OBJ_GFX_TOTODILE_DOLL, 148 - .set MAP_OBJ_GFX_JIGGLYPUFF_DOLL, 149 - .set MAP_OBJ_GFX_MEOWTH_DOLL, 150 - .set MAP_OBJ_GFX_CLEFAIRY_DOLL, 151 - .set MAP_OBJ_GFX_DITTO_DOLL, 152 - .set MAP_OBJ_GFX_SMOOCHUM_DOLL, 153 - .set MAP_OBJ_GFX_TREECKO_DOLL, 154 - .set MAP_OBJ_GFX_TORCHIC_DOLL, 155 - .set MAP_OBJ_GFX_MUDKIP_DOLL, 156 - .set MAP_OBJ_GFX_DUSKULL_DOLL, 157 - .set MAP_OBJ_GFX_WYNAUT_DOLL, 158 - .set MAP_OBJ_GFX_BALTOY_DOLL, 159 - .set MAP_OBJ_GFX_KECLEON_DOLL, 160 - .set MAP_OBJ_GFX_AZURILL_DOLL, 161 - .set MAP_OBJ_GFX_SKITTY_DOLL, 162 - .set MAP_OBJ_GFX_SWABLU_DOLL, 163 - .set MAP_OBJ_GFX_GULPIN_DOLL, 164 - .set MAP_OBJ_GFX_LOTAD_DOLL, 165 - .set MAP_OBJ_GFX_SEEDOT_DOLL, 166 - .set MAP_OBJ_GFX_PIKA_CUSHION, 167 - .set MAP_OBJ_GFX_ROUND_CUSHION, 168 - .set MAP_OBJ_GFX_KISS_CUSHION, 169 - .set MAP_OBJ_GFX_ZIGZAG_CUSHION, 170 - .set MAP_OBJ_GFX_SPIN_CUSHION, 171 - .set MAP_OBJ_GFX_DIAMOND_CUSHION, 172 - .set MAP_OBJ_GFX_BALL_CUSHION, 173 - .set MAP_OBJ_GFX_GRASS_CUSHION, 174 - .set MAP_OBJ_GFX_FIRE_CUSHION, 175 - .set MAP_OBJ_GFX_WATER_CUSHION, 176 - .set MAP_OBJ_GFX_BIG_SNORLAX_DOLL, 177 - .set MAP_OBJ_GFX_BIG_RHYDON_DOLL, 178 - .set MAP_OBJ_GFX_BIG_LAPRAS_DOLL, 179 - .set MAP_OBJ_GFX_BIG_VENUSAUR_DOLL, 180 - .set MAP_OBJ_GFX_BIG_CHARIZARD_DOLL, 181 - .set MAP_OBJ_GFX_BIG_BLASTOISE_DOLL, 182 - .set MAP_OBJ_GFX_BIG_WAILMER_DOLL, 183 - .set MAP_OBJ_GFX_BIG_REGIROCK_DOLL, 184 - .set MAP_OBJ_GFX_BIG_REGICE_DOLL, 185 - .set MAP_OBJ_GFX_BIG_REGISTEEL_DOLL, 186 - .set MAP_OBJ_GFX_LATIAS, 187 - .set MAP_OBJ_GFX_LATIOS, 188 - .set MAP_OBJ_GFX_BOY_5, 189 - .set MAP_OBJ_GFX_CONTEST_JUDGE, 190 - .set MAP_OBJ_GFX_BRENDAN_WATERING, 191 - .set MAP_OBJ_GFX_MAY_WATERING, 192 - .set MAP_OBJ_GFX_BRENDAN_DECORATING, 193 - .set MAP_OBJ_GFX_MAY_DECORATING, 194 - .set MAP_OBJ_GFX_ARCHIE, 195 - .set MAP_OBJ_GFX_MAXIE, 196 - .set MAP_OBJ_GFX_KYOGRE_1, 197 - .set MAP_OBJ_GFX_GROUDON_1, 198 - .set MAP_OBJ_GFX_FOSSIL, 199 - .set MAP_OBJ_GFX_REGIROCK, 200 - .set MAP_OBJ_GFX_REGICE, 201 - .set MAP_OBJ_GFX_REGISTEEL, 202 - .set MAP_OBJ_GFX_SKITTY, 203 - .set MAP_OBJ_GFX_KECLEON_1, 204 - .set MAP_OBJ_GFX_KYOGRE_2, 205 - .set MAP_OBJ_GFX_GROUDON_2, 206 - .set MAP_OBJ_GFX_RAYQUAZA_2, 207 - .set MAP_OBJ_GFX_ZIGZAGOON_2, 208 - .set MAP_OBJ_GFX_PIKACHU, 209 - .set MAP_OBJ_GFX_AZUMARILL, 210 - .set MAP_OBJ_GFX_WINGULL, 211 - .set MAP_OBJ_GFX_KECLEON_2, 212 - .set MAP_OBJ_GFX_TUBER_M_SWIMMING, 213 - .set MAP_OBJ_GFX_AZURILL, 214 - .set MAP_OBJ_GFX_MOM, 215 - .set MAP_OBJ_GFX_LINK_BRENDAN, 216 - .set MAP_OBJ_GFX_LINK_MAY, 217 - .set MAP_OBJ_GFX_JUAN, 218 - .set MAP_OBJ_GFX_SCOTT, 219 - .set MAP_OBJ_GFX_POOCHYENA, 220 - .set MAP_OBJ_GFX_KYOGRE_3, 221 - .set MAP_OBJ_GFX_GROUDON_3, 222 - .set MAP_OBJ_GFX_MYSTERY_GIFT_MAN, 223 - .set MAP_OBJ_GFX_TRICK_HOUSE_STATUE, 224 - .set MAP_OBJ_GFX_KIRLIA, 225 - .set MAP_OBJ_GFX_DUSCLOPS, 226 - .set MAP_OBJ_GFX_UNION_ROOM_NURSE, 227 - .set MAP_OBJ_GFX_SUDOWOODO, 228 - .set MAP_OBJ_GFX_MEW, 229 - .set MAP_OBJ_GFX_RED, 230 - .set MAP_OBJ_GFX_LEAF, 231 - .set MAP_OBJ_GFX_DEOXYS, 232 - .set MAP_OBJ_GFX_DEOXYS_TRIANGLE, 233 - .set MAP_OBJ_GFX_BRANDON, 234 - .set MAP_OBJ_GFX_LINK_RS_BRENDAN, 235 - .set MAP_OBJ_GFX_LINK_RS_MAY, 236 - .set MAP_OBJ_GFX_LUGIA, 237 - .set MAP_OBJ_GFX_HOOH, 238 - .set MAP_OBJ_GFX_BARD_2, 239 - .set MAP_OBJ_GFX_HIPSTER, 240 - .set MAP_OBJ_GFX_TRADER, 241 - .set MAP_OBJ_GFX_STORYTELLER, 242 - .set MAP_OBJ_GFX_GIDDY, 243 - .set MAP_OBJ_GFX_PLACEHOLDER_1, 244 - .set MAP_OBJ_GFX_PLACEHOLDER_2, 245 - - .set SHADOW_SIZE_S, 0 - .set SHADOW_SIZE_M, 1 - .set SHADOW_SIZE_L, 2 - .set SHADOW_SIZE_XL, 3 - - .set F_INANIMATE, 1 << 6 - .set F_DISABLE_REFLECTION_PALETTE_LOAD, 1 << 7 - - .set TRACKS_NONE, 0 - .set TRACKS_FOOT, 1 - .set TRACKS_BIKE_TIRE, 2 diff --git a/constants/move_constants.inc b/constants/move_constants.inc deleted file mode 100644 index b6c8edf98..000000000 --- a/constants/move_constants.inc +++ /dev/null @@ -1,355 +0,0 @@ - .set MOVE_NONE, 0x000 - .set MOVE_POUND, 0x001 - .set MOVE_KARATE_CHOP, 0x002 - .set MOVE_DOUBLE_SLAP, 0x003 - .set MOVE_COMET_PUNCH, 0x004 - .set MOVE_MEGA_PUNCH, 0x005 - .set MOVE_PAY_DAY, 0x006 - .set MOVE_FIRE_PUNCH, 0x007 - .set MOVE_ICE_PUNCH, 0x008 - .set MOVE_THUNDER_PUNCH, 0x009 - .set MOVE_SCRATCH, 0x00a - .set MOVE_VICE_GRIP, 0x00b - .set MOVE_GUILLOTINE, 0x00c - .set MOVE_RAZOR_WIND, 0x00d - .set MOVE_SWORDS_DANCE, 0x00e - .set MOVE_CUT, 0x00f - .set MOVE_GUST, 0x010 - .set MOVE_WING_ATTACK, 0x011 - .set MOVE_WHIRLWIND, 0x012 - .set MOVE_FLY, 0x013 - .set MOVE_BIND, 0x014 - .set MOVE_SLAM, 0x015 - .set MOVE_VINE_WHIP, 0x016 - .set MOVE_STOMP, 0x017 - .set MOVE_DOUBLE_KICK, 0x018 - .set MOVE_MEGA_KICK, 0x019 - .set MOVE_JUMP_KICK, 0x01a - .set MOVE_ROLLING_KICK, 0x01b - .set MOVE_SAND_ATTACK, 0x01c - .set MOVE_HEADBUTT, 0x01d - .set MOVE_HORN_ATTACK, 0x01e - .set MOVE_FURY_ATTACK, 0x01f - .set MOVE_HORN_DRILL, 0x020 - .set MOVE_TACKLE, 0x021 - .set MOVE_BODY_SLAM, 0x022 - .set MOVE_WRAP, 0x023 - .set MOVE_TAKE_DOWN, 0x024 - .set MOVE_THRASH, 0x025 - .set MOVE_DOUBLE_EDGE, 0x026 - .set MOVE_TAIL_WHIP, 0x027 - .set MOVE_POISON_STING, 0x028 - .set MOVE_TWINEEDLE, 0x029 - .set MOVE_PIN_MISSILE, 0x02a - .set MOVE_LEER, 0x02b - .set MOVE_BITE, 0x02c - .set MOVE_GROWL, 0x02d - .set MOVE_ROAR, 0x02e - .set MOVE_SING, 0x02f - .set MOVE_SUPERSONIC, 0x030 - .set MOVE_SONIC_BOOM, 0x031 - .set MOVE_DISABLE, 0x032 - .set MOVE_ACID, 0x033 - .set MOVE_EMBER, 0x034 - .set MOVE_FLAMETHROWER, 0x035 - .set MOVE_MIST, 0x036 - .set MOVE_WATER_GUN, 0x037 - .set MOVE_HYDRO_PUMP, 0x038 - .set MOVE_SURF, 0x039 - .set MOVE_ICE_BEAM, 0x03a - .set MOVE_BLIZZARD, 0x03b - .set MOVE_PSYBEAM, 0x03c - .set MOVE_BUBBLE_BEAM, 0x03d - .set MOVE_AURORA_BEAM, 0x03e - .set MOVE_HYPER_BEAM, 0x03f - .set MOVE_PECK, 0x040 - .set MOVE_DRILL_PECK, 0x041 - .set MOVE_SUBMISSION, 0x042 - .set MOVE_LOW_KICK, 0x043 - .set MOVE_COUNTER, 0x044 - .set MOVE_SEISMIC_TOSS, 0x045 - .set MOVE_STRENGTH, 0x046 - .set MOVE_ABSORB, 0x047 - .set MOVE_MEGA_DRAIN, 0x048 - .set MOVE_LEECH_SEED, 0x049 - .set MOVE_GROWTH, 0x04a - .set MOVE_RAZOR_LEAF, 0x04b - .set MOVE_SOLAR_BEAM, 0x04c - .set MOVE_POISON_POWDER, 0x04d - .set MOVE_STUN_SPORE, 0x04e - .set MOVE_SLEEP_POWDER, 0x04f - .set MOVE_PETAL_DANCE, 0x050 - .set MOVE_STRING_SHOT, 0x051 - .set MOVE_DRAGON_RAGE, 0x052 - .set MOVE_FIRE_SPIN, 0x053 - .set MOVE_THUNDER_SHOCK, 0x054 - .set MOVE_THUNDERBOLT, 0x055 - .set MOVE_THUNDER_WAVE, 0x056 - .set MOVE_THUNDER, 0x057 - .set MOVE_ROCK_THROW, 0x058 - .set MOVE_EARTHQUAKE, 0x059 - .set MOVE_FISSURE, 0x05a - .set MOVE_DIG, 0x05b - .set MOVE_TOXIC, 0x05c - .set MOVE_CONFUSION, 0x05d - .set MOVE_PSYCHIC, 0x05e - .set MOVE_HYPNOSIS, 0x05f - .set MOVE_MEDITATE, 0x060 - .set MOVE_AGILITY, 0x061 - .set MOVE_QUICK_ATTACK, 0x062 - .set MOVE_RAGE, 0x063 - .set MOVE_TELEPORT, 0x064 - .set MOVE_NIGHT_SHADE, 0x065 - .set MOVE_MIMIC, 0x066 - .set MOVE_SCREECH, 0x067 - .set MOVE_DOUBLE_TEAM, 0x068 - .set MOVE_RECOVER, 0x069 - .set MOVE_HARDEN, 0x06a - .set MOVE_MINIMIZE, 0x06b - .set MOVE_SMOKESCREEN, 0x06c - .set MOVE_CONFUSE_RAY, 0x06d - .set MOVE_WITHDRAW, 0x06e - .set MOVE_DEFENSE_CURL, 0x06f - .set MOVE_BARRIER, 0x070 - .set MOVE_LIGHT_SCREEN, 0x071 - .set MOVE_HAZE, 0x072 - .set MOVE_REFLECT, 0x073 - .set MOVE_FOCUS_ENERGY, 0x074 - .set MOVE_BIDE, 0x075 - .set MOVE_METRONOME, 0x076 - .set MOVE_MIRROR_MOVE, 0x077 - .set MOVE_SELF_DESTRUCT, 0x078 - .set MOVE_EGG_BOMB, 0x079 - .set MOVE_LICK, 0x07a - .set MOVE_SMOG, 0x07b - .set MOVE_SLUDGE, 0x07c - .set MOVE_BONE_CLUB, 0x07d - .set MOVE_FIRE_BLAST, 0x07e - .set MOVE_WATERFALL, 0x07f - .set MOVE_CLAMP, 0x080 - .set MOVE_SWIFT, 0x081 - .set MOVE_SKULL_BASH, 0x082 - .set MOVE_SPIKE_CANNON, 0x083 - .set MOVE_CONSTRICT, 0x084 - .set MOVE_AMNESIA, 0x085 - .set MOVE_KINESIS, 0x086 - .set MOVE_SOFT_BOILED, 0x087 - .set MOVE_HI_JUMP_KICK, 0x088 - .set MOVE_GLARE, 0x089 - .set MOVE_DREAM_EATER, 0x08a - .set MOVE_POISON_GAS, 0x08b - .set MOVE_BARRAGE, 0x08c - .set MOVE_LEECH_LIFE, 0x08d - .set MOVE_LOVELY_KISS, 0x08e - .set MOVE_SKY_ATTACK, 0x08f - .set MOVE_TRANSFORM, 0x090 - .set MOVE_BUBBLE, 0x091 - .set MOVE_DIZZY_PUNCH, 0x092 - .set MOVE_SPORE, 0x093 - .set MOVE_FLASH, 0x094 - .set MOVE_PSYWAVE, 0x095 - .set MOVE_SPLASH, 0x096 - .set MOVE_ACID_ARMOR, 0x097 - .set MOVE_CRABHAMMER, 0x098 - .set MOVE_EXPLOSION, 0x099 - .set MOVE_FURY_SWIPES, 0x09a - .set MOVE_BONEMERANG, 0x09b - .set MOVE_REST, 0x09c - .set MOVE_ROCK_SLIDE, 0x09d - .set MOVE_HYPER_FANG, 0x09e - .set MOVE_SHARPEN, 0x09f - .set MOVE_CONVERSION, 0x0a0 - .set MOVE_TRI_ATTACK, 0x0a1 - .set MOVE_SUPER_FANG, 0x0a2 - .set MOVE_SLASH, 0x0a3 - .set MOVE_SUBSTITUTE, 0x0a4 - .set MOVE_STRUGGLE, 0x0a5 - .set MOVE_SKETCH, 0x0a6 - .set MOVE_TRIPLE_KICK, 0x0a7 - .set MOVE_THIEF, 0x0a8 - .set MOVE_SPIDER_WEB, 0x0a9 - .set MOVE_MIND_READER, 0x0aa - .set MOVE_NIGHTMARE, 0x0ab - .set MOVE_FLAME_WHEEL, 0x0ac - .set MOVE_SNORE, 0x0ad - .set MOVE_CURSE, 0x0ae - .set MOVE_FLAIL, 0x0af - .set MOVE_CONVERSION_2, 0x0b0 - .set MOVE_AEROBLAST, 0x0b1 - .set MOVE_COTTON_SPORE, 0x0b2 - .set MOVE_REVERSAL, 0x0b3 - .set MOVE_SPITE, 0x0b4 - .set MOVE_POWDER_SNOW, 0x0b5 - .set MOVE_PROTECT, 0x0b6 - .set MOVE_MACH_PUNCH, 0x0b7 - .set MOVE_SCARY_FACE, 0x0b8 - .set MOVE_FAINT_ATTACK, 0x0b9 - .set MOVE_SWEET_KISS, 0x0ba - .set MOVE_BELLY_DRUM, 0x0bb - .set MOVE_SLUDGE_BOMB, 0x0bc - .set MOVE_MUD_SLAP, 0x0bd - .set MOVE_OCTAZOOKA, 0x0be - .set MOVE_SPIKES, 0x0bf - .set MOVE_ZAP_CANNON, 0x0c0 - .set MOVE_FORESIGHT, 0x0c1 - .set MOVE_DESTINY_BOND, 0x0c2 - .set MOVE_PERISH_SONG, 0x0c3 - .set MOVE_ICY_WIND, 0x0c4 - .set MOVE_DETECT, 0x0c5 - .set MOVE_BONE_RUSH, 0x0c6 - .set MOVE_LOCK_ON, 0x0c7 - .set MOVE_OUTRAGE, 0x0c8 - .set MOVE_SANDSTORM, 0x0c9 - .set MOVE_GIGA_DRAIN, 0x0ca - .set MOVE_ENDURE, 0x0cb - .set MOVE_CHARM, 0x0cc - .set MOVE_ROLLOUT, 0x0cd - .set MOVE_FALSE_SWIPE, 0x0ce - .set MOVE_SWAGGER, 0x0cf - .set MOVE_MILK_DRINK, 0x0d0 - .set MOVE_SPARK, 0x0d1 - .set MOVE_FURY_CUTTER, 0x0d2 - .set MOVE_STEEL_WING, 0x0d3 - .set MOVE_MEAN_LOOK, 0x0d4 - .set MOVE_ATTRACT, 0x0d5 - .set MOVE_SLEEP_TALK, 0x0d6 - .set MOVE_HEAL_BELL, 0x0d7 - .set MOVE_RETURN, 0x0d8 - .set MOVE_PRESENT, 0x0d9 - .set MOVE_FRUSTRATION, 0x0da - .set MOVE_SAFEGUARD, 0x0db - .set MOVE_PAIN_SPLIT, 0x0dc - .set MOVE_SACRED_FIRE, 0x0dd - .set MOVE_MAGNITUDE, 0x0de - .set MOVE_DYNAMIC_PUNCH, 0x0df - .set MOVE_MEGAHORN, 0x0e0 - .set MOVE_DRAGON_BREATH, 0x0e1 - .set MOVE_BATON_PASS, 0x0e2 - .set MOVE_ENCORE, 0x0e3 - .set MOVE_PURSUIT, 0x0e4 - .set MOVE_RAPID_SPIN, 0x0e5 - .set MOVE_SWEET_SCENT, 0x0e6 - .set MOVE_IRON_TAIL, 0x0e7 - .set MOVE_METAL_CLAW, 0x0e8 - .set MOVE_VITAL_THROW, 0x0e9 - .set MOVE_MORNING_SUN, 0x0ea - .set MOVE_SYNTHESIS, 0x0eb - .set MOVE_MOONLIGHT, 0x0ec - .set MOVE_HIDDEN_POWER, 0x0ed - .set MOVE_CROSS_CHOP, 0x0ee - .set MOVE_TWISTER, 0x0ef - .set MOVE_RAIN_DANCE, 0x0f0 - .set MOVE_SUNNY_DAY, 0x0f1 - .set MOVE_CRUNCH, 0x0f2 - .set MOVE_MIRROR_COAT, 0x0f3 - .set MOVE_PSYCH_UP, 0x0f4 - .set MOVE_EXTREME_SPEED, 0x0f5 - .set MOVE_ANCIENT_POWER, 0x0f6 - .set MOVE_SHADOW_BALL, 0x0f7 - .set MOVE_FUTURE_SIGHT, 0x0f8 - .set MOVE_ROCK_SMASH, 0x0f9 - .set MOVE_WHIRLPOOL, 0x0fa - .set MOVE_BEAT_UP, 0x0fb - .set MOVE_FAKE_OUT, 0x0fc - .set MOVE_UPROAR, 0x0fd - .set MOVE_STOCKPILE, 0x0fe - .set MOVE_SPIT_UP, 0x0ff - .set MOVE_SWALLOW, 0x100 - .set MOVE_HEAT_WAVE, 0x101 - .set MOVE_HAIL, 0x102 - .set MOVE_TORMENT, 0x103 - .set MOVE_FLATTER, 0x104 - .set MOVE_WILL_O_WISP, 0x105 - .set MOVE_MEMENTO, 0x106 - .set MOVE_FACADE, 0x107 - .set MOVE_FOCUS_PUNCH, 0x108 - .set MOVE_SMELLING_SALT, 0x109 - .set MOVE_FOLLOW_ME, 0x10a - .set MOVE_NATURE_POWER, 0x10b - .set MOVE_CHARGE, 0x10c - .set MOVE_TAUNT, 0x10d - .set MOVE_HELPING_HAND, 0x10e - .set MOVE_TRICK, 0x10f - .set MOVE_ROLE_PLAY, 0x110 - .set MOVE_WISH, 0x111 - .set MOVE_ASSIST, 0x112 - .set MOVE_INGRAIN, 0x113 - .set MOVE_SUPERPOWER, 0x114 - .set MOVE_MAGIC_COAT, 0x115 - .set MOVE_RECYCLE, 0x116 - .set MOVE_REVENGE, 0x117 - .set MOVE_BRICK_BREAK, 0x118 - .set MOVE_YAWN, 0x119 - .set MOVE_KNOCK_OFF, 0x11a - .set MOVE_ENDEAVOR, 0x11b - .set MOVE_ERUPTION, 0x11c - .set MOVE_SKILL_SWAP, 0x11d - .set MOVE_IMPRISON, 0x11e - .set MOVE_REFRESH, 0x11f - .set MOVE_GRUDGE, 0x120 - .set MOVE_SNATCH, 0x121 - .set MOVE_SECRET_POWER, 0x122 - .set MOVE_DIVE, 0x123 - .set MOVE_ARM_THRUST, 0x124 - .set MOVE_CAMOUFLAGE, 0x125 - .set MOVE_TAIL_GLOW, 0x126 - .set MOVE_LUSTER_PURGE, 0x127 - .set MOVE_MIST_BALL, 0x128 - .set MOVE_FEATHER_DANCE, 0x129 - .set MOVE_TEETER_DANCE, 0x12a - .set MOVE_BLAZE_KICK, 0x12b - .set MOVE_MUD_SPORT, 0x12c - .set MOVE_ICE_BALL, 0x12d - .set MOVE_NEEDLE_ARM, 0x12e - .set MOVE_SLACK_OFF, 0x12f - .set MOVE_HYPER_VOICE, 0x130 - .set MOVE_POISON_FANG, 0x131 - .set MOVE_CRUSH_CLAW, 0x132 - .set MOVE_BLAST_BURN, 0x133 - .set MOVE_HYDRO_CANNON, 0x134 - .set MOVE_METEOR_MASH, 0x135 - .set MOVE_ASTONISH, 0x136 - .set MOVE_WEATHER_BALL, 0x137 - .set MOVE_AROMATHERAPY, 0x138 - .set MOVE_FAKE_TEARS, 0x139 - .set MOVE_AIR_CUTTER, 0x13a - .set MOVE_OVERHEAT, 0x13b - .set MOVE_ODOR_SLEUTH, 0x13c - .set MOVE_ROCK_TOMB, 0x13d - .set MOVE_SILVER_WIND, 0x13e - .set MOVE_METAL_SOUND, 0x13f - .set MOVE_GRASS_WHISTLE, 0x140 - .set MOVE_TICKLE, 0x141 - .set MOVE_COSMIC_POWER, 0x142 - .set MOVE_WATER_SPOUT, 0x143 - .set MOVE_SIGNAL_BEAM, 0x144 - .set MOVE_SHADOW_PUNCH, 0x145 - .set MOVE_EXTRASENSORY, 0x146 - .set MOVE_SKY_UPPERCUT, 0x147 - .set MOVE_SAND_TOMB, 0x148 - .set MOVE_SHEER_COLD, 0x149 - .set MOVE_MUDDY_WATER, 0x14a - .set MOVE_BULLET_SEED, 0x14b - .set MOVE_AERIAL_ACE, 0x14c - .set MOVE_ICICLE_SPEAR, 0x14d - .set MOVE_IRON_DEFENSE, 0x14e - .set MOVE_BLOCK, 0x14f - .set MOVE_HOWL, 0x150 - .set MOVE_DRAGON_CLAW, 0x151 - .set MOVE_FRENZY_PLANT, 0x152 - .set MOVE_BULK_UP, 0x153 - .set MOVE_BOUNCE, 0x154 - .set MOVE_MUD_SHOT, 0x155 - .set MOVE_POISON_TAIL, 0x156 - .set MOVE_COVET, 0x157 - .set MOVE_VOLT_TACKLE, 0x158 - .set MOVE_MAGICAL_LEAF, 0x159 - .set MOVE_WATER_SPORT, 0x15a - .set MOVE_CALM_MIND, 0x15b - .set MOVE_LEAF_BLADE, 0x15c - .set MOVE_DRAGON_DANCE, 0x15d - .set MOVE_ROCK_BLAST, 0x15e - .set MOVE_SHOCK_WAVE, 0x15f - .set MOVE_WATER_PULSE, 0x160 - .set MOVE_DOOM_DESIRE, 0x161 - .set MOVE_PSYCHO_BOOST, 0x162 diff --git a/constants/songs.inc b/constants/songs.inc deleted file mode 100644 index 61362f058..000000000 --- a/constants/songs.inc +++ /dev/null @@ -1,461 +0,0 @@ - .equiv SE_STOP, 0 - .equiv SE_KAIFUKU, 1 - .equiv SE_PC_LOGON, 2 - .equiv SE_PC_OFF, 3 - .equiv SE_PC_ON, 4 - .equiv SE_SELECT, 5 - .equiv SE_WIN_OPEN, 6 - .equiv SE_WALL_HIT, 7 - .equiv SE_DOOR, 8 - .equiv SE_KAIDAN, 9 - .equiv SE_DANSA, 10 - .equiv SE_JITENSYA, 11 - .equiv SE_KOUKA_L, 12 - .equiv SE_KOUKA_M, 13 - .equiv SE_KOUKA_H, 14 - .equiv SE_BOWA2, 15 - .equiv SE_POKE_DEAD, 16 - .equiv SE_NIGERU, 17 - .equiv SE_JIDO_DOA, 18 - .equiv SE_NAMINORI, 19 - .equiv SE_BAN, 20 - .equiv SE_PIN, 21 - .equiv SE_BOO, 22 - .equiv SE_BOWA, 23 - .equiv SE_JYUNI, 24 - .equiv SE_A, 25 - .equiv SE_I, 26 - .equiv SE_U, 27 - .equiv SE_E, 28 - .equiv SE_O, 29 - .equiv SE_N, 30 - .equiv SE_SEIKAI, 31 - .equiv SE_HAZURE, 32 - .equiv SE_EXP, 33 - .equiv SE_JITE_PYOKO, 34 - .equiv SE_MU_PACHI, 35 - .equiv SE_TK_KASYA, 36 - .equiv SE_FU_ZAKU, 37 - .equiv SE_FU_ZAKU2, 38 - .equiv SE_FU_ZUZUZU, 39 - .equiv SE_RU_GASHIN, 40 - .equiv SE_RU_GASYAN, 41 - .equiv SE_RU_BARI, 42 - .equiv SE_RU_HYUU, 43 - .equiv SE_KI_GASYAN, 44 - .equiv SE_TK_WARPIN, 45 - .equiv SE_TK_WARPOUT, 46 - .equiv SE_TU_SAA, 47 - .equiv SE_HI_TURUN, 48 - .equiv SE_TRACK_MOVE, 49 - .equiv SE_TRACK_STOP, 50 - .equiv SE_TRACK_HAIK, 51 - .equiv SE_TRACK_DOOR, 52 - .equiv SE_MOTER, 53 - .equiv SE_CARD, 54 - .equiv SE_SAVE, 55 - .equiv SE_KON, 56 - .equiv SE_KON2, 57 - .equiv SE_KON3, 58 - .equiv SE_KON4, 59 - .equiv SE_SUIKOMU, 60 - .equiv SE_NAGERU, 61 - .equiv SE_TOY_C, 62 - .equiv SE_TOY_D, 63 - .equiv SE_TOY_E, 64 - .equiv SE_TOY_F, 65 - .equiv SE_TOY_G, 66 - .equiv SE_TOY_A, 67 - .equiv SE_TOY_B, 68 - .equiv SE_TOY_C1, 69 - .equiv SE_MIZU, 70 - .equiv SE_HASHI, 71 - .equiv SE_DAUGI, 72 - .equiv SE_PINPON, 73 - .equiv SE_FUUSEN1, 74 - .equiv SE_FUUSEN2, 75 - .equiv SE_FUUSEN3, 76 - .equiv SE_TOY_KABE, 77 - .equiv SE_TOY_DANGO, 78 - .equiv SE_DOKU, 79 - .equiv SE_ESUKA, 80 - .equiv SE_T_AME, 81 - .equiv SE_T_AME_E, 82 - .equiv SE_T_OOAME, 83 - .equiv SE_T_OOAME_E, 84 - .equiv SE_T_KOAME, 85 - .equiv SE_T_KOAME_E, 86 - .equiv SE_T_KAMI, 87 - .equiv SE_T_KAMI2, 88 - .equiv SE_ELEBETA, 89 - .equiv SE_HINSI, 90 - .equiv SE_EXPMAX, 91 - .equiv SE_TAMAKORO, 92 - .equiv SE_TAMAKORO_E, 93 - .equiv SE_BASABASA, 94 - .equiv SE_REGI, 95 - .equiv SE_C_GAJI, 96 - .equiv SE_C_MAKU_U, 97 - .equiv SE_C_MAKU_D, 98 - .equiv SE_C_PASI, 99 - .equiv SE_C_SYU, 100 - .equiv SE_C_PIKON, 101 - .equiv SE_REAPOKE, 102 - .equiv SE_OP_BASYU, 103 - .equiv SE_BT_START, 104 - .equiv SE_DENDOU, 105 - .equiv SE_JIHANKI, 106 - .equiv SE_TAMA, 107 - .equiv SE_Z_SCROLL, 108 - .equiv SE_Z_PAGE, 109 - .equiv SE_PN_ON, 110 - .equiv SE_PN_OFF, 111 - .equiv SE_Z_SEARCH, 112 - .equiv SE_TAMAGO, 113 - .equiv SE_TB_START, 114 - .equiv SE_TB_KON, 115 - .equiv SE_TB_KARA, 116 - .equiv SE_BIDORO, 117 - .equiv SE_W085, 118 - .equiv SE_W085B, 119 - .equiv SE_W231, 120 - .equiv SE_W171, 121 - .equiv SE_W233, 122 - .equiv SE_W233B, 123 - .equiv SE_W145, 124 - .equiv SE_W145B, 125 - .equiv SE_W145C, 126 - .equiv SE_W240, 127 - .equiv SE_W015, 128 - .equiv SE_W081, 129 - .equiv SE_W081B, 130 - .equiv SE_W088, 131 - .equiv SE_W016, 132 - .equiv SE_W016B, 133 - .equiv SE_W003, 134 - .equiv SE_W104, 135 - .equiv SE_W013, 136 - .equiv SE_W196, 137 - .equiv SE_W086, 138 - .equiv SE_W004, 139 - .equiv SE_W025, 140 - .equiv SE_W025B, 141 - .equiv SE_W152, 142 - .equiv SE_W026, 143 - .equiv SE_W172, 144 - .equiv SE_W172B, 145 - .equiv SE_W053, 146 - .equiv SE_W007, 147 - .equiv SE_W092, 148 - .equiv SE_W221, 149 - .equiv SE_W221B, 150 - .equiv SE_W052, 151 - .equiv SE_W036, 152 - .equiv SE_W059, 153 - .equiv SE_W059B, 154 - .equiv SE_W010, 155 - .equiv SE_W011, 156 - .equiv SE_W017, 157 - .equiv SE_W019, 158 - .equiv SE_W028, 159 - .equiv SE_W013B, 160 - .equiv SE_W044, 161 - .equiv SE_W029, 162 - .equiv SE_W057, 163 - .equiv SE_W056, 164 - .equiv SE_W250, 165 - .equiv SE_W030, 166 - .equiv SE_W039, 167 - .equiv SE_W054, 168 - .equiv SE_W077, 169 - .equiv SE_W020, 170 - .equiv SE_W082, 171 - .equiv SE_W047, 172 - .equiv SE_W195, 173 - .equiv SE_W006, 174 - .equiv SE_W091, 175 - .equiv SE_W146, 176 - .equiv SE_W120, 177 - .equiv SE_W153, 178 - .equiv SE_W071B, 179 - .equiv SE_W071, 180 - .equiv SE_W103, 181 - .equiv SE_W062, 182 - .equiv SE_W062B, 183 - .equiv SE_W048, 184 - .equiv SE_W187, 185 - .equiv SE_W118, 186 - .equiv SE_W155, 187 - .equiv SE_W122, 188 - .equiv SE_W060, 189 - .equiv SE_W185, 190 - .equiv SE_W014, 191 - .equiv SE_W043, 192 - .equiv SE_W207, 193 - .equiv SE_W207B, 194 - .equiv SE_W215, 195 - .equiv SE_W109, 196 - .equiv SE_W173, 197 - .equiv SE_W280, 198 - .equiv SE_W202, 199 - .equiv SE_W060B, 200 - .equiv SE_W076, 201 - .equiv SE_W080, 202 - .equiv SE_W100, 203 - .equiv SE_W107, 204 - .equiv SE_W166, 205 - .equiv SE_W129, 206 - .equiv SE_W115, 207 - .equiv SE_W112, 208 - .equiv SE_W197, 209 - .equiv SE_W199, 210 - .equiv SE_W236, 211 - .equiv SE_W204, 212 - .equiv SE_W268, 213 - .equiv SE_W070, 214 - .equiv SE_W063, 215 - .equiv SE_W127, 216 - .equiv SE_W179, 217 - .equiv SE_W151, 218 - .equiv SE_W201, 219 - .equiv SE_W161, 220 - .equiv SE_W161B, 221 - .equiv SE_W227, 222 - .equiv SE_W227B, 223 - .equiv SE_W226, 224 - .equiv SE_W208, 225 - .equiv SE_W213, 226 - .equiv SE_W213B, 227 - .equiv SE_W234, 228 - .equiv SE_W260, 229 - .equiv SE_W328, 230 - .equiv SE_W320, 231 - .equiv SE_W255, 232 - .equiv SE_W291, 233 - .equiv SE_W089, 234 - .equiv SE_W239, 235 - .equiv SE_W230, 236 - .equiv SE_W281, 237 - .equiv SE_W327, 238 - .equiv SE_W287, 239 - .equiv SE_W257, 240 - .equiv SE_W253, 241 - .equiv SE_W258, 242 - .equiv SE_W322, 243 - .equiv SE_W298, 244 - .equiv SE_W287B, 245 - .equiv SE_W114, 246 - .equiv SE_W063B, 247 - - .equiv BGM_STOP, 349 - .equiv BGM_TETSUJI, 350 - .equiv BGM_FIELD13, 351 - .equiv BGM_KACHI22, 352 - .equiv BGM_KACHI2, 353 - .equiv BGM_KACHI3, 354 - .equiv BGM_KACHI5, 355 - .equiv BGM_PCC, 356 - .equiv BGM_NIBI, 357 - .equiv BGM_SUIKUN, 358 - .equiv BGM_DOORO1, 359 - .equiv BGM_DOORO_X1, 360 - .equiv BGM_DOORO_X3, 361 - .equiv BGM_MACHI_S2, 362 - .equiv BGM_MACHI_S4, 363 - .equiv BGM_GIM, 364 - .equiv BGM_NAMINORI, 365 - .equiv BGM_DAN01, 366 - .equiv BGM_FANFA1, 367 - .equiv BGM_ME_ASA, 368 - .equiv BGM_ME_BACHI, 369 - .equiv BGM_FANFA4, 370 - .equiv BGM_FANFA5, 371 - .equiv BGM_ME_WAZA, 372 - .equiv BGM_BIJYUTU, 373 - .equiv BGM_DOORO_X4, 374 - .equiv BGM_FUNE_KAN, 375 - .equiv BGM_ME_SHINKA, 376 - .equiv BGM_SHINKA, 377 - .equiv BGM_ME_WASURE, 378 - .equiv BGM_SYOUJOEYE, 379 - .equiv BGM_BOYEYE, 380 - .equiv BGM_DAN02, 381 - .equiv BGM_MACHI_S3, 382 - .equiv BGM_ODAMAKI, 383 - .equiv BGM_B_TOWER, 384 - .equiv BGM_SWIMEYE, 385 - .equiv BGM_DAN03, 386 - .equiv BGM_ME_KINOMI, 387 - .equiv BGM_ME_TAMA, 388 - .equiv BGM_ME_B_BIG, 389 - .equiv BGM_ME_B_SMALL, 390 - .equiv BGM_ME_ZANNEN, 391 - .equiv BGM_BD_TIME, 392 - .equiv BGM_TEST1, 393 - .equiv BGM_TEST2, 394 - .equiv BGM_TEST3, 395 - .equiv BGM_TEST4, 396 - .equiv BGM_TEST, 397 - .equiv BGM_GOMACHI0, 398 - .equiv BGM_GOTOWN, 399 - .equiv BGM_POKECEN, 400 - .equiv BGM_NEXTROAD, 401 - .equiv BGM_GRANROAD, 402 - .equiv BGM_CYCLING, 403 - .equiv BGM_FRIENDLY, 404 - .equiv BGM_MISHIRO, 405 - .equiv BGM_TOZAN, 406 - .equiv BGM_GIRLEYE, 407 - .equiv BGM_MINAMO, 408 - .equiv BGM_ASHROAD, 409 - .equiv BGM_EVENT0, 410 - .equiv BGM_DEEPDEEP, 411 - .equiv BGM_KACHI1, 412 - .equiv BGM_TITLE3, 413 - .equiv BGM_DEMO1, 414 - .equiv BGM_GIRL_SUP, 415 - .equiv BGM_HAGESHII, 416 - .equiv BGM_KAKKOII, 417 - .equiv BGM_KAZANBAI, 418 - .equiv BGM_AQA_0, 419 - .equiv BGM_TSURETEK, 420 - .equiv BGM_BOY_SUP, 421 - .equiv BGM_RAINBOW, 422 - .equiv BGM_AYASII, 423 - .equiv BGM_KACHI4, 424 - .equiv BGM_ROPEWAY, 425 - .equiv BGM_CASINO, 426 - .equiv BGM_HIGHTOWN, 427 - .equiv BGM_SAFARI, 428 - .equiv BGM_C_ROAD, 429 - .equiv BGM_AJITO, 430 - .equiv BGM_M_BOAT, 431 - .equiv BGM_M_DUNGON, 432 - .equiv BGM_FINECITY, 433 - .equiv BGM_MACHUPI, 434 - .equiv BGM_P_SCHOOL, 435 - .equiv BGM_DENDOU, 436 - .equiv BGM_TONEKUSA, 437 - .equiv BGM_MABOROSI, 438 - .equiv BGM_CON_FAN, 439 - .equiv BGM_CONTEST0, 440 - .equiv BGM_MGM0, 441 - .equiv BGM_T_BATTLE, 442 - .equiv BGM_OOAME, 443 - .equiv BGM_HIDERI, 444 - .equiv BGM_RUNECITY, 445 - .equiv BGM_CON_K, 446 - .equiv BGM_EIKOU_R, 447 - .equiv BGM_KARAKURI, 448 - .equiv BGM_HUTAGO, 449 - .equiv BGM_SITENNOU, 450 - .equiv BGM_YAMA_EYE, 451 - .equiv BGM_CONLOBBY, 452 - .equiv BGM_INTER_V, 453 - .equiv BGM_DAIGO, 454 - .equiv BGM_THANKFOR, 455 - .equiv BGM_END, 456 - .equiv BGM_BATTLE_FRONTIER, 457 - .equiv BGM_BATTLE_ARENA, 458 - .equiv BGM_ME_BATTLE_POINTS, 459 - .equiv BGM_ME_MATCH_CALL, 460 - .equiv BGM_BATTLE_PYRAMID, 461 - .equiv BGM_BATTLE_PYRAMID_SUMMIT, 462 - .equiv BGM_BATTLE_PALACE, 463 - .equiv BGM_FANFA_RAYQUAZA, 464 - .equiv BGM_BATTLE_TOWER, 465 - .equiv BGM_ME_BATTLE_SYMBOL, 466 - .equiv BGM_BATTLE_DOME_TOURNAMENT, 467 - .equiv BGM_BATTLE_PIKE, 468 - .equiv BGM_BATTLE_FACTORY, 469 - .equiv BGM_BATTLE_LEGENDARY, 470 - .equiv BGM_BATTLE_FRONTIER_BRAIN, 471 - .equiv BGM_BATTLE_MEW, 472 - .equiv BGM_BATTLE_DOME, 473 - .equiv BGM_BATTLE27, 474 - .equiv BGM_BATTLE31, 475 - .equiv BGM_BATTLE20, 476 - .equiv BGM_BATTLE32, 477 - .equiv BGM_BATTLE33, 478 - .equiv BGM_BATTLE36, 479 - .equiv BGM_BATTLE34, 480 - .equiv BGM_BATTLE35, 481 - .equiv BGM_BATTLE38, 482 - .equiv BGM_BATTLE30, 483 - .equiv BGM_FRLG_FOLLOW_ME, 484 - .equiv BGM_FRLG_GAMECORNER, 485 - .equiv BGM_FRLG_ROCKET_HIDEOUT, 486 - .equiv BGM_FRLG_GYM, 487 - .equiv BGM_FRLG_JIGGLYPUFF, 488 - .equiv BGM_FRLG_OPENING, 489 - .equiv BGM_FRLG_TITLE, 490 - .equiv BGM_FRLG_CINNABAR_ISLAND, 491 - .equiv BGM_FRLG_LAVENDER_TOWN, 492 - .equiv BGM_FRLG_HEALING_TEST, 493 - .equiv BGM_FRLG_BICYCLE, 494 - .equiv BGM_FRLG_SUSPICIOUS_EYE, 495 - .equiv BGM_FRLG_GIRL_EYE, 496 - .equiv BGM_FRLG_BOY_EYE, 497 - .equiv BGM_FRLG_CONGRATULATIONS_HALL_OF_FAME, 498 - .equiv BGM_FRLG_VIRIDIAN_FOREST, 499 - .equiv BGM_FRLG_MT_MOON, 500 - .equiv BGM_FRLG_POKEMON_MANSION, 501 - .equiv BGM_FRLG_CREDITS, 502 - .equiv BGM_FRLG_ROUTE_1, 503 - .equiv BGM_FRLG_ROUTE_24, 504 - .equiv BGM_FRLG_ROUTE_3, 505 - .equiv BGM_FRLG_ROUTE_11, 506 - .equiv BGM_FRLG_INDIGO_PLATEAU, 507 - .equiv BGM_FRLG_BATTLE_LEADER, 508 - .equiv BGM_FRLG_BATTLE_TRAINER, 509 - .equiv BGM_FRLG_BATTLE_WILD_POKEMON, 510 - .equiv BGM_FRLG_BATTLE_CHAMPION, 511 - .equiv BGM_FRLG_PALLET_TOWN, 512 - .equiv BGM_FRLG_OAK_LAB, 513 - .equiv BGM_FRLG_PROF_OAK, 514 - .equiv BGM_FRLG_POKEMON_CENTER, 515 - .equiv BGM_FRLG_SS_ANNE, 516 - .equiv BGM_FRLG_SURF, 517 - .equiv BGM_FRLG_POKEMON_TOWER, 518 - .equiv BGM_FRLG_SILPH, 519 - .equiv BGM_FRLG_CERULEAN_CITY, 520 - .equiv BGM_FRLG_CELADON_CITY, 521 - .equiv BGM_FRLG_KACHI_TRAINER, 522 - .equiv BGM_FRLG_KACHI_WILD_POKEMON, 523 - .equiv BGM_FRLG_KACHI_LEADER, 524 - .equiv BGM_FRLG_VERMILION_CITY, 525 - .equiv BGM_FRLG_VIRIDIAN_CITY, 526 - .equiv BGM_FRLG_RIVAL, 527 - .equiv BGM_FRLG_RIVAL_POSTBATTLE, 528 - .equiv BGM_FRLG_ME_POKEDEX_EVAL, 529 - .equiv BGM_FRLG_ME_KEYITEM, 530 - .equiv BGM_FRLG_FANFA_POKEMON_CAUGHT, 531 - .equiv BGM_FRLG_FANFA_TRAINERCARD_PHOTO, 532 - .equiv BGM_FRLG_GAMEFREAK_LOGO, 533 - .equiv BGM_FRLG_CAUGHT_POKEMON, 534 - .equiv BGM_FRLG_GAME_EXPLANATION_START, 535 - .equiv BGM_FRLG_GAME_EXPLANATION_MIDDLE, 536 - .equiv BGM_FRLG_GAME_EXPLANATION_END, 537 - .equiv BGM_FRLG_POKEMON_JUMP, 538 - .equiv BGM_FRLG_UNION_ROOM, 539 - .equiv BGM_FRLG_POKEMON_NETWORK_CENTER, 540 - .equiv BGM_FRLG_MYSTERY_GIFT, 541 - .equiv BGM_FRLG_DODRIO_BERRY_PICK, 542 - .equiv BGM_FRLG_MT_EMBER, 543 - .equiv BGM_FRLG_TEACHY_TV_EPISODE, 544 - .equiv BGM_FRLG_SEVII_ISLANDS, 545 - .equiv BGM_FRLG_TANOBY_RUINS, 546 - .equiv BGM_FRLG_ISLAND_ONE, 547 - .equiv BGM_FRLG_ISLAND_FOUR, 548 - .equiv BGM_FRLG_ISLAND_SIX, 549 - .equiv BGM_FRLG_FLUTE, 550 - .equiv BGM_FRLG_BATTLE_DEOXYS, 551 - .equiv BGM_FRLG_BATTLE_MEWTWO, 552 - .equiv BGM_FRLG_BATTLE_LEGENDARY, 553 - .equiv BGM_FRLG_LEADER_EYE, 554 - .equiv BGM_FRLG_DEOXYS_EYE, 555 - .equiv BGM_FRLG_TRAINER_TOWER, 556 - .equiv BGM_FRLG_HALL_OF_FAME_PALLET_TOWN, 557 - .equiv BGM_FRLG_TEACHY_TV, 558 - - .equiv BGM_ROUTE_118, 0x7fff diff --git a/constants/variables.inc b/constants/variables.inc deleted file mode 100644 index 47748891b..000000000 --- a/constants/variables.inc +++ /dev/null @@ -1,278 +0,0 @@ - .equiv VAR_0x4000, 0x4000 - .equiv VAR_0x4001, 0x4001 - .equiv VAR_0x4002, 0x4002 - .equiv VAR_0x4003, 0x4003 - .equiv VAR_0x4004, 0x4004 - .equiv VAR_0x4005, 0x4005 - .equiv VAR_0x4006, 0x4006 - .equiv VAR_0x4007, 0x4007 - .equiv VAR_0x4008, 0x4008 - .equiv VAR_0x4009, 0x4009 - .equiv VAR_0x400A, 0x400A - .equiv VAR_0x400B, 0x400B - .equiv VAR_0x400C, 0x400C - .equiv VAR_0x400D, 0x400D - .equiv VAR_0x400E, 0x400E - .equiv VAR_0x400F, 0x400F - .equiv VAR_0x4010, 0x4010 - .equiv VAR_0x4011, 0x4011 - .equiv VAR_0x4012, 0x4012 - .equiv VAR_0x4013, 0x4013 - .equiv VAR_0x4014, 0x4014 - .equiv VAR_0x4015, 0x4015 - .equiv VAR_0x4016, 0x4016 - .equiv VAR_0x4017, 0x4017 - .equiv VAR_0x4018, 0x4018 - .equiv VAR_0x4019, 0x4019 - .equiv VAR_0x401A, 0x401A - .equiv VAR_0x401B, 0x401B - .equiv VAR_0x401C, 0x401C - .equiv VAR_0x401D, 0x401D - .equiv VAR_0x401E, 0x401E - .equiv VAR_0x401F, 0x401F - .equiv VAR_RECYCLE_GOODS, 0x4020 - .equiv VAR_REPEL_STEP_COUNT, 0x4021 - .equiv VAR_ICE_STEP_COUNT, 0x4022 - .equiv VAR_FIRST_POKE, 0x4023 - .equiv VAR_MIRAGE_RND_H, 0x4024 - .equiv VAR_MIRAGE_RND_L, 0x4025 - .equiv VAR_SECRET_BASE_MAP, 0x4026 - .equiv VAR_0x4027, 0x4027 - .equiv VAR_0x4028, 0x4028 - .equiv VAR_0x4029, 0x4029 - .equiv VAR_HAPPINESS_STEP_COUNTER, 0x402A - .equiv VAR_POISON_STEP_COUNTER, 0x402B - .equiv VAR_RESET_RTC_ENABLE, 0x402C - .equiv VAR_0x402D, 0x402D - .equiv VAR_0x402E, 0x402E - .equiv VAR_0x402F, 0x402F - .equiv VAR_0x4030, 0x4030 - .equiv VAR_0x4031, 0x4031 - .equiv VAR_0x4032, 0x4032 - .equiv VAR_0x4033, 0x4033 - .equiv VAR_0x4034, 0x4034 - .equiv VAR_0x4035, 0x4035 - .equiv VAR_STORAGE_UNKNOWN, 0x4036 - .equiv VAR_0x4037, 0x4037 - .equiv VAR_0x4038, 0x4038 - .equiv VAR_0x4039, 0x4039 - .equiv VAR_0x403A, 0x403A - .equiv VAR_0x403B, 0x403B - .equiv VAR_0x403C, 0x403C - .equiv VAR_0x403D, 0x403D - .equiv VAR_ALTERING_CAVE_WILD_SET, 0x403E - .equiv VAR_0x403F, 0x403F - .equiv VAR_DAYS, 0x4040 - .equiv VAR_0x4041, 0x4041 - .equiv VAR_0x4042, 0x4042 - .equiv VAR_DEPT_STORE_FLOOR, 0x4043 - .equiv VAR_0x4044, 0x4044 - .equiv VAR_POKELOT_PRIZE, 0x4045 - .equiv VAR_NATIONAL_DEX, 0x4046 - .equiv VAR_SEEDOT_SIZE_RECORD, 0x4047 - .equiv VAR_ASH_GATHER_COUNT, 0x4048 - .equiv VAR_BIRCH_STATE, 0x4049 - .equiv VAR_CRUISE_STEP_COUNT, 0x404A - .equiv VAR_POKELOT_RND1, 0x404B - .equiv VAR_POKELOT_RND2, 0x404C - .equiv VAR_0x404D, 0x404D - .equiv VAR_0x404E, 0x404E - .equiv VAR_LOTAD_SIZE_RECORD, 0x404F - .equiv VAR_0x4050, 0x4050 - .equiv VAR_0x4051, 0x4051 - .equiv VAR_0x4052, 0x4052 - .equiv VAR_0x4053, 0x4053 - .equiv VAR_0x4054, 0x4054 - .equiv VAR_0x4055, 0x4055 - .equiv VAR_0x4056, 0x4056 - .equiv VAR_0x4057, 0x4057 - .equiv VAR_0x4058, 0x4058 - .equiv VAR_0x4059, 0x4059 - .equiv VAR_0x405A, 0x405A - .equiv VAR_0x405B, 0x405B - .equiv VAR_0x405C, 0x405C - .equiv VAR_0x405D, 0x405D - .equiv VAR_0x405E, 0x405E - .equiv VAR_0x405F, 0x405F - .equiv VAR_0x4060, 0x4060 - .equiv VAR_0x4061, 0x4061 - .equiv VAR_0x4062, 0x4062 - .equiv VAR_0x4063, 0x4063 - .equiv VAR_0x4064, 0x4064 - .equiv VAR_0x4065, 0x4065 - .equiv VAR_0x4066, 0x4066 - .equiv VAR_0x4067, 0x4067 - .equiv VAR_0x4068, 0x4068 - .equiv VAR_0x4069, 0x4069 - .equiv VAR_0x406A, 0x406A - .equiv VAR_0x406B, 0x406B - .equiv VAR_0x406C, 0x406C - .equiv VAR_0x406D, 0x406D - .equiv VAR_0x406E, 0x406E - .equiv VAR_0x406F, 0x406F - .equiv VAR_0x4070, 0x4070 - .equiv VAR_0x4071, 0x4071 - .equiv VAR_0x4072, 0x4072 - .equiv VAR_0x4073, 0x4073 - .equiv VAR_0x4074, 0x4074 - .equiv VAR_0x4075, 0x4075 - .equiv VAR_0x4076, 0x4076 - .equiv VAR_0x4077, 0x4077 - .equiv VAR_0x4078, 0x4078 - .equiv VAR_0x4079, 0x4079 - .equiv VAR_0x407A, 0x407A - .equiv VAR_0x407B, 0x407B - .equiv VAR_0x407C, 0x407C - .equiv VAR_0x407D, 0x407D - .equiv VAR_0x407E, 0x407E - .equiv VAR_0x407F, 0x407F - .equiv VAR_0x4080, 0x4080 - .equiv VAR_0x4081, 0x4081 - .equiv VAR_0x4082, 0x4082 - .equiv VAR_0x4083, 0x4083 - .equiv VAR_0x4084, 0x4084 - .equiv VAR_0x4085, 0x4085 - .equiv VAR_0x4086, 0x4086 - .equiv VAR_0x4087, 0x4087 - .equiv VAR_0x4088, 0x4088 - .equiv VAR_0x4089, 0x4089 - .equiv VAR_0x408A, 0x408A - .equiv VAR_0x408B, 0x408B - .equiv VAR_0x408C, 0x408C - .equiv VAR_0x408D, 0x408D - .equiv VAR_0x408E, 0x408E - .equiv VAR_0x408F, 0x408F - .equiv VAR_0x4090, 0x4090 - .equiv VAR_0x4091, 0x4091 - .equiv VAR_0x4092, 0x4092 - .equiv VAR_0x4093, 0x4093 - .equiv VAR_0x4094, 0x4094 - .equiv VAR_0x4095, 0x4095 - .equiv VAR_0x4096, 0x4096 - .equiv VAR_0x4097, 0x4097 - .equiv VAR_0x4098, 0x4098 - .equiv VAR_0x4099, 0x4099 - .equiv VAR_0x409A, 0x409A - .equiv VAR_0x409B, 0x409B - .equiv VAR_0x409C, 0x409C - .equiv VAR_0x409D, 0x409D - .equiv VAR_0x409E, 0x409E - .equiv VAR_0x409F, 0x409F - .equiv VAR_0x40A0, 0x40A0 - .equiv VAR_0x40A1, 0x40A1 - .equiv VAR_0x40A2, 0x40A2 - .equiv VAR_0x40A3, 0x40A3 - .equiv VAR_0x40A4, 0x40A4 - .equiv VAR_0x40A5, 0x40A5 - .equiv VAR_0x40A6, 0x40A6 - .equiv VAR_0x40A7, 0x40A7 - .equiv VAR_0x40A8, 0x40A8 - .equiv VAR_0x40A9, 0x40A9 - .equiv VAR_0x40AA, 0x40AA - .equiv VAR_0x40AB, 0x40AB - .equiv VAR_0x40AC, 0x40AC - .equiv VAR_0x40AD, 0x40AD - .equiv VAR_0x40AE, 0x40AE - .equiv VAR_0x40AF, 0x40AF - .equiv VAR_0x40B0, 0x40B0 - .equiv VAR_0x40B1, 0x40B1 - .equiv VAR_0x40B2, 0x40B2 - .equiv VAR_0x40B3, 0x40B3 - .equiv VAR_PORTHOLE, 0x40B4 - .equiv VAR_0x40B5, 0x40B5 - .equiv VAR_0x40B6, 0x40B6 - .equiv VAR_0x40B7, 0x40B7 - .equiv VAR_0x40B8, 0x40B8 - .equiv VAR_0x40B9, 0x40B9 - .equiv VAR_0x40BA, 0x40BA - .equiv VAR_0x40BB, 0x40BB - .equiv VAR_0x40BC, 0x40BC - .equiv VAR_0x40BD, 0x40BD - .equiv VAR_0x40BE, 0x40BE - .equiv VAR_0x40BF, 0x40BF - .equiv VAR_0x40C0, 0x40C0 - .equiv VAR_0x40C1, 0x40C1 - .equiv VAR_0x40C2, 0x40C2 - .equiv VAR_0x40C3, 0x40C3 - .equiv VAR_0x40C4, 0x40C4 - .equiv VAR_0x40C5, 0x40C5 - .equiv VAR_0x40C6, 0x40C6 - .equiv VAR_0x40C7, 0x40C7 - .equiv VAR_0x40C8, 0x40C8 - .equiv VAR_0x40C9, 0x40C9 - .equiv VAR_0x40CA, 0x40CA - .equiv VAR_0x40CB, 0x40CB - .equiv VAR_0x40CC, 0x40CC - .equiv VAR_0x40CD, 0x40CD - .equiv VAR_0x40CE, 0x40CE - .equiv VAR_FRONTIER_FACILITY, 0x40CF - .equiv VAR_0x40D0, 0x40D0 - .equiv VAR_0x40D1, 0x40D1 - .equiv VAR_0x40D2, 0x40D2 - .equiv VAR_0x40D3, 0x40D3 - .equiv VAR_0x40D4, 0x40D4 - .equiv VAR_0x40D5, 0x40D5 - .equiv VAR_0x40D6, 0x40D6 - .equiv VAR_0x40D7, 0x40D7 - .equiv VAR_0x40D8, 0x40D8 - .equiv VAR_0x40D9, 0x40D9 - .equiv VAR_0x40DA, 0x40DA - .equiv VAR_0x40DB, 0x40DB - .equiv VAR_0x40DC, 0x40DC - .equiv VAR_0x40DD, 0x40DD - .equiv VAR_0x40DE, 0x40DE - .equiv VAR_0x40DF, 0x40DF - .equiv VAR_0x40E0, 0x40E0 - .equiv VAR_0x40E1, 0x40E1 - .equiv VAR_0x40E2, 0x40E2 - .equiv VAR_0x40E3, 0x40E3 - .equiv VAR_0x40E4, 0x40E4 - .equiv VAR_0x40E5, 0x40E5 - .equiv VAR_DAILY_SLOTS, 0x40E6 - .equiv VAR_DAILY_WILDS, 0x40E7 - .equiv VAR_DAILY_BLENDER, 0x40E8 - .equiv VAR_DAILY_PLANTED_BERRIES, 0x40E9 - .equiv VAR_DAILY_PICKED_BERRIES, 0x40EA - .equiv VAR_DAILY_ROULETTE, 0x40EB - .equiv VAR_0x40EC, 0x40EC - .equiv VAR_0x40ED, 0x40ED - .equiv VAR_0x40EE, 0x40EE - .equiv VAR_0x40EF, 0x40EF - .equiv VAR_0x40F0, 0x40F0 - .equiv VAR_DAILY_BP, 0x40F1 - .equiv VAR_0x40F2, 0x40F2 - .equiv VAR_0x40F3, 0x40F3 - .equiv VAR_0x40F4, 0x40F4 - .equiv VAR_0x40F5, 0x40F5 - .equiv VAR_0x40F6, 0x40F6 - .equiv VAR_0x40F7, 0x40F7 - .equiv VAR_0x40F8, 0x40F8 - .equiv VAR_0x40F9, 0x40F9 - .equiv VAR_0x40FA, 0x40FA - .equiv VAR_0x40FB, 0x40FB - .equiv VAR_0x40FC, 0x40FC - .equiv VAR_0x40FD, 0x40FD - .equiv VAR_0x40FE, 0x40FE - .equiv VAR_0x40FF, 0x40FF - - .equiv VAR_0x8000, 0x8000 - .equiv VAR_0x8001, 0x8001 - .equiv VAR_0x8002, 0x8002 - .equiv VAR_0x8003, 0x8003 - .equiv VAR_0x8004, 0x8004 - .equiv VAR_0x8005, 0x8005 - .equiv VAR_0x8006, 0x8006 - .equiv VAR_0x8007, 0x8007 - .equiv VAR_0x8008, 0x8008 - .equiv VAR_0x8009, 0x8009 - .equiv VAR_0x800A, 0x800A - .equiv VAR_0x800B, 0x800B - .equiv VAR_FACING, 0x800C - .equiv VAR_RESULT, 0x800D - .equiv VAR_ITEM_ID, 0x800E - .equiv VAR_LAST_TALKED, 0x800F - .equiv VAR_CONTEST_RANK, 0x8010 - .equiv VAR_CONTEST_CATEGORY, 0x8011 - .equiv VAR_MON_BOX_ID, 0x8012 - .equiv VAR_MON_BOX_POS, 0x8013 - .equiv VAR_0x8014, 0x8014 diff --git a/data/battle_frontier/battle_frontier_mons.inc b/data/battle_frontier/battle_frontier_mons.inc index 47ba6b4ef..6b77c8378 100644 --- a/data/battle_frontier/battle_frontier_mons.inc +++ b/data/battle_frontier/battle_frontier_mons.inc @@ -960,7 +960,7 @@ gBattleFrontierMons:: @ 85D97BC .4byte NATURE_DOCILE @ 137 - .2byte SPECIES_FARFETCH_D + .2byte SPECIES_FARFETCHD .2byte MOVE_SLASH, MOVE_KNOCK_OFF, MOVE_SWORDS_DANCE, MOVE_AGILITY .byte BATTLE_FRONTIER_ITEM_STICK .byte F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP diff --git a/data/battle_frontier/battle_frontier_trainers.inc b/data/battle_frontier/battle_frontier_trainers.inc index fc8f29261..fc97ffe89 100644 --- a/data/battle_frontier/battle_frontier_trainers.inc +++ b/data/battle_frontier/battle_frontier_trainers.inc @@ -4,389 +4,389 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_YOUNGSTER .string "BRADY$", 8 @ pre-battle speech - ec_word I_AM - ec_word NEVER - ec_word GOING - ec_word TO - ec_word LOSE - ec_word EXCL -@ win speech - ec_word I_AM - ec_word STRONG - ec_word AREN_T - ec_word I - ec_word QUES - .2byte -1 -@ loss speech - ec_word WHAT - ec_word QUES - .2byte -1 - ec_word BUT - ec_word HOW - ec_word QUES + .2byte EC_WORD_I_AM + .2byte EC_WORD_NEVER + .2byte EC_WORD_GOING + .2byte EC_WORD_TO + .2byte EC_WORD_LOSE + .2byte EC_WORD_EXCL +@ win speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_STRONG + .2byte EC_WORD_AREN_T + .2byte EC_WORD_I + .2byte EC_WORD_QUES + .2byte -1 +@ loss speech + .2byte EC_WORD_WHAT + .2byte EC_WORD_QUES + .2byte -1 + .2byte EC_WORD_BUT + .2byte EC_WORD_HOW + .2byte EC_WORD_QUES .4byte gBattleFrontierTrainerMons_Brady @ 1 .4byte TRAINER_CLASS_YOUNGSTER .string "CONNER$", 8 @ pre-battle speech - ec_word LOSING - ec_word DOESN_T - ec_word BUG - ec_word ME + .2byte EC_WORD_LOSING + .2byte EC_WORD_DOESN_T + .2byte EC_WORD_BUG + .2byte EC_WORD_ME .2byte -1 .2byte -1 @ win speech - ec_word A - ec_word WIN - ec_word IS - ec_word JUST - ec_word AWESOME + .2byte EC_WORD_A + .2byte EC_WORD_WIN + .2byte EC_WORD_IS + .2byte EC_WORD_JUST + .2byte EC_WORD_AWESOME .2byte -1 @ loss speech - ec_word DARN - ec_word ELLIPSIS - ec_word LOSING - ec_word DOES - ec_word BUG - ec_word ME + .2byte EC_WORD_DARN + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_LOSING + .2byte EC_WORD_DOES + .2byte EC_WORD_BUG + .2byte EC_WORD_ME .4byte gBattleFrontierTrainerMons_Conner @ 2 .4byte TRAINER_CLASS_YOUNGSTER .string "BRADLEY$", 8 @ pre-battle speech - ec_word HEY_THERE - ec_word EXCL - ec_word YOU_RE - ec_word MY - ec_word OPPONENT - ec_word TODAY -@ win speech - ec_word HAHAHA - ec_word EXCL - .2byte -1 - ec_word SEE_YA - ec_word LATER - ec_word EXCL -@ loss speech - ec_word TOMORROW - ec_word IS - ec_word WHEN - ec_word WE - ec_word REALLY - ec_word BATTLE + .2byte EC_WORD_HEY_THERE + .2byte EC_WORD_EXCL + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_MY + .2byte EC_WORD_OPPONENT + .2byte EC_WORD_TODAY +@ win speech + .2byte EC_WORD_HAHAHA + .2byte EC_WORD_EXCL + .2byte -1 + .2byte EC_WORD_SEE_YA + .2byte EC_WORD_LATER + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_TOMORROW + .2byte EC_WORD_IS + .2byte EC_WORD_WHEN + .2byte EC_WORD_WE + .2byte EC_WORD_REALLY + .2byte EC_WORD_BATTLE .4byte gBattleFrontierTrainerMons_Bradley @ 3 .4byte TRAINER_CLASS_LASS .string "CYBIL$", 8 @ pre-battle speech - ec_word YOU_RE - ec_word REALLY - ec_word NOT_VERY - ec_word SCARY - ec_word AT - ec_word ALL -@ win speech - ec_word IT_S - ec_word SAD - ec_word TO - ec_word SEE - ec_word YOU - ec_move2 STRUGGLE -@ loss speech - ec_word THIS - ec_word CAN_T - ec_word BE - ec_word HAPPENING - ec_word TO_ME - ec_word EXCL + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_REALLY + .2byte EC_WORD_NOT_VERY + .2byte EC_WORD_SCARY + .2byte EC_WORD_AT + .2byte EC_WORD_ALL +@ win speech + .2byte EC_WORD_IT_S + .2byte EC_WORD_SAD + .2byte EC_WORD_TO + .2byte EC_WORD_SEE + .2byte EC_WORD_YOU + .2byte EC_MOVE2(STRUGGLE) +@ loss speech + .2byte EC_WORD_THIS + .2byte EC_WORD_CAN_T + .2byte EC_WORD_BE + .2byte EC_WORD_HAPPENING + .2byte EC_WORD_TO_ME + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Cybil @ 4 .4byte TRAINER_CLASS_LASS .string "RODETTE$", 8 @ pre-battle speech - ec_word OH - ec_word THIS - ec_word IS - ec_word SO - ec_word EXCITING - ec_word EXCL -@ win speech - ec_word IT_S - ec_word INCREDIBLE - ec_word HOW - ec_word STRONG - ec_word I_AM - ec_word EXCL -@ loss speech - ec_word OH_DEAR - ec_word ELLIPSIS - ec_word I_AM - ec_word JUST - ec_word NO - ec_word GOOD + .2byte EC_WORD_OH + .2byte EC_WORD_THIS + .2byte EC_WORD_IS + .2byte EC_WORD_SO + .2byte EC_WORD_EXCITING + .2byte EC_WORD_EXCL +@ win speech + .2byte EC_WORD_IT_S + .2byte EC_WORD_INCREDIBLE + .2byte EC_WORD_HOW + .2byte EC_WORD_STRONG + .2byte EC_WORD_I_AM + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_OH_DEAR + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_I_AM + .2byte EC_WORD_JUST + .2byte EC_WORD_NO + .2byte EC_WORD_GOOD .4byte gBattleFrontierTrainerMons_Rodette @ 5 .4byte TRAINER_CLASS_LASS .string "PEGGY$", 8 @ pre-battle speech - ec_word GET - ec_word READY - ec_word TO - ec_word BE - ec_word DESTROYED - ec_word EXCL -@ win speech - ec_word HAHAHA - ec_word EXCL_EXCL - .2byte -1 - ec_word I_AM - ec_word LOLLING - ec_word EXCL -@ loss speech - ec_word I_AM - ec_word FEELING - ec_word SAD - ec_word THANKS - ec_word TO - ec_word YOU + .2byte EC_WORD_GET + .2byte EC_WORD_READY + .2byte EC_WORD_TO + .2byte EC_WORD_BE + .2byte EC_WORD_DESTROYED + .2byte EC_WORD_EXCL +@ win speech + .2byte EC_WORD_HAHAHA + .2byte EC_WORD_EXCL_EXCL + .2byte -1 + .2byte EC_WORD_I_AM + .2byte EC_WORD_LOLLING + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_FEELING + .2byte EC_WORD_SAD + .2byte EC_WORD_THANKS + .2byte EC_WORD_TO + .2byte EC_WORD_YOU .4byte gBattleFrontierTrainerMons_Peggy @ 6 .4byte TRAINER_CLASS_SCHOOL_KID_1 .string "KEITH$", 8 @ pre-battle speech - ec_word I - ec_word DON_T - ec_word JUST - ec_word STUDY - ec_word YOU - ec_word KNOW -@ win speech - ec_word YOU - ec_word DON_T - ec_word STUDY - ec_word ENOUGH - ec_word ELLIPSIS - .2byte -1 -@ loss speech - ec_word I - ec_word NEED - ec_word TO - ec_word STUDY - ec_word MORE - ec_word ELLIPSIS + .2byte EC_WORD_I + .2byte EC_WORD_DON_T + .2byte EC_WORD_JUST + .2byte EC_WORD_STUDY + .2byte EC_WORD_YOU + .2byte EC_WORD_KNOW +@ win speech + .2byte EC_WORD_YOU + .2byte EC_WORD_DON_T + .2byte EC_WORD_STUDY + .2byte EC_WORD_ENOUGH + .2byte EC_WORD_ELLIPSIS + .2byte -1 +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_NEED + .2byte EC_WORD_TO + .2byte EC_WORD_STUDY + .2byte EC_WORD_MORE + .2byte EC_WORD_ELLIPSIS .4byte gBattleFrontierTrainerMons_Keith @ 7 .4byte TRAINER_CLASS_SCHOOL_KID_1 .string "GRAYSON$", 8 @ pre-battle speech - ec_word A - ec_word POKEMON - ec_word BATTLE - ec_word ISN_T - ec_word CHILD_S_PLAY - ec_word EXCL -@ win speech - ec_word YOU_RE - ec_word DONE - ec_word AREN_T - ec_word YOU - ec_word QUES - .2byte -1 -@ loss speech - ec_word WE - ec_word WERE - ec_word LIKE - ec_word TOYS - ec_word TO - ec_word YOU + .2byte EC_WORD_A + .2byte EC_WORD_POKEMON + .2byte EC_WORD_BATTLE + .2byte EC_WORD_ISN_T + .2byte EC_WORD_CHILD_S_PLAY + .2byte EC_WORD_EXCL +@ win speech + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_DONE + .2byte EC_WORD_AREN_T + .2byte EC_WORD_YOU + .2byte EC_WORD_QUES + .2byte -1 +@ loss speech + .2byte EC_WORD_WE + .2byte EC_WORD_WERE + .2byte EC_WORD_LIKE + .2byte EC_WORD_TOYS + .2byte EC_WORD_TO + .2byte EC_WORD_YOU .4byte gBattleFrontierTrainerMons_Grayson @ 8 .4byte TRAINER_CLASS_SCHOOL_KID_1 .string "GLENN$", 8 @ pre-battle speech - ec_word I - ec_word WOULD - ec_word BE - ec_word COOL - ec_word IF_I_WIN + .2byte EC_WORD_I + .2byte EC_WORD_WOULD + .2byte EC_WORD_BE + .2byte EC_WORD_COOL + .2byte EC_WORD_IF_I_WIN .2byte -1 @ win speech - ec_word COOL - ec_word EXCL + .2byte EC_WORD_COOL + .2byte EC_WORD_EXCL .2byte -1 - ec_word THAT_S - ec_word WHAT - ec_word I_AM + .2byte EC_WORD_THAT_S + .2byte EC_WORD_WHAT + .2byte EC_WORD_I_AM @ loss speech - ec_word I_AM - ec_word NOT - ec_word GOING - ec_word TO - ec_word BE - ec_word COOL + .2byte EC_WORD_I_AM + .2byte EC_WORD_NOT + .2byte EC_WORD_GOING + .2byte EC_WORD_TO + .2byte EC_WORD_BE + .2byte EC_WORD_COOL .4byte gBattleFrontierTrainerMons_Glenn @ 9 .4byte TRAINER_CLASS_SCHOOL_KID_2 .string "LILIANA$", 8 @ pre-battle speech - ec_word I - ec_word WON_T - ec_word GIVE_UP - ec_word UNTIL - ec_word I - ec_word WIN -@ win speech - ec_word THERE - ec_word IS - ec_word NO - ec_word SURRENDER - ec_word IN - ec_word ME -@ loss speech - ec_word THAT_S - ec_word IT - ec_word ELLIPSIS - ec_word I - ec_word GIVE_UP - ec_word ELLIPSIS + .2byte EC_WORD_I + .2byte EC_WORD_WON_T + .2byte EC_WORD_GIVE_UP + .2byte EC_WORD_UNTIL + .2byte EC_WORD_I + .2byte EC_WORD_WIN +@ win speech + .2byte EC_WORD_THERE + .2byte EC_WORD_IS + .2byte EC_WORD_NO + .2byte EC_WORD_SURRENDER + .2byte EC_WORD_IN + .2byte EC_WORD_ME +@ loss speech + .2byte EC_WORD_THAT_S + .2byte EC_WORD_IT + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_I + .2byte EC_WORD_GIVE_UP + .2byte EC_WORD_ELLIPSIS .4byte gBattleFrontierTrainerMons_Liliana @ 10 .4byte TRAINER_CLASS_SCHOOL_KID_2 .string "ELISE$", 8 @ pre-battle speech - ec_word MY - ec_word STRATEGY - ec_word IS - ec_word FROM - ec_word MY - ec_word FATHER -@ win speech - ec_word I - ec_word WIN - ec_word EXCL - ec_word FATHER - ec_word I_VE - ec_word WON -@ loss speech - ec_word FORGIVE - ec_word ME - ec_word FATHER - ec_word FOR - ec_word I_VE - ec_word LOST + .2byte EC_WORD_MY + .2byte EC_WORD_STRATEGY + .2byte EC_WORD_IS + .2byte EC_WORD_FROM + .2byte EC_WORD_MY + .2byte EC_WORD_FATHER +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_WIN + .2byte EC_WORD_EXCL + .2byte EC_WORD_FATHER + .2byte EC_WORD_I_VE + .2byte EC_WORD_WON +@ loss speech + .2byte EC_WORD_FORGIVE + .2byte EC_WORD_ME + .2byte EC_WORD_FATHER + .2byte EC_WORD_FOR + .2byte EC_WORD_I_VE + .2byte EC_WORD_LOST .4byte gBattleFrontierTrainerMons_Elise @ 11 .4byte TRAINER_CLASS_SCHOOL_KID_2 .string "ZOEY$", 8 @ pre-battle speech - ec_word PLEASE - ec_word BATTLE - ec_word LIKE - ec_word YOU - ec_word MEAN - ec_word IT -@ win speech - ec_word THANK_YOU - ec_word EXCL_EXCL - .2byte -1 - ec_word THANK_YOU - ec_word SO - ec_word MUCH -@ loss speech - ec_word WERE - ec_word YOU - ec_word REALLY - ec_word BEING - ec_word SERIOUS - ec_word QUES + .2byte EC_WORD_PLEASE + .2byte EC_WORD_BATTLE + .2byte EC_WORD_LIKE + .2byte EC_WORD_YOU + .2byte EC_WORD_MEAN + .2byte EC_WORD_IT +@ win speech + .2byte EC_WORD_THANK_YOU + .2byte EC_WORD_EXCL_EXCL + .2byte -1 + .2byte EC_WORD_THANK_YOU + .2byte EC_WORD_SO + .2byte EC_WORD_MUCH +@ loss speech + .2byte EC_WORD_WERE + .2byte EC_WORD_YOU + .2byte EC_WORD_REALLY + .2byte EC_WORD_BEING + .2byte EC_WORD_SERIOUS + .2byte EC_WORD_QUES .4byte gBattleFrontierTrainerMons_Zoey @ 12 .4byte TRAINER_CLASS_RICH_BOY .string "MANUEL$", 8 @ pre-battle speech - ec_word ME - ec_word LOSE - ec_word QUES - ec_word THAT_S - ec_word PREPOSTEROUS - ec_word EXCL + .2byte EC_WORD_ME + .2byte EC_WORD_LOSE + .2byte EC_WORD_QUES + .2byte EC_WORD_THAT_S + .2byte EC_WORD_PREPOSTEROUS + .2byte EC_WORD_EXCL @ win speech - ec_word NATURALLY - ec_word I - ec_word WIN + .2byte EC_WORD_NATURALLY + .2byte EC_WORD_I + .2byte EC_WORD_WIN .2byte -1 .2byte -1 .2byte -1 @ loss speech - ec_word WAAAH - ec_word EXCL + .2byte EC_WORD_WAAAH + .2byte EC_WORD_EXCL .2byte -1 - ec_word I - ec_word LOST - ec_word MOTHER + .2byte EC_WORD_I + .2byte EC_WORD_LOST + .2byte EC_WORD_MOTHER .4byte gBattleFrontierTrainerMons_Manuel @ 13 .4byte TRAINER_CLASS_RICH_BOY .string "RUSS$", 8 @ pre-battle speech - ec_word THEY - ec_word ALL - ec_word WANT - ec_word MY - ec_word FABULOUS - ec_word POKEMON -@ win speech - ec_word I - ec_word WILL - ec_word HAVE - ec_word A - ec_word POKEMON - ec_word PARTY -@ loss speech - ec_word HOW - ec_word COULD - ec_word YOU - ec_word DO - ec_word THAT - ec_word QUES + .2byte EC_WORD_THEY + .2byte EC_WORD_ALL + .2byte EC_WORD_WANT + .2byte EC_WORD_MY + .2byte EC_WORD_FABULOUS + .2byte EC_WORD_POKEMON +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_WILL + .2byte EC_WORD_HAVE + .2byte EC_WORD_A + .2byte EC_WORD_POKEMON + .2byte EC_WORD_PARTY +@ loss speech + .2byte EC_WORD_HOW + .2byte EC_WORD_COULD + .2byte EC_WORD_YOU + .2byte EC_WORD_DO + .2byte EC_WORD_THAT + .2byte EC_WORD_QUES .4byte gBattleFrontierTrainerMons_Russ @ 14 .4byte TRAINER_CLASS_RICH_BOY .string "DUSTIN$", 8 @ pre-battle speech - ec_word I - ec_word REALLY - ec_word LIKE - ec_word COOL - ec_word POKEMON + .2byte EC_WORD_I + .2byte EC_WORD_REALLY + .2byte EC_WORD_LIKE + .2byte EC_WORD_COOL + .2byte EC_WORD_POKEMON .2byte -1 @ win speech - ec_word I - ec_word LIKE - ec_word MYSELF - ec_word WHEN_I_WIN - ec_word EXCL + .2byte EC_WORD_I + .2byte EC_WORD_LIKE + .2byte EC_WORD_MYSELF + .2byte EC_WORD_WHEN_I_WIN + .2byte EC_WORD_EXCL .2byte -1 @ loss speech - ec_word I - ec_word LIKE - ec_word MYSELF - ec_word IF_I_LOSE - ec_word TOO + .2byte EC_WORD_I + .2byte EC_WORD_LIKE + .2byte EC_WORD_MYSELF + .2byte EC_WORD_IF_I_LOSE + .2byte EC_WORD_TOO .2byte -1 .4byte gBattleFrontierTrainerMons_Dustin @@ -394,50 +394,50 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_LADY .string "TINA$", 8 @ pre-battle speech - ec_word IF_I_WIN - ec_word YOU - ec_word CAN - ec_word HAVE - ec_word A - ec_move2 SWEET_KISS -@ win speech - ec_word HERE_IT_IS - ec_word YOUR - ec_move2 SWEET_KISS - ec_word FROM - ec_word MY - ec_pokemon2 JYNX -@ loss speech - ec_word YOU - ec_word WANT - ec_word A - ec_move1 SWIFT - ec_move2 MEGA_KICK - ec_word INSTEAD + .2byte EC_WORD_IF_I_WIN + .2byte EC_WORD_YOU + .2byte EC_WORD_CAN + .2byte EC_WORD_HAVE + .2byte EC_WORD_A + .2byte EC_MOVE2(SWEET_KISS) +@ win speech + .2byte EC_WORD_HERE_IT_IS + .2byte EC_WORD_YOUR + .2byte EC_MOVE2(SWEET_KISS) + .2byte EC_WORD_FROM + .2byte EC_WORD_MY + .2byte EC_POKEMON2(JYNX) +@ loss speech + .2byte EC_WORD_YOU + .2byte EC_WORD_WANT + .2byte EC_WORD_A + .2byte EC_MOVE(SWIFT) + .2byte EC_MOVE2(MEGA_KICK) + .2byte EC_WORD_INSTEAD .4byte gBattleFrontierTrainerMons_Tina @ 16 .4byte TRAINER_CLASS_LADY .string "GILLIAN$", 8 @ pre-battle speech - ec_word THE - ec_word GOURMET - ec_word THING - ec_word IS - ec_word SO - ec_word YESTERDAY + .2byte EC_WORD_THE + .2byte EC_WORD_GOURMET + .2byte EC_WORD_THING + .2byte EC_WORD_IS + .2byte EC_WORD_SO + .2byte EC_WORD_YESTERDAY @ win speech - ec_word POKEMON - ec_word NEVER - ec_word GO - ec_word OUT - ec_word OF - ec_word FASHION + .2byte EC_WORD_POKEMON + .2byte EC_WORD_NEVER + .2byte EC_WORD_GO + .2byte EC_WORD_OUT + .2byte EC_WORD_OF + .2byte EC_WORD_FASHION @ loss speech - ec_word LOSING - ec_word DOESN_T - ec_word DISAPPOINT - ec_word ME + .2byte EC_WORD_LOSING + .2byte EC_WORD_DOESN_T + .2byte EC_WORD_DISAPPOINT + .2byte EC_WORD_ME .2byte -1 .2byte -1 .4byte gBattleFrontierTrainerMons_Gillian @@ -446,103 +446,103 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_LADY .string "ZOE$", 8 @ pre-battle speech - ec_word I - ec_word HAVEN_T - ec_word A - ec_word WORRY - ec_word AT - ec_word ALL -@ win speech - ec_word LIFE - ec_word IS - ec_word ALWAYS - ec_word GOOD - ec_word TO_ME - .2byte -1 -@ loss speech - ec_word I - ec_word WORRY - ec_word ABOUT - ec_word MY - ec_word POKEMON - ec_word SKILL + .2byte EC_WORD_I + .2byte EC_WORD_HAVEN_T + .2byte EC_WORD_A + .2byte EC_WORD_WORRY + .2byte EC_WORD_AT + .2byte EC_WORD_ALL +@ win speech + .2byte EC_WORD_LIFE + .2byte EC_WORD_IS + .2byte EC_WORD_ALWAYS + .2byte EC_WORD_GOOD + .2byte EC_WORD_TO_ME + .2byte -1 +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_WORRY + .2byte EC_WORD_ABOUT + .2byte EC_WORD_MY + .2byte EC_WORD_POKEMON + .2byte EC_WORD_SKILL .4byte gBattleFrontierTrainerMons_Zoe @ 18 .4byte TRAINER_CLASS_CAMPER .string "CHEN$", 8 @ pre-battle speech - ec_word I_AM - ec_word TOTALLY - ec_word READY - ec_word TO - ec_word ROCK - ec_word TODAY -@ win speech - ec_word I_AM - ec_word READY - ec_word TO - ec_word GO - ec_word ON - ec_word EXCL -@ loss speech - ec_word I_VE - ec_word LOST - ec_word MY - ec_move1 FOCUS_ENERGY - ec_word AND - ec_word TOUGHNESS + .2byte EC_WORD_I_AM + .2byte EC_WORD_TOTALLY + .2byte EC_WORD_READY + .2byte EC_WORD_TO + .2byte EC_WORD_ROCK + .2byte EC_WORD_TODAY +@ win speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_READY + .2byte EC_WORD_TO + .2byte EC_WORD_GO + .2byte EC_WORD_ON + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_I_VE + .2byte EC_WORD_LOST + .2byte EC_WORD_MY + .2byte EC_MOVE(FOCUS_ENERGY) + .2byte EC_WORD_AND + .2byte EC_WORD_TOUGHNESS .4byte gBattleFrontierTrainerMons_Chen @ 19 .4byte TRAINER_CLASS_CAMPER .string "AL$", 8 @ pre-battle speech - ec_word YOUR - ec_word LOOK - ec_word SAYS - ec_word YOU_RE - ec_word REALLY - ec_word TOUGH -@ win speech - ec_word IT_S - ec_word ME - ec_word WHO_IS - ec_word REALLY - ec_word TOUGH - .2byte -1 -@ loss speech - ec_word I_AM - ec_word RIGHT - ec_word EXCL - ec_word YOU_RE - ec_word REALLY - ec_word TOUGH + .2byte EC_WORD_YOUR + .2byte EC_WORD_LOOK + .2byte EC_WORD_SAYS + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_REALLY + .2byte EC_WORD_TOUGH +@ win speech + .2byte EC_WORD_IT_S + .2byte EC_WORD_ME + .2byte EC_WORD_WHO_IS + .2byte EC_WORD_REALLY + .2byte EC_WORD_TOUGH + .2byte -1 +@ loss speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_RIGHT + .2byte EC_WORD_EXCL + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_REALLY + .2byte EC_WORD_TOUGH .4byte gBattleFrontierTrainerMons_Al @ 20 .4byte TRAINER_CLASS_CAMPER .string "MITCH$", 8 @ pre-battle speech - ec_word MOTHER - ec_word NATURE - ec_word IS - ec_word MY - ec_word ALLY - ec_word EXCL -@ win speech - ec_word WAS - ec_word THAT - ec_word ENOUGH - ec_word FOR - ec_word YOU - ec_word QUES -@ loss speech - ec_word MOTHER - ec_word NATURE - ec_word DIDN_T - ec_word LET_ME_WIN - ec_word QUES + .2byte EC_WORD_MOTHER + .2byte EC_WORD_NATURE + .2byte EC_WORD_IS + .2byte EC_WORD_MY + .2byte EC_WORD_ALLY + .2byte EC_WORD_EXCL +@ win speech + .2byte EC_WORD_WAS + .2byte EC_WORD_THAT + .2byte EC_WORD_ENOUGH + .2byte EC_WORD_FOR + .2byte EC_WORD_YOU + .2byte EC_WORD_QUES +@ loss speech + .2byte EC_WORD_MOTHER + .2byte EC_WORD_NATURE + .2byte EC_WORD_DIDN_T + .2byte EC_WORD_LET_ME_WIN + .2byte EC_WORD_QUES .2byte -1 .4byte gBattleFrontierTrainerMons_Mitch @@ -550,25 +550,25 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_PICNICKER .string "ANNE$", 8 @ pre-battle speech - ec_word I - ec_word CAN_T - ec_word WAIT - ec_word LET_S - ec_word BATTLE - ec_word NOW + .2byte EC_WORD_I + .2byte EC_WORD_CAN_T + .2byte EC_WORD_WAIT + .2byte EC_WORD_LET_S + .2byte EC_WORD_BATTLE + .2byte EC_WORD_NOW @ win speech - ec_word MY - ec_word HAPPINESS - ec_word IS - ec_word OVERWHELMING - ec_word EXCL + .2byte EC_WORD_MY + .2byte EC_WORD_HAPPINESS + .2byte EC_WORD_IS + .2byte EC_WORD_OVERWHELMING + .2byte EC_WORD_EXCL .2byte -1 @ loss speech - ec_word YOU_VE - ec_word DESTROYED - ec_word MY - ec_word HAPPINESS - ec_word ELLIPSIS + .2byte EC_WORD_YOU_VE + .2byte EC_WORD_DESTROYED + .2byte EC_WORD_MY + .2byte EC_WORD_HAPPINESS + .2byte EC_WORD_ELLIPSIS .2byte -1 .4byte gBattleFrontierTrainerMons_Anne @@ -576,207 +576,207 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_PICNICKER .string "ALIZE$", 8 @ pre-battle speech - ec_word CUTE - ec_word AND - ec_word AWFULLY - ec_word STRONG - ec_word THAT_S - ec_word ME -@ win speech - ec_word YUP - ec_word I_AM - ec_word CUTE - ec_word AND - ec_word AWFULLY - ec_word STRONG -@ loss speech - ec_word I_AM - ec_word WEAK - ec_word ELLIPSIS - ec_word BUT - ec_word I_AM - ec_word CUTE + .2byte EC_WORD_CUTE + .2byte EC_WORD_AND + .2byte EC_WORD_AWFULLY + .2byte EC_WORD_STRONG + .2byte EC_WORD_THAT_S + .2byte EC_WORD_ME +@ win speech + .2byte EC_WORD_YUP + .2byte EC_WORD_I_AM + .2byte EC_WORD_CUTE + .2byte EC_WORD_AND + .2byte EC_WORD_AWFULLY + .2byte EC_WORD_STRONG +@ loss speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_WEAK + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_BUT + .2byte EC_WORD_I_AM + .2byte EC_WORD_CUTE .4byte gBattleFrontierTrainerMons_Alize @ 23 .4byte TRAINER_CLASS_PICNICKER .string "LAUREN$", 8 @ pre-battle speech - ec_word I_AM - ec_word OLD - ec_word BUT - ec_word I_AM - ec_word ALSO - ec_word GOOD -@ win speech - ec_word I - ec_word SAID - ec_word I_WAS - ec_word OLD - ec_word BUT - ec_word GOOD -@ loss speech - ec_word WHAT - ec_word A - ec_word WEIRD - ec_word DREAM - ec_word THAT_WAS - ec_word EXCL + .2byte EC_WORD_I_AM + .2byte EC_WORD_OLD + .2byte EC_WORD_BUT + .2byte EC_WORD_I_AM + .2byte EC_WORD_ALSO + .2byte EC_WORD_GOOD +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_SAID + .2byte EC_WORD_I_WAS + .2byte EC_WORD_OLD + .2byte EC_WORD_BUT + .2byte EC_WORD_GOOD +@ loss speech + .2byte EC_WORD_WHAT + .2byte EC_WORD_A + .2byte EC_WORD_WEIRD + .2byte EC_WORD_DREAM + .2byte EC_WORD_THAT_WAS + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Lauren @ 24 .4byte TRAINER_CLASS_TUBER_2 .string "KIPP$", 8 @ pre-battle speech - ec_word IF_I_WIN - ec_word I_AM - ec_word GOING - ec_word TO - ec_word GO - ec_move2 SURF -@ win speech - ec_word YEAH - ec_word EXCL - ec_word I_AM - ec_word OFF - ec_word TO - ec_move2 SURF -@ loss speech - ec_word OH - ec_word NO - ec_word EXCL - ec_word A - ec_move1 WHIRLPOOL - ec_word EXCL + .2byte EC_WORD_IF_I_WIN + .2byte EC_WORD_I_AM + .2byte EC_WORD_GOING + .2byte EC_WORD_TO + .2byte EC_WORD_GO + .2byte EC_MOVE2(SURF) +@ win speech + .2byte EC_WORD_YEAH + .2byte EC_WORD_EXCL + .2byte EC_WORD_I_AM + .2byte EC_WORD_OFF + .2byte EC_WORD_TO + .2byte EC_MOVE2(SURF) +@ loss speech + .2byte EC_WORD_OH + .2byte EC_WORD_NO + .2byte EC_WORD_EXCL + .2byte EC_WORD_A + .2byte EC_MOVE(WHIRLPOOL) + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Kipp @ 25 .4byte TRAINER_CLASS_TUBER_2 .string "JASON$", 8 @ pre-battle speech - ec_word TEACH - ec_word ME - ec_word A - ec_word GOOD - ec_word STRATEGY + .2byte EC_WORD_TEACH + .2byte EC_WORD_ME + .2byte EC_WORD_A + .2byte EC_WORD_GOOD + .2byte EC_WORD_STRATEGY .2byte -1 @ win speech - ec_word THAT_WAS - ec_word YOUR - ec_word GOOD - ec_word STRATEGY - ec_word QUES_EXCL + .2byte EC_WORD_THAT_WAS + .2byte EC_WORD_YOUR + .2byte EC_WORD_GOOD + .2byte EC_WORD_STRATEGY + .2byte EC_WORD_QUES_EXCL .2byte -1 @ loss speech - ec_word WOW - ec_word THAT - ec_word IS - ec_word AN - ec_word AWESOME - ec_word STRATEGY + .2byte EC_WORD_WOW + .2byte EC_WORD_THAT + .2byte EC_WORD_IS + .2byte EC_WORD_AN + .2byte EC_WORD_AWESOME + .2byte EC_WORD_STRATEGY .4byte gBattleFrontierTrainerMons_Jason @ 26 .4byte TRAINER_CLASS_TUBER_2 .string "JOHN$", 8 @ pre-battle speech - ec_word I_AM - ec_word A - ec_word PRETTY - ec_word NEW - ec_word TRAINER - .2byte -1 -@ win speech - ec_word I_AM - ec_word NEW - ec_word BUT - ec_word I - ec_word WON - ec_word EXCL -@ loss speech - ec_word I_AM - ec_word NEW - ec_word SO - ec_word WHAT - ec_word IF_I_LOSE - ec_word QUES + .2byte EC_WORD_I_AM + .2byte EC_WORD_A + .2byte EC_WORD_PRETTY + .2byte EC_WORD_NEW + .2byte EC_WORD_TRAINER + .2byte -1 +@ win speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_NEW + .2byte EC_WORD_BUT + .2byte EC_WORD_I + .2byte EC_WORD_WON + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_NEW + .2byte EC_WORD_SO + .2byte EC_WORD_WHAT + .2byte EC_WORD_IF_I_LOSE + .2byte EC_WORD_QUES .4byte gBattleFrontierTrainerMons_John @ 27 .4byte TRAINER_CLASS_TUBER_1 .string "ANN$", 8 @ pre-battle speech - ec_word IT_S - ec_word SO - ec_word EXCITING - ec_word IT - ec_word REALLY - ec_word IS -@ win speech - ec_word I_AM - ec_word SO - ec_word HAPPY - ec_word I - ec_word CAN - ec_word CRY -@ loss speech - ec_word I_AM - ec_word SO - ec_word SAD - ec_word I - ec_word WILL - ec_word CRY + .2byte EC_WORD_IT_S + .2byte EC_WORD_SO + .2byte EC_WORD_EXCITING + .2byte EC_WORD_IT + .2byte EC_WORD_REALLY + .2byte EC_WORD_IS +@ win speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_SO + .2byte EC_WORD_HAPPY + .2byte EC_WORD_I + .2byte EC_WORD_CAN + .2byte EC_WORD_CRY +@ loss speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_SO + .2byte EC_WORD_SAD + .2byte EC_WORD_I + .2byte EC_WORD_WILL + .2byte EC_WORD_CRY .4byte gBattleFrontierTrainerMons_Ann @ 28 .4byte TRAINER_CLASS_TUBER_1 .string "EILEEN$", 8 @ pre-battle speech - ec_word LET_S - ec_word PRETEND - ec_word I_AM - ec_word AN - ec_word ADULT - ec_word OK_QUES -@ win speech - ec_word SO - ec_word THIS - ec_word IS - ec_word AN - ec_word ADULT - ec_word FEELING -@ loss speech - ec_word AN - ec_word ADULT - ec_word CAN_T - ec_word BEAT - ec_word YOU - ec_word QUES + .2byte EC_WORD_LET_S + .2byte EC_WORD_PRETEND + .2byte EC_WORD_I_AM + .2byte EC_WORD_AN + .2byte EC_WORD_ADULT + .2byte EC_WORD_OK_QUES +@ win speech + .2byte EC_WORD_SO + .2byte EC_WORD_THIS + .2byte EC_WORD_IS + .2byte EC_WORD_AN + .2byte EC_WORD_ADULT + .2byte EC_WORD_FEELING +@ loss speech + .2byte EC_WORD_AN + .2byte EC_WORD_ADULT + .2byte EC_WORD_CAN_T + .2byte EC_WORD_BEAT + .2byte EC_WORD_YOU + .2byte EC_WORD_QUES .4byte gBattleFrontierTrainerMons_Eileen @ 29 .4byte TRAINER_CLASS_TUBER_1 .string "CARLIE$", 8 @ pre-battle speech - ec_word MY - ec_word SUMMER - ec_word VACATION - ec_word IS - ec_word FOR - ec_word POKEMON -@ win speech - ec_word MY - ec_word SUMMER - ec_word VACATION - ec_word WILL - ec_word BE - ec_word AWESOME -@ loss speech - ec_word I - ec_word CAN_T_WIN - ec_word LIKE - ec_word THIS - ec_word ELLIPSIS + .2byte EC_WORD_MY + .2byte EC_WORD_SUMMER + .2byte EC_WORD_VACATION + .2byte EC_WORD_IS + .2byte EC_WORD_FOR + .2byte EC_WORD_POKEMON +@ win speech + .2byte EC_WORD_MY + .2byte EC_WORD_SUMMER + .2byte EC_WORD_VACATION + .2byte EC_WORD_WILL + .2byte EC_WORD_BE + .2byte EC_WORD_AWESOME +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_CAN_T_WIN + .2byte EC_WORD_LIKE + .2byte EC_WORD_THIS + .2byte EC_WORD_ELLIPSIS .2byte -1 .4byte gBattleFrontierTrainerMons_Carlie @@ -784,389 +784,389 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_SWIMMER_M .string "GORDON$", 8 @ pre-battle speech - ec_word VICTORY - ec_word WILL - ec_word COME - ec_word TO_ME - ec_word EXCL + .2byte EC_WORD_VICTORY + .2byte EC_WORD_WILL + .2byte EC_WORD_COME + .2byte EC_WORD_TO_ME + .2byte EC_WORD_EXCL .2byte -1 @ win speech - ec_word OH_YEAH - ec_word EXCL + .2byte EC_WORD_OH_YEAH + .2byte EC_WORD_EXCL .2byte -1 - ec_word I - ec_word REALLY - ec_word WON + .2byte EC_WORD_I + .2byte EC_WORD_REALLY + .2byte EC_WORD_WON @ loss speech - ec_word NOTHING - ec_word IS - ec_word WORKING - ec_word OUT - ec_word FOR - ec_word ME + .2byte EC_WORD_NOTHING + .2byte EC_WORD_IS + .2byte EC_WORD_WORKING + .2byte EC_WORD_OUT + .2byte EC_WORD_FOR + .2byte EC_WORD_ME .4byte gBattleFrontierTrainerMons_Gordon @ 31 .4byte TRAINER_CLASS_SWIMMER_M .string "AYDEN$", 8 @ pre-battle speech - ec_word COME_ON - ec_word I - ec_word NEED - ec_word A - ec_word HOT - ec_word BATTLE -@ win speech - ec_word I - ec_word NEED - ec_word WATER - ec_word TO - ec_word COOL - ec_word DOWN -@ loss speech - ec_word YOU - ec_word HAVE - ec_word ME - ec_word FEELING - ec_word ICE - ec_word COLD + .2byte EC_WORD_COME_ON + .2byte EC_WORD_I + .2byte EC_WORD_NEED + .2byte EC_WORD_A + .2byte EC_WORD_HOT + .2byte EC_WORD_BATTLE +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_NEED + .2byte EC_WORD_WATER + .2byte EC_WORD_TO + .2byte EC_WORD_COOL + .2byte EC_WORD_DOWN +@ loss speech + .2byte EC_WORD_YOU + .2byte EC_WORD_HAVE + .2byte EC_WORD_ME + .2byte EC_WORD_FEELING + .2byte EC_WORD_ICE + .2byte EC_WORD_COLD .4byte gBattleFrontierTrainerMons_Ayden @ 32 .4byte TRAINER_CLASS_SWIMMER_M .string "MARCO$", 8 @ pre-battle speech - ec_word I - ec_move2 SURF - ec_word IN - ec_word THE - ec_word WINTER - ec_word TOO -@ win speech - ec_word I - ec_word WILL - ec_word GO - ec_move2 SURF - ec_word RIGHT - ec_word NOW -@ loss speech - ec_word I - ec_word WILL - ec_move2 BEAT_UP - ec_word MY - ec_move2 SURF - ec_word BOARD + .2byte EC_WORD_I + .2byte EC_MOVE2(SURF) + .2byte EC_WORD_IN + .2byte EC_WORD_THE + .2byte EC_WORD_WINTER + .2byte EC_WORD_TOO +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_WILL + .2byte EC_WORD_GO + .2byte EC_MOVE2(SURF) + .2byte EC_WORD_RIGHT + .2byte EC_WORD_NOW +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_WILL + .2byte EC_MOVE2(BEAT_UP) + .2byte EC_WORD_MY + .2byte EC_MOVE2(SURF) + .2byte EC_WORD_BOARD .4byte gBattleFrontierTrainerMons_Marco @ 33 .4byte TRAINER_CLASS_SWIMMER_F .string "CIERRA$", 8 @ pre-battle speech - ec_word I - ec_word LIKE - ec_word TO - ec_word SYNCHRONIZE - ec_word MY - ec_word SWIFT_SWIM -@ win speech - ec_word MY - ec_word POKEMON - ec_word SYNCHRONIZE - ec_word WITH - ec_word ME - .2byte -1 -@ loss speech - ec_word I - ec_word NEED - ec_word TO - ec_word SYNCHRONIZE - ec_word BETTER - ec_word ELLIPSIS + .2byte EC_WORD_I + .2byte EC_WORD_LIKE + .2byte EC_WORD_TO + .2byte EC_WORD_SYNCHRONIZE + .2byte EC_WORD_MY + .2byte EC_WORD_SWIFT_SWIM +@ win speech + .2byte EC_WORD_MY + .2byte EC_WORD_POKEMON + .2byte EC_WORD_SYNCHRONIZE + .2byte EC_WORD_WITH + .2byte EC_WORD_ME + .2byte -1 +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_NEED + .2byte EC_WORD_TO + .2byte EC_WORD_SYNCHRONIZE + .2byte EC_WORD_BETTER + .2byte EC_WORD_ELLIPSIS .4byte gBattleFrontierTrainerMons_Cierra @ 34 .4byte TRAINER_CLASS_SWIMMER_F .string "MARCY$", 8 @ pre-battle speech - ec_word I_AM - ec_word A - ec_word KNOCKOUT - ec_word YOU - ec_word CAN_T_WIN - ec_word EXCL -@ win speech - ec_word AFTER - ec_word ALL - ec_word I_AM - ec_word A - ec_word KNOCKOUT - ec_word EXCL -@ loss speech - ec_word THAT_S - ec_word NOT - ec_word THE - ec_word KNOCKOUT - ec_word I - ec_word MEAN + .2byte EC_WORD_I_AM + .2byte EC_WORD_A + .2byte EC_WORD_KNOCKOUT + .2byte EC_WORD_YOU + .2byte EC_WORD_CAN_T_WIN + .2byte EC_WORD_EXCL +@ win speech + .2byte EC_WORD_AFTER + .2byte EC_WORD_ALL + .2byte EC_WORD_I_AM + .2byte EC_WORD_A + .2byte EC_WORD_KNOCKOUT + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_THAT_S + .2byte EC_WORD_NOT + .2byte EC_WORD_THE + .2byte EC_WORD_KNOCKOUT + .2byte EC_WORD_I + .2byte EC_WORD_MEAN .4byte gBattleFrontierTrainerMons_Marcy @ 35 .4byte TRAINER_CLASS_SWIMMER_F .string "KATHY$", 8 @ pre-battle speech - ec_word I_VE - ec_word WON - ec_word EVERY - ec_word MATCH - ec_word TODAY - ec_word EXCL -@ win speech - ec_word IT_S - ec_word SO - ec_word GREAT - ec_word TO - ec_word WIN - ec_word EXCL -@ loss speech - ec_word HUH_QUES - ec_word I - ec_word SHOULD - ec_word NOT - ec_word HAVE - ec_word LOST + .2byte EC_WORD_I_VE + .2byte EC_WORD_WON + .2byte EC_WORD_EVERY + .2byte EC_WORD_MATCH + .2byte EC_WORD_TODAY + .2byte EC_WORD_EXCL +@ win speech + .2byte EC_WORD_IT_S + .2byte EC_WORD_SO + .2byte EC_WORD_GREAT + .2byte EC_WORD_TO + .2byte EC_WORD_WIN + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_HUH_QUES + .2byte EC_WORD_I + .2byte EC_WORD_SHOULD + .2byte EC_WORD_NOT + .2byte EC_WORD_HAVE + .2byte EC_WORD_LOST .4byte gBattleFrontierTrainerMons_Kathy @ 36 .4byte TRAINER_CLASS_POKEFAN_1 .string "PEYTON$", 8 @ pre-battle speech - ec_word I_AM - ec_word NEVER - ec_word DISAPPOINTED - ec_word WITH - ec_word MY - ec_word POKEMON -@ win speech - ec_word I_AM - ec_word HAPPY - ec_word IF - ec_word WE - ec_word WIN - ec_word TOGETHER -@ loss speech - ec_word I - ec_word ADORE - ec_word MY - ec_word POKEMON - ec_word MORE - ec_word IF_I_LOSE + .2byte EC_WORD_I_AM + .2byte EC_WORD_NEVER + .2byte EC_WORD_DISAPPOINTED + .2byte EC_WORD_WITH + .2byte EC_WORD_MY + .2byte EC_WORD_POKEMON +@ win speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_HAPPY + .2byte EC_WORD_IF + .2byte EC_WORD_WE + .2byte EC_WORD_WIN + .2byte EC_WORD_TOGETHER +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_ADORE + .2byte EC_WORD_MY + .2byte EC_WORD_POKEMON + .2byte EC_WORD_MORE + .2byte EC_WORD_IF_I_LOSE .4byte gBattleFrontierTrainerMons_Peyton @ 37 .4byte TRAINER_CLASS_POKEFAN_1 .string "JULIAN$", 8 @ pre-battle speech - ec_word YOU - ec_word ADORE - ec_word YOUR - ec_word POKEMON - ec_word RIGHT - ec_word QUES -@ win speech - ec_word YOU_RE - ec_word TOTALLY - ec_word OUT - ec_word OF - ec_word THE - ec_word QUESTION -@ loss speech - ec_word YOU - ec_word DO - ec_word ADORE - ec_word YOUR - ec_word POKEMON - ec_word EXCL + .2byte EC_WORD_YOU + .2byte EC_WORD_ADORE + .2byte EC_WORD_YOUR + .2byte EC_WORD_POKEMON + .2byte EC_WORD_RIGHT + .2byte EC_WORD_QUES +@ win speech + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_TOTALLY + .2byte EC_WORD_OUT + .2byte EC_WORD_OF + .2byte EC_WORD_THE + .2byte EC_WORD_QUESTION +@ loss speech + .2byte EC_WORD_YOU + .2byte EC_WORD_DO + .2byte EC_WORD_ADORE + .2byte EC_WORD_YOUR + .2byte EC_WORD_POKEMON + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Julian @ 38 .4byte TRAINER_CLASS_POKEFAN_1 .string "QUINN$", 8 @ pre-battle speech - ec_word MY - ec_word POKEMON - ec_word ARE - ec_word BUT - ec_word A - ec_word DREAM -@ win speech - ec_word THIS - ec_word IS - ec_word A - ec_word BEAUTIFUL - ec_word DREAM - ec_word EXCL -@ loss speech - ec_word THIS - ec_word IS - ec_word AN - ec_word AWFUL - ec_move1 NIGHTMARE - ec_word EXCL + .2byte EC_WORD_MY + .2byte EC_WORD_POKEMON + .2byte EC_WORD_ARE + .2byte EC_WORD_BUT + .2byte EC_WORD_A + .2byte EC_WORD_DREAM +@ win speech + .2byte EC_WORD_THIS + .2byte EC_WORD_IS + .2byte EC_WORD_A + .2byte EC_WORD_BEAUTIFUL + .2byte EC_WORD_DREAM + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_THIS + .2byte EC_WORD_IS + .2byte EC_WORD_AN + .2byte EC_WORD_AWFUL + .2byte EC_MOVE(NIGHTMARE) + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Quinn @ 39 .4byte TRAINER_CLASS_POKEFAN_2 .string "HAYLEE$", 8 @ pre-battle speech - ec_word I - ec_word DON_T - ec_word KNOW - ec_word HOW - ec_word I_AM - ec_word FEELING -@ win speech - ec_word I_AM - ec_word FEELING - ec_word OVERWHELMING - ec_word JOY - ec_word OVER - ec_word THIS -@ loss speech - ec_word DESTROYED - ec_word IS - ec_word THE - ec_word WAY - ec_word I_AM - ec_word FEELING + .2byte EC_WORD_I + .2byte EC_WORD_DON_T + .2byte EC_WORD_KNOW + .2byte EC_WORD_HOW + .2byte EC_WORD_I_AM + .2byte EC_WORD_FEELING +@ win speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_FEELING + .2byte EC_WORD_OVERWHELMING + .2byte EC_WORD_JOY + .2byte EC_WORD_OVER + .2byte EC_WORD_THIS +@ loss speech + .2byte EC_WORD_DESTROYED + .2byte EC_WORD_IS + .2byte EC_WORD_THE + .2byte EC_WORD_WAY + .2byte EC_WORD_I_AM + .2byte EC_WORD_FEELING .4byte gBattleFrontierTrainerMons_Haylee @ 40 .4byte TRAINER_CLASS_POKEFAN_2 .string "AMANDA$", 8 @ pre-battle speech - ec_word I - ec_word COME - ec_word FROM - ec_word A - ec_word TRAINER - ec_word FAMILY -@ win speech - ec_word I - ec_word WILL - ec_word TREASURE - ec_word THIS - ec_word WIN - .2byte -1 -@ loss speech - ec_word I - ec_word WANT - ec_word TO - ec_word GO_HOME - ec_word RIGHT - ec_word NOW + .2byte EC_WORD_I + .2byte EC_WORD_COME + .2byte EC_WORD_FROM + .2byte EC_WORD_A + .2byte EC_WORD_TRAINER + .2byte EC_WORD_FAMILY +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_WILL + .2byte EC_WORD_TREASURE + .2byte EC_WORD_THIS + .2byte EC_WORD_WIN + .2byte -1 +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_WANT + .2byte EC_WORD_TO + .2byte EC_WORD_GO_HOME + .2byte EC_WORD_RIGHT + .2byte EC_WORD_NOW .4byte gBattleFrontierTrainerMons_Amanda @ 41 .4byte TRAINER_CLASS_POKEFAN_2 .string "STACY$", 8 @ pre-battle speech - ec_word ALL - ec_word POKEMON - ec_word HAVE - ec_word THEIR - ec_word OWN - ec_word CUTE_CHARM -@ win speech - ec_word YOU - ec_word SEE - ec_word WHAT - ec_word I - ec_word MEAN - ec_word QUES -@ loss speech - ec_word SHOULD - ec_word I - ec_word NOT - ec_word ADORE - ec_word POKEMON - ec_word QUES + .2byte EC_WORD_ALL + .2byte EC_WORD_POKEMON + .2byte EC_WORD_HAVE + .2byte EC_WORD_THEIR + .2byte EC_WORD_OWN + .2byte EC_WORD_CUTE_CHARM +@ win speech + .2byte EC_WORD_YOU + .2byte EC_WORD_SEE + .2byte EC_WORD_WHAT + .2byte EC_WORD_I + .2byte EC_WORD_MEAN + .2byte EC_WORD_QUES +@ loss speech + .2byte EC_WORD_SHOULD + .2byte EC_WORD_I + .2byte EC_WORD_NOT + .2byte EC_WORD_ADORE + .2byte EC_WORD_POKEMON + .2byte EC_WORD_QUES .4byte gBattleFrontierTrainerMons_Stacy @ 42 .4byte TRAINER_CLASS_PKMN_BREEDER_2 .string "RAFAEL$", 8 @ pre-battle speech - ec_word COME_ON - ec_word EXCL - ec_word LET_S - ec_word SEE - ec_word SOME - ec_word SPIRIT -@ win speech - ec_word THAT_S_IT_EXCL - ec_word THAT_S - ec_word THE - ec_word SPIRIT - ec_word EXCL - .2byte -1 -@ loss speech - ec_word WELL - ec_word SO - ec_word MUCH - ec_word FOR - ec_word OUR - ec_word SPIRIT + .2byte EC_WORD_COME_ON + .2byte EC_WORD_EXCL + .2byte EC_WORD_LET_S + .2byte EC_WORD_SEE + .2byte EC_WORD_SOME + .2byte EC_WORD_SPIRIT +@ win speech + .2byte EC_WORD_THAT_S_IT_EXCL + .2byte EC_WORD_THAT_S + .2byte EC_WORD_THE + .2byte EC_WORD_SPIRIT + .2byte EC_WORD_EXCL + .2byte -1 +@ loss speech + .2byte EC_WORD_WELL + .2byte EC_WORD_SO + .2byte EC_WORD_MUCH + .2byte EC_WORD_FOR + .2byte EC_WORD_OUR + .2byte EC_WORD_SPIRIT .4byte gBattleFrontierTrainerMons_Rafael @ 43 .4byte TRAINER_CLASS_PKMN_BREEDER_2 .string "OLIVER$", 8 @ pre-battle speech - ec_word A - ec_word GENIUS - ec_word THAT_S - ec_word WHAT - ec_word I_AM - ec_word EXCL -@ win speech - ec_word THAT_S - ec_word HOW - ec_word A - ec_word GENIUS - ec_word WORKS - ec_word EXCL -@ loss speech - ec_word YOU_RE - ec_word MORE - ec_word A - ec_word GENIUS - ec_word THAN - ec_word I_AM + .2byte EC_WORD_A + .2byte EC_WORD_GENIUS + .2byte EC_WORD_THAT_S + .2byte EC_WORD_WHAT + .2byte EC_WORD_I_AM + .2byte EC_WORD_EXCL +@ win speech + .2byte EC_WORD_THAT_S + .2byte EC_WORD_HOW + .2byte EC_WORD_A + .2byte EC_WORD_GENIUS + .2byte EC_WORD_WORKS + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_MORE + .2byte EC_WORD_A + .2byte EC_WORD_GENIUS + .2byte EC_WORD_THAN + .2byte EC_WORD_I_AM .4byte gBattleFrontierTrainerMons_Oliver @ 44 .4byte TRAINER_CLASS_PKMN_BREEDER_2 .string "PAYTON$", 8 @ pre-battle speech - ec_word I - ec_word TRAIN - ec_word FROM - ec_word THE - ec_word EGG - ec_word UP + .2byte EC_WORD_I + .2byte EC_WORD_TRAIN + .2byte EC_WORD_FROM + .2byte EC_WORD_THE + .2byte EC_WORD_EGG + .2byte EC_WORD_UP @ win speech - ec_word WELL - ec_word DONE - ec_word EXCL + .2byte EC_WORD_WELL + .2byte EC_WORD_DONE + .2byte EC_WORD_EXCL .2byte -1 .2byte -1 .2byte -1 @ loss speech - ec_word THAT_WAS - ec_word A - ec_move2 SOFT_BOILED - ec_word LOSS - ec_word ELLIPSIS + .2byte EC_WORD_THAT_WAS + .2byte EC_WORD_A + .2byte EC_MOVE2(SOFT_BOILED) + .2byte EC_WORD_LOSS + .2byte EC_WORD_ELLIPSIS .2byte -1 .4byte gBattleFrontierTrainerMons_Payton @@ -1174,129 +1174,129 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_PKMN_BREEDER_1 .string "PAMELA$", 8 @ pre-battle speech - ec_word ALL - ec_word POKEMON - ec_word ADORE - ec_word A - ec_word KIND - ec_word TRAINER -@ win speech - ec_word IT_S - ec_word TOO - ec_word BAD - ec_word YOU - ec_word LOST - .2byte -1 -@ loss speech - ec_word YOU_RE - ec_word KIND - ec_word AND - ec_word YOU_RE - ec_word ALSO - ec_word STRONG + .2byte EC_WORD_ALL + .2byte EC_WORD_POKEMON + .2byte EC_WORD_ADORE + .2byte EC_WORD_A + .2byte EC_WORD_KIND + .2byte EC_WORD_TRAINER +@ win speech + .2byte EC_WORD_IT_S + .2byte EC_WORD_TOO + .2byte EC_WORD_BAD + .2byte EC_WORD_YOU + .2byte EC_WORD_LOST + .2byte -1 +@ loss speech + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_KIND + .2byte EC_WORD_AND + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_ALSO + .2byte EC_WORD_STRONG .4byte gBattleFrontierTrainerMons_Pamela @ 46 .4byte TRAINER_CLASS_PKMN_BREEDER_1 .string "ELIZA$", 8 @ pre-battle speech - ec_word I - ec_word ADORE - ec_word POKEMON - ec_word LIKE - ec_word MY - ec_word CHILDREN -@ win speech - ec_word I_AM - ec_word SO - ec_word HAPPY - ec_word FOR - ec_word MY - ec_word POKEMON -@ loss speech - ec_word OH_DEAR - ec_word I_AM - ec_word SO - ec_word SORRY - ec_word ABOUT - ec_word THIS + .2byte EC_WORD_I + .2byte EC_WORD_ADORE + .2byte EC_WORD_POKEMON + .2byte EC_WORD_LIKE + .2byte EC_WORD_MY + .2byte EC_WORD_CHILDREN +@ win speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_SO + .2byte EC_WORD_HAPPY + .2byte EC_WORD_FOR + .2byte EC_WORD_MY + .2byte EC_WORD_POKEMON +@ loss speech + .2byte EC_WORD_OH_DEAR + .2byte EC_WORD_I_AM + .2byte EC_WORD_SO + .2byte EC_WORD_SORRY + .2byte EC_WORD_ABOUT + .2byte EC_WORD_THIS .4byte gBattleFrontierTrainerMons_Eliza @ 47 .4byte TRAINER_CLASS_PKMN_BREEDER_1 .string "MARISA$", 8 @ pre-battle speech - ec_word I - ec_word PROMISE - ec_word TO - ec_word BATTLE - ec_word SERIOUSLY - .2byte -1 -@ win speech - ec_word PROMISE - ec_word ME - ec_word YOU - ec_word WILL - ec_word DO - ec_word BETTER -@ loss speech - ec_word PROMISE - ec_word ME - ec_word ANOTHER - ec_word BATTLE - ec_word PLEASE - ec_word EXCL + .2byte EC_WORD_I + .2byte EC_WORD_PROMISE + .2byte EC_WORD_TO + .2byte EC_WORD_BATTLE + .2byte EC_WORD_SERIOUSLY + .2byte -1 +@ win speech + .2byte EC_WORD_PROMISE + .2byte EC_WORD_ME + .2byte EC_WORD_YOU + .2byte EC_WORD_WILL + .2byte EC_WORD_DO + .2byte EC_WORD_BETTER +@ loss speech + .2byte EC_WORD_PROMISE + .2byte EC_WORD_ME + .2byte EC_WORD_ANOTHER + .2byte EC_WORD_BATTLE + .2byte EC_WORD_PLEASE + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Marisa @ 48 .4byte TRAINER_CLASS_BUG_CATCHER .string "LEWIS$", 8 @ pre-battle speech - ec_word A_LITTLE - ec_word BUG - ec_word IS - ec_word SCARY - ec_word QUES - ec_word HAHAHA -@ win speech - ec_word LOOK - ec_word LOOK - ec_word EXCL - ec_word A - ec_word SCARY - ec_word BUG -@ loss speech - ec_word OH - ec_word A - ec_word BUG - ec_word ISN_T - ec_word SCARY - ec_word ELLIPSIS + .2byte EC_WORD_A_LITTLE + .2byte EC_WORD_BUG + .2byte EC_WORD_IS + .2byte EC_WORD_SCARY + .2byte EC_WORD_QUES + .2byte EC_WORD_HAHAHA +@ win speech + .2byte EC_WORD_LOOK + .2byte EC_WORD_LOOK + .2byte EC_WORD_EXCL + .2byte EC_WORD_A + .2byte EC_WORD_SCARY + .2byte EC_WORD_BUG +@ loss speech + .2byte EC_WORD_OH + .2byte EC_WORD_A + .2byte EC_WORD_BUG + .2byte EC_WORD_ISN_T + .2byte EC_WORD_SCARY + .2byte EC_WORD_ELLIPSIS .4byte gBattleFrontierTrainerMons_Lewis @ 49 .4byte TRAINER_CLASS_BUG_CATCHER .string "YOSHI$", 8 @ pre-battle speech - ec_word BUG - ec_word POKEMON - ec_word MAKE - ec_word ME - ec_word FEELING - ec_word LOVEY_DOVEY -@ win speech - ec_word BUG - ec_word POKEMON - ec_word ARE - ec_word THE - ec_word BEST - ec_word EXCL -@ loss speech - ec_word YOU_RE - ec_word IGNORANT - ec_word ABOUT - ec_word BUG - ec_word POKEMON + .2byte EC_WORD_BUG + .2byte EC_WORD_POKEMON + .2byte EC_WORD_MAKE + .2byte EC_WORD_ME + .2byte EC_WORD_FEELING + .2byte EC_WORD_LOVEY_DOVEY +@ win speech + .2byte EC_WORD_BUG + .2byte EC_WORD_POKEMON + .2byte EC_WORD_ARE + .2byte EC_WORD_THE + .2byte EC_WORD_BEST + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_IGNORANT + .2byte EC_WORD_ABOUT + .2byte EC_WORD_BUG + .2byte EC_WORD_POKEMON .2byte -1 .4byte gBattleFrontierTrainerMons_Yoshi @@ -1304,25 +1304,25 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_BUG_CATCHER .string "DESTIN$", 8 @ pre-battle speech - ec_word IT_S - ec_word WAY - ec_word TOO - ec_word HOT - ec_word HERE + .2byte EC_WORD_IT_S + .2byte EC_WORD_WAY + .2byte EC_WORD_TOO + .2byte EC_WORD_HOT + .2byte EC_WORD_HERE .2byte -1 @ win speech - ec_word I_AM - ec_word ABOUT - ec_word TO - ec_move1 OVERHEAT + .2byte EC_WORD_I_AM + .2byte EC_WORD_ABOUT + .2byte EC_WORD_TO + .2byte EC_MOVE(OVERHEAT) .2byte -1 .2byte -1 @ loss speech - ec_word PLEASE - ec_word I - ec_word NEED - ec_word SOME - ec_word WATER + .2byte EC_WORD_PLEASE + .2byte EC_WORD_I + .2byte EC_WORD_NEED + .2byte EC_WORD_SOME + .2byte EC_WORD_WATER .2byte -1 .4byte gBattleFrontierTrainerMons_Destin @@ -1330,23 +1330,23 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_NINJA_BOY .string "KEON$", 8 @ pre-battle speech - ec_word FORGIVE - ec_word ME - ec_word BUT - ec_word HERE_I_COME - ec_word EXCL + .2byte EC_WORD_FORGIVE + .2byte EC_WORD_ME + .2byte EC_WORD_BUT + .2byte EC_WORD_HERE_I_COME + .2byte EC_WORD_EXCL .2byte -1 @ win speech - ec_word FORGIVE - ec_word ME - ec_word FOR - ec_word MY - ec_word OVERWHELMING - ec_word POWER + .2byte EC_WORD_FORGIVE + .2byte EC_WORD_ME + .2byte EC_WORD_FOR + .2byte EC_WORD_MY + .2byte EC_WORD_OVERWHELMING + .2byte EC_WORD_POWER @ loss speech - ec_word I_AM - ec_word SORRY - ec_word ELLIPSIS + .2byte EC_WORD_I_AM + .2byte EC_WORD_SORRY + .2byte EC_WORD_ELLIPSIS .2byte -1 .2byte -1 .2byte -1 @@ -1356,51 +1356,51 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_NINJA_BOY .string "STUART$", 8 @ pre-battle speech - ec_word I - ec_word PROMISE - ec_word YOU - ec_word A - ec_word HOT - ec_word BATTLE -@ win speech - ec_word THE - ec_word MASTER - ec_word OF - ec_word COOL - ec_word THAT_S - ec_word ME -@ loss speech - ec_word I - ec_word SEE - ec_word I_AM - ec_word NOT - ec_word SO - ec_word COOL + .2byte EC_WORD_I + .2byte EC_WORD_PROMISE + .2byte EC_WORD_YOU + .2byte EC_WORD_A + .2byte EC_WORD_HOT + .2byte EC_WORD_BATTLE +@ win speech + .2byte EC_WORD_THE + .2byte EC_WORD_MASTER + .2byte EC_WORD_OF + .2byte EC_WORD_COOL + .2byte EC_WORD_THAT_S + .2byte EC_WORD_ME +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_SEE + .2byte EC_WORD_I_AM + .2byte EC_WORD_NOT + .2byte EC_WORD_SO + .2byte EC_WORD_COOL .4byte gBattleFrontierTrainerMons_Stuart @ 53 .4byte TRAINER_CLASS_NINJA_BOY .string "NESTOR$", 8 @ pre-battle speech - ec_word SHOW - ec_word ME - ec_word A - ec_word REALLY - ec_word SMOOTH - ec_word MOVE -@ win speech - ec_word THERE - ec_word WAS - ec_word NOTHING - ec_word SMOOTH - ec_word ABOUT - ec_word THAT -@ loss speech - ec_word YOU - ec_word REALLY - ec_word ARE - ec_word SMOOTH - ec_word EXCL + .2byte EC_WORD_SHOW + .2byte EC_WORD_ME + .2byte EC_WORD_A + .2byte EC_WORD_REALLY + .2byte EC_WORD_SMOOTH + .2byte EC_WORD_MOVE +@ win speech + .2byte EC_WORD_THERE + .2byte EC_WORD_WAS + .2byte EC_WORD_NOTHING + .2byte EC_WORD_SMOOTH + .2byte EC_WORD_ABOUT + .2byte EC_WORD_THAT +@ loss speech + .2byte EC_WORD_YOU + .2byte EC_WORD_REALLY + .2byte EC_WORD_ARE + .2byte EC_WORD_SMOOTH + .2byte EC_WORD_EXCL .2byte -1 .4byte gBattleFrontierTrainerMons_Nestor @@ -1408,50 +1408,50 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_BUG_MANIAC .string "DERRICK$", 8 @ pre-battle speech - ec_word LET_S - ec_word SEE - ec_word YOU - ec_move2 MEDITATE - ec_word LIKE - ec_word ME -@ win speech - ec_word HOW - ec_word I - ec_move2 MEDITATE - ec_word IS - ec_word JUST - ec_word BEAUTIFUL -@ loss speech - ec_word I - ec_word WILL - ec_move2 MEDITATE - ec_word FOR - ec_word A - ec_move2 CALM_MIND + .2byte EC_WORD_LET_S + .2byte EC_WORD_SEE + .2byte EC_WORD_YOU + .2byte EC_MOVE2(MEDITATE) + .2byte EC_WORD_LIKE + .2byte EC_WORD_ME +@ win speech + .2byte EC_WORD_HOW + .2byte EC_WORD_I + .2byte EC_MOVE2(MEDITATE) + .2byte EC_WORD_IS + .2byte EC_WORD_JUST + .2byte EC_WORD_BEAUTIFUL +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_WILL + .2byte EC_MOVE2(MEDITATE) + .2byte EC_WORD_FOR + .2byte EC_WORD_A + .2byte EC_MOVE2(CALM_MIND) .4byte gBattleFrontierTrainerMons_Derrick @ 55 .4byte TRAINER_CLASS_BUG_MANIAC .string "BRYSON$", 8 @ pre-battle speech - ec_move2 POISON_POWDER - ec_word IS - ec_word IN - ec_word OUR - ec_move2 COTTON_SPORE - ec_word MOVE + .2byte EC_MOVE2(POISON_POWDER) + .2byte EC_WORD_IS + .2byte EC_WORD_IN + .2byte EC_WORD_OUR + .2byte EC_MOVE2(COTTON_SPORE) + .2byte EC_WORD_MOVE @ win speech - ec_word HOW_DO - ec_word YOU - ec_word LIKE - ec_word OUR - ec_move2 POISON_POWDER - ec_word QUES + .2byte EC_WORD_HOW_DO + .2byte EC_WORD_YOU + .2byte EC_WORD_LIKE + .2byte EC_WORD_OUR + .2byte EC_MOVE2(POISON_POWDER) + .2byte EC_WORD_QUES @ loss speech - ec_word MY - ec_move2 COTTON_SPORE - ec_word WAS - ec_word USELESS + .2byte EC_WORD_MY + .2byte EC_MOVE2(COTTON_SPORE) + .2byte EC_WORD_WAS + .2byte EC_WORD_USELESS .2byte -1 .2byte -1 .4byte gBattleFrontierTrainerMons_Bryson @@ -1460,103 +1460,103 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_BUG_MANIAC .string "CLAYTON$", 8 @ pre-battle speech - ec_word HUH_QUES + .2byte EC_WORD_HUH_QUES .2byte -1 .2byte -1 - ec_word WHERE - ec_word IS_IT_QUES + .2byte EC_WORD_WHERE + .2byte EC_WORD_IS_IT_QUES .2byte -1 @ win speech - ec_word WHERE - ec_word IS_IT_QUES - ec_word I_VE - ec_word LOST - ec_word MY - ec_word POKENAV + .2byte EC_WORD_WHERE + .2byte EC_WORD_IS_IT_QUES + .2byte EC_WORD_I_VE + .2byte EC_WORD_LOST + .2byte EC_WORD_MY + .2byte EC_WORD_POKENAV @ loss speech - ec_word WHERE - ec_word IS_IT_QUES - ec_word I_VE - ec_word LOST - ec_word MY - ec_word SENSE + .2byte EC_WORD_WHERE + .2byte EC_WORD_IS_IT_QUES + .2byte EC_WORD_I_VE + .2byte EC_WORD_LOST + .2byte EC_WORD_MY + .2byte EC_WORD_SENSE .4byte gBattleFrontierTrainerMons_Clayton @ 57 .4byte TRAINER_CLASS_FISHERMAN .string "TRENTON$", 8 @ pre-battle speech - ec_word COME_OVER - ec_word FOR - ec_word SOME - ec_word TASTY - ec_word WATER - .2byte -1 -@ win speech - ec_word MMM - ec_word DO - ec_word YOU - ec_word WANT - ec_word SOME - ec_word QUES -@ loss speech - ec_word I - ec_word GOT - ec_word THIS - ec_word TASTY - ec_word WATER - ec_word SHOPPING + .2byte EC_WORD_COME_OVER + .2byte EC_WORD_FOR + .2byte EC_WORD_SOME + .2byte EC_WORD_TASTY + .2byte EC_WORD_WATER + .2byte -1 +@ win speech + .2byte EC_WORD_MMM + .2byte EC_WORD_DO + .2byte EC_WORD_YOU + .2byte EC_WORD_WANT + .2byte EC_WORD_SOME + .2byte EC_WORD_QUES +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_GOT + .2byte EC_WORD_THIS + .2byte EC_WORD_TASTY + .2byte EC_WORD_WATER + .2byte EC_WORD_SHOPPING .4byte gBattleFrontierTrainerMons_Trenton @ 58 .4byte TRAINER_CLASS_FISHERMAN .string "JENSON$", 8 @ pre-battle speech - ec_word MY - ec_word POKEMON - ec_word WILL - ec_word MAKE - ec_word YOU - ec_word DOWNCAST -@ win speech - ec_word YOUR - ec_word POKEMON - ec_word DON_T - ec_word MAKE - ec_word THE - ec_move1 CUT -@ loss speech - ec_word I_AM - ec_word THE - ec_word TRAINER - ec_word WHO_IS - ec_word FEELING - ec_word DOWNCAST + .2byte EC_WORD_MY + .2byte EC_WORD_POKEMON + .2byte EC_WORD_WILL + .2byte EC_WORD_MAKE + .2byte EC_WORD_YOU + .2byte EC_WORD_DOWNCAST +@ win speech + .2byte EC_WORD_YOUR + .2byte EC_WORD_POKEMON + .2byte EC_WORD_DON_T + .2byte EC_WORD_MAKE + .2byte EC_WORD_THE + .2byte EC_MOVE(CUT) +@ loss speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_THE + .2byte EC_WORD_TRAINER + .2byte EC_WORD_WHO_IS + .2byte EC_WORD_FEELING + .2byte EC_WORD_DOWNCAST .4byte gBattleFrontierTrainerMons_Jenson @ 59 .4byte TRAINER_CLASS_FISHERMAN .string "WESLEY$", 8 @ pre-battle speech - ec_pokemon2 MEW - ec_pokemon2 MEW - ec_word IS - ec_word HOW - ec_word I - ec_word CRY -@ win speech - ec_word YES - ec_word I - ec_word KNOW - ec_word I_AM - ec_word CUTE - ec_word EXCL -@ loss speech - ec_pokemon2 MEW - ec_pokemon2 MEW - ec_word EXCL - ec_pokemon2 MEW - ec_word EXCL_EXCL + .2byte EC_POKEMON2(MEW) + .2byte EC_POKEMON2(MEW) + .2byte EC_WORD_IS + .2byte EC_WORD_HOW + .2byte EC_WORD_I + .2byte EC_WORD_CRY +@ win speech + .2byte EC_WORD_YES + .2byte EC_WORD_I + .2byte EC_WORD_KNOW + .2byte EC_WORD_I_AM + .2byte EC_WORD_CUTE + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_POKEMON2(MEW) + .2byte EC_POKEMON2(MEW) + .2byte EC_WORD_EXCL + .2byte EC_POKEMON2(MEW) + .2byte EC_WORD_EXCL_EXCL .2byte -1 .4byte gBattleFrontierTrainerMons_Wesley @@ -1564,129 +1564,129 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_RUIN_MANIAC .string "ANTON$", 8 @ pre-battle speech - ec_word GET - ec_word READY - ec_word FOR - ec_word ME - ec_word TO - ec_move1 THRASH -@ win speech - ec_word WAHAHAHA - ec_word EXCL - ec_word SORRY - ec_word ABOUT - ec_word THAT - ec_word EXCL -@ loss speech - ec_word IT_S - ec_word A - ec_word TOUGH - ec_word LOSS - ec_word TO - ec_move2 SWALLOW + .2byte EC_WORD_GET + .2byte EC_WORD_READY + .2byte EC_WORD_FOR + .2byte EC_WORD_ME + .2byte EC_WORD_TO + .2byte EC_MOVE(THRASH) +@ win speech + .2byte EC_WORD_WAHAHAHA + .2byte EC_WORD_EXCL + .2byte EC_WORD_SORRY + .2byte EC_WORD_ABOUT + .2byte EC_WORD_THAT + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_IT_S + .2byte EC_WORD_A + .2byte EC_WORD_TOUGH + .2byte EC_WORD_LOSS + .2byte EC_WORD_TO + .2byte EC_MOVE2(SWALLOW) .4byte gBattleFrontierTrainerMons_Anton @ 61 .4byte TRAINER_CLASS_RUIN_MANIAC .string "LAWSON$", 8 @ pre-battle speech - ec_word I_AM - ec_word YOUNG - ec_word AT - ec_word HEART - ec_word EXCL - .2byte -1 -@ win speech - ec_word NOT - ec_word COOL - ec_word EXCL - ec_word NOT - ec_word AT - ec_word ALL -@ loss speech - ec_word I_AM - ec_word OLD - ec_word AND - ec_word FEELING - ec_word SHAKY - ec_word ELLIPSIS + .2byte EC_WORD_I_AM + .2byte EC_WORD_YOUNG + .2byte EC_WORD_AT + .2byte EC_WORD_HEART + .2byte EC_WORD_EXCL + .2byte -1 +@ win speech + .2byte EC_WORD_NOT + .2byte EC_WORD_COOL + .2byte EC_WORD_EXCL + .2byte EC_WORD_NOT + .2byte EC_WORD_AT + .2byte EC_WORD_ALL +@ loss speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_OLD + .2byte EC_WORD_AND + .2byte EC_WORD_FEELING + .2byte EC_WORD_SHAKY + .2byte EC_WORD_ELLIPSIS .4byte gBattleFrontierTrainerMons_Lawson @ 62 .4byte TRAINER_CLASS_RUIN_MANIAC .string "SAMMY$", 8 @ pre-battle speech - ec_word MY - ec_word PARTY - ec_word IS - ec_word READY - ec_word TO - ec_word ROCK -@ win speech - ec_word MY - ec_word PARTY - ec_word IS - ec_word JUST - ec_word INCREDIBLE - ec_word EXCL -@ loss speech - ec_word I - ec_word CRY - ec_word FOR - ec_word MY - ec_word PARTY - ec_word ELLIPSIS + .2byte EC_WORD_MY + .2byte EC_WORD_PARTY + .2byte EC_WORD_IS + .2byte EC_WORD_READY + .2byte EC_WORD_TO + .2byte EC_WORD_ROCK +@ win speech + .2byte EC_WORD_MY + .2byte EC_WORD_PARTY + .2byte EC_WORD_IS + .2byte EC_WORD_JUST + .2byte EC_WORD_INCREDIBLE + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_CRY + .2byte EC_WORD_FOR + .2byte EC_WORD_MY + .2byte EC_WORD_PARTY + .2byte EC_WORD_ELLIPSIS .4byte gBattleFrontierTrainerMons_Sammy @ 63 .4byte TRAINER_CLASS_COLLECTOR .string "ARNIE$", 8 @ pre-battle speech - ec_word I_AM - ec_word NO_1 - ec_word I - ec_word HAVE - ec_word NO - ec_word RIVAL -@ win speech - ec_word YOU - ec_word SEE - ec_word QUES - ec_word I - ec_word CAN_T - ec_word LOSE -@ loss speech - ec_word NO - ec_word EXCL - ec_word I - ec_word WON_T - ec_word ACCEPT - ec_word THIS + .2byte EC_WORD_I_AM + .2byte EC_WORD_NO_1 + .2byte EC_WORD_I + .2byte EC_WORD_HAVE + .2byte EC_WORD_NO + .2byte EC_WORD_RIVAL +@ win speech + .2byte EC_WORD_YOU + .2byte EC_WORD_SEE + .2byte EC_WORD_QUES + .2byte EC_WORD_I + .2byte EC_WORD_CAN_T + .2byte EC_WORD_LOSE +@ loss speech + .2byte EC_WORD_NO + .2byte EC_WORD_EXCL + .2byte EC_WORD_I + .2byte EC_WORD_WON_T + .2byte EC_WORD_ACCEPT + .2byte EC_WORD_THIS .4byte gBattleFrontierTrainerMons_Arnie @ 64 .4byte TRAINER_CLASS_COLLECTOR .string "ADRIAN$", 8 @ pre-battle speech - ec_word YAHOO - ec_word EXCL + .2byte EC_WORD_YAHOO + .2byte EC_WORD_EXCL .2byte -1 - ec_word YAHOO - ec_word EXCL_EXCL + .2byte EC_WORD_YAHOO + .2byte EC_WORD_EXCL_EXCL .2byte -1 @ win speech - ec_word THANK_YOU - ec_word EXCL + .2byte EC_WORD_THANK_YOU + .2byte EC_WORD_EXCL .2byte -1 - ec_word THANK_YOU - ec_word EXCL_EXCL + .2byte EC_WORD_THANK_YOU + .2byte EC_WORD_EXCL_EXCL .2byte -1 @ loss speech - ec_word GOOD_BYE - ec_word EXCL + .2byte EC_WORD_GOOD_BYE + .2byte EC_WORD_EXCL .2byte -1 - ec_word GOOD_BYE - ec_word EXCL_EXCL + .2byte EC_WORD_GOOD_BYE + .2byte EC_WORD_EXCL_EXCL .2byte -1 .4byte gBattleFrontierTrainerMons_Adrian @@ -1694,103 +1694,103 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_COLLECTOR .string "TRISTAN$", 8 @ pre-battle speech - ec_word CONFUSED - ec_word QUES + .2byte EC_WORD_CONFUSED + .2byte EC_WORD_QUES .2byte -1 - ec_word I_AM - ec_word A - ec_word GENIUS + .2byte EC_WORD_I_AM + .2byte EC_WORD_A + .2byte EC_WORD_GENIUS @ win speech - ec_word SEE - ec_word QUES + .2byte EC_WORD_SEE + .2byte EC_WORD_QUES .2byte -1 - ec_word I_AM - ec_word A - ec_word GENIUS + .2byte EC_WORD_I_AM + .2byte EC_WORD_A + .2byte EC_WORD_GENIUS @ loss speech - ec_word I_AM - ec_word NOT - ec_word A - ec_word GENIUS - ec_word IN - ec_word BATTLE + .2byte EC_WORD_I_AM + .2byte EC_WORD_NOT + .2byte EC_WORD_A + .2byte EC_WORD_GENIUS + .2byte EC_WORD_IN + .2byte EC_WORD_BATTLE .4byte gBattleFrontierTrainerMons_Tristan @ 66 .4byte TRAINER_CLASS_PARASOL_LADY .string "JULIANA$", 8 @ pre-battle speech - ec_word I - ec_word THINK - ec_word I_AM - ec_word SHOPPING - ec_word TOO - ec_word MUCH -@ win speech - ec_word BUT - ec_word I - ec_word WANT - ec_word A - ec_word POKEMON - ec_word PLUSH_DOLL -@ loss speech - ec_word I - ec_word SO - ec_word WANT - ec_word ANOTHER - ec_word POKEMON - ec_word PLUSH_DOLL + .2byte EC_WORD_I + .2byte EC_WORD_THINK + .2byte EC_WORD_I_AM + .2byte EC_WORD_SHOPPING + .2byte EC_WORD_TOO + .2byte EC_WORD_MUCH +@ win speech + .2byte EC_WORD_BUT + .2byte EC_WORD_I + .2byte EC_WORD_WANT + .2byte EC_WORD_A + .2byte EC_WORD_POKEMON + .2byte EC_WORD_PLUSH_DOLL +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_SO + .2byte EC_WORD_WANT + .2byte EC_WORD_ANOTHER + .2byte EC_WORD_POKEMON + .2byte EC_WORD_PLUSH_DOLL .4byte gBattleFrontierTrainerMons_Juliana @ 67 .4byte TRAINER_CLASS_PARASOL_LADY .string "RYLEE$", 8 @ pre-battle speech - ec_word SHOW - ec_word ME - ec_word THAT - ec_word YOU - ec_word HAVE - ec_word GUTS -@ win speech - ec_word BYE_BYE - ec_word EXCL - ec_word YOU - ec_word HAVE - ec_word NO - ec_word GUTS -@ loss speech - ec_word THAT_WAS - ec_word GUTSY - ec_word ELLIPSIS - ec_word YOU_RE - ec_word QUITE - ec_word SUPER + .2byte EC_WORD_SHOW + .2byte EC_WORD_ME + .2byte EC_WORD_THAT + .2byte EC_WORD_YOU + .2byte EC_WORD_HAVE + .2byte EC_WORD_GUTS +@ win speech + .2byte EC_WORD_BYE_BYE + .2byte EC_WORD_EXCL + .2byte EC_WORD_YOU + .2byte EC_WORD_HAVE + .2byte EC_WORD_NO + .2byte EC_WORD_GUTS +@ loss speech + .2byte EC_WORD_THAT_WAS + .2byte EC_WORD_GUTSY + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_QUITE + .2byte EC_WORD_SUPER .4byte gBattleFrontierTrainerMons_Rylee @ 68 .4byte TRAINER_CLASS_PARASOL_LADY .string "CHELSEA$", 8 @ pre-battle speech - ec_word I - ec_word SERIOUSLY - ec_word MEAN - ec_word TO - ec_word WIN - ec_word EXCL + .2byte EC_WORD_I + .2byte EC_WORD_SERIOUSLY + .2byte EC_WORD_MEAN + .2byte EC_WORD_TO + .2byte EC_WORD_WIN + .2byte EC_WORD_EXCL @ win speech - ec_word THAT_WAS - ec_word MY - ec_word WILL - ec_word TO - ec_word WIN + .2byte EC_WORD_THAT_WAS + .2byte EC_WORD_MY + .2byte EC_WORD_WILL + .2byte EC_WORD_TO + .2byte EC_WORD_WIN .2byte -1 @ loss speech - ec_word YOU_RE - ec_word FAR - ec_word TOO_STRONG - ec_word FOR - ec_word ME + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_FAR + .2byte EC_WORD_TOO_STRONG + .2byte EC_WORD_FOR + .2byte EC_WORD_ME .2byte -1 .4byte gBattleFrontierTrainerMons_Chelsea @@ -1798,233 +1798,233 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_BEAUTY .string "DANELA$", 8 @ pre-battle speech - ec_word YOU - ec_word MUST_BE - ec_word MY - ec_word OPPONENT - ec_word NOW - ec_word EXCL -@ win speech - ec_word OH_DEAR - ec_word TOO_WEAK - ec_word EXCL - ec_word DON_T - ec_word GIVE_UP - ec_word EXCL -@ loss speech - ec_word THAT_WAS - ec_word GOOD - ec_word AND - ec_word THIS - ec_word IS - ec_word GOOD_BYE + .2byte EC_WORD_YOU + .2byte EC_WORD_MUST_BE + .2byte EC_WORD_MY + .2byte EC_WORD_OPPONENT + .2byte EC_WORD_NOW + .2byte EC_WORD_EXCL +@ win speech + .2byte EC_WORD_OH_DEAR + .2byte EC_WORD_TOO_WEAK + .2byte EC_WORD_EXCL + .2byte EC_WORD_DON_T + .2byte EC_WORD_GIVE_UP + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_THAT_WAS + .2byte EC_WORD_GOOD + .2byte EC_WORD_AND + .2byte EC_WORD_THIS + .2byte EC_WORD_IS + .2byte EC_WORD_GOOD_BYE .4byte gBattleFrontierTrainerMons_Danela @ 70 .4byte TRAINER_CLASS_BEAUTY .string "LIZBETH$", 8 @ pre-battle speech - ec_word IF_I_LOSE - ec_word YOU - ec_word CAN - ec_word HAVE - ec_word A - ec_move2 PRESENT -@ win speech - ec_word HERE_IT_IS - ec_word A_LITTLE - ec_word PRAISE - ec_word AS - ec_word YOUR - ec_move2 PRESENT -@ loss speech - ec_word YOUR - ec_move2 PRESENT - ec_word QUES_EXCL - ec_word HERE_IT_IS - ec_word A - ec_move1 DOUBLE_SLAP + .2byte EC_WORD_IF_I_LOSE + .2byte EC_WORD_YOU + .2byte EC_WORD_CAN + .2byte EC_WORD_HAVE + .2byte EC_WORD_A + .2byte EC_MOVE2(PRESENT) +@ win speech + .2byte EC_WORD_HERE_IT_IS + .2byte EC_WORD_A_LITTLE + .2byte EC_WORD_PRAISE + .2byte EC_WORD_AS + .2byte EC_WORD_YOUR + .2byte EC_MOVE2(PRESENT) +@ loss speech + .2byte EC_WORD_YOUR + .2byte EC_MOVE2(PRESENT) + .2byte EC_WORD_QUES_EXCL + .2byte EC_WORD_HERE_IT_IS + .2byte EC_WORD_A + .2byte EC_MOVE(DOUBLE_SLAP) .4byte gBattleFrontierTrainerMons_Lizbeth @ 71 .4byte TRAINER_CLASS_BEAUTY .string "AMELIA$", 8 @ pre-battle speech - ec_word I - ec_word BELIEVE - ec_word IN - ec_word CUTE - ec_word FASHION - ec_word APPEAL -@ win speech - ec_word YOUR - ec_word FASHION - ec_word SENSE - ec_word IS - ec_word A - ec_word DISASTER -@ loss speech - ec_word THAT_WAS - ec_word AWFUL - ec_word EXCL - ec_word I_AM - ec_word GOING - ec_word HOME + .2byte EC_WORD_I + .2byte EC_WORD_BELIEVE + .2byte EC_WORD_IN + .2byte EC_WORD_CUTE + .2byte EC_WORD_FASHION + .2byte EC_WORD_APPEAL +@ win speech + .2byte EC_WORD_YOUR + .2byte EC_WORD_FASHION + .2byte EC_WORD_SENSE + .2byte EC_WORD_IS + .2byte EC_WORD_A + .2byte EC_WORD_DISASTER +@ loss speech + .2byte EC_WORD_THAT_WAS + .2byte EC_WORD_AWFUL + .2byte EC_WORD_EXCL + .2byte EC_WORD_I_AM + .2byte EC_WORD_GOING + .2byte EC_WORD_HOME .4byte gBattleFrontierTrainerMons_Amelia @ 72 .4byte TRAINER_CLASS_AROMA_LADY .string "JILLIAN$", 8 @ pre-battle speech - ec_word WHAT - ec_word IS - ec_word THAT - ec_word I - ec_word SMELL - ec_word QUES -@ win speech - ec_word IT_S - ec_word THE - ec_move1 SWEET_SCENT - ec_word OF - ec_word TASTY - ec_word WATER -@ loss speech - ec_word IT_S - ec_word YOUR - ec_word OFFENSIVE - ec_word STENCH - ec_word THAT_S - ec_word WHAT + .2byte EC_WORD_WHAT + .2byte EC_WORD_IS + .2byte EC_WORD_THAT + .2byte EC_WORD_I + .2byte EC_WORD_SMELL + .2byte EC_WORD_QUES +@ win speech + .2byte EC_WORD_IT_S + .2byte EC_WORD_THE + .2byte EC_MOVE(SWEET_SCENT) + .2byte EC_WORD_OF + .2byte EC_WORD_TASTY + .2byte EC_WORD_WATER +@ loss speech + .2byte EC_WORD_IT_S + .2byte EC_WORD_YOUR + .2byte EC_WORD_OFFENSIVE + .2byte EC_WORD_STENCH + .2byte EC_WORD_THAT_S + .2byte EC_WORD_WHAT .4byte gBattleFrontierTrainerMons_Jillian @ 73 .4byte TRAINER_CLASS_AROMA_LADY .string "ABBIE$", 8 @ pre-battle speech - ec_word YOU - ec_word TRY - ec_word MY - ec_word SECRET - ec_move1 AROMATHERAPY - ec_word OK_QUES -@ win speech - ec_word MY - ec_move1 AROMATHERAPY - ec_word IS - ec_word TERRIBLE - ec_word FOR - ec_word YOU -@ loss speech - ec_word DIDN_T - ec_word YOU - ec_word SMELL - ec_word A - ec_word THING - ec_word QUES_EXCL + .2byte EC_WORD_YOU + .2byte EC_WORD_TRY + .2byte EC_WORD_MY + .2byte EC_WORD_SECRET + .2byte EC_MOVE(AROMATHERAPY) + .2byte EC_WORD_OK_QUES +@ win speech + .2byte EC_WORD_MY + .2byte EC_MOVE(AROMATHERAPY) + .2byte EC_WORD_IS + .2byte EC_WORD_TERRIBLE + .2byte EC_WORD_FOR + .2byte EC_WORD_YOU +@ loss speech + .2byte EC_WORD_DIDN_T + .2byte EC_WORD_YOU + .2byte EC_WORD_SMELL + .2byte EC_WORD_A + .2byte EC_WORD_THING + .2byte EC_WORD_QUES_EXCL .4byte gBattleFrontierTrainerMons_Abbie @ 74 .4byte TRAINER_CLASS_AROMA_LADY .string "BRIANA$", 8 @ pre-battle speech - ec_word MY - ec_word BOY - ec_word FRIEND - ec_word WORKS - ec_word TOO - ec_word MUCH -@ win speech - ec_word I - ec_word ONLY - ec_word MISS - ec_word HIM - ec_word MORE - ec_word ELLIPSIS -@ loss speech - ec_word I_AM - ec_word SO - ec_word LONESOME - ec_word WITHOUT - ec_word HIM - ec_word ELLIPSIS + .2byte EC_WORD_MY + .2byte EC_WORD_BOY + .2byte EC_WORD_FRIEND + .2byte EC_WORD_WORKS + .2byte EC_WORD_TOO + .2byte EC_WORD_MUCH +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_ONLY + .2byte EC_WORD_MISS + .2byte EC_WORD_HIM + .2byte EC_WORD_MORE + .2byte EC_WORD_ELLIPSIS +@ loss speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_SO + .2byte EC_WORD_LONESOME + .2byte EC_WORD_WITHOUT + .2byte EC_WORD_HIM + .2byte EC_WORD_ELLIPSIS .4byte gBattleFrontierTrainerMons_Briana @ 75 .4byte TRAINER_CLASS_GUITARIST .string "ANTONIO$", 8 @ pre-battle speech - ec_word I - ec_word KNOW - ec_word HOW - ec_word TO - ec_word GO - ec_word GO -@ win speech - ec_word BUT - ec_word I - ec_word DON_T - ec_word LIKE - ec_word TO - ec_word DANCE -@ loss speech - ec_word GO - ec_word GO - ec_word ELLIPSIS - ec_word JUST - ec_move1 FLAIL - ec_word ABOUT + .2byte EC_WORD_I + .2byte EC_WORD_KNOW + .2byte EC_WORD_HOW + .2byte EC_WORD_TO + .2byte EC_WORD_GO + .2byte EC_WORD_GO +@ win speech + .2byte EC_WORD_BUT + .2byte EC_WORD_I + .2byte EC_WORD_DON_T + .2byte EC_WORD_LIKE + .2byte EC_WORD_TO + .2byte EC_WORD_DANCE +@ loss speech + .2byte EC_WORD_GO + .2byte EC_WORD_GO + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_JUST + .2byte EC_MOVE(FLAIL) + .2byte EC_WORD_ABOUT .4byte gBattleFrontierTrainerMons_Antonio @ 76 .4byte TRAINER_CLASS_GUITARIST .string "JADEN$", 8 @ pre-battle speech - ec_word HELLO - ec_word I - ec_word THINK - ec_word I - ec_word ADORE - ec_word YOU + .2byte EC_WORD_HELLO + .2byte EC_WORD_I + .2byte EC_WORD_THINK + .2byte EC_WORD_I + .2byte EC_WORD_ADORE + .2byte EC_WORD_YOU @ win speech - ec_word YOU - ec_word MAKE - ec_word ME - ec_move1 THRASH - ec_word IN - ec_move2 FRUSTRATION + .2byte EC_WORD_YOU + .2byte EC_WORD_MAKE + .2byte EC_WORD_ME + .2byte EC_MOVE(THRASH) + .2byte EC_WORD_IN + .2byte EC_MOVE2(FRUSTRATION) @ loss speech - ec_word THIS_IS_IT_EXCL + .2byte EC_WORD_THIS_IS_IT_EXCL .2byte -1 .2byte -1 - ec_word GOOD_BYE - ec_word FOREVER - ec_word EXCL + .2byte EC_WORD_GOOD_BYE + .2byte EC_WORD_FOREVER + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Jaden @ 77 .4byte TRAINER_CLASS_GUITARIST .string "DAKOTA$", 8 @ pre-battle speech - ec_word YOU - ec_word HAVE - ec_word TO - ec_word DANCE - ec_word WITH - ec_word POWER -@ win speech - ec_word GOT - ec_word IT - ec_word QUES - ec_word DANCE - ec_word WITH - ec_word POWER -@ loss speech - ec_word OKAY - ec_word YOU - ec_word UNDERSTAND - ec_word ALL_RIGHT - ec_word EXCL + .2byte EC_WORD_YOU + .2byte EC_WORD_HAVE + .2byte EC_WORD_TO + .2byte EC_WORD_DANCE + .2byte EC_WORD_WITH + .2byte EC_WORD_POWER +@ win speech + .2byte EC_WORD_GOT + .2byte EC_WORD_IT + .2byte EC_WORD_QUES + .2byte EC_WORD_DANCE + .2byte EC_WORD_WITH + .2byte EC_WORD_POWER +@ loss speech + .2byte EC_WORD_OKAY + .2byte EC_WORD_YOU + .2byte EC_WORD_UNDERSTAND + .2byte EC_WORD_ALL_RIGHT + .2byte EC_WORD_EXCL .2byte -1 .4byte gBattleFrontierTrainerMons_Dakota @@ -2032,74 +2032,74 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_BIRD_KEEPER .string "BRAYDEN$", 8 @ pre-battle speech - ec_word COLOR_CHANGE - ec_word VERSION - ec_word TOYS - ec_word ARE - ec_word USELESS - ec_word EXCL -@ win speech - ec_word I - ec_word ONLY - ec_word COLLECT - ec_word NORMAL - ec_word VERSION - ec_word TOYS -@ loss speech - ec_word I - ec_move2 ATTRACT - ec_word COLOR_CHANGE - ec_word VERSION - ec_word TOYS - ec_word ELLIPSIS + .2byte EC_WORD_COLOR_CHANGE + .2byte EC_WORD_VERSION + .2byte EC_WORD_TOYS + .2byte EC_WORD_ARE + .2byte EC_WORD_USELESS + .2byte EC_WORD_EXCL +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_ONLY + .2byte EC_WORD_COLLECT + .2byte EC_WORD_NORMAL + .2byte EC_WORD_VERSION + .2byte EC_WORD_TOYS +@ loss speech + .2byte EC_WORD_I + .2byte EC_MOVE2(ATTRACT) + .2byte EC_WORD_COLOR_CHANGE + .2byte EC_WORD_VERSION + .2byte EC_WORD_TOYS + .2byte EC_WORD_ELLIPSIS .4byte gBattleFrontierTrainerMons_Brayden @ 79 .4byte TRAINER_CLASS_BIRD_KEEPER .string "CORSON$", 8 @ pre-battle speech - ec_word I - ec_word GET - ec_word TO - ec_move2 BEAT_UP - ec_word ON - ec_word YOU -@ win speech - ec_word TOO - ec_word EASY - ec_word EXCL - ec_word I_AM - ec_word SO - ec_word COOL -@ loss speech - ec_word WHY - ec_word QUES_EXCL - .2byte -1 - ec_word I - ec_move2 CURSE - ec_word YOU + .2byte EC_WORD_I + .2byte EC_WORD_GET + .2byte EC_WORD_TO + .2byte EC_MOVE2(BEAT_UP) + .2byte EC_WORD_ON + .2byte EC_WORD_YOU +@ win speech + .2byte EC_WORD_TOO + .2byte EC_WORD_EASY + .2byte EC_WORD_EXCL + .2byte EC_WORD_I_AM + .2byte EC_WORD_SO + .2byte EC_WORD_COOL +@ loss speech + .2byte EC_WORD_WHY + .2byte EC_WORD_QUES_EXCL + .2byte -1 + .2byte EC_WORD_I + .2byte EC_MOVE2(CURSE) + .2byte EC_WORD_YOU .4byte gBattleFrontierTrainerMons_Corson @ 80 .4byte TRAINER_CLASS_BIRD_KEEPER .string "TREVIN$", 8 @ pre-battle speech - ec_word THERE - ec_word IS - ec_word NONE - ec_word BETTER - ec_word THAN - ec_word ME + .2byte EC_WORD_THERE + .2byte EC_WORD_IS + .2byte EC_WORD_NONE + .2byte EC_WORD_BETTER + .2byte EC_WORD_THAN + .2byte EC_WORD_ME @ win speech - ec_word YES_SIR_EXCL + .2byte EC_WORD_YES_SIR_EXCL .2byte -1 .2byte -1 - ec_word I_AM - ec_word THE - ec_word BEST + .2byte EC_WORD_I_AM + .2byte EC_WORD_THE + .2byte EC_WORD_BEST @ loss speech - ec_word SERIOUS - ec_word QUES_EXCL + .2byte EC_WORD_SERIOUS + .2byte EC_WORD_QUES_EXCL .2byte -1 .2byte -1 .2byte -1 @@ -2110,77 +2110,77 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_SAILOR .string "PATRICK$", 8 @ pre-battle speech - ec_word I_AM - ec_word PERFECT - ec_word EXCL - ec_word GIVE_UP - ec_word NOW + .2byte EC_WORD_I_AM + .2byte EC_WORD_PERFECT + .2byte EC_WORD_EXCL + .2byte EC_WORD_GIVE_UP + .2byte EC_WORD_NOW .2byte -1 @ win speech - ec_word DON_T - ec_word BE - ec_word DISAPPOINTED - ec_word I_AM - ec_word PERFECT + .2byte EC_WORD_DON_T + .2byte EC_WORD_BE + .2byte EC_WORD_DISAPPOINTED + .2byte EC_WORD_I_AM + .2byte EC_WORD_PERFECT .2byte -1 @ loss speech - ec_word BUT - ec_word HOW - ec_word QUES - ec_word I_AM - ec_word PERFECT - ec_word ELLIPSIS + .2byte EC_WORD_BUT + .2byte EC_WORD_HOW + .2byte EC_WORD_QUES + .2byte EC_WORD_I_AM + .2byte EC_WORD_PERFECT + .2byte EC_WORD_ELLIPSIS .4byte gBattleFrontierTrainerMons_Patrick @ 82 .4byte TRAINER_CLASS_SAILOR .string "KADEN$", 8 @ pre-battle speech - ec_word WHAT - ec_word ARE - ec_word YOU - ec_word UP - ec_word TO - ec_word QUES -@ win speech - ec_word YOU - ec_word WERE - ec_word A - ec_word SURPRISE - ec_word TO_ME - ec_word EXCL -@ loss speech - ec_word I - ec_word DON_T - ec_word KNOW - ec_word WHO - ec_word I_AM - ec_word ELLIPSIS + .2byte EC_WORD_WHAT + .2byte EC_WORD_ARE + .2byte EC_WORD_YOU + .2byte EC_WORD_UP + .2byte EC_WORD_TO + .2byte EC_WORD_QUES +@ win speech + .2byte EC_WORD_YOU + .2byte EC_WORD_WERE + .2byte EC_WORD_A + .2byte EC_WORD_SURPRISE + .2byte EC_WORD_TO_ME + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_DON_T + .2byte EC_WORD_KNOW + .2byte EC_WORD_WHO + .2byte EC_WORD_I_AM + .2byte EC_WORD_ELLIPSIS .4byte gBattleFrontierTrainerMons_Kaden @ 83 .4byte TRAINER_CLASS_SAILOR .string "MAXWELL$", 8 @ pre-battle speech - ec_word HEY_THERE - ec_word WHO_IS - ec_word YOUR - ec_word RIVAL - ec_word QUES + .2byte EC_WORD_HEY_THERE + .2byte EC_WORD_WHO_IS + .2byte EC_WORD_YOUR + .2byte EC_WORD_RIVAL + .2byte EC_WORD_QUES .2byte -1 @ win speech - ec_word MY - ec_word RIVAL - ec_word IS - ec_word MY - ec_word GIRL - ec_word FRIEND + .2byte EC_WORD_MY + .2byte EC_WORD_RIVAL + .2byte EC_WORD_IS + .2byte EC_WORD_MY + .2byte EC_WORD_GIRL + .2byte EC_WORD_FRIEND @ loss speech - ec_word I_AM - ec_word MAKING - ec_word YOU - ec_word MY - ec_word RIVAL + .2byte EC_WORD_I_AM + .2byte EC_WORD_MAKING + .2byte EC_WORD_YOU + .2byte EC_WORD_MY + .2byte EC_WORD_RIVAL .2byte -1 .4byte gBattleFrontierTrainerMons_Maxwell @@ -2188,49 +2188,49 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_HIKER .string "DARYL$", 8 @ pre-battle speech - ec_word I - ec_word ONLY - ec_word KNOW - ec_word HOW - ec_word TO - ec_move1 CHARGE -@ win speech - ec_word AM - ec_word I - ec_word OVERWHELMING - ec_word OR - ec_word WHAT - ec_word QUES -@ loss speech - ec_word YOU_RE - ec_word GOING - ec_word TO - ec_word A - ec_word LEGEND - ec_word EXCL + .2byte EC_WORD_I + .2byte EC_WORD_ONLY + .2byte EC_WORD_KNOW + .2byte EC_WORD_HOW + .2byte EC_WORD_TO + .2byte EC_MOVE(CHARGE) +@ win speech + .2byte EC_WORD_AM + .2byte EC_WORD_I + .2byte EC_WORD_OVERWHELMING + .2byte EC_WORD_OR + .2byte EC_WORD_WHAT + .2byte EC_WORD_QUES +@ loss speech + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_GOING + .2byte EC_WORD_TO + .2byte EC_WORD_A + .2byte EC_WORD_LEGEND + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Daryl @ 85 .4byte TRAINER_CLASS_HIKER .string "KENNETH$", 8 @ pre-battle speech - ec_word YOU - ec_word BETTER - ec_word NOT - ec_move2 SLACK_OFF - ec_word WITH - ec_word ME + .2byte EC_WORD_YOU + .2byte EC_WORD_BETTER + .2byte EC_WORD_NOT + .2byte EC_MOVE2(SLACK_OFF) + .2byte EC_WORD_WITH + .2byte EC_WORD_ME @ win speech - ec_word DID - ec_word MY - ec_move2 TAUNT - ec_word INTIMIDATE - ec_word YOU - ec_word QUES + .2byte EC_WORD_DID + .2byte EC_WORD_MY + .2byte EC_MOVE2(TAUNT) + .2byte EC_WORD_INTIMIDATE + .2byte EC_WORD_YOU + .2byte EC_WORD_QUES @ loss speech - ec_word I_AM - ec_word SORRY - ec_word ELLIPSIS + .2byte EC_WORD_I_AM + .2byte EC_WORD_SORRY + .2byte EC_WORD_ELLIPSIS .2byte -1 .2byte -1 .2byte -1 @@ -2240,25 +2240,25 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_HIKER .string "RICH$", 8 @ pre-battle speech - ec_word YOUR - ec_move1 FACADE - ec_word DOESN_T - ec_move2 TRICK - ec_word ME + .2byte EC_WORD_YOUR + .2byte EC_MOVE(FACADE) + .2byte EC_WORD_DOESN_T + .2byte EC_MOVE2(TRICK) + .2byte EC_WORD_ME .2byte -1 @ win speech - ec_word SERIOUSLY - ec_word ARE - ec_word YOU - ec_word REALLY - ec_word OK_QUES + .2byte EC_WORD_SERIOUSLY + .2byte EC_WORD_ARE + .2byte EC_WORD_YOU + .2byte EC_WORD_REALLY + .2byte EC_WORD_OK_QUES .2byte -1 @ loss speech - ec_word THAT_WAS - ec_word REALLY - ec_word TOUGH - ec_word ON - ec_word ME + .2byte EC_WORD_THAT_WAS + .2byte EC_WORD_REALLY + .2byte EC_WORD_TOUGH + .2byte EC_WORD_ON + .2byte EC_WORD_ME .2byte -1 .4byte gBattleFrontierTrainerMons_Rich @@ -2266,181 +2266,181 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_KINDLER .string "CADEN$", 8 @ pre-battle speech - ec_word I - ec_word CAN_T - ec_word BE - ec_word DEFEATED - ec_word EXCL + .2byte EC_WORD_I + .2byte EC_WORD_CAN_T + .2byte EC_WORD_BE + .2byte EC_WORD_DEFEATED + .2byte EC_WORD_EXCL .2byte -1 @ win speech - ec_word FIRE - ec_word EXCL + .2byte EC_WORD_FIRE + .2byte EC_WORD_EXCL .2byte -1 - ec_word FIRE - ec_word EXCL_EXCL + .2byte EC_WORD_FIRE + .2byte EC_WORD_EXCL_EXCL .2byte -1 @ loss speech - ec_word I_AM - ec_word TIRED - ec_word ELLIPSIS - ec_word IT_S - ec_word SO - ec_word HOT + .2byte EC_WORD_I_AM + .2byte EC_WORD_TIRED + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_IT_S + .2byte EC_WORD_SO + .2byte EC_WORD_HOT .4byte gBattleFrontierTrainerMons_Caden @ 88 .4byte TRAINER_CLASS_KINDLER .string "MARLON$", 8 @ pre-battle speech - ec_word A - ec_word POKEDEX - ec_word IS - ec_word A_LITTLE - ec_word RADIO - ec_word QUES -@ win speech - ec_word A_LITTLE - ec_word RADIO - ec_word HUH_QUES - ec_word THAT_S - ec_word TOTALLY - ec_word COOL -@ loss speech - ec_word IT_S - ec_word NOT - ec_word QUES - ec_word IS - ec_word POKENAV - ec_word QUES + .2byte EC_WORD_A + .2byte EC_WORD_POKEDEX + .2byte EC_WORD_IS + .2byte EC_WORD_A_LITTLE + .2byte EC_WORD_RADIO + .2byte EC_WORD_QUES +@ win speech + .2byte EC_WORD_A_LITTLE + .2byte EC_WORD_RADIO + .2byte EC_WORD_HUH_QUES + .2byte EC_WORD_THAT_S + .2byte EC_WORD_TOTALLY + .2byte EC_WORD_COOL +@ loss speech + .2byte EC_WORD_IT_S + .2byte EC_WORD_NOT + .2byte EC_WORD_QUES + .2byte EC_WORD_IS + .2byte EC_WORD_POKENAV + .2byte EC_WORD_QUES .4byte gBattleFrontierTrainerMons_Marlon @ 89 .4byte TRAINER_CLASS_KINDLER .string "NASH$", 8 @ pre-battle speech - ec_word I_AM - ec_word ON - ec_word FIRE - ec_word BABY - ec_word EXCL + .2byte EC_WORD_I_AM + .2byte EC_WORD_ON + .2byte EC_WORD_FIRE + .2byte EC_WORD_BABY + .2byte EC_WORD_EXCL .2byte -1 @ win speech - ec_word I - ec_word LEFT - ec_word YOU - ec_word JUST - ec_word AN - ec_move2 EMBER + .2byte EC_WORD_I + .2byte EC_WORD_LEFT + .2byte EC_WORD_YOU + .2byte EC_WORD_JUST + .2byte EC_WORD_AN + .2byte EC_MOVE2(EMBER) @ loss speech - ec_word AIYEEH - ec_word EXCL_EXCL + .2byte EC_WORD_AIYEEH + .2byte EC_WORD_EXCL_EXCL .2byte -1 - ec_word NO - ec_word WATER - ec_word PLEASE + .2byte EC_WORD_NO + .2byte EC_WORD_WATER + .2byte EC_WORD_PLEASE .4byte gBattleFrontierTrainerMons_Nash @ 90 .4byte TRAINER_CLASS_TRIATHLETE_3 .string "ROBBY$", 8 @ pre-battle speech - ec_word HAHAHA - ec_word EXCL - ec_word HAPPY - ec_word TO - ec_word MEET_YOU - ec_word EXCL -@ win speech - ec_word I_AM - ec_word THE - ec_word LEADER - ec_word WITH - ec_word REFRESHING - ec_word SERENE_GRACE -@ loss speech - ec_word I - ec_word WILL - ec_move1 THRASH - ec_word MY - ec_word TOYS - ec_word EXCL + .2byte EC_WORD_HAHAHA + .2byte EC_WORD_EXCL + .2byte EC_WORD_HAPPY + .2byte EC_WORD_TO + .2byte EC_WORD_MEET_YOU + .2byte EC_WORD_EXCL +@ win speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_THE + .2byte EC_WORD_LEADER + .2byte EC_WORD_WITH + .2byte EC_WORD_REFRESHING + .2byte EC_WORD_SERENE_GRACE +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_WILL + .2byte EC_MOVE(THRASH) + .2byte EC_WORD_MY + .2byte EC_WORD_TOYS + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Robby @ 91 .4byte TRAINER_CLASS_TRIATHLETE_3 .string "REECE$", 8 @ pre-battle speech - ec_word MY - ec_move2 QUICK_ATTACK - ec_word CAN - ec_word BEAT - ec_word A - ec_move2 TELEPORT -@ win speech - ec_word LIKE - ec_word I - ec_word SAID - ec_word I_AM - ec_word DARN - ec_word FAST -@ loss speech - ec_word I_WAS - ec_word KIDDING - ec_word ABOUT - ec_word THAT - ec_move2 TELEPORT - ec_word THING + .2byte EC_WORD_MY + .2byte EC_MOVE2(QUICK_ATTACK) + .2byte EC_WORD_CAN + .2byte EC_WORD_BEAT + .2byte EC_WORD_A + .2byte EC_MOVE2(TELEPORT) +@ win speech + .2byte EC_WORD_LIKE + .2byte EC_WORD_I + .2byte EC_WORD_SAID + .2byte EC_WORD_I_AM + .2byte EC_WORD_DARN + .2byte EC_WORD_FAST +@ loss speech + .2byte EC_WORD_I_WAS + .2byte EC_WORD_KIDDING + .2byte EC_WORD_ABOUT + .2byte EC_WORD_THAT + .2byte EC_MOVE2(TELEPORT) + .2byte EC_WORD_THING .4byte gBattleFrontierTrainerMons_Reece @ 92 .4byte TRAINER_CLASS_TRIATHLETE_4 .string "KATHRYN$", 8 @ pre-battle speech - ec_word I - ec_word DON_T - ec_word TRAIN - ec_word GOOD - ec_word ENOUGH - ec_word QUES -@ win speech - ec_word DON_T - ec_move2 TAUNT - ec_word ME - ec_word LIKE - ec_word THAT - ec_word OK_QUES -@ loss speech - ec_word WHY - ec_word COULDN_T - ec_word I - ec_word WIN - ec_word THIS - ec_word QUES + .2byte EC_WORD_I + .2byte EC_WORD_DON_T + .2byte EC_WORD_TRAIN + .2byte EC_WORD_GOOD + .2byte EC_WORD_ENOUGH + .2byte EC_WORD_QUES +@ win speech + .2byte EC_WORD_DON_T + .2byte EC_MOVE2(TAUNT) + .2byte EC_WORD_ME + .2byte EC_WORD_LIKE + .2byte EC_WORD_THAT + .2byte EC_WORD_OK_QUES +@ loss speech + .2byte EC_WORD_WHY + .2byte EC_WORD_COULDN_T + .2byte EC_WORD_I + .2byte EC_WORD_WIN + .2byte EC_WORD_THIS + .2byte EC_WORD_QUES .4byte gBattleFrontierTrainerMons_Kathryn @ 93 .4byte TRAINER_CLASS_TRIATHLETE_4 .string "ELLEN$", 8 @ pre-battle speech - ec_word CRUSH - ec_word YOU - ec_word LIKE - ec_word AN - ec_word EGG - ec_word EXCL -@ win speech - ec_word THAT_WAS - ec_word A - ec_word TASTY - ec_word VICTORY - ec_word FOR - ec_word ME -@ loss speech - ec_word TOO - ec_word TOUGH - ec_word TO - ec_word CRUSH - ec_word EXCL + .2byte EC_WORD_CRUSH + .2byte EC_WORD_YOU + .2byte EC_WORD_LIKE + .2byte EC_WORD_AN + .2byte EC_WORD_EGG + .2byte EC_WORD_EXCL +@ win speech + .2byte EC_WORD_THAT_WAS + .2byte EC_WORD_A + .2byte EC_WORD_TASTY + .2byte EC_WORD_VICTORY + .2byte EC_WORD_FOR + .2byte EC_WORD_ME +@ loss speech + .2byte EC_WORD_TOO + .2byte EC_WORD_TOUGH + .2byte EC_WORD_TO + .2byte EC_WORD_CRUSH + .2byte EC_WORD_EXCL .2byte -1 .4byte gBattleFrontierTrainerMons_Ellen @@ -2448,51 +2448,51 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_TRIATHLETE_5 .string "RAMON$", 8 @ pre-battle speech - ec_word OKAY - ec_word EXCL - .2byte -1 - ec_word THIS - ec_word IS - ec_word PERFECTION -@ win speech - ec_word I_AM - ec_word HAPPY - ec_word THAT - ec_word I - ec_word WON - ec_word EXCL -@ loss speech - ec_word IT_S - ec_word A - ec_word SECRET - ec_word WHY - ec_word I_AM - ec_word HAPPY + .2byte EC_WORD_OKAY + .2byte EC_WORD_EXCL + .2byte -1 + .2byte EC_WORD_THIS + .2byte EC_WORD_IS + .2byte EC_WORD_PERFECTION +@ win speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_HAPPY + .2byte EC_WORD_THAT + .2byte EC_WORD_I + .2byte EC_WORD_WON + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_IT_S + .2byte EC_WORD_A + .2byte EC_WORD_SECRET + .2byte EC_WORD_WHY + .2byte EC_WORD_I_AM + .2byte EC_WORD_HAPPY .4byte gBattleFrontierTrainerMons_Ramon @ 95 .4byte TRAINER_CLASS_TRIATHLETE_5 .string "ARTHUR$", 8 @ pre-battle speech - ec_word HERE_I_COME - ec_word FEELING - ec_word READY - ec_word FOR - ec_word IT - ec_word ALL + .2byte EC_WORD_HERE_I_COME + .2byte EC_WORD_FEELING + .2byte EC_WORD_READY + .2byte EC_WORD_FOR + .2byte EC_WORD_IT + .2byte EC_WORD_ALL @ win speech - ec_word THAT_S_IT_EXCL + .2byte EC_WORD_THAT_S_IT_EXCL .2byte -1 .2byte -1 - ec_word THAT_WAS - ec_word FABULOUS - ec_word EXCL + .2byte EC_WORD_THAT_WAS + .2byte EC_WORD_FABULOUS + .2byte EC_WORD_EXCL @ loss speech - ec_word THAT_WAS - ec_word NOT - ec_word WHAT - ec_word I - ec_word NEED + .2byte EC_WORD_THAT_WAS + .2byte EC_WORD_NOT + .2byte EC_WORD_WHAT + .2byte EC_WORD_I + .2byte EC_WORD_NEED .2byte -1 .4byte gBattleFrontierTrainerMons_Arthur @@ -2500,51 +2500,51 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_TRIATHLETE_6 .string "ALONDRA$", 8 @ pre-battle speech - ec_word EVERY - ec_word DAY - ec_word IS - ec_word A - ec_word GREAT - ec_word DAY -@ win speech - ec_word MY - ec_move2 DIVE - ec_word WILL - ec_word BE - ec_word A - ec_word LEGEND -@ loss speech - ec_word MY - ec_move2 DIVE - ec_word LEFT - ec_word ME - ec_word COLD - ec_word ELLIPSIS + .2byte EC_WORD_EVERY + .2byte EC_WORD_DAY + .2byte EC_WORD_IS + .2byte EC_WORD_A + .2byte EC_WORD_GREAT + .2byte EC_WORD_DAY +@ win speech + .2byte EC_WORD_MY + .2byte EC_MOVE2(DIVE) + .2byte EC_WORD_WILL + .2byte EC_WORD_BE + .2byte EC_WORD_A + .2byte EC_WORD_LEGEND +@ loss speech + .2byte EC_WORD_MY + .2byte EC_MOVE2(DIVE) + .2byte EC_WORD_LEFT + .2byte EC_WORD_ME + .2byte EC_WORD_COLD + .2byte EC_WORD_ELLIPSIS .4byte gBattleFrontierTrainerMons_Alondra @ 97 .4byte TRAINER_CLASS_TRIATHLETE_6 .string "ADRIANA$", 8 @ pre-battle speech - ec_word COME - ec_word SEE - ec_word AN - ec_word INCREDIBLE - ec_word SWIFT_SWIM - ec_word EXCL -@ win speech - ec_word I - ec_word MAKE - ec_word IT - ec_word LOOK - ec_word SO - ec_word EASY -@ loss speech - ec_word I_AM - ec_word FEELING - ec_move2 BEAT_UP - ec_word AND - ec_word TIRED + .2byte EC_WORD_COME + .2byte EC_WORD_SEE + .2byte EC_WORD_AN + .2byte EC_WORD_INCREDIBLE + .2byte EC_WORD_SWIFT_SWIM + .2byte EC_WORD_EXCL +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_MAKE + .2byte EC_WORD_IT + .2byte EC_WORD_LOOK + .2byte EC_WORD_SO + .2byte EC_WORD_EASY +@ loss speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_FEELING + .2byte EC_MOVE2(BEAT_UP) + .2byte EC_WORD_AND + .2byte EC_WORD_TIRED .2byte -1 .4byte gBattleFrontierTrainerMons_Adriana @@ -2552,207 +2552,207 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_TRIATHLETE_1 .string "MALIK$", 8 @ pre-battle speech - ec_word OH - ec_word NOT - ec_word ANOTHER - ec_word BATTLE - ec_word PLEASE - ec_word ELLIPSIS -@ win speech - ec_word I - ec_word FINALLY - ec_word WON - ec_word ELLIPSIS - ec_word I_AM - ec_word TIRED -@ loss speech - ec_word I - ec_word FINALLY - ec_word LOST - ec_word ELLIPSIS - ec_word I_AM - ec_word TIRED + .2byte EC_WORD_OH + .2byte EC_WORD_NOT + .2byte EC_WORD_ANOTHER + .2byte EC_WORD_BATTLE + .2byte EC_WORD_PLEASE + .2byte EC_WORD_ELLIPSIS +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_FINALLY + .2byte EC_WORD_WON + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_I_AM + .2byte EC_WORD_TIRED +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_FINALLY + .2byte EC_WORD_LOST + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_I_AM + .2byte EC_WORD_TIRED .4byte gBattleFrontierTrainerMons_Malik @ 99 .4byte TRAINER_CLASS_TRIATHLETE_2 .string "JILL$", 8 @ pre-battle speech - ec_word I_AM - ec_word THE - ec_move2 QUICK_ATTACK - ec_word TRAINER - ec_word EXCL + .2byte EC_WORD_I_AM + .2byte EC_WORD_THE + .2byte EC_MOVE2(QUICK_ATTACK) + .2byte EC_WORD_TRAINER + .2byte EC_WORD_EXCL .2byte -1 @ win speech - ec_word THE - ec_move2 QUICK_ATTACK - ec_word TRAINER - ec_word WINS - ec_word EXCL + .2byte EC_WORD_THE + .2byte EC_MOVE2(QUICK_ATTACK) + .2byte EC_WORD_TRAINER + .2byte EC_WORD_WINS + .2byte EC_WORD_EXCL .2byte -1 @ loss speech - ec_word THE - ec_move2 QUICK_ATTACK - ec_word TRAINER - ec_word GIVES - ec_word UP - ec_word EXCL + .2byte EC_WORD_THE + .2byte EC_MOVE2(QUICK_ATTACK) + .2byte EC_WORD_TRAINER + .2byte EC_WORD_GIVES + .2byte EC_WORD_UP + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Jill @ 100 .4byte TRAINER_CLASS_TRIATHLETE_3 .string "ERIK$", 8 @ pre-battle speech - ec_word I_AM - ec_word THE - ec_word SPEED_BOOST - ec_word HERO - ec_word EXCL + .2byte EC_WORD_I_AM + .2byte EC_WORD_THE + .2byte EC_WORD_SPEED_BOOST + .2byte EC_WORD_HERO + .2byte EC_WORD_EXCL .2byte -1 @ win speech - ec_word THANK_YOU - ec_word FROM - ec_word THE - ec_word SPEED_BOOST - ec_word HERO - ec_word EXCL + .2byte EC_WORD_THANK_YOU + .2byte EC_WORD_FROM + .2byte EC_WORD_THE + .2byte EC_WORD_SPEED_BOOST + .2byte EC_WORD_HERO + .2byte EC_WORD_EXCL @ loss speech - ec_word WAAAH - ec_word EXCL_EXCL + .2byte EC_WORD_WAAAH + .2byte EC_WORD_EXCL_EXCL .2byte -1 - ec_word NO - ec_word NO - ec_word EXCL_EXCL + .2byte EC_WORD_NO + .2byte EC_WORD_NO + .2byte EC_WORD_EXCL_EXCL .4byte gBattleFrontierTrainerMons_Erik @ 101 .4byte TRAINER_CLASS_TRIATHLETE_4 .string "YAZMIN$", 8 @ pre-battle speech - ec_word I - ec_word WOULD - ec_word RATHER - ec_word RUN - ec_word THAN - ec_word BIKE -@ win speech - ec_word YES - ec_word I - ec_word WOULD - ec_word MUCH - ec_word RATHER - ec_word RUN -@ loss speech - ec_word BYE_BYE - ec_word EXCL - ec_word I_AM - ec_word GOING - ec_word TO - ec_word RUN_AWAY + .2byte EC_WORD_I + .2byte EC_WORD_WOULD + .2byte EC_WORD_RATHER + .2byte EC_WORD_RUN + .2byte EC_WORD_THAN + .2byte EC_WORD_BIKE +@ win speech + .2byte EC_WORD_YES + .2byte EC_WORD_I + .2byte EC_WORD_WOULD + .2byte EC_WORD_MUCH + .2byte EC_WORD_RATHER + .2byte EC_WORD_RUN +@ loss speech + .2byte EC_WORD_BYE_BYE + .2byte EC_WORD_EXCL + .2byte EC_WORD_I_AM + .2byte EC_WORD_GOING + .2byte EC_WORD_TO + .2byte EC_WORD_RUN_AWAY .4byte gBattleFrontierTrainerMons_Yazmin @ 102 .4byte TRAINER_CLASS_TRIATHLETE_5 .string "JAMAL$", 8 @ pre-battle speech - ec_word I_AM - ec_word GOING - ec_word TO - ec_word BE - ec_word A - ec_word FATHER -@ win speech - ec_word I - ec_word CAN_T - ec_word WAIT - ec_word FOR - ec_word MY - ec_word BABY -@ loss speech - ec_word MY - ec_word BABY - ec_word WILL - ec_word BE - ec_word TOTALLY - ec_word AWESOME + .2byte EC_WORD_I_AM + .2byte EC_WORD_GOING + .2byte EC_WORD_TO + .2byte EC_WORD_BE + .2byte EC_WORD_A + .2byte EC_WORD_FATHER +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_CAN_T + .2byte EC_WORD_WAIT + .2byte EC_WORD_FOR + .2byte EC_WORD_MY + .2byte EC_WORD_BABY +@ loss speech + .2byte EC_WORD_MY + .2byte EC_WORD_BABY + .2byte EC_WORD_WILL + .2byte EC_WORD_BE + .2byte EC_WORD_TOTALLY + .2byte EC_WORD_AWESOME .4byte gBattleFrontierTrainerMons_Jamal @ 103 .4byte TRAINER_CLASS_TRIATHLETE_6 .string "LESLIE$", 8 @ pre-battle speech - ec_word I_AM - ec_word GOING - ec_word TO - ec_word BE - ec_word A - ec_word MOTHER -@ win speech - ec_word A - ec_word BABY - ec_word WILL - ec_word BE - ec_word A_LITTLE - ec_word CHALLENGE -@ loss speech - ec_word I_AM - ec_word TOO - ec_word HAPPY - ec_word TO - ec_word BE - ec_word ANGRY + .2byte EC_WORD_I_AM + .2byte EC_WORD_GOING + .2byte EC_WORD_TO + .2byte EC_WORD_BE + .2byte EC_WORD_A + .2byte EC_WORD_MOTHER +@ win speech + .2byte EC_WORD_A + .2byte EC_WORD_BABY + .2byte EC_WORD_WILL + .2byte EC_WORD_BE + .2byte EC_WORD_A_LITTLE + .2byte EC_WORD_CHALLENGE +@ loss speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_TOO + .2byte EC_WORD_HAPPY + .2byte EC_WORD_TO + .2byte EC_WORD_BE + .2byte EC_WORD_ANGRY .4byte gBattleFrontierTrainerMons_Leslie @ 104 .4byte TRAINER_CLASS_TRIATHLETE_1 .string "DAVE$", 8 @ pre-battle speech - ec_word WHAT - ec_word SHOULD - ec_word I - ec_word DO - ec_word TODAY - ec_word QUES -@ win speech - ec_word I - ec_word SHOULD - ec_word ENJOY - ec_word SOME - ec_word SPORTS - ec_word EXCL -@ loss speech - ec_word I - ec_word WILL - ec_word GO - ec_word PLAY - ec_word A - ec_word GAME + .2byte EC_WORD_WHAT + .2byte EC_WORD_SHOULD + .2byte EC_WORD_I + .2byte EC_WORD_DO + .2byte EC_WORD_TODAY + .2byte EC_WORD_QUES +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_SHOULD + .2byte EC_WORD_ENJOY + .2byte EC_WORD_SOME + .2byte EC_WORD_SPORTS + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_WILL + .2byte EC_WORD_GO + .2byte EC_WORD_PLAY + .2byte EC_WORD_A + .2byte EC_WORD_GAME .4byte gBattleFrontierTrainerMons_Dave @ 105 .4byte TRAINER_CLASS_TRIATHLETE_1 .string "CARLO$", 8 @ pre-battle speech - ec_word HAH - ec_word EXCL_EXCL + .2byte EC_WORD_HAH + .2byte EC_WORD_EXCL_EXCL .2byte -1 - ec_word YEAH - ec_word EXCL_EXCL + .2byte EC_WORD_YEAH + .2byte EC_WORD_EXCL_EXCL .2byte -1 @ win speech - ec_word I - ec_word DO - ec_word THINGS - ec_word AT - ec_move1 EXTREME_SPEED - ec_word EXCL + .2byte EC_WORD_I + .2byte EC_WORD_DO + .2byte EC_WORD_THINGS + .2byte EC_WORD_AT + .2byte EC_MOVE(EXTREME_SPEED) + .2byte EC_WORD_EXCL @ loss speech - ec_word I - ec_word LOST - ec_word AT - ec_move1 EXTREME_SPEED - ec_word ELLIPSIS + .2byte EC_WORD_I + .2byte EC_WORD_LOST + .2byte EC_WORD_AT + .2byte EC_MOVE(EXTREME_SPEED) + .2byte EC_WORD_ELLIPSIS .2byte -1 .4byte gBattleFrontierTrainerMons_Carlo @@ -2760,103 +2760,103 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_TRIATHLETE_2 .string "EMILIA$", 8 @ pre-battle speech - ec_word ME - ec_word WORRY - ec_word QUES - ec_word I - ec_word HAVE - ec_word NONE -@ win speech - ec_word AHAHA - ec_word SEE - ec_word QUES - ec_word THAT_WAS - ec_word FANTASTIC - ec_word EXCL -@ loss speech - ec_word AHAHA - ec_word SEE - ec_word QUES - ec_word THAT_WAS - ec_word ENTERTAINING - ec_word EXCL + .2byte EC_WORD_ME + .2byte EC_WORD_WORRY + .2byte EC_WORD_QUES + .2byte EC_WORD_I + .2byte EC_WORD_HAVE + .2byte EC_WORD_NONE +@ win speech + .2byte EC_WORD_AHAHA + .2byte EC_WORD_SEE + .2byte EC_WORD_QUES + .2byte EC_WORD_THAT_WAS + .2byte EC_WORD_FANTASTIC + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_AHAHA + .2byte EC_WORD_SEE + .2byte EC_WORD_QUES + .2byte EC_WORD_THAT_WAS + .2byte EC_WORD_ENTERTAINING + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Emilia @ 107 .4byte TRAINER_CLASS_TRIATHLETE_2 .string "DALIA$", 8 @ pre-battle speech - ec_word MY - ec_word BIKE - ec_word IS - ec_word VERY - ec_word EXPENSIVE - .2byte -1 -@ win speech - ec_word DON_T - ec_word COME - ec_word NEAR - ec_word MY - ec_word BIKE - ec_word EXCL -@ loss speech - ec_word MY - ec_word BIKE - ec_word IS - ec_word MY - ec_word BEST - ec_word FRIEND + .2byte EC_WORD_MY + .2byte EC_WORD_BIKE + .2byte EC_WORD_IS + .2byte EC_WORD_VERY + .2byte EC_WORD_EXPENSIVE + .2byte -1 +@ win speech + .2byte EC_WORD_DON_T + .2byte EC_WORD_COME + .2byte EC_WORD_NEAR + .2byte EC_WORD_MY + .2byte EC_WORD_BIKE + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_MY + .2byte EC_WORD_BIKE + .2byte EC_WORD_IS + .2byte EC_WORD_MY + .2byte EC_WORD_BEST + .2byte EC_WORD_FRIEND .4byte gBattleFrontierTrainerMons_Dalia @ 108 .4byte TRAINER_CLASS_BLACK_BELT .string "HITOMI$", 8 @ pre-battle speech - ec_word YEAH - ec_word EXCL_EXCL + .2byte EC_WORD_YEAH + .2byte EC_WORD_EXCL_EXCL .2byte -1 - ec_word HAH - ec_word EXCL_EXCL + .2byte EC_WORD_HAH + .2byte EC_WORD_EXCL_EXCL .2byte -1 @ win speech - ec_word WHAT - ec_word QUES_EXCL + .2byte EC_WORD_WHAT + .2byte EC_WORD_QUES_EXCL .2byte -1 - ec_word I - ec_word WON - ec_word QUES_EXCL + .2byte EC_WORD_I + .2byte EC_WORD_WON + .2byte EC_WORD_QUES_EXCL @ loss speech - ec_word AIYEEH - ec_word EXCL_EXCL + .2byte EC_WORD_AIYEEH + .2byte EC_WORD_EXCL_EXCL .2byte -1 - ec_word I_AM - ec_word SORRY - ec_word EXCL_EXCL + .2byte EC_WORD_I_AM + .2byte EC_WORD_SORRY + .2byte EC_WORD_EXCL_EXCL .4byte gBattleFrontierTrainerMons_Hitomi @ 109 .4byte TRAINER_CLASS_BLACK_BELT .string "RICARDO$", 8 @ pre-battle speech - ec_word COME_ON - ec_word EXCL - ec_word PLAY - ec_word TIME - ec_word IS - ec_word OVER + .2byte EC_WORD_COME_ON + .2byte EC_WORD_EXCL + .2byte EC_WORD_PLAY + .2byte EC_WORD_TIME + .2byte EC_WORD_IS + .2byte EC_WORD_OVER @ win speech - ec_word YOU_RE - ec_word OUT - ec_word OF - ec_word HERE - ec_word EXCL + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_OUT + .2byte EC_WORD_OF + .2byte EC_WORD_HERE + .2byte EC_WORD_EXCL .2byte -1 @ loss speech - ec_word PLEASE - ec_word DON_T - ec_word HIT - ec_word ME - ec_word EXCL + .2byte EC_WORD_PLEASE + .2byte EC_WORD_DON_T + .2byte EC_WORD_HIT + .2byte EC_WORD_ME + .2byte EC_WORD_EXCL .2byte -1 .4byte gBattleFrontierTrainerMons_Ricardo @@ -2864,178 +2864,178 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_BLACK_BELT .string "SHIZUKA$", 8 @ pre-battle speech - ec_word SHOW - ec_word ME - ec_word THAT - ec_word YOU_RE - ec_word SERIOUS - ec_word EXCL -@ win speech - ec_word I - ec_word WON_T - ec_word FORGET - ec_word ABOUT - ec_word YOU - .2byte -1 -@ loss speech - ec_word YOU_RE - ec_word PERFECT - ec_word IN - ec_word EVERY - ec_word WAY - ec_word EXCL + .2byte EC_WORD_SHOW + .2byte EC_WORD_ME + .2byte EC_WORD_THAT + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_SERIOUS + .2byte EC_WORD_EXCL +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_WON_T + .2byte EC_WORD_FORGET + .2byte EC_WORD_ABOUT + .2byte EC_WORD_YOU + .2byte -1 +@ loss speech + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_PERFECT + .2byte EC_WORD_IN + .2byte EC_WORD_EVERY + .2byte EC_WORD_WAY + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Shizuka @ 111 .4byte TRAINER_CLASS_BATTLE_GIRL .string "JOANA$", 8 @ pre-battle speech - ec_word YOU_RE - ec_word GOING - ec_word TO - ec_word LOSE - ec_word RIGHT - ec_word AWAY -@ win speech - ec_word I_AM - ec_word THE - ec_word WINNER - ec_word HEAR - ec_word ME - ec_move2 ROAR -@ loss speech - ec_word I - ec_word REFUSE - ec_word TO - ec_word ACCEPT - ec_word THAT - ec_move1 OUTRAGE + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_GOING + .2byte EC_WORD_TO + .2byte EC_WORD_LOSE + .2byte EC_WORD_RIGHT + .2byte EC_WORD_AWAY +@ win speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_THE + .2byte EC_WORD_WINNER + .2byte EC_WORD_HEAR + .2byte EC_WORD_ME + .2byte EC_MOVE2(ROAR) +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_REFUSE + .2byte EC_WORD_TO + .2byte EC_WORD_ACCEPT + .2byte EC_WORD_THAT + .2byte EC_MOVE(OUTRAGE) .4byte gBattleFrontierTrainerMons_Joana @ 112 .4byte TRAINER_CLASS_BATTLE_GIRL .string "KELLY$", 8 @ pre-battle speech - ec_word MY - ec_word NIGHT - ec_word SCHOOL - ec_word IS - ec_word REALLY - ec_word SCARY -@ win speech - ec_word A - ec_word LADY - ec_word GHOST - ec_word APPEARS - ec_word THERE - .2byte -1 -@ loss speech - ec_word THE - ec_word HOME - ec_word WORK - ec_word IS - ec_word AWFULLY - ec_word SCARY + .2byte EC_WORD_MY + .2byte EC_WORD_NIGHT + .2byte EC_WORD_SCHOOL + .2byte EC_WORD_IS + .2byte EC_WORD_REALLY + .2byte EC_WORD_SCARY +@ win speech + .2byte EC_WORD_A + .2byte EC_WORD_LADY + .2byte EC_WORD_GHOST + .2byte EC_WORD_APPEARS + .2byte EC_WORD_THERE + .2byte -1 +@ loss speech + .2byte EC_WORD_THE + .2byte EC_WORD_HOME + .2byte EC_WORD_WORK + .2byte EC_WORD_IS + .2byte EC_WORD_AWFULLY + .2byte EC_WORD_SCARY .4byte gBattleFrontierTrainerMons_Kelly @ 113 .4byte TRAINER_CLASS_BATTLE_GIRL .string "RAYNA$", 8 @ pre-battle speech - ec_word I_AM - ec_word NO_1 - ec_word WHEN - ec_word IT_S - ec_word ABOUT - ec_word POWER + .2byte EC_WORD_I_AM + .2byte EC_WORD_NO_1 + .2byte EC_WORD_WHEN + .2byte EC_WORD_IT_S + .2byte EC_WORD_ABOUT + .2byte EC_WORD_POWER @ win speech - ec_word UNDERSTAND - ec_word MY - ec_word POWER - ec_word NOW - ec_word QUES + .2byte EC_WORD_UNDERSTAND + .2byte EC_WORD_MY + .2byte EC_WORD_POWER + .2byte EC_WORD_NOW + .2byte EC_WORD_QUES .2byte -1 @ loss speech - ec_word TERRIBLE - ec_word ELLIPSIS + .2byte EC_WORD_TERRIBLE + .2byte EC_WORD_ELLIPSIS .2byte -1 - ec_word I_AM - ec_word TERRIBLE - ec_word ELLIPSIS + .2byte EC_WORD_I_AM + .2byte EC_WORD_TERRIBLE + .2byte EC_WORD_ELLIPSIS .4byte gBattleFrontierTrainerMons_Rayna @ 114 .4byte TRAINER_CLASS_EXPERT_1 .string "EVAN$", 8 @ pre-battle speech - ec_word EVERY - ec_word BATTLE - ec_word HAS - ec_word A - ec_word SMELL - .2byte -1 -@ win speech - ec_word OH - ec_word EXCL - ec_word THE - ec_move1 SWEET_SCENT - ec_word OF - ec_word VICTORY -@ loss speech - ec_word THE - ec_word AWFUL - ec_word STENCH - ec_word OF - ec_word A - ec_word LOSS + .2byte EC_WORD_EVERY + .2byte EC_WORD_BATTLE + .2byte EC_WORD_HAS + .2byte EC_WORD_A + .2byte EC_WORD_SMELL + .2byte -1 +@ win speech + .2byte EC_WORD_OH + .2byte EC_WORD_EXCL + .2byte EC_WORD_THE + .2byte EC_MOVE(SWEET_SCENT) + .2byte EC_WORD_OF + .2byte EC_WORD_VICTORY +@ loss speech + .2byte EC_WORD_THE + .2byte EC_WORD_AWFUL + .2byte EC_WORD_STENCH + .2byte EC_WORD_OF + .2byte EC_WORD_A + .2byte EC_WORD_LOSS .4byte gBattleFrontierTrainerMons_Evan @ 115 .4byte TRAINER_CLASS_EXPERT_1 .string "JORDAN$", 8 @ pre-battle speech - ec_word GOOD - ec_word EXCL + .2byte EC_WORD_GOOD + .2byte EC_WORD_EXCL .2byte -1 - ec_word COME_ON - ec_word EXCL_EXCL + .2byte EC_WORD_COME_ON + .2byte EC_WORD_EXCL_EXCL .2byte -1 @ win speech - ec_word YOU - ec_word CAN_T - ec_word BEAT - ec_word ME - ec_word EXCL + .2byte EC_WORD_YOU + .2byte EC_WORD_CAN_T + .2byte EC_WORD_BEAT + .2byte EC_WORD_ME + .2byte EC_WORD_EXCL .2byte -1 @ loss speech - ec_word WHAT - ec_word QUES_EXCL + .2byte EC_WORD_WHAT + .2byte EC_WORD_QUES_EXCL .2byte -1 - ec_word BUT - ec_word HOW - ec_word QUES + .2byte EC_WORD_BUT + .2byte EC_WORD_HOW + .2byte EC_WORD_QUES .4byte gBattleFrontierTrainerMons_Jordan @ 116 .4byte TRAINER_CLASS_EXPERT_1 .string "JOEL$", 8 @ pre-battle speech - ec_word FUFUFU - ec_word ELLIPSIS + .2byte EC_WORD_FUFUFU + .2byte EC_WORD_ELLIPSIS .2byte -1 .2byte -1 .2byte -1 .2byte -1 @ win speech - ec_word GIGGLE - ec_word ELLIPSIS + .2byte EC_WORD_GIGGLE + .2byte EC_WORD_ELLIPSIS .2byte -1 .2byte -1 .2byte -1 .2byte -1 @ loss speech - ec_word HAHAHA - ec_word ELLIPSIS + .2byte EC_WORD_HAHAHA + .2byte EC_WORD_ELLIPSIS .2byte -1 .2byte -1 .2byte -1 @@ -3046,129 +3046,129 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_EXPERT_2 .string "KRISTEN$", 8 @ pre-battle speech - ec_word HAHAHA - ec_word ELLIPSIS - .2byte -1 - ec_word A - ec_word KID - ec_word ELLIPSIS -@ win speech - ec_word JUST - ec_word A_LITTLE - ec_word KID - ec_word AFTER - ec_word ALL - ec_word EXCL -@ loss speech - ec_word A - ec_word TOUGH - ec_word KID - ec_word HUH_QUES - ec_word HUMPH - ec_word EXCL + .2byte EC_WORD_HAHAHA + .2byte EC_WORD_ELLIPSIS + .2byte -1 + .2byte EC_WORD_A + .2byte EC_WORD_KID + .2byte EC_WORD_ELLIPSIS +@ win speech + .2byte EC_WORD_JUST + .2byte EC_WORD_A_LITTLE + .2byte EC_WORD_KID + .2byte EC_WORD_AFTER + .2byte EC_WORD_ALL + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_A + .2byte EC_WORD_TOUGH + .2byte EC_WORD_KID + .2byte EC_WORD_HUH_QUES + .2byte EC_WORD_HUMPH + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Kristen @ 118 .4byte TRAINER_CLASS_EXPERT_2 .string "SELPHY$", 8 @ pre-battle speech - ec_word HUH_QUES - ec_word WHAT - ec_word IS_IT_QUES + .2byte EC_WORD_HUH_QUES + .2byte EC_WORD_WHAT + .2byte EC_WORD_IS_IT_QUES .2byte -1 .2byte -1 .2byte -1 @ win speech - ec_word OH - ec_word YES - ec_word EXCL - ec_word WHY - ec_word NOT - ec_word QUES + .2byte EC_WORD_OH + .2byte EC_WORD_YES + .2byte EC_WORD_EXCL + .2byte EC_WORD_WHY + .2byte EC_WORD_NOT + .2byte EC_WORD_QUES @ loss speech - ec_word OH - ec_word NO - ec_word EXCL - ec_word WHY - ec_word NOT - ec_word QUES + .2byte EC_WORD_OH + .2byte EC_WORD_NO + .2byte EC_WORD_EXCL + .2byte EC_WORD_WHY + .2byte EC_WORD_NOT + .2byte EC_WORD_QUES .4byte gBattleFrontierTrainerMons_Selphy @ 119 .4byte TRAINER_CLASS_EXPERT_2 .string "CHLOE$", 8 @ pre-battle speech - ec_word COME - ec_word WE - ec_word WILL - ec_word DO - ec_word BATTLE - ec_word NOW + .2byte EC_WORD_COME + .2byte EC_WORD_WE + .2byte EC_WORD_WILL + .2byte EC_WORD_DO + .2byte EC_WORD_BATTLE + .2byte EC_WORD_NOW @ win speech - ec_word MORE - ec_word EXCL + .2byte EC_WORD_MORE + .2byte EC_WORD_EXCL .2byte -1 - ec_word ANOTHER - ec_word BATTLE - ec_word EXCL + .2byte EC_WORD_ANOTHER + .2byte EC_WORD_BATTLE + .2byte EC_WORD_EXCL @ loss speech - ec_word OH - ec_word EXCL + .2byte EC_WORD_OH + .2byte EC_WORD_EXCL .2byte -1 - ec_word STRONG - ec_word YOU - ec_word ARE + .2byte EC_WORD_STRONG + .2byte EC_WORD_YOU + .2byte EC_WORD_ARE .4byte gBattleFrontierTrainerMons_Chloe @ 120 .4byte TRAINER_CLASS_PSYCHIC_1 .string "NORTON$", 8 @ pre-battle speech - ec_word I - ec_word KNOW - ec_word ONLY - ec_word YOU + .2byte EC_WORD_I + .2byte EC_WORD_KNOW + .2byte EC_WORD_ONLY + .2byte EC_WORD_YOU .2byte -1 .2byte -1 @ win speech - ec_word EXCUSE_ME - ec_word BUT - ec_word YOU_RE - ec_word A - ec_word PUSHOVER - ec_word EXCL + .2byte EC_WORD_EXCUSE_ME + .2byte EC_WORD_BUT + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_A + .2byte EC_WORD_PUSHOVER + .2byte EC_WORD_EXCL @ loss speech - ec_word YOU_RE - ec_word SOME - ec_word KIND - ec_word OF - ec_word AWESOME - ec_word EXCL + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_SOME + .2byte EC_WORD_KIND + .2byte EC_WORD_OF + .2byte EC_WORD_AWESOME + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Norton @ 121 .4byte TRAINER_CLASS_PSYCHIC_1 .string "LUKAS$", 8 @ pre-battle speech - ec_word MY - ec_word JOKING - ec_word IS - ec_word PRETTY - ec_word TERRIBLE - ec_word ELLIPSIS -@ win speech - ec_word YOUR - ec_word ROCK_HEAD - ec_word EXISTS - ec_word TO - ec_word SHINE - ec_word EXCL -@ loss speech - ec_word YOUR - ec_word ROCK_HEAD - ec_word COME - ec_word TO - ec_word SHINE + .2byte EC_WORD_MY + .2byte EC_WORD_JOKING + .2byte EC_WORD_IS + .2byte EC_WORD_PRETTY + .2byte EC_WORD_TERRIBLE + .2byte EC_WORD_ELLIPSIS +@ win speech + .2byte EC_WORD_YOUR + .2byte EC_WORD_ROCK_HEAD + .2byte EC_WORD_EXISTS + .2byte EC_WORD_TO + .2byte EC_WORD_SHINE + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_YOUR + .2byte EC_WORD_ROCK_HEAD + .2byte EC_WORD_COME + .2byte EC_WORD_TO + .2byte EC_WORD_SHINE .2byte -1 .4byte gBattleFrontierTrainerMons_Lukas @@ -3176,77 +3176,77 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_PSYCHIC_1 .string "ZACH$", 8 @ pre-battle speech - ec_word I_AM - ec_word AN - ec_word EXCELLENT - ec_move2 MIMIC - ec_word OF - ec_word POKEMON -@ win speech - ec_word I_AM - ec_word HAPPY - ec_word LIKE - ec_word A_LITTLE - ec_pokemon2 TOGEPI - ec_word EXCL -@ loss speech - ec_word I_AM - ec_word ANGRY - ec_word LIKE - ec_word A - ec_pokemon2 MANKEY - ec_word EXCL + .2byte EC_WORD_I_AM + .2byte EC_WORD_AN + .2byte EC_WORD_EXCELLENT + .2byte EC_MOVE2(MIMIC) + .2byte EC_WORD_OF + .2byte EC_WORD_POKEMON +@ win speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_HAPPY + .2byte EC_WORD_LIKE + .2byte EC_WORD_A_LITTLE + .2byte EC_POKEMON2(TOGEPI) + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_ANGRY + .2byte EC_WORD_LIKE + .2byte EC_WORD_A + .2byte EC_POKEMON2(MANKEY) + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Zach @ 123 .4byte TRAINER_CLASS_PSYCHIC_2 .string "KAITLYN$", 8 @ pre-battle speech - ec_word I - ec_word CRUSH - ec_word THINGS - ec_word WITH - ec_word PSYCHIC - ec_word POWER -@ win speech - ec_word MY - ec_word VICTORY - ec_word WILL - ec_word MAKE - ec_word THE - ec_word NEWS -@ loss speech - ec_word NO - ec_word NO - ec_word ELLIPSIS - ec_word THIS - ec_word WON_T - ec_word DO + .2byte EC_WORD_I + .2byte EC_WORD_CRUSH + .2byte EC_WORD_THINGS + .2byte EC_WORD_WITH + .2byte EC_WORD_PSYCHIC + .2byte EC_WORD_POWER +@ win speech + .2byte EC_WORD_MY + .2byte EC_WORD_VICTORY + .2byte EC_WORD_WILL + .2byte EC_WORD_MAKE + .2byte EC_WORD_THE + .2byte EC_WORD_NEWS +@ loss speech + .2byte EC_WORD_NO + .2byte EC_WORD_NO + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_THIS + .2byte EC_WORD_WON_T + .2byte EC_WORD_DO .4byte gBattleFrontierTrainerMons_Kaitlyn @ 124 .4byte TRAINER_CLASS_PSYCHIC_2 .string "BREANNA$", 8 @ pre-battle speech - ec_word MY - ec_word POKEMON - ec_word WILL - ec_word CRUSH - ec_word YOU - ec_word EXCL -@ win speech - ec_word HAVE - ec_word SOME - ec_word MORE - ec_word OF - ec_word THIS - ec_word EXCL -@ loss speech - ec_word YOU - ec_word HAVE - ec_word GUTS - ec_word AND - ec_word SKILL + .2byte EC_WORD_MY + .2byte EC_WORD_POKEMON + .2byte EC_WORD_WILL + .2byte EC_WORD_CRUSH + .2byte EC_WORD_YOU + .2byte EC_WORD_EXCL +@ win speech + .2byte EC_WORD_HAVE + .2byte EC_WORD_SOME + .2byte EC_WORD_MORE + .2byte EC_WORD_OF + .2byte EC_WORD_THIS + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_YOU + .2byte EC_WORD_HAVE + .2byte EC_WORD_GUTS + .2byte EC_WORD_AND + .2byte EC_WORD_SKILL .2byte -1 .4byte gBattleFrontierTrainerMons_Breanna @@ -3254,25 +3254,25 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_PSYCHIC_2 .string "KENDRA$", 8 @ pre-battle speech - ec_word IF - ec_word YOU_RE - ec_word SMART - ec_word STOP - ec_word RIGHT - ec_word NOW -@ win speech - ec_word I - ec_word SAID - ec_word THAT - ec_word YOU - ec_word SHOULD - ec_word STOP -@ loss speech - ec_word WHY - ec_word DIDN_T - ec_word YOU - ec_word STOP - ec_word QUES + .2byte EC_WORD_IF + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_SMART + .2byte EC_WORD_STOP + .2byte EC_WORD_RIGHT + .2byte EC_WORD_NOW +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_SAID + .2byte EC_WORD_THAT + .2byte EC_WORD_YOU + .2byte EC_WORD_SHOULD + .2byte EC_WORD_STOP +@ loss speech + .2byte EC_WORD_WHY + .2byte EC_WORD_DIDN_T + .2byte EC_WORD_YOU + .2byte EC_WORD_STOP + .2byte EC_WORD_QUES .2byte -1 .4byte gBattleFrontierTrainerMons_Kendra @@ -3280,25 +3280,25 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_HEX_MANIAC .string "MOLLY$", 8 @ pre-battle speech - ec_word WILL - ec_word MY - ec_word CUTE_CHARM - ec_move2 ATTRACT - ec_word YOU - ec_word QUES -@ win speech - ec_word YOUR - ec_word POKEMON - ec_word ARE - ec_word MY - ec_word TOYS - ec_word NOW -@ loss speech - ec_word OH - ec_word HOW - ec_word COULD - ec_word YOU - ec_word QUES + .2byte EC_WORD_WILL + .2byte EC_WORD_MY + .2byte EC_WORD_CUTE_CHARM + .2byte EC_MOVE2(ATTRACT) + .2byte EC_WORD_YOU + .2byte EC_WORD_QUES +@ win speech + .2byte EC_WORD_YOUR + .2byte EC_WORD_POKEMON + .2byte EC_WORD_ARE + .2byte EC_WORD_MY + .2byte EC_WORD_TOYS + .2byte EC_WORD_NOW +@ loss speech + .2byte EC_WORD_OH + .2byte EC_WORD_HOW + .2byte EC_WORD_COULD + .2byte EC_WORD_YOU + .2byte EC_WORD_QUES .2byte -1 .4byte gBattleFrontierTrainerMons_Molly @@ -3306,205 +3306,205 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_HEX_MANIAC .string "JAZMIN$", 8 @ pre-battle speech - ec_word I - ec_word FORECAST - ec_word TERRIBLE - ec_word THINGS - ec_word FOR - ec_word YOU -@ win speech - ec_word THERE - ec_word WASN_T - ec_word MY - ec_word FORECAST - ec_word RIGHT - ec_word QUES -@ loss speech - ec_word MY - ec_move2 FORESIGHT - ec_word DIDN_T - ec_word SHOW - ec_word ME - ec_word THIS + .2byte EC_WORD_I + .2byte EC_WORD_FORECAST + .2byte EC_WORD_TERRIBLE + .2byte EC_WORD_THINGS + .2byte EC_WORD_FOR + .2byte EC_WORD_YOU +@ win speech + .2byte EC_WORD_THERE + .2byte EC_WORD_WASN_T + .2byte EC_WORD_MY + .2byte EC_WORD_FORECAST + .2byte EC_WORD_RIGHT + .2byte EC_WORD_QUES +@ loss speech + .2byte EC_WORD_MY + .2byte EC_MOVE2(FORESIGHT) + .2byte EC_WORD_DIDN_T + .2byte EC_WORD_SHOW + .2byte EC_WORD_ME + .2byte EC_WORD_THIS .4byte gBattleFrontierTrainerMons_Jazmin @ 128 .4byte TRAINER_CLASS_HEX_MANIAC .string "KELSEY$", 8 @ pre-battle speech - ec_word I - ec_word HAVEN_T - ec_word SLEPT - ec_word IN - ec_word DAYS - ec_word ELLIPSIS -@ win speech - ec_word MY - ec_word SLEEP - ec_word WILL - ec_word BE - ec_word EXCELLENT - ec_word NOW -@ loss speech - ec_word YOU - ec_word HAVE - ec_word DESTROYED - ec_word MY - ec_word SLEEP - ec_word ELLIPSIS + .2byte EC_WORD_I + .2byte EC_WORD_HAVEN_T + .2byte EC_WORD_SLEPT + .2byte EC_WORD_IN + .2byte EC_WORD_DAYS + .2byte EC_WORD_ELLIPSIS +@ win speech + .2byte EC_WORD_MY + .2byte EC_WORD_SLEEP + .2byte EC_WORD_WILL + .2byte EC_WORD_BE + .2byte EC_WORD_EXCELLENT + .2byte EC_WORD_NOW +@ loss speech + .2byte EC_WORD_YOU + .2byte EC_WORD_HAVE + .2byte EC_WORD_DESTROYED + .2byte EC_WORD_MY + .2byte EC_WORD_SLEEP + .2byte EC_WORD_ELLIPSIS .4byte gBattleFrontierTrainerMons_Kelsey @ 129 .4byte TRAINER_CLASS_POKEMANIAC .string "JALEN$", 8 @ pre-battle speech - ec_word I - ec_word DON_T - ec_word ALLOW - ec_word POKEMON - ec_word TO - ec_move1 THRASH -@ win speech - ec_word HAHAHA - ec_word EXCL - ec_word ARE - ec_word YOU - ec_word ANGRY - ec_word QUES -@ loss speech - ec_word WHY - ec_word IS - ec_word THIS - ec_word SO - ec_word HARD - ec_word QUES + .2byte EC_WORD_I + .2byte EC_WORD_DON_T + .2byte EC_WORD_ALLOW + .2byte EC_WORD_POKEMON + .2byte EC_WORD_TO + .2byte EC_MOVE(THRASH) +@ win speech + .2byte EC_WORD_HAHAHA + .2byte EC_WORD_EXCL + .2byte EC_WORD_ARE + .2byte EC_WORD_YOU + .2byte EC_WORD_ANGRY + .2byte EC_WORD_QUES +@ loss speech + .2byte EC_WORD_WHY + .2byte EC_WORD_IS + .2byte EC_WORD_THIS + .2byte EC_WORD_SO + .2byte EC_WORD_HARD + .2byte EC_WORD_QUES .4byte gBattleFrontierTrainerMons_Jalen @ 130 .4byte TRAINER_CLASS_POKEMANIAC .string "GRIFFEN$", 8 @ pre-battle speech - ec_word I - ec_move2 SWALLOW - ec_move2 SLUDGE - ec_word TO - ec_move2 TRANSFORM - ec_word MYSELF -@ win speech - ec_word I - ec_word HAVE - ec_word A - ec_move1 GROWTH - ec_word OF - ec_move2 ACID_ARMOR -@ loss speech - ec_word I - ec_word HAVE - ec_word A - ec_move1 GROWTH - ec_word OF - ec_word SUCTION_CUPS + .2byte EC_WORD_I + .2byte EC_MOVE2(SWALLOW) + .2byte EC_MOVE2(SLUDGE) + .2byte EC_WORD_TO + .2byte EC_MOVE2(TRANSFORM) + .2byte EC_WORD_MYSELF +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_HAVE + .2byte EC_WORD_A + .2byte EC_MOVE(GROWTH) + .2byte EC_WORD_OF + .2byte EC_MOVE2(ACID_ARMOR) +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_HAVE + .2byte EC_WORD_A + .2byte EC_MOVE(GROWTH) + .2byte EC_WORD_OF + .2byte EC_WORD_SUCTION_CUPS .4byte gBattleFrontierTrainerMons_Griffen @ 131 .4byte TRAINER_CLASS_POKEMANIAC .string "XANDER$", 8 @ pre-battle speech - ec_word I - ec_word GOT - ec_word MY - ec_word POKEMON - ec_word ON - ec_word RENTAL -@ win speech - ec_word IT_S - ec_word INCREDIBLE - ec_word MY - ec_word RENTAL - ec_word POKEMON - ec_word WON -@ loss speech - ec_word RENTAL - ec_word POKEMON - ec_word AREN_T - ec_word UP - ec_word TO - ec_move2 SCRATCH + .2byte EC_WORD_I + .2byte EC_WORD_GOT + .2byte EC_WORD_MY + .2byte EC_WORD_POKEMON + .2byte EC_WORD_ON + .2byte EC_WORD_RENTAL +@ win speech + .2byte EC_WORD_IT_S + .2byte EC_WORD_INCREDIBLE + .2byte EC_WORD_MY + .2byte EC_WORD_RENTAL + .2byte EC_WORD_POKEMON + .2byte EC_WORD_WON +@ loss speech + .2byte EC_WORD_RENTAL + .2byte EC_WORD_POKEMON + .2byte EC_WORD_AREN_T + .2byte EC_WORD_UP + .2byte EC_WORD_TO + .2byte EC_MOVE2(SCRATCH) .4byte gBattleFrontierTrainerMons_Xander @ 132 .4byte TRAINER_CLASS_GENTLEMAN .string "MARVIN$", 8 @ pre-battle speech - ec_word YOU_RE - ec_word UP - ec_word TO - ec_word THE - ec_word CHALLENGE - ec_word QUES -@ win speech - ec_word I - ec_word DIDN_T - ec_word THINK - ec_word YOU_RE - ec_word GOOD - ec_word ENOUGH -@ loss speech - ec_word I_AM - ec_word FEELING - ec_word PERFECT - ec_word THANK_YOU - ec_word SO - ec_word MUCH + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_UP + .2byte EC_WORD_TO + .2byte EC_WORD_THE + .2byte EC_WORD_CHALLENGE + .2byte EC_WORD_QUES +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_DIDN_T + .2byte EC_WORD_THINK + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_GOOD + .2byte EC_WORD_ENOUGH +@ loss speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_FEELING + .2byte EC_WORD_PERFECT + .2byte EC_WORD_THANK_YOU + .2byte EC_WORD_SO + .2byte EC_WORD_MUCH .4byte gBattleFrontierTrainerMons_Marvin @ 133 .4byte TRAINER_CLASS_GENTLEMAN .string "BRENNAN$", 8 @ pre-battle speech - ec_word I - ec_move2 WISH - ec_word TO - ec_word SEE - ec_word THE - ec_word NEWS -@ win speech - ec_word COMICS - ec_word GET - ec_word DAMP - ec_word FROM - ec_word DRIZZLE - ec_word QUES -@ loss speech - ec_word THE - ec_word TIGHT - ec_word MONEY - ec_word LIVING - ec_word CHANNEL - ec_word QUES_EXCL + .2byte EC_WORD_I + .2byte EC_MOVE2(WISH) + .2byte EC_WORD_TO + .2byte EC_WORD_SEE + .2byte EC_WORD_THE + .2byte EC_WORD_NEWS +@ win speech + .2byte EC_WORD_COMICS + .2byte EC_WORD_GET + .2byte EC_WORD_DAMP + .2byte EC_WORD_FROM + .2byte EC_WORD_DRIZZLE + .2byte EC_WORD_QUES +@ loss speech + .2byte EC_WORD_THE + .2byte EC_WORD_TIGHT + .2byte EC_WORD_MONEY + .2byte EC_WORD_LIVING + .2byte EC_WORD_CHANNEL + .2byte EC_WORD_QUES_EXCL .4byte gBattleFrontierTrainerMons_Brennan @ 134 .4byte TRAINER_CLASS_BUG_MANIAC .string "BALEY$", 8 @ pre-battle speech - ec_move1 SCREECH - ec_word IS - ec_word LIKE - ec_word MUSIC - ec_word TO_ME - ec_word EXCL + .2byte EC_MOVE(SCREECH) + .2byte EC_WORD_IS + .2byte EC_WORD_LIKE + .2byte EC_WORD_MUSIC + .2byte EC_WORD_TO_ME + .2byte EC_WORD_EXCL @ win speech - ec_word MY - ec_move1 SCREECH - ec_word STRATEGY - ec_word IS - ec_word THE - ec_word BEST + .2byte EC_WORD_MY + .2byte EC_MOVE(SCREECH) + .2byte EC_WORD_STRATEGY + .2byte EC_WORD_IS + .2byte EC_WORD_THE + .2byte EC_WORD_BEST @ loss speech - ec_word YOU_RE - ec_word SOUNDPROOF - ec_word QUES + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_SOUNDPROOF + .2byte EC_WORD_QUES .2byte -1 .2byte -1 .2byte -1 @@ -3514,51 +3514,51 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_RUIN_MANIAC .string "ZACKARY$", 8 @ pre-battle speech - ec_word CAN - ec_word YOU - ec_move1 DIG - ec_word IT - ec_word YO - ec_word QUES -@ win speech - ec_move2 TAKE_DOWN - ec_word TAKE - ec_word A - ec_move2 DIVE - ec_word YO - ec_word YO -@ loss speech - ec_word BREAK - ec_word DOWN - ec_move2 DIVE - ec_word TIME - ec_word FOR - ec_word ME + .2byte EC_WORD_CAN + .2byte EC_WORD_YOU + .2byte EC_MOVE(DIG) + .2byte EC_WORD_IT + .2byte EC_WORD_YO + .2byte EC_WORD_QUES +@ win speech + .2byte EC_MOVE2(TAKE_DOWN) + .2byte EC_WORD_TAKE + .2byte EC_WORD_A + .2byte EC_MOVE2(DIVE) + .2byte EC_WORD_YO + .2byte EC_WORD_YO +@ loss speech + .2byte EC_WORD_BREAK + .2byte EC_WORD_DOWN + .2byte EC_MOVE2(DIVE) + .2byte EC_WORD_TIME + .2byte EC_WORD_FOR + .2byte EC_WORD_ME .4byte gBattleFrontierTrainerMons_Zackary @ 136 .4byte TRAINER_CLASS_COLLECTOR .string "GABRIEL$", 8 @ pre-battle speech - ec_move2 POUND - ec_word THE - ec_word THICK_FAT - ec_word ON - ec_word MY - ec_move2 BELLY_DRUM -@ win speech - ec_move2 POUND - ec_word MY - ec_move2 BELLY_DRUM - ec_move2 POUND - ec_word MY - ec_move2 BELLY_DRUM -@ loss speech - ec_word MY - ec_move2 BELLY_DRUM - ec_word WAS - ec_word TOO_WEAK - ec_word ELLIPSIS + .2byte EC_MOVE2(POUND) + .2byte EC_WORD_THE + .2byte EC_WORD_THICK_FAT + .2byte EC_WORD_ON + .2byte EC_WORD_MY + .2byte EC_MOVE2(BELLY_DRUM) +@ win speech + .2byte EC_MOVE2(POUND) + .2byte EC_WORD_MY + .2byte EC_MOVE2(BELLY_DRUM) + .2byte EC_MOVE2(POUND) + .2byte EC_WORD_MY + .2byte EC_MOVE2(BELLY_DRUM) +@ loss speech + .2byte EC_WORD_MY + .2byte EC_MOVE2(BELLY_DRUM) + .2byte EC_WORD_WAS + .2byte EC_WORD_TOO_WEAK + .2byte EC_WORD_ELLIPSIS .2byte -1 .4byte gBattleFrontierTrainerMons_Gabriel @@ -3566,77 +3566,77 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_PARASOL_LADY .string "EMILY$", 8 @ pre-battle speech - ec_word HOW - ec_word ABOUT - ec_word A_TINY_BIT - ec_word OF - ec_move1 HYPNOSIS - ec_word QUES -@ win speech - ec_word MY - ec_move1 HYPNOSIS - ec_word STRATEGY - ec_word WORKS - ec_word TO - ec_word PERFECTION -@ loss speech - ec_word MY - ec_move1 HYPNOSIS - ec_word STRATEGY - ec_word WENT - ec_word BADLY - ec_word ELLIPSIS + .2byte EC_WORD_HOW + .2byte EC_WORD_ABOUT + .2byte EC_WORD_A_TINY_BIT + .2byte EC_WORD_OF + .2byte EC_MOVE(HYPNOSIS) + .2byte EC_WORD_QUES +@ win speech + .2byte EC_WORD_MY + .2byte EC_MOVE(HYPNOSIS) + .2byte EC_WORD_STRATEGY + .2byte EC_WORD_WORKS + .2byte EC_WORD_TO + .2byte EC_WORD_PERFECTION +@ loss speech + .2byte EC_WORD_MY + .2byte EC_MOVE(HYPNOSIS) + .2byte EC_WORD_STRATEGY + .2byte EC_WORD_WENT + .2byte EC_WORD_BADLY + .2byte EC_WORD_ELLIPSIS .4byte gBattleFrontierTrainerMons_Emily @ 138 .4byte TRAINER_CLASS_BEAUTY .string "JORDYN$", 8 @ pre-battle speech - ec_word YOU - ec_word DON_T - ec_word KNOW - ec_word MY - ec_word SECRET - ec_word ELLIPSIS -@ win speech - ec_word I_AM - ec_word NOT - ec_word AS - ec_word I - ec_word APPEAR - ec_word ELLIPSIS -@ loss speech - ec_word BUT - ec_word HOW - ec_word DID - ec_word YOU - ec_word KNOW - ec_word QUES + .2byte EC_WORD_YOU + .2byte EC_WORD_DON_T + .2byte EC_WORD_KNOW + .2byte EC_WORD_MY + .2byte EC_WORD_SECRET + .2byte EC_WORD_ELLIPSIS +@ win speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_NOT + .2byte EC_WORD_AS + .2byte EC_WORD_I + .2byte EC_WORD_APPEAR + .2byte EC_WORD_ELLIPSIS +@ loss speech + .2byte EC_WORD_BUT + .2byte EC_WORD_HOW + .2byte EC_WORD_DID + .2byte EC_WORD_YOU + .2byte EC_WORD_KNOW + .2byte EC_WORD_QUES .4byte gBattleFrontierTrainerMons_Jordyn @ 139 .4byte TRAINER_CLASS_AROMA_LADY .string "SOFIA$", 8 @ pre-battle speech - ec_pokemon1 LOUDRED - ec_word PROBABLY - ec_word HAS - ec_word A - ec_move1 SWEET_SCENT + .2byte EC_POKEMON(LOUDRED) + .2byte EC_WORD_PROBABLY + .2byte EC_WORD_HAS + .2byte EC_WORD_A + .2byte EC_MOVE(SWEET_SCENT) .2byte -1 @ win speech - ec_word THAT_S - ec_word THE - ec_word FEELING - ec_word THAT - ec_word I - ec_word GET + .2byte EC_WORD_THAT_S + .2byte EC_WORD_THE + .2byte EC_WORD_FEELING + .2byte EC_WORD_THAT + .2byte EC_WORD_I + .2byte EC_WORD_GET @ loss speech - ec_word I - ec_word WORK - ec_word AT - ec_word THE - ec_word DEPT_STORE + .2byte EC_WORD_I + .2byte EC_WORD_WORK + .2byte EC_WORD_AT + .2byte EC_WORD_THE + .2byte EC_WORD_DEPT_STORE .2byte -1 .4byte gBattleFrontierTrainerMons_Sofia @@ -3644,51 +3644,51 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_COOLTRAINER_1 .string "BRADEN$", 8 @ pre-battle speech - ec_word I_CHOOSE_YOU - ec_word EXCL + .2byte EC_WORD_I_CHOOSE_YOU + .2byte EC_WORD_EXCL .2byte -1 - ec_word THIS_IS_IT_EXCL + .2byte EC_WORD_THIS_IS_IT_EXCL .2byte -1 .2byte -1 @ win speech - ec_word I_AM - ec_word FEELING - ec_word PRETTY - ec_word AWESOME - ec_word ABOUT - ec_word MYSELF + .2byte EC_WORD_I_AM + .2byte EC_WORD_FEELING + .2byte EC_WORD_PRETTY + .2byte EC_WORD_AWESOME + .2byte EC_WORD_ABOUT + .2byte EC_WORD_MYSELF @ loss speech - ec_word ALL_RIGHT - ec_word EXCL + .2byte EC_WORD_ALL_RIGHT + .2byte EC_WORD_EXCL .2byte -1 - ec_word I - ec_word SURRENDER - ec_word EXCL + .2byte EC_WORD_I + .2byte EC_WORD_SURRENDER + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Braden @ 141 .4byte TRAINER_CLASS_COOLTRAINER_1 .string "KAYDEN$", 8 @ pre-battle speech - ec_word THEY - ec_word OVERDO - ec_word THAT - ec_word GOURMET - ec_word THING - ec_word ELLIPSIS -@ win speech - ec_word THAT - ec_word GOURMET - ec_word THING - ec_word ISN_T - ec_word FOR - ec_word ME -@ loss speech - ec_word HEY - ec_word THIS - ec_word IS - ec_word PRETTY - ec_word TASTY + .2byte EC_WORD_THEY + .2byte EC_WORD_OVERDO + .2byte EC_WORD_THAT + .2byte EC_WORD_GOURMET + .2byte EC_WORD_THING + .2byte EC_WORD_ELLIPSIS +@ win speech + .2byte EC_WORD_THAT + .2byte EC_WORD_GOURMET + .2byte EC_WORD_THING + .2byte EC_WORD_ISN_T + .2byte EC_WORD_FOR + .2byte EC_WORD_ME +@ loss speech + .2byte EC_WORD_HEY + .2byte EC_WORD_THIS + .2byte EC_WORD_IS + .2byte EC_WORD_PRETTY + .2byte EC_WORD_TASTY .2byte -1 .4byte gBattleFrontierTrainerMons_Kayden @@ -3696,259 +3696,259 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_COOLTRAINER_1 .string "COOPER$", 8 @ pre-battle speech - ec_word THIS - ec_word SHOULD - ec_word ABSOLUTELY - ec_word BE - ec_word A - ec_word PUSHOVER -@ win speech - ec_word THAT_WAS - ec_word TOO - ec_word EXCITING - ec_word FOR - ec_word ME - ec_word ELLIPSIS -@ loss speech - ec_word PLEASE - ec_word EXCL - .2byte -1 - ec_word SORRY - ec_word I_AM - ec_word SORRY + .2byte EC_WORD_THIS + .2byte EC_WORD_SHOULD + .2byte EC_WORD_ABSOLUTELY + .2byte EC_WORD_BE + .2byte EC_WORD_A + .2byte EC_WORD_PUSHOVER +@ win speech + .2byte EC_WORD_THAT_WAS + .2byte EC_WORD_TOO + .2byte EC_WORD_EXCITING + .2byte EC_WORD_FOR + .2byte EC_WORD_ME + .2byte EC_WORD_ELLIPSIS +@ loss speech + .2byte EC_WORD_PLEASE + .2byte EC_WORD_EXCL + .2byte -1 + .2byte EC_WORD_SORRY + .2byte EC_WORD_I_AM + .2byte EC_WORD_SORRY .4byte gBattleFrontierTrainerMons_Cooper @ 143 .4byte TRAINER_CLASS_COOLTRAINER_2 .string "JULIA$", 8 @ pre-battle speech - ec_word SPIRIT - ec_word ALONE - ec_word WON_T - ec_word MAKE - ec_word YOU - ec_word WIN -@ win speech - ec_word YOU - ec_word SHOULD - ec_word ACCEPT - ec_word THIS - ec_word WITH - ec_word SERENE_GRACE -@ loss speech - ec_word FOR_NOW - ec_word GOOD_BYE - ec_word BUT - ec_word IT_S - ec_word NOT - ec_word OVER + .2byte EC_WORD_SPIRIT + .2byte EC_WORD_ALONE + .2byte EC_WORD_WON_T + .2byte EC_WORD_MAKE + .2byte EC_WORD_YOU + .2byte EC_WORD_WIN +@ win speech + .2byte EC_WORD_YOU + .2byte EC_WORD_SHOULD + .2byte EC_WORD_ACCEPT + .2byte EC_WORD_THIS + .2byte EC_WORD_WITH + .2byte EC_WORD_SERENE_GRACE +@ loss speech + .2byte EC_WORD_FOR_NOW + .2byte EC_WORD_GOOD_BYE + .2byte EC_WORD_BUT + .2byte EC_WORD_IT_S + .2byte EC_WORD_NOT + .2byte EC_WORD_OVER .4byte gBattleFrontierTrainerMons_Julia @ 144 .4byte TRAINER_CLASS_COOLTRAINER_2 .string "AMARA$", 8 @ pre-battle speech - ec_word WROOOAAR_EXCL - ec_word EXCL_EXCL - ec_word I_AM - ec_word SO - ec_word READY - ec_word EXCL_EXCL -@ win speech - ec_word I - ec_word LOSE - ec_word MYSELF - ec_word IF - ec_word IT_S - ec_word EXCITING -@ loss speech - ec_word THAT_S - ec_word TOO - ec_word MUCH - ec_word TO - ec_move2 TACKLE - ec_word EXCL + .2byte EC_WORD_WROOOAAR_EXCL + .2byte EC_WORD_EXCL_EXCL + .2byte EC_WORD_I_AM + .2byte EC_WORD_SO + .2byte EC_WORD_READY + .2byte EC_WORD_EXCL_EXCL +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_LOSE + .2byte EC_WORD_MYSELF + .2byte EC_WORD_IF + .2byte EC_WORD_IT_S + .2byte EC_WORD_EXCITING +@ loss speech + .2byte EC_WORD_THAT_S + .2byte EC_WORD_TOO + .2byte EC_WORD_MUCH + .2byte EC_WORD_TO + .2byte EC_MOVE2(TACKLE) + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Amara @ 145 .4byte TRAINER_CLASS_COOLTRAINER_2 .string "LYNN$", 8 @ pre-battle speech - ec_word YOUR - ec_word SECRET - ec_word CAN_T - ec_word BE - ec_word HIDDEN - ec_word FOREVER -@ win speech - ec_word I - ec_word KNOW - ec_word YOUR - ec_word SECRET - ec_word NOW - ec_word EXCL -@ loss speech - ec_word YOU - ec_word CAN_T - ec_move1 SAFEGUARD - ec_word YOUR - ec_word OWN - ec_word SECRET + .2byte EC_WORD_YOUR + .2byte EC_WORD_SECRET + .2byte EC_WORD_CAN_T + .2byte EC_WORD_BE + .2byte EC_WORD_HIDDEN + .2byte EC_WORD_FOREVER +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_KNOW + .2byte EC_WORD_YOUR + .2byte EC_WORD_SECRET + .2byte EC_WORD_NOW + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_YOU + .2byte EC_WORD_CAN_T + .2byte EC_MOVE(SAFEGUARD) + .2byte EC_WORD_YOUR + .2byte EC_WORD_OWN + .2byte EC_WORD_SECRET .4byte gBattleFrontierTrainerMons_Lynn @ 146 .4byte TRAINER_CLASS_PKMN_RANGER_1 .string "JOVAN$", 8 @ pre-battle speech - ec_word YOUR - ec_word BATTLE - ec_word SENSE - ec_word IS - ec_word SADLY - ec_word LACKING -@ win speech - ec_word MY - ec_word BATTLE - ec_word SENSE - ec_word IS - ec_word COOL - ec_word ISN_T_IT_QUES -@ loss speech - ec_word I_WAS - ec_word MINUS - ec_word MY - ec_word NORMAL - ec_word POWER - ec_word TODAY + .2byte EC_WORD_YOUR + .2byte EC_WORD_BATTLE + .2byte EC_WORD_SENSE + .2byte EC_WORD_IS + .2byte EC_WORD_SADLY + .2byte EC_WORD_LACKING +@ win speech + .2byte EC_WORD_MY + .2byte EC_WORD_BATTLE + .2byte EC_WORD_SENSE + .2byte EC_WORD_IS + .2byte EC_WORD_COOL + .2byte EC_WORD_ISN_T_IT_QUES +@ loss speech + .2byte EC_WORD_I_WAS + .2byte EC_WORD_MINUS + .2byte EC_WORD_MY + .2byte EC_WORD_NORMAL + .2byte EC_WORD_POWER + .2byte EC_WORD_TODAY .4byte gBattleFrontierTrainerMons_Jovan @ 147 .4byte TRAINER_CLASS_PKMN_RANGER_1 .string "DOMINIC$", 8 @ pre-battle speech - ec_word I - ec_word HAVE - ec_word THIS - ec_word EXCELLENT - ec_word CAMERA + .2byte EC_WORD_I + .2byte EC_WORD_HAVE + .2byte EC_WORD_THIS + .2byte EC_WORD_EXCELLENT + .2byte EC_WORD_CAMERA .2byte -1 @ win speech - ec_word MY - ec_word CAMERA - ec_word WAS - ec_word AWFULLY - ec_word EXPENSIVE + .2byte EC_WORD_MY + .2byte EC_WORD_CAMERA + .2byte EC_WORD_WAS + .2byte EC_WORD_AWFULLY + .2byte EC_WORD_EXPENSIVE .2byte -1 @ loss speech - ec_word MY - ec_word CAMERA - ec_word DOESN_T - ec_word MISS - ec_word A - ec_word THING + .2byte EC_WORD_MY + .2byte EC_WORD_CAMERA + .2byte EC_WORD_DOESN_T + .2byte EC_WORD_MISS + .2byte EC_WORD_A + .2byte EC_WORD_THING .4byte gBattleFrontierTrainerMons_Dominic @ 148 .4byte TRAINER_CLASS_PKMN_RANGER_1 .string "NIKOLAS$", 8 @ pre-battle speech - ec_word I - ec_move2 MIMIC - ec_word POKEMON - ec_word AFTER - ec_word EVERY - ec_word BATTLE -@ win speech - ec_word IF_I_WIN - ec_word I - ec_word PRETEND - ec_word I_AM - ec_word A - ec_pokemon2 TAUROS -@ loss speech - ec_word IF_I_LOSE - ec_word I - ec_word PRETEND - ec_word I_AM - ec_word A - ec_pokemon2 MILTANK + .2byte EC_WORD_I + .2byte EC_MOVE2(MIMIC) + .2byte EC_WORD_POKEMON + .2byte EC_WORD_AFTER + .2byte EC_WORD_EVERY + .2byte EC_WORD_BATTLE +@ win speech + .2byte EC_WORD_IF_I_WIN + .2byte EC_WORD_I + .2byte EC_WORD_PRETEND + .2byte EC_WORD_I_AM + .2byte EC_WORD_A + .2byte EC_POKEMON2(TAUROS) +@ loss speech + .2byte EC_WORD_IF_I_LOSE + .2byte EC_WORD_I + .2byte EC_WORD_PRETEND + .2byte EC_WORD_I_AM + .2byte EC_WORD_A + .2byte EC_POKEMON2(MILTANK) .4byte gBattleFrontierTrainerMons_Nikolas @ 149 .4byte TRAINER_CLASS_PKMN_RANGER_2 .string "VALERIA$", 8 @ pre-battle speech - ec_word I - ec_move2 WISH - ec_word YOU - ec_word WOULD - ec_word NOT - ec_move2 GLARE -@ win speech - ec_word YOU_RE - ec_word MEAN - ec_word EXCL - ec_word I - ec_word MEAN - ec_word REALLY -@ loss speech - ec_word YOU - ec_word HAVE - ec_word A - ec_word REALLY - ec_move1 SCARY_FACE - ec_word EXCL + .2byte EC_WORD_I + .2byte EC_MOVE2(WISH) + .2byte EC_WORD_YOU + .2byte EC_WORD_WOULD + .2byte EC_WORD_NOT + .2byte EC_MOVE2(GLARE) +@ win speech + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_MEAN + .2byte EC_WORD_EXCL + .2byte EC_WORD_I + .2byte EC_WORD_MEAN + .2byte EC_WORD_REALLY +@ loss speech + .2byte EC_WORD_YOU + .2byte EC_WORD_HAVE + .2byte EC_WORD_A + .2byte EC_WORD_REALLY + .2byte EC_MOVE(SCARY_FACE) + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Valeria @ 150 .4byte TRAINER_CLASS_PKMN_RANGER_2 .string "DELANEY$", 8 @ pre-battle speech - ec_word SCHOOL - ec_word IS - ec_word OVER - ec_word TIME - ec_word TO - ec_word PLAY -@ win speech - ec_word MY - ec_word BOY - ec_word FRIEND - ec_word IS - ec_word FROM - ec_word SCHOOL -@ loss speech - ec_word I - ec_word HAVE - ec_word TO - ec_word WORK - ec_word NEXT - ec_word WEEK + .2byte EC_WORD_SCHOOL + .2byte EC_WORD_IS + .2byte EC_WORD_OVER + .2byte EC_WORD_TIME + .2byte EC_WORD_TO + .2byte EC_WORD_PLAY +@ win speech + .2byte EC_WORD_MY + .2byte EC_WORD_BOY + .2byte EC_WORD_FRIEND + .2byte EC_WORD_IS + .2byte EC_WORD_FROM + .2byte EC_WORD_SCHOOL +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_HAVE + .2byte EC_WORD_TO + .2byte EC_WORD_WORK + .2byte EC_WORD_NEXT + .2byte EC_WORD_WEEK .4byte gBattleFrontierTrainerMons_Delaney @ 151 .4byte TRAINER_CLASS_PKMN_RANGER_2 .string "MEGHAN$", 8 @ pre-battle speech - ec_word SCHOOL - ec_word IS - ec_word OUT - ec_word TIME - ec_word TO - ec_word PLAY + .2byte EC_WORD_SCHOOL + .2byte EC_WORD_IS + .2byte EC_WORD_OUT + .2byte EC_WORD_TIME + .2byte EC_WORD_TO + .2byte EC_WORD_PLAY @ win speech - ec_word MY - ec_word BOY - ec_word FRIEND - ec_word LIKES - ec_word COMICS + .2byte EC_WORD_MY + .2byte EC_WORD_BOY + .2byte EC_WORD_FRIEND + .2byte EC_WORD_LIKES + .2byte EC_WORD_COMICS .2byte -1 @ loss speech - ec_word IT_S - ec_word BACK - ec_word TO - ec_word SCHOOL - ec_word SOON + .2byte EC_WORD_IT_S + .2byte EC_WORD_BACK + .2byte EC_WORD_TO + .2byte EC_WORD_SCHOOL + .2byte EC_WORD_SOON .2byte -1 .4byte gBattleFrontierTrainerMons_Meghan @@ -3956,25 +3956,25 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_DRAGON_TAMER .string "ROBERTO$", 8 @ pre-battle speech - ec_word DRAGON - ec_word POKEMON - ec_word ARE - ec_word INVINCIBLE - ec_word EXCL + .2byte EC_WORD_DRAGON + .2byte EC_WORD_POKEMON + .2byte EC_WORD_ARE + .2byte EC_WORD_INVINCIBLE + .2byte EC_WORD_EXCL .2byte -1 @ win speech - ec_word YOU - ec_word WEREN_T - ec_word BAD - ec_word I_WAS - ec_word JUST - ec_word BETTER + .2byte EC_WORD_YOU + .2byte EC_WORD_WEREN_T + .2byte EC_WORD_BAD + .2byte EC_WORD_I_WAS + .2byte EC_WORD_JUST + .2byte EC_WORD_BETTER @ loss speech - ec_word AREN_T - ec_word YOU - ec_word SATISFIED - ec_word YET - ec_word QUES + .2byte EC_WORD_AREN_T + .2byte EC_WORD_YOU + .2byte EC_WORD_SATISFIED + .2byte EC_WORD_YET + .2byte EC_WORD_QUES .2byte -1 .4byte gBattleFrontierTrainerMons_Roberto @@ -3982,25 +3982,25 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_DRAGON_TAMER .string "DAMIAN$", 8 @ pre-battle speech - ec_word MY - ec_word PURE_POWER - ec_word IS - ec_word MACHINE - ec_word LIKE - ec_word EXCL + .2byte EC_WORD_MY + .2byte EC_WORD_PURE_POWER + .2byte EC_WORD_IS + .2byte EC_WORD_MACHINE + .2byte EC_WORD_LIKE + .2byte EC_WORD_EXCL @ win speech - ec_word MY - ec_move2 MACH_PUNCH - ec_word WILL - ec_word MAKE - ec_word A - ec_move1 BRICK_BREAK + .2byte EC_WORD_MY + .2byte EC_MOVE2(MACH_PUNCH) + .2byte EC_WORD_WILL + .2byte EC_WORD_MAKE + .2byte EC_WORD_A + .2byte EC_MOVE(BRICK_BREAK) @ loss speech - ec_word ARRGH - ec_word EXCL + .2byte EC_WORD_ARRGH + .2byte EC_WORD_EXCL .2byte -1 - ec_word NO - ec_word EXCL_EXCL + .2byte EC_WORD_NO + .2byte EC_WORD_EXCL_EXCL .2byte -1 .4byte gBattleFrontierTrainerMons_Damian @@ -4008,103 +4008,103 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_DRAGON_TAMER .string "BRODY$", 8 @ pre-battle speech - ec_word MY - ec_word FASHION - ec_word SENSE - ec_word SEEMS - ec_pokemon1 ODDISH - ec_word QUES -@ win speech - ec_word IT_S - ec_word MY - ec_word FAMILY - ec_word STAY_AT_HOME - ec_word LOOK - ec_word EXCL -@ loss speech - ec_word I - ec_word QUESTION - ec_word YOUR - ec_word FASHION - ec_word SENSE - ec_word SERIOUSLY + .2byte EC_WORD_MY + .2byte EC_WORD_FASHION + .2byte EC_WORD_SENSE + .2byte EC_WORD_SEEMS + .2byte EC_POKEMON(ODDISH) + .2byte EC_WORD_QUES +@ win speech + .2byte EC_WORD_IT_S + .2byte EC_WORD_MY + .2byte EC_WORD_FAMILY + .2byte EC_WORD_STAY_AT_HOME + .2byte EC_WORD_LOOK + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_QUESTION + .2byte EC_WORD_YOUR + .2byte EC_WORD_FASHION + .2byte EC_WORD_SENSE + .2byte EC_WORD_SERIOUSLY .4byte gBattleFrontierTrainerMons_Brody @ 155 .4byte TRAINER_CLASS_DRAGON_TAMER .string "GRAHAM$", 8 @ pre-battle speech - ec_word YEAH - ec_word EXCL + .2byte EC_WORD_YEAH + .2byte EC_WORD_EXCL .2byte -1 - ec_word YEAH_YEAH - ec_word EXCL_EXCL + .2byte EC_WORD_YEAH_YEAH + .2byte EC_WORD_EXCL_EXCL .2byte -1 @ win speech - ec_word WAHAHAHA - ec_word WAHAHAHA - ec_word EXCL - ec_word WAHAHAHA - ec_word WAHAHAHA - ec_word EXCL_EXCL + .2byte EC_WORD_WAHAHAHA + .2byte EC_WORD_WAHAHAHA + .2byte EC_WORD_EXCL + .2byte EC_WORD_WAHAHAHA + .2byte EC_WORD_WAHAHAHA + .2byte EC_WORD_EXCL_EXCL @ loss speech - ec_word I_AM - ec_word SORRY - ec_word ELLIPSIS - ec_word IT_S - ec_word MY - ec_word BAD + .2byte EC_WORD_I_AM + .2byte EC_WORD_SORRY + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_IT_S + .2byte EC_WORD_MY + .2byte EC_WORD_BAD .4byte gBattleFrontierTrainerMons_Graham @ 156 .4byte TRAINER_CLASS_POKEFAN_1 .string "TYLOR$", 8 @ pre-battle speech - ec_word ARE - ec_word YOU - ec_word FEELING - ec_word MY - ec_move2 HEAT_WAVE - ec_word QUES -@ win speech - ec_word YES - ec_word I_AM - ec_word ON - ec_word FIRE - ec_word EXCL - .2byte -1 -@ loss speech - ec_word BUT - ec_word I_WAS - ec_word ON - ec_word FIRE - ec_word FOR - ec_word YOU + .2byte EC_WORD_ARE + .2byte EC_WORD_YOU + .2byte EC_WORD_FEELING + .2byte EC_WORD_MY + .2byte EC_MOVE2(HEAT_WAVE) + .2byte EC_WORD_QUES +@ win speech + .2byte EC_WORD_YES + .2byte EC_WORD_I_AM + .2byte EC_WORD_ON + .2byte EC_WORD_FIRE + .2byte EC_WORD_EXCL + .2byte -1 +@ loss speech + .2byte EC_WORD_BUT + .2byte EC_WORD_I_WAS + .2byte EC_WORD_ON + .2byte EC_WORD_FIRE + .2byte EC_WORD_FOR + .2byte EC_WORD_YOU .4byte gBattleFrontierTrainerMons_Tylor @ 157 .4byte TRAINER_CLASS_POKEFAN_2 .string "JAREN$", 8 @ pre-battle speech - ec_word FIGHTING - ec_word SPIRIT - ec_word QUES - ec_word ME - ec_word QUES + .2byte EC_WORD_FIGHTING + .2byte EC_WORD_SPIRIT + .2byte EC_WORD_QUES + .2byte EC_WORD_ME + .2byte EC_WORD_QUES .2byte -1 @ win speech - ec_word I - ec_word WANT - ec_word MORE - ec_word CUTE - ec_word POKEMON + .2byte EC_WORD_I + .2byte EC_WORD_WANT + .2byte EC_WORD_MORE + .2byte EC_WORD_CUTE + .2byte EC_WORD_POKEMON .2byte -1 @ loss speech - ec_word YOUR - ec_word POKEMON - ec_word LOOK - ec_word QUITE - ec_word CUTE + .2byte EC_WORD_YOUR + .2byte EC_WORD_POKEMON + .2byte EC_WORD_LOOK + .2byte EC_WORD_QUITE + .2byte EC_WORD_CUTE .2byte -1 .4byte gBattleFrontierTrainerMons_Jaren @@ -4112,389 +4112,389 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_PKMN_BREEDER_2 .string "CORDELL$", 8 @ pre-battle speech - ec_word A - ec_word BATTLE - ec_word IS - ec_word DECIDED - ec_word ON - ec_word SPIRIT -@ win speech - ec_word CAN_T - ec_word YOU - ec_word ACCEPT - ec_word THAT - ec_word QUES - .2byte -1 -@ loss speech - ec_word I - ec_word WILL - ec_word BE - ec_word ON - ec_word MY - ec_word WAY + .2byte EC_WORD_A + .2byte EC_WORD_BATTLE + .2byte EC_WORD_IS + .2byte EC_WORD_DECIDED + .2byte EC_WORD_ON + .2byte EC_WORD_SPIRIT +@ win speech + .2byte EC_WORD_CAN_T + .2byte EC_WORD_YOU + .2byte EC_WORD_ACCEPT + .2byte EC_WORD_THAT + .2byte EC_WORD_QUES + .2byte -1 +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_WILL + .2byte EC_WORD_BE + .2byte EC_WORD_ON + .2byte EC_WORD_MY + .2byte EC_WORD_WAY .4byte gBattleFrontierTrainerMons_Cordell @ 159 .4byte TRAINER_CLASS_PKMN_BREEDER_1 .string "JAZLYN$", 8 @ pre-battle speech - ec_word IS - ec_word YOUR - ec_word POKEDEX - ec_word REALLY - ec_word AWESOME - ec_word QUES -@ win speech - ec_word OH_YEAH - ec_word WOW - ec_word YOUR - ec_word POKEDEX - ec_word IS - ec_word SUPER -@ loss speech - ec_word AN - ec_word AVANT_GARDE - ec_word POKEDEX - ec_word WOULD - ec_word BE - ec_word AWESOME + .2byte EC_WORD_IS + .2byte EC_WORD_YOUR + .2byte EC_WORD_POKEDEX + .2byte EC_WORD_REALLY + .2byte EC_WORD_AWESOME + .2byte EC_WORD_QUES +@ win speech + .2byte EC_WORD_OH_YEAH + .2byte EC_WORD_WOW + .2byte EC_WORD_YOUR + .2byte EC_WORD_POKEDEX + .2byte EC_WORD_IS + .2byte EC_WORD_SUPER +@ loss speech + .2byte EC_WORD_AN + .2byte EC_WORD_AVANT_GARDE + .2byte EC_WORD_POKEDEX + .2byte EC_WORD_WOULD + .2byte EC_WORD_BE + .2byte EC_WORD_AWESOME .4byte gBattleFrontierTrainerMons_Jazlyn @ 160 .4byte TRAINER_CLASS_YOUNGSTER .string "ZACHERY$", 8 @ pre-battle speech - ec_word I - ec_word HAVE - ec_word MY - ec_word OWN - ec_word PLACE - ec_word YEEHAW_EXCL -@ win speech - ec_word IT_S - ec_word AN - ec_word EXCITING - ec_word TIME - ec_word FOR - ec_word ME -@ loss speech - ec_word YOU - ec_word CAN_T - ec_word FLATTEN - ec_word MY - ec_word HAPPINESS - ec_word EXCL + .2byte EC_WORD_I + .2byte EC_WORD_HAVE + .2byte EC_WORD_MY + .2byte EC_WORD_OWN + .2byte EC_WORD_PLACE + .2byte EC_WORD_YEEHAW_EXCL +@ win speech + .2byte EC_WORD_IT_S + .2byte EC_WORD_AN + .2byte EC_WORD_EXCITING + .2byte EC_WORD_TIME + .2byte EC_WORD_FOR + .2byte EC_WORD_ME +@ loss speech + .2byte EC_WORD_YOU + .2byte EC_WORD_CAN_T + .2byte EC_WORD_FLATTEN + .2byte EC_WORD_MY + .2byte EC_WORD_HAPPINESS + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Zachery @ 161 .4byte TRAINER_CLASS_YOUNGSTER .string "JOHAN$", 8 @ pre-battle speech - ec_word WINTER - ec_word WILL - ec_word SOON - ec_word BE - ec_word HERE - .2byte -1 -@ win speech - ec_word MY - ec_word ALLOWANCE - ec_word COULD - ec_word USE - ec_word A - ec_move2 HELPING_HAND -@ loss speech - ec_word I - ec_word ALWAYS - ec_word USE - ec_word MY - ec_word ALLOWANCE - ec_word UP + .2byte EC_WORD_WINTER + .2byte EC_WORD_WILL + .2byte EC_WORD_SOON + .2byte EC_WORD_BE + .2byte EC_WORD_HERE + .2byte -1 +@ win speech + .2byte EC_WORD_MY + .2byte EC_WORD_ALLOWANCE + .2byte EC_WORD_COULD + .2byte EC_WORD_USE + .2byte EC_WORD_A + .2byte EC_MOVE2(HELPING_HAND) +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_ALWAYS + .2byte EC_WORD_USE + .2byte EC_WORD_MY + .2byte EC_WORD_ALLOWANCE + .2byte EC_WORD_UP .4byte gBattleFrontierTrainerMons_Johan @ 162 .4byte TRAINER_CLASS_LASS .string "SHEA$", 8 @ pre-battle speech - ec_word DO - ec_word YOU - ec_word BATTLE - ec_word WITH - ec_word BEAUTY - ec_word QUES -@ win speech - ec_word YOU - ec_word BATTLE - ec_word IN - ec_word AN - ec_word UGLY - ec_word WAY -@ loss speech - ec_word WHAT - ec_word IS - ec_word BEAUTY - ec_word TO - ec_word YOU - ec_word QUES + .2byte EC_WORD_DO + .2byte EC_WORD_YOU + .2byte EC_WORD_BATTLE + .2byte EC_WORD_WITH + .2byte EC_WORD_BEAUTY + .2byte EC_WORD_QUES +@ win speech + .2byte EC_WORD_YOU + .2byte EC_WORD_BATTLE + .2byte EC_WORD_IN + .2byte EC_WORD_AN + .2byte EC_WORD_UGLY + .2byte EC_WORD_WAY +@ loss speech + .2byte EC_WORD_WHAT + .2byte EC_WORD_IS + .2byte EC_WORD_BEAUTY + .2byte EC_WORD_TO + .2byte EC_WORD_YOU + .2byte EC_WORD_QUES .4byte gBattleFrontierTrainerMons_Shea @ 163 .4byte TRAINER_CLASS_LASS .string "KAILA$", 8 @ pre-battle speech - ec_word I_AM - ec_word FEELING - ec_word THIRSTY - ec_word RIGHT - ec_word NOW - ec_word ELLIPSIS -@ win speech - ec_word I - ec_word COULD - ec_word USE - ec_word A - ec_word COLD - ec_word DRINK -@ loss speech - ec_word THAT - ec_word LOSS - ec_word IS - ec_word HARD - ec_word TO - ec_move2 SWALLOW + .2byte EC_WORD_I_AM + .2byte EC_WORD_FEELING + .2byte EC_WORD_THIRSTY + .2byte EC_WORD_RIGHT + .2byte EC_WORD_NOW + .2byte EC_WORD_ELLIPSIS +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_COULD + .2byte EC_WORD_USE + .2byte EC_WORD_A + .2byte EC_WORD_COLD + .2byte EC_WORD_DRINK +@ loss speech + .2byte EC_WORD_THAT + .2byte EC_WORD_LOSS + .2byte EC_WORD_IS + .2byte EC_WORD_HARD + .2byte EC_WORD_TO + .2byte EC_MOVE2(SWALLOW) .4byte gBattleFrontierTrainerMons_Kaila @ 164 .4byte TRAINER_CLASS_SCHOOL_KID_1 .string "ISIAH$", 8 @ pre-battle speech - ec_word I - ec_word PRETEND - ec_word TO - ec_word STUDY - ec_word A_LOT - .2byte -1 -@ win speech - ec_word I - ec_move2 TRICK - ec_word MOTHER - ec_word FOR - ec_word MY - ec_word ALLOWANCE -@ loss speech - ec_word I - ec_word DON_T - ec_word WANT - ec_word TO - ec_word STUDY - ec_word MORE + .2byte EC_WORD_I + .2byte EC_WORD_PRETEND + .2byte EC_WORD_TO + .2byte EC_WORD_STUDY + .2byte EC_WORD_A_LOT + .2byte -1 +@ win speech + .2byte EC_WORD_I + .2byte EC_MOVE2(TRICK) + .2byte EC_WORD_MOTHER + .2byte EC_WORD_FOR + .2byte EC_WORD_MY + .2byte EC_WORD_ALLOWANCE +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_DON_T + .2byte EC_WORD_WANT + .2byte EC_WORD_TO + .2byte EC_WORD_STUDY + .2byte EC_WORD_MORE .4byte gBattleFrontierTrainerMons_Isiah @ 165 .4byte TRAINER_CLASS_SCHOOL_KID_1 .string "GARRETT$", 8 @ pre-battle speech - ec_word I - ec_word ENJOY - ec_word COMICS - ec_word AND - ec_word THIS - ec_word GAME -@ win speech - ec_word I - ec_word LIKE - ec_word THIS - ec_word MUSIC - ec_word IDOL - ec_word TOO -@ loss speech - ec_word BUT - ec_word I - ec_word HAVE - ec_word TO - ec_word STUDY - ec_word MORE + .2byte EC_WORD_I + .2byte EC_WORD_ENJOY + .2byte EC_WORD_COMICS + .2byte EC_WORD_AND + .2byte EC_WORD_THIS + .2byte EC_WORD_GAME +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_LIKE + .2byte EC_WORD_THIS + .2byte EC_WORD_MUSIC + .2byte EC_WORD_IDOL + .2byte EC_WORD_TOO +@ loss speech + .2byte EC_WORD_BUT + .2byte EC_WORD_I + .2byte EC_WORD_HAVE + .2byte EC_WORD_TO + .2byte EC_WORD_STUDY + .2byte EC_WORD_MORE .4byte gBattleFrontierTrainerMons_Garrett @ 166 .4byte TRAINER_CLASS_SCHOOL_KID_2 .string "HAYLIE$", 8 @ pre-battle speech - ec_word I - ec_word WORRY - ec_word TOO - ec_word MUCH - ec_word TO - ec_word SLEEP -@ win speech - ec_word A - ec_word WIN - ec_word GIVES - ec_word ME - ec_word A - ec_move2 CALM_MIND -@ loss speech - ec_word MY - ec_word INSOMNIA - ec_word WILL - ec_word GET - ec_word BAD - ec_word ELLIPSIS + .2byte EC_WORD_I + .2byte EC_WORD_WORRY + .2byte EC_WORD_TOO + .2byte EC_WORD_MUCH + .2byte EC_WORD_TO + .2byte EC_WORD_SLEEP +@ win speech + .2byte EC_WORD_A + .2byte EC_WORD_WIN + .2byte EC_WORD_GIVES + .2byte EC_WORD_ME + .2byte EC_WORD_A + .2byte EC_MOVE2(CALM_MIND) +@ loss speech + .2byte EC_WORD_MY + .2byte EC_WORD_INSOMNIA + .2byte EC_WORD_WILL + .2byte EC_WORD_GET + .2byte EC_WORD_BAD + .2byte EC_WORD_ELLIPSIS .4byte gBattleFrontierTrainerMons_Haylie @ 167 .4byte TRAINER_CLASS_SCHOOL_KID_2 .string "MEGAN$", 8 @ pre-battle speech - ec_word I - ec_word BELIEVE - ec_word IN - ec_word AN - ec_move1 AROMATHERAPY - ec_word BATH -@ win speech - ec_word I - ec_word WANT - ec_word A - ec_word HEALTHY - ec_word CLEAR_BODY - .2byte -1 -@ loss speech - ec_word IF - ec_word ONLY - ec_move1 AROMATHERAPY - ec_word WERE - ec_word LESS - ec_word EXPENSIVE + .2byte EC_WORD_I + .2byte EC_WORD_BELIEVE + .2byte EC_WORD_IN + .2byte EC_WORD_AN + .2byte EC_MOVE(AROMATHERAPY) + .2byte EC_WORD_BATH +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_WANT + .2byte EC_WORD_A + .2byte EC_WORD_HEALTHY + .2byte EC_WORD_CLEAR_BODY + .2byte -1 +@ loss speech + .2byte EC_WORD_IF + .2byte EC_WORD_ONLY + .2byte EC_MOVE(AROMATHERAPY) + .2byte EC_WORD_WERE + .2byte EC_WORD_LESS + .2byte EC_WORD_EXPENSIVE .4byte gBattleFrontierTrainerMons_Megan @ 168 .4byte TRAINER_CLASS_RICH_BOY .string "ISSAC$", 8 @ pre-battle speech - ec_word MY - ec_word HOBBY - ec_word QUES + .2byte EC_WORD_MY + .2byte EC_WORD_HOBBY + .2byte EC_WORD_QUES .2byte -1 .2byte -1 .2byte -1 @ win speech - ec_word I - ec_word LIKE - ec_word ANY - ec_word KIND - ec_word OF - ec_move2 WATER_SPORT + .2byte EC_WORD_I + .2byte EC_WORD_LIKE + .2byte EC_WORD_ANY + .2byte EC_WORD_KIND + .2byte EC_WORD_OF + .2byte EC_MOVE2(WATER_SPORT) @ loss speech - ec_word I - ec_word DISLIKE - ec_word ANY - ec_word KIND - ec_word OF - ec_move2 MUD_SPORT + .2byte EC_WORD_I + .2byte EC_WORD_DISLIKE + .2byte EC_WORD_ANY + .2byte EC_WORD_KIND + .2byte EC_WORD_OF + .2byte EC_MOVE2(MUD_SPORT) .4byte gBattleFrontierTrainerMons_Issac @ 169 .4byte TRAINER_CLASS_RICH_BOY .string "QUINTON$", 8 @ pre-battle speech - ec_word I_AM - ec_word SAD - ec_word CAUSE - ec_word I_AM - ec_word TOO_WEAK + .2byte EC_WORD_I_AM + .2byte EC_WORD_SAD + .2byte EC_WORD_CAUSE + .2byte EC_WORD_I_AM + .2byte EC_WORD_TOO_WEAK .2byte -1 @ win speech - ec_word YOU - ec_word AREN_T - ec_word TOO_STRONG - ec_word FOR - ec_word ME + .2byte EC_WORD_YOU + .2byte EC_WORD_AREN_T + .2byte EC_WORD_TOO_STRONG + .2byte EC_WORD_FOR + .2byte EC_WORD_ME .2byte -1 @ loss speech - ec_word HEY - ec_word WHAT - ec_word DID - ec_word I - ec_word DO - ec_word QUES + .2byte EC_WORD_HEY + .2byte EC_WORD_WHAT + .2byte EC_WORD_DID + .2byte EC_WORD_I + .2byte EC_WORD_DO + .2byte EC_WORD_QUES .4byte gBattleFrontierTrainerMons_Quinton @ 170 .4byte TRAINER_CLASS_LADY .string "SALMA$", 8 @ pre-battle speech - ec_word YOU_VE - ec_word GOT - ec_word YOUR - ec_word HUSTLE - ec_word ON - ec_word EXCL -@ win speech - ec_word I - ec_word WIN - ec_word YOU - ec_word HUSTLE - ec_word ON - ec_word OUT -@ loss speech - ec_word I - ec_word DON_T - ec_word GET - ec_word HOW - ec_word I - ec_word LOST + .2byte EC_WORD_YOU_VE + .2byte EC_WORD_GOT + .2byte EC_WORD_YOUR + .2byte EC_WORD_HUSTLE + .2byte EC_WORD_ON + .2byte EC_WORD_EXCL +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_WIN + .2byte EC_WORD_YOU + .2byte EC_WORD_HUSTLE + .2byte EC_WORD_ON + .2byte EC_WORD_OUT +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_DON_T + .2byte EC_WORD_GET + .2byte EC_WORD_HOW + .2byte EC_WORD_I + .2byte EC_WORD_LOST .4byte gBattleFrontierTrainerMons_Salma @ 171 .4byte TRAINER_CLASS_LADY .string "ANSLEY$", 8 @ pre-battle speech - ec_word I_AM - ec_word BORED - ec_word ELLIPSIS - ec_word DANCE - ec_word FOR - ec_word ME -@ win speech - ec_word YOU_VE - ec_word BORED - ec_word ME - ec_word SOME - ec_word MORE - .2byte -1 -@ loss speech - ec_word TAKE - ec_word YOUR - ec_move2 FRUSTRATION - ec_word SOME - ec_word OTHER - ec_word PLACE + .2byte EC_WORD_I_AM + .2byte EC_WORD_BORED + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_DANCE + .2byte EC_WORD_FOR + .2byte EC_WORD_ME +@ win speech + .2byte EC_WORD_YOU_VE + .2byte EC_WORD_BORED + .2byte EC_WORD_ME + .2byte EC_WORD_SOME + .2byte EC_WORD_MORE + .2byte -1 +@ loss speech + .2byte EC_WORD_TAKE + .2byte EC_WORD_YOUR + .2byte EC_MOVE2(FRUSTRATION) + .2byte EC_WORD_SOME + .2byte EC_WORD_OTHER + .2byte EC_WORD_PLACE .4byte gBattleFrontierTrainerMons_Ansley @ 172 .4byte TRAINER_CLASS_BUG_CATCHER .string "HOLDEN$", 8 @ pre-battle speech - ec_word LET_S - ec_word COMMEMORATE - ec_word MY - ec_word COOLNESS - ec_word IN - ec_word BATTLE + .2byte EC_WORD_LET_S + .2byte EC_WORD_COMMEMORATE + .2byte EC_WORD_MY + .2byte EC_WORD_COOLNESS + .2byte EC_WORD_IN + .2byte EC_WORD_BATTLE @ win speech - ec_word YOU_RE - ec_word TOO_WEAK - ec_word FOR - ec_word ANY - ec_word PRAISE + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_TOO_WEAK + .2byte EC_WORD_FOR + .2byte EC_WORD_ANY + .2byte EC_WORD_PRAISE .2byte -1 @ loss speech - ec_word YOUR - ec_word BATTLE - ec_word SENSE - ec_word IS - ec_word AMUSING + .2byte EC_WORD_YOUR + .2byte EC_WORD_BATTLE + .2byte EC_WORD_SENSE + .2byte EC_WORD_IS + .2byte EC_WORD_AMUSING .2byte -1 .4byte gBattleFrontierTrainerMons_Holden @@ -4502,103 +4502,103 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_BUG_CATCHER .string "LUCA$", 8 @ pre-battle speech - ec_word WE - ec_word WILL - ec_word HAVE - ec_word A - ec_word COOL - ec_word BATTLE -@ win speech - ec_word I - ec_word WON - ec_word IN - ec_word A - ec_word COOL - ec_word WAY -@ loss speech - ec_word HELLO - ec_word QUES - ec_word I_AM - ec_word JUST - ec_word A - ec_word KID + .2byte EC_WORD_WE + .2byte EC_WORD_WILL + .2byte EC_WORD_HAVE + .2byte EC_WORD_A + .2byte EC_WORD_COOL + .2byte EC_WORD_BATTLE +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_WON + .2byte EC_WORD_IN + .2byte EC_WORD_A + .2byte EC_WORD_COOL + .2byte EC_WORD_WAY +@ loss speech + .2byte EC_WORD_HELLO + .2byte EC_WORD_QUES + .2byte EC_WORD_I_AM + .2byte EC_WORD_JUST + .2byte EC_WORD_A + .2byte EC_WORD_KID .4byte gBattleFrontierTrainerMons_Luca @ 174 .4byte TRAINER_CLASS_NINJA_BOY .string "JAMISON$", 8 @ pre-battle speech - ec_word MY - ec_move2 SECRET_POWER - ec_word IS - ec_word OVERWHELMING - ec_word TO - ec_word POKEMON -@ win speech - ec_word DID - ec_word YOU - ec_word SEE - ec_word THAT - ec_word QUES - .2byte -1 -@ loss speech - ec_word I - ec_word WILL - ec_word USE - ec_move1 SMOKESCREEN - ec_word TO - ec_word ESCAPE + .2byte EC_WORD_MY + .2byte EC_MOVE2(SECRET_POWER) + .2byte EC_WORD_IS + .2byte EC_WORD_OVERWHELMING + .2byte EC_WORD_TO + .2byte EC_WORD_POKEMON +@ win speech + .2byte EC_WORD_DID + .2byte EC_WORD_YOU + .2byte EC_WORD_SEE + .2byte EC_WORD_THAT + .2byte EC_WORD_QUES + .2byte -1 +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_WILL + .2byte EC_WORD_USE + .2byte EC_MOVE(SMOKESCREEN) + .2byte EC_WORD_TO + .2byte EC_WORD_ESCAPE .4byte gBattleFrontierTrainerMons_Jamison @ 175 .4byte TRAINER_CLASS_NINJA_BOY .string "GUNNAR$", 8 @ pre-battle speech - ec_word I - ec_move1 CUT - ec_word DOWN - ec_word EVERY - ec_word OPPONENT - .2byte -1 -@ win speech - ec_word DON_T - ec_move1 GRUDGE - ec_word ME - ec_word FOR - ec_word YOUR - ec_word LOSS -@ loss speech - ec_word PLEASE - ec_word LOSE - ec_word THAT - ec_move1 SCARY_FACE - ec_word OF - ec_word YOURS + .2byte EC_WORD_I + .2byte EC_MOVE(CUT) + .2byte EC_WORD_DOWN + .2byte EC_WORD_EVERY + .2byte EC_WORD_OPPONENT + .2byte -1 +@ win speech + .2byte EC_WORD_DON_T + .2byte EC_MOVE(GRUDGE) + .2byte EC_WORD_ME + .2byte EC_WORD_FOR + .2byte EC_WORD_YOUR + .2byte EC_WORD_LOSS +@ loss speech + .2byte EC_WORD_PLEASE + .2byte EC_WORD_LOSE + .2byte EC_WORD_THAT + .2byte EC_MOVE(SCARY_FACE) + .2byte EC_WORD_OF + .2byte EC_WORD_YOURS .4byte gBattleFrontierTrainerMons_Gunnar @ 176 .4byte TRAINER_CLASS_TUBER_2 .string "CRAIG$", 8 @ pre-battle speech - ec_word I - ec_word CAN_T - ec_word WAIT - ec_word FOR - ec_word MY - ec_word TRAIN -@ win speech - ec_word MY - ec_word TRAIN - ec_word ISN_T - ec_word HERE - ec_word YET - ec_word ELLIPSIS -@ loss speech - ec_word HERE_IT_IS - ec_word MY - ec_word TRAIN - ec_word SEE_YA - ec_word EXCL + .2byte EC_WORD_I + .2byte EC_WORD_CAN_T + .2byte EC_WORD_WAIT + .2byte EC_WORD_FOR + .2byte EC_WORD_MY + .2byte EC_WORD_TRAIN +@ win speech + .2byte EC_WORD_MY + .2byte EC_WORD_TRAIN + .2byte EC_WORD_ISN_T + .2byte EC_WORD_HERE + .2byte EC_WORD_YET + .2byte EC_WORD_ELLIPSIS +@ loss speech + .2byte EC_WORD_HERE_IT_IS + .2byte EC_WORD_MY + .2byte EC_WORD_TRAIN + .2byte EC_WORD_SEE_YA + .2byte EC_WORD_EXCL .2byte -1 .4byte gBattleFrontierTrainerMons_Craig @@ -4606,25 +4606,25 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_TUBER_2 .string "PIERCE$", 8 @ pre-battle speech - ec_word THERE - ec_word WAS - ec_word A - ec_move2 HEAT_WAVE - ec_word LAST - ec_word WEEK + .2byte EC_WORD_THERE + .2byte EC_WORD_WAS + .2byte EC_WORD_A + .2byte EC_MOVE2(HEAT_WAVE) + .2byte EC_WORD_LAST + .2byte EC_WORD_WEEK @ win speech - ec_word I - ec_word CAN_T - ec_word TAKE - ec_word A - ec_move2 HEAT_WAVE + .2byte EC_WORD_I + .2byte EC_WORD_CAN_T + .2byte EC_WORD_TAKE + .2byte EC_WORD_A + .2byte EC_MOVE2(HEAT_WAVE) .2byte -1 @ loss speech - ec_word DIDN_T - ec_word IT - ec_move1 HAIL - ec_word TOO - ec_word QUES + .2byte EC_WORD_DIDN_T + .2byte EC_WORD_IT + .2byte EC_MOVE(HAIL) + .2byte EC_WORD_TOO + .2byte EC_WORD_QUES .2byte -1 .4byte gBattleFrontierTrainerMons_Pierce @@ -4632,155 +4632,155 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_TUBER_1 .string "REGINA$", 8 @ pre-battle speech - ec_word I - ec_word LIKE - ec_word TO - ec_word PLAY - ec_word IN - ec_word WATER -@ win speech - ec_word I - ec_word REFUSE - ec_word TO - ec_word COME - ec_word OUT - .2byte -1 -@ loss speech - ec_word YOU_RE - ec_word NOT - ec_word MUCH - ec_word GOOD - ec_word IN - ec_word WATER + .2byte EC_WORD_I + .2byte EC_WORD_LIKE + .2byte EC_WORD_TO + .2byte EC_WORD_PLAY + .2byte EC_WORD_IN + .2byte EC_WORD_WATER +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_REFUSE + .2byte EC_WORD_TO + .2byte EC_WORD_COME + .2byte EC_WORD_OUT + .2byte -1 +@ loss speech + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_NOT + .2byte EC_WORD_MUCH + .2byte EC_WORD_GOOD + .2byte EC_WORD_IN + .2byte EC_WORD_WATER .4byte gBattleFrontierTrainerMons_Regina @ 179 .4byte TRAINER_CLASS_TUBER_1 .string "ALISON$", 8 @ pre-battle speech - ec_word THIS - ec_word KINDERGARTEN - ec_word MAGAZINE - ec_word IS - ec_word TOO - ec_word MUCH -@ win speech - ec_word HOW - ec_word TO - ec_word BUG - ec_word YOUR - ec_word TEACHER - ec_word QUES -@ loss speech - ec_word ENJOY - ec_word A - ec_word TASTY - ec_word SCHOOL - ec_word DIET - ec_word QUES + .2byte EC_WORD_THIS + .2byte EC_WORD_KINDERGARTEN + .2byte EC_WORD_MAGAZINE + .2byte EC_WORD_IS + .2byte EC_WORD_TOO + .2byte EC_WORD_MUCH +@ win speech + .2byte EC_WORD_HOW + .2byte EC_WORD_TO + .2byte EC_WORD_BUG + .2byte EC_WORD_YOUR + .2byte EC_WORD_TEACHER + .2byte EC_WORD_QUES +@ loss speech + .2byte EC_WORD_ENJOY + .2byte EC_WORD_A + .2byte EC_WORD_TASTY + .2byte EC_WORD_SCHOOL + .2byte EC_WORD_DIET + .2byte EC_WORD_QUES .4byte gBattleFrontierTrainerMons_Alison @ 180 .4byte TRAINER_CLASS_BUG_MANIAC .string "HANK$", 8 @ pre-battle speech - ec_word THERE - ec_word IS - ec_word A - ec_word BUG - ec_word EVENT - ec_word SOON -@ win speech - ec_word IT_S - ec_word A - ec_word BUG - ec_word FASHION - ec_word SHOW - ec_word EXCL -@ loss speech - ec_word DON_T - ec_word YOU - ec_word LIKE - ec_word BUG - ec_word POKEMON - ec_word QUES + .2byte EC_WORD_THERE + .2byte EC_WORD_IS + .2byte EC_WORD_A + .2byte EC_WORD_BUG + .2byte EC_WORD_EVENT + .2byte EC_WORD_SOON +@ win speech + .2byte EC_WORD_IT_S + .2byte EC_WORD_A + .2byte EC_WORD_BUG + .2byte EC_WORD_FASHION + .2byte EC_WORD_SHOW + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_DON_T + .2byte EC_WORD_YOU + .2byte EC_WORD_LIKE + .2byte EC_WORD_BUG + .2byte EC_WORD_POKEMON + .2byte EC_WORD_QUES .4byte gBattleFrontierTrainerMons_Hank @ 181 .4byte TRAINER_CLASS_BUG_MANIAC .string "EARL$", 8 @ pre-battle speech - ec_word THE - ec_word INVINCIBLE - ec_word BUG - ec_word TRAINER - ec_word IS - ec_word HERE -@ win speech - ec_word THE - ec_word INVINCIBLE - ec_word BUG - ec_word TRAINER - ec_word AM - ec_word I -@ loss speech - ec_word SEE - ec_word HOW - ec_word FAST - ec_word I - ec_word RUN_AWAY - ec_word EXCL + .2byte EC_WORD_THE + .2byte EC_WORD_INVINCIBLE + .2byte EC_WORD_BUG + .2byte EC_WORD_TRAINER + .2byte EC_WORD_IS + .2byte EC_WORD_HERE +@ win speech + .2byte EC_WORD_THE + .2byte EC_WORD_INVINCIBLE + .2byte EC_WORD_BUG + .2byte EC_WORD_TRAINER + .2byte EC_WORD_AM + .2byte EC_WORD_I +@ loss speech + .2byte EC_WORD_SEE + .2byte EC_WORD_HOW + .2byte EC_WORD_FAST + .2byte EC_WORD_I + .2byte EC_WORD_RUN_AWAY + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Earl @ 182 .4byte TRAINER_CLASS_FISHERMAN .string "RAMIRO$", 8 @ pre-battle speech - ec_word I - ec_word WENT - ec_word TO - ec_word A - ec_word FISHING - ec_word SCHOOL -@ win speech - ec_word SERIOUSLY - ec_word I_AM - ec_word IN - ec_word THE - ec_word FISHING - ec_word HALL_OF_FAME -@ loss speech - ec_word I - ec_word WANT - ec_word TO - ec_word GO - ec_word BACK - ec_word ELLIPSIS + .2byte EC_WORD_I + .2byte EC_WORD_WENT + .2byte EC_WORD_TO + .2byte EC_WORD_A + .2byte EC_WORD_FISHING + .2byte EC_WORD_SCHOOL +@ win speech + .2byte EC_WORD_SERIOUSLY + .2byte EC_WORD_I_AM + .2byte EC_WORD_IN + .2byte EC_WORD_THE + .2byte EC_WORD_FISHING + .2byte EC_WORD_HALL_OF_FAME +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_WANT + .2byte EC_WORD_TO + .2byte EC_WORD_GO + .2byte EC_WORD_BACK + .2byte EC_WORD_ELLIPSIS .4byte gBattleFrontierTrainerMons_Ramiro @ 183 .4byte TRAINER_CLASS_FISHERMAN .string "HUNTER$", 8 @ pre-battle speech - ec_word SHOW - ec_word ME - ec_word A - ec_word TOTALLY - ec_word COOL - ec_move1 CROSS_CHOP -@ win speech - ec_word YOU_RE - ec_word TOO_WEAK - ec_word TO - ec_word DO - ec_word A - ec_move1 CROSS_CHOP -@ loss speech - ec_word WAS - ec_word IT - ec_word A - ec_word MISTAKE - ec_word QUES + .2byte EC_WORD_SHOW + .2byte EC_WORD_ME + .2byte EC_WORD_A + .2byte EC_WORD_TOTALLY + .2byte EC_WORD_COOL + .2byte EC_MOVE(CROSS_CHOP) +@ win speech + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_TOO_WEAK + .2byte EC_WORD_TO + .2byte EC_WORD_DO + .2byte EC_WORD_A + .2byte EC_MOVE(CROSS_CHOP) +@ loss speech + .2byte EC_WORD_WAS + .2byte EC_WORD_IT + .2byte EC_WORD_A + .2byte EC_WORD_MISTAKE + .2byte EC_WORD_QUES .2byte -1 .4byte gBattleFrontierTrainerMons_Hunter @@ -4788,103 +4788,103 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_RUIN_MANIAC .string "AIDEN$", 8 @ pre-battle speech - ec_word MY - ec_word WORK - ec_word IS - ec_word MAKING - ec_word ME - ec_word HEALTHY -@ win speech - ec_word YOU - ec_word SEE - ec_word QUES - ec_word I_AM - ec_word HEALTHY - ec_word EXCL -@ loss speech - ec_word YOU_RE - ec_word MORE - ec_word HEALTHY - ec_word THAN - ec_word I_AM - ec_word ELLIPSIS + .2byte EC_WORD_MY + .2byte EC_WORD_WORK + .2byte EC_WORD_IS + .2byte EC_WORD_MAKING + .2byte EC_WORD_ME + .2byte EC_WORD_HEALTHY +@ win speech + .2byte EC_WORD_YOU + .2byte EC_WORD_SEE + .2byte EC_WORD_QUES + .2byte EC_WORD_I_AM + .2byte EC_WORD_HEALTHY + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_MORE + .2byte EC_WORD_HEALTHY + .2byte EC_WORD_THAN + .2byte EC_WORD_I_AM + .2byte EC_WORD_ELLIPSIS .4byte gBattleFrontierTrainerMons_Aiden @ 185 .4byte TRAINER_CLASS_RUIN_MANIAC .string "XAVIER$", 8 @ pre-battle speech - ec_word HEY_THERE - ec_word EXCL + .2byte EC_WORD_HEY_THERE + .2byte EC_WORD_EXCL .2byte -1 - ec_word LOOK - ec_word LOOK - ec_word EXCL_EXCL + .2byte EC_WORD_LOOK + .2byte EC_WORD_LOOK + .2byte EC_WORD_EXCL_EXCL @ win speech - ec_word GOOD_BYE - ec_word AND - ec_word THANK_YOU - ec_word THAT_WAS - ec_word FUNNY + .2byte EC_WORD_GOOD_BYE + .2byte EC_WORD_AND + .2byte EC_WORD_THANK_YOU + .2byte EC_WORD_THAT_WAS + .2byte EC_WORD_FUNNY .2byte -1 @ loss speech - ec_word WOWEE - ec_word EXCL + .2byte EC_WORD_WOWEE + .2byte EC_WORD_EXCL .2byte -1 - ec_word NO - ec_word NO - ec_word EXCL_EXCL + .2byte EC_WORD_NO + .2byte EC_WORD_NO + .2byte EC_WORD_EXCL_EXCL .4byte gBattleFrontierTrainerMons_Xavier @ 186 .4byte TRAINER_CLASS_COLLECTOR .string "CLINTON$", 8 @ pre-battle speech - ec_word WANT - ec_word TO - ec_word SEE - ec_word MY - ec_move1 HYPNOSIS - ec_word QUES -@ win speech - ec_word YOUR - ec_move2 FURY_SWIPES - ec_word YOUR - ec_move1 STRENGTH - ec_word YOUNG - ec_word TRAINER -@ loss speech - ec_word TCH - ec_word ELLIPSIS - .2byte -1 - ec_word I_AM - ec_word TOO_WEAK - ec_word ELLIPSIS + .2byte EC_WORD_WANT + .2byte EC_WORD_TO + .2byte EC_WORD_SEE + .2byte EC_WORD_MY + .2byte EC_MOVE(HYPNOSIS) + .2byte EC_WORD_QUES +@ win speech + .2byte EC_WORD_YOUR + .2byte EC_MOVE2(FURY_SWIPES) + .2byte EC_WORD_YOUR + .2byte EC_MOVE(STRENGTH) + .2byte EC_WORD_YOUNG + .2byte EC_WORD_TRAINER +@ loss speech + .2byte EC_WORD_TCH + .2byte EC_WORD_ELLIPSIS + .2byte -1 + .2byte EC_WORD_I_AM + .2byte EC_WORD_TOO_WEAK + .2byte EC_WORD_ELLIPSIS .4byte gBattleFrontierTrainerMons_Clinton @ 187 .4byte TRAINER_CLASS_COLLECTOR .string "JESSE$", 8 @ pre-battle speech - ec_word THIS - ec_word BATTLE - ec_word IS - ec_word FOR - ec_word MY - ec_word MOTHER -@ win speech - ec_word MOTHER - ec_word WILL - ec_word BE - ec_word HAPPY - ec_word FOR - ec_word ME -@ loss speech - ec_word I - ec_word WANT - ec_word MY - ec_word MOTHER - ec_word EXCL + .2byte EC_WORD_THIS + .2byte EC_WORD_BATTLE + .2byte EC_WORD_IS + .2byte EC_WORD_FOR + .2byte EC_WORD_MY + .2byte EC_WORD_MOTHER +@ win speech + .2byte EC_WORD_MOTHER + .2byte EC_WORD_WILL + .2byte EC_WORD_BE + .2byte EC_WORD_HAPPY + .2byte EC_WORD_FOR + .2byte EC_WORD_ME +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_WANT + .2byte EC_WORD_MY + .2byte EC_WORD_MOTHER + .2byte EC_WORD_EXCL .2byte -1 .4byte gBattleFrontierTrainerMons_Jesse @@ -4892,77 +4892,77 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_GUITARIST .string "EDUARDO$", 8 @ pre-battle speech - ec_word OUR - ec_word MUSIC - ec_word WILL - ec_word PLAY - ec_word ALL - ec_word NIGHT -@ win speech - ec_word NIGHTTIME - ec_word IS - ec_word WHEN - ec_word I - ec_word PLAY - ec_word BEST -@ loss speech - ec_word LET_S - ec_word PARTY - ec_word UNTIL - ec_word THE - ec_move1 MORNING_SUN - ec_word EXCL + .2byte EC_WORD_OUR + .2byte EC_WORD_MUSIC + .2byte EC_WORD_WILL + .2byte EC_WORD_PLAY + .2byte EC_WORD_ALL + .2byte EC_WORD_NIGHT +@ win speech + .2byte EC_WORD_NIGHTTIME + .2byte EC_WORD_IS + .2byte EC_WORD_WHEN + .2byte EC_WORD_I + .2byte EC_WORD_PLAY + .2byte EC_WORD_BEST +@ loss speech + .2byte EC_WORD_LET_S + .2byte EC_WORD_PARTY + .2byte EC_WORD_UNTIL + .2byte EC_WORD_THE + .2byte EC_MOVE(MORNING_SUN) + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Eduardo @ 189 .4byte TRAINER_CLASS_GUITARIST .string "HAL$", 8 @ pre-battle speech - ec_word I_AM - ec_word TRENDY - ec_word AREN_T - ec_word I - ec_word QUES - .2byte -1 -@ win speech - ec_word I_AM - ec_word FEELING - ec_word HIP_AND - ec_word HAPPENING - ec_word OH_YEAH - ec_word EXCL -@ loss speech - ec_word I_AM - ec_word ALWAYS - ec_word TRENDY - ec_word THANK_YOU - ec_word VERY - ec_word MUCH + .2byte EC_WORD_I_AM + .2byte EC_WORD_TRENDY + .2byte EC_WORD_AREN_T + .2byte EC_WORD_I + .2byte EC_WORD_QUES + .2byte -1 +@ win speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_FEELING + .2byte EC_WORD_HIP_AND + .2byte EC_WORD_HAPPENING + .2byte EC_WORD_OH_YEAH + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_ALWAYS + .2byte EC_WORD_TRENDY + .2byte EC_WORD_THANK_YOU + .2byte EC_WORD_VERY + .2byte EC_WORD_MUCH .4byte gBattleFrontierTrainerMons_Hal @ 190 .4byte TRAINER_CLASS_BIRD_KEEPER .string "GAGE$", 8 @ pre-battle speech - ec_word HERE_IT_IS - ec_word A - ec_word FLYING - ec_word TYPE - ec_word HIDDEN - ec_word MOVE -@ win speech - ec_word IT_S - ec_word A - ec_word FLYING - ec_word TYPE - ec_word VICTORY - ec_word EXCL -@ loss speech - ec_word IF_I_LOSE - ec_word I - ec_word JUST - ec_move1 FLY - ec_word AWAY + .2byte EC_WORD_HERE_IT_IS + .2byte EC_WORD_A + .2byte EC_WORD_FLYING + .2byte EC_WORD_TYPE + .2byte EC_WORD_HIDDEN + .2byte EC_WORD_MOVE +@ win speech + .2byte EC_WORD_IT_S + .2byte EC_WORD_A + .2byte EC_WORD_FLYING + .2byte EC_WORD_TYPE + .2byte EC_WORD_VICTORY + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_IF_I_LOSE + .2byte EC_WORD_I + .2byte EC_WORD_JUST + .2byte EC_MOVE(FLY) + .2byte EC_WORD_AWAY .2byte -1 .4byte gBattleFrontierTrainerMons_Gage @@ -4970,181 +4970,181 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_BIRD_KEEPER .string "ARNOLD$", 8 @ pre-battle speech - ec_word I_AM - ec_word FEELING - ec_word WEIRD - ec_word FROM - ec_word A - ec_word DREAM -@ win speech - ec_word YOUR - ec_move1 SCARY_FACE - ec_word WAS - ec_word IN - ec_word MY - ec_word DREAM -@ loss speech - ec_word MY - ec_word INCREDIBLE - ec_word DREAM - ec_word WAS - ec_word SO - ec_word WEIRD + .2byte EC_WORD_I_AM + .2byte EC_WORD_FEELING + .2byte EC_WORD_WEIRD + .2byte EC_WORD_FROM + .2byte EC_WORD_A + .2byte EC_WORD_DREAM +@ win speech + .2byte EC_WORD_YOUR + .2byte EC_MOVE(SCARY_FACE) + .2byte EC_WORD_WAS + .2byte EC_WORD_IN + .2byte EC_WORD_MY + .2byte EC_WORD_DREAM +@ loss speech + .2byte EC_WORD_MY + .2byte EC_WORD_INCREDIBLE + .2byte EC_WORD_DREAM + .2byte EC_WORD_WAS + .2byte EC_WORD_SO + .2byte EC_WORD_WEIRD .4byte gBattleFrontierTrainerMons_Arnold @ 192 .4byte TRAINER_CLASS_SAILOR .string "JARRETT$", 8 @ pre-battle speech - ec_word COME_ON - ec_word LET_S - ec_word DANCE - ec_word LIKE - ec_word IT_S - ec_word YESTERDAY -@ win speech - ec_word YOU - ec_word LIKE - ec_word HOW - ec_word I - ec_word DANCE - ec_word QUES -@ loss speech - ec_word YOU - ec_word DON_T - ec_word APPRECIATE - ec_word HOW - ec_word I - ec_word DANCE + .2byte EC_WORD_COME_ON + .2byte EC_WORD_LET_S + .2byte EC_WORD_DANCE + .2byte EC_WORD_LIKE + .2byte EC_WORD_IT_S + .2byte EC_WORD_YESTERDAY +@ win speech + .2byte EC_WORD_YOU + .2byte EC_WORD_LIKE + .2byte EC_WORD_HOW + .2byte EC_WORD_I + .2byte EC_WORD_DANCE + .2byte EC_WORD_QUES +@ loss speech + .2byte EC_WORD_YOU + .2byte EC_WORD_DON_T + .2byte EC_WORD_APPRECIATE + .2byte EC_WORD_HOW + .2byte EC_WORD_I + .2byte EC_WORD_DANCE .4byte gBattleFrontierTrainerMons_Jarrett @ 193 .4byte TRAINER_CLASS_SAILOR .string "GARETT$", 8 @ pre-battle speech - ec_word MY - ec_word GIRL - ec_word GIVES - ec_word ME - ec_word A_LITTLE - ec_move2 SWEET_KISS -@ win speech - ec_word MY - ec_word GIRL - ec_word FRIEND - ec_word IS - ec_word MY - ec_word TREASURE -@ loss speech - ec_word A - ec_word TREASURE - ec_word ISN_T - ec_word ALWAYS - ec_word ABOUT - ec_word MONEY + .2byte EC_WORD_MY + .2byte EC_WORD_GIRL + .2byte EC_WORD_GIVES + .2byte EC_WORD_ME + .2byte EC_WORD_A_LITTLE + .2byte EC_MOVE2(SWEET_KISS) +@ win speech + .2byte EC_WORD_MY + .2byte EC_WORD_GIRL + .2byte EC_WORD_FRIEND + .2byte EC_WORD_IS + .2byte EC_WORD_MY + .2byte EC_WORD_TREASURE +@ loss speech + .2byte EC_WORD_A + .2byte EC_WORD_TREASURE + .2byte EC_WORD_ISN_T + .2byte EC_WORD_ALWAYS + .2byte EC_WORD_ABOUT + .2byte EC_WORD_MONEY .4byte gBattleFrontierTrainerMons_Garett @ 194 .4byte TRAINER_CLASS_HIKER .string "EMANUEL$", 8 @ pre-battle speech - ec_word SMARTNESS - ec_word ALONE - ec_word WON_T - ec_word MAKE - ec_word YOU - ec_word WIN -@ win speech - ec_word I_AM - ec_word NOT_VERY - ec_word SMART - ec_word BUT - ec_word I - ec_word WON -@ loss speech - ec_word HOW - ec_word DID - ec_word YOU - ec_move2 FAKE_OUT - ec_word ME - ec_word QUES + .2byte EC_WORD_SMARTNESS + .2byte EC_WORD_ALONE + .2byte EC_WORD_WON_T + .2byte EC_WORD_MAKE + .2byte EC_WORD_YOU + .2byte EC_WORD_WIN +@ win speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_NOT_VERY + .2byte EC_WORD_SMART + .2byte EC_WORD_BUT + .2byte EC_WORD_I + .2byte EC_WORD_WON +@ loss speech + .2byte EC_WORD_HOW + .2byte EC_WORD_DID + .2byte EC_WORD_YOU + .2byte EC_MOVE2(FAKE_OUT) + .2byte EC_WORD_ME + .2byte EC_WORD_QUES .4byte gBattleFrontierTrainerMons_Emanuel @ 195 .4byte TRAINER_CLASS_HIKER .string "GUSTAVO$", 8 @ pre-battle speech - ec_move1 CHARGE - ec_word EXCL + .2byte EC_MOVE(CHARGE) + .2byte EC_WORD_EXCL .2byte -1 - ec_move1 CHARGE - ec_word EXCL_EXCL + .2byte EC_MOVE(CHARGE) + .2byte EC_WORD_EXCL_EXCL .2byte -1 @ win speech - ec_word SURRENDER - ec_word QUES + .2byte EC_WORD_SURRENDER + .2byte EC_WORD_QUES .2byte -1 - ec_word SO - ec_word SOON - ec_word QUES + .2byte EC_WORD_SO + .2byte EC_WORD_SOON + .2byte EC_WORD_QUES @ loss speech - ec_word YOU - ec_word CAN_T - ec_word MAKE - ec_word ME - ec_word SURRENDER - ec_word YET + .2byte EC_WORD_YOU + .2byte EC_WORD_CAN_T + .2byte EC_WORD_MAKE + .2byte EC_WORD_ME + .2byte EC_WORD_SURRENDER + .2byte EC_WORD_YET .4byte gBattleFrontierTrainerMons_Gustavo @ 196 .4byte TRAINER_CLASS_KINDLER .string "KAMERON$", 8 @ pre-battle speech - ec_word TAKE_THAT - ec_word EXCL - ec_word IT_S - ec_word MY - ec_word FIERY - ec_move2 TRICK -@ win speech - ec_word DID - ec_word MY - ec_word FIERY - ec_move2 TRICK - ec_move1 ASTONISH - ec_word QUES -@ loss speech - ec_word YOU - ec_word DIDN_T - ec_word FALL - ec_word FOR - ec_word MY - ec_move2 TRICK + .2byte EC_WORD_TAKE_THAT + .2byte EC_WORD_EXCL + .2byte EC_WORD_IT_S + .2byte EC_WORD_MY + .2byte EC_WORD_FIERY + .2byte EC_MOVE2(TRICK) +@ win speech + .2byte EC_WORD_DID + .2byte EC_WORD_MY + .2byte EC_WORD_FIERY + .2byte EC_MOVE2(TRICK) + .2byte EC_MOVE(ASTONISH) + .2byte EC_WORD_QUES +@ loss speech + .2byte EC_WORD_YOU + .2byte EC_WORD_DIDN_T + .2byte EC_WORD_FALL + .2byte EC_WORD_FOR + .2byte EC_WORD_MY + .2byte EC_MOVE2(TRICK) .4byte gBattleFrontierTrainerMons_Kameron @ 197 .4byte TRAINER_CLASS_KINDLER .string "ALFREDO$", 8 @ pre-battle speech - ec_word A - ec_word FIERY - ec_word GOURMET - ec_word AM - ec_word I - ec_word EXCL -@ win speech - ec_word IT_S - ec_word A - ec_word TASTY - ec_word GOURMET - ec_word VICTORY - ec_word EXCL -@ loss speech - ec_word WHAT - ec_word A - ec_word DISASTER - ec_word THAT_WAS - ec_word EXCL + .2byte EC_WORD_A + .2byte EC_WORD_FIERY + .2byte EC_WORD_GOURMET + .2byte EC_WORD_AM + .2byte EC_WORD_I + .2byte EC_WORD_EXCL +@ win speech + .2byte EC_WORD_IT_S + .2byte EC_WORD_A + .2byte EC_WORD_TASTY + .2byte EC_WORD_GOURMET + .2byte EC_WORD_VICTORY + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_WHAT + .2byte EC_WORD_A + .2byte EC_WORD_DISASTER + .2byte EC_WORD_THAT_WAS + .2byte EC_WORD_EXCL .2byte -1 .4byte gBattleFrontierTrainerMons_Alfredo @@ -5152,25 +5152,25 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_GENTLEMAN .string "RUBEN$", 8 @ pre-battle speech - ec_word I - ec_word CAN_T - ec_word WAIT - ec_word TO - ec_word GET - ec_word GOING -@ win speech - ec_word GET - ec_word GOING - ec_word EXCL - ec_word THIS - ec_word IS - ec_word GOOD_BYE -@ loss speech - ec_word I_VE - ec_word GOT - ec_word TO - ec_word GET - ec_word GOING + .2byte EC_WORD_I + .2byte EC_WORD_CAN_T + .2byte EC_WORD_WAIT + .2byte EC_WORD_TO + .2byte EC_WORD_GET + .2byte EC_WORD_GOING +@ win speech + .2byte EC_WORD_GET + .2byte EC_WORD_GOING + .2byte EC_WORD_EXCL + .2byte EC_WORD_THIS + .2byte EC_WORD_IS + .2byte EC_WORD_GOOD_BYE +@ loss speech + .2byte EC_WORD_I_VE + .2byte EC_WORD_GOT + .2byte EC_WORD_TO + .2byte EC_WORD_GET + .2byte EC_WORD_GOING .2byte -1 .4byte gBattleFrontierTrainerMons_Ruben @@ -5178,25 +5178,25 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_GENTLEMAN .string "LAMAR$", 8 @ pre-battle speech - ec_word A - ec_move2 PRESENT - ec_word FOR - ec_word ME - ec_word QUES + .2byte EC_WORD_A + .2byte EC_MOVE2(PRESENT) + .2byte EC_WORD_FOR + .2byte EC_WORD_ME + .2byte EC_WORD_QUES .2byte -1 @ win speech - ec_word MMM - ec_word THIS - ec_word IS - ec_word QUITE - ec_word TASTY - ec_word ELLIPSIS + .2byte EC_WORD_MMM + .2byte EC_WORD_THIS + .2byte EC_WORD_IS + .2byte EC_WORD_QUITE + .2byte EC_WORD_TASTY + .2byte EC_WORD_ELLIPSIS @ loss speech - ec_word OH - ec_word IT_S - ec_word A - ec_word GAME - ec_word IS_IT_QUES + .2byte EC_WORD_OH + .2byte EC_WORD_IT_S + .2byte EC_WORD_A + .2byte EC_WORD_GAME + .2byte EC_WORD_IS_IT_QUES .2byte -1 .4byte gBattleFrontierTrainerMons_Lamar @@ -5204,155 +5204,155 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_YOUNGSTER .string "JAXON$", 8 @ pre-battle speech - ec_word A - ec_word SHELL_ARMOR - ec_word IS - ec_word WHAT - ec_word I - ec_word WANT -@ win speech - ec_word MY - ec_word FATHER - ec_word AND - ec_word MOTHER - ec_word WON_T - ec_word ACCEPT -@ loss speech - ec_word PLEASE - ec_word I - ec_word NEED - ec_word A - ec_word SHELL_ARMOR - ec_word EXCL + .2byte EC_WORD_A + .2byte EC_WORD_SHELL_ARMOR + .2byte EC_WORD_IS + .2byte EC_WORD_WHAT + .2byte EC_WORD_I + .2byte EC_WORD_WANT +@ win speech + .2byte EC_WORD_MY + .2byte EC_WORD_FATHER + .2byte EC_WORD_AND + .2byte EC_WORD_MOTHER + .2byte EC_WORD_WON_T + .2byte EC_WORD_ACCEPT +@ loss speech + .2byte EC_WORD_PLEASE + .2byte EC_WORD_I + .2byte EC_WORD_NEED + .2byte EC_WORD_A + .2byte EC_WORD_SHELL_ARMOR + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Jaxon @ 201 .4byte TRAINER_CLASS_YOUNGSTER .string "LOGAN$", 8 @ pre-battle speech - ec_word IF_I_LOSE - ec_word I - ec_word WILL - ec_word STUDY - ec_word FOR - ec_word SCHOOL -@ win speech - ec_word ME - ec_word STUDY - ec_word QUES - ec_word NOT_VERY - ec_word LIKELY_TO - ec_word SEE -@ loss speech - ec_word NO - ec_word THANKS - ec_word I_AM - ec_word GOING - ec_word TO - ec_word SLEEP + .2byte EC_WORD_IF_I_LOSE + .2byte EC_WORD_I + .2byte EC_WORD_WILL + .2byte EC_WORD_STUDY + .2byte EC_WORD_FOR + .2byte EC_WORD_SCHOOL +@ win speech + .2byte EC_WORD_ME + .2byte EC_WORD_STUDY + .2byte EC_WORD_QUES + .2byte EC_WORD_NOT_VERY + .2byte EC_WORD_LIKELY_TO + .2byte EC_WORD_SEE +@ loss speech + .2byte EC_WORD_NO + .2byte EC_WORD_THANKS + .2byte EC_WORD_I_AM + .2byte EC_WORD_GOING + .2byte EC_WORD_TO + .2byte EC_WORD_SLEEP .4byte gBattleFrontierTrainerMons_Logan @ 202 .4byte TRAINER_CLASS_LASS .string "EMILEE$", 8 @ pre-battle speech - ec_word IS - ec_word THIS - ec_word KIND - ec_word OF - ec_word BATTLE - ec_word OK_QUES -@ win speech - ec_word LET_S - ec_word GO - ec_word FOR - ec_word AN - ec_move1 ICY_WIND - ec_move2 SURF -@ loss speech - ec_word HOW - ec_word ABOUT - ec_word A - ec_move1 ROCK_SLIDE - ec_word SHOW - ec_word QUES + .2byte EC_WORD_IS + .2byte EC_WORD_THIS + .2byte EC_WORD_KIND + .2byte EC_WORD_OF + .2byte EC_WORD_BATTLE + .2byte EC_WORD_OK_QUES +@ win speech + .2byte EC_WORD_LET_S + .2byte EC_WORD_GO + .2byte EC_WORD_FOR + .2byte EC_WORD_AN + .2byte EC_MOVE(ICY_WIND) + .2byte EC_MOVE2(SURF) +@ loss speech + .2byte EC_WORD_HOW + .2byte EC_WORD_ABOUT + .2byte EC_WORD_A + .2byte EC_MOVE(ROCK_SLIDE) + .2byte EC_WORD_SHOW + .2byte EC_WORD_QUES .4byte gBattleFrontierTrainerMons_Emilee @ 203 .4byte TRAINER_CLASS_LASS .string "JOSIE$", 8 @ pre-battle speech - ec_word A - ec_word POKEMON - ec_word FASHION - ec_word CONTEST - ec_word IS - ec_word PRETTY -@ win speech - ec_word I - ec_word REALLY - ec_word LIKE - ec_word MODE - ec_word FASHION - ec_word THINGS -@ loss speech - ec_word YOU_RE - ec_word TOTALLY - ec_word LACKING - ec_word IN - ec_word FASHION - ec_word SENSE + .2byte EC_WORD_A + .2byte EC_WORD_POKEMON + .2byte EC_WORD_FASHION + .2byte EC_WORD_CONTEST + .2byte EC_WORD_IS + .2byte EC_WORD_PRETTY +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_REALLY + .2byte EC_WORD_LIKE + .2byte EC_WORD_MODE + .2byte EC_WORD_FASHION + .2byte EC_WORD_THINGS +@ loss speech + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_TOTALLY + .2byte EC_WORD_LACKING + .2byte EC_WORD_IN + .2byte EC_WORD_FASHION + .2byte EC_WORD_SENSE .4byte gBattleFrontierTrainerMons_Josie @ 204 .4byte TRAINER_CLASS_CAMPER .string "ARMANDO$", 8 @ pre-battle speech - ec_word I - ec_word NEED - ec_word MORE - ec_word GRASS - ec_word TYPE - ec_word POKEMON -@ win speech - ec_word TRADE - ec_word ME - ec_word A - ec_word GRASS - ec_word POKEMON - ec_word PLEASE -@ loss speech - ec_word THERE - ec_word AREN_T - ec_word ENOUGH - ec_word GRASS - ec_word TYPE - ec_word POKEMON + .2byte EC_WORD_I + .2byte EC_WORD_NEED + .2byte EC_WORD_MORE + .2byte EC_WORD_GRASS + .2byte EC_WORD_TYPE + .2byte EC_WORD_POKEMON +@ win speech + .2byte EC_WORD_TRADE + .2byte EC_WORD_ME + .2byte EC_WORD_A + .2byte EC_WORD_GRASS + .2byte EC_WORD_POKEMON + .2byte EC_WORD_PLEASE +@ loss speech + .2byte EC_WORD_THERE + .2byte EC_WORD_AREN_T + .2byte EC_WORD_ENOUGH + .2byte EC_WORD_GRASS + .2byte EC_WORD_TYPE + .2byte EC_WORD_POKEMON .4byte gBattleFrontierTrainerMons_Armando @ 205 .4byte TRAINER_CLASS_CAMPER .string "SKYLER$", 8 @ pre-battle speech - ec_move2 INGRAIN - ec_word IS - ec_word MY - ec_word CHOICE - ec_word BATTLE - ec_word MOVE -@ win speech - ec_word YOU - ec_word CAN_T - ec_word MOVE - ec_word ME - ec_word NOW - ec_word EXCL -@ loss speech - ec_word YOU - ec_move1 CUT - ec_word ME - ec_word DOWN - ec_word ELLIPSIS + .2byte EC_MOVE2(INGRAIN) + .2byte EC_WORD_IS + .2byte EC_WORD_MY + .2byte EC_WORD_CHOICE + .2byte EC_WORD_BATTLE + .2byte EC_WORD_MOVE +@ win speech + .2byte EC_WORD_YOU + .2byte EC_WORD_CAN_T + .2byte EC_WORD_MOVE + .2byte EC_WORD_ME + .2byte EC_WORD_NOW + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_YOU + .2byte EC_MOVE(CUT) + .2byte EC_WORD_ME + .2byte EC_WORD_DOWN + .2byte EC_WORD_ELLIPSIS .2byte -1 .4byte gBattleFrontierTrainerMons_Skyler @@ -5360,154 +5360,154 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_PICNICKER .string "RUTH$", 8 @ pre-battle speech - ec_word I - ec_word WANT - ec_word TO - ec_word ENJOY - ec_word THIS - ec_word BATTLE -@ win speech - ec_word THAT_WAS - ec_word MUCH - ec_word TOO - ec_word EASY - ec_word EXCL - .2byte -1 -@ loss speech - ec_word PLEASE - ec_word STOP - ec_word I - ec_word DON_T - ec_word ENJOY - ec_word THIS + .2byte EC_WORD_I + .2byte EC_WORD_WANT + .2byte EC_WORD_TO + .2byte EC_WORD_ENJOY + .2byte EC_WORD_THIS + .2byte EC_WORD_BATTLE +@ win speech + .2byte EC_WORD_THAT_WAS + .2byte EC_WORD_MUCH + .2byte EC_WORD_TOO + .2byte EC_WORD_EASY + .2byte EC_WORD_EXCL + .2byte -1 +@ loss speech + .2byte EC_WORD_PLEASE + .2byte EC_WORD_STOP + .2byte EC_WORD_I + .2byte EC_WORD_DON_T + .2byte EC_WORD_ENJOY + .2byte EC_WORD_THIS .4byte gBattleFrontierTrainerMons_Ruth @ 207 .4byte TRAINER_CLASS_PICNICKER .string "MELODY$", 8 @ pre-battle speech - ec_word I - ec_move2 WISH - ec_word SUNDAY - ec_word IS - ec_word A - ec_move2 SUNNY_DAY -@ win speech - ec_word SUNDAY - ec_word SEEMS - ec_word FOREVER - ec_word TO - ec_word COME - ec_word ELLIPSIS -@ loss speech - ec_word THE - ec_word FORECAST - ec_word SAYS - ec_word IT - ec_word WILL - ec_move1 HAIL + .2byte EC_WORD_I + .2byte EC_MOVE2(WISH) + .2byte EC_WORD_SUNDAY + .2byte EC_WORD_IS + .2byte EC_WORD_A + .2byte EC_MOVE2(SUNNY_DAY) +@ win speech + .2byte EC_WORD_SUNDAY + .2byte EC_WORD_SEEMS + .2byte EC_WORD_FOREVER + .2byte EC_WORD_TO + .2byte EC_WORD_COME + .2byte EC_WORD_ELLIPSIS +@ loss speech + .2byte EC_WORD_THE + .2byte EC_WORD_FORECAST + .2byte EC_WORD_SAYS + .2byte EC_WORD_IT + .2byte EC_WORD_WILL + .2byte EC_MOVE(HAIL) .4byte gBattleFrontierTrainerMons_Melody @ 208 .4byte TRAINER_CLASS_SWIMMER_M .string "PEDRO$", 8 @ pre-battle speech - ec_word A - ec_word SWIFT_SWIM - ec_word WILL - ec_word DO - ec_word YOU - ec_word GOOD -@ win speech - ec_word THAT_S - ec_word HOW - ec_word I - ec_word SINK - ec_word AN - ec_word OPPONENT -@ loss speech - ec_word UH_OH - ec_word EXCL - .2byte -1 - ec_word A - ec_move1 WHIRLPOOL - ec_word EXCL + .2byte EC_WORD_A + .2byte EC_WORD_SWIFT_SWIM + .2byte EC_WORD_WILL + .2byte EC_WORD_DO + .2byte EC_WORD_YOU + .2byte EC_WORD_GOOD +@ win speech + .2byte EC_WORD_THAT_S + .2byte EC_WORD_HOW + .2byte EC_WORD_I + .2byte EC_WORD_SINK + .2byte EC_WORD_AN + .2byte EC_WORD_OPPONENT +@ loss speech + .2byte EC_WORD_UH_OH + .2byte EC_WORD_EXCL + .2byte -1 + .2byte EC_WORD_A + .2byte EC_MOVE(WHIRLPOOL) + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Pedro @ 209 .4byte TRAINER_CLASS_SWIMMER_M .string "ERICK$", 8 @ pre-battle speech - ec_word I - ec_word WILL - ec_move2 TACKLE - ec_word YOU - ec_word DOWN - ec_word EXCL -@ win speech - ec_word DON_T - ec_word YOU - ec_word RUN_AWAY - ec_word YOU - ec_word LOSER - ec_word EXCL -@ loss speech - ec_word I - ec_word DIDN_T - ec_word THINK - ec_word YOU - ec_word WOULD - ec_move1 COUNTER + .2byte EC_WORD_I + .2byte EC_WORD_WILL + .2byte EC_MOVE2(TACKLE) + .2byte EC_WORD_YOU + .2byte EC_WORD_DOWN + .2byte EC_WORD_EXCL +@ win speech + .2byte EC_WORD_DON_T + .2byte EC_WORD_YOU + .2byte EC_WORD_RUN_AWAY + .2byte EC_WORD_YOU + .2byte EC_WORD_LOSER + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_DIDN_T + .2byte EC_WORD_THINK + .2byte EC_WORD_YOU + .2byte EC_WORD_WOULD + .2byte EC_MOVE(COUNTER) .4byte gBattleFrontierTrainerMons_Erick @ 210 .4byte TRAINER_CLASS_SWIMMER_F .string "ELAINE$", 8 @ pre-battle speech - ec_word MY - ec_word HEROINE - ec_word ADVENTURE - ec_word ISN_T - ec_word GOING - ec_word WELL -@ win speech - ec_word THANK_YOU - ec_word EXCL - ec_word THAT_S - ec_word WHAT - ec_word I - ec_word NEED -@ loss speech - ec_word I - ec_word KNOW - ec_word I_AM - ec_word NOT - ec_word A - ec_word HEROINE + .2byte EC_WORD_MY + .2byte EC_WORD_HEROINE + .2byte EC_WORD_ADVENTURE + .2byte EC_WORD_ISN_T + .2byte EC_WORD_GOING + .2byte EC_WORD_WELL +@ win speech + .2byte EC_WORD_THANK_YOU + .2byte EC_WORD_EXCL + .2byte EC_WORD_THAT_S + .2byte EC_WORD_WHAT + .2byte EC_WORD_I + .2byte EC_WORD_NEED +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_KNOW + .2byte EC_WORD_I_AM + .2byte EC_WORD_NOT + .2byte EC_WORD_A + .2byte EC_WORD_HEROINE .4byte gBattleFrontierTrainerMons_Elaine @ 211 .4byte TRAINER_CLASS_SWIMMER_F .string "JOYCE$", 8 @ pre-battle speech - ec_word YOU - ec_word MAKE - ec_word ME - ec_word GO - ec_word AHAHA - ec_word EXCL + .2byte EC_WORD_YOU + .2byte EC_WORD_MAKE + .2byte EC_WORD_ME + .2byte EC_WORD_GO + .2byte EC_WORD_AHAHA + .2byte EC_WORD_EXCL @ win speech - ec_word LALALA - ec_word NO - ec_word LOSING - ec_word FOR - ec_word ME - ec_word EXCL + .2byte EC_WORD_LALALA + .2byte EC_WORD_NO + .2byte EC_WORD_LOSING + .2byte EC_WORD_FOR + .2byte EC_WORD_ME + .2byte EC_WORD_EXCL @ loss speech - ec_word LALALA - ec_word ELLIPSIS + .2byte EC_WORD_LALALA + .2byte EC_WORD_ELLIPSIS .2byte -1 - ec_word HUH_QUES + .2byte EC_WORD_HUH_QUES .2byte -1 .2byte -1 .4byte gBattleFrontierTrainerMons_Joyce @@ -5516,129 +5516,129 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_POKEFAN_1 .string "TODD$", 8 @ pre-battle speech - ec_word YOU_RE - ec_word A - ec_word LIGHTNINGROD - ec_word FOR - ec_word MY - ec_word POWER -@ win speech - ec_word THAT_S - ec_word ALL - ec_word YOU - ec_word COULD - ec_move1 ABSORB - ec_word QUES -@ loss speech - ec_word YOU - ec_move2 REFLECT - ec_word MY - ec_word POWER - ec_word BACK - ec_word QUES + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_A + .2byte EC_WORD_LIGHTNINGROD + .2byte EC_WORD_FOR + .2byte EC_WORD_MY + .2byte EC_WORD_POWER +@ win speech + .2byte EC_WORD_THAT_S + .2byte EC_WORD_ALL + .2byte EC_WORD_YOU + .2byte EC_WORD_COULD + .2byte EC_MOVE(ABSORB) + .2byte EC_WORD_QUES +@ loss speech + .2byte EC_WORD_YOU + .2byte EC_MOVE2(REFLECT) + .2byte EC_WORD_MY + .2byte EC_WORD_POWER + .2byte EC_WORD_BACK + .2byte EC_WORD_QUES .4byte gBattleFrontierTrainerMons_Todd @ 213 .4byte TRAINER_CLASS_POKEFAN_1 .string "GAVIN$", 8 @ pre-battle speech - ec_word I - ec_word WILL - ec_move1 BIDE - ec_word MY - ec_word TIME + .2byte EC_WORD_I + .2byte EC_WORD_WILL + .2byte EC_MOVE(BIDE) + .2byte EC_WORD_MY + .2byte EC_WORD_TIME .2byte -1 @ win speech - ec_word IT_S - ec_word OVER - ec_word SO - ec_word SOON - ec_word QUES + .2byte EC_WORD_IT_S + .2byte EC_WORD_OVER + .2byte EC_WORD_SO + .2byte EC_WORD_SOON + .2byte EC_WORD_QUES .2byte -1 @ loss speech - ec_word MY - ec_word MISTAKE - ec_word WAS - ec_word TOO - ec_word EXPENSIVE - ec_word ELLIPSIS + .2byte EC_WORD_MY + .2byte EC_WORD_MISTAKE + .2byte EC_WORD_WAS + .2byte EC_WORD_TOO + .2byte EC_WORD_EXPENSIVE + .2byte EC_WORD_ELLIPSIS .4byte gBattleFrontierTrainerMons_Gavin @ 214 .4byte TRAINER_CLASS_POKEFAN_2 .string "MALORY$", 8 @ pre-battle speech - ec_word PROMISE - ec_word TO - ec_word SHOW - ec_word ME - ec_word CUTE - ec_word POKEMON -@ win speech - ec_word GIGGLE - ec_word ELLIPSIS - .2byte -1 - ec_word THANK_YOU - ec_word SO - ec_word MUCH -@ loss speech - ec_word TCH - ec_word YOUR - ec_word POKEMON - ec_word AREN_T - ec_word VERY - ec_word NICE + .2byte EC_WORD_PROMISE + .2byte EC_WORD_TO + .2byte EC_WORD_SHOW + .2byte EC_WORD_ME + .2byte EC_WORD_CUTE + .2byte EC_WORD_POKEMON +@ win speech + .2byte EC_WORD_GIGGLE + .2byte EC_WORD_ELLIPSIS + .2byte -1 + .2byte EC_WORD_THANK_YOU + .2byte EC_WORD_SO + .2byte EC_WORD_MUCH +@ loss speech + .2byte EC_WORD_TCH + .2byte EC_WORD_YOUR + .2byte EC_WORD_POKEMON + .2byte EC_WORD_AREN_T + .2byte EC_WORD_VERY + .2byte EC_WORD_NICE .4byte gBattleFrontierTrainerMons_Malory @ 215 .4byte TRAINER_CLASS_POKEFAN_2 .string "ESTHER$", 8 @ pre-battle speech - ec_word I - ec_word WANT - ec_word A - ec_word NICE - ec_move2 PRESENT - ec_word ELLIPSIS -@ win speech - ec_word PLEASE - ec_word GET - ec_word ME - ec_word A - ec_word POKEMON - ec_word GAME -@ loss speech - ec_word MESSAGE - ec_word CARDS - ec_word MAKE - ec_word A - ec_word WEAK - ec_move2 PRESENT + .2byte EC_WORD_I + .2byte EC_WORD_WANT + .2byte EC_WORD_A + .2byte EC_WORD_NICE + .2byte EC_MOVE2(PRESENT) + .2byte EC_WORD_ELLIPSIS +@ win speech + .2byte EC_WORD_PLEASE + .2byte EC_WORD_GET + .2byte EC_WORD_ME + .2byte EC_WORD_A + .2byte EC_WORD_POKEMON + .2byte EC_WORD_GAME +@ loss speech + .2byte EC_WORD_MESSAGE + .2byte EC_WORD_CARDS + .2byte EC_WORD_MAKE + .2byte EC_WORD_A + .2byte EC_WORD_WEAK + .2byte EC_MOVE2(PRESENT) .4byte gBattleFrontierTrainerMons_Esther @ 216 .4byte TRAINER_CLASS_PKMN_BREEDER_2 .string "OSCAR$", 8 @ pre-battle speech - ec_word LET_S - ec_word SEE - ec_word YOUR - ec_word POWER - ec_word IN - ec_word FULL -@ win speech - ec_word THAT_WAS - ec_word NOT - ec_word YOUR - ec_word FULL - ec_word POWER - ec_word EXCL -@ loss speech - ec_word NOT - ec_word FUNNY - ec_word ELLIPSIS - ec_word YOU_RE - ec_word TOO_STRONG + .2byte EC_WORD_LET_S + .2byte EC_WORD_SEE + .2byte EC_WORD_YOUR + .2byte EC_WORD_POWER + .2byte EC_WORD_IN + .2byte EC_WORD_FULL +@ win speech + .2byte EC_WORD_THAT_WAS + .2byte EC_WORD_NOT + .2byte EC_WORD_YOUR + .2byte EC_WORD_FULL + .2byte EC_WORD_POWER + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_NOT + .2byte EC_WORD_FUNNY + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_TOO_STRONG .2byte -1 .4byte gBattleFrontierTrainerMons_Oscar @@ -5646,129 +5646,129 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_PKMN_BREEDER_2 .string "WILSON$", 8 @ pre-battle speech - ec_word WORK - ec_word IS - ec_word MAKING - ec_word ME - ec_word AN - ec_word EARLY_BIRD -@ win speech - ec_word ALL - ec_word WORK - ec_word AND - ec_word NO - ec_word PLAY - ec_word ELLIPSIS -@ loss speech - ec_move1 ENDURE - ec_word IS - ec_word ALL - ec_word I - ec_word CAN - ec_word DO + .2byte EC_WORD_WORK + .2byte EC_WORD_IS + .2byte EC_WORD_MAKING + .2byte EC_WORD_ME + .2byte EC_WORD_AN + .2byte EC_WORD_EARLY_BIRD +@ win speech + .2byte EC_WORD_ALL + .2byte EC_WORD_WORK + .2byte EC_WORD_AND + .2byte EC_WORD_NO + .2byte EC_WORD_PLAY + .2byte EC_WORD_ELLIPSIS +@ loss speech + .2byte EC_MOVE(ENDURE) + .2byte EC_WORD_IS + .2byte EC_WORD_ALL + .2byte EC_WORD_I + .2byte EC_WORD_CAN + .2byte EC_WORD_DO .4byte gBattleFrontierTrainerMons_Wilson @ 218 .4byte TRAINER_CLASS_PKMN_BREEDER_1 .string "CLARE$", 8 @ pre-battle speech - ec_word YAY - ec_word EXCL - ec_word A - ec_word TOUGH - ec_word TRAINER - ec_word EXCL -@ win speech - ec_word AWW - ec_word EXCL - ec_word A - ec_word WIMPY - ec_word TRAINER - ec_word EXCL -@ loss speech - ec_word COOL - ec_word EXCL - ec_word A - ec_word GENIUS - ec_word TRAINER - ec_word EXCL + .2byte EC_WORD_YAY + .2byte EC_WORD_EXCL + .2byte EC_WORD_A + .2byte EC_WORD_TOUGH + .2byte EC_WORD_TRAINER + .2byte EC_WORD_EXCL +@ win speech + .2byte EC_WORD_AWW + .2byte EC_WORD_EXCL + .2byte EC_WORD_A + .2byte EC_WORD_WIMPY + .2byte EC_WORD_TRAINER + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_COOL + .2byte EC_WORD_EXCL + .2byte EC_WORD_A + .2byte EC_WORD_GENIUS + .2byte EC_WORD_TRAINER + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Clare @ 219 .4byte TRAINER_CLASS_PKMN_BREEDER_1 .string "TESS$", 8 @ pre-battle speech - ec_word WANT - ec_word SOME - ec_pokemon1 GULPIN - ec_word DESIGN - ec_word SWEETS - ec_word QUES -@ win speech - ec_word THEY_RE - ec_word A - ec_word SECRET - ec_word POKEMON - ec_word GOURMET - ec_word ITEM -@ loss speech - ec_word THEY_RE - ec_word TASTY - ec_word EXCL - ec_word REFRESHING - ec_word TOO - ec_word EXCL + .2byte EC_WORD_WANT + .2byte EC_WORD_SOME + .2byte EC_POKEMON(GULPIN) + .2byte EC_WORD_DESIGN + .2byte EC_WORD_SWEETS + .2byte EC_WORD_QUES +@ win speech + .2byte EC_WORD_THEY_RE + .2byte EC_WORD_A + .2byte EC_WORD_SECRET + .2byte EC_WORD_POKEMON + .2byte EC_WORD_GOURMET + .2byte EC_WORD_ITEM +@ loss speech + .2byte EC_WORD_THEY_RE + .2byte EC_WORD_TASTY + .2byte EC_WORD_EXCL + .2byte EC_WORD_REFRESHING + .2byte EC_WORD_TOO + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Tess @ 220 .4byte TRAINER_CLASS_COOLTRAINER_1 .string "LEON$", 8 @ pre-battle speech - ec_word I_AM - ec_word BETTER - ec_word THAN - ec_word ANY - ec_word OTHER - ec_word TRAINER -@ win speech - ec_word I - ec_word DID - ec_word IT - ec_move2 JUMP_KICK - ec_word FOR - ec_word JOY -@ loss speech - ec_word BACK - ec_word HOME - ec_word I - ec_word WILL - ec_word GO - ec_word ELLIPSIS + .2byte EC_WORD_I_AM + .2byte EC_WORD_BETTER + .2byte EC_WORD_THAN + .2byte EC_WORD_ANY + .2byte EC_WORD_OTHER + .2byte EC_WORD_TRAINER +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_DID + .2byte EC_WORD_IT + .2byte EC_MOVE2(JUMP_KICK) + .2byte EC_WORD_FOR + .2byte EC_WORD_JOY +@ loss speech + .2byte EC_WORD_BACK + .2byte EC_WORD_HOME + .2byte EC_WORD_I + .2byte EC_WORD_WILL + .2byte EC_WORD_GO + .2byte EC_WORD_ELLIPSIS .4byte gBattleFrontierTrainerMons_Leon @ 221 .4byte TRAINER_CLASS_COOLTRAINER_1 .string "ALONZO$", 8 @ pre-battle speech - ec_word I_VE - ec_word NOT - ec_word LOST - ec_word ONCE - ec_word YET - ec_word EXCL + .2byte EC_WORD_I_VE + .2byte EC_WORD_NOT + .2byte EC_WORD_LOST + .2byte EC_WORD_ONCE + .2byte EC_WORD_YET + .2byte EC_WORD_EXCL @ win speech - ec_word YOUR - ec_word SAD - ec_word LOOK - ec_word BECOMES - ec_word YOU + .2byte EC_WORD_YOUR + .2byte EC_WORD_SAD + .2byte EC_WORD_LOOK + .2byte EC_WORD_BECOMES + .2byte EC_WORD_YOU .2byte -1 @ loss speech - ec_word I - ec_word DON_T - ec_word BELIEVE - ec_word THIS - ec_word ELLIPSIS + .2byte EC_WORD_I + .2byte EC_WORD_DON_T + .2byte EC_WORD_BELIEVE + .2byte EC_WORD_THIS + .2byte EC_WORD_ELLIPSIS .2byte -1 .4byte gBattleFrontierTrainerMons_Alonzo @@ -5776,363 +5776,363 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_COOLTRAINER_1 .string "VINCE$", 8 @ pre-battle speech - ec_word THE - ec_word TOP - ec_word TRAINER - ec_word THAT_S - ec_word ME - ec_word EXCL -@ win speech - ec_word THE - ec_word TOP - ec_word RANK - ec_word BELONGS_TO - ec_word ME - ec_word EXCL -@ loss speech - ec_word I - ec_word WILL - ec_word APPEAL - ec_word THIS - ec_move1 OUTRAGE - ec_word EXCL + .2byte EC_WORD_THE + .2byte EC_WORD_TOP + .2byte EC_WORD_TRAINER + .2byte EC_WORD_THAT_S + .2byte EC_WORD_ME + .2byte EC_WORD_EXCL +@ win speech + .2byte EC_WORD_THE + .2byte EC_WORD_TOP + .2byte EC_WORD_RANK + .2byte EC_WORD_BELONGS_TO + .2byte EC_WORD_ME + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_WILL + .2byte EC_WORD_APPEAL + .2byte EC_WORD_THIS + .2byte EC_MOVE(OUTRAGE) + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Vince @ 223 .4byte TRAINER_CLASS_COOLTRAINER_1 .string "BRYON$", 8 @ pre-battle speech - ec_word MY - ec_move2 BARRAGE - ec_word WILL - ec_move2 SLAM - ec_word YOU - ec_word EXCL -@ win speech - ec_word YOU - ec_word DIDN_T - ec_word COUNT_ON - ec_word ANY - ec_word LESS - ec_word QUES -@ loss speech - ec_word I - ec_word JUST - ec_word DON_T - ec_word GET - ec_word IT - ec_word ELLIPSIS + .2byte EC_WORD_MY + .2byte EC_MOVE2(BARRAGE) + .2byte EC_WORD_WILL + .2byte EC_MOVE2(SLAM) + .2byte EC_WORD_YOU + .2byte EC_WORD_EXCL +@ win speech + .2byte EC_WORD_YOU + .2byte EC_WORD_DIDN_T + .2byte EC_WORD_COUNT_ON + .2byte EC_WORD_ANY + .2byte EC_WORD_LESS + .2byte EC_WORD_QUES +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_JUST + .2byte EC_WORD_DON_T + .2byte EC_WORD_GET + .2byte EC_WORD_IT + .2byte EC_WORD_ELLIPSIS .4byte gBattleFrontierTrainerMons_Bryon @ 224 .4byte TRAINER_CLASS_COOLTRAINER_2 .string "AVA$", 8 @ pre-battle speech - ec_word I_AM - ec_word A - ec_word TREASURE - ec_word OF - ec_word THIS - ec_word WORLD -@ win speech - ec_word MY - ec_word WORLD - ec_word IS - ec_word FULL - ec_word OF - ec_word WONDER -@ loss speech - ec_word WHY - ec_word ARE - ec_word YOU - ec_word SO - ec_word TERRIBLE - ec_word QUES + .2byte EC_WORD_I_AM + .2byte EC_WORD_A + .2byte EC_WORD_TREASURE + .2byte EC_WORD_OF + .2byte EC_WORD_THIS + .2byte EC_WORD_WORLD +@ win speech + .2byte EC_WORD_MY + .2byte EC_WORD_WORLD + .2byte EC_WORD_IS + .2byte EC_WORD_FULL + .2byte EC_WORD_OF + .2byte EC_WORD_WONDER +@ loss speech + .2byte EC_WORD_WHY + .2byte EC_WORD_ARE + .2byte EC_WORD_YOU + .2byte EC_WORD_SO + .2byte EC_WORD_TERRIBLE + .2byte EC_WORD_QUES .4byte gBattleFrontierTrainerMons_Ava @ 225 .4byte TRAINER_CLASS_COOLTRAINER_2 .string "MIRIAM$", 8 @ pre-battle speech - ec_word OH - ec_word A - ec_word TRAINER - ec_word WITH - ec_word A - ec_move1 SCARY_FACE -@ win speech - ec_word AHAHA - ec_word YOU - ec_word ONLY - ec_word LOOK - ec_word SCARY - ec_word EXCL -@ loss speech - ec_word AIYEEH - ec_word EXCL - ec_word YOU - ec_word REALLY - ec_word ARE - ec_word SCARY + .2byte EC_WORD_OH + .2byte EC_WORD_A + .2byte EC_WORD_TRAINER + .2byte EC_WORD_WITH + .2byte EC_WORD_A + .2byte EC_MOVE(SCARY_FACE) +@ win speech + .2byte EC_WORD_AHAHA + .2byte EC_WORD_YOU + .2byte EC_WORD_ONLY + .2byte EC_WORD_LOOK + .2byte EC_WORD_SCARY + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_AIYEEH + .2byte EC_WORD_EXCL + .2byte EC_WORD_YOU + .2byte EC_WORD_REALLY + .2byte EC_WORD_ARE + .2byte EC_WORD_SCARY .4byte gBattleFrontierTrainerMons_Miriam @ 226 .4byte TRAINER_CLASS_COOLTRAINER_2 .string "CARRIE$", 8 @ pre-battle speech - ec_word I - ec_word WILL - ec_word SHOW - ec_word YOU - ec_word GUTSY - ec_word EXCL -@ win speech - ec_word IT_S - ec_word ALL - ec_word ABOUT - ec_word GUTS - ec_word EXCL - .2byte -1 -@ loss speech - ec_word OH - ec_word NO - ec_word ELLIPSIS - ec_move1 SELF_DESTRUCT - ec_word MODE - ec_word EXCL + .2byte EC_WORD_I + .2byte EC_WORD_WILL + .2byte EC_WORD_SHOW + .2byte EC_WORD_YOU + .2byte EC_WORD_GUTSY + .2byte EC_WORD_EXCL +@ win speech + .2byte EC_WORD_IT_S + .2byte EC_WORD_ALL + .2byte EC_WORD_ABOUT + .2byte EC_WORD_GUTS + .2byte EC_WORD_EXCL + .2byte -1 +@ loss speech + .2byte EC_WORD_OH + .2byte EC_WORD_NO + .2byte EC_WORD_ELLIPSIS + .2byte EC_MOVE(SELF_DESTRUCT) + .2byte EC_WORD_MODE + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Carrie @ 227 .4byte TRAINER_CLASS_COOLTRAINER_2 .string "GILLIAN$", 8 @ pre-battle speech - ec_word I - ec_word SEEK - ec_word A - ec_word TRULY - ec_word GREAT - ec_word BATTLE -@ win speech - ec_word I - ec_word NEED - ec_word A_LOT - ec_word BETTER - ec_word BATTLE - ec_word ELLIPSIS -@ loss speech - ec_word THAT_WAS - ec_word A_LITTLE - ec_word TOO - ec_word MUCH - ec_word TO - ec_word TAKE + .2byte EC_WORD_I + .2byte EC_WORD_SEEK + .2byte EC_WORD_A + .2byte EC_WORD_TRULY + .2byte EC_WORD_GREAT + .2byte EC_WORD_BATTLE +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_NEED + .2byte EC_WORD_A_LOT + .2byte EC_WORD_BETTER + .2byte EC_WORD_BATTLE + .2byte EC_WORD_ELLIPSIS +@ loss speech + .2byte EC_WORD_THAT_WAS + .2byte EC_WORD_A_LITTLE + .2byte EC_WORD_TOO + .2byte EC_WORD_MUCH + .2byte EC_WORD_TO + .2byte EC_WORD_TAKE .4byte gBattleFrontierTrainerMons_Gillian2 @ 228 .4byte TRAINER_CLASS_PKMN_RANGER_1 .string "TYLER$", 8 @ pre-battle speech - ec_word YO - ec_word EXCL + .2byte EC_WORD_YO + .2byte EC_WORD_EXCL .2byte -1 - ec_word LET_S - ec_word GO - ec_word EXCL_EXCL + .2byte EC_WORD_LET_S + .2byte EC_WORD_GO + .2byte EC_WORD_EXCL_EXCL @ win speech - ec_word YO - ec_word EXCL + .2byte EC_WORD_YO + .2byte EC_WORD_EXCL .2byte -1 - ec_word I - ec_word WON - ec_word YO + .2byte EC_WORD_I + .2byte EC_WORD_WON + .2byte EC_WORD_YO @ loss speech - ec_word YO - ec_word EXCL + .2byte EC_WORD_YO + .2byte EC_WORD_EXCL .2byte -1 - ec_word I - ec_word LOST - ec_word YO + .2byte EC_WORD_I + .2byte EC_WORD_LOST + .2byte EC_WORD_YO .4byte gBattleFrontierTrainerMons_Tyler @ 229 .4byte TRAINER_CLASS_PKMN_RANGER_1 .string "CHAZ$", 8 @ pre-battle speech - ec_word MY - ec_word POKEMON - ec_word HAVE - ec_word TOO - ec_word MUCH - ec_word POWER -@ win speech - ec_word THEY - ec_word HAVE - ec_word MORE - ec_word POWER - ec_word NOW - ec_word EXCL -@ loss speech - ec_word YEAH - ec_move2 TAKE_DOWN - ec_word THEIR - ec_word POWER - ec_word A_TINY_BIT - ec_word PLEASE + .2byte EC_WORD_MY + .2byte EC_WORD_POKEMON + .2byte EC_WORD_HAVE + .2byte EC_WORD_TOO + .2byte EC_WORD_MUCH + .2byte EC_WORD_POWER +@ win speech + .2byte EC_WORD_THEY + .2byte EC_WORD_HAVE + .2byte EC_WORD_MORE + .2byte EC_WORD_POWER + .2byte EC_WORD_NOW + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_YEAH + .2byte EC_MOVE2(TAKE_DOWN) + .2byte EC_WORD_THEIR + .2byte EC_WORD_POWER + .2byte EC_WORD_A_TINY_BIT + .2byte EC_WORD_PLEASE .4byte gBattleFrontierTrainerMons_Chaz @ 230 .4byte TRAINER_CLASS_PKMN_RANGER_1 .string "NELSON$", 8 @ pre-battle speech - ec_word WELL_THEN - ec_word WILL - ec_word THIS - ec_word POKEMON - ec_word WORK - ec_word QUES -@ win speech - ec_word I - ec_word SEE - ec_word THAT - ec_word IT - ec_word WAS - ec_word TOO_STRONG -@ loss speech - ec_word IT - ec_word DIDN_T - ec_word MATCH_UP - ec_word WELL - ec_word I - ec_word THINK + .2byte EC_WORD_WELL_THEN + .2byte EC_WORD_WILL + .2byte EC_WORD_THIS + .2byte EC_WORD_POKEMON + .2byte EC_WORD_WORK + .2byte EC_WORD_QUES +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_SEE + .2byte EC_WORD_THAT + .2byte EC_WORD_IT + .2byte EC_WORD_WAS + .2byte EC_WORD_TOO_STRONG +@ loss speech + .2byte EC_WORD_IT + .2byte EC_WORD_DIDN_T + .2byte EC_WORD_MATCH_UP + .2byte EC_WORD_WELL + .2byte EC_WORD_I + .2byte EC_WORD_THINK .4byte gBattleFrontierTrainerMons_Nelson @ 231 .4byte TRAINER_CLASS_PKMN_RANGER_2 .string "SHANIA$", 8 @ pre-battle speech - ec_word ALL - ec_word MY - ec_word POKEMON - ec_word ABSOLUTELY - ec_word ADORE - ec_word ME -@ win speech - ec_word HAPPINESS - ec_word IS - ec_word A - ec_word POKEMON - ec_word WITH - ec_word CUTE_CHARM -@ loss speech - ec_word YOU_RE - ec_word SO - ec_word MEAN - ec_word TO - ec_word CUTE - ec_word POKEMON + .2byte EC_WORD_ALL + .2byte EC_WORD_MY + .2byte EC_WORD_POKEMON + .2byte EC_WORD_ABSOLUTELY + .2byte EC_WORD_ADORE + .2byte EC_WORD_ME +@ win speech + .2byte EC_WORD_HAPPINESS + .2byte EC_WORD_IS + .2byte EC_WORD_A + .2byte EC_WORD_POKEMON + .2byte EC_WORD_WITH + .2byte EC_WORD_CUTE_CHARM +@ loss speech + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_SO + .2byte EC_WORD_MEAN + .2byte EC_WORD_TO + .2byte EC_WORD_CUTE + .2byte EC_WORD_POKEMON .4byte gBattleFrontierTrainerMons_Shania @ 232 .4byte TRAINER_CLASS_PKMN_RANGER_2 .string "STELLA$", 8 @ pre-battle speech - ec_word I - ec_word WANT - ec_word TO - ec_word SEE - ec_word YOUR - ec_word POKEMON -@ win speech - ec_word WELL - ec_word AREN_T - ec_word THEY - ec_word BORING - ec_word QUES - ec_word AHAHA -@ loss speech - ec_word YOUR - ec_word POKEMON - ec_word ARE - ec_word SOMETHING - ec_word ELSE - ec_word ALL_RIGHT + .2byte EC_WORD_I + .2byte EC_WORD_WANT + .2byte EC_WORD_TO + .2byte EC_WORD_SEE + .2byte EC_WORD_YOUR + .2byte EC_WORD_POKEMON +@ win speech + .2byte EC_WORD_WELL + .2byte EC_WORD_AREN_T + .2byte EC_WORD_THEY + .2byte EC_WORD_BORING + .2byte EC_WORD_QUES + .2byte EC_WORD_AHAHA +@ loss speech + .2byte EC_WORD_YOUR + .2byte EC_WORD_POKEMON + .2byte EC_WORD_ARE + .2byte EC_WORD_SOMETHING + .2byte EC_WORD_ELSE + .2byte EC_WORD_ALL_RIGHT .4byte gBattleFrontierTrainerMons_Stella @ 233 .4byte TRAINER_CLASS_PKMN_RANGER_2 .string "DORINE$", 8 @ pre-battle speech - ec_word I_AM - ec_word YOUNG - ec_word AND - ec_word STRONG - ec_word EXCL - .2byte -1 -@ win speech - ec_word SEE - ec_word QUES - ec_word AREN_T - ec_word I - ec_word GOOD - ec_word QUES -@ loss speech - ec_word THIS - ec_word ISN_T - ec_word WORKING - ec_word OUT - ec_word AT - ec_word ALL + .2byte EC_WORD_I_AM + .2byte EC_WORD_YOUNG + .2byte EC_WORD_AND + .2byte EC_WORD_STRONG + .2byte EC_WORD_EXCL + .2byte -1 +@ win speech + .2byte EC_WORD_SEE + .2byte EC_WORD_QUES + .2byte EC_WORD_AREN_T + .2byte EC_WORD_I + .2byte EC_WORD_GOOD + .2byte EC_WORD_QUES +@ loss speech + .2byte EC_WORD_THIS + .2byte EC_WORD_ISN_T + .2byte EC_WORD_WORKING + .2byte EC_WORD_OUT + .2byte EC_WORD_AT + .2byte EC_WORD_ALL .4byte gBattleFrontierTrainerMons_Dorine @ 234 .4byte TRAINER_CLASS_DRAGON_TAMER .string "MADDOX$", 8 @ pre-battle speech - ec_word DRAGON - ec_word POKEMON - ec_word ARE - ec_word MY - ec_word NO_1 - ec_word CHOICE -@ win speech - ec_word IT_S - ec_word NO - ec_word SECRET - ec_word DRAGON - ec_word POKEMON - ec_word WIN -@ loss speech - ec_word DRAGON - ec_word POKEMON - ec_word SHOULD - ec_word NOT - ec_word LOSE - ec_word EXCL + .2byte EC_WORD_DRAGON + .2byte EC_WORD_POKEMON + .2byte EC_WORD_ARE + .2byte EC_WORD_MY + .2byte EC_WORD_NO_1 + .2byte EC_WORD_CHOICE +@ win speech + .2byte EC_WORD_IT_S + .2byte EC_WORD_NO + .2byte EC_WORD_SECRET + .2byte EC_WORD_DRAGON + .2byte EC_WORD_POKEMON + .2byte EC_WORD_WIN +@ loss speech + .2byte EC_WORD_DRAGON + .2byte EC_WORD_POKEMON + .2byte EC_WORD_SHOULD + .2byte EC_WORD_NOT + .2byte EC_WORD_LOSE + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Maddox @ 235 .4byte TRAINER_CLASS_DRAGON_TAMER .string "DAVIN$", 8 @ pre-battle speech - ec_word LET_S - ec_word HEAR - ec_word YOU - ec_move2 ROAR - ec_word EXCL + .2byte EC_WORD_LET_S + .2byte EC_WORD_HEAR + .2byte EC_WORD_YOU + .2byte EC_MOVE2(ROAR) + .2byte EC_WORD_EXCL .2byte -1 @ win speech - ec_word WROOOAAR_EXCL + .2byte EC_WORD_WROOOAAR_EXCL .2byte -1 .2byte -1 - ec_word VICTORY - ec_word EXCL_EXCL + .2byte EC_WORD_VICTORY + .2byte EC_WORD_EXCL_EXCL .2byte -1 @ loss speech - ec_word WROOOAAR_EXCL + .2byte EC_WORD_WROOOAAR_EXCL .2byte -1 .2byte -1 - ec_word WHY - ec_word QUES_EXCL + .2byte EC_WORD_WHY + .2byte EC_WORD_QUES_EXCL .2byte -1 .4byte gBattleFrontierTrainerMons_Davin @@ -6140,285 +6140,285 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_DRAGON_TAMER .string "TREVON$", 8 @ pre-battle speech - ec_word I_AM - ec_word LIVING - ec_word ONLY - ec_word WITH - ec_word DRAGON - ec_word POKEMON -@ win speech - ec_word THE - ec_word WAY - ec_word I_AM - ec_word LIVING - ec_word IS - ec_word PERFECT -@ loss speech - ec_word YOU_VE - ec_word DESTROYED - ec_word THE - ec_word WAY - ec_word I_AM - ec_word LIVING + .2byte EC_WORD_I_AM + .2byte EC_WORD_LIVING + .2byte EC_WORD_ONLY + .2byte EC_WORD_WITH + .2byte EC_WORD_DRAGON + .2byte EC_WORD_POKEMON +@ win speech + .2byte EC_WORD_THE + .2byte EC_WORD_WAY + .2byte EC_WORD_I_AM + .2byte EC_WORD_LIVING + .2byte EC_WORD_IS + .2byte EC_WORD_PERFECT +@ loss speech + .2byte EC_WORD_YOU_VE + .2byte EC_WORD_DESTROYED + .2byte EC_WORD_THE + .2byte EC_WORD_WAY + .2byte EC_WORD_I_AM + .2byte EC_WORD_LIVING .4byte gBattleFrontierTrainerMons_Trevon @ 237 .4byte TRAINER_CLASS_BLACK_BELT .string "MATEO$", 8 @ pre-battle speech - ec_word THIS - ec_word SHOULD - ec_word BE - ec_word OVER - ec_word SOON - ec_word ENOUGH -@ win speech - ec_word WELL - ec_word THAT - ec_word DIDN_T - ec_word TAKE - ec_word VERY - ec_word MUCH -@ loss speech - ec_word I - ec_word CAN_T - ec_word LOSE - ec_word SO - ec_word SOON - ec_word EXCL + .2byte EC_WORD_THIS + .2byte EC_WORD_SHOULD + .2byte EC_WORD_BE + .2byte EC_WORD_OVER + .2byte EC_WORD_SOON + .2byte EC_WORD_ENOUGH +@ win speech + .2byte EC_WORD_WELL + .2byte EC_WORD_THAT + .2byte EC_WORD_DIDN_T + .2byte EC_WORD_TAKE + .2byte EC_WORD_VERY + .2byte EC_WORD_MUCH +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_CAN_T + .2byte EC_WORD_LOSE + .2byte EC_WORD_SO + .2byte EC_WORD_SOON + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Mateo @ 238 .4byte TRAINER_CLASS_BLACK_BELT .string "BRET$", 8 @ pre-battle speech - ec_word I - ec_word LIKE - ec_word ROCK_SOLID - ec_word POKEMON - ec_word THE - ec_word BEST -@ win speech - ec_word TOUGHNESS - ec_word IS - ec_word THE - ec_word WAY - ec_word TO - ec_word GO -@ loss speech - ec_word I - ec_word ALSO - ec_word HAVE - ec_word A - ec_word PLUSH_DOLL - ec_word COLLECTION + .2byte EC_WORD_I + .2byte EC_WORD_LIKE + .2byte EC_WORD_ROCK_SOLID + .2byte EC_WORD_POKEMON + .2byte EC_WORD_THE + .2byte EC_WORD_BEST +@ win speech + .2byte EC_WORD_TOUGHNESS + .2byte EC_WORD_IS + .2byte EC_WORD_THE + .2byte EC_WORD_WAY + .2byte EC_WORD_TO + .2byte EC_WORD_GO +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_ALSO + .2byte EC_WORD_HAVE + .2byte EC_WORD_A + .2byte EC_WORD_PLUSH_DOLL + .2byte EC_WORD_COLLECTION .4byte gBattleFrontierTrainerMons_Bret @ 239 .4byte TRAINER_CLASS_BLACK_BELT .string "RAUL$", 8 @ pre-battle speech - ec_word I - ec_word REJECT - ec_word EVERY - ec_word WEAK - ec_word TRAINER - .2byte -1 -@ win speech - ec_word HUMPH - ec_word EXCL - ec_word ANOTHER - ec_word WEAK - ec_word TRAINER - ec_word ELLIPSIS -@ loss speech - ec_word THERE - ec_word IS - ec_word NOTHING - ec_word WEAK - ec_word ABOUT - ec_word YOU + .2byte EC_WORD_I + .2byte EC_WORD_REJECT + .2byte EC_WORD_EVERY + .2byte EC_WORD_WEAK + .2byte EC_WORD_TRAINER + .2byte -1 +@ win speech + .2byte EC_WORD_HUMPH + .2byte EC_WORD_EXCL + .2byte EC_WORD_ANOTHER + .2byte EC_WORD_WEAK + .2byte EC_WORD_TRAINER + .2byte EC_WORD_ELLIPSIS +@ loss speech + .2byte EC_WORD_THERE + .2byte EC_WORD_IS + .2byte EC_WORD_NOTHING + .2byte EC_WORD_WEAK + .2byte EC_WORD_ABOUT + .2byte EC_WORD_YOU .4byte gBattleFrontierTrainerMons_Raul @ 240 .4byte TRAINER_CLASS_BATTLE_GIRL .string "KAY$", 8 @ pre-battle speech - ec_word AND - ec_word YET - ec_word ANOTHER - ec_word BATTLE - ec_word QUES - .2byte -1 -@ win speech - ec_word I - ec_word WON - ec_word BUT - ec_word I_AM - ec_word TIRED - ec_word ELLIPSIS -@ loss speech - ec_word GOOD - ec_word IT_S - ec_word OVER - ec_word AT - ec_word LAST - ec_word ELLIPSIS + .2byte EC_WORD_AND + .2byte EC_WORD_YET + .2byte EC_WORD_ANOTHER + .2byte EC_WORD_BATTLE + .2byte EC_WORD_QUES + .2byte -1 +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_WON + .2byte EC_WORD_BUT + .2byte EC_WORD_I_AM + .2byte EC_WORD_TIRED + .2byte EC_WORD_ELLIPSIS +@ loss speech + .2byte EC_WORD_GOOD + .2byte EC_WORD_IT_S + .2byte EC_WORD_OVER + .2byte EC_WORD_AT + .2byte EC_WORD_LAST + .2byte EC_WORD_ELLIPSIS .4byte gBattleFrontierTrainerMons_Kay @ 241 .4byte TRAINER_CLASS_BATTLE_GIRL .string "ELENA$", 8 @ pre-battle speech - ec_word A - ec_word BATTLE - ec_word GIRL - ec_word THAT_S - ec_word ME - ec_word EXCL -@ win speech - ec_word ISN_T - ec_word A - ec_word BATTLE - ec_word GIRL - ec_word AWESOME - ec_word QUES -@ loss speech - ec_word YOU - ec_word DISLIKE - ec_word A - ec_word BATTLE - ec_word GIRL - ec_word QUES + .2byte EC_WORD_A + .2byte EC_WORD_BATTLE + .2byte EC_WORD_GIRL + .2byte EC_WORD_THAT_S + .2byte EC_WORD_ME + .2byte EC_WORD_EXCL +@ win speech + .2byte EC_WORD_ISN_T + .2byte EC_WORD_A + .2byte EC_WORD_BATTLE + .2byte EC_WORD_GIRL + .2byte EC_WORD_AWESOME + .2byte EC_WORD_QUES +@ loss speech + .2byte EC_WORD_YOU + .2byte EC_WORD_DISLIKE + .2byte EC_WORD_A + .2byte EC_WORD_BATTLE + .2byte EC_WORD_GIRL + .2byte EC_WORD_QUES .4byte gBattleFrontierTrainerMons_Elena @ 242 .4byte TRAINER_CLASS_BATTLE_GIRL .string "ALANA$", 8 @ pre-battle speech - ec_word EAT - ec_word MY - ec_word INVINCIBLE - ec_word ATTACK - ec_word YOU - ec_word EXCL -@ win speech - ec_word YOU - ec_word HAVE - ec_word MUCH - ec_word TO - ec_word LEARN - .2byte -1 -@ loss speech - ec_word SO - ec_word MUCH - ec_word FOR - ec_word MY - ec_word INVINCIBLE - ec_word ATTACK + .2byte EC_WORD_EAT + .2byte EC_WORD_MY + .2byte EC_WORD_INVINCIBLE + .2byte EC_WORD_ATTACK + .2byte EC_WORD_YOU + .2byte EC_WORD_EXCL +@ win speech + .2byte EC_WORD_YOU + .2byte EC_WORD_HAVE + .2byte EC_WORD_MUCH + .2byte EC_WORD_TO + .2byte EC_WORD_LEARN + .2byte -1 +@ loss speech + .2byte EC_WORD_SO + .2byte EC_WORD_MUCH + .2byte EC_WORD_FOR + .2byte EC_WORD_MY + .2byte EC_WORD_INVINCIBLE + .2byte EC_WORD_ATTACK .4byte gBattleFrontierTrainerMons_Alana @ 243 .4byte TRAINER_CLASS_EXPERT_1 .string "ALEXAS$", 8 @ pre-battle speech - ec_word GOOD - ec_word TO - ec_word MEET_YOU - ec_word YOUNG - ec_word TRAINER - ec_word EXCL -@ win speech - ec_word WAHAHAHA - ec_word EXCL - .2byte -1 - ec_word GIVE - ec_word IT - ec_word UP -@ loss speech - ec_word YOU - ec_word ARE - ec_word A - ec_word STRONG - ec_word TRAINER - ec_word KID + .2byte EC_WORD_GOOD + .2byte EC_WORD_TO + .2byte EC_WORD_MEET_YOU + .2byte EC_WORD_YOUNG + .2byte EC_WORD_TRAINER + .2byte EC_WORD_EXCL +@ win speech + .2byte EC_WORD_WAHAHAHA + .2byte EC_WORD_EXCL + .2byte -1 + .2byte EC_WORD_GIVE + .2byte EC_WORD_IT + .2byte EC_WORD_UP +@ loss speech + .2byte EC_WORD_YOU + .2byte EC_WORD_ARE + .2byte EC_WORD_A + .2byte EC_WORD_STRONG + .2byte EC_WORD_TRAINER + .2byte EC_WORD_KID .4byte gBattleFrontierTrainerMons_Alexas @ 244 .4byte TRAINER_CLASS_EXPERT_1 .string "WESTON$", 8 @ pre-battle speech - ec_word I - ec_word DON_T - ec_word PLAY - ec_word DOWN - ec_word ALL_RIGHT - ec_word QUES -@ win speech - ec_word YOU_RE - ec_word FAR - ec_word TOO - ec_word EASY - ec_word TO - ec_word ATTACK -@ loss speech - ec_word WELL - ec_word WELL - ec_word ELLIPSIS - ec_word I - ec_word SURRENDER - ec_word ELLIPSIS + .2byte EC_WORD_I + .2byte EC_WORD_DON_T + .2byte EC_WORD_PLAY + .2byte EC_WORD_DOWN + .2byte EC_WORD_ALL_RIGHT + .2byte EC_WORD_QUES +@ win speech + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_FAR + .2byte EC_WORD_TOO + .2byte EC_WORD_EASY + .2byte EC_WORD_TO + .2byte EC_WORD_ATTACK +@ loss speech + .2byte EC_WORD_WELL + .2byte EC_WORD_WELL + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_I + .2byte EC_WORD_SURRENDER + .2byte EC_WORD_ELLIPSIS .4byte gBattleFrontierTrainerMons_Weston @ 245 .4byte TRAINER_CLASS_EXPERT_1 .string "JASPER$", 8 @ pre-battle speech - ec_word I_AM - ec_word NOT - ec_word OLD - ec_word I_AM - ec_word SKILLED - ec_word EXCL -@ win speech - ec_word SKILLED - ec_word THAT_S - ec_word WHAT - ec_word I_AM - ec_word EXCL - .2byte -1 -@ loss speech - ec_word I_AM - ec_word SHOCKED - ec_word EXCL - ec_word DOWN - ec_word I - ec_word GO + .2byte EC_WORD_I_AM + .2byte EC_WORD_NOT + .2byte EC_WORD_OLD + .2byte EC_WORD_I_AM + .2byte EC_WORD_SKILLED + .2byte EC_WORD_EXCL +@ win speech + .2byte EC_WORD_SKILLED + .2byte EC_WORD_THAT_S + .2byte EC_WORD_WHAT + .2byte EC_WORD_I_AM + .2byte EC_WORD_EXCL + .2byte -1 +@ loss speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_SHOCKED + .2byte EC_WORD_EXCL + .2byte EC_WORD_DOWN + .2byte EC_WORD_I + .2byte EC_WORD_GO .4byte gBattleFrontierTrainerMons_Jasper @ 246 .4byte TRAINER_CLASS_EXPERT_2 .string "NADIA$", 8 @ pre-battle speech - ec_word YOU - ec_word CAN_T - ec_word BEAT - ec_word ME - ec_word DOWN - ec_word EXCL + .2byte EC_WORD_YOU + .2byte EC_WORD_CAN_T + .2byte EC_WORD_BEAT + .2byte EC_WORD_ME + .2byte EC_WORD_DOWN + .2byte EC_WORD_EXCL @ win speech - ec_word HAH - ec_word EXCL + .2byte EC_WORD_HAH + .2byte EC_WORD_EXCL .2byte -1 - ec_word I - ec_word BEAT - ec_word YOU + .2byte EC_WORD_I + .2byte EC_WORD_BEAT + .2byte EC_WORD_YOU @ loss speech - ec_word I_AM - ec_move2 BEAT_UP - ec_word AND - ec_word DOWNCAST - ec_word ELLIPSIS + .2byte EC_WORD_I_AM + .2byte EC_MOVE2(BEAT_UP) + .2byte EC_WORD_AND + .2byte EC_WORD_DOWNCAST + .2byte EC_WORD_ELLIPSIS .2byte -1 .4byte gBattleFrontierTrainerMons_Nadia @@ -6426,103 +6426,103 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_EXPERT_2 .string "MIRANDA$", 8 @ pre-battle speech - ec_word WELL - ec_word WELL + .2byte EC_WORD_WELL + .2byte EC_WORD_WELL .2byte -1 - ec_word LET_S - ec_word START + .2byte EC_WORD_LET_S + .2byte EC_WORD_START .2byte -1 @ win speech - ec_word WHAT - ec_word QUES - ec_word DONE - ec_word SO - ec_word SOON - ec_word QUES + .2byte EC_WORD_WHAT + .2byte EC_WORD_QUES + .2byte EC_WORD_DONE + .2byte EC_WORD_SO + .2byte EC_WORD_SOON + .2byte EC_WORD_QUES @ loss speech - ec_word WELL - ec_word I - ec_word SEE - ec_word THAT - ec_word I_AM - ec_word TOO_WEAK + .2byte EC_WORD_WELL + .2byte EC_WORD_I + .2byte EC_WORD_SEE + .2byte EC_WORD_THAT + .2byte EC_WORD_I_AM + .2byte EC_WORD_TOO_WEAK .4byte gBattleFrontierTrainerMons_Miranda @ 248 .4byte TRAINER_CLASS_EXPERT_2 .string "EMMA$", 8 @ pre-battle speech - ec_word I_VE - ec_word BEEN - ec_word HEARING - ec_word ABOUT - ec_word YOU + .2byte EC_WORD_I_VE + .2byte EC_WORD_BEEN + .2byte EC_WORD_HEARING + .2byte EC_WORD_ABOUT + .2byte EC_WORD_YOU .2byte -1 @ win speech - ec_word I - ec_word THINK - ec_word I_VE - ec_word MISHEARD - ec_word THINGS + .2byte EC_WORD_I + .2byte EC_WORD_THINK + .2byte EC_WORD_I_VE + .2byte EC_WORD_MISHEARD + .2byte EC_WORD_THINGS .2byte -1 @ loss speech - ec_word WHAT - ec_word I_VE - ec_word BEEN - ec_word HEARING - ec_word IS - ec_word RIGHT + .2byte EC_WORD_WHAT + .2byte EC_WORD_I_VE + .2byte EC_WORD_BEEN + .2byte EC_WORD_HEARING + .2byte EC_WORD_IS + .2byte EC_WORD_RIGHT .4byte gBattleFrontierTrainerMons_Emma @ 249 .4byte TRAINER_CLASS_PSYCHIC_1 .string "ROLANDO$", 8 @ pre-battle speech - ec_word I_AM - ec_word A - ec_word SUPER - ec_word POKEMON - ec_word HERO - ec_word EXCL -@ win speech - ec_word WAS - ec_word THAT - ec_word ENOUGH - ec_word FOR - ec_word YOU - ec_word QUES -@ loss speech - ec_word YOU - ec_word SHOULD - ec_word NOT - ec_word BEAT - ec_word A - ec_word HERO + .2byte EC_WORD_I_AM + .2byte EC_WORD_A + .2byte EC_WORD_SUPER + .2byte EC_WORD_POKEMON + .2byte EC_WORD_HERO + .2byte EC_WORD_EXCL +@ win speech + .2byte EC_WORD_WAS + .2byte EC_WORD_THAT + .2byte EC_WORD_ENOUGH + .2byte EC_WORD_FOR + .2byte EC_WORD_YOU + .2byte EC_WORD_QUES +@ loss speech + .2byte EC_WORD_YOU + .2byte EC_WORD_SHOULD + .2byte EC_WORD_NOT + .2byte EC_WORD_BEAT + .2byte EC_WORD_A + .2byte EC_WORD_HERO .4byte gBattleFrontierTrainerMons_Rolando @ 250 .4byte TRAINER_CLASS_PSYCHIC_1 .string "STANLY$", 8 @ pre-battle speech - ec_word THIS - ec_word SHOULD - ec_word BE - ec_word AN - ec_word EASY - ec_word MATCH + .2byte EC_WORD_THIS + .2byte EC_WORD_SHOULD + .2byte EC_WORD_BE + .2byte EC_WORD_AN + .2byte EC_WORD_EASY + .2byte EC_WORD_MATCH @ win speech - ec_word IT - ec_word REALLY - ec_word WAS - ec_word EASY + .2byte EC_WORD_IT + .2byte EC_WORD_REALLY + .2byte EC_WORD_WAS + .2byte EC_WORD_EASY .2byte -1 .2byte -1 @ loss speech - ec_word ARE - ec_word YOU - ec_word HAPPY - ec_word NOW - ec_word QUES + .2byte EC_WORD_ARE + .2byte EC_WORD_YOU + .2byte EC_WORD_HAPPY + .2byte EC_WORD_NOW + .2byte EC_WORD_QUES .2byte -1 .4byte gBattleFrontierTrainerMons_Stanly @@ -6530,207 +6530,207 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_PSYCHIC_1 .string "DARIO$", 8 @ pre-battle speech - ec_word MY - ec_move2 FORESIGHT - ec_word SAYS - ec_word I - ec_word WILL - ec_word WIN -@ win speech - ec_word MY - ec_move2 FORESIGHT - ec_word HAS - ec_word BEEN - ec_word PERFECT - .2byte -1 -@ loss speech - ec_word I - ec_word DIDN_T - ec_word SEE - ec_word THIS - ec_move1 REVERSAL - ec_word ELLIPSIS + .2byte EC_WORD_MY + .2byte EC_MOVE2(FORESIGHT) + .2byte EC_WORD_SAYS + .2byte EC_WORD_I + .2byte EC_WORD_WILL + .2byte EC_WORD_WIN +@ win speech + .2byte EC_WORD_MY + .2byte EC_MOVE2(FORESIGHT) + .2byte EC_WORD_HAS + .2byte EC_WORD_BEEN + .2byte EC_WORD_PERFECT + .2byte -1 +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_DIDN_T + .2byte EC_WORD_SEE + .2byte EC_WORD_THIS + .2byte EC_MOVE(REVERSAL) + .2byte EC_WORD_ELLIPSIS .4byte gBattleFrontierTrainerMons_Dario @ 252 .4byte TRAINER_CLASS_PSYCHIC_2 .string "KARLEE$", 8 @ pre-battle speech - ec_word SOMETHING - ec_word GOOD - ec_word WILL - ec_word COME - ec_word OF - ec_word THIS -@ win speech - ec_word YOU - ec_word SEE - ec_word QUES - ec_word FANTASTIC - ec_word EXCL - .2byte -1 -@ loss speech - ec_word THAT - ec_word SOMETHING - ec_word GOOD - ec_word WENT - ec_word TO - ec_word YOU + .2byte EC_WORD_SOMETHING + .2byte EC_WORD_GOOD + .2byte EC_WORD_WILL + .2byte EC_WORD_COME + .2byte EC_WORD_OF + .2byte EC_WORD_THIS +@ win speech + .2byte EC_WORD_YOU + .2byte EC_WORD_SEE + .2byte EC_WORD_QUES + .2byte EC_WORD_FANTASTIC + .2byte EC_WORD_EXCL + .2byte -1 +@ loss speech + .2byte EC_WORD_THAT + .2byte EC_WORD_SOMETHING + .2byte EC_WORD_GOOD + .2byte EC_WORD_WENT + .2byte EC_WORD_TO + .2byte EC_WORD_YOU .4byte gBattleFrontierTrainerMons_Karlee @ 253 .4byte TRAINER_CLASS_PSYCHIC_2 .string "JAYLIN$", 8 @ pre-battle speech - ec_word EVERY - ec_word TRAINER - ec_word HAS - ec_word BEEN - ec_word TOO_WEAK - ec_word ELLIPSIS -@ win speech - ec_word IT_S - ec_word MAKING - ec_word ME - ec_move1 YAWN - ec_word THAT - ec_word BATTLE -@ loss speech - ec_word I - ec_word SLEPT - ec_word AND - ec_word SO - ec_word I - ec_word LOST + .2byte EC_WORD_EVERY + .2byte EC_WORD_TRAINER + .2byte EC_WORD_HAS + .2byte EC_WORD_BEEN + .2byte EC_WORD_TOO_WEAK + .2byte EC_WORD_ELLIPSIS +@ win speech + .2byte EC_WORD_IT_S + .2byte EC_WORD_MAKING + .2byte EC_WORD_ME + .2byte EC_MOVE(YAWN) + .2byte EC_WORD_THAT + .2byte EC_WORD_BATTLE +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_SLEPT + .2byte EC_WORD_AND + .2byte EC_WORD_SO + .2byte EC_WORD_I + .2byte EC_WORD_LOST .4byte gBattleFrontierTrainerMons_Jaylin @ 254 .4byte TRAINER_CLASS_PSYCHIC_2 .string "INGRID$", 8 @ pre-battle speech - ec_word I_AM - ec_word NOT - ec_word A - ec_word VERY - ec_word MEAN - ec_word TRAINER -@ win speech - ec_word WASN_T - ec_word THAT - ec_word A - ec_word GOOD - ec_word MATCH - ec_word QUES -@ loss speech - ec_word I - ec_word LOST - ec_word CAUSE - ec_word YOU_RE - ec_word MEAN - ec_word ELLIPSIS + .2byte EC_WORD_I_AM + .2byte EC_WORD_NOT + .2byte EC_WORD_A + .2byte EC_WORD_VERY + .2byte EC_WORD_MEAN + .2byte EC_WORD_TRAINER +@ win speech + .2byte EC_WORD_WASN_T + .2byte EC_WORD_THAT + .2byte EC_WORD_A + .2byte EC_WORD_GOOD + .2byte EC_WORD_MATCH + .2byte EC_WORD_QUES +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_LOST + .2byte EC_WORD_CAUSE + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_MEAN + .2byte EC_WORD_ELLIPSIS .4byte gBattleFrontierTrainerMons_Ingrid @ 255 .4byte TRAINER_CLASS_HEX_MANIAC .string "DELILAH$", 8 @ pre-battle speech - ec_word DON_T - ec_move1 GRUDGE - ec_word ME - ec_word IF_I_WIN - ec_word OK_QUES - .2byte -1 -@ win speech - ec_word I_AM - ec_word SORRY - ec_word TO - ec_word SEE - ec_word YOU - ec_word ANGRY -@ loss speech - ec_word I - ec_word HAVE - ec_word A - ec_move1 GRUDGE - ec_word WITH - ec_word YOU + .2byte EC_WORD_DON_T + .2byte EC_MOVE(GRUDGE) + .2byte EC_WORD_ME + .2byte EC_WORD_IF_I_WIN + .2byte EC_WORD_OK_QUES + .2byte -1 +@ win speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_SORRY + .2byte EC_WORD_TO + .2byte EC_WORD_SEE + .2byte EC_WORD_YOU + .2byte EC_WORD_ANGRY +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_HAVE + .2byte EC_WORD_A + .2byte EC_MOVE(GRUDGE) + .2byte EC_WORD_WITH + .2byte EC_WORD_YOU .4byte gBattleFrontierTrainerMons_Delilah @ 256 .4byte TRAINER_CLASS_HEX_MANIAC .string "CARLY$", 8 @ pre-battle speech - ec_word I - ec_word WILL - ec_word SCATTER - ec_word SOME - ec_move2 POISON_POWDER - ec_word ABOUT -@ win speech - ec_word IT_S - ec_word SCARY - ec_word HOW - ec_word MY - ec_word STRATEGY - ec_word WORKS -@ loss speech - ec_word I - ec_word DISLIKE - ec_word YOU - ec_word AND - ec_word YOUR - ec_word POKEMON + .2byte EC_WORD_I + .2byte EC_WORD_WILL + .2byte EC_WORD_SCATTER + .2byte EC_WORD_SOME + .2byte EC_MOVE2(POISON_POWDER) + .2byte EC_WORD_ABOUT +@ win speech + .2byte EC_WORD_IT_S + .2byte EC_WORD_SCARY + .2byte EC_WORD_HOW + .2byte EC_WORD_MY + .2byte EC_WORD_STRATEGY + .2byte EC_WORD_WORKS +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_DISLIKE + .2byte EC_WORD_YOU + .2byte EC_WORD_AND + .2byte EC_WORD_YOUR + .2byte EC_WORD_POKEMON .4byte gBattleFrontierTrainerMons_Carly @ 257 .4byte TRAINER_CLASS_HEX_MANIAC .string "LEXIE$", 8 @ pre-battle speech - ec_word WANT - ec_word TO - ec_word SEE - ec_word SCARY - ec_word POKEMON - ec_word QUES + .2byte EC_WORD_WANT + .2byte EC_WORD_TO + .2byte EC_WORD_SEE + .2byte EC_WORD_SCARY + .2byte EC_WORD_POKEMON + .2byte EC_WORD_QUES @ win speech - ec_word WASN_T - ec_word THAT - ec_word SCARY - ec_word EH_QUES + .2byte EC_WORD_WASN_T + .2byte EC_WORD_THAT + .2byte EC_WORD_SCARY + .2byte EC_WORD_EH_QUES .2byte -1 .2byte -1 @ loss speech - ec_word YOU_RE - ec_word MORE - ec_word SCARY - ec_word THAN - ec_word MY - ec_word POKEMON + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_MORE + .2byte EC_WORD_SCARY + .2byte EC_WORD_THAN + .2byte EC_WORD_MY + .2byte EC_WORD_POKEMON .4byte gBattleFrontierTrainerMons_Lexie @ 258 .4byte TRAINER_CLASS_POKEMANIAC .string "MILLER$", 8 @ pre-battle speech - ec_word HELLO - ec_word QUES + .2byte EC_WORD_HELLO + .2byte EC_WORD_QUES .2byte -1 - ec_word HELLO - ec_word QUES_EXCL + .2byte EC_WORD_HELLO + .2byte EC_WORD_QUES_EXCL .2byte -1 @ win speech - ec_word HELLO - ec_word MOTHER - ec_word EXCL - ec_word I - ec_word WON - ec_word EXCL + .2byte EC_WORD_HELLO + .2byte EC_WORD_MOTHER + .2byte EC_WORD_EXCL + .2byte EC_WORD_I + .2byte EC_WORD_WON + .2byte EC_WORD_EXCL @ loss speech - ec_word MY - ec_word PHONE - ec_word ISN_T - ec_word WORKING - ec_word ELLIPSIS + .2byte EC_WORD_MY + .2byte EC_WORD_PHONE + .2byte EC_WORD_ISN_T + .2byte EC_WORD_WORKING + .2byte EC_WORD_ELLIPSIS .2byte -1 .4byte gBattleFrontierTrainerMons_Miller @@ -6738,153 +6738,153 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_POKEMANIAC .string "MARV$", 8 @ pre-battle speech - ec_word YOU - ec_word CAN - ec_word LOSE - ec_word YOUR - ec_move1 SWAGGER - ec_word NOW -@ win speech - ec_word THERE - ec_word IS - ec_word NO - ec_move1 SWAGGER - ec_word LEFT - ec_word EH_QUES -@ loss speech - ec_word GO - ec_word ON - ec_move1 SWAGGER - ec_word ALL - ec_word YOU - ec_word WANT + .2byte EC_WORD_YOU + .2byte EC_WORD_CAN + .2byte EC_WORD_LOSE + .2byte EC_WORD_YOUR + .2byte EC_MOVE(SWAGGER) + .2byte EC_WORD_NOW +@ win speech + .2byte EC_WORD_THERE + .2byte EC_WORD_IS + .2byte EC_WORD_NO + .2byte EC_MOVE(SWAGGER) + .2byte EC_WORD_LEFT + .2byte EC_WORD_EH_QUES +@ loss speech + .2byte EC_WORD_GO + .2byte EC_WORD_ON + .2byte EC_MOVE(SWAGGER) + .2byte EC_WORD_ALL + .2byte EC_WORD_YOU + .2byte EC_WORD_WANT .4byte gBattleFrontierTrainerMons_Marv @ 260 .4byte TRAINER_CLASS_POKEMANIAC .string "LAYTON$", 8 @ pre-battle speech - ec_word I - ec_word KNOW - ec_word I_AM - ec_word TOTALLY - ec_word COOL - ec_word EXCL -@ win speech - ec_word YOU - ec_word CAN - ec_word LOOK - ec_word UP - ec_word TO - ec_word ME -@ loss speech - ec_word YOU_RE - ec_word COOL - ec_word EXCL - ec_word NO - ec_word REALLY - ec_word EXCL + .2byte EC_WORD_I + .2byte EC_WORD_KNOW + .2byte EC_WORD_I_AM + .2byte EC_WORD_TOTALLY + .2byte EC_WORD_COOL + .2byte EC_WORD_EXCL +@ win speech + .2byte EC_WORD_YOU + .2byte EC_WORD_CAN + .2byte EC_WORD_LOOK + .2byte EC_WORD_UP + .2byte EC_WORD_TO + .2byte EC_WORD_ME +@ loss speech + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_COOL + .2byte EC_WORD_EXCL + .2byte EC_WORD_NO + .2byte EC_WORD_REALLY + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Layton @ 261 .4byte TRAINER_CLASS_GENTLEMAN .string "BROOKS$", 8 @ pre-battle speech - ec_word THIS - ec_word IS - ec_word A - ec_word HIGH - ec_word LEVEL - ec_word BATTLE -@ win speech - ec_word THAT_WAS - ec_word HIGH - ec_word LEVEL - ec_word AND - ec_word EXCITING - ec_word TOO -@ loss speech - ec_word YOU_RE - ec_word TOO - ec_word HIGH - ec_word IN - ec_word LEVEL - ec_word ELLIPSIS + .2byte EC_WORD_THIS + .2byte EC_WORD_IS + .2byte EC_WORD_A + .2byte EC_WORD_HIGH + .2byte EC_WORD_LEVEL + .2byte EC_WORD_BATTLE +@ win speech + .2byte EC_WORD_THAT_WAS + .2byte EC_WORD_HIGH + .2byte EC_WORD_LEVEL + .2byte EC_WORD_AND + .2byte EC_WORD_EXCITING + .2byte EC_WORD_TOO +@ loss speech + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_TOO + .2byte EC_WORD_HIGH + .2byte EC_WORD_IN + .2byte EC_WORD_LEVEL + .2byte EC_WORD_ELLIPSIS .4byte gBattleFrontierTrainerMons_Brooks @ 262 .4byte TRAINER_CLASS_GENTLEMAN .string "GREGORY$", 8 @ pre-battle speech - ec_word I_AM - ec_word NOT - ec_word THAT - ec_word OLD - ec_word YET - .2byte -1 -@ win speech - ec_word WHO - ec_word SAYS - ec_word I_AM - ec_word TOO - ec_word OLD - ec_word QUES -@ loss speech - ec_word PLEASE - ec_word I_AM - ec_word REALLY - ec_word NOT - ec_word THAT - ec_word OLD + .2byte EC_WORD_I_AM + .2byte EC_WORD_NOT + .2byte EC_WORD_THAT + .2byte EC_WORD_OLD + .2byte EC_WORD_YET + .2byte -1 +@ win speech + .2byte EC_WORD_WHO + .2byte EC_WORD_SAYS + .2byte EC_WORD_I_AM + .2byte EC_WORD_TOO + .2byte EC_WORD_OLD + .2byte EC_WORD_QUES +@ loss speech + .2byte EC_WORD_PLEASE + .2byte EC_WORD_I_AM + .2byte EC_WORD_REALLY + .2byte EC_WORD_NOT + .2byte EC_WORD_THAT + .2byte EC_WORD_OLD .4byte gBattleFrontierTrainerMons_Gregory @ 263 .4byte TRAINER_CLASS_GENTLEMAN .string "REESE$", 8 @ pre-battle speech - ec_word I_VE - ec_word A - ec_word COUPLE - ec_word THINGS + .2byte EC_WORD_I_VE + .2byte EC_WORD_A + .2byte EC_WORD_COUPLE + .2byte EC_WORD_THINGS .2byte -1 .2byte -1 @ win speech - ec_word DON_T - ec_word DIET - ec_word PLAY - ec_word SPORTS - ec_word INSTEAD + .2byte EC_WORD_DON_T + .2byte EC_WORD_DIET + .2byte EC_WORD_PLAY + .2byte EC_WORD_SPORTS + .2byte EC_WORD_INSTEAD .2byte -1 @ loss speech - ec_word INSTEAD - ec_word OF - ec_word TELEVISION - ec_word GET - ec_word A - ec_word BOOK + .2byte EC_WORD_INSTEAD + .2byte EC_WORD_OF + .2byte EC_WORD_TELEVISION + .2byte EC_WORD_GET + .2byte EC_WORD_A + .2byte EC_WORD_BOOK .4byte gBattleFrontierTrainerMons_Reese @ 264 .4byte TRAINER_CLASS_TRIATHLETE_3 .string "MASON$", 8 @ pre-battle speech - ec_word PLEASE - ec_word DON_T - ec_word MAKE - ec_word THIS - ec_word SCARY + .2byte EC_WORD_PLEASE + .2byte EC_WORD_DON_T + .2byte EC_WORD_MAKE + .2byte EC_WORD_THIS + .2byte EC_WORD_SCARY .2byte -1 @ win speech - ec_word THANK_YOU - ec_word ELLIPSIS + .2byte EC_WORD_THANK_YOU + .2byte EC_WORD_ELLIPSIS .2byte -1 - ec_word I_AM - ec_word HAPPY - ec_word NOW + .2byte EC_WORD_I_AM + .2byte EC_WORD_HAPPY + .2byte EC_WORD_NOW @ loss speech - ec_word I_AM - ec_word DISAPPOINTED - ec_word ELLIPSIS + .2byte EC_WORD_I_AM + .2byte EC_WORD_DISAPPOINTED + .2byte EC_WORD_ELLIPSIS .2byte -1 .2byte -1 .2byte -1 @@ -6894,75 +6894,75 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_TRIATHLETE_3 .string "TOBY$", 8 @ pre-battle speech - ec_word LISTEN - ec_word UP - .2byte -1 - ec_word I - ec_word ALWAYS - ec_word WIN -@ win speech - ec_word I_AM - ec_word A - ec_word GENIUS - ec_word OR - ec_word WHAT - ec_word QUES -@ loss speech - ec_word I - ec_word CAN - ec_word BEAT - ec_word YOU - ec_word AT - ec_word SMARTNESS + .2byte EC_WORD_LISTEN + .2byte EC_WORD_UP + .2byte -1 + .2byte EC_WORD_I + .2byte EC_WORD_ALWAYS + .2byte EC_WORD_WIN +@ win speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_A + .2byte EC_WORD_GENIUS + .2byte EC_WORD_OR + .2byte EC_WORD_WHAT + .2byte EC_WORD_QUES +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_CAN + .2byte EC_WORD_BEAT + .2byte EC_WORD_YOU + .2byte EC_WORD_AT + .2byte EC_WORD_SMARTNESS .4byte gBattleFrontierTrainerMons_Toby @ 266 .4byte TRAINER_CLASS_TRIATHLETE_4 .string "DOROTHY$", 8 @ pre-battle speech - ec_word THE - ec_word SPORTS - ec_word WORLD - ec_word SHOULD - ec_word ACCEPT - ec_word POKEMON -@ win speech - ec_word THANK_YOU - ec_word EXCL - ec_word THAT - ec_word WIN - ec_word WAS - ec_word REFRESHING -@ loss speech - ec_word THANK_YOU - ec_word EXCL - ec_word THAT - ec_word LOSS - ec_word WAS - ec_word REFRESHING + .2byte EC_WORD_THE + .2byte EC_WORD_SPORTS + .2byte EC_WORD_WORLD + .2byte EC_WORD_SHOULD + .2byte EC_WORD_ACCEPT + .2byte EC_WORD_POKEMON +@ win speech + .2byte EC_WORD_THANK_YOU + .2byte EC_WORD_EXCL + .2byte EC_WORD_THAT + .2byte EC_WORD_WIN + .2byte EC_WORD_WAS + .2byte EC_WORD_REFRESHING +@ loss speech + .2byte EC_WORD_THANK_YOU + .2byte EC_WORD_EXCL + .2byte EC_WORD_THAT + .2byte EC_WORD_LOSS + .2byte EC_WORD_WAS + .2byte EC_WORD_REFRESHING .4byte gBattleFrontierTrainerMons_Dorothy @ 267 .4byte TRAINER_CLASS_TRIATHLETE_4 .string "PIPER$", 8 @ pre-battle speech - ec_word COME_ON - ec_word YOU - ec_word NEED - ec_word A - ec_word SPEED_BOOST - ec_word QUES + .2byte EC_WORD_COME_ON + .2byte EC_WORD_YOU + .2byte EC_WORD_NEED + .2byte EC_WORD_A + .2byte EC_WORD_SPEED_BOOST + .2byte EC_WORD_QUES @ win speech - ec_word YOU - ec_word NEED - ec_word TO - ec_word SHOW - ec_word MORE - ec_word GUTS + .2byte EC_WORD_YOU + .2byte EC_WORD_NEED + .2byte EC_WORD_TO + .2byte EC_WORD_SHOW + .2byte EC_WORD_MORE + .2byte EC_WORD_GUTS @ loss speech - ec_word OH - ec_word YOU - ec_word EXCL + .2byte EC_WORD_OH + .2byte EC_WORD_YOU + .2byte EC_WORD_EXCL .2byte -1 .2byte -1 .2byte -1 @@ -6972,51 +6972,51 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_TRIATHLETE_5 .string "FINN$", 8 @ pre-battle speech - ec_word NOT - ec_word ANOTHER - ec_word TRAINER - ec_word BATTLE - ec_word ELLIPSIS + .2byte EC_WORD_NOT + .2byte EC_WORD_ANOTHER + .2byte EC_WORD_TRAINER + .2byte EC_WORD_BATTLE + .2byte EC_WORD_ELLIPSIS .2byte -1 @ win speech - ec_word WON_T - ec_word THIS - ec_word EVER - ec_word END - ec_word QUES + .2byte EC_WORD_WON_T + .2byte EC_WORD_THIS + .2byte EC_WORD_EVER + .2byte EC_WORD_END + .2byte EC_WORD_QUES .2byte -1 @ loss speech - ec_word I - ec_word FINALLY - ec_word GET - ec_word TO - ec_move2 REST - ec_word A_LITTLE + .2byte EC_WORD_I + .2byte EC_WORD_FINALLY + .2byte EC_WORD_GET + .2byte EC_WORD_TO + .2byte EC_MOVE2(REST) + .2byte EC_WORD_A_LITTLE .4byte gBattleFrontierTrainerMons_Finn @ 269 .4byte TRAINER_CLASS_TRIATHLETE_5 .string "SAMIR$", 8 @ pre-battle speech - ec_word I - ec_move2 DIVE - ec_word BELOW - ec_word THE - ec_move2 SURF - ec_word EXCL -@ win speech - ec_word YAHOO - ec_word TAKE - ec_word A - ec_move2 DIVE - ec_word YOU - ec_word EXCL -@ loss speech - ec_word I_AM - ec_word GOING - ec_word TO - ec_word SINK - ec_word ELLIPSIS + .2byte EC_WORD_I + .2byte EC_MOVE2(DIVE) + .2byte EC_WORD_BELOW + .2byte EC_WORD_THE + .2byte EC_MOVE2(SURF) + .2byte EC_WORD_EXCL +@ win speech + .2byte EC_WORD_YAHOO + .2byte EC_WORD_TAKE + .2byte EC_WORD_A + .2byte EC_MOVE2(DIVE) + .2byte EC_WORD_YOU + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_GOING + .2byte EC_WORD_TO + .2byte EC_WORD_SINK + .2byte EC_WORD_ELLIPSIS .2byte -1 .4byte gBattleFrontierTrainerMons_Samir @@ -7024,700 +7024,700 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_TRIATHLETE_6 .string "FIONA$", 8 @ pre-battle speech - ec_word DID - ec_word YOU - ec_word LIMBER - ec_word UP - ec_word BEFORE - ec_word QUES -@ win speech - ec_word YOU - ec_word NEED - ec_word TO - ec_word BE - ec_word MORE - ec_word READY -@ loss speech - ec_word BEING - ec_word LIMBER - ec_word DIDN_T - ec_word WORK - ec_word FOR - ec_word ME + .2byte EC_WORD_DID + .2byte EC_WORD_YOU + .2byte EC_WORD_LIMBER + .2byte EC_WORD_UP + .2byte EC_WORD_BEFORE + .2byte EC_WORD_QUES +@ win speech + .2byte EC_WORD_YOU + .2byte EC_WORD_NEED + .2byte EC_WORD_TO + .2byte EC_WORD_BE + .2byte EC_WORD_MORE + .2byte EC_WORD_READY +@ loss speech + .2byte EC_WORD_BEING + .2byte EC_WORD_LIMBER + .2byte EC_WORD_DIDN_T + .2byte EC_WORD_WORK + .2byte EC_WORD_FOR + .2byte EC_WORD_ME .4byte gBattleFrontierTrainerMons_Fiona @ 271 .4byte TRAINER_CLASS_TRIATHLETE_6 .string "GLORIA$", 8 @ pre-battle speech - ec_word I - ec_word LIKE - ec_word TO - ec_word ATTACK - ec_word WITH - ec_word SUCTION_CUPS -@ win speech - ec_word GIGGLE - ec_word ELLIPSIS - ec_word IT_S - ec_word OVER - ec_word FOR - ec_word YOU -@ loss speech - ec_word I - ec_word DON_T - ec_word GET - ec_word HOW - ec_word SUCTION_CUPS - ec_word WORK + .2byte EC_WORD_I + .2byte EC_WORD_LIKE + .2byte EC_WORD_TO + .2byte EC_WORD_ATTACK + .2byte EC_WORD_WITH + .2byte EC_WORD_SUCTION_CUPS +@ win speech + .2byte EC_WORD_GIGGLE + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_IT_S + .2byte EC_WORD_OVER + .2byte EC_WORD_FOR + .2byte EC_WORD_YOU +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_DON_T + .2byte EC_WORD_GET + .2byte EC_WORD_HOW + .2byte EC_WORD_SUCTION_CUPS + .2byte EC_WORD_WORK .4byte gBattleFrontierTrainerMons_Gloria @ 272 .4byte TRAINER_CLASS_TRIATHLETE_1 .string "NICO$", 8 @ pre-battle speech - ec_word LIKE - ec_word A - ec_move1 SONIC_BOOM - ec_word I_VE_ARRIVED + .2byte EC_WORD_LIKE + .2byte EC_WORD_A + .2byte EC_MOVE(SONIC_BOOM) + .2byte EC_WORD_I_VE_ARRIVED .2byte -1 .2byte -1 @ win speech - ec_word SORRY - ec_word TO - ec_word MAKE - ec_word YOU - ec_word SO - ec_word DOWNCAST + .2byte EC_WORD_SORRY + .2byte EC_WORD_TO + .2byte EC_WORD_MAKE + .2byte EC_WORD_YOU + .2byte EC_WORD_SO + .2byte EC_WORD_DOWNCAST @ loss speech - ec_word I_AM - ec_word GOING - ec_word WITH - ec_word A - ec_move2 SUPERSONIC - ec_word SPEED_BOOST + .2byte EC_WORD_I_AM + .2byte EC_WORD_GOING + .2byte EC_WORD_WITH + .2byte EC_WORD_A + .2byte EC_MOVE2(SUPERSONIC) + .2byte EC_WORD_SPEED_BOOST .4byte gBattleFrontierTrainerMons_Nico @ 273 .4byte TRAINER_CLASS_TRIATHLETE_1 .string "JEREMY$", 8 @ pre-battle speech - ec_word A - ec_word POKEMON - ec_word MASTER - ec_word THAT_S - ec_word MY - ec_word DREAM -@ win speech - ec_word MY - ec_word DREAM - ec_word ISN_T - ec_word FAR - ec_word OFF - ec_word EXCL -@ loss speech - ec_word WHAT - ec_word I - ec_word DREAM - ec_word ISN_T - ec_word HAPPENING - ec_word ELLIPSIS + .2byte EC_WORD_A + .2byte EC_WORD_POKEMON + .2byte EC_WORD_MASTER + .2byte EC_WORD_THAT_S + .2byte EC_WORD_MY + .2byte EC_WORD_DREAM +@ win speech + .2byte EC_WORD_MY + .2byte EC_WORD_DREAM + .2byte EC_WORD_ISN_T + .2byte EC_WORD_FAR + .2byte EC_WORD_OFF + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_WHAT + .2byte EC_WORD_I + .2byte EC_WORD_DREAM + .2byte EC_WORD_ISN_T + .2byte EC_WORD_HAPPENING + .2byte EC_WORD_ELLIPSIS .4byte gBattleFrontierTrainerMons_Jeremy @ 274 .4byte TRAINER_CLASS_TRIATHLETE_2 .string "CAITLIN$", 8 @ pre-battle speech - ec_word DON_T - ec_word YOU - ec_word THINK - ec_word I_AM - ec_word CUTE - ec_word QUES -@ win speech - ec_word THERE - ec_word IS - ec_word MORE - ec_word TO_ME - ec_word THAN - ec_word CUTENESS -@ loss speech - ec_word MY - ec_word CUTE_CHARM - ec_word DOESN_T - ec_move2 ATTRACT - ec_word YOU - ec_word QUES + .2byte EC_WORD_DON_T + .2byte EC_WORD_YOU + .2byte EC_WORD_THINK + .2byte EC_WORD_I_AM + .2byte EC_WORD_CUTE + .2byte EC_WORD_QUES +@ win speech + .2byte EC_WORD_THERE + .2byte EC_WORD_IS + .2byte EC_WORD_MORE + .2byte EC_WORD_TO_ME + .2byte EC_WORD_THAN + .2byte EC_WORD_CUTENESS +@ loss speech + .2byte EC_WORD_MY + .2byte EC_WORD_CUTE_CHARM + .2byte EC_WORD_DOESN_T + .2byte EC_MOVE2(ATTRACT) + .2byte EC_WORD_YOU + .2byte EC_WORD_QUES .4byte gBattleFrontierTrainerMons_Caitlin @ 275 .4byte TRAINER_CLASS_TRIATHLETE_2 .string "REENA$", 8 @ pre-battle speech - ec_word I_AM - ec_word ALWAYS - ec_word HAPPY - ec_word HAPPY - ec_word HAPPY - ec_word EXCL -@ win speech - ec_word OH - ec_word YAY - ec_word EXCL - ec_word YAHOO - ec_word FOR - ec_word ME -@ loss speech - ec_word YAHOO - ec_word EXCL - ec_word I_AM - ec_word HAPPY - ec_word FOR - ec_word YOU + .2byte EC_WORD_I_AM + .2byte EC_WORD_ALWAYS + .2byte EC_WORD_HAPPY + .2byte EC_WORD_HAPPY + .2byte EC_WORD_HAPPY + .2byte EC_WORD_EXCL +@ win speech + .2byte EC_WORD_OH + .2byte EC_WORD_YAY + .2byte EC_WORD_EXCL + .2byte EC_WORD_YAHOO + .2byte EC_WORD_FOR + .2byte EC_WORD_ME +@ loss speech + .2byte EC_WORD_YAHOO + .2byte EC_WORD_EXCL + .2byte EC_WORD_I_AM + .2byte EC_WORD_HAPPY + .2byte EC_WORD_FOR + .2byte EC_WORD_YOU .4byte gBattleFrontierTrainerMons_Reena @ 276 .4byte TRAINER_CLASS_BUG_MANIAC .string "AVERY$", 8 @ pre-battle speech - ec_word I_VE - ec_word GOT - ec_word A_LOT - ec_word OF - ec_word BUG - ec_word POKEMON -@ win speech - ec_word MY - ec_word BUG - ec_word POKEMON - ec_word ARE - ec_word ALL - ec_word UNBELIEVABLE -@ loss speech - ec_word MY - ec_word BUG - ec_word POKEMON - ec_word ARE - ec_word ALL - ec_word UPSIDE_DOWN + .2byte EC_WORD_I_VE + .2byte EC_WORD_GOT + .2byte EC_WORD_A_LOT + .2byte EC_WORD_OF + .2byte EC_WORD_BUG + .2byte EC_WORD_POKEMON +@ win speech + .2byte EC_WORD_MY + .2byte EC_WORD_BUG + .2byte EC_WORD_POKEMON + .2byte EC_WORD_ARE + .2byte EC_WORD_ALL + .2byte EC_WORD_UNBELIEVABLE +@ loss speech + .2byte EC_WORD_MY + .2byte EC_WORD_BUG + .2byte EC_WORD_POKEMON + .2byte EC_WORD_ARE + .2byte EC_WORD_ALL + .2byte EC_WORD_UPSIDE_DOWN .4byte gBattleFrontierTrainerMons_Avery @ 277 .4byte TRAINER_CLASS_BUG_MANIAC .string "LIAM$", 8 @ pre-battle speech - ec_word WE - ec_word REALLY - ec_word DISLIKE - ec_word FIRE - ec_word AND - ec_word FLYING -@ win speech - ec_word BUG - ec_word POKEMON - ec_word AREN_T - ec_word BAD - ec_word HEY_QUES - .2byte -1 -@ loss speech - ec_word YOU - ec_word KNOW - ec_word WHAT - ec_word WE - ec_word DISLIKE - ec_word HEY_QUES + .2byte EC_WORD_WE + .2byte EC_WORD_REALLY + .2byte EC_WORD_DISLIKE + .2byte EC_WORD_FIRE + .2byte EC_WORD_AND + .2byte EC_WORD_FLYING +@ win speech + .2byte EC_WORD_BUG + .2byte EC_WORD_POKEMON + .2byte EC_WORD_AREN_T + .2byte EC_WORD_BAD + .2byte EC_WORD_HEY_QUES + .2byte -1 +@ loss speech + .2byte EC_WORD_YOU + .2byte EC_WORD_KNOW + .2byte EC_WORD_WHAT + .2byte EC_WORD_WE + .2byte EC_WORD_DISLIKE + .2byte EC_WORD_HEY_QUES .4byte gBattleFrontierTrainerMons_Liam @ 278 .4byte TRAINER_CLASS_FISHERMAN .string "THEO$", 8 @ pre-battle speech - ec_word FISHING - ec_word IS - ec_word MY - ec_word CHOICE - ec_word IN - ec_word LIFE -@ win speech - ec_word WATER - ec_word POKEMON - ec_move2 ATTRACT - ec_word ME - ec_word WITHOUT - ec_word END -@ loss speech - ec_word DON_T - ec_word COUNT_ON - ec_word THAT - ec_word HAPPENING - ec_word ANOTHER - ec_word TIME + .2byte EC_WORD_FISHING + .2byte EC_WORD_IS + .2byte EC_WORD_MY + .2byte EC_WORD_CHOICE + .2byte EC_WORD_IN + .2byte EC_WORD_LIFE +@ win speech + .2byte EC_WORD_WATER + .2byte EC_WORD_POKEMON + .2byte EC_MOVE2(ATTRACT) + .2byte EC_WORD_ME + .2byte EC_WORD_WITHOUT + .2byte EC_WORD_END +@ loss speech + .2byte EC_WORD_DON_T + .2byte EC_WORD_COUNT_ON + .2byte EC_WORD_THAT + .2byte EC_WORD_HAPPENING + .2byte EC_WORD_ANOTHER + .2byte EC_WORD_TIME .4byte gBattleFrontierTrainerMons_Theo @ 279 .4byte TRAINER_CLASS_FISHERMAN .string "BAILEY$", 8 @ pre-battle speech - ec_word I_AM - ec_word AN - ec_word ADULT - ec_word I - ec_word BATTLE - ec_word EASY -@ win speech - ec_word I_AM - ec_word AN - ec_word ADULT - ec_word I - ec_move2 SWALLOW - ec_word JOY -@ loss speech - ec_word I_AM - ec_word AN - ec_word ADULT - ec_word I - ec_move2 SWALLOW - ec_move2 FRUSTRATION + .2byte EC_WORD_I_AM + .2byte EC_WORD_AN + .2byte EC_WORD_ADULT + .2byte EC_WORD_I + .2byte EC_WORD_BATTLE + .2byte EC_WORD_EASY +@ win speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_AN + .2byte EC_WORD_ADULT + .2byte EC_WORD_I + .2byte EC_MOVE2(SWALLOW) + .2byte EC_WORD_JOY +@ loss speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_AN + .2byte EC_WORD_ADULT + .2byte EC_WORD_I + .2byte EC_MOVE2(SWALLOW) + .2byte EC_MOVE2(FRUSTRATION) .4byte gBattleFrontierTrainerMons_Bailey @ 280 .4byte TRAINER_CLASS_RUIN_MANIAC .string "HUGO$", 8 @ pre-battle speech - ec_word I - ec_word TRY - ec_word THE - ec_word BEST - ec_word I - ec_word CAN -@ win speech - ec_word I - ec_word CAN_WIN - ec_word IF - ec_word I - ec_word TRY - ec_word ENOUGH -@ loss speech - ec_word I - ec_word DID - ec_word TRY - ec_word DIDN_T - ec_word I - ec_word QUES + .2byte EC_WORD_I + .2byte EC_WORD_TRY + .2byte EC_WORD_THE + .2byte EC_WORD_BEST + .2byte EC_WORD_I + .2byte EC_WORD_CAN +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_CAN_WIN + .2byte EC_WORD_IF + .2byte EC_WORD_I + .2byte EC_WORD_TRY + .2byte EC_WORD_ENOUGH +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_DID + .2byte EC_WORD_TRY + .2byte EC_WORD_DIDN_T + .2byte EC_WORD_I + .2byte EC_WORD_QUES .4byte gBattleFrontierTrainerMons_Hugo @ 281 .4byte TRAINER_CLASS_RUIN_MANIAC .string "BRYCE$", 8 @ pre-battle speech - ec_word I_WAS - ec_word ON - ec_word VACATION - ec_word UNTIL - ec_word ONLY - ec_word YESTERDAY -@ win speech - ec_word I - ec_word HAVEN_T - ec_word LOST - ec_word MY - ec_word SKILL - ec_word YET -@ loss speech - ec_word THAT_S - ec_word IT - ec_word ELLIPSIS - ec_word I - ec_word NEED - ec_word SLEEP + .2byte EC_WORD_I_WAS + .2byte EC_WORD_ON + .2byte EC_WORD_VACATION + .2byte EC_WORD_UNTIL + .2byte EC_WORD_ONLY + .2byte EC_WORD_YESTERDAY +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_HAVEN_T + .2byte EC_WORD_LOST + .2byte EC_WORD_MY + .2byte EC_WORD_SKILL + .2byte EC_WORD_YET +@ loss speech + .2byte EC_WORD_THAT_S + .2byte EC_WORD_IT + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_I + .2byte EC_WORD_NEED + .2byte EC_WORD_SLEEP .4byte gBattleFrontierTrainerMons_Bryce @ 282 .4byte TRAINER_CLASS_COLLECTOR .string "GIDEON$", 8 @ pre-battle speech - ec_word WHAT_S_UP_QUES - ec_word YOU - ec_word THINK - ec_word I_AM - ec_word SCARY - ec_word QUES -@ win speech - ec_word I_AM - ec_word COOL - ec_word BUT - ec_word NOT - ec_word SCARY - ec_word EXCL -@ loss speech - ec_word LOOK - ec_word AT - ec_word MY - ec_word FABULOUS - ec_word FASHION - ec_word SENSE + .2byte EC_WORD_WHAT_S_UP_QUES + .2byte EC_WORD_YOU + .2byte EC_WORD_THINK + .2byte EC_WORD_I_AM + .2byte EC_WORD_SCARY + .2byte EC_WORD_QUES +@ win speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_COOL + .2byte EC_WORD_BUT + .2byte EC_WORD_NOT + .2byte EC_WORD_SCARY + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_LOOK + .2byte EC_WORD_AT + .2byte EC_WORD_MY + .2byte EC_WORD_FABULOUS + .2byte EC_WORD_FASHION + .2byte EC_WORD_SENSE .4byte gBattleFrontierTrainerMons_Gideon @ 283 .4byte TRAINER_CLASS_COLLECTOR .string "TRISTON$", 8 @ pre-battle speech - ec_word I - ec_word WOULD - ec_word RATHER - ec_word LOOK - ec_word AT - ec_word POKEMON -@ win speech - ec_word HUH_QUES - ec_word YOU - ec_word MEAN - ec_word I - ec_word WON - ec_word QUES_EXCL -@ loss speech - ec_word SEE - ec_word QUES - .2byte -1 - ec_word I - ec_word ALWAYS - ec_word LOSE + .2byte EC_WORD_I + .2byte EC_WORD_WOULD + .2byte EC_WORD_RATHER + .2byte EC_WORD_LOOK + .2byte EC_WORD_AT + .2byte EC_WORD_POKEMON +@ win speech + .2byte EC_WORD_HUH_QUES + .2byte EC_WORD_YOU + .2byte EC_WORD_MEAN + .2byte EC_WORD_I + .2byte EC_WORD_WON + .2byte EC_WORD_QUES_EXCL +@ loss speech + .2byte EC_WORD_SEE + .2byte EC_WORD_QUES + .2byte -1 + .2byte EC_WORD_I + .2byte EC_WORD_ALWAYS + .2byte EC_WORD_LOSE .4byte gBattleFrontierTrainerMons_Triston @ 284 .4byte TRAINER_CLASS_GUITARIST .string "CHARLES$", 8 @ pre-battle speech - ec_word IT_S - ec_word HOPELESS - ec_word TO - ec_move2 STRUGGLE - ec_word WITH - ec_word ME -@ win speech - ec_move1 SUBMISSION - ec_word WAS - ec_word YOUR - ec_word ONLY - ec_word CHOICE - .2byte -1 -@ loss speech - ec_word I_AM - ec_word GOING - ec_word DOWN - ec_word DOWN - ec_word DOWN - ec_word EXCL + .2byte EC_WORD_IT_S + .2byte EC_WORD_HOPELESS + .2byte EC_WORD_TO + .2byte EC_MOVE2(STRUGGLE) + .2byte EC_WORD_WITH + .2byte EC_WORD_ME +@ win speech + .2byte EC_MOVE(SUBMISSION) + .2byte EC_WORD_WAS + .2byte EC_WORD_YOUR + .2byte EC_WORD_ONLY + .2byte EC_WORD_CHOICE + .2byte -1 +@ loss speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_GOING + .2byte EC_WORD_DOWN + .2byte EC_WORD_DOWN + .2byte EC_WORD_DOWN + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Charles @ 285 .4byte TRAINER_CLASS_GUITARIST .string "RAYMOND$", 8 @ pre-battle speech - ec_word WANT - ec_word TO - ec_word HEAR - ec_word MY - ec_word SONG - ec_word QUES -@ win speech - ec_word SATISFIED - ec_word THAT_S - ec_word WHAT - ec_word I_AM - ec_word EXCL - .2byte -1 -@ loss speech - ec_word SATISFIED - ec_word IS - ec_word WHAT - ec_word I - ec_word CAN_T - ec_word BE + .2byte EC_WORD_WANT + .2byte EC_WORD_TO + .2byte EC_WORD_HEAR + .2byte EC_WORD_MY + .2byte EC_WORD_SONG + .2byte EC_WORD_QUES +@ win speech + .2byte EC_WORD_SATISFIED + .2byte EC_WORD_THAT_S + .2byte EC_WORD_WHAT + .2byte EC_WORD_I_AM + .2byte EC_WORD_EXCL + .2byte -1 +@ loss speech + .2byte EC_WORD_SATISFIED + .2byte EC_WORD_IS + .2byte EC_WORD_WHAT + .2byte EC_WORD_I + .2byte EC_WORD_CAN_T + .2byte EC_WORD_BE .4byte gBattleFrontierTrainerMons_Raymond @ 286 .4byte TRAINER_CLASS_BIRD_KEEPER .string "DIRK$", 8 @ pre-battle speech - ec_word FLYING - ec_word POKEMON - ec_word ARE - ec_word ABOVE - ec_word THE - ec_move2 REST -@ win speech - ec_word YOU - ec_word CAN_T_WIN - ec_word EXCL - ec_word FLYING - ec_word POKEMON - ec_word RULE -@ loss speech - ec_word AREN_T - ec_word THERE - ec_word MORE - ec_word FLYING - ec_word POKEMON - ec_word QUES + .2byte EC_WORD_FLYING + .2byte EC_WORD_POKEMON + .2byte EC_WORD_ARE + .2byte EC_WORD_ABOVE + .2byte EC_WORD_THE + .2byte EC_MOVE2(REST) +@ win speech + .2byte EC_WORD_YOU + .2byte EC_WORD_CAN_T_WIN + .2byte EC_WORD_EXCL + .2byte EC_WORD_FLYING + .2byte EC_WORD_POKEMON + .2byte EC_WORD_RULE +@ loss speech + .2byte EC_WORD_AREN_T + .2byte EC_WORD_THERE + .2byte EC_WORD_MORE + .2byte EC_WORD_FLYING + .2byte EC_WORD_POKEMON + .2byte EC_WORD_QUES .4byte gBattleFrontierTrainerMons_Dirk @ 287 .4byte TRAINER_CLASS_BIRD_KEEPER .string "HAROLD$", 8 @ pre-battle speech - ec_word MY - ec_word POKEMON - ec_word APPEAL - ec_word TO - ec_word YOU - ec_word QUES -@ win speech - ec_word YOU - ec_word DO - ec_word LIKE - ec_word MY - ec_word POKEMON - ec_word QUES -@ loss speech - ec_word SO - ec_word YOU - ec_word DISLIKE - ec_word MY - ec_word POKEMON - ec_word QUES + .2byte EC_WORD_MY + .2byte EC_WORD_POKEMON + .2byte EC_WORD_APPEAL + .2byte EC_WORD_TO + .2byte EC_WORD_YOU + .2byte EC_WORD_QUES +@ win speech + .2byte EC_WORD_YOU + .2byte EC_WORD_DO + .2byte EC_WORD_LIKE + .2byte EC_WORD_MY + .2byte EC_WORD_POKEMON + .2byte EC_WORD_QUES +@ loss speech + .2byte EC_WORD_SO + .2byte EC_WORD_YOU + .2byte EC_WORD_DISLIKE + .2byte EC_WORD_MY + .2byte EC_WORD_POKEMON + .2byte EC_WORD_QUES .4byte gBattleFrontierTrainerMons_Harold @ 288 .4byte TRAINER_CLASS_SAILOR .string "OMAR$", 8 @ pre-battle speech - ec_word LET_ME_WIN - ec_word IN - ec_move1 RETURN - ec_word FOR - ec_word A - ec_move2 PRESENT -@ win speech - ec_word HERE - ec_word YOU - ec_word ARE - ec_word SOME - ec_move2 TOXIC - ec_word SWEETS -@ loss speech - ec_word YOUR - ec_move2 PRESENT - ec_word QUES - ec_word WHAT - ec_word FOR - ec_word QUES_EXCL + .2byte EC_WORD_LET_ME_WIN + .2byte EC_WORD_IN + .2byte EC_MOVE(RETURN) + .2byte EC_WORD_FOR + .2byte EC_WORD_A + .2byte EC_MOVE2(PRESENT) +@ win speech + .2byte EC_WORD_HERE + .2byte EC_WORD_YOU + .2byte EC_WORD_ARE + .2byte EC_WORD_SOME + .2byte EC_MOVE2(TOXIC) + .2byte EC_WORD_SWEETS +@ loss speech + .2byte EC_WORD_YOUR + .2byte EC_MOVE2(PRESENT) + .2byte EC_WORD_QUES + .2byte EC_WORD_WHAT + .2byte EC_WORD_FOR + .2byte EC_WORD_QUES_EXCL .4byte gBattleFrontierTrainerMons_Omar @ 289 .4byte TRAINER_CLASS_SAILOR .string "PETER$", 8 @ pre-battle speech - ec_word I - ec_word BRAG - ec_word ABOUT - ec_word MY - ec_word HAPPINESS - ec_word OK_QUES -@ win speech - ec_word YOU - ec_word HAVE - ec_word TO - ec_word LISTEN - ec_word TO_ME - ec_word BRAG -@ loss speech - ec_word I_AM - ec_word DISAPPOINTED - ec_word YOU - ec_word WON_T - ec_word LISTEN - ec_word TO_ME + .2byte EC_WORD_I + .2byte EC_WORD_BRAG + .2byte EC_WORD_ABOUT + .2byte EC_WORD_MY + .2byte EC_WORD_HAPPINESS + .2byte EC_WORD_OK_QUES +@ win speech + .2byte EC_WORD_YOU + .2byte EC_WORD_HAVE + .2byte EC_WORD_TO + .2byte EC_WORD_LISTEN + .2byte EC_WORD_TO_ME + .2byte EC_WORD_BRAG +@ loss speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_DISAPPOINTED + .2byte EC_WORD_YOU + .2byte EC_WORD_WON_T + .2byte EC_WORD_LISTEN + .2byte EC_WORD_TO_ME .4byte gBattleFrontierTrainerMons_Peter @ 290 .4byte TRAINER_CLASS_HIKER .string "DEV$", 8 @ pre-battle speech - ec_word COME_ON - ec_word LET_S - ec_word GET - ec_word A - ec_word MOVE - ec_word ON -@ win speech - ec_word I - ec_word GET - ec_word TO - ec_word NAP - ec_word AFTER - ec_word THAT -@ loss speech - ec_word I - ec_word NEED - ec_word TO - ec_word NAP - ec_word AFTER - ec_word THAT + .2byte EC_WORD_COME_ON + .2byte EC_WORD_LET_S + .2byte EC_WORD_GET + .2byte EC_WORD_A + .2byte EC_WORD_MOVE + .2byte EC_WORD_ON +@ win speech + .2byte EC_WORD_I + .2byte EC_WORD_GET + .2byte EC_WORD_TO + .2byte EC_WORD_NAP + .2byte EC_WORD_AFTER + .2byte EC_WORD_THAT +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_NEED + .2byte EC_WORD_TO + .2byte EC_WORD_NAP + .2byte EC_WORD_AFTER + .2byte EC_WORD_THAT .4byte gBattleFrontierTrainerMons_Dev @ 291 .4byte TRAINER_CLASS_HIKER .string "COREY$", 8 @ pre-battle speech - ec_word LET_S - ec_word TEACH - ec_word YOU - ec_word HOW - ec_word TOUGH - ec_word I_AM -@ win speech - ec_word LOOK - ec_word AT - ec_word ME - ec_word MAKE - ec_word A - ec_move1 BRICK_BREAK -@ loss speech - ec_word MY - ec_move2 FRUSTRATION - ec_word IS - ec_word CLOSE - ec_word TO - ec_move2 ERUPTION + .2byte EC_WORD_LET_S + .2byte EC_WORD_TEACH + .2byte EC_WORD_YOU + .2byte EC_WORD_HOW + .2byte EC_WORD_TOUGH + .2byte EC_WORD_I_AM +@ win speech + .2byte EC_WORD_LOOK + .2byte EC_WORD_AT + .2byte EC_WORD_ME + .2byte EC_WORD_MAKE + .2byte EC_WORD_A + .2byte EC_MOVE(BRICK_BREAK) +@ loss speech + .2byte EC_WORD_MY + .2byte EC_MOVE2(FRUSTRATION) + .2byte EC_WORD_IS + .2byte EC_WORD_CLOSE + .2byte EC_WORD_TO + .2byte EC_MOVE2(ERUPTION) .4byte gBattleFrontierTrainerMons_Corey @ 292 .4byte TRAINER_CLASS_KINDLER .string "ANDRE$", 8 @ pre-battle speech - ec_word NOW - ec_word THIS - ec_word IS - ec_word A - ec_word PERFECT - ec_word FLAME_BODY -@ win speech - ec_word LOOK - ec_word AT - ec_word MY - ec_word FIERY - ec_word DANCE - ec_word EXCL -@ loss speech - ec_word YOU - ec_word WANT - ec_word AN - ec_move2 EXPLOSION - ec_word HERE - ec_word QUES + .2byte EC_WORD_NOW + .2byte EC_WORD_THIS + .2byte EC_WORD_IS + .2byte EC_WORD_A + .2byte EC_WORD_PERFECT + .2byte EC_WORD_FLAME_BODY +@ win speech + .2byte EC_WORD_LOOK + .2byte EC_WORD_AT + .2byte EC_WORD_MY + .2byte EC_WORD_FIERY + .2byte EC_WORD_DANCE + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_YOU + .2byte EC_WORD_WANT + .2byte EC_WORD_AN + .2byte EC_MOVE2(EXPLOSION) + .2byte EC_WORD_HERE + .2byte EC_WORD_QUES .4byte gBattleFrontierTrainerMons_Andre @ 293 .4byte TRAINER_CLASS_KINDLER .string "FERRIS$", 8 @ pre-battle speech - ec_word I_AM - ec_word NO_1 - ec_word IN - ec_word THE - ec_word OLD - ec_word CLASS -@ win speech - ec_word NO_1 - ec_word THAT_S - ec_word WHAT - ec_word I_AM - ec_word EXCL - .2byte -1 -@ loss speech - ec_word I_AM - ec_word NOT - ec_word NO_1 - ec_word ANY - ec_word MORE - ec_word ELLIPSIS + .2byte EC_WORD_I_AM + .2byte EC_WORD_NO_1 + .2byte EC_WORD_IN + .2byte EC_WORD_THE + .2byte EC_WORD_OLD + .2byte EC_WORD_CLASS +@ win speech + .2byte EC_WORD_NO_1 + .2byte EC_WORD_THAT_S + .2byte EC_WORD_WHAT + .2byte EC_WORD_I_AM + .2byte EC_WORD_EXCL + .2byte -1 +@ loss speech + .2byte EC_WORD_I_AM + .2byte EC_WORD_NOT + .2byte EC_WORD_NO_1 + .2byte EC_WORD_ANY + .2byte EC_WORD_MORE + .2byte EC_WORD_ELLIPSIS .4byte gBattleFrontierTrainerMons_Ferris @ 294 .4byte TRAINER_CLASS_PARASOL_LADY .string "ALIVIA$", 8 @ pre-battle speech - ec_word I_AM - ec_word FEELING - ec_word GIDDY - ec_word SO - ec_word SHOULD - ec_word YOU -@ win speech - ec_word IT - ec_word WAS - ec_word ALL - ec_word TOGETHER - ec_word TOO - ec_word EASY -@ loss speech - ec_word I - ec_word WILL - ec_word GIDDY - ec_word UP - ec_word AND - ec_word AWAY + .2byte EC_WORD_I_AM + .2byte EC_WORD_FEELING + .2byte EC_WORD_GIDDY + .2byte EC_WORD_SO + .2byte EC_WORD_SHOULD + .2byte EC_WORD_YOU +@ win speech + .2byte EC_WORD_IT + .2byte EC_WORD_WAS + .2byte EC_WORD_ALL + .2byte EC_WORD_TOGETHER + .2byte EC_WORD_TOO + .2byte EC_WORD_EASY +@ loss speech + .2byte EC_WORD_I + .2byte EC_WORD_WILL + .2byte EC_WORD_GIDDY + .2byte EC_WORD_UP + .2byte EC_WORD_AND + .2byte EC_WORD_AWAY .4byte gBattleFrontierTrainerMons_Alivia @ 295 .4byte TRAINER_CLASS_PARASOL_LADY .string "PAIGE$", 8 @ pre-battle speech - ec_word LET_S - ec_word ENJOY - ec_word OUR - ec_word BATTLE - ec_word TOGETHER + .2byte EC_WORD_LET_S + .2byte EC_WORD_ENJOY + .2byte EC_WORD_OUR + .2byte EC_WORD_BATTLE + .2byte EC_WORD_TOGETHER .2byte -1 @ win speech - ec_word THAT_S_IT_EXCL + .2byte EC_WORD_THAT_S_IT_EXCL .2byte -1 .2byte -1 - ec_word THANK_YOU - ec_word VERY - ec_word MUCH + .2byte EC_WORD_THANK_YOU + .2byte EC_WORD_VERY + .2byte EC_WORD_MUCH @ loss speech - ec_word THAT_S_IT_EXCL + .2byte EC_WORD_THAT_S_IT_EXCL .2byte -1 .2byte -1 - ec_word DO - ec_word GO - ec_word ON + .2byte EC_WORD_DO + .2byte EC_WORD_GO + .2byte EC_WORD_ON .4byte gBattleFrontierTrainerMons_Paige @ 296 .4byte TRAINER_CLASS_BEAUTY .string "ANYA$", 8 @ pre-battle speech - ec_word I - ec_word DISLIKE - ec_word OH - ec_word SO - ec_word PRETTY - ec_word FASHION + .2byte EC_WORD_I + .2byte EC_WORD_DISLIKE + .2byte EC_WORD_OH + .2byte EC_WORD_SO + .2byte EC_WORD_PRETTY + .2byte EC_WORD_FASHION @ win speech - ec_word FASHION - ec_word SHOULD - ec_word MATCH - ec_word THE - ec_word PERSON + .2byte EC_WORD_FASHION + .2byte EC_WORD_SHOULD + .2byte EC_WORD_MATCH + .2byte EC_WORD_THE + .2byte EC_WORD_PERSON .2byte -1 @ loss speech - ec_word PRETTY - ec_word COULD - ec_word BE - ec_word GOOD + .2byte EC_WORD_PRETTY + .2byte EC_WORD_COULD + .2byte EC_WORD_BE + .2byte EC_WORD_GOOD .2byte -1 .2byte -1 .4byte gBattleFrontierTrainerMons_Anya @@ -7726,51 +7726,51 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_BEAUTY .string "DAWN$", 8 @ pre-battle speech - ec_word I - ec_word GO - ec_word ALL - ec_word OUT - ec_word EXCL + .2byte EC_WORD_I + .2byte EC_WORD_GO + .2byte EC_WORD_ALL + .2byte EC_WORD_OUT + .2byte EC_WORD_EXCL .2byte -1 @ win speech - ec_word DON_T - ec_word BE - ec_word A - ec_word BABY - ec_word EXCL + .2byte EC_WORD_DON_T + .2byte EC_WORD_BE + .2byte EC_WORD_A + .2byte EC_WORD_BABY + .2byte EC_WORD_EXCL .2byte -1 @ loss speech - ec_word YOU - ec_word WON - ec_word EXCL - ec_word MOVE - ec_word ON - ec_word EXCL + .2byte EC_WORD_YOU + .2byte EC_WORD_WON + .2byte EC_WORD_EXCL + .2byte EC_WORD_MOVE + .2byte EC_WORD_ON + .2byte EC_WORD_EXCL .4byte gBattleFrontierTrainerMons_Dawn @ 298 .4byte TRAINER_CLASS_AROMA_LADY .string "ABBY$", 8 @ pre-battle speech - ec_word I - ec_word LIKE - ec_word A - ec_word TRAINER - ec_word THAT_S - ec_word REFRESHING + .2byte EC_WORD_I + .2byte EC_WORD_LIKE + .2byte EC_WORD_A + .2byte EC_WORD_TRAINER + .2byte EC_WORD_THAT_S + .2byte EC_WORD_REFRESHING @ win speech - ec_word VICTORY - ec_word HAS - ec_word A - ec_move1 SWEET_SCENT - ec_word EXCL + .2byte EC_WORD_VICTORY + .2byte EC_WORD_HAS + .2byte EC_WORD_A + .2byte EC_MOVE(SWEET_SCENT) + .2byte EC_WORD_EXCL .2byte -1 @ loss speech - ec_word WHAT - ec_word AN - ec_word AWFUL - ec_word STENCH - ec_word EXCL + .2byte EC_WORD_WHAT + .2byte EC_WORD_AN + .2byte EC_WORD_AWFUL + .2byte EC_WORD_STENCH + .2byte EC_WORD_EXCL .2byte -1 .4byte gBattleFrontierTrainerMons_Abby @@ -7778,24 +7778,24 @@ gBattleFrontierTrainers:: @ 85D5ACC .4byte TRAINER_CLASS_AROMA_LADY .string "GRETEL$", 8 @ pre-battle speech - ec_word I - ec_word CAUSE - ec_move1 OUTRAGE - ec_word AS - ec_word A - ec_word TRAINER -@ win speech - ec_word IT_S - ec_word ONLY - ec_word NATURAL - ec_word SEE_YA - ec_word BYE_BYE - ec_word EXCL -@ loss speech - ec_word IT_S - ec_word HARD - ec_word TO - ec_word BELIEVE - ec_word BUT - ec_word CONGRATS + .2byte EC_WORD_I + .2byte EC_WORD_CAUSE + .2byte EC_MOVE(OUTRAGE) + .2byte EC_WORD_AS + .2byte EC_WORD_A + .2byte EC_WORD_TRAINER +@ win speech + .2byte EC_WORD_IT_S + .2byte EC_WORD_ONLY + .2byte EC_WORD_NATURAL + .2byte EC_WORD_SEE_YA + .2byte EC_WORD_BYE_BYE + .2byte EC_WORD_EXCL +@ loss speech + .2byte EC_WORD_IT_S + .2byte EC_WORD_HARD + .2byte EC_WORD_TO + .2byte EC_WORD_BELIEVE + .2byte EC_WORD_BUT + .2byte EC_WORD_CONGRATS .4byte gBattleFrontierTrainerMons_Gretel diff --git a/data/battle_frontier/fallarbor_battle_tent_trainers.inc b/data/battle_frontier/fallarbor_battle_tent_trainers.inc index 049cca1ad..2574b7d86 100644 --- a/data/battle_frontier/fallarbor_battle_tent_trainers.inc +++ b/data/battle_frontier/fallarbor_battle_tent_trainers.inc @@ -4,103 +4,103 @@ gFallarborBattleTentTrainers:: @ 85DF084 .4byte TRAINER_CLASS_AROMA_LADY .string "AMBER$", 8 @ pre-battle speech - ec_word I - ec_word HAVE - ec_word TO - ec_word DIET - ec_word EVERY - ec_word DAY + .2byte EC_WORD_I + .2byte EC_WORD_HAVE + .2byte EC_WORD_TO + .2byte EC_WORD_DIET + .2byte EC_WORD_EVERY + .2byte EC_WORD_DAY @ win speech - ec_word A - ec_move1 NIGHTMARE - ec_word OF - ec_word SWEETS - ec_word SHOCKED - ec_word ME + .2byte EC_WORD_A + .2byte EC_MOVE(NIGHTMARE) + .2byte EC_WORD_OF + .2byte EC_WORD_SWEETS + .2byte EC_WORD_SHOCKED + .2byte EC_WORD_ME @ loss speech - ec_word IF - ec_word YOU - ec_word GIVE_UP - ec_word YOU - ec_word WILL - ec_word LOSE + .2byte EC_WORD_IF + .2byte EC_WORD_YOU + .2byte EC_WORD_GIVE_UP + .2byte EC_WORD_YOU + .2byte EC_WORD_WILL + .2byte EC_WORD_LOSE .4byte gFallarborBattleTentTrainerMons_Amber @ 1 .4byte TRAINER_CLASS_RUIN_MANIAC .string "JAVIER$", 8 @ pre-battle speech - ec_word I - ec_word NEVER - ec_word EVER - ec_word HAVE - ec_word ENOUGH - ec_word MONEY + .2byte EC_WORD_I + .2byte EC_WORD_NEVER + .2byte EC_WORD_EVER + .2byte EC_WORD_HAVE + .2byte EC_WORD_ENOUGH + .2byte EC_WORD_MONEY @ win speech - ec_word I - ec_word WON - ec_word BUT - ec_word I - ec_word NEED - ec_word MONEY + .2byte EC_WORD_I + .2byte EC_WORD_WON + .2byte EC_WORD_BUT + .2byte EC_WORD_I + .2byte EC_WORD_NEED + .2byte EC_WORD_MONEY @ loss speech - ec_word I - ec_word NEED - ec_word MONEY - ec_word FOR - ec_word A - ec_word BIKE + .2byte EC_WORD_I + .2byte EC_WORD_NEED + .2byte EC_WORD_MONEY + .2byte EC_WORD_FOR + .2byte EC_WORD_A + .2byte EC_WORD_BIKE .4byte gFallarborBattleTentTrainerMons_Javier @ 2 .4byte TRAINER_CLASS_TUBER_1 .string "NATALIE$", 8 @ pre-battle speech - ec_word THE - ec_word WAY - ec_word I - ec_word BATTLE - ec_word IS - ec_word WEIRD + .2byte EC_WORD_THE + .2byte EC_WORD_WAY + .2byte EC_WORD_I + .2byte EC_WORD_BATTLE + .2byte EC_WORD_IS + .2byte EC_WORD_WEIRD @ win speech - ec_word YOU_RE - ec_word MUCH - ec_word TOO_WEAK - ec_word FOR - ec_word THIS - ec_word PLACE + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_MUCH + .2byte EC_WORD_TOO_WEAK + .2byte EC_WORD_FOR + .2byte EC_WORD_THIS + .2byte EC_WORD_PLACE @ loss speech - ec_word GIVE_ME - ec_word AN - ec_word EASY - ec_word MATCH - ec_word NEXT - ec_word TIME + .2byte EC_WORD_GIVE_ME + .2byte EC_WORD_AN + .2byte EC_WORD_EASY + .2byte EC_WORD_MATCH + .2byte EC_WORD_NEXT + .2byte EC_WORD_TIME .4byte gFallarborBattleTentTrainerMons_Natalie @ 3 .4byte TRAINER_CLASS_TUBER_2 .string "TREVE$", 8 @ pre-battle speech - ec_word LOOK - ec_word AT - ec_word MY - ec_move2 METRONOME - ec_word AND - ec_word SLEEP + .2byte EC_WORD_LOOK + .2byte EC_WORD_AT + .2byte EC_WORD_MY + .2byte EC_MOVE2(METRONOME) + .2byte EC_WORD_AND + .2byte EC_WORD_SLEEP @ win speech - ec_word YEAH - ec_word EXCL - ec_move1 HYPNOSIS - ec_word IS - ec_word TOTALLY - ec_word GREAT + .2byte EC_WORD_YEAH + .2byte EC_WORD_EXCL + .2byte EC_MOVE(HYPNOSIS) + .2byte EC_WORD_IS + .2byte EC_WORD_TOTALLY + .2byte EC_WORD_GREAT @ loss speech - ec_word MY - ec_move1 HYPNOSIS - ec_word DIDN_T - ec_word WORK - ec_word ELLIPSIS + .2byte EC_WORD_MY + .2byte EC_MOVE(HYPNOSIS) + .2byte EC_WORD_DIDN_T + .2byte EC_WORD_WORK + .2byte EC_WORD_ELLIPSIS .2byte -1 .4byte gFallarborBattleTentTrainerMons_Treve @@ -108,77 +108,77 @@ gFallarborBattleTentTrainers:: @ 85DF084 .4byte TRAINER_CLASS_LADY .string "ARIANNA$", 8 @ pre-battle speech - ec_word IF_I_WIN - ec_word GIVE_ME - ec_word POKEMON - ec_word FOR - ec_word MY - ec_word COLLECTION + .2byte EC_WORD_IF_I_WIN + .2byte EC_WORD_GIVE_ME + .2byte EC_WORD_POKEMON + .2byte EC_WORD_FOR + .2byte EC_WORD_MY + .2byte EC_WORD_COLLECTION @ win speech - ec_word YOUR - ec_word POKEMON - ec_word ARE - ec_word TOO_WEAK - ec_word TO - ec_word COLLECT + .2byte EC_WORD_YOUR + .2byte EC_WORD_POKEMON + .2byte EC_WORD_ARE + .2byte EC_WORD_TOO_WEAK + .2byte EC_WORD_TO + .2byte EC_WORD_COLLECT @ loss speech - ec_word YOUR - ec_word POKEMON - ec_word ARE - ec_word SOMETHING - ec_word ELSE - ec_word ELLIPSIS + .2byte EC_WORD_YOUR + .2byte EC_WORD_POKEMON + .2byte EC_WORD_ARE + .2byte EC_WORD_SOMETHING + .2byte EC_WORD_ELSE + .2byte EC_WORD_ELLIPSIS .4byte gFallarborBattleTentTrainerMons_Arianna @ 5 .4byte TRAINER_CLASS_BEAUTY .string "JADYN$", 8 @ pre-battle speech - ec_word MY - ec_word NAME - ec_word IS - ec_word REALLY - ec_word A - ec_word MYSTERY + .2byte EC_WORD_MY + .2byte EC_WORD_NAME + .2byte EC_WORD_IS + .2byte EC_WORD_REALLY + .2byte EC_WORD_A + .2byte EC_WORD_MYSTERY @ win speech - ec_word MY - ec_word NAME - ec_word GOES - ec_word ON - ec_word A - ec_word MYSTERY + .2byte EC_WORD_MY + .2byte EC_WORD_NAME + .2byte EC_WORD_GOES + .2byte EC_WORD_ON + .2byte EC_WORD_A + .2byte EC_WORD_MYSTERY @ loss speech - ec_word MY - ec_word NAME - ec_word QUES - ec_word I_AM - ec_word YOUR - ec_word MOTHER + .2byte EC_WORD_MY + .2byte EC_WORD_NAME + .2byte EC_WORD_QUES + .2byte EC_WORD_I_AM + .2byte EC_WORD_YOUR + .2byte EC_WORD_MOTHER .4byte gFallarborBattleTentTrainerMons_Jadyn @ 6 .4byte TRAINER_CLASS_RICH_BOY .string "GERARDO$", 8 @ pre-battle speech - ec_word I_AM - ec_word THE - ec_word BEST - ec_word HERO - ec_word EVER - ec_word EXCL + .2byte EC_WORD_I_AM + .2byte EC_WORD_THE + .2byte EC_WORD_BEST + .2byte EC_WORD_HERO + .2byte EC_WORD_EVER + .2byte EC_WORD_EXCL @ win speech - ec_word SEE - ec_word WHAT - ec_word I - ec_word MEAN - ec_word QUES + .2byte EC_WORD_SEE + .2byte EC_WORD_WHAT + .2byte EC_WORD_I + .2byte EC_WORD_MEAN + .2byte EC_WORD_QUES .2byte -1 @ loss speech - ec_word HUH_QUES - ec_word YOU - ec_word WERE - ec_word RIGHT - ec_word QUES + .2byte EC_WORD_HUH_QUES + .2byte EC_WORD_YOU + .2byte EC_WORD_WERE + .2byte EC_WORD_RIGHT + .2byte EC_WORD_QUES .2byte -1 .4byte gFallarborBattleTentTrainerMons_Gerardo @@ -186,285 +186,285 @@ gFallarborBattleTentTrainers:: @ 85DF084 .4byte TRAINER_CLASS_POKEMANIAC .string "JONN$", 8 @ pre-battle speech - ec_word THE - ec_word WORLD - ec_move2 SUPERPOWER - ec_move2 STOMP - ec_word CONTEST - ec_word EXCL_EXCL + .2byte EC_WORD_THE + .2byte EC_WORD_WORLD + .2byte EC_MOVE2(SUPERPOWER) + .2byte EC_MOVE2(STOMP) + .2byte EC_WORD_CONTEST + .2byte EC_WORD_EXCL_EXCL @ win speech - ec_word I_AM - ec_word NO_1 - ec_word EXCL_EXCL - ec_word HEAR - ec_word ME - ec_move2 ROAR + .2byte EC_WORD_I_AM + .2byte EC_WORD_NO_1 + .2byte EC_WORD_EXCL_EXCL + .2byte EC_WORD_HEAR + .2byte EC_WORD_ME + .2byte EC_MOVE2(ROAR) @ loss speech - ec_word I - ec_word GIVE_UP - ec_word EXCL - ec_word YOU_RE - ec_word NO_1 - ec_word EXCL + .2byte EC_WORD_I + .2byte EC_WORD_GIVE_UP + .2byte EC_WORD_EXCL + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_NO_1 + .2byte EC_WORD_EXCL .4byte gFallarborBattleTentTrainerMons_Jonn @ 8 .4byte TRAINER_CLASS_SWIMMER_M .string "ESTEBAN$", 8 @ pre-battle speech - ec_word YOU_RE - ec_word A - ec_word GOOD - ec_word TRAINER - ec_word QUES - ec_word UNBELIEVABLE + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_A + .2byte EC_WORD_GOOD + .2byte EC_WORD_TRAINER + .2byte EC_WORD_QUES + .2byte EC_WORD_UNBELIEVABLE @ win speech - ec_word YOU_RE - ec_word SOME - ec_word PUSHOVER - ec_word OF - ec_word A - ec_word TRAINER + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_SOME + .2byte EC_WORD_PUSHOVER + .2byte EC_WORD_OF + .2byte EC_WORD_A + .2byte EC_WORD_TRAINER @ loss speech - ec_word YOU_RE - ec_word MUCH - ec_word TOO - ec_word MUCH - ec_word FOR - ec_word ME + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_MUCH + .2byte EC_WORD_TOO + .2byte EC_WORD_MUCH + .2byte EC_WORD_FOR + .2byte EC_WORD_ME .4byte gFallarborBattleTentTrainerMons_Esteban @ 9 .4byte TRAINER_CLASS_CAMPER .string "JAMESON$", 8 @ pre-battle speech - ec_word MY - ec_word POKEMON - ec_word ARE - ec_word SILKY - ec_word SMOOTH - ec_word EXCL + .2byte EC_WORD_MY + .2byte EC_WORD_POKEMON + .2byte EC_WORD_ARE + .2byte EC_WORD_SILKY + .2byte EC_WORD_SMOOTH + .2byte EC_WORD_EXCL @ win speech - ec_word MY - ec_word SILKY - ec_word SMOOTH - ec_word POKEMON - ec_word RULE - ec_word EXCL + .2byte EC_WORD_MY + .2byte EC_WORD_SILKY + .2byte EC_WORD_SMOOTH + .2byte EC_WORD_POKEMON + .2byte EC_WORD_RULE + .2byte EC_WORD_EXCL @ loss speech - ec_word MY - ec_word POKEMON - ec_move2 STRUGGLE - ec_word IN - ec_word YOUR - ec_word STICKY_HOLD + .2byte EC_WORD_MY + .2byte EC_WORD_POKEMON + .2byte EC_MOVE2(STRUGGLE) + .2byte EC_WORD_IN + .2byte EC_WORD_YOUR + .2byte EC_WORD_STICKY_HOLD .4byte gFallarborBattleTentTrainerMons_Jameson @ 10 .4byte TRAINER_CLASS_BUG_MANIAC .string "ALANZO$", 8 @ pre-battle speech - ec_move2 FORESIGHT - ec_word IS - ec_word A - ec_word POWER - ec_word I - ec_word HAVE + .2byte EC_MOVE2(FORESIGHT) + .2byte EC_WORD_IS + .2byte EC_WORD_A + .2byte EC_WORD_POWER + .2byte EC_WORD_I + .2byte EC_WORD_HAVE @ win speech - ec_word YOU_RE - ec_word OBLIVIOUS - ec_word ABOUT - ec_move2 FORESIGHT - ec_word EXCL + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_OBLIVIOUS + .2byte EC_WORD_ABOUT + .2byte EC_MOVE2(FORESIGHT) + .2byte EC_WORD_EXCL .2byte -1 @ loss speech - ec_word MY - ec_move2 FORESIGHT - ec_word IS - ec_word ALWAYS - ec_word RIGHT - ec_word EXCL + .2byte EC_WORD_MY + .2byte EC_MOVE2(FORESIGHT) + .2byte EC_WORD_IS + .2byte EC_WORD_ALWAYS + .2byte EC_WORD_RIGHT + .2byte EC_WORD_EXCL .4byte gFallarborBattleTentTrainerMons_Alanzo @ 11 .4byte TRAINER_CLASS_GENTLEMAN .string "HOWARD$", 8 @ pre-battle speech - ec_word YOUR - ec_word POKEMON - ec_word CAN_T - ec_word BEAT - ec_word ME + .2byte EC_WORD_YOUR + .2byte EC_WORD_POKEMON + .2byte EC_WORD_CAN_T + .2byte EC_WORD_BEAT + .2byte EC_WORD_ME .2byte -1 @ win speech - ec_word YOU - ec_word COULDN_T - ec_word WIN - ec_word COULD - ec_word YOU - ec_word QUES + .2byte EC_WORD_YOU + .2byte EC_WORD_COULDN_T + .2byte EC_WORD_WIN + .2byte EC_WORD_COULD + .2byte EC_WORD_YOU + .2byte EC_WORD_QUES @ loss speech - ec_word YOU - ec_word WOULD - ec_word GO - ec_word ALL - ec_word OUT - ec_word ELLIPSIS + .2byte EC_WORD_YOU + .2byte EC_WORD_WOULD + .2byte EC_WORD_GO + .2byte EC_WORD_ALL + .2byte EC_WORD_OUT + .2byte EC_WORD_ELLIPSIS .4byte gFallarborBattleTentTrainerMons_Howard @ 12 .4byte TRAINER_CLASS_GUITARIST .string "CONRAD$", 8 @ pre-battle speech - ec_word YOUR - ec_word POKEMON - ec_word ARE - ec_word PRETTY - ec_word WILD - ec_word EXCL + .2byte EC_WORD_YOUR + .2byte EC_WORD_POKEMON + .2byte EC_WORD_ARE + .2byte EC_WORD_PRETTY + .2byte EC_WORD_WILD + .2byte EC_WORD_EXCL @ win speech - ec_word WHOAH - ec_word EXCL_EXCL + .2byte EC_WORD_WHOAH + .2byte EC_WORD_EXCL_EXCL .2byte -1 - ec_word LET_S - ec_word DANCE - ec_word EXCL + .2byte EC_WORD_LET_S + .2byte EC_WORD_DANCE + .2byte EC_WORD_EXCL @ loss speech - ec_word MY - ec_word MUSIC - ec_word WILL - ec_word PLAY - ec_word ON - ec_word ELLIPSIS + .2byte EC_WORD_MY + .2byte EC_WORD_MUSIC + .2byte EC_WORD_WILL + .2byte EC_WORD_PLAY + .2byte EC_WORD_ON + .2byte EC_WORD_ELLIPSIS .4byte gFallarborBattleTentTrainerMons_Conrad @ 13 .4byte TRAINER_CLASS_SCHOOL_KID_2 .string "MAKENNA$", 8 @ pre-battle speech - ec_word SHOW - ec_word ME - ec_word THAT - ec_word YOU - ec_word MEAN - ec_word IT + .2byte EC_WORD_SHOW + .2byte EC_WORD_ME + .2byte EC_WORD_THAT + .2byte EC_WORD_YOU + .2byte EC_WORD_MEAN + .2byte EC_WORD_IT @ win speech - ec_word THAT_S - ec_word WHY - ec_word I - ec_word STUDY - ec_word EVERY - ec_word DAY + .2byte EC_WORD_THAT_S + .2byte EC_WORD_WHY + .2byte EC_WORD_I + .2byte EC_WORD_STUDY + .2byte EC_WORD_EVERY + .2byte EC_WORD_DAY @ loss speech - ec_word AWW - ec_word I - ec_word STUDY - ec_word EVERY - ec_word DAY - ec_word TOO + .2byte EC_WORD_AWW + .2byte EC_WORD_I + .2byte EC_WORD_STUDY + .2byte EC_WORD_EVERY + .2byte EC_WORD_DAY + .2byte EC_WORD_TOO .4byte gFallarborBattleTentTrainerMons_Makenna @ 14 .4byte TRAINER_CLASS_COOLTRAINER_1 .string "BRAYAN$", 8 @ pre-battle speech - ec_word CAN - ec_word YOU - ec_word SEE - ec_word MY - ec_word POWER - ec_word QUES + .2byte EC_WORD_CAN + .2byte EC_WORD_YOU + .2byte EC_WORD_SEE + .2byte EC_WORD_MY + .2byte EC_WORD_POWER + .2byte EC_WORD_QUES @ win speech - ec_word HOW - ec_word BORING - ec_word ELLIPSIS - ec_word THIS - ec_word IS - ec_word GOOD_BYE + .2byte EC_WORD_HOW + .2byte EC_WORD_BORING + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_THIS + .2byte EC_WORD_IS + .2byte EC_WORD_GOOD_BYE @ loss speech - ec_word AM - ec_word I - ec_word THE - ec_word WEAK - ec_word TRAINER - ec_word QUES + .2byte EC_WORD_AM + .2byte EC_WORD_I + .2byte EC_WORD_THE + .2byte EC_WORD_WEAK + .2byte EC_WORD_TRAINER + .2byte EC_WORD_QUES .4byte gFallarborBattleTentTrainerMons_Brayan @ 15 .4byte TRAINER_CLASS_COOLTRAINER_2 .string "MARIANA$", 8 @ pre-battle speech - ec_word A - ec_word LIE - ec_word CAN - ec_word BE - ec_word KIND - ec_word ELLIPSIS + .2byte EC_WORD_A + .2byte EC_WORD_LIE + .2byte EC_WORD_CAN + .2byte EC_WORD_BE + .2byte EC_WORD_KIND + .2byte EC_WORD_ELLIPSIS @ win speech - ec_word THIS - ec_word IS - ec_word LIKE - ec_word THE - ec_word SUNDAY - ec_word COMICS + .2byte EC_WORD_THIS + .2byte EC_WORD_IS + .2byte EC_WORD_LIKE + .2byte EC_WORD_THE + .2byte EC_WORD_SUNDAY + .2byte EC_WORD_COMICS @ loss speech - ec_word THIS - ec_word IS - ec_word LIKE - ec_word FROM - ec_word A - ec_word MOVIE + .2byte EC_WORD_THIS + .2byte EC_WORD_IS + .2byte EC_WORD_LIKE + .2byte EC_WORD_FROM + .2byte EC_WORD_A + .2byte EC_WORD_MOVIE .4byte gFallarborBattleTentTrainerMons_Mariana @ 16 .4byte TRAINER_CLASS_POKEFAN_1 .string "SHELDON$", 8 @ pre-battle speech - ec_word A - ec_word POKEMON - ec_word TEACHER - ec_word GETS - ec_word NO - ec_move2 REST + .2byte EC_WORD_A + .2byte EC_WORD_POKEMON + .2byte EC_WORD_TEACHER + .2byte EC_WORD_GETS + .2byte EC_WORD_NO + .2byte EC_MOVE2(REST) @ win speech - ec_word MY - ec_word SMARTNESS - ec_word GETS - ec_word ME - ec_word EASY - ec_word WINS + .2byte EC_WORD_MY + .2byte EC_WORD_SMARTNESS + .2byte EC_WORD_GETS + .2byte EC_WORD_ME + .2byte EC_WORD_EASY + .2byte EC_WORD_WINS @ loss speech - ec_word I - ec_word HAVE - ec_word TO - ec_word GO - ec_word WORK - ec_word BYE_BYE + .2byte EC_WORD_I + .2byte EC_WORD_HAVE + .2byte EC_WORD_TO + .2byte EC_WORD_GO + .2byte EC_WORD_WORK + .2byte EC_WORD_BYE_BYE .4byte gFallarborBattleTentTrainerMons_Sheldon @ 17 .4byte TRAINER_CLASS_POKEFAN_2 .string "GIANNA$", 8 @ pre-battle speech - ec_word AHAHA - ec_word YES - ec_word EXCL - ec_word LOVEY_DOVEY - ec_word POKEMON - ec_word WORLD + .2byte EC_WORD_AHAHA + .2byte EC_WORD_YES + .2byte EC_WORD_EXCL + .2byte EC_WORD_LOVEY_DOVEY + .2byte EC_WORD_POKEMON + .2byte EC_WORD_WORLD @ win speech - ec_word MY - ec_word SHINE - ec_word IS - ec_word MAKING - ec_word THINGS - ec_word BETTER + .2byte EC_WORD_MY + .2byte EC_WORD_SHINE + .2byte EC_WORD_IS + .2byte EC_WORD_MAKING + .2byte EC_WORD_THINGS + .2byte EC_WORD_BETTER @ loss speech - ec_word DO - ec_word YOU - ec_word DISLIKE - ec_word POKEMON - ec_word QUES + .2byte EC_WORD_DO + .2byte EC_WORD_YOU + .2byte EC_WORD_DISLIKE + .2byte EC_WORD_POKEMON + .2byte EC_WORD_QUES .2byte -1 .4byte gFallarborBattleTentTrainerMons_Gianna @@ -472,257 +472,257 @@ gFallarborBattleTentTrainers:: @ 85DF084 .4byte TRAINER_CLASS_EXPERT_1 .string "YAHIR$", 8 @ pre-battle speech - 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 + .2byte EC_WORD_YOU + .2byte EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS + .2byte EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS + .2byte EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS + .2byte EC_WORD_COME_ON + .2byte EC_WORD_EXCL @ win speech - ec_word YOU - ec_word NEED - ec_word TO - ec_word TRAIN - ec_word A_LOT - ec_word MORE + .2byte EC_WORD_YOU + .2byte EC_WORD_NEED + .2byte EC_WORD_TO + .2byte EC_WORD_TRAIN + .2byte EC_WORD_A_LOT + .2byte EC_WORD_MORE @ loss speech - ec_word NOT - ec_word ENOUGH - ec_word ELLIPSIS - ec_word JUST - ec_word NOT - ec_word ENOUGH + .2byte EC_WORD_NOT + .2byte EC_WORD_ENOUGH + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_JUST + .2byte EC_WORD_NOT + .2byte EC_WORD_ENOUGH .4byte gFallarborBattleTentTrainerMons_Yahir @ 19 .4byte TRAINER_CLASS_EXPERT_2 .string "BRITNEY$", 8 @ pre-battle speech - ec_word IT - ec_word SEEMS - ec_word THAT - ec_word YOU_RE - ec_word QUITE - ec_word GOOD + .2byte EC_WORD_IT + .2byte EC_WORD_SEEMS + .2byte EC_WORD_THAT + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_QUITE + .2byte EC_WORD_GOOD @ win speech - ec_word YOU_RE - ec_word A - ec_word LUKEWARM - ec_word TALENT - ec_word AT - ec_word BEST + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_A + .2byte EC_WORD_LUKEWARM + .2byte EC_WORD_TALENT + .2byte EC_WORD_AT + .2byte EC_WORD_BEST @ loss speech - ec_word YOU_RE - ec_word A - ec_word COOL - ec_word HERO - ec_word AT - ec_word THIS + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_A + .2byte EC_WORD_COOL + .2byte EC_WORD_HERO + .2byte EC_WORD_AT + .2byte EC_WORD_THIS .4byte gFallarborBattleTentTrainerMons_Britney @ 20 .4byte TRAINER_CLASS_YOUNGSTER .string "HECTER$", 8 @ pre-battle speech - ec_word MY - ec_move2 HIDDEN_POWER - ec_word IS - ec_word EXCITING - ec_word ME - ec_word EXCL + .2byte EC_WORD_MY + .2byte EC_MOVE2(HIDDEN_POWER) + .2byte EC_WORD_IS + .2byte EC_WORD_EXCITING + .2byte EC_WORD_ME + .2byte EC_WORD_EXCL @ win speech - ec_word YEEHAW_EXCL - ec_word LET_S - ec_word HAVE - ec_word A - ec_move2 HIDDEN_POWER - ec_word PARTY + .2byte EC_WORD_YEEHAW_EXCL + .2byte EC_WORD_LET_S + .2byte EC_WORD_HAVE + .2byte EC_WORD_A + .2byte EC_MOVE2(HIDDEN_POWER) + .2byte EC_WORD_PARTY @ loss speech - ec_word WAAAH - ec_word EXCL - ec_word DON_T - ec_word YOU - ec_move2 MIMIC - ec_word ME + .2byte EC_WORD_WAAAH + .2byte EC_WORD_EXCL + .2byte EC_WORD_DON_T + .2byte EC_WORD_YOU + .2byte EC_MOVE2(MIMIC) + .2byte EC_WORD_ME .4byte gFallarborBattleTentTrainerMons_Hecter @ 21 .4byte TRAINER_CLASS_FISHERMAN .string "TANNOR$", 8 @ pre-battle speech - ec_word YOU - ec_word HAVE - ec_word GOT - ec_word TO - ec_word BE - ec_word JOKING + .2byte EC_WORD_YOU + .2byte EC_WORD_HAVE + .2byte EC_WORD_GOT + .2byte EC_WORD_TO + .2byte EC_WORD_BE + .2byte EC_WORD_JOKING @ win speech - ec_word YOU_RE - ec_word THE - ec_word BEST - ec_word AT - ec_word BEING - ec_word FUNNY + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_THE + .2byte EC_WORD_BEST + .2byte EC_WORD_AT + .2byte EC_WORD_BEING + .2byte EC_WORD_FUNNY @ loss speech - ec_word YOU - ec_word WEREN_T - ec_word BEING - ec_word FUNNY - ec_word AT - ec_word ALL + .2byte EC_WORD_YOU + .2byte EC_WORD_WEREN_T + .2byte EC_WORD_BEING + .2byte EC_WORD_FUNNY + .2byte EC_WORD_AT + .2byte EC_WORD_ALL .4byte gFallarborBattleTentTrainerMons_Tannor @ 22 .4byte TRAINER_CLASS_BIRD_KEEPER .string "BENJI$", 8 @ pre-battle speech - ec_word YOU - ec_word DON_T - ec_word THINK - ec_word VERY - ec_word FAST - ec_word HUH_QUES + .2byte EC_WORD_YOU + .2byte EC_WORD_DON_T + .2byte EC_WORD_THINK + .2byte EC_WORD_VERY + .2byte EC_WORD_FAST + .2byte EC_WORD_HUH_QUES @ win speech - ec_word SORRY - ec_word EXCL - ec_word I - ec_word DIDN_T - ec_word MEAN - ec_word YOU + .2byte EC_WORD_SORRY + .2byte EC_WORD_EXCL + .2byte EC_WORD_I + .2byte EC_WORD_DIDN_T + .2byte EC_WORD_MEAN + .2byte EC_WORD_YOU @ loss speech - ec_word YOU - ec_word LEFT - ec_word ME - ec_word FEELING - ec_word SAD - ec_word ELLIPSIS + .2byte EC_WORD_YOU + .2byte EC_WORD_LEFT + .2byte EC_WORD_ME + .2byte EC_WORD_FEELING + .2byte EC_WORD_SAD + .2byte EC_WORD_ELLIPSIS .4byte gFallarborBattleTentTrainerMons_Benji @ 23 .4byte TRAINER_CLASS_NINJA_BOY .string "RORY$", 8 @ pre-battle speech - ec_word DON_T - ec_word CAUSE - ec_word AN - ec_move1 UPROAR - ec_word YOU - ec_word EXCL + .2byte EC_WORD_DON_T + .2byte EC_WORD_CAUSE + .2byte EC_WORD_AN + .2byte EC_MOVE(UPROAR) + .2byte EC_WORD_YOU + .2byte EC_WORD_EXCL @ win speech - ec_word I - ec_word DON_T - ec_word NEED - ec_word AN - ec_move1 UPROAR - ec_word EXCL + .2byte EC_WORD_I + .2byte EC_WORD_DON_T + .2byte EC_WORD_NEED + .2byte EC_WORD_AN + .2byte EC_MOVE(UPROAR) + .2byte EC_WORD_EXCL @ loss speech - ec_word I_AM - ec_word GOING - ec_word TO - ec_word CAUSE - ec_word AN - ec_move1 UPROAR + .2byte EC_WORD_I_AM + .2byte EC_WORD_GOING + .2byte EC_WORD_TO + .2byte EC_WORD_CAUSE + .2byte EC_WORD_AN + .2byte EC_MOVE(UPROAR) .4byte gFallarborBattleTentTrainerMons_Rory @ 24 .4byte TRAINER_CLASS_PARASOL_LADY .string "ELEANOR$", 8 @ pre-battle speech - ec_word I - ec_word REALLY - ec_word WANT - ec_word TO - ec_word PARTY + .2byte EC_WORD_I + .2byte EC_WORD_REALLY + .2byte EC_WORD_WANT + .2byte EC_WORD_TO + .2byte EC_WORD_PARTY .2byte -1 @ win speech - ec_word A - ec_word TRENDY - ec_word PARTY - ec_word WOULD - ec_word BE - ec_word REFRESHING + .2byte EC_WORD_A + .2byte EC_WORD_TRENDY + .2byte EC_WORD_PARTY + .2byte EC_WORD_WOULD + .2byte EC_WORD_BE + .2byte EC_WORD_REFRESHING @ loss speech - ec_word DON_T - ec_word YOU - ec_word LIKE - ec_word TO - ec_word PARTY - ec_word QUES + .2byte EC_WORD_DON_T + .2byte EC_WORD_YOU + .2byte EC_WORD_LIKE + .2byte EC_WORD_TO + .2byte EC_WORD_PARTY + .2byte EC_WORD_QUES .4byte gFallarborBattleTentTrainerMons_Eleanor @ 25 .4byte TRAINER_CLASS_SWIMMER_F .string "EVELYN$", 8 @ pre-battle speech - ec_word MY - ec_word PC - ec_word IS - ec_word MY - ec_word SECRET_BASE - ec_word EXCL + .2byte EC_WORD_MY + .2byte EC_WORD_PC + .2byte EC_WORD_IS + .2byte EC_WORD_MY + .2byte EC_WORD_SECRET_BASE + .2byte EC_WORD_EXCL @ win speech - ec_word IT_S - ec_word ALL - ec_word SECRET - ec_word ON - ec_word MY - ec_word PC + .2byte EC_WORD_IT_S + .2byte EC_WORD_ALL + .2byte EC_WORD_SECRET + .2byte EC_WORD_ON + .2byte EC_WORD_MY + .2byte EC_WORD_PC @ loss speech - ec_word NO - ec_word EXCL + .2byte EC_WORD_NO + .2byte EC_WORD_EXCL .2byte -1 - ec_word I - ec_word REJECT - ec_word THIS + .2byte EC_WORD_I + .2byte EC_WORD_REJECT + .2byte EC_WORD_THIS .4byte gFallarborBattleTentTrainerMons_Evelyn @ 26 .4byte TRAINER_CLASS_PICNICKER .string "ARIELLE$", 8 @ pre-battle speech - ec_word IT_S - ec_word NOT_VERY - ec_word PRETTY - ec_word BUT - ec_word I - ec_word TRY + .2byte EC_WORD_IT_S + .2byte EC_WORD_NOT_VERY + .2byte EC_WORD_PRETTY + .2byte EC_WORD_BUT + .2byte EC_WORD_I + .2byte EC_WORD_TRY @ win speech - ec_word WE_RE - ec_word NOT_VERY - ec_word PRETTY - ec_word BUT - ec_word WE_RE - ec_word GREAT + .2byte EC_WORD_WE_RE + .2byte EC_WORD_NOT_VERY + .2byte EC_WORD_PRETTY + .2byte EC_WORD_BUT + .2byte EC_WORD_WE_RE + .2byte EC_WORD_GREAT @ loss speech - ec_word THAT_WAS - ec_word PRETTY - ec_word MEAN - ec_word OF - ec_word YOU - ec_word EXCL + .2byte EC_WORD_THAT_WAS + .2byte EC_WORD_PRETTY + .2byte EC_WORD_MEAN + .2byte EC_WORD_OF + .2byte EC_WORD_YOU + .2byte EC_WORD_EXCL .4byte gFallarborBattleTentTrainerMons_Arielle @ 27 .4byte TRAINER_CLASS_SAILOR .string "CONNAR$", 8 @ pre-battle speech - ec_word I_AM - ec_word NOT - ec_word STRONG - ec_word ENOUGH - ec_word FOR - ec_word THIS + .2byte EC_WORD_I_AM + .2byte EC_WORD_NOT + .2byte EC_WORD_STRONG + .2byte EC_WORD_ENOUGH + .2byte EC_WORD_FOR + .2byte EC_WORD_THIS @ win speech - ec_word DO - ec_word YOU - ec_word THINK - ec_word YOU_RE - ec_word OK_QUES + .2byte EC_WORD_DO + .2byte EC_WORD_YOU + .2byte EC_WORD_THINK + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_OK_QUES .2byte -1 @ loss speech - ec_word GOOD_BYE - ec_word AND - ec_word THANK_YOU + .2byte EC_WORD_GOOD_BYE + .2byte EC_WORD_AND + .2byte EC_WORD_THANK_YOU .2byte -1 .2byte -1 .2byte -1 @@ -732,50 +732,50 @@ gFallarborBattleTentTrainers:: @ 85DF084 .4byte TRAINER_CLASS_COLLECTOR .string "MAURICE$", 8 @ pre-battle speech - ec_word THERE - ec_word IS - ec_word NO - ec_word RADIO - ec_word OR - ec_word TELEVISION + .2byte EC_WORD_THERE + .2byte EC_WORD_IS + .2byte EC_WORD_NO + .2byte EC_WORD_RADIO + .2byte EC_WORD_OR + .2byte EC_WORD_TELEVISION @ win speech - ec_word BUT - ec_word THERE - ec_word IS - ec_word A_LOT - ec_word OF - ec_word POKEMON + .2byte EC_WORD_BUT + .2byte EC_WORD_THERE + .2byte EC_WORD_IS + .2byte EC_WORD_A_LOT + .2byte EC_WORD_OF + .2byte EC_WORD_POKEMON @ loss speech - ec_word I - ec_word CAN_T - ec_word ENJOY - ec_word MYSELF - ec_word WITHOUT - ec_word MONEY + .2byte EC_WORD_I + .2byte EC_WORD_CAN_T + .2byte EC_WORD_ENJOY + .2byte EC_WORD_MYSELF + .2byte EC_WORD_WITHOUT + .2byte EC_WORD_MONEY .4byte gFallarborBattleTentTrainerMons_Maurice @ 29 .4byte TRAINER_CLASS_LASS .string "KIANNA$", 8 @ pre-battle speech - ec_word I - ec_word WANT - ec_word TO - ec_word GO - ec_word DEPT_STORE - ec_word SHOPPING + .2byte EC_WORD_I + .2byte EC_WORD_WANT + .2byte EC_WORD_TO + .2byte EC_WORD_GO + .2byte EC_WORD_DEPT_STORE + .2byte EC_WORD_SHOPPING @ win speech - ec_word I - ec_word DISLIKE - ec_word SHOPPING - ec_word ALONE + .2byte EC_WORD_I + .2byte EC_WORD_DISLIKE + .2byte EC_WORD_SHOPPING + .2byte EC_WORD_ALONE .2byte -1 .2byte -1 @ loss speech - ec_word WANT - ec_word TO - ec_word GO - ec_word SHOPPING - ec_word TOGETHER - ec_word QUES + .2byte EC_WORD_WANT + .2byte EC_WORD_TO + .2byte EC_WORD_GO + .2byte EC_WORD_SHOPPING + .2byte EC_WORD_TOGETHER + .2byte EC_WORD_QUES .4byte gFallarborBattleTentTrainerMons_Kianna diff --git a/data/battle_frontier/slateport_battle_tent_trainers.inc b/data/battle_frontier/slateport_battle_tent_trainers.inc index 00b874c07..9d6900149 100644 --- a/data/battle_frontier/slateport_battle_tent_trainers.inc +++ b/data/battle_frontier/slateport_battle_tent_trainers.inc @@ -4,205 +4,205 @@ gSlateportBattleTentTrainers:: @ 85DDA14 .4byte TRAINER_CLASS_AROMA_LADY .string "JOLIE$", 8 @ pre-battle speech - ec_word WHAT - ec_word WILL - ec_word I - ec_word BE - ec_word TOMORROW - ec_word QUES + .2byte EC_WORD_WHAT + .2byte EC_WORD_WILL + .2byte EC_WORD_I + .2byte EC_WORD_BE + .2byte EC_WORD_TOMORROW + .2byte EC_WORD_QUES @ win speech - ec_word I_AM - ec_word FEELING - ec_word LIKE - ec_word IT_S - ec_word FRIDAY - ec_word EXCL + .2byte EC_WORD_I_AM + .2byte EC_WORD_FEELING + .2byte EC_WORD_LIKE + .2byte EC_WORD_IT_S + .2byte EC_WORD_FRIDAY + .2byte EC_WORD_EXCL @ loss speech - ec_word I_AM - ec_word FEELING - ec_word LIKE - ec_word IT_S - ec_word MONDAY - ec_word ELLIPSIS + .2byte EC_WORD_I_AM + .2byte EC_WORD_FEELING + .2byte EC_WORD_LIKE + .2byte EC_WORD_IT_S + .2byte EC_WORD_MONDAY + .2byte EC_WORD_ELLIPSIS .4byte gSlateportBattleTentTrainerMons_Jolie @ 1 .4byte TRAINER_CLASS_RUIN_MANIAC .string "MALACHI$", 8 @ pre-battle speech - ec_word BAD - ec_word NEWS - ec_word EXCL - ec_word IT_S - ec_word A - ec_move1 SAND_TOMB + .2byte EC_WORD_BAD + .2byte EC_WORD_NEWS + .2byte EC_WORD_EXCL + .2byte EC_WORD_IT_S + .2byte EC_WORD_A + .2byte EC_MOVE(SAND_TOMB) @ win speech - ec_word YEEHAW_EXCL + .2byte EC_WORD_YEEHAW_EXCL .2byte -1 .2byte -1 - ec_word I_VE - ec_word DONE - ec_word IT + .2byte EC_WORD_I_VE + .2byte EC_WORD_DONE + .2byte EC_WORD_IT @ loss speech - ec_word I_VE - ec_word LOST - ec_word IN - ec_word THIS - ec_move1 SAND_TOMB - ec_word ELLIPSIS + .2byte EC_WORD_I_VE + .2byte EC_WORD_LOST + .2byte EC_WORD_IN + .2byte EC_WORD_THIS + .2byte EC_MOVE(SAND_TOMB) + .2byte EC_WORD_ELLIPSIS .4byte gSlateportBattleTentTrainerMons_Malachi @ 2 .4byte TRAINER_CLASS_TUBER_1 .string "KELSIE$", 8 @ pre-battle speech - ec_word GO - ec_word EXCL_EXCL - ec_word MY - ec_word BATH - ec_word POKEMON - ec_word EXCL_EXCL + .2byte EC_WORD_GO + .2byte EC_WORD_EXCL_EXCL + .2byte EC_WORD_MY + .2byte EC_WORD_BATH + .2byte EC_WORD_POKEMON + .2byte EC_WORD_EXCL_EXCL @ win speech - ec_word YAHOO - ec_word EXCL_EXCL - ec_word MY - ec_word BATH - ec_word POKEMON - ec_word EXCL_EXCL + .2byte EC_WORD_YAHOO + .2byte EC_WORD_EXCL_EXCL + .2byte EC_WORD_MY + .2byte EC_WORD_BATH + .2byte EC_WORD_POKEMON + .2byte EC_WORD_EXCL_EXCL @ loss speech - ec_word GWAH - ec_word EXCL_EXCL - ec_word MY - ec_word BATH - ec_word POKEMON - ec_word EXCL_EXCL + .2byte EC_WORD_GWAH + .2byte EC_WORD_EXCL_EXCL + .2byte EC_WORD_MY + .2byte EC_WORD_BATH + .2byte EC_WORD_POKEMON + .2byte EC_WORD_EXCL_EXCL .4byte gSlateportBattleTentTrainerMons_Kelsie @ 3 .4byte TRAINER_CLASS_TUBER_2 .string "DAVON$", 8 @ pre-battle speech - ec_word YEAH_YEAH - ec_word EXCL_EXCL + .2byte EC_WORD_YEAH_YEAH + .2byte EC_WORD_EXCL_EXCL .2byte -1 - ec_word GREAT - ec_move1 WHIRLPOOL - ec_word ISN_T_IT_QUES + .2byte EC_WORD_GREAT + .2byte EC_MOVE(WHIRLPOOL) + .2byte EC_WORD_ISN_T_IT_QUES @ win speech - ec_word THAT_WAS - ec_word LIKE - ec_word A - ec_move1 WHIRLPOOL - ec_word YEAH_YEAH - ec_word EXCL_EXCL + .2byte EC_WORD_THAT_WAS + .2byte EC_WORD_LIKE + .2byte EC_WORD_A + .2byte EC_MOVE(WHIRLPOOL) + .2byte EC_WORD_YEAH_YEAH + .2byte EC_WORD_EXCL_EXCL @ loss speech - ec_word DON_T - ec_word GET - ec_move2 BEAT_UP - ec_word IN - ec_word THAT - ec_move1 WHIRLPOOL + .2byte EC_WORD_DON_T + .2byte EC_WORD_GET + .2byte EC_MOVE2(BEAT_UP) + .2byte EC_WORD_IN + .2byte EC_WORD_THAT + .2byte EC_MOVE(WHIRLPOOL) .4byte gSlateportBattleTentTrainerMons_Davon @ 4 .4byte TRAINER_CLASS_LADY .string "GLENDA$", 8 @ pre-battle speech - ec_word CONVERSATION - ec_word CAN - ec_word WAIT - ec_word UNTIL - ec_word I - ec_word WIN + .2byte EC_WORD_CONVERSATION + .2byte EC_WORD_CAN + .2byte EC_WORD_WAIT + .2byte EC_WORD_UNTIL + .2byte EC_WORD_I + .2byte EC_WORD_WIN @ win speech - ec_word FABULOUS - ec_word EXCL - ec_word I_AM - ec_word GOING - ec_word TO - ec_word ROCK + .2byte EC_WORD_FABULOUS + .2byte EC_WORD_EXCL + .2byte EC_WORD_I_AM + .2byte EC_WORD_GOING + .2byte EC_WORD_TO + .2byte EC_WORD_ROCK @ loss speech - ec_word NO - ec_word EXCL + .2byte EC_WORD_NO + .2byte EC_WORD_EXCL .2byte -1 - ec_word I - ec_word WASN_T - ec_word SERIOUS + .2byte EC_WORD_I + .2byte EC_WORD_WASN_T + .2byte EC_WORD_SERIOUS .4byte gSlateportBattleTentTrainerMons_Glenda @ 5 .4byte TRAINER_CLASS_BEAUTY .string "HELENA$", 8 @ pre-battle speech - ec_word DOES - ec_word MY - ec_word BEAUTY - ec_word INTIMIDATE - ec_word YOU - ec_word QUES + .2byte EC_WORD_DOES + .2byte EC_WORD_MY + .2byte EC_WORD_BEAUTY + .2byte EC_WORD_INTIMIDATE + .2byte EC_WORD_YOU + .2byte EC_WORD_QUES @ win speech - ec_word I_AM - ec_word SO - ec_word SORRY - ec_word BUT - ec_word YOU_RE - ec_word BORING + .2byte EC_WORD_I_AM + .2byte EC_WORD_SO + .2byte EC_WORD_SORRY + .2byte EC_WORD_BUT + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_BORING @ loss speech - ec_word I - ec_word DO - ec_word SO - ec_word ENJOY - ec_word THIS - ec_word EXCL + .2byte EC_WORD_I + .2byte EC_WORD_DO + .2byte EC_WORD_SO + .2byte EC_WORD_ENJOY + .2byte EC_WORD_THIS + .2byte EC_WORD_EXCL .4byte gSlateportBattleTentTrainerMons_Helena @ 6 .4byte TRAINER_CLASS_RICH_BOY .string "RODOLFO$", 8 @ pre-battle speech - ec_word GO - ec_word GET - ec_word A - ec_pokemon1 WHISCASH - ec_word FOR - ec_word ME + .2byte EC_WORD_GO + .2byte EC_WORD_GET + .2byte EC_WORD_A + .2byte EC_POKEMON(WHISCASH) + .2byte EC_WORD_FOR + .2byte EC_WORD_ME @ win speech - ec_word AWW - ec_word YOU - ec_word DON_T - ec_word HAVE - ec_word A - ec_pokemon1 WHISCASH + .2byte EC_WORD_AWW + .2byte EC_WORD_YOU + .2byte EC_WORD_DON_T + .2byte EC_WORD_HAVE + .2byte EC_WORD_A + .2byte EC_POKEMON(WHISCASH) @ loss speech - ec_word PLEASE - ec_word I - ec_word NEED - ec_word A - ec_pokemon1 WHISCASH - ec_word BADLY + .2byte EC_WORD_PLEASE + .2byte EC_WORD_I + .2byte EC_WORD_NEED + .2byte EC_WORD_A + .2byte EC_POKEMON(WHISCASH) + .2byte EC_WORD_BADLY .4byte gSlateportBattleTentTrainerMons_Rodolfo @ 7 .4byte TRAINER_CLASS_POKEMANIAC .string "DAVION$", 8 @ pre-battle speech - ec_word GRAAAH - ec_word GRAAAH - ec_word EXCL_EXCL - ec_word GRAAAH - ec_word GRAAAH - ec_word EXCL_EXCL + .2byte EC_WORD_GRAAAH + .2byte EC_WORD_GRAAAH + .2byte EC_WORD_EXCL_EXCL + .2byte EC_WORD_GRAAAH + .2byte EC_WORD_GRAAAH + .2byte EC_WORD_EXCL_EXCL @ win speech - ec_move2 ROAR - ec_word EXCL + .2byte EC_MOVE2(ROAR) + .2byte EC_WORD_EXCL .2byte -1 - ec_move2 ROAR - ec_word EXCL_EXCL + .2byte EC_MOVE2(ROAR) + .2byte EC_WORD_EXCL_EXCL .2byte -1 @ loss speech - ec_word URGH - ec_word WAAAH - ec_word EXCL_EXCL + .2byte EC_WORD_URGH + .2byte EC_WORD_WAAAH + .2byte EC_WORD_EXCL_EXCL .2byte -1 .2byte -1 .2byte -1 @@ -212,285 +212,285 @@ gSlateportBattleTentTrainers:: @ 85DDA14 .4byte TRAINER_CLASS_SWIMMER_M .string "KENDALL$", 8 @ pre-battle speech - ec_word A_LITTLE - ec_move2 PETAL_DANCE - ec_word TO - ec_word PLEASE - ec_word YOU - ec_word EXCL + .2byte EC_WORD_A_LITTLE + .2byte EC_MOVE2(PETAL_DANCE) + .2byte EC_WORD_TO + .2byte EC_WORD_PLEASE + .2byte EC_WORD_YOU + .2byte EC_WORD_EXCL @ win speech - ec_word I - ec_word DO - ec_word THIS - ec_word ONLY - ec_word FOR - ec_word WORK + .2byte EC_WORD_I + .2byte EC_WORD_DO + .2byte EC_WORD_THIS + .2byte EC_WORD_ONLY + .2byte EC_WORD_FOR + .2byte EC_WORD_WORK @ loss speech - ec_word HOW - ec_word COULD - ec_word YOU - ec_move2 POUND - ec_word ME - ec_word QUES + .2byte EC_WORD_HOW + .2byte EC_WORD_COULD + .2byte EC_WORD_YOU + .2byte EC_MOVE2(POUND) + .2byte EC_WORD_ME + .2byte EC_WORD_QUES .4byte gSlateportBattleTentTrainerMons_Kendall @ 9 .4byte TRAINER_CLASS_CAMPER .string "COLTEN$", 8 @ pre-battle speech - ec_word I - ec_word WANT - ec_word TO - ec_word GO - ec_word RUN - ec_word AROUND + .2byte EC_WORD_I + .2byte EC_WORD_WANT + .2byte EC_WORD_TO + .2byte EC_WORD_GO + .2byte EC_WORD_RUN + .2byte EC_WORD_AROUND @ win speech - ec_word YAY - ec_word EXCL - ec_word WANT - ec_word TO - ec_word RUN - ec_word QUES + .2byte EC_WORD_YAY + .2byte EC_WORD_EXCL + .2byte EC_WORD_WANT + .2byte EC_WORD_TO + .2byte EC_WORD_RUN + .2byte EC_WORD_QUES @ loss speech - ec_word A - ec_word SWIFT_SWIM - ec_word WOULD - ec_word BE - ec_word GOOD - ec_word TOO + .2byte EC_WORD_A + .2byte EC_WORD_SWIFT_SWIM + .2byte EC_WORD_WOULD + .2byte EC_WORD_BE + .2byte EC_WORD_GOOD + .2byte EC_WORD_TOO .4byte gSlateportBattleTentTrainerMons_Colten @ 10 .4byte TRAINER_CLASS_BUG_MANIAC .string "IRVIN$", 8 @ pre-battle speech - ec_word HAVE - ec_word A - ec_word LOOK - ec_word AT - ec_word MY - ec_move1 CONFUSE_RAY + .2byte EC_WORD_HAVE + .2byte EC_WORD_A + .2byte EC_WORD_LOOK + .2byte EC_WORD_AT + .2byte EC_WORD_MY + .2byte EC_MOVE(CONFUSE_RAY) @ win speech - ec_word YAHOO - ec_word MY - ec_move1 CONFUSE_RAY - ec_word IS - ec_word THE - ec_word BEST + .2byte EC_WORD_YAHOO + .2byte EC_WORD_MY + .2byte EC_MOVE(CONFUSE_RAY) + .2byte EC_WORD_IS + .2byte EC_WORD_THE + .2byte EC_WORD_BEST @ loss speech - ec_word GWAH - ec_word EXCL_EXCL + .2byte EC_WORD_GWAH + .2byte EC_WORD_EXCL_EXCL .2byte -1 - ec_word I_AM - ec_word SORRY - ec_word EXCL + .2byte EC_WORD_I_AM + .2byte EC_WORD_SORRY + .2byte EC_WORD_EXCL .4byte gSlateportBattleTentTrainerMons_Irvin @ 11 .4byte TRAINER_CLASS_GENTLEMAN .string "SHAUN$", 8 @ pre-battle speech - ec_word LISTEN - ec_word ELLIPSIS - ec_word YOU - ec_word AREN_T - ec_word VERY - ec_word GOOD + .2byte EC_WORD_LISTEN + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_YOU + .2byte EC_WORD_AREN_T + .2byte EC_WORD_VERY + .2byte EC_WORD_GOOD @ win speech - ec_word YOU - ec_word SEE - ec_word QUES - ec_word I - ec_word WAS - ec_word RIGHT + .2byte EC_WORD_YOU + .2byte EC_WORD_SEE + .2byte EC_WORD_QUES + .2byte EC_WORD_I + .2byte EC_WORD_WAS + .2byte EC_WORD_RIGHT @ loss speech - ec_word YES - ec_word YES - ec_word ELLIPSIS - ec_word YOU_RE - ec_word QUITE - ec_word SOMETHING + .2byte EC_WORD_YES + .2byte EC_WORD_YES + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_QUITE + .2byte EC_WORD_SOMETHING .4byte gSlateportBattleTentTrainerMons_Shaun @ 12 .4byte TRAINER_CLASS_GUITARIST .string "KYLER$", 8 @ pre-battle speech - 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 + .2byte EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS + .2byte EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS + .2byte EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS + .2byte EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS + .2byte EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS + .2byte EC_WORD_QUES @ win speech - 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 + .2byte EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS + .2byte EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS + .2byte EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS + .2byte EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS + .2byte EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS + .2byte EC_WORD_YAY @ loss speech - 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 + .2byte EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS + .2byte EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS + .2byte EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS + .2byte EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS + .2byte EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS + .2byte EC_WORD_WOW .4byte gSlateportBattleTentTrainerMons_Kyler @ 13 .4byte TRAINER_CLASS_SCHOOL_KID_2 .string "MAGGIE$", 8 @ pre-battle speech - ec_pokemon1 VULPIX - ec_pokemon1 XATU - ec_pokemon2 UMBREON - ec_word ELLIPSIS - ec_word UM - ec_word ELLIPSIS + .2byte EC_POKEMON(VULPIX) + .2byte EC_POKEMON(XATU) + .2byte EC_POKEMON2(UMBREON) + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_UM + .2byte EC_WORD_ELLIPSIS @ win speech - ec_pokemon1 NOSEPASS - ec_word ELLIPSIS - ec_word UM - ec_pokemon1 SEVIPER - ec_word EXCL + .2byte EC_POKEMON(NOSEPASS) + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_UM + .2byte EC_POKEMON(SEVIPER) + .2byte EC_WORD_EXCL .2byte -1 @ loss speech - ec_pokemon1 NOSEPASS - ec_word ELLIPSIS - ec_word UM - ec_pokemon2 SNORLAX - ec_word ELLIPSIS - ec_word UH_OH + .2byte EC_POKEMON(NOSEPASS) + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_UM + .2byte EC_POKEMON2(SNORLAX) + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_UH_OH .4byte gSlateportBattleTentTrainerMons_Maggie @ 14 .4byte TRAINER_CLASS_COOLTRAINER_1 .string "STEPHON$", 8 @ pre-battle speech - ec_word I_AM - ec_word GOING - ec_word TO - ec_word ENJOY - ec_word AN - ec_word EGG + .2byte EC_WORD_I_AM + .2byte EC_WORD_GOING + .2byte EC_WORD_TO + .2byte EC_WORD_ENJOY + .2byte EC_WORD_AN + .2byte EC_WORD_EGG @ win speech - ec_word I - ec_word WILL - ec_word ENJOY - ec_word THIS - ec_word TASTY - ec_word VICTORY + .2byte EC_WORD_I + .2byte EC_WORD_WILL + .2byte EC_WORD_ENJOY + .2byte EC_WORD_THIS + .2byte EC_WORD_TASTY + .2byte EC_WORD_VICTORY @ loss speech - ec_word AWFUL - ec_word EXCL_EXCL + .2byte EC_WORD_AWFUL + .2byte EC_WORD_EXCL_EXCL .2byte -1 - ec_word JUST - ec_word AWFUL - ec_word EXCL_EXCL + .2byte EC_WORD_JUST + .2byte EC_WORD_AWFUL + .2byte EC_WORD_EXCL_EXCL .4byte gSlateportBattleTentTrainerMons_Stephon @ 15 .4byte TRAINER_CLASS_COOLTRAINER_2 .string "REBECCA$", 8 @ pre-battle speech - ec_word THAT - ec_word EGG - ec_word HAS - ec_word A - ec_word TASTY - ec_word SHINE + .2byte EC_WORD_THAT + .2byte EC_WORD_EGG + .2byte EC_WORD_HAS + .2byte EC_WORD_A + .2byte EC_WORD_TASTY + .2byte EC_WORD_SHINE @ win speech - ec_word I - ec_word CAN_T - ec_word EXCL - ec_word SMELL - ec_word THAT - ec_word STENCH + .2byte EC_WORD_I + .2byte EC_WORD_CAN_T + .2byte EC_WORD_EXCL + .2byte EC_WORD_SMELL + .2byte EC_WORD_THAT + .2byte EC_WORD_STENCH @ loss speech - ec_word YOU - ec_word CAN_T - ec_word MAKE - ec_word ME - ec_word STOP - ec_word ELLIPSIS + .2byte EC_WORD_YOU + .2byte EC_WORD_CAN_T + .2byte EC_WORD_MAKE + .2byte EC_WORD_ME + .2byte EC_WORD_STOP + .2byte EC_WORD_ELLIPSIS .4byte gSlateportBattleTentTrainerMons_Rebecca @ 16 .4byte TRAINER_CLASS_POKEFAN_1 .string "REGGIE$", 8 @ pre-battle speech - ec_word POKEMON - ec_word COME - ec_word BEFORE - ec_word MONEY - ec_word OR - ec_word FAMILY + .2byte EC_WORD_POKEMON + .2byte EC_WORD_COME + .2byte EC_WORD_BEFORE + .2byte EC_WORD_MONEY + .2byte EC_WORD_OR + .2byte EC_WORD_FAMILY @ win speech - ec_word THAT_S - ec_word WHAT - ec_word IS - ec_word MAKING - ec_word ME - ec_word STRONG + .2byte EC_WORD_THAT_S + .2byte EC_WORD_WHAT + .2byte EC_WORD_IS + .2byte EC_WORD_MAKING + .2byte EC_WORD_ME + .2byte EC_WORD_STRONG @ loss speech - ec_word THAT_S - ec_word WHY - ec_word I_AM - ec_word SO - ec_word THICK - ec_word ELLIPSIS + .2byte EC_WORD_THAT_S + .2byte EC_WORD_WHY + .2byte EC_WORD_I_AM + .2byte EC_WORD_SO + .2byte EC_WORD_THICK + .2byte EC_WORD_ELLIPSIS .4byte gSlateportBattleTentTrainerMons_Reggie @ 17 .4byte TRAINER_CLASS_POKEFAN_2 .string "JANAE$", 8 @ pre-battle speech - ec_word I - ec_word JUST - ec_word ADORE - ec_word YOUR - ec_word TOUGH - ec_word LOOK + .2byte EC_WORD_I + .2byte EC_WORD_JUST + .2byte EC_WORD_ADORE + .2byte EC_WORD_YOUR + .2byte EC_WORD_TOUGH + .2byte EC_WORD_LOOK @ win speech - ec_word I - ec_word LIKE - ec_word HOW - ec_word YOU - ec_move2 STRUGGLE + .2byte EC_WORD_I + .2byte EC_WORD_LIKE + .2byte EC_WORD_HOW + .2byte EC_WORD_YOU + .2byte EC_MOVE2(STRUGGLE) .2byte -1 @ loss speech - ec_word YOU_RE - ec_word A - ec_word MEAN - ec_word AND - ec_word AWFUL - ec_word TRAINER + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_A + .2byte EC_WORD_MEAN + .2byte EC_WORD_AND + .2byte EC_WORD_AWFUL + .2byte EC_WORD_TRAINER .4byte gSlateportBattleTentTrainerMons_Janae @ 18 .4byte TRAINER_CLASS_EXPERT_1 .string "CAIDEN$", 8 @ pre-battle speech - ec_word MY - ec_move2 CURSE - ec_word WILL - ec_word BREAK - ec_word YOUR - ec_word SPIRIT + .2byte EC_WORD_MY + .2byte EC_MOVE2(CURSE) + .2byte EC_WORD_WILL + .2byte EC_WORD_BREAK + .2byte EC_WORD_YOUR + .2byte EC_WORD_SPIRIT @ win speech - ec_move2 CURSE - ec_word QUES - ec_word IT_S - ec_word A - ec_word LIE - ec_word ELLIPSIS + .2byte EC_MOVE2(CURSE) + .2byte EC_WORD_QUES + .2byte EC_WORD_IT_S + .2byte EC_WORD_A + .2byte EC_WORD_LIE + .2byte EC_WORD_ELLIPSIS @ loss speech - ec_word MY - ec_move2 CURSE - ec_word WILL - ec_word LAST - ec_word FOREVER + .2byte EC_WORD_MY + .2byte EC_MOVE2(CURSE) + .2byte EC_WORD_WILL + .2byte EC_WORD_LAST + .2byte EC_WORD_FOREVER .2byte -1 .4byte gSlateportBattleTentTrainerMons_Caiden @@ -498,77 +498,77 @@ gSlateportBattleTentTrainers:: @ 85DDA14 .4byte TRAINER_CLASS_EXPERT_2 .string "KIRSTEN$", 8 @ pre-battle speech - ec_word HUH_QUES - ec_word A - ec_word BATTLE - ec_word YOU - ec_word SAID - ec_word QUES + .2byte EC_WORD_HUH_QUES + .2byte EC_WORD_A + .2byte EC_WORD_BATTLE + .2byte EC_WORD_YOU + .2byte EC_WORD_SAID + .2byte EC_WORD_QUES @ win speech - ec_word HUH_QUES - ec_word STRONG - ec_word BUT - ec_word NOT - ec_word STRONG - ec_word ENOUGH + .2byte EC_WORD_HUH_QUES + .2byte EC_WORD_STRONG + .2byte EC_WORD_BUT + .2byte EC_WORD_NOT + .2byte EC_WORD_STRONG + .2byte EC_WORD_ENOUGH @ loss speech - ec_word HUH_QUES - ec_word I - ec_word SURRENDER - ec_word TO - ec_word YOUR - ec_move1 STRENGTH + .2byte EC_WORD_HUH_QUES + .2byte EC_WORD_I + .2byte EC_WORD_SURRENDER + .2byte EC_WORD_TO + .2byte EC_WORD_YOUR + .2byte EC_MOVE(STRENGTH) .4byte gSlateportBattleTentTrainerMons_Kirsten @ 20 .4byte TRAINER_CLASS_YOUNGSTER .string "KURTIS$", 8 @ pre-battle speech - ec_word SORRY - ec_word YOU_RE - ec_word GOING - ec_word TO - ec_word GET - ec_move2 BEAT_UP + .2byte EC_WORD_SORRY + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_GOING + .2byte EC_WORD_TO + .2byte EC_WORD_GET + .2byte EC_MOVE2(BEAT_UP) @ win speech - ec_word I - ec_word SAID - ec_word WE - ec_word WOULD - ec_move2 POUND - ec_word YOU + .2byte EC_WORD_I + .2byte EC_WORD_SAID + .2byte EC_WORD_WE + .2byte EC_WORD_WOULD + .2byte EC_MOVE2(POUND) + .2byte EC_WORD_YOU @ loss speech - ec_word HOW - ec_word DID - ec_word I - ec_word GET - ec_move2 BEAT_UP - ec_word QUES + .2byte EC_WORD_HOW + .2byte EC_WORD_DID + .2byte EC_WORD_I + .2byte EC_WORD_GET + .2byte EC_MOVE2(BEAT_UP) + .2byte EC_WORD_QUES .4byte gSlateportBattleTentTrainerMons_Kurtis @ 21 .4byte TRAINER_CLASS_FISHERMAN .string "STEFAN$", 8 @ pre-battle speech - ec_word I - ec_word ONLY - ec_word WANT - ec_word CUTE - ec_word POKEMON + .2byte EC_WORD_I + .2byte EC_WORD_ONLY + .2byte EC_WORD_WANT + .2byte EC_WORD_CUTE + .2byte EC_WORD_POKEMON .2byte -1 @ win speech - ec_word WHAT - ec_word IS - ec_word IT - ec_word TO - ec_word YOU - ec_word QUES + .2byte EC_WORD_WHAT + .2byte EC_WORD_IS + .2byte EC_WORD_IT + .2byte EC_WORD_TO + .2byte EC_WORD_YOU + .2byte EC_WORD_QUES @ loss speech - ec_word YOU_RE - ec_word KIND - ec_word OF - ec_word AWESOME - ec_word ELLIPSIS + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_KIND + .2byte EC_WORD_OF + .2byte EC_WORD_AWESOME + .2byte EC_WORD_ELLIPSIS .2byte -1 .4byte gSlateportBattleTentTrainerMons_Stefan @@ -576,51 +576,51 @@ gSlateportBattleTentTrainers:: @ 85DDA14 .4byte TRAINER_CLASS_BIRD_KEEPER .string "AVERY$", 8 @ pre-battle speech - ec_word TOYS - ec_word EXCL - ec_word I - ec_word NEED - ec_word MORE - ec_word TOYS + .2byte EC_WORD_TOYS + .2byte EC_WORD_EXCL + .2byte EC_WORD_I + .2byte EC_WORD_NEED + .2byte EC_WORD_MORE + .2byte EC_WORD_TOYS @ win speech - ec_word I - ec_word NEED - ec_word SOME - ec_word EASY - ec_word MONEY - ec_word FAST + .2byte EC_WORD_I + .2byte EC_WORD_NEED + .2byte EC_WORD_SOME + .2byte EC_WORD_EASY + .2byte EC_WORD_MONEY + .2byte EC_WORD_FAST @ loss speech - ec_word I - ec_word NEED - ec_word TO - ec_word WORK - ec_word FOR - ec_word MONEY + .2byte EC_WORD_I + .2byte EC_WORD_NEED + .2byte EC_WORD_TO + .2byte EC_WORD_WORK + .2byte EC_WORD_FOR + .2byte EC_WORD_MONEY .4byte gSlateportBattleTentTrainerMons_Avery @ 23 .4byte TRAINER_CLASS_NINJA_BOY .string "DWANE$", 8 @ pre-battle speech - ec_word MMM - ec_word TASTY - ec_word ELLIPSIS - ec_word WONDER - ec_word WHAT - ec_word QUES + .2byte EC_WORD_MMM + .2byte EC_WORD_TASTY + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_WONDER + .2byte EC_WORD_WHAT + .2byte EC_WORD_QUES @ win speech - ec_word MMM - ec_word MMM - ec_word ELLIPSIS - ec_word YOU - ec_word DON_T - ec_word KNOW + .2byte EC_WORD_MMM + .2byte EC_WORD_MMM + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_YOU + .2byte EC_WORD_DON_T + .2byte EC_WORD_KNOW @ loss speech - ec_word MMM - ec_word MMM - ec_word ELLIPSIS - ec_word OH_YEAH - ec_word THIS_IS_IT_EXCL + .2byte EC_WORD_MMM + .2byte EC_WORD_MMM + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_OH_YEAH + .2byte EC_WORD_THIS_IS_IT_EXCL .2byte -1 .4byte gSlateportBattleTentTrainerMons_Dwane @@ -628,21 +628,21 @@ gSlateportBattleTentTrainers:: @ 85DDA14 .4byte TRAINER_CLASS_PARASOL_LADY .string "MCKENNA$", 8 @ pre-battle speech - ec_word I - ec_word DISLIKE - ec_word SMALL - ec_word TALK - ec_word LET_S - ec_word GO + .2byte EC_WORD_I + .2byte EC_WORD_DISLIKE + .2byte EC_WORD_SMALL + .2byte EC_WORD_TALK + .2byte EC_WORD_LET_S + .2byte EC_WORD_GO @ win speech - ec_word YUP - ec_word THAT_S - ec_word THAT + .2byte EC_WORD_YUP + .2byte EC_WORD_THAT_S + .2byte EC_WORD_THAT .2byte -1 .2byte -1 .2byte -1 @ loss speech - ec_word KTHX_BYE + .2byte EC_WORD_KTHX_BYE .2byte -1 .2byte -1 .2byte -1 @@ -654,51 +654,51 @@ gSlateportBattleTentTrainers:: @ 85DDA14 .4byte TRAINER_CLASS_SWIMMER_F .string "CAMRYN$", 8 @ pre-battle speech - ec_word MR - ec_word JUDGE - ec_word YOU - ec_word HAVE - ec_word OUR - ec_word TRUST + .2byte EC_WORD_MR + .2byte EC_WORD_JUDGE + .2byte EC_WORD_YOU + .2byte EC_WORD_HAVE + .2byte EC_WORD_OUR + .2byte EC_WORD_TRUST @ win speech - ec_word YES_SIR_EXCL - ec_word WE_RE - ec_word NO_1 - ec_word IN - ec_word THIS - ec_word CONTEST + .2byte EC_WORD_YES_SIR_EXCL + .2byte EC_WORD_WE_RE + .2byte EC_WORD_NO_1 + .2byte EC_WORD_IN + .2byte EC_WORD_THIS + .2byte EC_WORD_CONTEST @ loss speech - ec_word I - ec_word WON_T - ec_word GIVE_UP - ec_word MY - ec_word IDOL - ec_word DREAM + .2byte EC_WORD_I + .2byte EC_WORD_WON_T + .2byte EC_WORD_GIVE_UP + .2byte EC_WORD_MY + .2byte EC_WORD_IDOL + .2byte EC_WORD_DREAM .4byte gSlateportBattleTentTrainerMons_Camryn @ 26 .4byte TRAINER_CLASS_PICNICKER .string "NATASHA$", 8 @ pre-battle speech - ec_word COME_OVER - ec_word TO - ec_word MY - ec_word PLACE - ec_word OK_QUES + .2byte EC_WORD_COME_OVER + .2byte EC_WORD_TO + .2byte EC_WORD_MY + .2byte EC_WORD_PLACE + .2byte EC_WORD_OK_QUES .2byte -1 @ win speech - ec_word COME_ON - ec_word OVER - ec_word IT - ec_word WILL - ec_word BE - ec_word GREAT + .2byte EC_WORD_COME_ON + .2byte EC_WORD_OVER + .2byte EC_WORD_IT + .2byte EC_WORD_WILL + .2byte EC_WORD_BE + .2byte EC_WORD_GREAT @ loss speech - ec_word AWW - ec_word WON_T - ec_word YOU - ec_word COME_OVER - ec_word QUES + .2byte EC_WORD_AWW + .2byte EC_WORD_WON_T + .2byte EC_WORD_YOU + .2byte EC_WORD_COME_OVER + .2byte EC_WORD_QUES .2byte -1 .4byte gSlateportBattleTentTrainerMons_Natasha @@ -706,76 +706,76 @@ gSlateportBattleTentTrainers:: @ 85DDA14 .4byte TRAINER_CLASS_SAILOR .string "AUSTYN$", 8 @ pre-battle speech - ec_word I - ec_word DON_T - ec_word CARE - ec_word HOW - ec_word WE - ec_word MATCH_UP + .2byte EC_WORD_I + .2byte EC_WORD_DON_T + .2byte EC_WORD_CARE + .2byte EC_WORD_HOW + .2byte EC_WORD_WE + .2byte EC_WORD_MATCH_UP @ win speech - ec_word HAH - ec_word BACK - ec_word TO - ec_word SCHOOL - ec_word FOR - ec_word YOU + .2byte EC_WORD_HAH + .2byte EC_WORD_BACK + .2byte EC_WORD_TO + .2byte EC_WORD_SCHOOL + .2byte EC_WORD_FOR + .2byte EC_WORD_YOU @ loss speech - ec_word I - ec_word NEED - ec_word TO - ec_word STUDY - ec_word MY - ec_word LESSONS + .2byte EC_WORD_I + .2byte EC_WORD_NEED + .2byte EC_WORD_TO + .2byte EC_WORD_STUDY + .2byte EC_WORD_MY + .2byte EC_WORD_LESSONS .4byte gSlateportBattleTentTrainerMons_Austyn @ 28 .4byte TRAINER_CLASS_COLLECTOR .string "DONOVAN$", 8 @ pre-battle speech - ec_word OH - ec_word I_AM - ec_word FEELING - ec_word SLIMY - ec_word ALL - ec_word OVER + .2byte EC_WORD_OH + .2byte EC_WORD_I_AM + .2byte EC_WORD_FEELING + .2byte EC_WORD_SLIMY + .2byte EC_WORD_ALL + .2byte EC_WORD_OVER @ win speech - ec_word YOU_RE - ec_word GOING - ec_word DOWN - ec_word THE - ec_move2 MEGA_DRAIN - ec_word HAHAHA + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_GOING + .2byte EC_WORD_DOWN + .2byte EC_WORD_THE + .2byte EC_MOVE2(MEGA_DRAIN) + .2byte EC_WORD_HAHAHA @ loss speech - ec_word I_AM - ec_word NATURALLY - ec_word SLIMY - ec_word THAT_S - ec_word WHAT - ec_word I_AM + .2byte EC_WORD_I_AM + .2byte EC_WORD_NATURALLY + .2byte EC_WORD_SLIMY + .2byte EC_WORD_THAT_S + .2byte EC_WORD_WHAT + .2byte EC_WORD_I_AM .4byte gSlateportBattleTentTrainerMons_Donovan @ 29 .4byte TRAINER_CLASS_LASS .string "TAMIA$", 8 @ pre-battle speech - ec_word I_AM - ec_word ANGRY - ec_word WITH - ec_word MY - ec_word FATHER - ec_word ELLIPSIS + .2byte EC_WORD_I_AM + .2byte EC_WORD_ANGRY + .2byte EC_WORD_WITH + .2byte EC_WORD_MY + .2byte EC_WORD_FATHER + .2byte EC_WORD_ELLIPSIS @ win speech - ec_word I - ec_word REALLY - ec_word DISLIKE - ec_word MY - ec_word FATHER - ec_word EXCL + .2byte EC_WORD_I + .2byte EC_WORD_REALLY + .2byte EC_WORD_DISLIKE + .2byte EC_WORD_MY + .2byte EC_WORD_FATHER + .2byte EC_WORD_EXCL @ loss speech - ec_word I - ec_word JUST - ec_word SO - ec_word ADORE - ec_word MY - ec_word FATHER + .2byte EC_WORD_I + .2byte EC_WORD_JUST + .2byte EC_WORD_SO + .2byte EC_WORD_ADORE + .2byte EC_WORD_MY + .2byte EC_WORD_FATHER .4byte gSlateportBattleTentTrainerMons_Tamia diff --git a/data/battle_frontier/verdanturf_battle_tent_trainers.inc b/data/battle_frontier/verdanturf_battle_tent_trainers.inc index af9a03910..aa028c600 100644 --- a/data/battle_frontier/verdanturf_battle_tent_trainers.inc +++ b/data/battle_frontier/verdanturf_battle_tent_trainers.inc @@ -4,413 +4,413 @@ gVerdanturfBattleTentTrainers:: @ 85DE610 .4byte TRAINER_CLASS_AROMA_LADY .string "BRENNA$", 8 @ pre-battle speech - ec_word NO - ec_word DAYS - ec_word GO - ec_word WITHOUT - ec_word MY - ec_move1 FAKE_TEARS + .2byte EC_WORD_NO + .2byte EC_WORD_DAYS + .2byte EC_WORD_GO + .2byte EC_WORD_WITHOUT + .2byte EC_WORD_MY + .2byte EC_MOVE(FAKE_TEARS) @ win speech - ec_word OH - ec_word THAT_WAS - ec_word SO - ec_word REFRESHING - ec_word EXCL + .2byte EC_WORD_OH + .2byte EC_WORD_THAT_WAS + .2byte EC_WORD_SO + .2byte EC_WORD_REFRESHING + .2byte EC_WORD_EXCL .2byte -1 @ loss speech - ec_word ALL - ec_word I - ec_word EVER - ec_word GET - ec_word IS - ec_move1 TORMENT + .2byte EC_WORD_ALL + .2byte EC_WORD_I + .2byte EC_WORD_EVER + .2byte EC_WORD_GET + .2byte EC_WORD_IS + .2byte EC_MOVE(TORMENT) .4byte gVerdanturfBattleTentTrainerMons_Brenna @ 1 .4byte TRAINER_CLASS_RUIN_MANIAC .string "DILAN$", 8 @ pre-battle speech - ec_word YOU - ec_word DON_T - ec_word KNOW - ec_word HOW - ec_word BORED - ec_word I_AM + .2byte EC_WORD_YOU + .2byte EC_WORD_DON_T + .2byte EC_WORD_KNOW + .2byte EC_WORD_HOW + .2byte EC_WORD_BORED + .2byte EC_WORD_I_AM @ win speech - ec_word LOSING - ec_word ISN_T - ec_word EXCITING - ec_word AT - ec_word ALL - ec_word ELLIPSIS + .2byte EC_WORD_LOSING + .2byte EC_WORD_ISN_T + .2byte EC_WORD_EXCITING + .2byte EC_WORD_AT + .2byte EC_WORD_ALL + .2byte EC_WORD_ELLIPSIS @ loss speech - ec_word EXCITING - ec_word EXCL_EXCL - ec_word BYE_BYE - ec_word TO - ec_word BEING - ec_word BORED + .2byte EC_WORD_EXCITING + .2byte EC_WORD_EXCL_EXCL + .2byte EC_WORD_BYE_BYE + .2byte EC_WORD_TO + .2byte EC_WORD_BEING + .2byte EC_WORD_BORED .4byte gVerdanturfBattleTentTrainerMons_Dilan @ 2 .4byte TRAINER_CLASS_TUBER_1 .string "ELIANA$", 8 @ pre-battle speech - ec_word I_AM - ec_word GOING - ec_word ON - ec_word A - ec_word VACATION - ec_word SOON + .2byte EC_WORD_I_AM + .2byte EC_WORD_GOING + .2byte EC_WORD_ON + .2byte EC_WORD_A + .2byte EC_WORD_VACATION + .2byte EC_WORD_SOON @ win speech - ec_word I - ec_word NEED - ec_word TO - ec_word GET - ec_word SOME - ec_word MONEY + .2byte EC_WORD_I + .2byte EC_WORD_NEED + .2byte EC_WORD_TO + .2byte EC_WORD_GET + .2byte EC_WORD_SOME + .2byte EC_WORD_MONEY @ loss speech - ec_word NO - ec_word SLEEP - ec_word UNTIL - ec_word I - ec_word GET - ec_word HOME + .2byte EC_WORD_NO + .2byte EC_WORD_SLEEP + .2byte EC_WORD_UNTIL + .2byte EC_WORD_I + .2byte EC_WORD_GET + .2byte EC_WORD_HOME .4byte gVerdanturfBattleTentTrainerMons_Eliana @ 3 .4byte TRAINER_CLASS_TUBER_2 .string "MARKUS$", 8 @ pre-battle speech - ec_word I_AM - ec_word SMART - ec_word EXCL - ec_word IF_I_LOSE - ec_word I - ec_move1 SELF_DESTRUCT + .2byte EC_WORD_I_AM + .2byte EC_WORD_SMART + .2byte EC_WORD_EXCL + .2byte EC_WORD_IF_I_LOSE + .2byte EC_WORD_I + .2byte EC_MOVE(SELF_DESTRUCT) @ win speech - ec_word IT_S - ec_word A - ec_word NON_STOP - ec_move2 EXPLOSION - ec_word OF - ec_word JOY + .2byte EC_WORD_IT_S + .2byte EC_WORD_A + .2byte EC_WORD_NON_STOP + .2byte EC_MOVE2(EXPLOSION) + .2byte EC_WORD_OF + .2byte EC_WORD_JOY @ loss speech - ec_word I_VE - ec_word LOST - ec_word ELLIPSIS - ec_word TIME - ec_word TO - ec_move1 SELF_DESTRUCT + .2byte EC_WORD_I_VE + .2byte EC_WORD_LOST + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_TIME + .2byte EC_WORD_TO + .2byte EC_MOVE(SELF_DESTRUCT) .4byte gVerdanturfBattleTentTrainerMons_Markus @ 4 .4byte TRAINER_CLASS_LADY .string "CAITLYN$", 8 @ pre-battle speech - ec_word I_AM - ec_word BORED - ec_word OF - ec_word BEING - ec_word AN - ec_word IDOL + .2byte EC_WORD_I_AM + .2byte EC_WORD_BORED + .2byte EC_WORD_OF + .2byte EC_WORD_BEING + .2byte EC_WORD_AN + .2byte EC_WORD_IDOL @ win speech - ec_word A - ec_word BATTLE - ec_word IS - ec_word BEST - ec_word FOR - ec_word HAPPINESS + .2byte EC_WORD_A + .2byte EC_WORD_BATTLE + .2byte EC_WORD_IS + .2byte EC_WORD_BEST + .2byte EC_WORD_FOR + .2byte EC_WORD_HAPPINESS @ loss speech - ec_word LOSING - ec_word DOESN_T - ec_word BUG - ec_word ME - ec_word AT - ec_word ALL + .2byte EC_WORD_LOSING + .2byte EC_WORD_DOESN_T + .2byte EC_WORD_BUG + .2byte EC_WORD_ME + .2byte EC_WORD_AT + .2byte EC_WORD_ALL .4byte gVerdanturfBattleTentTrainerMons_Caitlyn @ 5 .4byte TRAINER_CLASS_BEAUTY .string "DESIREE$", 8 @ pre-battle speech - ec_word DOESN_T - ec_word MY - ec_word BEAUTY - ec_move1 ASTONISH - ec_word YOU - ec_word QUES + .2byte EC_WORD_DOESN_T + .2byte EC_WORD_MY + .2byte EC_WORD_BEAUTY + .2byte EC_MOVE(ASTONISH) + .2byte EC_WORD_YOU + .2byte EC_WORD_QUES @ win speech - ec_word DID - ec_word I - ec_word INTIMIDATE - ec_word YOU - ec_word QUES + .2byte EC_WORD_DID + .2byte EC_WORD_I + .2byte EC_WORD_INTIMIDATE + .2byte EC_WORD_YOU + .2byte EC_WORD_QUES .2byte -1 @ loss speech - ec_word MY - ec_word BEAUTY - ec_word DID - ec_word NOTHING - ec_word FOR - ec_word YOU + .2byte EC_WORD_MY + .2byte EC_WORD_BEAUTY + .2byte EC_WORD_DID + .2byte EC_WORD_NOTHING + .2byte EC_WORD_FOR + .2byte EC_WORD_YOU .4byte gVerdanturfBattleTentTrainerMons_Desiree @ 6 .4byte TRAINER_CLASS_RICH_BOY .string "RONALD$", 8 @ pre-battle speech - ec_word COME_ON - ec_word I - ec_word WILL - ec_word BATTLE - ec_word SERIOUSLY + .2byte EC_WORD_COME_ON + .2byte EC_WORD_I + .2byte EC_WORD_WILL + .2byte EC_WORD_BATTLE + .2byte EC_WORD_SERIOUSLY .2byte -1 @ win speech - ec_word GIVE_UP - ec_word QUES + .2byte EC_WORD_GIVE_UP + .2byte EC_WORD_QUES .2byte -1 - ec_word THAT_S - ec_word REALLY - ec_word WEAK + .2byte EC_WORD_THAT_S + .2byte EC_WORD_REALLY + .2byte EC_WORD_WEAK @ loss speech - ec_word I - ec_word NEED - ec_word TO - ec_word DO - ec_word A - ec_move2 BATON_PASS + .2byte EC_WORD_I + .2byte EC_WORD_NEED + .2byte EC_WORD_TO + .2byte EC_WORD_DO + .2byte EC_WORD_A + .2byte EC_MOVE2(BATON_PASS) .4byte gVerdanturfBattleTentTrainerMons_Ronald @ 7 .4byte TRAINER_CLASS_POKEMANIAC .string "ASHTEN$", 8 @ pre-battle speech - ec_word OH_YEAH - ec_word ANOTHER - ec_word EXCITING - ec_word BATTLE - ec_word EXCL + .2byte EC_WORD_OH_YEAH + .2byte EC_WORD_ANOTHER + .2byte EC_WORD_EXCITING + .2byte EC_WORD_BATTLE + .2byte EC_WORD_EXCL .2byte -1 @ win speech - ec_word YOUR - ec_word POKEMON - ec_word ARE - ec_word WIMPY - ec_word AND - ec_word BORING + .2byte EC_WORD_YOUR + .2byte EC_WORD_POKEMON + .2byte EC_WORD_ARE + .2byte EC_WORD_WIMPY + .2byte EC_WORD_AND + .2byte EC_WORD_BORING @ loss speech - ec_word THAT_WAS - ec_word AN - ec_word EXCITING - ec_word LOSS - ec_word WOW - ec_word EXCL + .2byte EC_WORD_THAT_WAS + .2byte EC_WORD_AN + .2byte EC_WORD_EXCITING + .2byte EC_WORD_LOSS + .2byte EC_WORD_WOW + .2byte EC_WORD_EXCL .4byte gVerdanturfBattleTentTrainerMons_Ashten @ 8 .4byte TRAINER_CLASS_SWIMMER_M .string "GERARD$", 8 @ pre-battle speech - ec_word LOOK - ec_word AT - ec_word MY - ec_word SUPER - ec_move2 TEETER_DANCE - ec_word EXCL + .2byte EC_WORD_LOOK + .2byte EC_WORD_AT + .2byte EC_WORD_MY + .2byte EC_WORD_SUPER + .2byte EC_MOVE2(TEETER_DANCE) + .2byte EC_WORD_EXCL @ win speech - ec_word THAT_WAS - ec_word HARD - ec_word ELLIPSIS - ec_word AM - ec_word I - ec_word OK_QUES + .2byte EC_WORD_THAT_WAS + .2byte EC_WORD_HARD + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_AM + .2byte EC_WORD_I + .2byte EC_WORD_OK_QUES @ loss speech - ec_word I - ec_word WON_T - ec_word FORGIVE - ec_word YOU - ec_word FOR - ec_word THAT + .2byte EC_WORD_I + .2byte EC_WORD_WON_T + .2byte EC_WORD_FORGIVE + .2byte EC_WORD_YOU + .2byte EC_WORD_FOR + .2byte EC_WORD_THAT .4byte gVerdanturfBattleTentTrainerMons_Gerard @ 9 .4byte TRAINER_CLASS_CAMPER .string "BRADLY$", 8 @ pre-battle speech - ec_word IT_S - ec_word LONESOME - ec_word BUT - ec_word I - ec_word VACATION - ec_word ALONE + .2byte EC_WORD_IT_S + .2byte EC_WORD_LONESOME + .2byte EC_WORD_BUT + .2byte EC_WORD_I + .2byte EC_WORD_VACATION + .2byte EC_WORD_ALONE @ win speech - ec_word I - ec_word WILL - ec_move1 WITHDRAW - ec_word INSIDE - ec_word MY - ec_word SHELL_ARMOR + .2byte EC_WORD_I + .2byte EC_WORD_WILL + .2byte EC_MOVE(WITHDRAW) + .2byte EC_WORD_INSIDE + .2byte EC_WORD_MY + .2byte EC_WORD_SHELL_ARMOR @ loss speech - ec_word OH - ec_word ELLIPSIS + .2byte EC_WORD_OH + .2byte EC_WORD_ELLIPSIS .2byte -1 - ec_word ALONE - ec_word AS - ec_word ALWAYS + .2byte EC_WORD_ALONE + .2byte EC_WORD_AS + .2byte EC_WORD_ALWAYS .4byte gVerdanturfBattleTentTrainerMons_Bradly @ 10 .4byte TRAINER_CLASS_BUG_MANIAC .string "DENNIS$", 8 @ pre-battle speech - ec_word ARE - ec_word YOU - ec_word REALLY - ec_word STRONG - ec_word QUES + .2byte EC_WORD_ARE + .2byte EC_WORD_YOU + .2byte EC_WORD_REALLY + .2byte EC_WORD_STRONG + .2byte EC_WORD_QUES .2byte -1 @ win speech - ec_word WAHAHAHA - ec_word EXCL + .2byte EC_WORD_WAHAHAHA + .2byte EC_WORD_EXCL .2byte -1 - ec_word WAHAHAHA - ec_word EXCL_EXCL + .2byte EC_WORD_WAHAHAHA + .2byte EC_WORD_EXCL_EXCL .2byte -1 @ loss speech - ec_word NICE - ec_word GOING - ec_word EXCL - ec_word I - ec_word WAS - ec_word CHILD_S_PLAY + .2byte EC_WORD_NICE + .2byte EC_WORD_GOING + .2byte EC_WORD_EXCL + .2byte EC_WORD_I + .2byte EC_WORD_WAS + .2byte EC_WORD_CHILD_S_PLAY .4byte gVerdanturfBattleTentTrainerMons_Dennis @ 11 .4byte TRAINER_CLASS_GENTLEMAN .string "PRESTIN$", 8 @ pre-battle speech - ec_word THIS - ec_word IS - ec_word A - ec_move1 NIGHTMARE - ec_word FOR - ec_word YOU + .2byte EC_WORD_THIS + .2byte EC_WORD_IS + .2byte EC_WORD_A + .2byte EC_MOVE(NIGHTMARE) + .2byte EC_WORD_FOR + .2byte EC_WORD_YOU @ win speech - ec_word FORGIVE - ec_word ME - ec_word ELLIPSIS - ec_word IT_S - ec_word A - ec_word DREAM + .2byte EC_WORD_FORGIVE + .2byte EC_WORD_ME + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_IT_S + .2byte EC_WORD_A + .2byte EC_WORD_DREAM @ loss speech - ec_word I - ec_word WANT - ec_word TO - ec_word WAKE_UP - ec_word FROM - ec_word THIS + .2byte EC_WORD_I + .2byte EC_WORD_WANT + .2byte EC_WORD_TO + .2byte EC_WORD_WAKE_UP + .2byte EC_WORD_FROM + .2byte EC_WORD_THIS .4byte gVerdanturfBattleTentTrainerMons_Prestin @ 12 .4byte TRAINER_CLASS_GUITARIST .string "ERNESTO$", 8 @ pre-battle speech - ec_word THIS - ec_word PARTY - ec_word GOES - ec_word ON - ec_word FOREVER - ec_word EXCL + .2byte EC_WORD_THIS + .2byte EC_WORD_PARTY + .2byte EC_WORD_GOES + .2byte EC_WORD_ON + .2byte EC_WORD_FOREVER + .2byte EC_WORD_EXCL @ win speech - ec_word THE - ec_word MUSIC - ec_word PLAYS - ec_word ON - ec_word WITHOUT - ec_word END + .2byte EC_WORD_THE + .2byte EC_WORD_MUSIC + .2byte EC_WORD_PLAYS + .2byte EC_WORD_ON + .2byte EC_WORD_WITHOUT + .2byte EC_WORD_END @ loss speech - ec_word NO - ec_word EXCL - ec_word THE - ec_word MUSIC - ec_word CAN_T - ec_word STOP + .2byte EC_WORD_NO + .2byte EC_WORD_EXCL + .2byte EC_WORD_THE + .2byte EC_WORD_MUSIC + .2byte EC_WORD_CAN_T + .2byte EC_WORD_STOP .4byte gVerdanturfBattleTentTrainerMons_Ernesto @ 13 .4byte TRAINER_CLASS_SCHOOL_KID_2 .string "NALA$", 8 @ pre-battle speech - ec_word I - ec_word WANT - ec_word THE - ec_word WORLD - ec_word MOVIE - ec_word COLLECTION + .2byte EC_WORD_I + .2byte EC_WORD_WANT + .2byte EC_WORD_THE + .2byte EC_WORD_WORLD + .2byte EC_WORD_MOVIE + .2byte EC_WORD_COLLECTION @ win speech - ec_word I - ec_word DON_T - ec_word LIKE - ec_word RADIO - ec_word VERY - ec_word MUCH + .2byte EC_WORD_I + .2byte EC_WORD_DON_T + .2byte EC_WORD_LIKE + .2byte EC_WORD_RADIO + .2byte EC_WORD_VERY + .2byte EC_WORD_MUCH @ loss speech - ec_word I - ec_word REFUSE - ec_word TO - ec_word BELIEVE - ec_word THIS - ec_word EXCL + .2byte EC_WORD_I + .2byte EC_WORD_REFUSE + .2byte EC_WORD_TO + .2byte EC_WORD_BELIEVE + .2byte EC_WORD_THIS + .2byte EC_WORD_EXCL .4byte gVerdanturfBattleTentTrainerMons_Nala @ 14 .4byte TRAINER_CLASS_COOLTRAINER_1 .string "DARNELL$", 8 @ pre-battle speech - ec_word I - ec_word WILL - ec_word GO_EASY - ec_word ON - ec_word YOU + .2byte EC_WORD_I + .2byte EC_WORD_WILL + .2byte EC_WORD_GO_EASY + .2byte EC_WORD_ON + .2byte EC_WORD_YOU .2byte -1 @ win speech - ec_word YOUR - ec_move2 FRUSTRATION - ec_word SHOULD - ec_word BE - ec_word HIDDEN - ec_word AWAY + .2byte EC_WORD_YOUR + .2byte EC_MOVE2(FRUSTRATION) + .2byte EC_WORD_SHOULD + .2byte EC_WORD_BE + .2byte EC_WORD_HIDDEN + .2byte EC_WORD_AWAY @ loss speech - ec_word YOU_RE - ec_word TOO - ec_word MUCH - ec_word TO - ec_word TAKE - ec_word ELLIPSIS + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_TOO + .2byte EC_WORD_MUCH + .2byte EC_WORD_TO + .2byte EC_WORD_TAKE + .2byte EC_WORD_ELLIPSIS .4byte gVerdanturfBattleTentTrainerMons_Darnell @ 15 .4byte TRAINER_CLASS_COOLTRAINER_2 .string "ASHLYN$", 8 @ pre-battle speech - ec_word I - ec_word LOOK - ec_word TOUGH - ec_word DO - ec_word I - ec_word QUES + .2byte EC_WORD_I + .2byte EC_WORD_LOOK + .2byte EC_WORD_TOUGH + .2byte EC_WORD_DO + .2byte EC_WORD_I + .2byte EC_WORD_QUES @ win speech - ec_word I_AM - ec_word NOT - ec_word OVER - ec_word YOUR - ec_move2 TAUNT - ec_word YET + .2byte EC_WORD_I_AM + .2byte EC_WORD_NOT + .2byte EC_WORD_OVER + .2byte EC_WORD_YOUR + .2byte EC_MOVE2(TAUNT) + .2byte EC_WORD_YET @ loss speech - ec_word YOU_RE - ec_word MEAN - ec_word EXCL_EXCL + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_MEAN + .2byte EC_WORD_EXCL_EXCL .2byte -1 .2byte -1 .2byte -1 @@ -420,48 +420,48 @@ gVerdanturfBattleTentTrainers:: @ 85DE610 .4byte TRAINER_CLASS_POKEFAN_1 .string "ADDISON$", 8 @ pre-battle speech - ec_word YES - ec_word EXCL + .2byte EC_WORD_YES + .2byte EC_WORD_EXCL .2byte -1 - ec_word MY - ec_word POKEMON - ec_word EXCL + .2byte EC_WORD_MY + .2byte EC_WORD_POKEMON + .2byte EC_WORD_EXCL @ win speech - ec_word WELL - ec_word WASN_T - ec_word THAT - ec_word EASY - ec_word QUES + .2byte EC_WORD_WELL + .2byte EC_WORD_WASN_T + .2byte EC_WORD_THAT + .2byte EC_WORD_EASY + .2byte EC_WORD_QUES .2byte -1 @ loss speech - ec_word WAAAH - ec_word EXCL + .2byte EC_WORD_WAAAH + .2byte EC_WORD_EXCL .2byte -1 - ec_word BUT - ec_word WHY - ec_word QUES + .2byte EC_WORD_BUT + .2byte EC_WORD_WHY + .2byte EC_WORD_QUES .4byte gVerdanturfBattleTentTrainerMons_Addison @ 17 .4byte TRAINER_CLASS_POKEFAN_2 .string "JUSTINE$", 8 @ pre-battle speech - ec_word YES - ec_word EXCL + .2byte EC_WORD_YES + .2byte EC_WORD_EXCL .2byte -1 - ec_word COME_ON - ec_word I_AM - ec_word READY + .2byte EC_WORD_COME_ON + .2byte EC_WORD_I_AM + .2byte EC_WORD_READY @ win speech - ec_word YOU_RE - ec_word JUST - ec_word NOT - ec_word GOOD - ec_word ENOUGH - ec_word EXCL + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_JUST + .2byte EC_WORD_NOT + .2byte EC_WORD_GOOD + .2byte EC_WORD_ENOUGH + .2byte EC_WORD_EXCL @ loss speech - ec_word WOWEE - ec_word EXCL_EXCL + .2byte EC_WORD_WOWEE + .2byte EC_WORD_EXCL_EXCL .2byte -1 .2byte -1 .2byte -1 @@ -472,310 +472,310 @@ gVerdanturfBattleTentTrainers:: @ 85DE610 .4byte TRAINER_CLASS_EXPERT_1 .string "TYSON$", 8 @ pre-battle speech - ec_word YOU_RE - ec_word GOING - ec_word TO - ec_word PRESSURE - ec_word ME - ec_word QUES + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_GOING + .2byte EC_WORD_TO + .2byte EC_WORD_PRESSURE + .2byte EC_WORD_ME + .2byte EC_WORD_QUES @ win speech - ec_word WHAT - ec_word QUES - ec_word YOU_RE - ec_word MUCH - ec_word TOO_WEAK - ec_word EXCL + .2byte EC_WORD_WHAT + .2byte EC_WORD_QUES + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_MUCH + .2byte EC_WORD_TOO_WEAK + .2byte EC_WORD_EXCL @ loss speech - ec_word THIS - ec_word DOESN_T - ec_word MAKE - ec_word ME - ec_word HAPPY - ec_word EXCL + .2byte EC_WORD_THIS + .2byte EC_WORD_DOESN_T + .2byte EC_WORD_MAKE + .2byte EC_WORD_ME + .2byte EC_WORD_HAPPY + .2byte EC_WORD_EXCL .4byte gVerdanturfBattleTentTrainerMons_Tyson @ 19 .4byte TRAINER_CLASS_EXPERT_2 .string "LAILA$", 8 @ pre-battle speech - ec_word A - ec_move2 STRUGGLE - ec_word ISN_T - ec_word VERY - ec_word COOL + .2byte EC_WORD_A + .2byte EC_MOVE2(STRUGGLE) + .2byte EC_WORD_ISN_T + .2byte EC_WORD_VERY + .2byte EC_WORD_COOL .2byte -1 @ win speech - ec_word NOPE - ec_word NOT_VERY - ec_word COOL - ec_word AT - ec_word ALL - ec_word EXCL + .2byte EC_WORD_NOPE + .2byte EC_WORD_NOT_VERY + .2byte EC_WORD_COOL + .2byte EC_WORD_AT + .2byte EC_WORD_ALL + .2byte EC_WORD_EXCL @ loss speech - ec_word YOU_RE - ec_word NOT - ec_word COOL - ec_word BUT - ec_word YOU - ec_word WON + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_NOT + .2byte EC_WORD_COOL + .2byte EC_WORD_BUT + .2byte EC_WORD_YOU + .2byte EC_WORD_WON .4byte gVerdanturfBattleTentTrainerMons_Laila @ 20 .4byte TRAINER_CLASS_YOUNGSTER .string "WAREN$", 8 @ pre-battle speech - ec_word DANGER - ec_word EXCL + .2byte EC_WORD_DANGER + .2byte EC_WORD_EXCL .2byte -1 - ec_word I - ec_word SENSE - ec_word DANGER + .2byte EC_WORD_I + .2byte EC_WORD_SENSE + .2byte EC_WORD_DANGER @ win speech - ec_word DID - ec_word YOU - ec_word BELIEVE - ec_word MY - ec_word LIE - ec_word QUES_EXCL + .2byte EC_WORD_DID + .2byte EC_WORD_YOU + .2byte EC_WORD_BELIEVE + .2byte EC_WORD_MY + .2byte EC_WORD_LIE + .2byte EC_WORD_QUES_EXCL @ loss speech - ec_word I - ec_word REALLY - ec_word DID - ec_word SENSE - ec_word DANGER - ec_word ELLIPSIS + .2byte EC_WORD_I + .2byte EC_WORD_REALLY + .2byte EC_WORD_DID + .2byte EC_WORD_SENSE + .2byte EC_WORD_DANGER + .2byte EC_WORD_ELLIPSIS .4byte gVerdanturfBattleTentTrainerMons_Waren @ 21 .4byte TRAINER_CLASS_FISHERMAN .string "TOBIAS$", 8 @ pre-battle speech - ec_move2 BARRIER - ec_word EXCL_EXCL + .2byte EC_MOVE2(BARRIER) + .2byte EC_WORD_EXCL_EXCL .2byte -1 - ec_word NOW - ec_word COME_ON - ec_word EXCL + .2byte EC_WORD_NOW + .2byte EC_WORD_COME_ON + .2byte EC_WORD_EXCL @ win speech - ec_word HUH_QUES - ec_word YOU - ec_word MEAN - ec_word I - ec_word WON - ec_word QUES + .2byte EC_WORD_HUH_QUES + .2byte EC_WORD_YOU + .2byte EC_WORD_MEAN + .2byte EC_WORD_I + .2byte EC_WORD_WON + .2byte EC_WORD_QUES @ loss speech - ec_word I - ec_word SHOULD - ec_word KNOW - ec_word THAT - ec_word IT_S - ec_word HOPELESS + .2byte EC_WORD_I + .2byte EC_WORD_SHOULD + .2byte EC_WORD_KNOW + .2byte EC_WORD_THAT + .2byte EC_WORD_IT_S + .2byte EC_WORD_HOPELESS .4byte gVerdanturfBattleTentTrainerMons_Tobias @ 22 .4byte TRAINER_CLASS_BIRD_KEEPER .string "JOSIAH$", 8 @ pre-battle speech - ec_word I - ec_word PROMISE - ec_word TO - ec_move1 FLY - ec_word IF_I_LOSE + .2byte EC_WORD_I + .2byte EC_WORD_PROMISE + .2byte EC_WORD_TO + .2byte EC_MOVE(FLY) + .2byte EC_WORD_IF_I_LOSE .2byte -1 @ win speech - ec_word TOO_WEAK - ec_word ELLIPSIS + .2byte EC_WORD_TOO_WEAK + .2byte EC_WORD_ELLIPSIS .2byte -1 - ec_word YOU - ec_move1 FLY - ec_word INSTEAD + .2byte EC_WORD_YOU + .2byte EC_MOVE(FLY) + .2byte EC_WORD_INSTEAD @ loss speech - ec_word I - ec_word PROMISE - ec_word TO - ec_move1 FLY - ec_word SOMETIME - ec_word SOON + .2byte EC_WORD_I + .2byte EC_WORD_PROMISE + .2byte EC_WORD_TO + .2byte EC_MOVE(FLY) + .2byte EC_WORD_SOMETIME + .2byte EC_WORD_SOON .4byte gVerdanturfBattleTentTrainerMons_Josiah @ 23 .4byte TRAINER_CLASS_NINJA_BOY .string "DION$", 8 @ pre-battle speech - ec_word IT_S - ec_word TRENDY - ec_word UM - ec_word BATTLE - ec_word SOMETHING + .2byte EC_WORD_IT_S + .2byte EC_WORD_TRENDY + .2byte EC_WORD_UM + .2byte EC_WORD_BATTLE + .2byte EC_WORD_SOMETHING .2byte -1 @ win speech - ec_word WAS - ec_word IT - ec_word ELLIPSIS - ec_word BATTLE - ec_word DATE - ec_word QUES + .2byte EC_WORD_WAS + .2byte EC_WORD_IT + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_BATTLE + .2byte EC_WORD_DATE + .2byte EC_WORD_QUES @ loss speech - ec_word WAS - ec_word IT - ec_word ELLIPSIS - ec_word BATTLE - ec_word GOURMET - ec_word QUES + .2byte EC_WORD_WAS + .2byte EC_WORD_IT + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_BATTLE + .2byte EC_WORD_GOURMET + .2byte EC_WORD_QUES .4byte gVerdanturfBattleTentTrainerMons_Dion @ 24 .4byte TRAINER_CLASS_PARASOL_LADY .string "KENZIE$", 8 @ pre-battle speech - ec_word THE - ec_move1 MORNING_SUN - ec_word GIVES - ec_word ME - ec_move1 STRENGTH + .2byte EC_WORD_THE + .2byte EC_MOVE(MORNING_SUN) + .2byte EC_WORD_GIVES + .2byte EC_WORD_ME + .2byte EC_MOVE(STRENGTH) .2byte -1 @ win speech - ec_word BUT - ec_word I - ec_word LIKE - ec_move2 MOONLIGHT - ec_word TOO + .2byte EC_WORD_BUT + .2byte EC_WORD_I + .2byte EC_WORD_LIKE + .2byte EC_MOVE2(MOONLIGHT) + .2byte EC_WORD_TOO .2byte -1 @ loss speech - ec_word YOU_RE - ec_word LIKE - ec_word A - ec_word TERRIBLE - ec_move1 SANDSTORM - ec_word ELLIPSIS + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_LIKE + .2byte EC_WORD_A + .2byte EC_WORD_TERRIBLE + .2byte EC_MOVE(SANDSTORM) + .2byte EC_WORD_ELLIPSIS .4byte gVerdanturfBattleTentTrainerMons_Kenzie @ 25 .4byte TRAINER_CLASS_SWIMMER_F .string "LILLIAN$", 8 @ pre-battle speech - ec_word I - ec_word DO - ec_word THINGS - ec_word AT - ec_word MY - ec_word OWN_TEMPO + .2byte EC_WORD_I + .2byte EC_WORD_DO + .2byte EC_WORD_THINGS + .2byte EC_WORD_AT + .2byte EC_WORD_MY + .2byte EC_WORD_OWN_TEMPO @ win speech - ec_word I - ec_word WON - ec_word QUES - ec_word WHAT - ec_word A - ec_word SURPRISE + .2byte EC_WORD_I + .2byte EC_WORD_WON + .2byte EC_WORD_QUES + .2byte EC_WORD_WHAT + .2byte EC_WORD_A + .2byte EC_WORD_SURPRISE @ loss speech - ec_word AWW - ec_word ELLIPSIS - ec_word I - ec_word NEED - ec_word A - ec_word NAP + .2byte EC_WORD_AWW + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_I + .2byte EC_WORD_NEED + .2byte EC_WORD_A + .2byte EC_WORD_NAP .4byte gVerdanturfBattleTentTrainerMons_Lillian @ 26 .4byte TRAINER_CLASS_PICNICKER .string "LESLEY$", 8 @ pre-battle speech - ec_word YOU - ec_word SHOULD - ec_word NOT - ec_word BE - ec_word LOLLING - ec_word ABOUT + .2byte EC_WORD_YOU + .2byte EC_WORD_SHOULD + .2byte EC_WORD_NOT + .2byte EC_WORD_BE + .2byte EC_WORD_LOLLING + .2byte EC_WORD_ABOUT @ win speech - ec_word YOU - ec_word SHOULD - ec_word GET - ec_word UP - ec_word EARLIER + .2byte EC_WORD_YOU + .2byte EC_WORD_SHOULD + .2byte EC_WORD_GET + .2byte EC_WORD_UP + .2byte EC_WORD_EARLIER .2byte -1 @ loss speech - ec_word THIS - ec_word SHOULD - ec_word NOT - ec_word BE - ec_word HAPPENING - ec_word EXCL + .2byte EC_WORD_THIS + .2byte EC_WORD_SHOULD + .2byte EC_WORD_NOT + .2byte EC_WORD_BE + .2byte EC_WORD_HAPPENING + .2byte EC_WORD_EXCL .4byte gVerdanturfBattleTentTrainerMons_Lesley @ 27 .4byte TRAINER_CLASS_SAILOR .string "MARQUIS$", 8 @ pre-battle speech - ec_word NONE - ec_word OF - ec_word THIS - ec_word IS - ec_word MAKING - ec_word SENSE + .2byte EC_WORD_NONE + .2byte EC_WORD_OF + .2byte EC_WORD_THIS + .2byte EC_WORD_IS + .2byte EC_WORD_MAKING + .2byte EC_WORD_SENSE @ win speech - ec_word SEE - ec_word QUES - ec_word THIS - ec_word JUST - ec_word ISN_T - ec_word NORMAL + .2byte EC_WORD_SEE + .2byte EC_WORD_QUES + .2byte EC_WORD_THIS + .2byte EC_WORD_JUST + .2byte EC_WORD_ISN_T + .2byte EC_WORD_NORMAL @ loss speech - ec_word SHOULD - ec_word I - ec_word CAUSE - ec_word AN - ec_move1 UPROAR - ec_word QUES + .2byte EC_WORD_SHOULD + .2byte EC_WORD_I + .2byte EC_WORD_CAUSE + .2byte EC_WORD_AN + .2byte EC_MOVE(UPROAR) + .2byte EC_WORD_QUES .4byte gVerdanturfBattleTentTrainerMons_Marquis @ 28 .4byte TRAINER_CLASS_COLLECTOR .string "FREDDY$", 8 @ pre-battle speech - ec_word I - ec_word ADORE - ec_word THIS - ec_word CUTE - ec_word TELEVISION - ec_word IDOL + .2byte EC_WORD_I + .2byte EC_WORD_ADORE + .2byte EC_WORD_THIS + .2byte EC_WORD_CUTE + .2byte EC_WORD_TELEVISION + .2byte EC_WORD_IDOL @ win speech - ec_word YOU_RE - ec_word SO - ec_word FUNNY - ec_word WHEN - ec_word YOU_RE - ec_word ANGRY + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_SO + .2byte EC_WORD_FUNNY + .2byte EC_WORD_WHEN + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_ANGRY @ loss speech - ec_word LATE - ec_word NIGHT - ec_word TELEVISION - ec_word IS - ec_word MY - ec_word LIFE + .2byte EC_WORD_LATE + .2byte EC_WORD_NIGHT + .2byte EC_WORD_TELEVISION + .2byte EC_WORD_IS + .2byte EC_WORD_MY + .2byte EC_WORD_LIFE .4byte gVerdanturfBattleTentTrainerMons_Freddy @ 29 .4byte TRAINER_CLASS_LASS .string "CECILIA$", 8 @ pre-battle speech - ec_word MY - ec_word FABULOUS - ec_word CUTENESS - ec_word IS - ec_word IN - ec_word FASHION + .2byte EC_WORD_MY + .2byte EC_WORD_FABULOUS + .2byte EC_WORD_CUTENESS + .2byte EC_WORD_IS + .2byte EC_WORD_IN + .2byte EC_WORD_FASHION @ win speech - ec_word YOU_RE - ec_word NO - ec_word MATCH - ec_word FOR - ec_word MY - ec_word CUTE_CHARM + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_NO + .2byte EC_WORD_MATCH + .2byte EC_WORD_FOR + .2byte EC_WORD_MY + .2byte EC_WORD_CUTE_CHARM @ loss speech - ec_word DON_T - ec_word YOU - ec_word HAVE - ec_word FASHION - ec_word SENSE - ec_word QUES + .2byte EC_WORD_DON_T + .2byte EC_WORD_YOU + .2byte EC_WORD_HAVE + .2byte EC_WORD_FASHION + .2byte EC_WORD_SENSE + .2byte EC_WORD_QUES .4byte gVerdanturfBattleTentTrainerMons_Cecilia diff --git a/data/battle_frontier_2.s b/data/battle_frontier_2.s index 44c14f520..74abbe788 100644 --- a/data/battle_frontier_2.s +++ b/data/battle_frontier_2.s @@ -1,3 +1,5 @@ +#include "constants/moves.h" +#include "constants/species.h" .include "asm/macros.inc" .include "constants/constants.inc" diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index b2dfec5d8..4efa72858 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -1,586 +1,4593 @@ +#include "constants/abilities.h" +#include "constants/moves.h" +#include "constants/songs.h" .include "asm/macros.inc" + .include "asm/macros/battle_script.inc" .include "constants/constants.inc" + .include "constants/battle_constants.inc" + .include "constants/battle_script_constants.inc" + .include "constants/battle_text.inc" .section script_data, "aw", %progbits gBattleScriptsForMoveEffects:: @ 82D86A8 - .incbin "baserom.gba", 0x2d86a8, 0x388 - -BattleScript_PresentDamageTarget:: @ 82D8A30 - .incbin "baserom.gba", 0x2d8a30, 0x1e - -BattleScript_MoveEnd:: @ 82D8A4E - .incbin "baserom.gba", 0x2d8a4e, 0x12 - -BattleScript_PauseEffectivenessSoundResultMsgEndMove:: @ 82D8A60 - .incbin "baserom.gba", 0x2d8a60, 0x274 - -BattleScript_StatUp:: @ 82D8CD4 - .incbin "baserom.gba", 0x2d8cd4, 0x91 - -BattleScript_StatDown:: @ 82D8D65 - .incbin "baserom.gba", 0x2d8d65, 0x6fd - -BattleScript_MoveUsedMustRecharge:: @ 82D9462 - .incbin "baserom.gba", 0x2d9462, 0xa7f - -BattleScript_PresentHealTarget:: @ 82D9EE1 - .incbin "baserom.gba", 0x2d9ee1, 0x1a - -BattleScript_AlreadyAtFullHp:: @ 82D9EFB - .incbin "baserom.gba", 0x2d9efb, 0x21 - -BattleScript_ButItFailed:: @ 82D9F1C - .incbin "baserom.gba", 0x2d9f1c, 0x88e - -BattleScript_FaintAttacker:: @ 82DA7AA - .incbin "baserom.gba", 0x2da7aa, 0xd - -BattleScript_FaintTarget:: @ 82DA7B7 - .incbin "baserom.gba", 0x2da7b7, 0xd - -gUnknown_082DA7C4:: @ 82DA7C4 - .incbin "baserom.gba", 0x2da7c4, 0x9 - -gUnknown_082DA7CD:: @ 82DA7CD - .incbin "baserom.gba", 0x2da7cd, 0x160 - -BattleScript_LocalTrainerBattleWon:: @ 82DA92D - .incbin "baserom.gba", 0x2da92d, 0x3d - -BattleScript_PayDayMoneyAndPickUpItems:: @ 82DA96A - .incbin "baserom.gba", 0x2da96a, 0x3 - -BattleScript_LocalBattleLost:: @ 82DA96D - .incbin "baserom.gba", 0x2da96d, 0x9e - -gUnknown_082DAA0B:: @ 82DAA0B - .incbin "baserom.gba", 0x2daa0b, 0x2a - -BattleScript_LinkBattleWonOrLost:: @ 82DAA35 - .incbin "baserom.gba", 0x2daa35, 0x52 - -BattleScript_FrontierTrainerBattleWon:: @ 82DAA87 - .incbin "baserom.gba", 0x2daa87, 0x54 - -BattleScript_SmokeBallEscape:: @ 82DAADB - .incbin "baserom.gba", 0x2daadb, 0xe - -BattleScript_RanAwayUsingMonAbility:: @ 82DAAE9 - .incbin "baserom.gba", 0x2daae9, 0x7 - -BattleScript_GotAwaySafely:: @ 82DAAF0 - .incbin "baserom.gba", 0x2daaf0, 0x7 - -BattleScript_WildMonFled:: @ 82DAAF7 - .incbin "baserom.gba", 0x2daaf7, 0x7 - -gUnknown_082DAAFE:: @ 82DAAFE - .incbin "baserom.gba", 0x2daafe, 0x4 - -BattleScript_PrintFailedToRunString:: @ 82DAB02 - .incbin "baserom.gba", 0x2dab02, 0x9 - -gUnknown_082DAB0B:: @ 82DAB0B - .incbin "baserom.gba", 0x2dab0b, 0x6 - -gUnknown_082DAB11:: @ 82DAB11 - .incbin "baserom.gba", 0x2dab11, 0x4 - -BattleScript_ActionSwitch:: @ 82DAB15 - .incbin "baserom.gba", 0x2dab15, 0xa4 - -BattleScript_Pausex20:: @ 82DABB9 - .incbin "baserom.gba", 0x2dabb9, 0x4 - -BattleScript_LevelUp:: @ 82DABBD - .incbin "baserom.gba", 0x2dabbd, 0x6f - -gUnknown_082DAC2C:: @ 82DAC2C - .incbin "baserom.gba", 0x2dac2c, 0x1b - -gUnknown_082DAC47:: @ 82DAC47 - .incbin "baserom.gba", 0x2dac47, 0x82 - -gUnknown_082DACC9:: @ 82DACC9 - .incbin "baserom.gba", 0x2dacc9, 0x9 - -gUnknown_082DACD2:: @ 82DACD2 - .incbin "baserom.gba", 0x2dacd2, 0xe - -gUnknown_082DACE0:: @ 82DACE0 - .incbin "baserom.gba", 0x2dace0, 0x7 - -gUnknown_082DACE7:: @ 82DACE7 - .incbin "baserom.gba", 0x2dace7, 0x13 - -gUnknown_082DACFA:: @ 82DACFA - .incbin "baserom.gba", 0x2dacfa, 0x11 - -gUnknown_082DAD0B:: @ 82DAD0B - .incbin "baserom.gba", 0x2dad0b, 0xa - -BattleScript_LeechSeedTurnDrain:: @ 82DAD15 - .incbin "baserom.gba", 0x2dad15, 0x5c - -BattleScript_BideStoringEnergy:: @ 82DAD71 - .incbin "baserom.gba", 0x2dad71, 0xb - -BattleScript_BideAttack:: @ 82DAD7C - .incbin "baserom.gba", 0x2dad7c, 0x48 - -BattleScript_BideNoEnergyToAttack:: @ 82DADC4 - .incbin "baserom.gba", 0x2dadc4, 0x14 - -gUnknown_082DADD8:: @ 82DADD8 - .incbin "baserom.gba", 0x2dadd8, 0x2b - -BattleScript_MistProtected:: @ 82DAE03 - .incbin "baserom.gba", 0x2dae03, 0xa - -BattleScript_RageIsBuilding:: @ 82DAE0D - .incbin "baserom.gba", 0x2dae0d, 0x7 - -BattleScript_MoveUsedIsDisabled:: @ 82DAE14 - .incbin "baserom.gba", 0x2dae14, 0xb - -gUnknown_082DAE1F:: @ 82DAE1F - .incbin "baserom.gba", 0x2dae1f, 0x4 - -BattleScript_DisabledNoMore:: @ 82DAE23 - .incbin "baserom.gba", 0x2dae23, 0x7 - -gUnknown_082DAE2A:: @ 82DAE2A - .incbin "baserom.gba", 0x2dae2a, 0xd - -BattleScript_EncoredNoMore:: @ 82DAE37 - .incbin "baserom.gba", 0x2dae37, 0x7 - -BattleScript_DestinyBondTakesLife:: @ 82DAE3E - .incbin "baserom.gba", 0x2dae3e, 0x1b - -gUnknown_082DAE59:: @ 82DAE59 - .incbin "baserom.gba", 0x2dae59, 0x37 - -gUnknown_082DAE90:: @ 82DAE90 - .incbin "baserom.gba", 0x2dae90, 0x37 - -gUnknown_082DAEC7:: @ 82DAEC7 - .incbin "baserom.gba", 0x2daec7, 0x3e - -gUnknown_082DAF05:: @ 82DAF05 - .incbin "baserom.gba", 0x2daf05, 0x1b - -gUnknown_082DAF20:: @ 82DAF20 - .incbin "baserom.gba", 0x2daf20, 0x7 - -BattleScript_AllStatsUp:: @ 82DAF27 - .incbin "baserom.gba", 0x2daf27, 0x9c - -BattleScript_RapidSpinAway:: @ 82DAFC3 - .incbin "baserom.gba", 0x2dafc3, 0x2 - -BattleScript_WrapFree:: @ 82DAFC5 - .incbin "baserom.gba", 0x2dafc5, 0x11 - -BattleScript_LeechSeedFree:: @ 82DAFD6 - .incbin "baserom.gba", 0x2dafd6, 0x7 - -BattleScript_SpikesFree:: @ 82DAFDD - .incbin "baserom.gba", 0x2dafdd, 0x7 - -gUnknown_082DAFE4:: @ 82DAFE4 - .incbin "baserom.gba", 0x2dafe4, 0x8e - -BattleScript_NoMovesLeft:: @ 82DB072 - .incbin "baserom.gba", 0x2db072, 0x4 - -gUnknown_082DB076:: @ 82DB076 - .incbin "baserom.gba", 0x2db076, 0x4 - -BattleScript_NoPPForMove:: @ 82DB07A - .incbin "baserom.gba", 0x2db07a, 0xf - -gUnknown_082DB089:: @ 82DB089 - .incbin "baserom.gba", 0x2db089, 0xf - -gUnknown_082DB098:: @ 82DB098 - .incbin "baserom.gba", 0x2db098, 0x8 - -gUnknown_082DB0A0:: @ 82DB0A0 - .incbin "baserom.gba", 0x2db0a0, 0x4 - -BattleScript_MoveUsedIsTaunted:: @ 82DB0A4 - .incbin "baserom.gba", 0x2db0a4, 0xb - -gUnknown_082DB0AF:: @ 82DB0AF - .incbin "baserom.gba", 0x2db0af, 0x8 - -BattleScript_WishComesTrue:: @ 82DB0B7 - .incbin "baserom.gba", 0x2db0b7, 0x37 - -BattleScript_IngrainTurnHeal:: @ 82DB0EE - .incbin "baserom.gba", 0x2db0ee, 0x29 - -BattleScript_AtkDefDown:: @ 82DB117 - .incbin "baserom.gba", 0x2db117, 0x51 - -BattleScript_KnockedOff:: @ 82DB168 - .incbin "baserom.gba", 0x2db168, 0xe - -BattleScript_MoveUsedIsImprisoned:: @ 82DB176 - .incbin "baserom.gba", 0x2db176, 0xb - -gUnknown_082DB181:: @ 82DB181 - .incbin "baserom.gba", 0x2db181, 0x4 - -gUnknown_082DB185:: @ 82DB185 - .incbin "baserom.gba", 0x2db185, 0x8 - -BattleScript_GrudgeTakesPp:: @ 82DB18D - .incbin "baserom.gba", 0x2db18d, 0x7 - -BattleScript_MagicCoatBounce:: @ 82DB194 - .incbin "baserom.gba", 0x2db194, 0x18 - -BattleScript_SnatchedMove:: @ 82DB1AC - .incbin "baserom.gba", 0x2db1ac, 0x1b - -BattleScript_EnduredMsg:: @ 82DB1C7 - .incbin "baserom.gba", 0x2db1c7, 0x7 - -BattleScript_OneHitKOMsg:: @ 82DB1CE - .incbin "baserom.gba", 0x2db1ce, 0x7 - -BattleScript_SAtkDown2:: @ 82DB1D5 - .incbin "baserom.gba", 0x2db1d5, 0x2a - -BattleScript_FocusPunchSetUp:: @ 82DB1FF - .incbin "baserom.gba", 0x2db1ff, 0x14 - -BattleScript_MoveUsedIsAsleep:: @ 82DB213 - .incbin "baserom.gba", 0x2db213, 0xd - -BattleScript_MoveUsedWokeUp:: @ 82DB220 - .incbin "baserom.gba", 0x2db220, 0x14 - -gUnknown_082DB234:: @ 82DB234 - .incbin "baserom.gba", 0x2db234, 0x9 - -BattleScript_PoisonTurnDmg:: @ 82DB23D - .incbin "baserom.gba", 0x2db23d, 0x22 - -BattleScript_BurnTurnDmg:: @ 82DB25F - .incbin "baserom.gba", 0x2db25f, 0xb - -BattleScript_MoveUsedIsFrozen:: @ 82DB26A - .incbin "baserom.gba", 0x2db26a, 0xd - -BattleScript_MoveUsedUnfroze:: @ 82DB277 - .incbin "baserom.gba", 0x2db277, 0xb - -BattleScript_DefrostedViaFireMove:: @ 82DB282 - .incbin "baserom.gba", 0x2db282, 0x9 - -BattleScript_MoveUsedIsParalyzed:: @ 82DB28B - .incbin "baserom.gba", 0x2db28b, 0x10 - -BattleScript_MoveUsedFlinched:: @ 82DB29B - .incbin "baserom.gba", 0x2db29b, 0xb - -gUnknown_082DB2A6:: @ 82DB2A6 - .incbin "baserom.gba", 0x2db2a6, 0x9 - -BattleScript_ThrashConfuses:: @ 82DB2AF - .incbin "baserom.gba", 0x2db2af, 0xe - -BattleScript_MoveUsedIsConfused:: @ 82DB2BD - .incbin "baserom.gba", 0x2db2bd, 0x43 - -BattleScript_MoveUsedIsConfusedNoMore:: @ 82DB300 - .incbin "baserom.gba", 0x2db300, 0x7 - -BattleScript_PrintPayDayMoneyString:: @ 82DB307 - .incbin "baserom.gba", 0x2db307, 0x7 - -BattleScript_WrapTurnDmg:: @ 82DB30E - .incbin "baserom.gba", 0x2db30e, 0x12 - -BattleScript_WrapEnds:: @ 82DB320 - .incbin "baserom.gba", 0x2db320, 0x7 - -BattleScript_MoveUsedIsInLove:: @ 82DB327 - .incbin "baserom.gba", 0x2db327, 0xd - -BattleScript_MoveUsedIsParalyzedCantAttack:: @ 82DB334 - .incbin "baserom.gba", 0x2db334, 0xb - -BattleScript_NightmareTurnDmg:: @ 82DB33F - .incbin "baserom.gba", 0x2db33f, 0x11 - -BattleScript_CurseTurnDmg:: @ 82DB350 - .incbin "baserom.gba", 0x2db350, 0x11 - -BattleScript_TargetPRLZHeal:: @ 82DB361 - .incbin "baserom.gba", 0x2db361, 0x9 - -BattleScript_MoveEffectSleep:: @ 82DB36A - .incbin "baserom.gba", 0x2db36A, 0xE - -BattleScript_YawnMakesAsleep:: @ 82DB378 - .incbin "baserom.gba", 0x2db378, 0xE - -BattleScript_MoveEffectPoison:: @ 82DB386 - .incbin "baserom.gba", 0x2db386, 0xF - -BattleScript_MoveEffectBurn:: @ 82DB395 - .incbin "baserom.gba", 0x2db395, 0xF - -BattleScript_MoveEffectFreeze:: @ 82DB3A4 - .incbin "baserom.gba", 0x2db3A4, 0xF - -BattleScript_MoveEffectParalysis:: @ 82DB3B3 - .incbin "baserom.gba", 0x2db3B3, 0xF - -BattleScript_MoveEffectUproar:: @ 82DB3C2 - .incbin "baserom.gba", 0x2db3C2, 0x7 - -BattleScript_MoveEffectToxic:: @ 82DB3C9 - .incbin "baserom.gba", 0x2db3C9, 0xD - -BattleScript_MoveEffectPayDay:: @ 82DB3D6 - .incbin "baserom.gba", 0x2db3D6, 0x7 - -BattleScript_MoveEffectWrap:: @ 82DB3DD - .incbin "baserom.gba", 0x2db3DD, 0x9 - -BattleScript_MoveEffectConfusion:: @ 82DB3E6 - .incbin "baserom.gba", 0x2db3E6, 0xE - -BattleScript_MoveEffectRecoil33:: @ 82DB3F4 - .incbin "baserom.gba", 0x2db3F4, 0x2e - -BattleScript_ItemSteal:: @ 82DB422 - .incbin "baserom.gba", 0x2db422, 0xe - -BattleScript_DrizzleActivates:: @ 82DB430 - .incbin "baserom.gba", 0x2db430, 0x14 - -BattleScript_SpeedBoostActivates:: @ 82DB444 - .incbin "baserom.gba", 0x2db444, 0xe - -BattleScript_TraceActivates:: @ 82DB452 - .incbin "baserom.gba", 0x2db452, 0xa - -BattleScript_RainDishActivates:: @ 82DB45C - .incbin "baserom.gba", 0x2db45c, 0x14 - -BattleScript_SandstreamActivates:: @ 82DB470 - .incbin "baserom.gba", 0x2db470, 0x14 - -BattleScript_ShedSkinActivates:: @ 82DB484 - .incbin "baserom.gba", 0x2db484, 0x25 - -BattleScript_CastformChange:: @ 82DB4A9 - .incbin "baserom.gba", 0x2db4a9, 0xf - -gUnknown_082DB4B8:: @ 82DB4B8 - .incbin "baserom.gba", 0x2db4b8, 0x9 - -gUnknown_082DB4C1:: @ 82DB4C1 - .incbin "baserom.gba", 0x2db4c1, 0x69 - -BattleScript_DroughtActivates:: @ 82DB52A - .incbin "baserom.gba", 0x2db52a, 0x14 - -BattleScript_TookAttack:: @ 82DB53E - .incbin "baserom.gba", 0x2db53e, 0x14 - -BattleScript_SturdyPreventsOHKO:: @ 82DB552 - .incbin "baserom.gba", 0x2db552, 0xe - -BattleScript_DampStopsExplosion:: @ 82DB560 - .incbin "baserom.gba", 0x2db560, 0xe - -BattleScript_MoveHPDrain_PPLoss:: @ 82DB56E - .incbin "baserom.gba", 0x2db56e, 0x1 - -BattleScript_MoveHPDrain:: @ 82DB56F - .incbin "baserom.gba", 0x2db56f, 0x22 - -gUnknown_082DB591:: @ 82DB591 - .incbin "baserom.gba", 0x2db591, 0x1 - -gUnknown_082DB592:: @ 82DB592 - .incbin "baserom.gba", 0x2db592, 0x15 - -BattleScript_FlashFireBoost_PPLoss:: @ 82DB5A7 - .incbin "baserom.gba", 0x2db5a7, 0x1 - -BattleScript_FlashFireBoost:: @ 82DB5A8 - .incbin "baserom.gba", 0x2db5a8, 0x1f - -BattleScript_AbilityNoStatLoss:: @ 82DB5C7 - .incbin "baserom.gba", 0x2db5c7, 0xa - -BattleScript_BRNPrevention:: @ 82DB5D1 - .incbin "baserom.gba", 0x2db5d1, 0xc - -BattleScript_PRLZPrevention:: @ 82DB5DD - .incbin "baserom.gba", 0x2db5dd, 0xc - -BattleScript_PSNPrevention:: @ 82DB5E9 - .incbin "baserom.gba", 0x2db5e9, 0xc - -BattleScript_ObliviousPreventsAttraction:: @ 82DB5F5 - .incbin "baserom.gba", 0x2db5f5, 0xe - -BattleScript_FlinchPrevention:: @ 82DB603 - .incbin "baserom.gba", 0x2db603, 0x1c - -BattleScript_SoundproofProtected:: @ 82DB61F - .incbin "baserom.gba", 0x2db61f, 0x10 - -BattleScript_AbilityNoSpecificStatLoss:: @ 82DB62F - .incbin "baserom.gba", 0x2db62f, 0x10 - -BattleScript_StickyHoldActivates:: @ 82DB63F - .incbin "baserom.gba", 0x2db63f, 0xe - -BattleScript_ColorChangeActivates:: @ 82DB64D - .incbin "baserom.gba", 0x2db64d, 0x7 - -BattleScript_RoughSkinActivates:: @ 82DB654 - .incbin "baserom.gba", 0x2db654, 0x1b - -BattleScript_CuteCharmActivates:: @ 82DB66F - .incbin "baserom.gba", 0x2db66f, 0xd - -BattleScript_ApplySecondaryEffect:: @ 82DB67C - .incbin "baserom.gba", 0x2db67c, 0x3 - -BattleScript_SynchronizeActivates:: @ 82DB67F - .incbin "baserom.gba", 0x2db67f, 0x3 - -BattleScript_NoItemSteal:: @ 82DB682 - .incbin "baserom.gba", 0x2db682, 0xa - -gUnknown_082DB68C:: @ 82DB68C - .incbin "baserom.gba", 0x2db68c, 0x9 - -gUnknown_082DB695:: @ 82DB695 - .incbin "baserom.gba", 0x2db695, 0x10 - -gUnknown_082DB6A5:: @ 82DB6A5 - .incbin "baserom.gba", 0x2db6a5, 0x8 - -BattleScript_MoveUsedLoafingAround:: @ 82DB6AD - .incbin "baserom.gba", 0x2db6ad, 0x2c - -gUnknown_082DB6D9:: @ 82DB6D9 - .incbin "baserom.gba", 0x2db6d9, 0x17 - -gUnknown_082DB6F0:: @ 82DB6F0 - .incbin "baserom.gba", 0x2db6f0, 0xb - -BattleScript_SubstituteFade:: @ 82DB6FB - .incbin "baserom.gba", 0x2db6fb, 0xb - -BattleScript_BerryCurePrlzEnd2:: @ 82DB706 - .incbin "baserom.gba", 0x2db706, 0x6 - -BattleScript_BerryCureParRet:: @ 82DB70C - .incbin "baserom.gba", 0x2db70c, 0x12 - -BattleScript_BerryCurePsnEnd2:: @ 82DB71E - .incbin "baserom.gba", 0x2db71e, 0x6 - -BattleScript_BerryCurePsnRet:: @ 82DB724 - .incbin "baserom.gba", 0x2db724, 0x12 - -BattleScript_BerryCureBrnEnd2:: @ 82DB736 - .incbin "baserom.gba", 0x2db736, 0x6 - -BattleScript_BerryCureBrnRet:: @ 82DB73C - .incbin "baserom.gba", 0x2db73c, 0x12 - -BattleScript_BerryCureFrzEnd2:: @ 82DB74E - .incbin "baserom.gba", 0x2db74e, 0x6 - -BattleScript_BerryCureFrzRet:: @ 82DB754 - .incbin "baserom.gba", 0x2db754, 0x12 - -BattleScript_BerryCureSlpEnd2:: @ 82DB766 - .incbin "baserom.gba", 0x2db766, 0x6 - -BattleScript_BerryCureSlpRet:: @ 82DB76C - .incbin "baserom.gba", 0x2db76c, 0x12 - -BattleScript_BerryCureConfusionEnd2:: @ 82DB77E - .incbin "baserom.gba", 0x2db77e, 0x6 - -BattleScript_BerryCureConfusionRet:: @ 82DB784 - .incbin "baserom.gba", 0x2db784, 0x10 - -BattleScript_BerryCureChosenStatusEnd2:: @ 82DB794 - .incbin "baserom.gba", 0x2db794, 0x6 - -BattleScript_BerryCureChosenStatusRet:: @ 82DB79A - .incbin "baserom.gba", 0x2db79a, 0x14 - -BattleScript_WhiteHerbEnd2:: @ 82DB7AE - .incbin "baserom.gba", 0x2db7ae, 0x6 - -BattleScript_WhiteHerbRet:: @ 82DB7B4 - .incbin "baserom.gba", 0x2db7b4, 0x10 - -BattleScript_ItemHealHP_RemoveItem:: @ 82DB7C4 - .incbin "baserom.gba", 0x2db7c4, 0x1d - -BattleScript_BerryPPHealEnd2:: @ 82DB7E1 - .incbin "baserom.gba", 0x2db7e1, 0x10 - -BattleScript_ItemHealHP_End2:: @ 82DB7F1 - .incbin "baserom.gba", 0x2db7f1, 0x6 - -BattleScript_ItemHealHP_Ret:: @ 82DB7F7 - .incbin "baserom.gba", 0x2db7f7, 0x1b - -gUnknown_082DB812:: @ 82DB812 - .incbin "baserom.gba", 0x2db812, 0x4 - -BattleScript_HangedOnMsg:: @ 82DB816 - .incbin "baserom.gba", 0x2db816, 0xe - -BattleScript_BerryConfuseHealEnd2:: @ 82DB824 - .incbin "baserom.gba", 0x2db824, 0x2a - -BattleScript_BerryStatRaiseEnd2:: @ 82DB84E - .incbin "baserom.gba", 0x2db84e, 0x1b - -BattleScript_BerryFocusEnergyEnd2:: @ 82DB869 - .incbin "baserom.gba", 0x2db869, 0x10 - -BattleScript_ActionSelectionItemsCantBeUsed:: @ 82DB879 - .incbin "baserom.gba", 0x2db879, 0x4 - -gUnknown_082DB87D:: @ 82DB87D - .incbin "baserom.gba", 0x2db87d, 0x4 - -gUnknown_082DB881:: @ 82DB881 - .incbin "baserom.gba", 0x2db881, 0x3d - -gUnknown_082DB8BE:: @ 82DB8BE - .incbin "baserom.gba", 0x2db8be, 0x35 - -gUnknown_082DB8F3:: @ 82DB8F3 - .incbin "baserom.gba", 0x2db8f3, 0xc7 - -gUnknown_082DB9BA:: @ 82DB9BA - .incbin "baserom.gba", 0x2db9ba, 0x7 - -gUnknown_082DB9C1:: @ 82DB9C1 - .incbin "baserom.gba", 0x2db9c1, 0x7 - -gUnknown_082DB9C8:: @ 82DB9C8 - .incbin "baserom.gba", 0x2db9c8, 0xc + .4byte BattleScript_EffectHit + .4byte BattleScript_EffectSleep + .4byte BattleScript_EffectPoisonHit + .4byte BattleScript_EffectAbsorb + .4byte BattleScript_EffectBurnHit + .4byte BattleScript_EffectFreezeHit + .4byte BattleScript_EffectParalyzeHit + .4byte BattleScript_EffectExplosion + .4byte BattleScript_EffectDreamEater + .4byte BattleScript_EffectMirrorMove + .4byte BattleScript_EffectAttackUp + .4byte BattleScript_EffectDefenseUp + .4byte BattleScript_EffectSpeedUp + .4byte BattleScript_EffectSpecialAttackUp + .4byte BattleScript_EffectSpecialDefenseUp + .4byte BattleScript_EffectAccuracyUp + .4byte BattleScript_EffectEvasionUp + .4byte BattleScript_EffectAlwaysHit + .4byte BattleScript_EffectAttackDown + .4byte BattleScript_EffectDefenseDown + .4byte BattleScript_EffectSpeedDown + .4byte BattleScript_EffectSpecialAttackDown + .4byte BattleScript_EffectSpecialDefenseDown + .4byte BattleScript_EffectAccuracyDown + .4byte BattleScript_EffectEvasionDown + .4byte BattleScript_EffectHaze + .4byte BattleScript_EffectBide + .4byte BattleScript_EffectRampage + .4byte BattleScript_EffectRoar + .4byte BattleScript_EffectMultiHit + .4byte BattleScript_EffectConversion + .4byte BattleScript_EffectFlinchHit + .4byte BattleScript_EffectRestoreHp + .4byte BattleScript_EffectToxic + .4byte BattleScript_EffectPayDay + .4byte BattleScript_EffectLightScreen + .4byte BattleScript_EffectTriAttack + .4byte BattleScript_EffectRest + .4byte BattleScript_EffectOHKO + .4byte BattleScript_EffectRazorWind + .4byte BattleScript_EffectSuperFang + .4byte BattleScript_EffectDragonRage + .4byte BattleScript_EffectTrap + .4byte BattleScript_EffectHighCritical + .4byte BattleScript_EffectDoubleHit + .4byte BattleScript_EffectRecoilIfMiss + .4byte BattleScript_EffectMist + .4byte BattleScript_EffectFocusEnergy + .4byte BattleScript_EffectRecoil + .4byte BattleScript_EffectConfuse + .4byte BattleScript_EffectAttackUp2 + .4byte BattleScript_EffectDefenseUp2 + .4byte BattleScript_EffectSpeedUp2 + .4byte BattleScript_EffectSpecialAttackUp2 + .4byte BattleScript_EffectSpecialDefenseUp2 + .4byte BattleScript_EffectAccuracyUp2 + .4byte BattleScript_EffectEvasionUp2 + .4byte BattleScript_EffectTransform + .4byte BattleScript_EffectAttackDown2 + .4byte BattleScript_EffectDefenseDown2 + .4byte BattleScript_EffectSpeedDown2 + .4byte BattleScript_EffectSpecialAttackDown2 + .4byte BattleScript_EffectSpecialDefenseDown2 + .4byte BattleScript_EffectAccuracyDown2 + .4byte BattleScript_EffectEvasionDown2 + .4byte BattleScript_EffectReflect + .4byte BattleScript_EffectPoison + .4byte BattleScript_EffectParalyze + .4byte BattleScript_EffectAttackDownHit + .4byte BattleScript_EffectDefenseDownHit + .4byte BattleScript_EffectSpeedDownHit + .4byte BattleScript_EffectSpecialAttackDownHit + .4byte BattleScript_EffectSpecialDefenseDownHit + .4byte BattleScript_EffectAccuracyDownHit + .4byte BattleScript_EffectEvasionDownHit + .4byte BattleScript_EffectSkyAttack + .4byte BattleScript_EffectConfuseHit + .4byte BattleScript_EffectTwineedle + .4byte BattleScript_EffectVitalThrow + .4byte BattleScript_EffectSubstitute + .4byte BattleScript_EffectRecharge + .4byte BattleScript_EffectRage + .4byte BattleScript_EffectMimic + .4byte BattleScript_EffectMetronome + .4byte BattleScript_EffectLeechSeed + .4byte BattleScript_EffectSplash + .4byte BattleScript_EffectDisable + .4byte BattleScript_EffectLevelDamage + .4byte BattleScript_EffectPsywave + .4byte BattleScript_EffectCounter + .4byte BattleScript_EffectEncore + .4byte BattleScript_EffectPainSplit + .4byte BattleScript_EffectSnore + .4byte BattleScript_EffectConversion2 + .4byte BattleScript_EffectLockOn + .4byte BattleScript_EffectSketch + .4byte BattleScript_EffectUnused60//Thaw + .4byte BattleScript_EffectSleepTalk + .4byte BattleScript_EffectDestinyBond + .4byte BattleScript_EffectFlail + .4byte BattleScript_EffectSpite + .4byte BattleScript_EffectFalseSwipe + .4byte BattleScript_EffectHealBell + .4byte BattleScript_EffectQuickAttack + .4byte BattleScript_EffectTripleKick + .4byte BattleScript_EffectThief + .4byte BattleScript_EffectMeanLook + .4byte BattleScript_EffectNightmare + .4byte BattleScript_EffectMinimize + .4byte BattleScript_EffectCurse + .4byte BattleScript_EffectUnused6e + .4byte BattleScript_EffectProtect + .4byte BattleScript_EffectSpikes + .4byte BattleScript_EffectForesight + .4byte BattleScript_EffectPerishSong + .4byte BattleScript_EffectSandstorm + .4byte BattleScript_EffectEndure + .4byte BattleScript_EffectRollout + .4byte BattleScript_EffectSwagger + .4byte BattleScript_EffectFuryCutter + .4byte BattleScript_EffectAttract + .4byte BattleScript_EffectReturn + .4byte BattleScript_EffectPresent + .4byte BattleScript_EffectFrustration + .4byte BattleScript_EffectSafeguard + .4byte BattleScript_EffectThawHit + .4byte BattleScript_EffectMagnitude + .4byte BattleScript_EffectBatonPass + .4byte BattleScript_EffectPursuit + .4byte BattleScript_EffectRapidSpin + .4byte BattleScript_EffectSonicboom + .4byte BattleScript_EffectUnused83 + .4byte BattleScript_EffectMorningSun + .4byte BattleScript_EffectSynthesis + .4byte BattleScript_EffectMoonlight + .4byte BattleScript_EffectHiddenPower + .4byte BattleScript_EffectRainDance + .4byte BattleScript_EffectSunnyDay + .4byte BattleScript_EffectDefenseUpHit + .4byte BattleScript_EffectAttackUpHit + .4byte BattleScript_EffectAllStatsUpHit + .4byte BattleScript_EffectUnused8d + .4byte BattleScript_EffectBellyDrum + .4byte BattleScript_EffectPsychUp + .4byte BattleScript_EffectMirrorCoat + .4byte BattleScript_EffectSkullBash + .4byte BattleScript_EffectTwister + .4byte BattleScript_EffectEarthquake + .4byte BattleScript_EffectFutureSight + .4byte BattleScript_EffectGust + .4byte BattleScript_EffectStomp + .4byte BattleScript_EffectSolarbeam + .4byte BattleScript_EffectThunder + .4byte BattleScript_EffectTeleport + .4byte BattleScript_EffectBeatUp + .4byte BattleScript_EffectSemiInvulnerable + .4byte BattleScript_EffectDefenseCurl + .4byte BattleScript_EffectSoftboiled + .4byte BattleScript_EffectFakeOut + .4byte BattleScript_EffectUproar + .4byte BattleScript_EffectStockpile + .4byte BattleScript_EffectSpitUp + .4byte BattleScript_EffectSwallow + .4byte BattleScript_EffectUnusedA3 + .4byte BattleScript_EffectHail + .4byte BattleScript_EffectTorment + .4byte BattleScript_EffectFlatter + .4byte BattleScript_EffectWillOWisp + .4byte BattleScript_EffectMemento + .4byte BattleScript_EffectFacade + .4byte BattleScript_EffectFocusPunch + .4byte BattleScript_EffectSmellingsalt + .4byte BattleScript_EffectFollowMe + .4byte BattleScript_EffectNaturePower + .4byte BattleScript_EffectCharge + .4byte BattleScript_EffectTaunt + .4byte BattleScript_EffectHelpingHand + .4byte BattleScript_EffectTrick + .4byte BattleScript_EffectRolePlay + .4byte BattleScript_EffectWish + .4byte BattleScript_EffectAssist + .4byte BattleScript_EffectIngrain + .4byte BattleScript_EffectSuperpower + .4byte BattleScript_EffectMagicCoat + .4byte BattleScript_EffectRecycle + .4byte BattleScript_EffectRevenge + .4byte BattleScript_EffectBrickBreak + .4byte BattleScript_EffectYawn + .4byte BattleScript_EffectKnockOff + .4byte BattleScript_EffectEndeavor + .4byte BattleScript_EffectEruption + .4byte BattleScript_EffectSkillSwap + .4byte BattleScript_EffectImprison + .4byte BattleScript_EffectRefresh + .4byte BattleScript_EffectGrudge + .4byte BattleScript_EffectSnatch + .4byte BattleScript_EffectLowKick + .4byte BattleScript_EffectSecretPower + .4byte BattleScript_EffectDoubleEdge + .4byte BattleScript_EffectTeeterDance + .4byte BattleScript_EffectBlazeKick + .4byte BattleScript_EffectMudSport + .4byte BattleScript_EffectPoisonFang + .4byte BattleScript_EffectWeatherBall + .4byte BattleScript_EffectOverheat + .4byte BattleScript_EffectTickle + .4byte BattleScript_EffectCosmicPower + .4byte BattleScript_EffectSkyUppercut + .4byte BattleScript_EffectBulkUp + .4byte BattleScript_EffectPoisonTail + .4byte BattleScript_EffectWaterSport + .4byte BattleScript_EffectCalmMind + .4byte BattleScript_EffectDragonDance + .4byte BattleScript_EffectCamouflage + +BattleScript_EffectSpeedUp:: +BattleScript_EffectSpecialDefenseUp:: +BattleScript_EffectAccuracyUp:: +BattleScript_EffectAlwaysHit:: +BattleScript_EffectSpecialAttackDown:: +BattleScript_EffectSpecialDefenseDown:: +BattleScript_EffectHighCritical:: +BattleScript_EffectAccuracyUp2:: +BattleScript_EffectEvasionUp2:: +BattleScript_EffectSpecialAttackDown2:: +BattleScript_EffectAccuracyDown2:: +BattleScript_EffectEvasionDown2:: +BattleScript_EffectEvasionDownHit:: +BattleScript_EffectVitalThrow:: +BattleScript_EffectUnused60:: +BattleScript_EffectFalseSwipe:: +BattleScript_EffectQuickAttack:: +BattleScript_EffectUnused6e:: +BattleScript_EffectPursuit:: +BattleScript_EffectUnused83:: +BattleScript_EffectUnused8d:: +BattleScript_EffectUnusedA3:: +BattleScript_EffectHit:: + jumpifnotmove MOVE_SURF, BattleScript_HitFromAtkCanceler + jumpifnostatus3 TARGET, STATUS3_UNDERWATER, BattleScript_HitFromAtkCanceler + orword gHitMarker, HITMARKER_IGNORE_UNDERWATER + setbyte sDMG_MULTIPLIER, 0x2 +BattleScript_HitFromAtkCanceler:: + attackcanceler +BattleScript_HitFromAccCheck:: + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE +BattleScript_HitFromAtkString:: + attackstring + ppreduce +BattleScript_HitFromCritCalc:: + critcalc + damagecalc + typecalc + adjustnormaldamage +BattleScript_HitFromAtkAnimation:: + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + seteffectwithchance + tryfaintmon TARGET, FALSE, NULL +BattleScript_MoveEnd:: + setbyte sMOVEEND_STATE, 0x0 + moveend 0x0, 0x0 + end + +BattleScript_MakeMoveMissed:: + orbyte gBattleMoveFlags, MOVESTATUS_MISSED +BattleScript_PrintMoveMissed:: + attackstring + ppreduce +BattleScript_MoveMissedPause:: + pause 0x20 +BattleScript_MoveMissed:: + effectivenesssound + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSleep:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus TARGET, STATUS_SLEEP, BattleScript_AlreadyAsleep + jumpifcantmakeasleep BattleScript_CantMakeAsleep + jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected + attackanimation + waitanimation + setmoveeffect EFFECT_SLEEP + seteffectprimary + goto BattleScript_MoveEnd + +BattleScript_AlreadyAsleep:: + various23 ATTACKER + pause 0x20 + printstring STRINGID_PKMNALREADYASLEEP + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_WasntAffected:: + pause 0x20 + printstring STRINGID_PKMNWASNTAFFECTED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_CantMakeAsleep:: + pause 0x20 + printfromtable gUproarAwakeStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectPoisonHit:: +BattleScript_EffectPoisonTail:: + setmoveeffect EFFECT_POISON + goto BattleScript_EffectHit + +BattleScript_EffectAbsorb:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + critcalc + damagecalc + typecalc + adjustnormaldamage + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + negativedamage + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + jumpifability TARGET, ABILITY_LIQUID_OOZE, BattleScript_AbsorbLiquidOoze + setbyte cMULTISTRING_CHOOSER, 0x0 + goto BattleScript_AbsorbUpdateHp +BattleScript_AbsorbLiquidOoze:: + manipulatedamage ATK80_DMG_CHANGE_SIGN + setbyte cMULTISTRING_CHOOSER, 0x1 +BattleScript_AbsorbUpdateHp:: + healthbarupdate ATTACKER + datahpupdate ATTACKER + jumpifmovehadnoeffect BattleScript_AbsorbTryFainting + printfromtable gLeechSeedDrainStringIds + waitmessage 0x40 +BattleScript_AbsorbTryFainting:: + tryfaintmon ATTACKER, FALSE, NULL + tryfaintmon TARGET, FALSE, NULL + goto BattleScript_MoveEnd + +BattleScript_EffectBurnHit:: +BattleScript_EffectBlazeKick:: + setmoveeffect EFFECT_BURN + goto BattleScript_EffectHit + +BattleScript_EffectFreezeHit:: + setmoveeffect EFFECT_FREEZE + goto BattleScript_EffectHit + +BattleScript_EffectParalyzeHit:: + setmoveeffect EFFECT_PARALYSIS + goto BattleScript_EffectHit + +BattleScript_EffectExplosion:: + attackcanceler + attackstring + ppreduce + faintifabilitynotdamp + setatkhptozero + waitstate + jumpifbyte NO_COMMON_BITS, gBattleMoveFlags, MOVESTATUS_MISSED, BattleScript_82D8B94 + call BattleScript_82D8BEA + goto BattleScript_82D8B96 +BattleScript_82D8B94:: + attackanimation + waitanimation +BattleScript_82D8B96:: + movevaluescleanup + critcalc + damagecalc + typecalc + adjustnormaldamage + accuracycheck BattleScript_82D8BCF, ACC_CURR_MOVE + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + tryfaintmon TARGET, FALSE, NULL + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + jumpifnexttargetvalid BattleScript_82D8B96 + tryfaintmon ATTACKER, FALSE, NULL + end +BattleScript_82D8BCF:: + effectivenesssound + resultmessage + waitmessage 0x40 + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + jumpifnexttargetvalid BattleScript_82D8B96 + tryfaintmon ATTACKER, FALSE, NULL + end + +BattleScript_82D8BEA:: + bicbyte gBattleMoveFlags, MOVESTATUS_MISSED + attackanimation + waitanimation + orbyte gBattleMoveFlags, MOVESTATUS_MISSED + return + +BattleScript_EffectDreamEater:: + attackcanceler + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_82D8C0E + jumpifstatus TARGET, STATUS_SLEEP, BattleScript_82D8C18 +BattleScript_82D8C0E:: + attackstring + ppreduce + waitmessage 0x40 + goto BattleScript_WasntAffected +BattleScript_82D8C18:: + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + critcalc + damagecalc + typecalc + adjustnormaldamage + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + negativedamage + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + jumpifmovehadnoeffect BattleScript_DreamEaterTryFaintEnd + printstring STRINGID_PKMNDREAMEATEN + waitmessage 0x40 +BattleScript_DreamEaterTryFaintEnd:: + tryfaintmon TARGET, FALSE, NULL + goto BattleScript_MoveEnd + +BattleScript_EffectMirrorMove:: + attackcanceler + attackstring + pause 0x40 + trymirrormove + ppreduce + orbyte gBattleMoveFlags, MOVESTATUS_FAILED + printstring STRINGID_MIRRORMOVEFAILED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectAttackUp:: + setstatchanger ATK, 1, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectDefenseUp:: + setstatchanger DEF, 1, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectSpecialAttackUp:: + setstatchanger SPATK, 1, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectEvasionUp:: + setstatchanger EVASION, 1, FALSE +BattleScript_EffectStatUp:: + attackcanceler +BattleScript_EffectStatUpAfterAtkCanceler:: + attackstring + ppreduce + statbuffchange AFFECTS_USER | 0x1, BattleScript_StatUpEnd + jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_StatUpAttackAnim + pause 0x20 + goto BattleScript_StatUpPrintString +BattleScript_StatUpAttackAnim:: + attackanimation + waitanimation +BattleScript_StatUpDoAnim:: + setgraphicalstatchangevalues + playanimation ATTACKER, ANIM_STATS_CHANGE, sANIM_ARG1 +BattleScript_StatUpPrintString:: + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_StatUpEnd:: + goto BattleScript_MoveEnd + +BattleScript_StatUp:: + playanimation EFFECT_BANK, ANIM_STATS_CHANGE, sANIM_ARG1 + printfromtable gStatUpStringIds + waitmessage 0x40 + return + +BattleScript_EffectAttackDown:: + setstatchanger ATK, 1, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectDefenseDown:: + setstatchanger DEF, 1, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectSpeedDown:: + setstatchanger SPEED, 1, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectAccuracyDown:: + setstatchanger ACC, 1, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectEvasionDown:: + setstatchanger EVASION, 1, TRUE +BattleScript_EffectStatDown:: + attackcanceler + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailedAtkStringPpReduce + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + statbuffchange 0x1, BattleScript_StatDownEnd + jumpifbyte LESS_THAN, cMULTISTRING_CHOOSER, 0x2, BattleScript_StatDownDoAnim + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x3, BattleScript_StatDownEnd + pause 0x20 + goto BattleScript_StatDownPrintString +BattleScript_StatDownDoAnim:: + attackanimation + waitanimation + setgraphicalstatchangevalues + playanimation TARGET, ANIM_STATS_CHANGE, sANIM_ARG1 +BattleScript_StatDownPrintString:: + printfromtable gStatDownStringIds + waitmessage 0x40 +BattleScript_StatDownEnd:: + goto BattleScript_MoveEnd + +BattleScript_StatDown:: + playanimation EFFECT_BANK, ANIM_STATS_CHANGE, sANIM_ARG1 + printfromtable gStatDownStringIds + waitmessage 0x40 + return + +BattleScript_EffectHaze:: + attackcanceler + attackstring + ppreduce + attackanimation + waitanimation + normalisebuffs + printstring STRINGID_STATCHANGESGONE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectBide:: + attackcanceler + attackstring + ppreduce + attackanimation + waitanimation + orword gHitMarker, HITMARKER_x8000000 + setbide + goto BattleScript_MoveEnd + +BattleScript_EffectRampage:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_82D8DAE + ppreduce +BattleScript_82D8DAE:: + confuseifrepeatingattackends + goto BattleScript_HitFromCritCalc + +BattleScript_EffectRoar:: + attackcanceler + attackstring + ppreduce + jumpifability TARGET, ABILITY_SUCTION_CUPS, BattleScript_AbilityPreventsPhasingOut + jumpifstatus3 TARGET, STATUS3_ROOTED, BattleScript_PrintMonIsRooted + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_ButItFailed + forcerandomswitch BattleScript_ButItFailed + +BattleScript_EffectMultiHit:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + setmultihitcounter 0x0 + initmultihitstring + setbyte sMULTIHIT_EFFECT, 0x0 +BattleScript_MultiHitLoop:: + jumpifhasnohp ATTACKER, BattleScript_MultiHitEnd + jumpifhasnohp TARGET, BattleScript_MultiHitPrintStrings + jumpifhalfword EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoMultiHit + jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_MultiHitPrintStrings +BattleScript_DoMultiHit:: + movevaluescleanup + copybyte cEFFECT_CHOOSER, sMULTIHIT_EFFECT + critcalc + damagecalc + typecalc + jumpifmovehadnoeffect BattleScript_MultiHitNoMoreHits + adjustnormaldamage + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + printstring STRINGID_EMPTYSTRING3 + waitmessage 0x1 + addbyte sMULTIHIT_STRING + 4, 0x1 + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_ENDURED, BattleScript_MultiHitPrintStrings + decrementmultihit BattleScript_MultiHitLoop + goto BattleScript_MultiHitPrintStrings +BattleScript_MultiHitNoMoreHits:: + pause 0x20 +BattleScript_MultiHitPrintStrings:: + resultmessage + waitmessage 0x40 + jumpifmovehadnoeffect BattleScript_MultiHitEnd + copyarray gBattleTextBuff1, sMULTIHIT_STRING, 0x6 + printstring STRINGID_HITXTIMES + waitmessage 0x40 +BattleScript_MultiHitEnd:: + seteffectwithchance + tryfaintmon TARGET, FALSE, NULL + setbyte sMOVEEND_STATE, 0x2 + moveend 0x1, 0x0 + setbyte sMOVEEND_STATE, 0x4 + moveend 0x0, 0x0 + end + +BattleScript_EffectConversion:: + attackcanceler + attackstring + ppreduce + tryconversiontypechange BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNCHANGEDTYPE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectFlinchHit:: + setmoveeffect EFFECT_FLINCH + goto BattleScript_EffectHit + +BattleScript_EffectRestoreHp:: + attackcanceler + attackstring + ppreduce + tryhealhalfhealth BattleScript_AlreadyAtFullHp, ATTACKER + attackanimation + waitanimation + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + printstring STRINGID_PKMNREGAINEDHEALTH + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectToxic:: + attackcanceler + attackstring + ppreduce + jumpifability TARGET, ABILITY_IMMUNITY, BattleScript_ImmunityProtected + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus TARGET, STATUS_POISON, BattleScript_AlreadyPoisoned + jumpifstatus TARGET, STATUS_TOXIC_POISON, BattleScript_AlreadyPoisoned + jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed + jumpiftype TARGET, TYPE_POISON, BattleScript_NotAffected + jumpiftype TARGET, TYPE_STEEL, BattleScript_NotAffected + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected + attackanimation + waitanimation + setmoveeffect EFFECT_TOXIC + seteffectprimary + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_AlreadyPoisoned:: + various23 ATTACKER + pause 0x40 + printstring STRINGID_PKMNALREADYPOISONED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_ImmunityProtected:: + copybyte gEffectBank, gBankTarget + setbyte cMULTISTRING_CHOOSER, 0x0 + call BattleScript_PSNPrevention + goto BattleScript_MoveEnd + +BattleScript_EffectPayDay:: + setmoveeffect EFFECT_PAYDAY + goto BattleScript_EffectHit + +BattleScript_EffectLightScreen:: + attackcanceler + attackstring + ppreduce + setlightscreen + goto BattleScript_PrintReflectLightScreenSafeguardString + +BattleScript_EffectTriAttack:: + setmoveeffect EFFECT_TRI_ATTACK + goto BattleScript_EffectHit + +BattleScript_EffectRest:: + attackcanceler + attackstring + ppreduce + jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_RestIsAlreadyAsleep + jumpifcantmakeasleep BattleScript_RestCantSleep + trysetrest BattleScript_AlreadyAtFullHp + pause 0x20 + printfromtable gRestUsedStringIds + waitmessage 0x40 + updatestatusicon ATTACKER + waitstate + goto BattleScript_PresentHealTarget + +BattleScript_RestCantSleep:: + pause 0x40 + printfromtable gUproarAwakeStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_RestIsAlreadyAsleep:: + various23 ATTACKER + pause 0x20 + printstring STRINGID_PKMNALREADYASLEEP2 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectOHKO:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + typecalc + jumpifmovehadnoeffect BattleScript_HitFromAtkAnimation + tryKO BattleScript_KOFail + trysetdestinybondtohappen + goto BattleScript_HitFromAtkAnimation +BattleScript_KOFail:: + pause 0x40 + printfromtable gKOFailedStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRazorWind:: + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn + jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn + setbyte sTWOTURN_STRINGID, 0x0 + call BattleScriptFirstChargingTurn + goto BattleScript_MoveEnd + +BattleScript_TwoTurnMovesSecondTurn:: + attackcanceler + setmoveeffect EFFECT_CHARGING + setbyte sANIM_TURN, 0x1 + clearstatusfromeffect ATTACKER + orword gHitMarker, HITMARKER_NO_PPDEDUCT + jumpifnotmove MOVE_SKY_ATTACK, BattleScript_HitFromAccCheck + setmoveeffect EFFECT_FLINCH + goto BattleScript_HitFromAccCheck + +BattleScriptFirstChargingTurn:: + attackcanceler + printstring STRINGID_EMPTYSTRING3 + ppreduce + attackanimation + waitanimation + orword gHitMarker, HITMARKER_x8000000 + setmoveeffect EFFECT_CHARGING | AFFECTS_USER + seteffectprimary + copybyte cMULTISTRING_CHOOSER, sTWOTURN_STRINGID + printfromtable gFirstTurnOfTwoStringIds + waitmessage 0x40 + return + +BattleScript_EffectSuperFang:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + damagetohalftargethp + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectDragonRage:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + setword gBattleMoveDamage, 40 + adjustsetdamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectTrap:: + jumpifnotmove MOVE_WHIRLPOOL, BattleScript_DoWrapEffect + jumpifnostatus3 TARGET, STATUS3_UNDERWATER, BattleScript_DoWrapEffect + orword gHitMarker, HITMARKER_IGNORE_UNDERWATER + setbyte sDMG_MULTIPLIER, 0x2 +BattleScript_DoWrapEffect:: + setmoveeffect EFFECT_WRAP + goto BattleScript_EffectHit + +BattleScript_EffectDoubleHit:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + setmultihitcounter 0x2 + initmultihitstring + setbyte sMULTIHIT_EFFECT, 0x0 + goto BattleScript_MultiHitLoop + +BattleScript_EffectRecoilIfMiss:: + attackcanceler + accuracycheck BattleScript_MoveMissedDoDamage, ACC_CURR_MOVE + goto BattleScript_HitFromAtkString +BattleScript_MoveMissedDoDamage:: + attackstring + ppreduce + pause 0x40 + resultmessage + waitmessage 0x40 + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_NOTAFFECTED, BattleScript_MoveEnd + printstring STRINGID_PKMNCRASHED + waitmessage 0x40 + damagecalc + typecalc + adjustnormaldamage + manipulatedamage ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP + bicbyte gBattleMoveFlags, MOVESTATUS_MISSED + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + tryfaintmon ATTACKER, FALSE, NULL + orbyte gBattleMoveFlags, MOVESTATUS_MISSED + goto BattleScript_MoveEnd + +BattleScript_EffectMist:: + attackcanceler + attackstring + ppreduce + setmist + attackanimation + waitanimation + printfromtable gMistUsedStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectFocusEnergy:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 ATTACKER, STATUS2_FOCUS_ENERGY, BattleScript_ButItFailed + setfocusenergy + attackanimation + waitanimation + printfromtable gFocusEnergyUsedStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRecoil:: + setmoveeffect EFFECT_RECOIL_25 | AFFECTS_USER | CERTAIN + jumpifnotmove MOVE_STRUGGLE, BattleScript_EffectHit + incrementgamestat 0x1B + goto BattleScript_EffectHit + +BattleScript_EffectConfuse:: + attackcanceler + attackstring + ppreduce + jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus2 TARGET, STATUS2_CONFUSION, BattleScript_AlreadyConfused + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected + attackanimation + waitanimation + setmoveeffect EFFECT_CONFUSION + seteffectprimary + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_AlreadyConfused:: + various23 ATTACKER + pause 0x20 + printstring STRINGID_PKMNALREADYCONFUSED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectAttackUp2:: + setstatchanger ATK, 2, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectDefenseUp2:: + setstatchanger DEF, 2, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectSpeedUp2:: + setstatchanger SPEED, 2, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectSpecialAttackUp2:: + setstatchanger SPATK, 2, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectSpecialDefenseUp2:: + setstatchanger SPDEF, 2, FALSE + goto BattleScript_EffectStatUp + +BattleScript_EffectTransform:: + attackcanceler + attackstring + ppreduce + transformdataexecution + attackanimation + waitanimation + printfromtable gTransformUsedStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectAttackDown2:: + setstatchanger ATK, 2, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectDefenseDown2:: + setstatchanger DEF, 2, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectSpeedDown2:: + setstatchanger SPEED, 2, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectSpecialDefenseDown2:: + setstatchanger SPDEF, 2, TRUE + goto BattleScript_EffectStatDown + +BattleScript_EffectReflect:: + attackcanceler + attackstring + ppreduce + setreflect +BattleScript_PrintReflectLightScreenSafeguardString:: + attackanimation + waitanimation + printfromtable gReflectLightScreenSafeguardStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectPoison:: + attackcanceler + attackstring + ppreduce + jumpifability TARGET, ABILITY_IMMUNITY, BattleScript_ImmunityProtected + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus TARGET, STATUS_POISON, BattleScript_AlreadyPoisoned + jumpifstatus TARGET, STATUS_TOXIC_POISON, BattleScript_AlreadyPoisoned + jumpiftype TARGET, TYPE_POISON, BattleScript_NotAffected + jumpiftype TARGET, TYPE_STEEL, BattleScript_NotAffected + jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected + attackanimation + waitanimation + setmoveeffect EFFECT_POISON + seteffectprimary + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectParalyze:: + attackcanceler + attackstring + ppreduce + jumpifability TARGET, ABILITY_LIMBER, BattleScript_LimberProtected + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + typecalc + jumpifmovehadnoeffect BattleScript_ButItFailed + jumpifstatus TARGET, STATUS_PARALYSIS, BattleScript_AlreadyParalyzed + jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected + attackanimation + waitanimation + setmoveeffect EFFECT_PARALYSIS + seteffectprimary + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_AlreadyParalyzed:: + various23 ATTACKER + pause 0x20 + printstring STRINGID_PKMNISALREADYPARALYZED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_LimberProtected:: + copybyte gEffectBank, gBankTarget + setbyte cMULTISTRING_CHOOSER, 0x0 + call BattleScript_PRLZPrevention + goto BattleScript_MoveEnd + +BattleScript_EffectAttackDownHit:: + setmoveeffect EFFECT_ATK_MINUS_1 + goto BattleScript_EffectHit + +BattleScript_EffectDefenseDownHit:: + setmoveeffect EFFECT_DEF_MINUS_1 + goto BattleScript_EffectHit + +BattleScript_EffectSpeedDownHit:: + setmoveeffect EFFECT_SPD_MINUS_1 + goto BattleScript_EffectHit + +BattleScript_EffectSpecialAttackDownHit:: + setmoveeffect EFFECT_SP_ATK_MINUS_1 + goto BattleScript_EffectHit + +BattleScript_EffectSpecialDefenseDownHit:: + setmoveeffect EFFECT_SP_DEF_MINUS_1 + goto BattleScript_EffectHit + +BattleScript_EffectAccuracyDownHit:: + setmoveeffect EFFECT_ACC_MINUS_1 + goto BattleScript_EffectHit + +BattleScript_EffectSkyAttack:: + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn + jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn + setbyte sTWOTURN_STRINGID, 0x3 + call BattleScriptFirstChargingTurn + goto BattleScript_MoveEnd + +BattleScript_EffectConfuseHit:: + setmoveeffect EFFECT_CONFUSION + goto BattleScript_EffectHit + +BattleScript_EffectTwineedle:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + setbyte sMULTIHIT_EFFECT, EFFECT_POISON + attackstring + ppreduce + setmultihitcounter 0x2 + initmultihitstring + goto BattleScript_MultiHitLoop + +BattleScript_EffectSubstitute:: + attackcanceler + ppreduce + attackstring + waitstate + jumpifstatus2 ATTACKER, STATUS2_SUBSTITUTE, BattleScript_AlreadyHasSubstitute + setsubstitute + jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x1, BattleScript_SubstituteAnim + pause 0x20 + goto BattleScript_SubstituteString +BattleScript_SubstituteAnim:: + attackanimation + waitanimation + healthbarupdate ATTACKER + datahpupdate ATTACKER +BattleScript_SubstituteString:: + printfromtable gSubsituteUsedStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd +BattleScript_AlreadyHasSubstitute:: + various23 ATTACKER + pause 0x20 + printstring STRINGID_PKMNHASSUBSTITUTE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRecharge:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + setmoveeffect EFFECT_RECHARGE | AFFECTS_USER | CERTAIN + goto BattleScript_HitFromAtkString + +BattleScript_MoveUsedMustRecharge:: + printstring STRINGID_PKMNMUSTRECHARGE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRage:: + attackcanceler + accuracycheck BattleScript_RageMiss, ACC_CURR_MOVE + setmoveeffect EFFECT_RAGE + seteffectprimary + setmoveeffect 0 + goto BattleScript_HitFromAtkString +BattleScript_RageMiss:: + setmoveeffect EFFECT_RAGE + clearstatusfromeffect ATTACKER + goto BattleScript_PrintMoveMissed + +BattleScript_EffectMimic:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + mimicattackcopy BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNLEARNEDMOVE2 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectMetronome:: + attackcanceler + attackstring + pause 0x20 + attackanimation + waitanimation + setbyte sANIM_TURN, 0x0 + setbyte sANIM_TARGETS_HIT, 0x0 + metronome + +BattleScript_EffectLeechSeed:: + attackcanceler + attackstring + pause 0x20 + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + accuracycheck BattleScript_DoLeechSeed, ACC_CURR_MOVE +BattleScript_DoLeechSeed:: + setseeded + attackanimation + waitanimation + printfromtable gLeechSeedStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSplash:: + attackcanceler + attackstring + ppreduce + attackanimation + waitanimation + incrementgamestat 0x1A + printstring STRINGID_BUTNOTHINGHAPPENED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectDisable:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + disablelastusedattack BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNMOVEWASDISABLED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectLevelDamage:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + dmgtolevel + adjustsetdamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectPsywave:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + psywavedamageeffect + adjustsetdamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectCounter:: + attackcanceler + counterdamagecalculator BattleScript_ButItFailedAtkStringPpReduce + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc2 + adjustsetdamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectEncore:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + trysetencore BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNGOTENCORE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectPainSplit:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + painsplitdmgcalc BattleScript_ButItFailed + attackanimation + waitanimation + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + copyword gBattleMoveDamage, sPAINSPLIT_HP + healthbarupdate TARGET + datahpupdate TARGET + printstring STRINGID_SHAREDPAIN + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSnore:: + attackcanceler + jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_SnoreIsAsleep + attackstring + ppreduce + goto BattleScript_ButItFailed +BattleScript_SnoreIsAsleep:: + jumpifhalfword EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoSnore + printstring STRINGID_PKMNFASTASLEEP + waitmessage 0x40 + statusanimation ATTACKER +BattleScript_DoSnore:: + attackstring + ppreduce + accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + setmoveeffect EFFECT_FLINCH + goto BattleScript_HitFromCritCalc + +BattleScript_EffectConversion2:: + attackcanceler + attackstring + ppreduce + settypetorandomresistance BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNCHANGEDTYPE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectLockOn:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + setalwayshitflag + attackanimation + waitanimation + printstring STRINGID_PKMNTOOKAIM + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSketch:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + copymovepermanently BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNSKETCHEDMOVE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSleepTalk:: + attackcanceler + jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_SleepTalkIsAsleep + attackstring + ppreduce + goto BattleScript_ButItFailed +BattleScript_SleepTalkIsAsleep:: + printstring STRINGID_PKMNFASTASLEEP + waitmessage 0x40 + statusanimation ATTACKER + attackstring + ppreduce + orword gHitMarker, HITMARKER_NO_PPDEDUCT + trychoosesleeptalkmove BattleScript_SleepTalkUsingMove + pause 0x40 + goto BattleScript_ButItFailed +BattleScript_SleepTalkUsingMove:: + attackanimation + waitanimation + setbyte sANIM_TURN, 0x0 + setbyte sANIM_TARGETS_HIT, 0x0 + jumptorandomattack TRUE + +BattleScript_EffectDestinyBond:: + attackcanceler + attackstring + ppreduce + setdestinybond + attackanimation + waitanimation + printstring STRINGID_PKMNTRYINGTOTAKEFOE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectFlail:: + remaininghptopower + goto BattleScript_EffectHit + +BattleScript_EffectSpite:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + tryspiteppreduce BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNREDUCEDPP + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectHealBell:: + attackcanceler + attackstring + ppreduce + healpartystatus + waitstate + attackanimation + waitanimation + printfromtable gPartyStatusHealStringIds + waitmessage 0x40 + jumpifnotmove MOVE_HEAL_BELL, BattleScript_PartyHealEnd + jumpifbyte NO_COMMON_BITS, cMULTISTRING_CHOOSER, 0x1, BattleScript_CheckHealBellMon2Unaffected + printstring STRINGID_PKMNSXBLOCKSY + waitmessage 0x40 +BattleScript_CheckHealBellMon2Unaffected:: + jumpifbyte NO_COMMON_BITS, cMULTISTRING_CHOOSER, 0x2, BattleScript_PartyHealEnd + printstring STRINGID_PKMNSXBLOCKSY2 + waitmessage 0x40 +BattleScript_PartyHealEnd:: + updatestatusicon ATTACKER_WITH_PARTNER + waitstate + goto BattleScript_MoveEnd + +BattleScript_EffectTripleKick:: + attackcanceler + attackstring + ppreduce + sethword sTRIPLE_KICK_POWER, 0x0 + initmultihitstring + setmultihit 0x3 +BattleScript_TripleKickLoop:: + jumpifhasnohp ATTACKER, BattleScript_TripleKickEnd + jumpifhasnohp TARGET, BattleScript_TripleKickNoMoreHits + jumpifhalfword EQUAL, gChosenMove, MOVE_SLEEP_TALK, BattleScript_DoTripleKickAttack + jumpifstatus ATTACKER, STATUS_SLEEP, BattleScript_TripleKickNoMoreHits +BattleScript_DoTripleKickAttack:: + accuracycheck BattleScript_TripleKickNoMoreHits, ACC_CURR_MOVE + movevaluescleanup + addbyte sTRIPLE_KICK_POWER, 10 + addbyte sMULTIHIT_STRING + 4, 0x1 + copyhword gDynamicBasePower, sTRIPLE_KICK_POWER + critcalc + damagecalc + typecalc + adjustnormaldamage + jumpifmovehadnoeffect BattleScript_TripleKickNoMoreHits + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + printstring STRINGID_EMPTYSTRING3 + waitmessage 0x1 + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_ENDURED, BattleScript_TripleKickPrintStrings + decrementmultihit BattleScript_TripleKickLoop + goto BattleScript_TripleKickPrintStrings +BattleScript_TripleKickNoMoreHits:: + pause 0x20 + jumpifbyte EQUAL, sMULTIHIT_STRING + 4, 0x0, BattleScript_TripleKickPrintStrings + bicbyte gBattleMoveFlags, MOVESTATUS_MISSED +BattleScript_TripleKickPrintStrings:: + resultmessage + waitmessage 0x40 + jumpifbyte EQUAL, sMULTIHIT_STRING + 4, 0x0, BattleScript_TripleKickEnd + jumpifbyte COMMON_BITS, gBattleMoveFlags, MOVESTATUS_NOTAFFECTED, BattleScript_TripleKickEnd + copyarray gBattleTextBuff1, sMULTIHIT_STRING, 0x6 + printstring STRINGID_HITXTIMES + waitmessage 0x40 +BattleScript_TripleKickEnd:: + seteffectwithchance + tryfaintmon TARGET, FALSE, NULL + setbyte sMOVEEND_STATE, 0xE + moveend 0x0, 0x0 + end + +BattleScript_EffectThief:: + setmoveeffect EFFECT_STEAL_ITEM + goto BattleScript_EffectHit + +BattleScript_EffectMeanLook:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC + jumpifstatus2 TARGET, STATUS2_ESCAPE_PREVENTION, BattleScript_ButItFailed + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + attackanimation + waitanimation + setmoveeffect EFFECT_PREVENT_ESCAPE + seteffectprimary + printstring STRINGID_TARGETCANTESCAPENOW + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectNightmare:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus2 TARGET, STATUS2_NIGHTMARE, BattleScript_ButItFailed + jumpifstatus TARGET, STATUS_SLEEP, BattleScript_NightmareWorked + goto BattleScript_ButItFailed +BattleScript_NightmareWorked:: + attackanimation + waitanimation + setmoveeffect EFFECT_NIGHTMARE + seteffectprimary + printstring STRINGID_PKMNFELLINTONIGHTMARE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectMinimize:: + attackcanceler + setminimize + setstatchanger EVASION, 1, FALSE + goto BattleScript_EffectStatUpAfterAtkCanceler + +BattleScript_EffectCurse:: + jumpiftype2 ATTACKER, TYPE_GHOST, BattleScript_GhostCurse + attackcanceler + attackstring + ppreduce + jumpifstat ATTACKER, GREATER_THAN, SPEED, 0x0, BattleScript_CurseTrySpeed + jumpifstat ATTACKER, NOT_EQUAL, ATK, 0xC, BattleScript_CurseTrySpeed + jumpifstat ATTACKER, EQUAL, DEF, 0xC, BattleScript_ButItFailed +BattleScript_CurseTrySpeed:: + copybyte gBankTarget, gBankAttacker + setbyte sANIM_TURN, 0x1 + attackanimation + waitanimation + setstatchanger SPEED, 1, TRUE + statbuffchange AFFECTS_USER | 0x1, BattleScript_CurseTryAttack + printfromtable gStatDownStringIds + waitmessage 0x40 +BattleScript_CurseTryAttack:: + setstatchanger ATK, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_CurseTryDefence + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_CurseTryDefence:: + setstatchanger DEF, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_CurseEnd + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_CurseEnd:: + goto BattleScript_MoveEnd +BattleScript_GhostCurse:: + jumpifbytenotequal gBankAttacker, gBankTarget, BattleScript_DoGhostCurse + getmovetarget ATTACKER +BattleScript_DoGhostCurse:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + cursetarget BattleScript_ButItFailed + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + setbyte sANIM_TURN, 0x0 + attackanimation + waitanimation + healthbarupdate ATTACKER + datahpupdate ATTACKER + printstring STRINGID_PKMNLAIDCURSE + waitmessage 0x40 + tryfaintmon ATTACKER, FALSE, NULL + goto BattleScript_MoveEnd + +BattleScript_EffectProtect:: +BattleScript_EffectEndure:: + attackcanceler + attackstring + ppreduce + setprotectlike + attackanimation + waitanimation + printfromtable gProtectLikeUsedStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSpikes:: + attackcanceler + trysetspikes BattleScript_ButItFailedAtkStringPpReduce + attackstring + ppreduce + attackanimation + waitanimation + printstring STRINGID_SPIKESSCATTERED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectForesight:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + setforesight + attackanimation + waitanimation + printstring STRINGID_PKMNIDENTIFIED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectPerishSong:: + attackcanceler + attackstring + ppreduce + trysetperishsong BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_FAINTINTHREE + waitmessage 0x40 + setbyte sBANK, 0x0 +BattleScript_PerishSongLoop:: + jumpifability SCRIPTING_BANK, ABILITY_SOUNDPROOF, BattleScript_PerishSongNotAffected +BattleScript_PerishSongLoopIncrement:: + addbyte sBANK, 0x1 + jumpifbytenotequal sBANK, gNoOfAllBanks, BattleScript_PerishSongLoop + goto BattleScript_MoveEnd + +BattleScript_PerishSongNotAffected:: + printstring STRINGID_PKMNSXBLOCKSY2 + waitmessage 0x40 + goto BattleScript_PerishSongLoopIncrement + +BattleScript_EffectSandstorm:: + attackcanceler + attackstring + ppreduce + setsandstorm + goto BattleScript_MoveWeatherChange + +BattleScript_EffectRollout:: + attackcanceler + attackstring + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_RolloutCheckAccuracy + ppreduce +BattleScript_RolloutCheckAccuracy:: + accuracycheck BattleScript_RolloutHit, ACC_CURR_MOVE +BattleScript_RolloutHit:: + typecalc2 + rolloutdamagecalculation + goto BattleScript_HitFromCritCalc + +BattleScript_EffectSwagger:: + attackcanceler + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_MakeMoveMissed + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + jumpifconfusedandstatmaxed ATK, BattleScript_ButItFailed + attackanimation + waitanimation + setstatchanger ATK, 2, FALSE + statbuffchange 0x1, BattleScript_SwaggerTryConfuse + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_SwaggerTryConfuse + setgraphicalstatchangevalues + playanimation TARGET, ANIM_STATS_CHANGE, sANIM_ARG1 + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_SwaggerTryConfuse:: + jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected + setmoveeffect EFFECT_CONFUSION + seteffectprimary + goto BattleScript_MoveEnd + +BattleScript_EffectFuryCutter:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_FuryCutterHit, ACC_CURR_MOVE +BattleScript_FuryCutterHit:: + furycuttercalc + critcalc + damagecalc + typecalc + jumpifmovehadnoeffect BattleScript_FuryCutterHit + adjustnormaldamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectAttract:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + tryinfatuating BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNFELLINLOVE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectReturn:: +BattleScript_EffectFrustration:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + happinesstodamagecalculation + goto BattleScript_HitFromAtkString + +BattleScript_EffectPresent:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc + presentdamagecalculation + +BattleScript_EffectSafeguard:: + attackcanceler + attackstring + ppreduce + setsafeguard + goto BattleScript_PrintReflectLightScreenSafeguardString + +BattleScript_EffectThawHit:: + setmoveeffect EFFECT_BURN + goto BattleScript_EffectHit + +BattleScript_EffectMagnitude:: + attackcanceler + attackstring + ppreduce + selectfirstvalidtarget + magnitudedamagecalculation + pause 0x20 + printstring STRINGID_MAGNITUDESTRENGTH + waitmessage 0x40 + goto BattleScript_HitsAllWithUndergroundBonusLoop + +BattleScript_EffectBatonPass:: + attackcanceler + attackstring + ppreduce + jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_ButItFailed + jumpifcantswitch ATK4F_DONT_CHECK_STATUSES | ATTACKER, BattleScript_ButItFailed + attackanimation + waitanimation + openpartyscreen 0x1, BattleScript_ButItFailed + switchoutabilities ATTACKER + waitstate + switchhandleorder ATTACKER, 0x2 + returntoball ATTACKER + getswitchedmondata ATTACKER + switchindataupdate ATTACKER + hpthresholds ATTACKER + printstring STRINGID_SWITCHINMON + switchinanim ATTACKER, TRUE + waitstate + switchineffects ATTACKER + goto BattleScript_MoveEnd + +BattleScript_EffectRapidSpin:: + setmoveeffect EFFECT_RAPIDSPIN | AFFECTS_USER | CERTAIN + goto BattleScript_EffectHit + +BattleScript_EffectSonicboom:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + setword gBattleMoveDamage, 20 + adjustsetdamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectMorningSun:: +BattleScript_EffectSynthesis:: +BattleScript_EffectMoonlight:: + attackcanceler + attackstring + ppreduce + recoverbasedonsunlight BattleScript_AlreadyAtFullHp + goto BattleScript_PresentHealTarget + +BattleScript_EffectHiddenPower:: + hiddenpowercalc + goto BattleScript_EffectHit + +BattleScript_EffectRainDance:: + attackcanceler + attackstring + ppreduce + setrain +BattleScript_MoveWeatherChange:: + attackanimation + waitanimation + printfromtable gMoveWeatherChangeStringIds + waitmessage 0x40 + call BattleScript_WeatherFormChanges + goto BattleScript_MoveEnd + +BattleScript_EffectSunnyDay:: + attackcanceler + attackstring + ppreduce + setsunny + goto BattleScript_MoveWeatherChange + +BattleScript_EffectDefenseUpHit:: + setmoveeffect EFFECT_DEF_PLUS_1 | AFFECTS_USER + goto BattleScript_EffectHit + +BattleScript_EffectAttackUpHit:: + setmoveeffect EFFECT_ATK_PLUS_1 | AFFECTS_USER + goto BattleScript_EffectHit + +BattleScript_EffectAllStatsUpHit:: + setmoveeffect EFFECT_ALL_STATS_UP | AFFECTS_USER + goto BattleScript_EffectHit + +BattleScript_EffectBellyDrum:: + attackcanceler + attackstring + ppreduce + maxattackhalvehp BattleScript_ButItFailed + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + attackanimation + waitanimation + healthbarupdate ATTACKER + datahpupdate ATTACKER + printstring STRINGID_PKMNCUTHPMAXEDATTACK + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectPsychUp:: + attackcanceler + attackstring + ppreduce + copyfoestats BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNCOPIEDSTATCHANGES + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectMirrorCoat:: + attackcanceler + mirrorcoatdamagecalculator BattleScript_ButItFailedAtkStringPpReduce + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + typecalc2 + adjustsetdamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectSkullBash:: + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn + jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn + setbyte sTWOTURN_STRINGID, 0x2 + call BattleScriptFirstChargingTurn + setstatchanger DEF, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_SkullBashEnd + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_SkullBashEnd + setgraphicalstatchangevalues + playanimation ATTACKER, ANIM_STATS_CHANGE, sANIM_ARG1 + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_SkullBashEnd:: + goto BattleScript_MoveEnd + +BattleScript_EffectTwister:: + jumpifnostatus3 TARGET, STATUS3_ON_AIR, BattleScript_FlinchEffect + orword gHitMarker, HITMARKER_IGNORE_ON_AIR + setbyte sDMG_MULTIPLIER, 0x2 +BattleScript_FlinchEffect:: + setmoveeffect EFFECT_FLINCH + goto BattleScript_EffectHit + +BattleScript_EffectEarthquake:: + attackcanceler + attackstring + ppreduce + selectfirstvalidtarget +BattleScript_HitsAllWithUndergroundBonusLoop:: + movevaluescleanup + jumpifnostatus3 TARGET, STATUS3_UNDERGROUND, BattleScript_HitsAllNoUndergroundBonus + orword gHitMarker, HITMARKER_IGNORE_UNDERGROUND + setbyte sDMG_MULTIPLIER, 0x2 + goto BattleScript_DoHitAllWithUndergroundBonus +BattleScript_HitsAllNoUndergroundBonus:: + bicword gHitMarker, HITMARKER_IGNORE_UNDERGROUND + setbyte sDMG_MULTIPLIER, 0x1 +BattleScript_DoHitAllWithUndergroundBonus:: + accuracycheck BattleScript_HitAllWithUndergroundBonusMissed, ACC_CURR_MOVE + critcalc + damagecalc + typecalc + adjustnormaldamage + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + printstring STRINGID_EMPTYSTRING3 + waitmessage 0x1 + tryfaintmon TARGET, FALSE, NULL + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + jumpifnexttargetvalid BattleScript_HitsAllWithUndergroundBonusLoop + end +BattleScript_HitAllWithUndergroundBonusMissed:: + pause 0x20 + typecalc + effectivenesssound + resultmessage + waitmessage 0x40 + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + jumpifnexttargetvalid BattleScript_HitsAllWithUndergroundBonusLoop + end + +BattleScript_EffectFutureSight:: + attackcanceler + attackstring + ppreduce + trysetfutureattack BattleScript_ButItFailed + attackanimation + waitanimation + printfromtable gFutureMoveUsedStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectGust:: + jumpifnostatus3 TARGET, STATUS3_ON_AIR, BattleScript_EffectHit + orword gHitMarker, HITMARKER_IGNORE_ON_AIR + setbyte sDMG_MULTIPLIER, 0x2 + goto BattleScript_EffectHit + +BattleScript_EffectStomp:: + jumpifnostatus3 TARGET, STATUS3_MINIMIZED, BattleScript_FlinchEffect + setbyte sDMG_MULTIPLIER, 0x2 + goto BattleScript_FlinchEffect + +BattleScript_EffectSolarbeam:: + jumpifabilitypresent ABILITY_CLOUD_NINE, BattleScript_SolarbeamDecideTurn + jumpifabilitypresent ABILITY_AIR_LOCK, BattleScript_SolarbeamDecideTurn + jumpifhalfword COMMON_BITS, gBattleWeather, WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT, BattleScript_SolarbeamOnFirstTurn +BattleScript_SolarbeamDecideTurn:: + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_TwoTurnMovesSecondTurn + jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_TwoTurnMovesSecondTurn + setbyte sTWOTURN_STRINGID, 0x1 + call BattleScriptFirstChargingTurn + goto BattleScript_MoveEnd +BattleScript_SolarbeamOnFirstTurn:: + orword gHitMarker, HITMARKER_x8000000 + setmoveeffect EFFECT_CHARGING | AFFECTS_USER + seteffectprimary + ppreduce + goto BattleScript_TwoTurnMovesSecondTurn + +BattleScript_EffectThunder:: + setmoveeffect EFFECT_PARALYSIS + orword gHitMarker, HITMARKER_IGNORE_ON_AIR + goto BattleScript_EffectHit + +BattleScript_EffectTeleport:: + attackcanceler + attackstring + ppreduce + jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_ButItFailed + getifcantrunfrombattle ATTACKER + jumpifbyte EQUAL, gBattleCommunication, 0x1, BattleScript_ButItFailed + jumpifbyte EQUAL, gBattleCommunication, 0x2, BattleScript_PrintAbilityMadeIneffective + attackanimation + waitanimation + printstring STRINGID_PKMNFLEDFROMBATTLE + waitmessage 0x40 + setoutcomeonteleport ATTACKER + goto BattleScript_MoveEnd + +BattleScript_EffectBeatUp:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + pause 0x20 + ppreduce + setbyte gBattleCommunication, 0x0 +BattleScript_BeatUpLoop:: + movevaluescleanup + trydobeatup BattleScript_BeatUpEnd, BattleScript_ButItFailed + printstring STRINGID_PKMNATTACK + critcalc + jumpifbyte NOT_EQUAL, gCritMultiplier, 0x2, BattleScript_BeatUpAttack + manipulatedamage ATK80_DMG_DOUBLED +BattleScript_BeatUpAttack:: + adjustnormaldamage + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + tryfaintmon TARGET, FALSE, NULL + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + goto BattleScript_BeatUpLoop +BattleScript_BeatUpEnd:: + end + +BattleScript_EffectSemiInvulnerable:: + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_SecondTurnSemiInvulnerable + jumpifword COMMON_BITS, gHitMarker, HITMARKER_NO_ATTACKSTRING, BattleScript_SecondTurnSemiInvulnerable + jumpifmove MOVE_FLY, BattleScript_FirstTurnFly + jumpifmove MOVE_DIVE, BattleScript_FirstTurnDive + jumpifmove MOVE_BOUNCE, BattleScript_FirstTurnBounce + setbyte sTWOTURN_STRINGID, 0x5 + goto BattleScript_FirstTurnSemiInvulnerable + +BattleScript_FirstTurnBounce:: + setbyte sTWOTURN_STRINGID, 0x7 + goto BattleScript_FirstTurnSemiInvulnerable + +BattleScript_FirstTurnDive:: + setbyte sTWOTURN_STRINGID, 0x6 + goto BattleScript_FirstTurnSemiInvulnerable + +BattleScript_FirstTurnFly:: + setbyte sTWOTURN_STRINGID, 0x4 +BattleScript_FirstTurnSemiInvulnerable:: + call BattleScriptFirstChargingTurn + setsemiinvulnerablebit + goto BattleScript_MoveEnd + +BattleScript_SecondTurnSemiInvulnerable:: + attackcanceler + setmoveeffect EFFECT_CHARGING + setbyte sANIM_TURN, 0x1 + clearstatusfromeffect ATTACKER + orword gHitMarker, HITMARKER_NO_PPDEDUCT + jumpifnotmove MOVE_BOUNCE, BattleScript_SemiInvulnerableTryHit + setmoveeffect EFFECT_PARALYSIS +BattleScript_SemiInvulnerableTryHit:: + accuracycheck BattleScript_SemiInvulnerableMiss, ACC_CURR_MOVE + clearsemiinvulnerablebit + goto BattleScript_HitFromAtkString + +BattleScript_SemiInvulnerableMiss:: + clearsemiinvulnerablebit + goto BattleScript_PrintMoveMissed + +BattleScript_EffectDefenseCurl:: + attackcanceler + attackstring + ppreduce + setdefensecurlbit + setstatchanger DEF, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_DefenseCurlDoStatUpAnim + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_StatUpPrintString + attackanimation + waitanimation +BattleScript_DefenseCurlDoStatUpAnim:: + goto BattleScript_StatUpDoAnim + +BattleScript_EffectSoftboiled:: + attackcanceler + attackstring + ppreduce + tryhealhalfhealth BattleScript_AlreadyAtFullHp, TARGET +BattleScript_PresentHealTarget:: + attackanimation + waitanimation + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate TARGET + datahpupdate TARGET + printstring STRINGID_PKMNREGAINEDHEALTH + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_AlreadyAtFullHp:: + pause 0x20 + printstring STRINGID_PKMNHPFULL + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectFakeOut:: + attackcanceler + jumpifnotfirstturn BattleScript_ButItFailedAtkStringPpReduce + setmoveeffect EFFECT_FLINCH | CERTAIN + goto BattleScript_EffectHit + +BattleScript_ButItFailedAtkStringPpReduce:: + attackstring +BattleScript_ButItFailedPpReduce:: + ppreduce +BattleScript_ButItFailed:: + pause 0x20 + orbyte gBattleMoveFlags, MOVESTATUS_FAILED + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_NotAffected:: + pause 0x20 + orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectUproar:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + setmoveeffect EFFECT_UPROAR | AFFECTS_USER + attackstring + jumpifstatus2 ATTACKER, STATUS2_MULTIPLETURNS, BattleScript_UproarHit + ppreduce +BattleScript_UproarHit:: + nop + goto BattleScript_HitFromCritCalc + +BattleScript_EffectStockpile:: + attackcanceler + attackstring + ppreduce + stockpile + attackanimation + waitanimation + printfromtable gStockpileUsedStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSpitUp:: + attackcanceler + jumpifbyte EQUAL, gBattleCommunication + 6, 0x1, BattleScript_82D9FA2 + attackstring + ppreduce + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + stockpiletobasedamage BattleScript_SpitUpFail + typecalc + adjustsetdamage + goto BattleScript_HitFromAtkAnimation +BattleScript_SpitUpFail:: + pause 0x20 + printstring STRINGID_FAILEDTOSPITUP + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_82D9FA2:: + attackstring + ppreduce + pause 0x40 + stockpiletobasedamage BattleScript_SpitUpFail + resultmessage + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSwallow:: + attackcanceler + attackstring + ppreduce + stockpiletohpheal BattleScript_SwallowFail + goto BattleScript_PresentHealTarget + +BattleScript_SwallowFail:: + pause 0x20 + printfromtable gSwallowFailStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectHail:: + attackcanceler + attackstring + ppreduce + sethail + goto BattleScript_MoveWeatherChange + +BattleScript_EffectTorment:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + settorment BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNSUBJECTEDTOTORMENT + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectFlatter:: + attackcanceler + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_MakeMoveMissed + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + jumpifconfusedandstatmaxed SPATK, BattleScript_ButItFailed + attackanimation + waitanimation + setstatchanger SPATK, 1, FALSE + statbuffchange 0x1, BattleScript_FlatterTryConfuse + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_FlatterTryConfuse + setgraphicalstatchangevalues + playanimation TARGET, ANIM_STATS_CHANGE, sANIM_ARG1 + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_FlatterTryConfuse:: + jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_OwnTempoPrevents + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected + setmoveeffect EFFECT_CONFUSION + seteffectprimary + goto BattleScript_MoveEnd + +BattleScript_EffectWillOWisp:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifstatus TARGET, STATUS_BURN, BattleScript_AlreadyBurned + jumpiftype TARGET, TYPE_FIRE, BattleScript_NotAffected + jumpifability TARGET, ABILITY_WATER_VEIL, BattleScript_WaterVeilPrevents + jumpifstatus TARGET, STATUS_ANY, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected + attackanimation + waitanimation + setmoveeffect EFFECT_BURN + seteffectprimary + goto BattleScript_MoveEnd + +BattleScript_WaterVeilPrevents:: + copybyte gEffectBank, gBankTarget + setbyte cMULTISTRING_CHOOSER, 0x0 + call BattleScript_BRNPrevention + goto BattleScript_MoveEnd + +BattleScript_AlreadyBurned:: + various23 ATTACKER + pause 0x20 + printstring STRINGID_PKMNALREADYHASBURN + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectMemento:: + attackcanceler + jumpifbyte EQUAL, gBattleCommunication + 6, 0x1, BattleScript_82DA153 + attackstring + ppreduce + jumpifattackandspecialattackcannotfall BattleScript_ButItFailed + setatkhptozero + attackanimation + waitanimation + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_82DA148 + setbyte sFIELD_1B, 0x0 + playstatchangeanimation TARGET, 0x12, 0x7 + playstatchangeanimation TARGET, 0x2, 0x3 + setstatchanger ATK, 2, TRUE + statbuffchange 0x1, BattleScript_82DA119 + jumpifbyte GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_82DA119 + printfromtable gStatDownStringIds + waitmessage 0x40 +BattleScript_82DA119:: + playstatchangeanimation TARGET, 0x10, 0x3 + setstatchanger SPATK, 2, TRUE + statbuffchange 0x1, BattleScript_82DA13C + jumpifbyte GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_82DA13C + printfromtable gStatDownStringIds + waitmessage 0x40 +BattleScript_82DA13C:: + tryfaintmon ATTACKER, FALSE, NULL + goto BattleScript_MoveEnd +BattleScript_82DA148:: + printstring STRINGID_BUTNOEFFECT + waitmessage 0x40 + goto BattleScript_82DA13C +BattleScript_82DA153:: + attackstring + ppreduce + jumpifattackandspecialattackcannotfall BattleScript_82DA15A +BattleScript_82DA15A:: + setatkhptozero + pause 0x40 + effectivenesssound + resultmessage + waitmessage 0x40 + tryfaintmon ATTACKER, FALSE, NULL + goto BattleScript_MoveEnd + +BattleScript_EffectFacade:: + jumpifstatus ATTACKER, STATUS_POISON | STATUS_BURN | STATUS_PARALYSIS | STATUS_TOXIC_POISON, BattleScript_FacadeDoubleDmg + goto BattleScript_EffectHit + +BattleScript_FacadeDoubleDmg:: + setbyte sDMG_MULTIPLIER, 0x2 + goto BattleScript_EffectHit + +BattleScript_EffectFocusPunch:: + attackcanceler + jumpifnodamage BattleScript_HitFromAccCheck + ppreduce + printstring STRINGID_PKMNLOSTFOCUS + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSmellingsalt:: + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_EffectHit + setmoveeffect EFFECT_REMOVE_PARALYSIS | CERTAIN + jumpifstatus TARGET, STATUS_PARALYSIS, BattleScript_SmellingsaltDoubleDmg + goto BattleScript_EffectHit + +BattleScript_SmellingsaltDoubleDmg:: + setbyte sDMG_MULTIPLIER, 0x2 + goto BattleScript_EffectHit + +BattleScript_EffectFollowMe:: + attackcanceler + attackstring + ppreduce + setforcedtarget + attackanimation + waitanimation + printstring STRINGID_PKMNCENTERATTENTION + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectNaturePower:: + attackcanceler + attackstring + pause 0x20 + callterrainattack + printstring STRINGID_NATUREPOWERTURNEDINTO + waitmessage 0x40 + return + +BattleScript_EffectCharge:: + attackcanceler + attackstring + ppreduce + setcharge + attackanimation + waitanimation + printstring STRINGID_PKMNCHARGINGPOWER + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectTaunt:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + settaunt BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNFELLFORTAUNT + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectHelpingHand:: + attackcanceler + attackstring + ppreduce + trysethelpinghand BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNREADYTOHELP + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectTrick:: + attackcanceler + attackstring + ppreduce + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + tryswapitems BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNSWITCHEDITEMS + waitmessage 0x40 + printfromtable gItemSwapStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRolePlay:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + trycopyability BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNCOPIEDFOE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectWish:: + attackcanceler + attackstring + ppreduce + trywish 0x0, BattleScript_ButItFailed + attackanimation + waitanimation + goto BattleScript_MoveEnd + +BattleScript_EffectAssist:: + attackcanceler + attackstring + asistattackselect BattleScript_ButItFailedPpReduce + attackanimation + waitanimation + setbyte sANIM_TURN, 0x0 + setbyte sANIM_TARGETS_HIT, 0x0 + jumptorandomattack TRUE + +BattleScript_EffectIngrain:: + attackcanceler + attackstring + ppreduce + trysetroots BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNPLANTEDROOTS + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSuperpower:: + setmoveeffect EFFECT_ATK_DEF_DOWN | AFFECTS_USER | CERTAIN + goto BattleScript_EffectHit + +BattleScript_EffectMagicCoat:: + attackcanceler + trysetmagiccoat BattleScript_ButItFailedAtkStringPpReduce + attackstring + ppreduce + attackanimation + waitanimation + printstring STRINGID_PKMNSHROUDEDITSELF + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRecycle:: + attackcanceler + attackstring + ppreduce + tryrecycleitem BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_XFOUNDONEY + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRevenge:: + doubledamagedealtifdamaged + goto BattleScript_EffectHit + +BattleScript_EffectBrickBreak:: + attackcanceler + accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE + attackstring + ppreduce + removelightscreenreflect + critcalc + damagecalc + typecalc + adjustnormaldamage + jumpifbyte EQUAL, sANIM_TURN, 0x0, BattleScript_BrickBreakAnim + bicbyte gBattleMoveFlags, MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED +BattleScript_BrickBreakAnim:: + attackanimation + waitanimation + jumpifbyte LESS_THAN, sANIM_TURN, 0x2, BattleScript_BrickBreakDoHit + printstring STRINGID_THEWALLSHATTERED + waitmessage 0x40 +BattleScript_BrickBreakDoHit:: + typecalc2 + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + seteffectwithchance + tryfaintmon TARGET, FALSE, NULL + goto BattleScript_MoveEnd + +BattleScript_EffectYawn:: + attackcanceler + attackstring + ppreduce + jumpifability TARGET, ABILITY_VITAL_SPIRIT, BattleScript_PrintBankAbilityMadeIneffective + jumpifability TARGET, ABILITY_INSOMNIA, BattleScript_PrintBankAbilityMadeIneffective + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_ButItFailed + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_SafeguardProtected + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + jumpifcantmakeasleep BattleScript_ButItFailed + setyawn BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNWASMADEDROWSY + waitmessage 0x40 + goto BattleScript_MoveEnd +BattleScript_PrintBankAbilityMadeIneffective:: + copybyte sBANK, sBANK_WITH_ABILITY +BattleScript_PrintAbilityMadeIneffective:: + pause 0x20 + printstring STRINGID_PKMNSXMADEITINEFFECTIVE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectKnockOff:: + setmoveeffect EFFECT_KNOCK_OFF + goto BattleScript_EffectHit + +BattleScript_EffectEndeavor:: + attackcanceler + attackstring + ppreduce + setdamagetohealthdifference BattleScript_ButItFailed + copyword gHpDealt, gBattleMoveDamage + accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + typecalc + jumpifmovehadnoeffect BattleScript_HitFromAtkAnimation + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + copyword gBattleMoveDamage, gHpDealt + adjustsetdamage + goto BattleScript_HitFromAtkAnimation + +BattleScript_EffectEruption:: + scaledamagebyhealthratio + goto BattleScript_EffectHit + +BattleScript_EffectSkillSwap:: + attackcanceler + attackstring + ppreduce + accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON + tryswapabilities BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNSWAPPEDABILITIES + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectImprison:: + attackcanceler + attackstring + ppreduce + tryimprision BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNSEALEDOPPONENTMOVE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectRefresh:: + attackcanceler + attackstring + ppreduce + cureifburnedparalysedorpoisoned BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNSTATUSNORMAL + waitmessage 0x40 + updatestatusicon ATTACKER + goto BattleScript_MoveEnd + +BattleScript_EffectGrudge:: + attackcanceler + attackstring + ppreduce + trysetgrudge BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNWANTSGRUDGE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectSnatch:: + attackcanceler + trysetsnatch BattleScript_ButItFailedAtkStringPpReduce + attackstring + ppreduce + attackanimation + waitanimation + pause 0x20 + printstring STRINGID_PKMNWAITSFORTARGET + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectLowKick:: + attackcanceler + attackstring + ppreduce + weightdamagecalculation + accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE + goto BattleScript_HitFromCritCalc + +BattleScript_EffectSecretPower:: + getsecretpowereffect + goto BattleScript_EffectHit + +BattleScript_EffectDoubleEdge:: + setmoveeffect EFFECT_RECOIL_33_PARALYSIS | AFFECTS_USER | CERTAIN + goto BattleScript_EffectHit + +BattleScript_EffectTeeterDance:: + attackcanceler + attackstring + ppreduce + setbyte gBankTarget, 0x0 +BattleScript_TeeterDanceLoop:: + movevaluescleanup + setmoveeffect EFFECT_CONFUSION + jumpifbyteequal gBankAttacker, gBankTarget, BattleScript_TeeterDanceLoopIncrement + jumpifability TARGET, ABILITY_OWN_TEMPO, BattleScript_TeeterDanceOwnTempoPrevents + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_TeeterDanceSubstitutePrevents + jumpifstatus2 TARGET, STATUS2_CONFUSION, BattleScript_TeeterDanceAlreadyConfused + jumpifhasnohp TARGET, BattleScript_TeeterDanceLoopIncrement + accuracycheck BattleScript_TeeterDanceMissed, ACC_CURR_MOVE + jumpifsideaffecting TARGET, SIDE_STATUS_SAFEGUARD, BattleScript_TeeterDanceSafeguardProtected + attackanimation + waitanimation + seteffectprimary + resultmessage + waitmessage 0x40 +BattleScript_TeeterDanceDoMoveEndIncrement:: + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 +BattleScript_TeeterDanceLoopIncrement:: + addbyte gBankTarget, 0x1 + jumpifbytenotequal gBankTarget, gNoOfAllBanks, BattleScript_TeeterDanceLoop + end + +BattleScript_TeeterDanceOwnTempoPrevents:: + pause 0x20 + printstring STRINGID_PKMNPREVENTSCONFUSIONWITH + waitmessage 0x40 + goto BattleScript_TeeterDanceDoMoveEndIncrement + +BattleScript_TeeterDanceSafeguardProtected:: + pause 0x20 + printstring STRINGID_PKMNUSEDSAFEGUARD + waitmessage 0x40 + goto BattleScript_TeeterDanceDoMoveEndIncrement + +BattleScript_TeeterDanceSubstitutePrevents:: + pause 0x20 + printstring STRINGID_BUTITFAILED + waitmessage 0x40 + goto BattleScript_TeeterDanceDoMoveEndIncrement + +BattleScript_TeeterDanceAlreadyConfused:: + various23 ATTACKER + pause 0x20 + printstring STRINGID_PKMNALREADYCONFUSED + waitmessage 0x40 + goto BattleScript_TeeterDanceDoMoveEndIncrement + +BattleScript_TeeterDanceMissed:: + resultmessage + waitmessage 0x40 + goto BattleScript_TeeterDanceDoMoveEndIncrement + +BattleScript_EffectMudSport:: +BattleScript_EffectWaterSport:: + attackcanceler + attackstring + ppreduce + settypebasedhalvers BattleScript_ButItFailed + attackanimation + waitanimation + printfromtable gSportsUsedStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectPoisonFang:: + setmoveeffect EFFECT_TOXIC + goto BattleScript_EffectHit + +BattleScript_EffectWeatherBall:: + setweatherballtype + goto BattleScript_EffectHit + +BattleScript_EffectOverheat:: + setmoveeffect EFFECT_SP_ATK_TWO_DOWN | AFFECTS_USER | CERTAIN + goto BattleScript_EffectHit + +BattleScript_EffectTickle:: + attackcanceler + attackstring + ppreduce + jumpifstat TARGET, GREATER_THAN, ATK, 0x0, BattleScript_TickleDoMoveAnim + jumpifstat TARGET, EQUAL, DEF, 0x0, BattleScript_CantLowerMultipleStats +BattleScript_TickleDoMoveAnim:: + accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE + attackanimation + waitanimation + setbyte sFIELD_1B, 0x0 + playstatchangeanimation TARGET, 0x6, 0x5 + playstatchangeanimation TARGET, 0x2, 0x1 + setstatchanger ATK, 1, TRUE + statbuffchange 0x1, BattleScript_TickleTryLowerDef + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_TickleTryLowerDef + printfromtable gStatDownStringIds + waitmessage 0x40 +BattleScript_TickleTryLowerDef:: + playstatchangeanimation TARGET, 0x4, 0x1 + setstatchanger DEF, 1, TRUE + statbuffchange 0x1, BattleScript_TickleEnd + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_TickleEnd + printfromtable gStatDownStringIds + waitmessage 0x40 +BattleScript_TickleEnd:: + goto BattleScript_MoveEnd + +BattleScript_CantLowerMultipleStats:: + pause 0x20 + orbyte gBattleMoveFlags, MOVESTATUS_FAILED + printstring STRINGID_STATSWONTDECREASE2 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectCosmicPower:: + attackcanceler + attackstring + ppreduce + jumpifstat ATTACKER, LESS_THAN, DEF, 0xC, BattleScript_CosmicPowerDoMoveAnim + jumpifstat ATTACKER, EQUAL, SPDEF, 0xC, BattleScript_CantRaiseMultipleStats +BattleScript_CosmicPowerDoMoveAnim:: + attackanimation + waitanimation + setbyte sFIELD_1B, 0x0 + playstatchangeanimation ATTACKER, 0x24, 0x0 + setstatchanger DEF, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_CosmicPowerTrySpDef + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CosmicPowerTrySpDef + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_CosmicPowerTrySpDef:: + setstatchanger SPDEF, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_CosmicPowerEnd + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CosmicPowerEnd + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_CosmicPowerEnd:: + goto BattleScript_MoveEnd + +BattleScript_EffectSkyUppercut:: + orword gHitMarker, HITMARKER_IGNORE_ON_AIR + goto BattleScript_EffectHit + +BattleScript_EffectBulkUp:: + attackcanceler + attackstring + ppreduce + jumpifstat ATTACKER, LESS_THAN, ATK, 0xC, BattleScript_BulkUpDoMoveAnim + jumpifstat ATTACKER, EQUAL, DEF, 0xC, BattleScript_CantRaiseMultipleStats +BattleScript_BulkUpDoMoveAnim:: + attackanimation + waitanimation + setbyte sFIELD_1B, 0x0 + playstatchangeanimation ATTACKER, 0x6, 0x0 + setstatchanger ATK, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_BulkUpTryDef + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_BulkUpTryDef + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_BulkUpTryDef:: + setstatchanger DEF, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_BulkUpEnd + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_BulkUpEnd + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_BulkUpEnd:: + goto BattleScript_MoveEnd + +BattleScript_EffectCalmMind:: + attackcanceler + attackstring + ppreduce + jumpifstat ATTACKER, LESS_THAN, SPATK, 0xC, BattleScript_CalmMindDoMoveAnim + jumpifstat ATTACKER, EQUAL, SPDEF, 0xC, BattleScript_CantRaiseMultipleStats +BattleScript_CalmMindDoMoveAnim:: + attackanimation + waitanimation + setbyte sFIELD_1B, 0x0 + playstatchangeanimation ATTACKER, 0x30, 0x0 + setstatchanger SPATK, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_CalmMindTrySpDef + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CalmMindTrySpDef + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_CalmMindTrySpDef:: + setstatchanger SPDEF, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_CalmMindEnd + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CalmMindEnd + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_CalmMindEnd:: + goto BattleScript_MoveEnd + +BattleScript_CantRaiseMultipleStats:: + pause 0x20 + orbyte gBattleMoveFlags, MOVESTATUS_FAILED + printstring STRINGID_STATSWONTINCREASE2 + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_EffectDragonDance:: + attackcanceler + attackstring + ppreduce + jumpifstat ATTACKER, LESS_THAN, ATK, 0xC, BattleScript_DragonDanceDoMoveAnim + jumpifstat ATTACKER, EQUAL, SPEED, 0xC, BattleScript_CantRaiseMultipleStats +BattleScript_DragonDanceDoMoveAnim:: + attackanimation + waitanimation + setbyte sFIELD_1B, 0x0 + playstatchangeanimation ATTACKER, 0xA, 0x0 + setstatchanger ATK, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_DragonDanceTrySpeed + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_DragonDanceTrySpeed + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_DragonDanceTrySpeed:: + setstatchanger SPEED, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_DragonDanceEnd + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_DragonDanceEnd + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_DragonDanceEnd:: + goto BattleScript_MoveEnd + +BattleScript_EffectCamouflage:: + attackcanceler + attackstring + ppreduce + settypetoterrain BattleScript_ButItFailed + attackanimation + waitanimation + printstring STRINGID_PKMNCHANGEDTYPE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_FaintAttacker:: + playfaintcry ATTACKER + pause 0x40 + dofaintanimation ATTACKER + cleareffectsonfaint ATTACKER + printstring STRINGID_ATTACKERFAINTED + return + +BattleScript_FaintTarget:: + playfaintcry TARGET + pause 0x40 + dofaintanimation TARGET + cleareffectsonfaint TARGET + printstring STRINGID_TARGETFAINTED + return + +BattleScript_GiveExp:: + setbyte sGIVEEXP_STATE, 0x0 + getexp TARGET + end2 + +BattleScript_HandleFaintedMon:: + atk24 BattleScript_82DA8F6 + jumpifbyte NOT_EQUAL, gBattleOutcome, 0, BattleScript_FaintedMonEnd + jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_FaintedMonTryChooseAnother + jumpifword NO_COMMON_BITS, gHitMarker, HITMARKER_x400000, BattleScript_FaintedMonTryChooseAnother + printstring STRINGID_USENEXTPKMN + setbyte gBattleCommunication, 0x0 + yesnobox + jumpifbyte EQUAL, gBattleCommunication + 1, 0x0, BattleScript_FaintedMonTryChooseAnother + jumpifplayerran BattleScript_FaintedMonEnd + printstring STRINGID_CANTESCAPE2 +BattleScript_FaintedMonTryChooseAnother:: + openpartyscreen 0x3, BattleScript_FaintedMonEnd + switchhandleorder GBANK_1, 0x2 + jumpifnotbattletype BATTLE_TYPE_TRAINER, BattleScript_FaintedMonChooseAnother + jumpifbattletype BATTLE_TYPE_LINK, BattleScript_FaintedMonChooseAnother + jumpifbattletype BATTLE_TYPE_x2000000, BattleScript_FaintedMonChooseAnother + jumpifbattletype BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE | BATTLE_TYPE_PYRAMID, BattleScript_FaintedMonChooseAnother + jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_FaintedMonChooseAnother + jumpifword COMMON_BITS, gHitMarker, HITMARKER_x400000, BattleScript_FaintedMonChooseAnother + jumpifbyte EQUAL, sBATTLE_STYLE, 0x1, BattleScript_FaintedMonChooseAnother + jumpifcantswitch 11, BattleScript_FaintedMonChooseAnother + printstring STRINGID_ENEMYABOUTTOSWITCHPKMN + setbyte gBattleCommunication, 0x0 + yesnobox + jumpifbyte EQUAL, gBattleCommunication + 1, 0x1, BattleScript_FaintedMonChooseAnother + setatktoplayer0 + openpartyscreen 0x81, BattleScript_FaintedMonChooseAnother + switchhandleorder ATTACKER, 0x2 + jumpifbyte EQUAL, gBattleCommunication, 0x6, BattleScript_FaintedMonChooseAnother + atknameinbuff1 + resetintrimidatetracebits ATTACKER + hpthresholds2 ATTACKER + printstring STRINGID_RETURNMON + switchoutabilities ATTACKER + waitstate + returnatktoball + waitstate + drawpartystatussummary ATTACKER + getswitchedmondata ATTACKER + switchindataupdate ATTACKER + hpthresholds ATTACKER + printstring STRINGID_SWITCHINMON + atk62 ATTACKER + switchinanim ATTACKER, 0x0 + waitstate + switchineffects ATTACKER + resetsentmonsvalue +BattleScript_FaintedMonChooseAnother:: + drawpartystatussummary GBANK_1 + getswitchedmondata GBANK_1 + switchindataupdate GBANK_1 + hpthresholds GBANK_1 + printstring STRINGID_SWITCHINMON + atk62 GBANK_1 + switchinanim GBANK_1, FALSE + waitstate + various7 ATTACKER + switchineffects GBANK_1 + jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_FaintedMonEnd + cancelallactions +BattleScript_FaintedMonEnd:: + end2 + +BattleScript_82DA8F6:: + openpartyscreen 0x5, BattleScript_82DA8FC +BattleScript_82DA8FC:: + switchhandleorder GBANK_1, 0x0 + openpartyscreen 0x6, BattleScript_82DA92C + switchhandleorder GBANK_1, 0x0 +BattleScript_82DA908:: + switchhandleorder GBANK_1, 0x3 + drawpartystatussummary GBANK_1 + getswitchedmondata GBANK_1 + switchindataupdate GBANK_1 + hpthresholds GBANK_1 + printstring STRINGID_SWITCHINMON + atk62 GBANK_1 + switchinanim GBANK_1, FALSE + waitstate + switchineffects 5 + jumpifbytenotequal gBank1, gNoOfAllBanks, BattleScript_82DA908 +BattleScript_82DA92C:: + end2 + +BattleScript_LocalTrainerBattleWon:: + jumpifbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalTwoTrainersDefeated + printstring STRINGID_PLAYERDEFEATEDTRAINER1 + goto BattleScript_LocalBattleWonLoseTexts +BattleScript_LocalTwoTrainersDefeated:: + printstring STRINGID_TWOENEMIESDEFEATED +BattleScript_LocalBattleWonLoseTexts:: + trainerslidein ATTACKER + waitstate + printstring STRINGID_TRAINER1LOSETEXT + jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalBattleWonReward + trainerslideout IDENTITY_OPPONENT_MON1 + waitstate + trainerslidein GBANK_1 + waitstate + printstring STRINGID_TRAINER2LOSETEXT +BattleScript_LocalBattleWonReward:: + getmoneyreward + printstring STRINGID_PLAYERGOTMONEY + waitmessage 0x40 +BattleScript_PayDayMoneyAndPickUpItems:: + givepaydaymoney + pickup + end2 + +BattleScript_LocalBattleLost:: + jumpifbattletype BATTLE_TYPE_DOME, BattleScript_CheckDomeDrew + jumpifbattletype BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE | BATTLE_TYPE_PYRAMID, BattleScript_LocalBattleLostPrintTrainersWinText + jumpifbattletype BATTLE_TYPE_x4000000, BattleScript_LocalBattleLostPrintTrainersWinText + jumpifbattletype BATTLE_TYPE_EREADER_TRAINER, BattleScript_LocalBattleLostEnd + jumpifhalfword EQUAL, gTrainerBattleOpponent_A, 0x400, BattleScript_LocalBattleLostEnd +BattleScript_LocalBattleLostPrintWhiteOut:: + printstring STRINGID_PLAYERWHITEOUT + waitmessage 0x40 + printstring STRINGID_PLAYERWHITEOUT2 + waitmessage 0x40 +BattleScript_LocalBattleLostEnd:: + end2 +BattleScript_CheckDomeDrew:: + jumpifbyte EQUAL, gBattleOutcome, DREW, BattleScript_LocalBattleLostEnd_ +BattleScript_LocalBattleLostPrintTrainersWinText:: + jumpifnotbattletype BATTLE_TYPE_TRAINER, BattleScript_LocalBattleLostPrintWhiteOut + returnopponentmon1toball ATTACKER + waitstate + returnopponentmon2toball ATTACKER + waitstate + trainerslidein ATTACKER + waitstate + printstring STRINGID_TRAINER1WINTEXT + jumpifbattletype BATTLE_TYPE_x800000, BattleScript_LocalBattleLostDoTrainer2WinText + jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_LocalBattleLostEnd_ +BattleScript_LocalBattleLostDoTrainer2WinText:: + trainerslideout IDENTITY_OPPONENT_MON1 + waitstate + trainerslidein GBANK_1 + waitstate + printstring STRINGID_TRAINER2WINTEXT +BattleScript_LocalBattleLostEnd_:: + end2 + +BattleScript_82DAA0B:: + returnopponentmon1toball ATTACKER + waitstate + returnopponentmon2toball ATTACKER + waitstate + trainerslidein ATTACKER + waitstate + printstring STRINGID_TRAINER1WINTEXT + trainerslideout IDENTITY_OPPONENT_MON1 + waitstate + trainerslidein GBANK_1 + waitstate + printstring STRINGID_TRAINER2WINTEXT + jumpifbattletype BATTLE_TYPE_RECORDED, BattleScript_82DAA31 + atk57 +BattleScript_82DAA31:: + waitmessage 0x40 + end2 + +BattleScript_LinkBattleWonOrLost:: + jumpifbattletype BATTLE_TYPE_BATTLE_TOWER, BattleScript_82DAA5C + printstring STRINGID_BATTLEEND + waitmessage 0x40 + jumpifbattletype BATTLE_TYPE_RECORDED, BattleScript_LinkBattleWonOrLostWaitEnd + atk57 +BattleScript_LinkBattleWonOrLostWaitEnd:: + waitmessage 0x40 + end2 + +BattleScript_82DAA5C:: + playtrainerdefeatbgm ATTACKER + printstring STRINGID_BATTLEEND + waitmessage 0x40 + trainerslidein ATTACKER + waitstate + printstring STRINGID_TRAINER1LOSETEXT + trainerslideout IDENTITY_OPPONENT_MON1 + waitstate + trainerslidein GBANK_1 + waitstate + printstring STRINGID_TRAINER2LOSETEXT + jumpifbattletype BATTLE_TYPE_RECORDED, BattleScript_82DAA83 + atk57 +BattleScript_82DAA83:: + waitmessage 0x40 + end2 + +BattleScript_FrontierTrainerBattleWon:: + jumpifnotbattletype BATTLE_TYPE_TRAINER, BattleScript_PayDayMoneyAndPickUpItems + jumpifbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_82DAAAB + printstring STRINGID_PLAYERDEFEATEDTRAINER1 + goto BattleScript_82DAAAE +BattleScript_82DAAAB:: + printstring STRINGID_TWOENEMIESDEFEATED +BattleScript_82DAAAE:: + trainerslidein ATTACKER + waitstate + printstring STRINGID_TRAINER1LOSETEXT + jumpifnotbattletype BATTLE_TYPE_TWO_OPPONENTS, BattleScript_82DAACB + trainerslideout IDENTITY_OPPONENT_MON1 + waitstate + trainerslidein GBANK_1 + waitstate + printstring STRINGID_TRAINER2LOSETEXT +BattleScript_82DAACB:: + jumpifnotbattletype BATTLE_TYPE_PYRAMID, BattleScript_82DAADA + pickup +BattleScript_82DAADA:: + end2 + +BattleScript_SmokeBallEscape:: + playanimation ATTACKER, ANIM_SMOKEBALL_ESCAPE, NULL + printstring STRINGID_PKMNFLEDUSINGITS + waitmessage 0x40 + end2 + +BattleScript_RanAwayUsingMonAbility:: + printstring STRINGID_PKMNFLEDUSING + waitmessage 0x40 + end2 + +BattleScript_GotAwaySafely:: + printstring STRINGID_GOTAWAYSAFELY + waitmessage 0x40 + end2 + +BattleScript_WildMonFled:: + printstring STRINGID_WILDPKMNFLED + waitmessage 0x40 + end2 + +BattleScript_PrintCantRunFromTrainer:: + printstring STRINGID_NORUNNINGFROMTRAINERS + end2 + +BattleScript_PrintFailedToRunString:: + printfromtable gNoEscapeStringIds + waitmessage 0x40 + end2 + +BattleScript_PrintCantEscapeFromBattle:: + printselectionstringfromtable gNoEscapeStringIds + endselectionscript + +BattleScript_PrintFullBox:: + printselectionstring STRINGID_BOXISFULL + endselectionscript + +BattleScript_ActionSwitch:: + hpthresholds2 ATTACKER + printstring STRINGID_RETURNMON + setbyte sDMG_MULTIPLIER, 0x2 + jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_PursuitSwitchDmgSetMultihit + setmultihit 0x1 + goto BattleScript_PursuitSwitchDmgLoop +BattleScript_PursuitSwitchDmgSetMultihit:: + setmultihit 0x2 +BattleScript_PursuitSwitchDmgLoop:: + jumpifnopursuitswitchdmg BattleScript_DoSwitchOut + atk5F + trysetdestinybondtohappen + call BattleScript_PursuitDmgOnSwitchOut + atk5F +BattleScript_DoSwitchOut:: + decrementmultihit BattleScript_PursuitSwitchDmgLoop + switchoutabilities ATTACKER + waitstate + returnatktoball + waitstate + drawpartystatussummary ATTACKER + switchhandleorder ATTACKER, 0x1 + getswitchedmondata ATTACKER + switchindataupdate ATTACKER + hpthresholds ATTACKER + printstring STRINGID_SWITCHINMON + atk62 ATTACKER + switchinanim ATTACKER, FALSE + waitstate + switchineffects ATTACKER + setbyte sMOVEEND_STATE, 0x4 + moveend 0x1, 0x0 + setbyte sMOVEEND_STATE, 0xF + moveend 0x1, 0x0 + end2 + +BattleScript_PursuitDmgOnSwitchOut:: + pause 0x20 + attackstring + ppreduce + critcalc + damagecalc + typecalc + adjustnormaldamage + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + critmessage + waitmessage 0x40 + resultmessage + waitmessage 0x40 + tryfaintmon TARGET, FALSE, NULL + setbyte sMOVEEND_STATE, 0x3 + moveend 0x2, 0x6 + various4 TARGET + jumpifbyte EQUAL, gBattleCommunication, 0x0, BattleScript_PursuitDmgOnSwitchOutRet + setbyte sGIVEEXP_STATE, 0x0 + getexp TARGET +BattleScript_PursuitDmgOnSwitchOutRet:: + return + +BattleScript_Pausex20:: + pause 0x20 + return + +BattleScript_LevelUp:: + fanfare BGM_FANFA1 + printstring STRINGID_PKMNGREWTOLV + setbyte sLVLBOX_STATE, 0x0 + drawlvlupbox + handlelearnnewmove BattleScript_LearnedNewMove, BattleScript_LearnMoveReturn, TRUE + goto BattleScript_AskToLearnMove +BattleScript_TryLearnMoveLoop:: + handlelearnnewmove BattleScript_LearnedNewMove, BattleScript_LearnMoveReturn, FALSE +BattleScript_AskToLearnMove:: + buffermovetolearn + printstring STRINGID_TRYTOLEARNMOVE1 + printstring STRINGID_TRYTOLEARNMOVE2 + printstring STRINGID_TRYTOLEARNMOVE3 + waitstate + setbyte sLEARNMOVE_STATE, 0x0 + yesnoboxlearnmove BattleScript_ForgotAndLearnedNewMove + printstring STRINGID_STOPLEARNINGMOVE + waitstate + setbyte sLEARNMOVE_STATE, 0x0 + yesnoboxstoplearningmove BattleScript_AskToLearnMove + printstring STRINGID_DIDNOTLEARNMOVE + goto BattleScript_TryLearnMoveLoop +BattleScript_ForgotAndLearnedNewMove:: + printstring STRINGID_123POOF + printstring STRINGID_PKMNFORGOTMOVE + printstring STRINGID_ANDELLIPSIS +BattleScript_LearnedNewMove:: + buffermovetolearn + fanfare BGM_FANFA1 + printstring STRINGID_PKMNLEARNEDMOVE + waitmessage 0x40 + updatechoicemoveonlvlup ATTACKER + goto BattleScript_TryLearnMoveLoop +BattleScript_LearnMoveReturn:: + return + +BattleScript_RainContinuesOrEnds:: + printfromtable gRainContinuesStringIds + waitmessage 0x40 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_RainContinuesOrEndsEnd + playanimation ATTACKER, ANIM_RAIN_CONTINUES, NULL +BattleScript_RainContinuesOrEndsEnd:: + end2 + +BattleScript_DamagingWeatherContinues:: + printfromtable gSandStormHailContinuesStringIds + waitmessage 0x40 + playanimation2 ATTACKER, sANIM_ARG1, NULL + setbyte gBattleCommunication, 0x0 +BattleScript_DamagingWeatherLoop:: + copyarraywithindex gBankAttacker, gBanksByTurnOrder, gBattleCommunication, 0x1 + weatherdamage + jumpifword EQUAL, gBattleMoveDamage, 0x0, BattleScript_DamagingWeatherLoopIncrement + printfromtable gSandStormHailDmgStringIds + waitmessage 0x40 + orword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE + effectivenesssound + hitanimation ATTACKER + healthbarupdate ATTACKER + datahpupdate ATTACKER + tryfaintmon ATTACKER, FALSE, NULL + atk24 BattleScript_DamagingWeatherLoopIncrement +BattleScript_DamagingWeatherLoopIncrement:: + jumpifbyte NOT_EQUAL, gBattleOutcome, 0, BattleScript_DamagingWeatherContinuesEnd + addbyte gBattleCommunication, 0x1 + jumpifbytenotequal gBattleCommunication, gNoOfAllBanks, BattleScript_DamagingWeatherLoop +BattleScript_DamagingWeatherContinuesEnd:: + bicword gHitMarker, HITMARKER_x20 | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 | HITMARKER_GRUDGE + end2 + +BattleScript_SandStormHailEnds:: + printfromtable gSandStormHailEndStringIds + waitmessage 0x40 + end2 + +BattleScript_SunlightContinues:: + printstring STRINGID_SUNLIGHTSTRONG + waitmessage 0x40 + playanimation ATTACKER, ANIM_SUN_CONTINUES, NULL + end2 + +BattleScript_SunlightFaded:: + printstring STRINGID_SUNLIGHTFADED + waitmessage 0x40 + end2 + +BattleScript_OverworldWeatherStarts:: + printfromtable gWeatherContinuesStringIds + waitmessage 0x40 + playanimation2 ATTACKER, sANIM_ARG1, NULL + end3 + +BattleScript_SideStatusWoreOff:: + printstring STRINGID_PKMNSXWOREOFF + waitmessage 0x40 + end2 + +BattleScript_SafeguardProtected:: + pause 0x20 + printstring STRINGID_PKMNUSEDSAFEGUARD + waitmessage 0x40 + end2 + +BattleScript_SafeguardEnds:: + pause 0x20 + printstring STRINGID_PKMNSAFEGUARDEXPIRED + waitmessage 0x40 + end2 + +BattleScript_LeechSeedTurnDrain:: + playanimation ATTACKER, ANIM_LEECH_SEED_DRAIN, sANIM_ARG1 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + copyword gBattleMoveDamage, gHpDealt + jumpifability ATTACKER, ABILITY_LIQUID_OOZE, BattleScript_LeechSeedTurnPrintLiquidOoze + manipulatedamage ATK80_DMG_CHANGE_SIGN + setbyte cMULTISTRING_CHOOSER, 0x3 + goto BattleScript_LeechSeedTurnPrintAndUpdateHp +BattleScript_LeechSeedTurnPrintLiquidOoze:: + setbyte cMULTISTRING_CHOOSER, 0x4 +BattleScript_LeechSeedTurnPrintAndUpdateHp:: + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate TARGET + datahpupdate TARGET + printfromtable gLeechSeedStringIds + waitmessage 0x40 + tryfaintmon ATTACKER, FALSE, NULL + tryfaintmon TARGET, FALSE, NULL + end2 + +BattleScript_BideStoringEnergy:: + printstring STRINGID_PKMNSTORINGENERGY + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_BideAttack:: + attackcanceler + setmoveeffect EFFECT_CHARGING + clearstatusfromeffect ATTACKER + printstring STRINGID_PKMNUNLEASHEDENERGY + waitmessage 0x40 + accuracycheck BattleScript_MoveMissed, ACC_CURR_MOVE + typecalc + bicbyte gBattleMoveFlags, MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE + copyword gBattleMoveDamage, sBIDE_DMG + adjustsetdamage + setbyte sANIM_TURN, 0x1 + attackanimation + waitanimation + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + resultmessage + waitmessage 0x40 + tryfaintmon TARGET, FALSE, NULL + goto BattleScript_MoveEnd + +BattleScript_BideNoEnergyToAttack:: + attackcanceler + setmoveeffect EFFECT_CHARGING + clearstatusfromeffect ATTACKER + printstring STRINGID_PKMNUNLEASHEDENERGY + waitmessage 0x40 + goto BattleScript_ButItFailed + +BattleScript_SuccessForceOut:: + attackanimation + waitanimation + switchoutabilities TARGET + returntoball TARGET + waitstate + jumpifbattletype BATTLE_TYPE_TRAINER, BattleScript_TrainerBattleForceOut + setoutcomeonteleport ATTACKER + finishaction + +BattleScript_TrainerBattleForceOut:: + getswitchedmondata TARGET + switchindataupdate TARGET + switchinanim TARGET, FALSE + waitstate + printstring STRINGID_PKMNWASDRAGGEDOUT + switchineffects TARGET + goto BattleScript_MoveEnd + +BattleScript_MistProtected:: + pause 0x20 + printstring STRINGID_PKMNPROTECTEDBYMIST + waitmessage 0x40 + return + +BattleScript_RageIsBuilding:: + printstring STRINGID_PKMNRAGEBUILDING + waitmessage 0x40 + return + +BattleScript_MoveUsedIsDisabled:: + printstring STRINGID_PKMNMOVEISDISABLED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_SelectingDisabledMove:: + printselectionstring STRINGID_PKMNMOVEISDISABLED + endselectionscript + +BattleScript_DisabledNoMore:: + printstring STRINGID_PKMNMOVEDISABLEDNOMORE + waitmessage 0x40 + end2 + +BattleScript_SelectingDisabledMoveInPalace:: + printstring STRINGID_PKMNMOVEISDISABLED +BattleScript_SelectingUnusableMoveInPalace:: + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + end + +BattleScript_EncoredNoMore:: + printstring STRINGID_PKMNENCOREENDED + waitmessage 0x40 + end2 + +BattleScript_DestinyBondTakesLife:: + printstring STRINGID_PKMNTOOKFOE + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + tryfaintmon ATTACKER, FALSE, NULL + return + +BattleScript_SpikesOnAttacker:: + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + call BattleScript_PrintHurtBySpikes + tryfaintmon ATTACKER, FALSE, NULL + tryfaintmon ATTACKER, TRUE, BattleScript_SpikesOnAttackerFainted + return + +BattleScript_SpikesOnAttackerFainted:: + setbyte sGIVEEXP_STATE, 0x0 + getexp ATTACKER + setbyte sMOVEEND_STATE, 0x0 + moveend 0x0, 0x0 + goto BattleScript_HandleFaintedMon + +BattleScript_SpikesOnTarget:: + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate TARGET + datahpupdate TARGET + call BattleScript_PrintHurtBySpikes + tryfaintmon TARGET, FALSE, NULL + tryfaintmon TARGET, TRUE, BattleScript_SpikesOnTargetFainted + return + +BattleScript_SpikesOnTargetFainted:: + setbyte sGIVEEXP_STATE, 0x0 + getexp TARGET + setbyte sMOVEEND_STATE, 0x0 + moveend 0x0, 0x0 + goto BattleScript_HandleFaintedMon + +BattleScript_SpikesOngBank1:: + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate GBANK_1 + datahpupdate GBANK_1 + call BattleScript_PrintHurtBySpikes + tryfaintmon GBANK_1, FALSE, NULL + tryfaintmon GBANK_1, TRUE, BattleScript_SpikesOngBank1Fainted + return + +BattleScript_SpikesOngBank1Fainted:: + setbyte sGIVEEXP_STATE, 0x0 + getexp GBANK_1 + setbyte sMOVEEND_STATE, 0x0 + moveend 0x0, 0x0 + goto BattleScript_HandleFaintedMon + +BattleScript_PrintHurtBySpikes:: + printstring STRINGID_PKMNHURTBYSPIKES + waitmessage 0x40 + return + +BattleScript_PerishSongTakesLife:: + printstring STRINGID_PKMNPERISHCOUNTFELL + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + tryfaintmon ATTACKER, FALSE, NULL + end2 + +BattleScript_PerishSongCountGoesDown:: + printstring STRINGID_PKMNPERISHCOUNTFELL + waitmessage 0x40 + end2 + +BattleScript_AllStatsUp:: + jumpifstat ATTACKER, LESS_THAN, ATK, 0xC, BattleScript_AllStatsUpAtk + jumpifstat ATTACKER, LESS_THAN, DEF, 0xC, BattleScript_AllStatsUpAtk + jumpifstat ATTACKER, LESS_THAN, SPEED, 0xC, BattleScript_AllStatsUpAtk + jumpifstat ATTACKER, LESS_THAN, SPATK, 0xC, BattleScript_AllStatsUpAtk + jumpifstat ATTACKER, EQUAL, SPDEF, 0xC, BattleScript_AllStatsUpRet +BattleScript_AllStatsUpAtk:: + setbyte sFIELD_1B, 0x0 + playstatchangeanimation ATTACKER, 0x3E, 0x0 + setstatchanger ATK, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_AllStatsUpDef + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_AllStatsUpDef:: + setstatchanger DEF, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_AllStatsUpSpeed + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_AllStatsUpSpeed:: + setstatchanger SPEED, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_AllStatsUpSpAtk + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_AllStatsUpSpAtk:: + setstatchanger SPATK, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_AllStatsUpSpDef + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_AllStatsUpSpDef:: + setstatchanger SPDEF, 1, FALSE + statbuffchange AFFECTS_USER | 0x1, BattleScript_AllStatsUpRet + printfromtable gStatUpStringIds + waitmessage 0x40 +BattleScript_AllStatsUpRet:: + return + +BattleScript_RapidSpinAway:: + rapidspinfree + return + +BattleScript_WrapFree:: + printstring STRINGID_PKMNGOTFREE + waitmessage 0x40 + copybyte gBankTarget, sBANK + return + +BattleScript_LeechSeedFree:: + printstring STRINGID_PKMNSHEDLEECHSEED + waitmessage 0x40 + return + +BattleScript_SpikesFree:: + printstring STRINGID_PKMNBLEWAWAYSPIKES + waitmessage 0x40 + return + +BattleScript_MonTookFutureAttack:: + printstring STRINGID_PKMNTOOKATTACK + waitmessage 0x40 + jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_CheckDoomDesireMiss + accuracycheck BattleScript_FutureAttackMiss, MOVE_FUTURE_SIGHT + goto BattleScript_FutureAttackAnimate +BattleScript_CheckDoomDesireMiss:: + accuracycheck BattleScript_FutureAttackMiss, MOVE_DOOM_DESIRE +BattleScript_FutureAttackAnimate:: + adjustnormaldamage2 + jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_FutureHitAnimDoomDesire + playanimation ATTACKER, ANIM_FUTURE_SIGHT_HIT, NULL + goto BattleScript_DoFutureAttackHit +BattleScript_FutureHitAnimDoomDesire:: + playanimation ATTACKER, ANIM_DOOM_DESIRE_HIT, NULL +BattleScript_DoFutureAttackHit:: + effectivenesssound + hitanimation TARGET + waitstate + healthbarupdate TARGET + datahpupdate TARGET + resultmessage + waitmessage 0x40 + tryfaintmon TARGET, FALSE, NULL + atk24 BattleScript_FutureAttackEnd +BattleScript_FutureAttackEnd:: + setbyte sMOVEEND_STATE, 0x0 + moveend 0x1, 0x0 + setbyte sMOVEEND_STATE, 0xB + moveend 0x2, 0xE + setbyte gBattleMoveFlags, 0 + end2 + +BattleScript_FutureAttackMiss:: + pause 0x20 + setbyte gBattleMoveFlags, 0 + orbyte gBattleMoveFlags, MOVESTATUS_FAILED + resultmessage + waitmessage 0x40 + setbyte gBattleMoveFlags, 0 + end2 + +BattleScript_NoMovesLeft:: + printselectionstring STRINGID_PKMNHASNOMOVESLEFT + endselectionscript + +BattleScript_SelectingMoveWithNoPP:: + printselectionstring STRINGID_NOPPLEFT + endselectionscript + +BattleScript_NoPPForMove:: + attackstring + pause 0x20 + printstring STRINGID_BUTNOPPLEFT + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_SelectingTormentedMove:: + printselectionstring STRINGID_PKMNCANTUSEMOVETORMENT + endselectionscript + +BattleScript_MoveUsedIsTormented:: + printstring STRINGID_PKMNCANTUSEMOVETORMENT + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_SelectingTormentedMoveInPalace:: + printstring STRINGID_PKMNCANTUSEMOVETORMENT + goto BattleScript_SelectingUnusableMoveInPalace + +BattleScript_SelectingNotAllowedMoveTaunt:: + printselectionstring STRINGID_PKMNCANTUSEMOVETAUNT + endselectionscript + +BattleScript_MoveUsedIsTaunted:: + printstring STRINGID_PKMNCANTUSEMOVETAUNT + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_SelectingNotAllowedMoveTauntInPalace:: + printstring STRINGID_PKMNCANTUSEMOVETAUNT + goto BattleScript_SelectingUnusableMoveInPalace + +BattleScript_WishComesTrue:: + trywish 0x1, BattleScript_WishButFullHp + playanimation TARGET, ANIM_WISH_HEAL, NULL + printstring STRINGID_PKMNWISHCAMETRUE + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate TARGET + datahpupdate TARGET + printstring STRINGID_PKMNREGAINEDHEALTH + waitmessage 0x40 + end2 + +BattleScript_WishButFullHp:: + printstring STRINGID_PKMNWISHCAMETRUE + waitmessage 0x40 + pause 0x20 + printstring STRINGID_PKMNHPFULL + waitmessage 0x40 + end2 + +BattleScript_IngrainTurnHeal:: + playanimation ATTACKER, ANIM_INGRAIN_HEAL, NULL + printstring STRINGID_PKMNABSORBEDNUTRIENTS + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + end2 + +BattleScript_PrintMonIsRooted:: + pause 0x20 + printstring STRINGID_PKMNANCHOREDITSELF + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_AtkDefDown:: + setbyte sFIELD_1B, 0x0 + playstatchangeanimation ATTACKER, 0x6, 0xD + playstatchangeanimation ATTACKER, 0x2, 0x9 + setstatchanger ATK, 1, TRUE + statbuffchange AFFECTS_USER | CERTAIN | 0x1, BattleScript_82DB144 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB144 + printfromtable gStatDownStringIds + waitmessage 0x40 +BattleScript_82DB144:: + playstatchangeanimation ATTACKER, 0x4, 0x9 + setstatchanger DEF, 1, TRUE + statbuffchange AFFECTS_USER | CERTAIN | 0x1, BattleScript_82DB167 + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB167 + printfromtable gStatDownStringIds + waitmessage 0x40 +BattleScript_82DB167:: + return + +BattleScript_KnockedOff:: + playanimation TARGET, ANIM_ITEM_KNOCKOFF, NULL + printstring STRINGID_PKMNKNOCKEDOFF + waitmessage 0x40 + return + +BattleScript_MoveUsedIsImprisoned:: + printstring STRINGID_PKMNCANTUSEMOVESEALED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_SelectingImprisionedMove:: + printselectionstring STRINGID_PKMNCANTUSEMOVESEALED + endselectionscript + +BattleScript_SelectingImprisionedMoveInPalace:: + printstring STRINGID_PKMNCANTUSEMOVESEALED + goto BattleScript_SelectingUnusableMoveInPalace + +BattleScript_GrudgeTakesPp:: + printstring STRINGID_PKMNLOSTPPGRUDGE + waitmessage 0x40 + return + +BattleScript_MagicCoatBounce:: + attackstring + ppreduce + pause 0x20 + printstring STRINGID_PKMNMOVEBOUNCED + waitmessage 0x40 + orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_x800000 + setmagiccoattarget ATTACKER + return + +BattleScript_SnatchedMove:: + attackstring + ppreduce + snatchsetbanks + playanimation TARGET, ANIM_SNATCH_MOVE, NULL + printstring STRINGID_PKMNSNATCHEDMOVE + waitmessage 0x40 + orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_x800000 + atk5F + return + +BattleScript_EnduredMsg:: + printstring STRINGID_PKMNENDUREDHIT + waitmessage 0x40 + return + +BattleScript_OneHitKOMsg:: + printstring STRINGID_ONEHITKO + waitmessage 0x40 + return + +BattleScript_SAtkDown2:: + setbyte sFIELD_1B, 0x0 + playstatchangeanimation ATTACKER, 0x10, 0xB + setstatchanger SPATK, 2, TRUE + statbuffchange AFFECTS_USER | CERTAIN | 0x1, BattleScript_82DB1FE + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB1FE + printfromtable gStatDownStringIds + waitmessage 0x40 +BattleScript_82DB1FE:: + return + +BattleScript_FocusPunchSetUp:: + printstring STRINGID_EMPTYSTRING3 + waitmessage 0x1 + playanimation ATTACKER, ANIM_x14, NULL + printstring STRINGID_PKMNTIGHTENINGFOCUS + waitmessage 0x40 + end2 + +BattleScript_MoveUsedIsAsleep:: + printstring STRINGID_PKMNFASTASLEEP + waitmessage 0x40 + statusanimation ATTACKER + goto BattleScript_MoveEnd + +BattleScript_MoveUsedWokeUp:: + bicword gHitMarker, HITMARKER_x10 + printfromtable gWokeUpStringIds + waitmessage 0x40 + updatestatusicon ATTACKER + return + +BattleScript_MonWokeUpInUproar:: + printstring STRINGID_PKMNWOKEUPINUPROAR + waitmessage 0x40 + updatestatusicon ATTACKER + end2 + +BattleScript_PoisonTurnDmg:: + printstring STRINGID_PKMNHURTBYPOISON + waitmessage 0x40 +BattleScript_DoStatusTurnDmg:: + statusanimation ATTACKER +BattleScript_DoTurnDmg:: + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + tryfaintmon ATTACKER, FALSE, NULL + atk24 BattleScript_DoTurnDmgEnd +BattleScript_DoTurnDmgEnd:: + end2 + +BattleScript_BurnTurnDmg:: + printstring STRINGID_PKMNHURTBYBURN + waitmessage 0x40 + goto BattleScript_DoStatusTurnDmg + +BattleScript_MoveUsedIsFrozen:: + printstring STRINGID_PKMNISFROZEN + waitmessage 0x40 + statusanimation ATTACKER + goto BattleScript_MoveEnd + +BattleScript_MoveUsedUnfroze:: + printfromtable gGotDefrostedStringIds + waitmessage 0x40 + updatestatusicon ATTACKER + return + +BattleScript_DefrostedViaFireMove:: + printstring STRINGID_PKMNWASDEFROSTED + waitmessage 0x40 + updatestatusicon TARGET + return + +BattleScript_MoveUsedIsParalyzed:: + printstring STRINGID_PKMNISPARALYZED + waitmessage 0x40 + statusanimation ATTACKER + cancelmultiturnmoves ATTACKER + goto BattleScript_MoveEnd + +BattleScript_MoveUsedFlinched:: + printstring STRINGID_PKMNFLINCHED + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_PrintUproarOverTurns:: + printfromtable gUproarOverTurnStringIds + waitmessage 0x40 + end2 + +BattleScript_ThrashConfuses:: + chosenstatus2animation ATTACKER, STATUS2_CONFUSION + printstring STRINGID_PKMNFATIGUECONFUSION + waitmessage 0x40 + end2 + +BattleScript_MoveUsedIsConfused:: + printstring STRINGID_PKMNISCONFUSED + waitmessage 0x40 + status2animation ATTACKER, STATUS2_CONFUSION + jumpifbyte EQUAL, cMULTISTRING_CHOOSER, 0x0, BattleScript_MoveUsedIsConfusedRet +BattleScript_DoSelfConfusionDmg:: + cancelmultiturnmoves ATTACKER + adjustnormaldamage2 + printstring STRINGID_ITHURTCONFUSION + waitmessage 0x40 + effectivenesssound + hitanimation ATTACKER + waitstate + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + resultmessage + waitmessage 0x40 + tryfaintmon ATTACKER, FALSE, NULL + goto BattleScript_MoveEnd +BattleScript_MoveUsedIsConfusedRet:: + return + +BattleScript_MoveUsedIsConfusedNoMore:: + printstring STRINGID_PKMNHEALEDCONFUSION + waitmessage 0x40 + return + +BattleScript_PrintPayDayMoneyString:: + printstring STRINGID_PKMNPICKEDUPITEM + waitmessage 0x40 + return + +BattleScript_WrapTurnDmg:: + playanimation ATTACKER, ANIM_TURN_TRAP, sANIM_ARG1 + printstring STRINGID_PKMNHURTBY + waitmessage 0x40 + goto BattleScript_DoTurnDmg + +BattleScript_WrapEnds:: + printstring STRINGID_PKMNFREEDFROM + waitmessage 0x40 + end2 + +BattleScript_MoveUsedIsInLove:: + printstring STRINGID_PKMNINLOVE + waitmessage 0x40 + status2animation ATTACKER, STATUS2_INFATUATION + return + +BattleScript_MoveUsedIsParalyzedCantAttack:: + printstring STRINGID_PKMNIMMOBILIZEDBYLOVE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_NightmareTurnDmg:: + printstring STRINGID_PKMNLOCKEDINNIGHTMARE + waitmessage 0x40 + status2animation ATTACKER, STATUS2_NIGHTMARE + goto BattleScript_DoTurnDmg + +BattleScript_CurseTurnDmg:: + printstring STRINGID_PKMNAFFLICTEDBYCURSE + waitmessage 0x40 + status2animation ATTACKER, STATUS2_CURSED + goto BattleScript_DoTurnDmg + +BattleScript_TargetPRLZHeal:: + printstring STRINGID_PKMNHEALEDPARALYSIS + waitmessage 0x40 + updatestatusicon TARGET + return + +BattleScript_MoveEffectSleep:: + statusanimation EFFECT_BANK + printfromtable gFellAsleepStringIds + waitmessage 0x40 +BattleScript_UpdateEffectStatusIconRet:: + updatestatusicon EFFECT_BANK + waitstate + return + +BattleScript_YawnMakesAsleep:: + statusanimation EFFECT_BANK + printstring STRINGID_PKMNFELLASLEEP + waitmessage 0x40 + updatestatusicon EFFECT_BANK + waitstate + makevisible EFFECT_BANK + end2 + +BattleScript_MoveEffectPoison:: + statusanimation EFFECT_BANK + printfromtable gGotPoisonedStringIds + waitmessage 0x40 + goto BattleScript_UpdateEffectStatusIconRet + +BattleScript_MoveEffectBurn:: + statusanimation EFFECT_BANK + printfromtable gGotBurnedStringIds + waitmessage 0x40 + goto BattleScript_UpdateEffectStatusIconRet + +BattleScript_MoveEffectFreeze:: + statusanimation EFFECT_BANK + printfromtable gGotFrozenStringIds + waitmessage 0x40 + goto BattleScript_UpdateEffectStatusIconRet + +BattleScript_MoveEffectParalysis:: + statusanimation EFFECT_BANK + printfromtable gGotParalyzedStringIds + waitmessage 0x40 + goto BattleScript_UpdateEffectStatusIconRet + +BattleScript_MoveEffectUproar:: + printstring STRINGID_PKMNCAUSEDUPROAR + waitmessage 0x40 + return + +BattleScript_MoveEffectToxic:: + statusanimation EFFECT_BANK + printstring STRINGID_PKMNBADLYPOISONED + waitmessage 0x40 + goto BattleScript_UpdateEffectStatusIconRet + +BattleScript_MoveEffectPayDay:: + printstring STRINGID_COINSSCATTERED + waitmessage 0x40 + return + +BattleScript_MoveEffectWrap:: + printfromtable gWrappedStringIds + waitmessage 0x40 + return + +BattleScript_MoveEffectConfusion:: + chosenstatus2animation EFFECT_BANK, STATUS2_CONFUSION + printstring STRINGID_PKMNWASCONFUSED + waitmessage 0x40 + return + +BattleScript_MoveEffectRecoil33:: + jumpifmove MOVE_STRUGGLE, BattleScript_DoRecoil33 + jumpifability ATTACKER, ABILITY_ROCK_HEAD, BattleScript_Recoil33End +BattleScript_DoRecoil33:: + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + printstring STRINGID_PKMNHITWITHRECOIL + waitmessage 0x40 + tryfaintmon ATTACKER, FALSE, NULL +BattleScript_Recoil33End:: + return + +BattleScript_ItemSteal:: + playanimation TARGET, ANIM_ITEM_STEAL, NULL + printstring STRINGID_PKMNSTOLEITEM + waitmessage 0x40 + return + +BattleScript_DrizzleActivates:: + pause 0x20 + printstring STRINGID_PKMNMADEITRAIN + waitstate + playanimation BANK0, ANIM_RAIN_CONTINUES, NULL + call BattleScript_WeatherFormChanges + end3 + +BattleScript_SpeedBoostActivates:: + playanimation ATTACKER, ANIM_STATS_CHANGE, sANIM_ARG1 + printstring STRINGID_PKMNRAISEDSPEED + waitmessage 0x40 + end3 + +BattleScript_TraceActivates:: + pause 0x20 + printstring STRINGID_PKMNTRACED + waitmessage 0x40 + end3 + +BattleScript_RainDishActivates:: + printstring STRINGID_PKMNSXRESTOREDHPALITTLE2 + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + end3 + +BattleScript_SandstreamActivates:: + pause 0x20 + printstring STRINGID_PKMNSXWHIPPEDUPSANDSTORM + waitstate + playanimation BANK0, ANIM_SANDSTORM_CONTINUES, NULL + call BattleScript_WeatherFormChanges + end3 + +BattleScript_ShedSkinActivates:: + printstring STRINGID_PKMNSXCUREDYPROBLEM + waitmessage 0x40 + updatestatusicon ATTACKER + end3 + +BattleScript_WeatherFormChanges:: + setbyte sBANK, 0x0 +BattleScript_WeatherFormChangesLoop:: + trycastformdatachange + addbyte sBANK, 0x1 + jumpifbytenotequal sBANK, gNoOfAllBanks, BattleScript_WeatherFormChangesLoop + return + +BattleScript_CastformChange:: + call BattleScript_82DB4AF + end3 + +BattleScript_82DB4AF:: + docastformchangeanimation + waitstate + printstring STRINGID_PKMNTRANSFORMED + waitmessage 0x40 + return + +BattleScript_82DB4B8:: + call BattleScript_82DB4BE + end3 + +BattleScript_82DB4BE:: + pause 0x20 +BattleScript_82DB4C1:: + setbyte gBankTarget, 0x0 + setstatchanger ATK, 1, TRUE +BattleScript_82DB4CD:: + trygetintimidatetarget BattleScript_82DB51B + jumpifstatus2 TARGET, STATUS2_SUBSTITUTE, BattleScript_82DB510 + jumpifability TARGET, ABILITY_CLEAR_BODY, BattleScript_82DB51C + jumpifability TARGET, ABILITY_HYPER_CUTTER, BattleScript_82DB51C + jumpifability TARGET, ABILITY_WHITE_SMOKE, BattleScript_82DB51C + statbuffchange 0x21, BattleScript_82DB510 + jumpifbyte GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_82DB510 + setgraphicalstatchangevalues + playanimation TARGET, ANIM_STATS_CHANGE, sANIM_ARG1 + printstring STRINGID_PKMNCUTSATTACKWITH + waitmessage 0x40 +BattleScript_82DB510:: + addbyte gBankTarget, 0x1 + goto BattleScript_82DB4CD +BattleScript_82DB51B:: + return + +BattleScript_82DB51C:: + pause 0x20 + printstring STRINGID_PREVENTEDFROMWORKING + waitmessage 0x40 + goto BattleScript_82DB510 + +BattleScript_DroughtActivates:: + pause 0x20 + printstring STRINGID_PKMNSXINTENSIFIEDSUN + waitstate + playanimation BANK0, ANIM_SUN_CONTINUES, NULL + call BattleScript_WeatherFormChanges + end3 + +BattleScript_TookAttack:: + attackstring + pause 0x20 + printstring STRINGID_PKMNSXTOOKATTACK + waitmessage 0x40 + orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED + return + +BattleScript_SturdyPreventsOHKO:: + pause 0x20 + printstring STRINGID_PKMNPROTECTEDBY + pause 0x40 + goto BattleScript_MoveEnd + +BattleScript_DampStopsExplosion:: + pause 0x20 + printstring STRINGID_PKMNPREVENTSUSAGE + pause 0x40 + goto BattleScript_MoveEnd + +BattleScript_MoveHPDrain_PPLoss:: + ppreduce +BattleScript_MoveHPDrain:: + attackstring + pause 0x20 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate TARGET + datahpupdate TARGET + printstring STRINGID_PKMNRESTOREDHPUSING + waitmessage 0x40 + orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED + goto BattleScript_MoveEnd + +BattleScript_MonMadeMoveUseless_PPLoss:: + ppreduce +BattleScript_MonMadeMoveUseless:: + attackstring + pause 0x20 + printstring STRINGID_PKMNSXMADEYUSELESS + waitmessage 0x40 + orbyte gBattleMoveFlags, MOVESTATUS_NOTAFFECTED + goto BattleScript_MoveEnd + +BattleScript_FlashFireBoost_PPLoss:: + ppreduce +BattleScript_FlashFireBoost:: + attackstring + pause 0x20 + printfromtable gFlashFireStringIds + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_AbilityPreventsPhasingOut:: + pause 0x20 + printstring STRINGID_PKMNANCHORSITSELFWITH + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_AbilityNoStatLoss:: + pause 0x20 + printstring STRINGID_PKMNPREVENTSSTATLOSSWITH + waitmessage 0x40 + return + +BattleScript_BRNPrevention:: + pause 0x20 + printfromtable gBRNPreventionStringIds + waitmessage 0x40 + return + +BattleScript_PRLZPrevention:: + pause 0x20 + printfromtable gPRLZPreventionStringIds + waitmessage 0x40 + return + +BattleScript_PSNPrevention:: + pause 0x20 + printfromtable gPSNPreventionStringIds + waitmessage 0x40 + return + +BattleScript_ObliviousPreventsAttraction:: + pause 0x20 + printstring STRINGID_PKMNPREVENTSROMANCEWITH + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_FlinchPrevention:: + pause 0x20 + printstring STRINGID_PKMNSXPREVENTSFLINCHING + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_OwnTempoPrevents:: + pause 0x20 + printstring STRINGID_PKMNPREVENTSCONFUSIONWITH + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_SoundproofProtected:: + attackstring + ppreduce + pause 0x20 + printstring STRINGID_PKMNSXBLOCKSY + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_AbilityNoSpecificStatLoss:: + pause 0x20 + printstring STRINGID_PKMNSXPREVENTSYLOSS + waitmessage 0x40 + setbyte cMULTISTRING_CHOOSER, 0x3 + return + +BattleScript_StickyHoldActivates:: + pause 0x20 + printstring STRINGID_PKMNSXMADEYINEFFECTIVE + waitmessage 0x40 + goto BattleScript_MoveEnd + +BattleScript_ColorChangeActivates:: + printstring STRINGID_PKMNCHANGEDTYPEWITH + waitmessage 0x40 + return + +BattleScript_RoughSkinActivates:: + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_x100000 + healthbarupdate ATTACKER + datahpupdate ATTACKER + printstring STRINGID_PKMNHURTSWITH + waitmessage 0x40 + tryfaintmon ATTACKER, FALSE, NULL + return + +BattleScript_CuteCharmActivates:: + status2animation ATTACKER, STATUS2_INFATUATION + printstring STRINGID_PKMNSXINFATUATEDY + waitmessage 0x40 + return + +BattleScript_ApplySecondaryEffect:: + waitstate + seteffectsecondary + return + +BattleScript_SynchronizeActivates:: + waitstate + seteffectprimary + return + +BattleScript_NoItemSteal:: + pause 0x20 + printstring STRINGID_PKMNSXMADEYINEFFECTIVE + waitmessage 0x40 + return + +BattleScript_AbilityCuredStatus:: + printstring STRINGID_PKMNSXCUREDITSYPROBLEM + waitmessage 0x40 + updatestatusicon SCRIPTING_BANK + return + +BattleScript_82DB695:: + printstring STRINGID_PKMNIGNORESASLEEP + waitmessage 0x40 + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + end + +BattleScript_IgnoresAndUsesRandomMove:: + printstring STRINGID_PKMNIGNOREDORDERS + waitmessage 0x40 + jumptorandomattack FALSE + +BattleScript_MoveUsedLoafingAround:: + jumpifbyte NOT_EQUAL, cMULTISTRING_CHOOSER, 0x4, BattleScript_82DB6C7 + setbyte gBattleCommunication, 0x0 + various24 ATTACKER + setbyte cMULTISTRING_CHOOSER, 0x4 +BattleScript_82DB6C7:: + printfromtable gInobedientStringIds + waitmessage 0x40 + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + end + +BattleScript_IgnoresAndFallsAsleep:: + printstring STRINGID_PKMNBEGANTONAP + waitmessage 0x40 + setmoveeffect EFFECT_SLEEP | AFFECTS_USER + seteffectprimary + setbyte sMOVEEND_STATE, 0x0 + moveend 0x2, 0x10 + end + +BattleScript_82DB6F0:: + printstring STRINGID_PKMNWONTOBEY + waitmessage 0x40 + goto BattleScript_DoSelfConfusionDmg + +BattleScript_SubstituteFade:: + playanimation TARGET, ANIM_SUBSTITUTE_FADE, NULL + printstring STRINGID_PKMNSUBSTITUTEFADED + return + +BattleScript_BerryCurePrlzEnd2:: + call BattleScript_BerryCureParRet + end2 + +BattleScript_BerryCureParRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMCUREDPARALYSIS + waitmessage 0x40 + updatestatusicon SCRIPTING_BANK + removeitem SCRIPTING_BANK + return + +BattleScript_BerryCurePsnEnd2:: + call BattleScript_BerryCurePsnRet + end2 + +BattleScript_BerryCurePsnRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMCUREDPOISON + waitmessage 0x40 + updatestatusicon SCRIPTING_BANK + removeitem SCRIPTING_BANK + return + +BattleScript_BerryCureBrnEnd2:: + call BattleScript_BerryCureBrnRet + end2 + +BattleScript_BerryCureBrnRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMHEALEDBURN + waitmessage 0x40 + updatestatusicon SCRIPTING_BANK + removeitem SCRIPTING_BANK + return + +BattleScript_BerryCureFrzEnd2:: + call BattleScript_BerryCureFrzRet + end2 + +BattleScript_BerryCureFrzRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMDEFROSTEDIT + waitmessage 0x40 + updatestatusicon SCRIPTING_BANK + removeitem SCRIPTING_BANK + return + +BattleScript_BerryCureSlpEnd2:: + call BattleScript_BerryCureSlpRet + end2 + +BattleScript_BerryCureSlpRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMWOKEIT + waitmessage 0x40 + updatestatusicon SCRIPTING_BANK + removeitem SCRIPTING_BANK + return + +BattleScript_BerryCureConfusionEnd2:: + call BattleScript_BerryCureConfusionRet + end2 + +BattleScript_BerryCureConfusionRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMSNAPPEDOUT + waitmessage 0x40 + removeitem SCRIPTING_BANK + return + +BattleScript_BerryCureChosenStatusEnd2:: + call BattleScript_BerryCureChosenStatusRet + end2 + +BattleScript_BerryCureChosenStatusRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printfromtable gBerryEffectStringIds + waitmessage 0x40 + updatestatusicon SCRIPTING_BANK + removeitem SCRIPTING_BANK + return + +BattleScript_WhiteHerbEnd2:: + call BattleScript_WhiteHerbRet + end2 + +BattleScript_WhiteHerbRet:: + playanimation SCRIPTING_BANK, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMRESTOREDSTATUS + waitmessage 0x40 + removeitem SCRIPTING_BANK + return + +BattleScript_ItemHealHP_RemoveItem:: + playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMRESTOREDHEALTH + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + removeitem ATTACKER + end2 + +BattleScript_BerryPPHealEnd2:: + playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMRESTOREDPP + waitmessage 0x40 + removeitem ATTACKER + end2 + +BattleScript_ItemHealHP_End2:: + call BattleScript_ItemHealHP_Ret + end2 + +BattleScript_ItemHealHP_Ret:: + playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMRESTOREDHPALITTLE + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + return + +BattleScript_SelectingNotAllowedMoveChoiceItem:: + printselectionstring STRINGID_ITEMALLOWSONLYYMOVE + endselectionscript + +BattleScript_HangedOnMsg:: + playanimation TARGET, ANIM_HANGED_ON, NULL + printstring STRINGID_PKMNHUNGONWITHX + waitmessage 0x40 + return + +BattleScript_BerryConfuseHealEnd2:: + playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNSITEMRESTOREDHEALTH + waitmessage 0x40 + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + printstring STRINGID_FORXCOMMAYZ + waitmessage 0x40 + setmoveeffect EFFECT_CONFUSION | AFFECTS_USER + seteffectprimary + removeitem ATTACKER + end2 + +BattleScript_BerryStatRaiseEnd2:: + playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL + statbuffchange AFFECTS_USER | 0x1, BattleScript_82DB85B +BattleScript_82DB85B:: + setbyte cMULTISTRING_CHOOSER, 0x4 + call BattleScript_StatUp + removeitem ATTACKER + end2 + +BattleScript_BerryFocusEnergyEnd2:: + playanimation ATTACKER, ANIM_ITEM_EFFECT, NULL + printstring STRINGID_PKMNUSEDXTOGETPUMPED + waitmessage 0x40 + removeitem ATTACKER + end2 + +BattleScript_ActionSelectionItemsCantBeUsed:: + printselectionstring STRINGID_ITEMSCANTBEUSEDNOW + endselectionscript + +BattleScript_82DB87D:: + printstring STRINGID_EMPTYSTRING3 + return + +BattleScript_82DB881:: + setbyte gBattleCommunication + 1, 0x0 +BattleScript_82DB887:: + various8 ATTACKER + jumpifbyte NOT_EQUAL, gBattleCommunication, 0x1, BattleScript_82DB89D + printfromtable gStringIds_85CCF0A + waitmessage 0x40 +BattleScript_82DB89D:: + addbyte gBattleCommunication + 1, 0x1 + jumpifbytenotequal gBattleCommunication + 1, gNoOfAllBanks, BattleScript_82DB887 + setbyte gBattleCommunication, 0x0 + setbyte gBattleCommunication + 1, 0x0 + end2 + +BattleScript_82DB8BE:: + waitcry ATTACKER + various21 ATTACKER + playse 0x109 + pause 0x8 + playse 0x109 + various14 ATTACKER + various16 8 + various17 8 + pause 0x40 + various15 ATTACKER + various22 ATTACKER + end2 + +BattleScript_82DB8E0:: + playse SE_PINPON + various14 ATTACKER + various16 TARGET + various17 TARGET + pause 0x40 + various15 ATTACKER + end2 + +BattleScript_82DB8F3:: + makevisible 11 + waitstate + makevisible OPPONENT1 + waitstate + various21 ATTACKER + playse 0x109 + pause 0x8 + playse 0x109 + pause 0x40 + various14 ATTACKER + various16 ATTACKER + various17 ATTACKER + pause 0x40 + setbyte gBattleCommunication, 0x0 + various9 ATTACKER + pause 0x40 + various9 ATTACKER + various16 EFFECT_BANK + various17 EFFECT_BANK + various9 ATTACKER + various16 GBANK_1 + various17 GBANK_1 + various9 ATTACKER + various16 0x4 + various17 0x4 + various9 ATTACKER + jumpifbyte EQUAL, gBattleCommunication + 1, 0x3, BattleScript_82DB973 + jumpifbyte EQUAL, gBattleCommunication + 1, 0x4, BattleScript_82DB992 + various16 0x5 + various17 0x5 + various9 ATTACKER + various15 ATTACKER + printstring STRINGID_DEFEATEDOPPONENTBYREFEREE + waitmessage 0x40 + playfaintcry OPPONENT1 + waitcry ATTACKER + dofaintanimation OPPONENT1 + cleareffectsonfaint OPPONENT1 + various10 ATTACKER + end2 + +BattleScript_82DB973:: + various16 0x6 + various17 0x6 + various9 ATTACKER + various15 ATTACKER + printstring STRINGID_LOSTTOOPPONENTBYREFEREE + waitmessage 0x40 + playfaintcry 11 + waitcry ATTACKER + dofaintanimation 11 + cleareffectsonfaint 11 + various11 ATTACKER + end2 + +BattleScript_82DB992:: + various16 BANK0 + various17 BANK0 + various9 ATTACKER + various15 ATTACKER + printstring STRINGID_TIEDOPPONENTBYREFEREE + waitmessage 0x40 + playfaintcry 11 + waitcry ATTACKER + dofaintanimation 11 + cleareffectsonfaint 11 + playfaintcry OPPONENT1 + waitcry ATTACKER + dofaintanimation OPPONENT1 + cleareffectsonfaint OPPONENT1 + various12 ATTACKER + end2 + +BattleScript_AskIfWantsToForfeitMatch:: + printselectionstring STRINGID_QUESTIONFORFEITMATCH + forfeityesnobox ATTACKER + endselectionscript + +BattleScript_PrintPlayerForfeited:: + printstring STRINGID_FORFEITEDMATCH + waitmessage 0x40 + end2 + +BattleScript_PrintPlayerForfeitedLinkBattle:: + printstring STRINGID_FORFEITEDMATCH + waitmessage 0x40 + atk57 + waitmessage 0x40 + end2 diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s index 4a4dc4665..9cd6a4d7d 100644 --- a/data/battle_scripts_2.s +++ b/data/battle_scripts_2.s @@ -1,32 +1,38 @@ +#include "constants/items.h" +#include "constants/songs.h" .include "asm/macros.inc" + .include "asm/macros/battle_script.inc" .include "constants/constants.inc" + .include "constants/battle_constants.inc" + .include "constants/battle_script_constants.inc" + .include "constants/battle_text.inc" .section script_data, "aw", %progbits .align 2 gBattlescriptsForBallThrow:: @ 82DBD08 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD7E - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 - .4byte gUnknown_082DBD68 + .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow + .4byte BattleScript_SafariBallThrow + .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow + .4byte BattleScript_BallThrow .align 2 -gUnknown_082DBD3C:: @ 82DBD3C - .4byte gUnknown_082DBE12 - .4byte gUnknown_082DBE1C - .4byte gUnknown_082DBE1C - .4byte gUnknown_082DBE4B - .4byte gUnknown_082DBE6F - .4byte gUnknown_082DBE91 +gBattlescriptsForUsingItem:: @ 82DBD3C + .4byte BattleScript_PlayerUsesItem + .4byte BattleScript_OpponentUsesHealItem + .4byte BattleScript_OpponentUsesHealItem + .4byte BattleScript_OpponentUsesStatusCureItem + .4byte BattleScript_OpponentUsesXItem + .4byte BattleScript_OpponentUsesGuardSpecs .align 2 gBattlescriptsForRunningByItem:: @ 82DBD54 @@ -34,55 +40,166 @@ gBattlescriptsForRunningByItem:: @ 82DBD54 .align 2 gBattlescriptsForSafariActions:: @ 82DBD58 - .4byte gUnknown_082DBEBD - .4byte gUnknown_082DBEC4 - .4byte gUnknown_082DBECD - .4byte gUnknown_082DBEE3 - -gUnknown_082DBD68:: @ 82DBD68 - .incbin "baserom.gba", 0x2dbd68, 0x16 - -gUnknown_082DBD7E:: @ 82DBD7E - .incbin "baserom.gba", 0x2dbd7e, 0x6 - -BattleScript_SuccessBallThrow:: @ 82DBD84 - .incbin "baserom.gba", 0x2dbd84, 0x46 - -BattleScript_WallyBallThrow:: @ 82DBDCA - .incbin "baserom.gba", 0x2dbdca, 0xa - -BattleScript_ShakeBallThrow:: @ 82DBDD4 - .incbin "baserom.gba", 0x2dbdd4, 0x2e - -BattleScript_TrainerBallBlock:: @ 82DBE02 - .incbin "baserom.gba", 0x2dbe02, 0x10 - -gUnknown_082DBE12:: @ 82DBE12 - .incbin "baserom.gba", 0x2dbe12, 0xa - -gUnknown_082DBE1C:: @ 82DBE1C - .incbin "baserom.gba", 0x2dbe1c, 0x2f - -gUnknown_082DBE4B:: @ 82DBE4B - .incbin "baserom.gba", 0x2dbe4b, 0x24 - -gUnknown_082DBE6F:: @ 82DBE6F - .incbin "baserom.gba", 0x2dbe6f, 0x22 - -gUnknown_082DBE91:: @ 82DBE91 - .incbin "baserom.gba", 0x2dbe91, 0x22 - -BattleScript_RunByUsingItem:: @ 82DBEB3 - .incbin "baserom.gba", 0x2dbeb3, 0xA - -gUnknown_082DBEBD:: @ 82DBEBD - .incbin "baserom.gba", 0x2dbebd, 0x7 - -gUnknown_082DBEC4:: @ 82DBEC4 - .incbin "baserom.gba", 0x2dbec4, 0x9 - -gUnknown_082DBECD:: @ 82DBECD - .incbin "baserom.gba", 0x2dbecd, 0x16 - -gUnknown_082DBEE3:: @ 82DBEE3 - .incbin "baserom.gba", 0x2dbee3, 0x15 + .4byte BattleScript_ActionWatchesCarefully + .4byte BattleScript_ActionGetNear + .4byte BattleScript_ActionThrowPokeblock + .4byte BattleScript_82DBEE3 + +BattleScript_BallThrow:: + jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_WALLY_TUTORIAL, BattleScript_BallThrowByWally + printstring STRINGID_PLAYERUSEDITEM + handleballthrow + +BattleScript_BallThrowByWally:: + printstring STRINGID_WALLYUSEDITEM + handleballthrow + +BattleScript_SafariBallThrow:: + printstring STRINGID_PLAYERUSEDITEM + updatestatusicon ATTACKER + handleballthrow + +BattleScript_SuccessBallThrow:: + jumpifhalfword EQUAL, gLastUsedItem, ITEM_SAFARI_BALL, BattleScript_PrintCaughtMonInfo + incrementgamestat 0xB +BattleScript_PrintCaughtMonInfo:: + printstring STRINGID_GOTCHAPKMNCAUGHT + trysetcaughtmondexflags BattleScript_TryNicknameCaughtMon + printstring STRINGID_PKMNDATAADDEDTODEX + waitstate + setbyte gBattleCommunication, 0x0 + displaydexinfo +BattleScript_TryNicknameCaughtMon:: + printstring STRINGID_GIVENICKNAMECAPTURED + waitstate + setbyte gBattleCommunication, 0x0 + trygivecaughtmonnick BattleScript_GiveCaughtMonEnd + givecaughtmon + printfromtable gCaughtMonStringIds + waitmessage 0x40 + goto BattleScript_SuccessBallThrowEnd +BattleScript_GiveCaughtMonEnd:: + givecaughtmon +BattleScript_SuccessBallThrowEnd:: + setbyte gBattleOutcome, CAUGHT + finishturn + +BattleScript_WallyBallThrow:: + printstring STRINGID_GOTCHAPKMNCAUGHT2 + setbyte gBattleOutcome, CAUGHT + finishturn + +BattleScript_ShakeBallThrow:: + printfromtable gBallEscapeStringIds + waitmessage 0x40 + jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_SAFARI, BattleScript_ShakeBallThrowEnd + jumpifbyte NOT_EQUAL, gNumSafariBalls, 0x0, BattleScript_ShakeBallThrowEnd + printstring STRINGID_OUTOFSAFARIBALLS + waitmessage 0x40 + setbyte gBattleOutcome, OUT_OF_BALLS +BattleScript_ShakeBallThrowEnd:: + finishaction + +BattleScript_TrainerBallBlock:: + waitmessage 0x40 + printstring STRINGID_TRAINERBLOCKEDBALL + waitmessage 0x40 + printstring STRINGID_DONTBEATHIEF + waitmessage 0x40 + finishaction + +BattleScript_PlayerUsesItem:: + setbyte sMOVEEND_STATE, 0xF + moveend 0x1, 0x0 + end + +BattleScript_OpponentUsesHealItem:: + printstring STRINGID_EMPTYSTRING3 + pause 0x30 + playse SE_KAIFUKU + printstring STRINGID_TRAINER1USEDITEM + waitmessage 0x40 + useitemonopponent + orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE + healthbarupdate ATTACKER + datahpupdate ATTACKER + printstring STRINGID_PKMNSITEMRESTOREDHEALTH + waitmessage 0x40 + updatestatusicon ATTACKER + setbyte sMOVEEND_STATE, 0xF + moveend 0x1, 0x0 + finishaction + +BattleScript_OpponentUsesStatusCureItem:: + printstring STRINGID_EMPTYSTRING3 + pause 0x30 + playse SE_KAIFUKU + printstring STRINGID_TRAINER1USEDITEM + waitmessage 0x40 + useitemonopponent + printfromtable gTrainerItemCuredStatusStringIds + waitmessage 0x40 + updatestatusicon ATTACKER + setbyte sMOVEEND_STATE, 0xF + moveend 0x1, 0x0 + finishaction + +BattleScript_OpponentUsesXItem:: + printstring STRINGID_EMPTYSTRING3 + pause 0x30 + playse SE_KAIFUKU + printstring STRINGID_TRAINER1USEDITEM + waitmessage 0x40 + useitemonopponent + printfromtable gStatUpStringIds + waitmessage 0x40 + setbyte sMOVEEND_STATE, 0xF + moveend 0x1, 0x0 + finishaction + +BattleScript_OpponentUsesGuardSpecs:: + printstring STRINGID_EMPTYSTRING3 + pause 0x30 + playse SE_KAIFUKU + printstring STRINGID_TRAINER1USEDITEM + waitmessage 0x40 + useitemonopponent + printfromtable gMistUsedStringIds + waitmessage 0x40 + setbyte sMOVEEND_STATE, 0xF + moveend 0x1, 0x0 + finishaction + +BattleScript_RunByUsingItem:: + playse SE_NIGERU + setbyte gBattleOutcome, RAN + finishturn + +BattleScript_ActionWatchesCarefully:: + printstring STRINGID_PKMNWATCHINGCAREFULLY + waitmessage 0x40 + end2 + +BattleScript_ActionGetNear:: + printfromtable gSafariGetNearStringIds + waitmessage 0x40 + end2 + +BattleScript_ActionThrowPokeblock:: + printstring STRINGID_THREWPOKEBLOCKATPKMN + waitmessage 0x40 + playanimation ATTACKER, ANIM_x4, NULL + printfromtable gSafariPokeblockResultStringIds + waitmessage 0x40 + end2 + +BattleScript_82DBEE3:: + printstring STRINGID_RETURNMON + waitmessage 0x40 + returnatktoball + waitstate + trainerslidein TARGET + waitstate + printstring STRINGID_YOUTHROWABALLNOWRIGHT + waitmessage 0x40 + end2 diff --git a/data/battle_setup.s b/data/battle_setup.s deleted file mode 100644 index d5043aae9..000000000 --- a/data/battle_setup.s +++ /dev/null @@ -1,190 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2, 0 - -gUnknown_0854FE88:: @ 854FE88 - .byte 0x08, 0x09, 0x05, 0x0a, 0x00, 0x0a, 0x07, 0x06 - -gUnknown_0854FE90:: @ 854FE90 - .byte 0x04, 0x0b, 0x02, 0x03, 0x00, 0x0a, 0x01, 0x06 - -gUnknown_0854FE98:: @ 854FE98 - .byte 0x1d, 0x1e, 0x1f, 0x20, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29 - -gUnknown_0854FEA4:: @ 854FEA4 - .byte 0x1f, 0x20, 0x21 - -gUnknown_0854FEA7:: @ 854FEA7 - .byte 0x1d, 0x1f, 0x20, 0x21, 0x00 - - .align 2 -gUnknown_0854FEAC:: @ 854FEAC - .4byte gUnknown_02038BC8, 0x00000000 - .4byte gTrainerBattleOpponent_A, 0x00000001 - .4byte gUnknown_02038BD0, 0x00000001 - .4byte gUnknown_02038BD4, 0x00000002 - .4byte gUnknown_02038BDC, 0x00000002 - .4byte gUnknown_02038BE4, 0x00000005 - .4byte gUnknown_02038BE8, 0x00000005 - .4byte gUnknown_02038BF0, 0x00000005 - .4byte gUnknown_02038BEC, 0x00000006 - - .align 2 -gUnknown_0854FEF4:: @ 854FEF4 - .4byte gUnknown_02038BC8, 0x00000000 - .4byte gTrainerBattleOpponent_A, 0x00000001 - .4byte gUnknown_02038BD0, 0x00000001 - .4byte gUnknown_02038BD4, 0x00000002 - .4byte gUnknown_02038BDC, 0x00000002 - .4byte gUnknown_02038BE4, 0x00000005 - .4byte gUnknown_02038BE8, 0x00000005 - .4byte gUnknown_02038BF0, 0x00000002 - .4byte gUnknown_02038BEC, 0x00000006 - - .align 2 -gUnknown_0854FF3C:: @ 854FF3C - .4byte gUnknown_02038BC8, 0x00000000 - .4byte gTrainerBattleOpponent_A, 0x00000001 - .4byte gUnknown_02038BD0, 0x00000001 - .4byte gUnknown_02038BD4, 0x00000002 - .4byte gUnknown_02038BDC, 0x00000002 - .4byte gUnknown_02038BE4, 0x00000005 - .4byte gUnknown_02038BE8, 0x00000002 - .4byte gUnknown_02038BF0, 0x00000005 - .4byte gUnknown_02038BEC, 0x00000006 - - .align 2 -gUnknown_0854FF84:: @ 854FF84 - .4byte gUnknown_02038BC8, 0x00000000 - .4byte gTrainerBattleOpponent_A, 0x00000001 - .4byte gUnknown_02038BD0, 0x00000001 - .4byte gUnknown_02038BD4, 0x00000005 - .4byte gUnknown_02038BDC, 0x00000002 - .4byte gUnknown_02038BE4, 0x00000005 - .4byte gUnknown_02038BE8, 0x00000005 - .4byte gUnknown_02038BF0, 0x00000005 - .4byte gUnknown_02038BEC, 0x00000006 - - .align 2 -gUnknown_0854FFCC:: @ 854FFCC - .4byte gUnknown_02038BC8, 0x00000000 - .4byte gTrainerBattleOpponent_A, 0x00000001 - .4byte gUnknown_02038BD0, 0x00000001 - .4byte gUnknown_02038BD4, 0x00000002 - .4byte gUnknown_02038BDC, 0x00000002 - .4byte gUnknown_02038BE4, 0x00000005 - .4byte gUnknown_02038BE8, 0x00000002 - .4byte gUnknown_02038BF0, 0x00000002 - .4byte gUnknown_02038BEC, 0x00000006 - - .align 2 -gUnknown_08550014:: @ 8550014 - .4byte gUnknown_02038BC8, 0x00000000 - .4byte gTrainerBattleOpponent_B, 0x00000001 - .4byte gUnknown_02038BD0, 0x00000001 - .4byte gUnknown_02038BD8, 0x00000002 - .4byte gUnknown_02038BE0, 0x00000002 - .4byte gUnknown_02038BE4, 0x00000005 - .4byte gUnknown_02038BE8, 0x00000005 - .4byte gUnknown_02038BF4, 0x00000005 - .4byte gUnknown_02038BEC, 0x00000006 - - .align 2 -gUnknown_0855005C:: @ 855005C - .4byte gUnknown_02038BC8, 0x00000000 - .4byte gTrainerBattleOpponent_B, 0x00000001 - .4byte gUnknown_02038BD0, 0x00000001 - .4byte gUnknown_02038BD8, 0x00000002 - .4byte gUnknown_02038BE0, 0x00000002 - .4byte gUnknown_02038BE4, 0x00000005 - .4byte gUnknown_02038BE8, 0x00000005 - .4byte gUnknown_02038BF4, 0x00000002 - .4byte gUnknown_02038BEC, 0x00000006 - - .align 2 -gUnknown_085500A4:: @ 85500A4 - .2byte 0x0025, 0x0028, 0x0029, 0x002a, 0x002b, 0x0000, 0x0021, 0x0000 - .2byte 0x02e1, 0x032c, 0x032d, 0x032e, 0x032f, 0x0000, 0x0014, 0x0000 - .2byte 0x002c, 0x002f, 0x0030, 0x0031, 0x0032, 0x0000, 0x001a, 0x0000 - .2byte 0x0039, 0x003c, 0x003d, 0x003e, 0x003f, 0x0000, 0x0018, 0x0000 - .2byte 0x0040, 0x0043, 0x0044, 0x0045, 0x0046, 0x0000, 0x0018, 0x0000 - .2byte 0x02af, 0x02b0, 0x02b1, 0x02b2, 0x02b3, 0x0000, 0x0027, 0x0000 - .2byte 0x02ff, 0x033c, 0x033d, 0x033e, 0x033f, 0x0000, 0x0024, 0x0000 - .2byte 0x005e, 0x0065, 0x0066, 0x0067, 0x0068, 0x0000, 0x001a, 0x0000 - .2byte 0x004e, 0x0054, 0x0055, 0x0056, 0x0057, 0x0000, 0x001a, 0x0000 - .2byte 0x006c, 0x006e, 0x006f, 0x0070, 0x0071, 0x0018, 0x0014, 0x0000 - .2byte 0x0072, 0x0078, 0x0079, 0x007a, 0x007b, 0x0000, 0x0013, 0x0000 - .2byte 0x0090, 0x034c, 0x034d, 0x034e, 0x034f, 0x0018, 0x0038, 0x0000 - .2byte 0x007f, 0x0084, 0x0085, 0x0086, 0x0087, 0x0000, 0x0024, 0x0000 - .2byte 0x0088, 0x008b, 0x008c, 0x008d, 0x008e, 0x0000, 0x0013, 0x0000 - .2byte 0x008f, 0x0093, 0x0094, 0x0095, 0x0096, 0x0000, 0x001d, 0x0000 - .2byte 0x009b, 0x00af, 0x00b0, 0x00b1, 0x00b2, 0x0000, 0x0016, 0x0000 - .2byte 0x00b7, 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x0000, 0x001e, 0x0000 - .2byte 0x02a0, 0x0338, 0x0339, 0x033a, 0x033b, 0x0000, 0x002a, 0x0000 - .2byte 0x00c3, 0x0340, 0x0341, 0x0342, 0x0343, 0x0000, 0x0026, 0x0000 - .2byte 0x00c4, 0x00c5, 0x00c6, 0x00c7, 0x00c8, 0x0000, 0x0021, 0x0000 - .2byte 0x00ce, 0x00cf, 0x00d0, 0x00d1, 0x00d2, 0x0000, 0x001d, 0x0000 - .2byte 0x00d8, 0x00db, 0x00dc, 0x00dd, 0x00de, 0x0018, 0x000d, 0x0000 - .2byte 0x02a9, 0x02aa, 0x02ab, 0x02ac, 0x02ad, 0x0018, 0x0001, 0x0000 - .2byte 0x00e2, 0x00e4, 0x00e5, 0x00e6, 0x00e7, 0x0000, 0x0023, 0x0000 - .2byte 0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x00f2, 0x0000, 0x0026, 0x0000 - .2byte 0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd, 0x0000, 0x0026, 0x0000 - .2byte 0x00fe, 0x0101, 0x0102, 0x0103, 0x0104, 0x0000, 0x0024, 0x0000 - .2byte 0x0118, 0x011a, 0x011b, 0x011c, 0x011d, 0x0000, 0x001f, 0x0000 - .2byte 0x0111, 0x0114, 0x0115, 0x0116, 0x0117, 0x0000, 0x001f, 0x0000 - .2byte 0x011f, 0x0120, 0x0121, 0x0122, 0x0123, 0x0000, 0x0020, 0x0000 - .2byte 0x012e, 0x012f, 0x0130, 0x0131, 0x0132, 0x0000, 0x0019, 0x0000 - .2byte 0x0125, 0x0127, 0x0128, 0x0129, 0x012a, 0x0000, 0x0012, 0x0000 - .2byte 0x0133, 0x0134, 0x0135, 0x0136, 0x0137, 0x0000, 0x001e, 0x0000 - .2byte 0x0139, 0x013a, 0x013b, 0x013c, 0x013d, 0x0018, 0x000c, 0x0000 - .2byte 0x013e, 0x0148, 0x0149, 0x014a, 0x014b, 0x0000, 0x0011, 0x0000 - .2byte 0x0153, 0x015a, 0x015b, 0x015c, 0x015d, 0x0000, 0x0015, 0x0000 - .2byte 0x0178, 0x017b, 0x017c, 0x017d, 0x017e, 0x0000, 0x002b, 0x0000 - .2byte 0x0171, 0x0172, 0x0173, 0x0174, 0x0175, 0x0000, 0x0020, 0x0000 - .2byte 0x0166, 0x0168, 0x0169, 0x016a, 0x016b, 0x0000, 0x0019, 0x0000 - .2byte 0x016c, 0x016d, 0x016e, 0x016f, 0x0170, 0x0000, 0x0020, 0x0000 - .2byte 0x0182, 0x0184, 0x0185, 0x0186, 0x0187, 0x0000, 0x002b, 0x0000 - .2byte 0x0161, 0x0162, 0x0163, 0x0164, 0x0165, 0x0000, 0x0019, 0x0000 - .2byte 0x0179, 0x0334, 0x0335, 0x0336, 0x0337, 0x0000, 0x0029, 0x0000 - .2byte 0x0188, 0x0189, 0x018a, 0x018b, 0x018c, 0x0018, 0x0001, 0x0000 - .2byte 0x0196, 0x0199, 0x019a, 0x019b, 0x019c, 0x0000, 0x0023, 0x0000 - .2byte 0x01a3, 0x01a5, 0x01a6, 0x01a7, 0x01a8, 0x0000, 0x001c, 0x0000 - .2byte 0x01ab, 0x01ae, 0x01af, 0x01b0, 0x01b1, 0x0000, 0x001e, 0x0000 - .2byte 0x01b2, 0x01b5, 0x01b6, 0x01b7, 0x01b8, 0x0000, 0x001c, 0x0000 - .2byte 0x01c1, 0x01d1, 0x01d2, 0x01d3, 0x01d4, 0x0000, 0x0027, 0x0000 - .2byte 0x01da, 0x01dd, 0x01de, 0x01df, 0x01e0, 0x0018, 0x000d, 0x0000 - .2byte 0x01e1, 0x01e2, 0x01e7, 0x01e8, 0x01e9, 0x0000, 0x0012, 0x0000 - .2byte 0x01ec, 0x01f1, 0x01f2, 0x01f3, 0x01f4, 0x0000, 0x0028, 0x0000 - .2byte 0x02e4, 0x0330, 0x0331, 0x0332, 0x0333, 0x0000, 0x0017, 0x0000 - .2byte 0x0200, 0x0203, 0x0204, 0x0205, 0x0206, 0x0000, 0x0019, 0x0000 - .2byte 0x0221, 0x0224, 0x0225, 0x0226, 0x0227, 0x0000, 0x0020, 0x0000 - .2byte 0x021a, 0x021d, 0x021e, 0x021f, 0x0220, 0x0000, 0x0020, 0x0000 - .2byte 0x0009, 0x0348, 0x0349, 0x034a, 0x034b, 0x0018, 0x0011, 0x0000 - .2byte 0x022f, 0x0232, 0x0233, 0x0234, 0x0235, 0x0000, 0x0022, 0x0000 - .2byte 0x0228, 0x022b, 0x022c, 0x022d, 0x022e, 0x0000, 0x0022, 0x0000 - .2byte 0x025c, 0x025f, 0x0260, 0x0261, 0x0262, 0x0000, 0x0013, 0x0000 - .2byte 0x026d, 0x026e, 0x026f, 0x0270, 0x0271, 0x0018, 0x000b, 0x0000 - .2byte 0x0273, 0x027c, 0x027d, 0x027e, 0x027f, 0x0000, 0x001b, 0x0000 - .2byte 0x0001, 0x0344, 0x0345, 0x0346, 0x0347, 0x0018, 0x000c, 0x0000 - .2byte 0x0282, 0x0283, 0x0284, 0x0285, 0x0286, 0x0018, 0x003e, 0x0000 - .2byte 0x0291, 0x0292, 0x0293, 0x0294, 0x0294, 0x0018, 0x002b, 0x0000 - .2byte 0x0109, 0x0302, 0x0303, 0x0304, 0x0305, 0x0000, 0x0003, 0x0000 - .2byte 0x010a, 0x0306, 0x0307, 0x0308, 0x0309, 0x0000, 0x000b, 0x0000 - .2byte 0x010b, 0x030a, 0x030b, 0x030c, 0x030d, 0x0000, 0x0002, 0x0000 - .2byte 0x010c, 0x030e, 0x030f, 0x0310, 0x0311, 0x0000, 0x000c, 0x0000 - .2byte 0x010d, 0x0312, 0x0313, 0x0314, 0x0315, 0x0000, 0x0000, 0x0000 - .2byte 0x010e, 0x0316, 0x0317, 0x0318, 0x0319, 0x0000, 0x0004, 0x0000 - .2byte 0x010f, 0x031a, 0x031b, 0x031c, 0x031d, 0x0000, 0x0006, 0x0000 - .2byte 0x0110, 0x031e, 0x031f, 0x0320, 0x0321, 0x0000, 0x0007, 0x0000 - .2byte 0x0105, 0x0105, 0x0105, 0x0105, 0x0105, 0x0000, 0x0008, 0x0000 - .2byte 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0000, 0x0008, 0x0000 - .2byte 0x0107, 0x0107, 0x0107, 0x0107, 0x0107, 0x0000, 0x0008, 0x0000 - .2byte 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0000, 0x0008, 0x0000 - .2byte 0x014f, 0x014f, 0x014f, 0x014f, 0x014f, 0x0000, 0x0008, 0x0000 - - .align 2 -gUnknown_08550584:: @ 8550584 - .2byte 0x0867, 0x0868, 0x0869, 0x086a, 0x086b, 0x086c, 0x086d, 0x086e - diff --git a/data/battle_tower.s b/data/battle_tower.s index a952e0773..b3926d19a 100644 --- a/data/battle_tower.s +++ b/data/battle_tower.s @@ -1,3 +1,7 @@ +#include "constants/easy_chat.h" +#include "constants/items.h" +#include "constants/moves.h" +#include "constants/species.h" .include "asm/macros.inc" .include "constants/constants.inc" diff --git a/data/cable_car.s b/data/cable_car.s index 0f3bf3e2e..32a265c97 100644 --- a/data/cable_car.s +++ b/data/cable_car.s @@ -1,3 +1,4 @@ +#include "constants/map_objects.h" .include "asm/macros.inc" .include "constants/constants.inc" diff --git a/data/data2b.s b/data/data2b.s index e723b4c97..6051b86cc 100644 --- a/data/data2b.s +++ b/data/data2b.s @@ -1,5 +1,8 @@ @ the second big chunk of data +#include "constants/items.h" +#include "constants/moves.h" +#include "constants/species.h" .include "asm/macros.inc" .include "constants/constants.inc" diff --git a/data/data2c.s b/data/data2c.s index be715493c..904009254 100644 --- a/data/data2c.s +++ b/data/data2c.s @@ -1,5 +1,9 @@ @ the second big chunk of data +#include "constants/abilities.h" +#include "constants/items.h" +#include "constants/moves.h" +#include "constants/species.h" .include "asm/macros.inc" .include "constants/constants.inc" diff --git a/data/data4c.s b/data/data4c.s index b86cd2add..c18d0d592 100644 --- a/data/data4c.s +++ b/data/data4c.s @@ -5,39 +5,6 @@ .section .rodata -gUnknown_085B21D4:: @ 85B21D4 - .incbin "baserom.gba", 0x5b21d4, 0x8 - -gUnknown_085B21DC:: @ 85B21DC - .incbin "baserom.gba", 0x5b21dc, 0x18 - -gUnknown_085B21F4:: @ 85B21F4 - .incbin "baserom.gba", 0x5b21f4, 0x8 - -gUnknown_085B21FC:: @ 85B21FC - .incbin "baserom.gba", 0x5b21fc, 0xc - -gUnknown_085B2208:: @ 85B2208 - .incbin "baserom.gba", 0x5b2208, 0x10 - -gUnknown_085B2218:: @ 85B2218 - .incbin "baserom.gba", 0x5b2218, 0x38 - -gUnknown_085B2250:: @ 85B2250 - .incbin "baserom.gba", 0x5b2250, 0x18 - -gUnknown_085B2268:: @ 85B2268 - .incbin "baserom.gba", 0x5b2268, 0x38 - -gUnknown_085B22A0:: @ 85B22A0 - .incbin "baserom.gba", 0x5b22a0, 0x18 - -gUnknown_085B22B8:: @ 85B22B8 - .incbin "baserom.gba", 0x5b22b8, 0x18 - -gUnknown_085B22D0:: @ 85B22D0 - .incbin "baserom.gba", 0x5b22d0, 0x2d0 - gPokeblockFlavorCompatibilityTable:: @ 85B25A0 .incbin "baserom.gba", 0x5b25a0, 0x80 diff --git a/data/easy_chat.s b/data/easy_chat.s index db2e620ef..8d9c561d4 100644 --- a/data/easy_chat.s +++ b/data/easy_chat.s @@ -1,3 +1,6 @@ +#include "constants/easy_chat.h" +#include "constants/moves.h" +#include "constants/species.h" .include "asm/macros.inc" .include "constants/constants.inc" diff --git a/data/event_scripts.s b/data/event_scripts.s index 214242b7b..f4b2270a3 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -1,8 +1,12 @@ +#include "constants/flags.h" +#include "constants/items.h" +#include "constants/moves.h" +#include "constants/songs.h" +#include "constants/species.h" +#include "constants/vars.h" .include "asm/macros.inc" .include "asm/macros/event.inc" .include "constants/constants.inc" - .include "constants/variables.inc" - .include "constants/flags.inc" .section script_data, "aw", %progbits @@ -842,101 +846,101 @@ EventScript_271356:: @ 8271356 special SetUpTrainerEncounterMusic special sub_80B45AC waitstate - goto EventScript_27143C + goto EventScript_ShowTrainerIntroMsg EventScript_271362:: @ 8271362 lock faceplayer - applymovement 0x800F, Movement_27143A + applymovement VAR_LAST_TALKED, Movement_27143A waitmovement 0 - specialvar VAR_RESULT, check_trainer_flag + specialvar VAR_RESULT, GetTrainerFlag compare_var_to_value VAR_RESULT, 0 goto_if 5, EventScript_271389 special SetUpTrainerEncounterMusic special sub_80B16D8 - goto EventScript_27143C + goto EventScript_ShowTrainerIntroMsg EventScript_271389:: @ 8271389 - ontrainerbattleend + gotopostbattlescript -EventScript_27138A:: @ 827138A +EventScript_TryDoDoubleTrainerBattle:: @ 827138A lock faceplayer call EventScript_27142F - specialvar VAR_RESULT, check_trainer_flag + specialvar VAR_RESULT, GetTrainerFlag compare_var_to_value VAR_RESULT, 0 goto_if 5, EventScript_2713C1 - special sub_80F92F8 + special HasEnoughMonsForDoubleBattle compare_var_to_value VAR_RESULT, 0 - goto_if 5, EventScript_2713BA + goto_if 5, EventScript_NotEnoughMonsForDoubleBattle special SetUpTrainerEncounterMusic special sub_80B16D8 - goto EventScript_27143C + goto EventScript_ShowTrainerIntroMsg -EventScript_2713BA:: @ 82713BA - special special_trainer_unable_to_battle +EventScript_NotEnoughMonsForDoubleBattle:: @ 82713BA + special ShowTrainerCantBattleSpeech waitmessage waitbuttonpress release end EventScript_2713C1:: @ 82713C1 - ontrainerbattleend + gotopostbattlescript EventScript_2713C2:: @ 82713C2 - applymovement 0x800F, Movement_27143A + applymovement VAR_LAST_TALKED, Movement_27143A waitmovement 0 special SetUpTrainerEncounterMusic trainerbattlebegin - ontrainerbattleend + gotopostbattlescript EventScript_2713D1:: @ 82713D1 call EventScript_27142F - specialvar VAR_RESULT, sub_80B22A0 + specialvar VAR_RESULT, IsTrainerReadyForRematch compare_var_to_value VAR_RESULT, 0 goto_eq EventScript_2713F7 special SetUpTrainerEncounterMusic special sub_80B16D8 - special sub_80B1A14 + special ShowTrainerIntroSpeech waitmessage waitbuttonpress - special sub_80B19EC + special BattleSetup_StartRematchBattle waitstate releaseall end EventScript_2713F7:: @ 82713F7 - ontrainerbattleend + gotopostbattlescript -EventScript_2713F8:: @ 82713F8 - specialvar VAR_RESULT, sub_80B22A0 +EventScript_TryDoDoubleRematchBattle:: @ 82713F8 + specialvar VAR_RESULT, IsTrainerReadyForRematch compare_var_to_value VAR_RESULT, 0 goto_eq EventScript_271427 - special sub_80F92F8 + special HasEnoughMonsForDoubleBattle compare_var_to_value VAR_RESULT, 0 - goto_if 5, EventScript_271428 + goto_if 5, EventScript_NotEnoughMonsForDoubleRematchBattle special SetUpTrainerEncounterMusic special sub_80B16D8 - special sub_80B1A14 + special ShowTrainerIntroSpeech waitmessage waitbuttonpress - special sub_80B19EC + special BattleSetup_StartRematchBattle waitstate releaseall end EventScript_271427:: @ 8271427 - ontrainerbattleend + gotopostbattlescript -EventScript_271428:: @ 8271428 - special special_trainer_unable_to_battle +EventScript_NotEnoughMonsForDoubleRematchBattle:: @ 8271428 + special ShowTrainerCantBattleSpeech waitmessage waitbuttonpress release end EventScript_27142F:: @ 827142F - applymovement 0x800F, Movement_27143A + applymovement VAR_LAST_TALKED, Movement_27143A waitmovement 0 return @@ -944,18 +948,18 @@ Movement_27143A: @ 827143A step_59 step_end -EventScript_27143C:: @ 827143C - special sub_80B1A14 +EventScript_ShowTrainerIntroMsg:: @ 827143C + special ShowTrainerIntroSpeech waitmessage waitbuttonpress special sub_80B45D0 compare_var_to_value VAR_RESULT, 1 goto_eq EventScript_271356 - goto EventScript_271454 + goto EventScript_DoTrainerBattle -EventScript_271454:: @ 8271454 +EventScript_DoTrainerBattle:: @ 8271454 trainerbattlebegin - specialvar VAR_RESULT, sub_80B170C + specialvar VAR_RESULT, GetTrainerBattleMode compare_var_to_value VAR_RESULT, 0 goto_eq EventScript_271491 compare_var_to_value VAR_RESULT, 2 @@ -968,7 +972,7 @@ EventScript_271454:: @ 8271454 goto_eq EventScript_271491 EventScript_271491:: @ 8271491 - ontrainerbattleendgoto + gotobeatenscript releaseall end @@ -2268,7 +2272,7 @@ Route101_EventScript_272141:: @ 8272141 Route103_EventScript_272141:: @ 8272141 lock faceplayer - checkflag FLAG_0x12F + checkflag FLAG_HAS_MATCH_CALL goto_if 0, Route101_EventScript_272155 checkflag FLAG_0x119 goto_if 0, Route101_EventScript_1FA2D2 @@ -4082,15 +4086,15 @@ Std_8:: @ 82742C9 delay 30 return -LavaridgeTown_Gym_1F_EventScript_2742E6:: @ 82742E6 - special CheckIfMultipleTrainersWantBattle +EventScript_TryGetTrainerScript:: @ 82742E6 + special ShouldTryGetTrainerScript compare_var_to_value VAR_RESULT, 1 - goto_eq LavaridgeTown_Gym_1F_EventScript_2742F6 + goto_eq EventScript_GotoTrainerScript releaseall end -LavaridgeTown_Gym_1F_EventScript_2742F6:: @ 82742F6 - ontrainerbattleendgoto +EventScript_GotoTrainerScript:: @ 82742F6 + gotobeatenscript releaseall end @@ -14313,12 +14317,12 @@ EventScript_2C83F0:: @ 82C83F0 closemessage end -Text_2C840A:: @ 82C840A +Text_ThisIsATestSignpostMsg:: @ 82C840A .string "This is a test message.\n" .string "This is a signpost.$" -EventScript_2C8436:: @ 82C8436 - msgbox Text_2C840A, 3 +EventScript_TestSignpostMsg:: @ 82C8436 + msgbox Text_ThisIsATestSignpostMsg, 3 end .string "It’s very disappointing…$" diff --git a/data/field_map_obj.s b/data/field_map_obj.s index 52b39f932..50bdfe6f3 100644 --- a/data/field_map_obj.s +++ b/data/field_map_obj.s @@ -1,3 +1,4 @@ +#include "constants/map_objects.h" .include "asm/macros.inc" .include "constants/constants.inc" diff --git a/data/graphics.s b/data/graphics.s index 2b83c5946..d1a8e88ab 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -16,12 +16,108 @@ gUnknown_08C00524:: @ 8C00524 .incbin "baserom.gba", 0xc00c10, 0xa34 gUnknown_08C01644:: @ 8C01644 - .incbin "baserom.gba", 0xc01644, 0xE0 + .incbin "baserom.gba", 0xc01644, 0xe0 gUnknown_08C01724:: @ 8C01724 - .incbin "baserom.gba", 0xc01724, 0xBDC + .incbin "baserom.gba", 0xc01724, 0x18 + + .align 2 +gInterfaceGfx_PokeBall:: + .incbin "graphics/interface/ball/poke.4bpp.lz" @ 0xBC + + .align 2 +gInterfacePal_PokeBall:: + .incbin "graphics/interface/ball/poke.gbapal.lz" + + .align 2 +gInterfaceGfx_GreatBall:: + .incbin "graphics/interface/ball/great.4bpp.lz" @ 0xBC + + .align 2 +gInterfacePal_GreatBall:: + .incbin "graphics/interface/ball/great.gbapal.lz" + + .align 2 +gInterfaceGfx_SafariBall:: + .incbin "graphics/interface/ball/safari.4bpp.lz" @ 0xBC + + .align 2 +gInterfacePal_SafariBall:: + .incbin "graphics/interface/ball/safari.gbapal.lz" + + .align 2 +gInterfaceGfx_UltraBall:: + .incbin "baserom.gba", 0xC019E0, 0xB4 + + .align 2 +gInterfacePal_UltraBall:: + .incbin "baserom.gba", 0xC01A94, 0x20 + + .align 2 +gInterfaceGfx_MasterBall:: + .incbin "graphics/interface/ball/master.4bpp.lz" @ 0xBC + + .align 2 +gInterfacePal_MasterBall:: + .incbin "graphics/interface/ball/master.gbapal.lz" + + .align 2 +gInterfaceGfx_NetBall:: + .incbin "graphics/interface/ball/net.4bpp.lz" @ 0xBC + + .align 2 +gInterfacePal_NetBall:: + .incbin "graphics/interface/ball/net.gbapal.lz" + + .align 2 +gInterfaceGfx_DiveBall:: + .incbin "graphics/interface/ball/dive.4bpp.lz" @ 0xBC + + .align 2 +gInterfacePal_DiveBall:: + .incbin "graphics/interface/ball/dive.gbapal.lz" + + .align 2 +gInterfaceGfx_NestBall:: + .incbin "graphics/interface/ball/nest.4bpp.lz" @ 0xBC + + .align 2 +gInterfacePal_NestBall:: + .incbin "graphics/interface/ball/nest.gbapal.lz" + + .align 2 +gInterfaceGfx_RepeatBall:: + .incbin "graphics/interface/ball/repeat.4bpp.lz" @ 0xBC + + .align 2 +gInterfacePal_RepeatBall:: + .incbin "graphics/interface/ball/repeat.gbapal.lz" + + .align 2 +gInterfaceGfx_TimerBall:: + .incbin "graphics/interface/ball/timer.4bpp.lz" @ 0xBC + + .align 2 +gInterfacePal_TimerBall:: + .incbin "graphics/interface/ball/timer.gbapal.lz" + + .align 2 +gInterfaceGfx_LuxuryBall:: + .incbin "graphics/interface/ball/luxury.4bpp.lz" @ 0xBC + + .align 2 +gInterfacePal_LuxuryBall:: + .incbin "graphics/interface/ball/luxury.gbapal.lz" + + .align 2 +gInterfaceGfx_PremierBall:: + .incbin "graphics/interface/ball/premier.4bpp.lz" @ 0xBC + + .align 2 +gInterfacePal_PremierBall:: + .incbin "graphics/interface/ball/premier.gbapal.lz" -gUnknown_08C02300:: @ 8C02300 +gOpenPokeballGfx:: @ 8C02300 .incbin "baserom.gba", 0xc02300, 0x7c gUnknown_08C0237C:: @ 8C0237C @@ -682,7 +778,7 @@ gMonIcon_Egg:: @ 8D8FC74 .incbin "baserom.gba", 0xd90074, 0x1524 -gUnknown_08D91598:: @ 8D91598 +sBlenderCenterGfx:: @ 8D91598 .incbin "baserom.gba", 0xd91598, 0x820 gUnknown_08D91DB8:: @ 8D91DB8 diff --git a/data/graphics/field_objects/berry_tree_graphics_tables.inc b/data/graphics/field_objects/berry_tree_graphics_tables.inc index 52c8719fe..8d716d759 100644 --- a/data/graphics/field_objects/berry_tree_graphics_tables.inc +++ b/data/graphics/field_objects/berry_tree_graphics_tables.inc @@ -478,18 +478,18 @@ gFieldObjectPicTable_TamatoBerryTree:: @ 850C758 gBerryTreePaletteSlotTable_Tamato:: @ 850C7A0 berry_tree_palette_slot_table 2 - .byte FIELD_OBJ_GFX_BERRY_TREE_EARLY_STAGES - .byte FIELD_OBJ_GFX_BERRY_TREE_EARLY_STAGES - .byte FIELD_OBJ_GFX_BERRY_TREE_EARLY_STAGES - .byte FIELD_OBJ_GFX_BERRY_TREE_EARLY_STAGES - .byte FIELD_OBJ_GFX_BERRY_TREE_EARLY_STAGES + .byte MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES + .byte MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES + .byte MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES + .byte MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES + .byte MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES gBerryTreeFieldObjectGraphicsIdTable:: @ 850C7AA - .byte FIELD_OBJ_GFX_BERRY_TREE_EARLY_STAGES - .byte FIELD_OBJ_GFX_BERRY_TREE_EARLY_STAGES - .byte FIELD_OBJ_GFX_BERRY_TREE_LATE_STAGES - .byte FIELD_OBJ_GFX_BERRY_TREE_LATE_STAGES - .byte FIELD_OBJ_GFX_BERRY_TREE_LATE_STAGES + .byte MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES + .byte MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES + .byte MAP_OBJ_GFX_BERRY_TREE_LATE_STAGES + .byte MAP_OBJ_GFX_BERRY_TREE_LATE_STAGES + .byte MAP_OBJ_GFX_BERRY_TREE_LATE_STAGES .align 2 gBerryTreePicTablePointers:: @ 850C7B0 diff --git a/data/graphics/pokemon/animation_delay_table.inc b/data/graphics/pokemon/animation_delay_table.inc index 55d602bab..be517649b 100644 --- a/data/graphics/pokemon/animation_delay_table.inc +++ b/data/graphics/pokemon/animation_delay_table.inc @@ -81,7 +81,7 @@ gMonAnimationDelayTable:: @ 8329B87 .byte 0x00 @ SPECIES_SLOWBRO .byte 0x00 @ SPECIES_MAGNEMITE .byte 0x00 @ SPECIES_MAGNETON - .byte 0x00 @ SPECIES_FARFETCH_D + .byte 0x00 @ SPECIES_FARFETCHD .byte 0x00 @ SPECIES_DODUO .byte 0x00 @ SPECIES_DODRIO .byte 0x00 @ SPECIES_SEEL diff --git a/data/graphics/pokemon/front_anim_ids_table.inc b/data/graphics/pokemon/front_anim_ids_table.inc index 6e2d7fe0e..4f225348a 100644 --- a/data/graphics/pokemon/front_anim_ids_table.inc +++ b/data/graphics/pokemon/front_anim_ids_table.inc @@ -81,7 +81,7 @@ gMonFrontAnimIdsTable:: @ 83299EC .byte 0x0b @ SPECIES_SLOWBRO .byte 0x54 @ SPECIES_MAGNEMITE .byte 0x2c @ SPECIES_MAGNETON - .byte 0x48 @ SPECIES_FARFETCH_D + .byte 0x48 @ SPECIES_FARFETCHD .byte 0x4c @ SPECIES_DODUO .byte 0x41 @ SPECIES_DODRIO .byte 0x0b @ SPECIES_SEEL diff --git a/data/item_menu_icons.s b/data/item_menu_icons.s index 3b7b0ef89..01aa67eb0 100644 --- a/data/item_menu_icons.s +++ b/data/item_menu_icons.s @@ -1,3 +1,4 @@ +#include "constants/items.h" .include "asm/macros.inc" .include "constants/constants.inc" diff --git a/data/link.s b/data/link.s index d9cf886c5..8cd19ba5c 100644 --- a/data/link.s +++ b/data/link.s @@ -1,5 +1,6 @@ @ the second big chunk of data +#include "constants/species.h" .include "asm/macros.inc" .include "constants/constants.inc" @@ -28,15 +29,15 @@ g2BlankTilesGfx:: @ 82ED168 .incbin "graphics/interface/blank_1x2.4bpp" gUnknown_082ED1A8:: @ 82ED1A8 - .4byte gUnknown_020228C4 + .4byte gBlockSendBuffer .4byte 0x000000C8 - .4byte gUnknown_020228C4 + .4byte gBlockSendBuffer .4byte 0x000000C8 - .4byte gUnknown_020228C4 + .4byte gBlockSendBuffer .4byte 0x00000064 - .4byte gUnknown_020228C4 + .4byte gBlockSendBuffer .4byte 0x000000DC - .4byte gUnknown_020228C4 + .4byte gBlockSendBuffer .4byte 0x00000028 gUnknown_082ED1D0:: @ 82ED1D0 @@ -224,15 +225,15 @@ gUnknown_082ED6A5:: @ 82ED6A5 .align 2 gUnknown_082ED6B8:: @ 82ED6B8 - .4byte gUnknown_020228C4 + .4byte gBlockSendBuffer .4byte 0x000000c8 - .4byte gUnknown_020228C4 + .4byte gBlockSendBuffer .4byte 0x000000c8 - .4byte gUnknown_020228C4 + .4byte gBlockSendBuffer .4byte 0x00000064 - .4byte gUnknown_020228C4 + .4byte gBlockSendBuffer .4byte 0x000000dc - .4byte gUnknown_020228C4 + .4byte gBlockSendBuffer .4byte 0x00000028 .align 2 diff --git a/data/map_events.s b/data/map_events.s index 805c4d255..8784ee047 100644 --- a/data/map_events.s +++ b/data/map_events.s @@ -1,7 +1,9 @@ +#include "constants/flags.h" +#include "constants/items.h" +#include "constants/map_objects.h" +#include "constants/vars.h" .include "asm/macros.inc" .include "constants/constants.inc" - .include "constants/flags.inc" - .include "constants/variables.inc" .section .rodata diff --git a/data/maps.s b/data/maps.s index a8074c02a..8848ac242 100644 --- a/data/maps.s +++ b/data/maps.s @@ -1,3 +1,4 @@ +#include "constants/songs.h" .include "asm/macros.inc" .include "constants/constants.inc" diff --git a/data/rom4.s b/data/overworld.s index 890829cd9..890829cd9 100644 --- a/data/rom4.s +++ b/data/overworld.s diff --git a/data/player_pc.s b/data/player_pc.s index c3422db30..47bdbff39 100644 --- a/data/player_pc.s +++ b/data/player_pc.s @@ -1,3 +1,4 @@ +#include "constants/items.h" .include "asm/macros.inc" .include "constants/constants.inc" diff --git a/data/pokeball.s b/data/pokeball.s deleted file mode 100644 index 4e7b4315a..000000000 --- a/data/pokeball.s +++ /dev/null @@ -1,14 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2, 0 - -gUnknown_0832C400:: @ 832C400 - .incbin "baserom.gba", 0x32c400, 0x60 - -gUnknown_0832C460:: @ 832C460 - .incbin "baserom.gba", 0x32c460, 0x128 - -gUnknown_0832C588:: @ 832C588 - .incbin "baserom.gba", 0x32c588, 0x138 diff --git a/data/script_cmd_table.inc b/data/script_cmd_table.inc index b33db9218..96f42dfb0 100644 --- a/data/script_cmd_table.inc +++ b/data/script_cmd_table.inc @@ -94,8 +94,8 @@ gScriptCmdTable:: @ 81DB67C .4byte ScrCmd_turnobject .4byte ScrCmd_trainerbattle .4byte ScrCmd_dotrainerbattle - .4byte ScrCmd_ontrainerbattleend - .4byte ScrCmd_ontrainerbattleendgoto + .4byte ScrCmd_gotopostbattlescript + .4byte ScrCmd_gotobeatenscript .4byte ScrCmd_checktrainerflag .4byte ScrCmd_settrainerflag .4byte ScrCmd_cleartrainerflag diff --git a/data/scripts/cable_club.inc b/data/scripts/cable_club.inc index 71e3303b5..bfea16d8f 100644 --- a/data/scripts/cable_club.inc +++ b/data/scripts/cable_club.inc @@ -409,7 +409,7 @@ OldaleTown_PokemonCenter_2F_EventScript_276F23:: @ 8276F23 end OldaleTown_PokemonCenter_2F_EventScript_276F2E:: @ 8276F2E - special sub_80F92F8 + special HasEnoughMonsForDoubleBattle compare_var_to_value VAR_RESULT, 0 goto_if 5, OldaleTown_PokemonCenter_2F_EventScript_276F47 setvar VAR_0x8004, 2 @@ -1194,7 +1194,7 @@ OldaleTown_PokemonCenter_2F_EventScript_27788E:: @ 827788E end OldaleTown_PokemonCenter_2F_EventScript_277899:: @ 8277899 - special sub_80F92F8 + special HasEnoughMonsForDoubleBattle compare_var_to_value VAR_RESULT, 0 goto_if 5, OldaleTown_PokemonCenter_2F_EventScript_2778B2 setvar VAR_0x8004, 1 diff --git a/data/scripts/maps/AbandonedShip_Rooms2_1F.inc b/data/scripts/maps/AbandonedShip_Rooms2_1F.inc index 7d86c6f3f..0b687aaeb 100644 --- a/data/scripts/maps/AbandonedShip_Rooms2_1F.inc +++ b/data/scripts/maps/AbandonedShip_Rooms2_1F.inc @@ -3,7 +3,7 @@ AbandonedShip_Rooms2_1F_MapScripts:: @ 82380A6 AbandonedShip_Rooms2_1F_EventScript_2380A7:: @ 82380A7 trainerbattle 6, TRAINER_KIRA_AND_DAN_1, 0, AbandonedShip_Rooms2_1F_Text_23819D, AbandonedShip_Rooms2_1F_Text_2381DA, AbandonedShip_Rooms2_1F_Text_238257, AbandonedShip_Rooms2_1F_EventScript_2380D7 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq AbandonedShip_Rooms2_1F_EventScript_2380F0 msgbox AbandonedShip_Rooms2_1F_Text_23820F, 4 @@ -26,7 +26,7 @@ AbandonedShip_Rooms2_1F_EventScript_2380F0:: @ 82380F0 AbandonedShip_Rooms2_1F_EventScript_23810B:: @ 823810B trainerbattle 6, TRAINER_KIRA_AND_DAN_1, 0, AbandonedShip_Rooms2_1F_Text_2382A4, AbandonedShip_Rooms2_1F_Text_2382F4, AbandonedShip_Rooms2_1F_Text_23836F, AbandonedShip_Rooms2_1F_EventScript_23813B - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq AbandonedShip_Rooms2_1F_EventScript_238154 msgbox AbandonedShip_Rooms2_1F_Text_23830A, 4 diff --git a/data/scripts/maps/AbandonedShip_Rooms_1F.inc b/data/scripts/maps/AbandonedShip_Rooms_1F.inc index 025b497dd..beaea9b34 100644 --- a/data/scripts/maps/AbandonedShip_Rooms_1F.inc +++ b/data/scripts/maps/AbandonedShip_Rooms_1F.inc @@ -12,7 +12,7 @@ AbandonedShip_Rooms_1F_EventScript_237A9C:: @ 8237A9C AbandonedShip_Rooms_1F_EventScript_237AB3:: @ 8237AB3 trainerbattle 2, TRAINER_THALIA_1, 0, AbandonedShip_Rooms_1F_Text_237B76, AbandonedShip_Rooms_1F_Text_237BB8, AbandonedShip_Rooms_1F_EventScript_237ADF - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq AbandonedShip_Rooms_1F_EventScript_237AFE msgbox AbandonedShip_Rooms_1F_Text_237BDB, 4 diff --git a/data/scripts/maps/AncientTomb.inc b/data/scripts/maps/AncientTomb.inc index 85a1d708d..240a40fd8 100644 --- a/data/scripts/maps/AncientTomb.inc +++ b/data/scripts/maps/AncientTomb.inc @@ -72,7 +72,7 @@ AncientTomb_EventScript_23905A:: @ 823905A waitmoncry setwildbattle SPECIES_REGISTEEL, 40, ITEM_NONE setflag FLAG_SYS_CTRL_OBJ_DELETE - special sub_80B0A74 + special StartRegiBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE specialvar VAR_RESULT, sub_8138B80 diff --git a/data/scripts/maps/BattleFrontier_Lounge2.inc b/data/scripts/maps/BattleFrontier_Lounge2.inc index 6b43747cc..bd20f13ac 100644 --- a/data/scripts/maps/BattleFrontier_Lounge2.inc +++ b/data/scripts/maps/BattleFrontier_Lounge2.inc @@ -17,29 +17,29 @@ BattleFrontier_Lounge2_EventScript_26065F:: @ 826065F end BattleFrontier_Lounge2_EventScript_26066D:: @ 826066D - compare_var_to_value VAR_0x402F, 0 + compare_var_to_value VAR_FRONTIER_MANIAC_FACILITY, 0 call_if 1, BattleFrontier_Lounge2_EventScript_26070A - compare_var_to_value VAR_0x402F, 1 + compare_var_to_value VAR_FRONTIER_MANIAC_FACILITY, 1 call_if 1, BattleFrontier_Lounge2_EventScript_26070F - compare_var_to_value VAR_0x402F, 2 + compare_var_to_value VAR_FRONTIER_MANIAC_FACILITY, 2 call_if 1, BattleFrontier_Lounge2_EventScript_260714 - compare_var_to_value VAR_0x402F, 3 + compare_var_to_value VAR_FRONTIER_MANIAC_FACILITY, 3 call_if 1, BattleFrontier_Lounge2_EventScript_260719 - compare_var_to_value VAR_0x402F, 4 + compare_var_to_value VAR_FRONTIER_MANIAC_FACILITY, 4 call_if 1, BattleFrontier_Lounge2_EventScript_26071E - compare_var_to_value VAR_0x402F, 5 + compare_var_to_value VAR_FRONTIER_MANIAC_FACILITY, 5 call_if 1, BattleFrontier_Lounge2_EventScript_260723 - compare_var_to_value VAR_0x402F, 6 + compare_var_to_value VAR_FRONTIER_MANIAC_FACILITY, 6 call_if 1, BattleFrontier_Lounge2_EventScript_260728 - compare_var_to_value VAR_0x402F, 7 + compare_var_to_value VAR_FRONTIER_MANIAC_FACILITY, 7 call_if 1, BattleFrontier_Lounge2_EventScript_26072D - compare_var_to_value VAR_0x402F, 8 + compare_var_to_value VAR_FRONTIER_MANIAC_FACILITY, 8 call_if 1, BattleFrontier_Lounge2_EventScript_260732 - compare_var_to_value VAR_0x402F, 9 + compare_var_to_value VAR_FRONTIER_MANIAC_FACILITY, 9 call_if 1, BattleFrontier_Lounge2_EventScript_260737 - compare_var_to_value VAR_0x402F, 3 + compare_var_to_value VAR_FRONTIER_MANIAC_FACILITY, 3 call_if 3, BattleFrontier_Lounge2_EventScript_2606F8 - compare_var_to_value VAR_0x402F, 4 + compare_var_to_value VAR_FRONTIER_MANIAC_FACILITY, 4 call_if 4, BattleFrontier_Lounge2_EventScript_260701 special sub_8139F20 waitmessage diff --git a/data/scripts/maps/BattleFrontier_Lounge3.inc b/data/scripts/maps/BattleFrontier_Lounge3.inc index 0612ccb8e..5fb7a8367 100644 --- a/data/scripts/maps/BattleFrontier_Lounge3.inc +++ b/data/scripts/maps/BattleFrontier_Lounge3.inc @@ -32,7 +32,7 @@ BattleFrontier_Lounge3_EventScript_261DAF:: @ 8261DAF BattleFrontier_Lounge3_EventScript_261DE9:: @ 8261DE9 multichoice 20, 4, 87, 0 - copyvar VAR_0x4032, VAR_RESULT + copyvar VAR_FRONTIER_GAMBLER_AMOUNT_BET, VAR_RESULT switch VAR_RESULT case 0, BattleFrontier_Lounge3_EventScript_261E30 case 1, BattleFrontier_Lounge3_EventScript_261E3B @@ -69,7 +69,7 @@ BattleFrontier_Lounge3_EventScript_261E51:: @ 8261E51 BattleFrontier_Lounge3_EventScript_261E75:: @ 8261E75 copyvar VAR_0x8004, VAR_0x8008 special sub_813A9A4 - setvar VAR_0x4033, 1 + setvar VAR_FRONTIER_GAMBLER_PLACED_BET_F, 1 special sub_813A8FC playse SE_REGI msgbox BattleFrontier_Lounge3_Text_262BE0, 4 @@ -113,37 +113,37 @@ BattleFrontier_Lounge3_EventScript_261EEB:: @ 8261EEB BattleFrontier_Lounge3_EventScript_261EF9:: @ 8261EF9 msgbox BattleFrontier_Lounge3_Text_26346B, 4 - compare_var_to_value VAR_0x4033, 1 + compare_var_to_value VAR_FRONTIER_GAMBLER_PLACED_BET_F, 1 goto_if 4, BattleFrontier_Lounge3_EventScript_261F12 goto BattleFrontier_Lounge3_EventScript_261DAF end BattleFrontier_Lounge3_EventScript_261F12:: @ 8261F12 - compare_var_to_value VAR_0x4033, 1 + compare_var_to_value VAR_FRONTIER_GAMBLER_PLACED_BET_F, 1 goto_eq BattleFrontier_Lounge3_EventScript_261F9E - compare_var_to_value VAR_0x4033, 2 + compare_var_to_value VAR_FRONTIER_GAMBLER_PLACED_BET_F, 2 goto_eq BattleFrontier_Lounge3_EventScript_261F2E goto BattleFrontier_Lounge3_EventScript_261F71 end BattleFrontier_Lounge3_EventScript_261F2E:: @ 8261F2E msgbox BattleFrontier_Lounge3_Text_263334, 4 - compare_var_to_value VAR_0x4032, 0 + compare_var_to_value VAR_FRONTIER_GAMBLER_AMOUNT_BET, 0 call_if 1, BattleFrontier_Lounge3_EventScript_261F80 - compare_var_to_value VAR_0x4032, 1 + compare_var_to_value VAR_FRONTIER_GAMBLER_AMOUNT_BET, 1 call_if 1, BattleFrontier_Lounge3_EventScript_261F8A - compare_var_to_value VAR_0x4032, 2 + compare_var_to_value VAR_FRONTIER_GAMBLER_AMOUNT_BET, 2 call_if 1, BattleFrontier_Lounge3_EventScript_261F94 msgbox BattleFrontier_Lounge3_Text_2633D4, 9 special sub_813A9D0 msgbox BattleFrontier_Lounge3_Text_2633F2, 4 - setvar VAR_0x4033, 0 + setvar VAR_FRONTIER_GAMBLER_PLACED_BET_F, 0 release end BattleFrontier_Lounge3_EventScript_261F71:: @ 8261F71 msgbox BattleFrontier_Lounge3_Text_263298, 4 - setvar VAR_0x4033, 0 + setvar VAR_FRONTIER_GAMBLER_PLACED_BET_F, 0 release end diff --git a/data/scripts/maps/BirthIsland_Exterior.inc b/data/scripts/maps/BirthIsland_Exterior.inc index 8ea18a673..8c298c85a 100644 --- a/data/scripts/maps/BirthIsland_Exterior.inc +++ b/data/scripts/maps/BirthIsland_Exterior.inc @@ -88,7 +88,7 @@ BirthIsland_Exterior_EventScript_267FC1:: @ 8267FC1 setvar VAR_0x8006, 0 special DoScriptedWildBattle setflag FLAG_SYS_CTRL_OBJ_DELETE - special sub_80B0934 + special BattleSetup_StartLegendaryBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE specialvar VAR_RESULT, sub_8138B80 diff --git a/data/scripts/maps/DesertRuins.inc b/data/scripts/maps/DesertRuins.inc index bb2f6d23d..afbd24903 100644 --- a/data/scripts/maps/DesertRuins.inc +++ b/data/scripts/maps/DesertRuins.inc @@ -72,7 +72,7 @@ DesertRuins_EventScript_22DA02:: @ 822DA02 waitmoncry setwildbattle SPECIES_REGIROCK, 40, ITEM_NONE setflag FLAG_SYS_CTRL_OBJ_DELETE - special sub_80B0A74 + special StartRegiBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE specialvar VAR_RESULT, sub_8138B80 diff --git a/data/scripts/maps/DewfordTown_Gym.inc b/data/scripts/maps/DewfordTown_Gym.inc index a3f996f25..5e9b5fa7d 100644 --- a/data/scripts/maps/DewfordTown_Gym.inc +++ b/data/scripts/maps/DewfordTown_Gym.inc @@ -157,7 +157,7 @@ DewfordTown_Gym_EventScript_1FC7C1:: @ 81FC7C1 DewfordTown_Gym_EventScript_1FC7C2:: @ 81FC7C2 trainerbattle 1, TRAINER_BRAWLY_1, 0, DewfordTown_Gym_Text_1FCF44, DewfordTown_Gym_Text_1FD008, DewfordTown_Gym_EventScript_1FC7F7 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq DewfordTown_Gym_EventScript_1FC89C checkflag FLAG_0x0A6 diff --git a/data/scripts/maps/FarawayIsland_Interior.inc b/data/scripts/maps/FarawayIsland_Interior.inc index f49d938a7..e86a2da52 100644 --- a/data/scripts/maps/FarawayIsland_Interior.inc +++ b/data/scripts/maps/FarawayIsland_Interior.inc @@ -145,7 +145,7 @@ FarawayIsland_Interior_EventScript_267DF2:: @ 8267DF2 setvar VAR_0x8006, 0 special DoScriptedWildBattle setflag FLAG_SYS_CTRL_OBJ_DELETE - special sub_80B0934 + special BattleSetup_StartLegendaryBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE specialvar VAR_RESULT, sub_8138B80 diff --git a/data/scripts/maps/FortreeCity_Gym.inc b/data/scripts/maps/FortreeCity_Gym.inc index e3990cd23..67d5a21eb 100644 --- a/data/scripts/maps/FortreeCity_Gym.inc +++ b/data/scripts/maps/FortreeCity_Gym.inc @@ -17,7 +17,7 @@ FortreeCity_Gym_EventScript_2165C4:: @ 82165C4 FortreeCity_Gym_EventScript_2165C8:: @ 82165C8 trainerbattle 1, TRAINER_WINONA_1, 0, FortreeCity_Gym_Text_216D75, FortreeCity_Gym_Text_216E60, FortreeCity_Gym_EventScript_2165FD - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq FortreeCity_Gym_EventScript_21668D checkflag FLAG_0x0AA diff --git a/data/scripts/maps/IslandCave.inc b/data/scripts/maps/IslandCave.inc index 69a3ef76a..4d6a4fda9 100644 --- a/data/scripts/maps/IslandCave.inc +++ b/data/scripts/maps/IslandCave.inc @@ -104,7 +104,7 @@ IslandCave_EventScript_238F58:: @ 8238F58 waitmoncry setwildbattle SPECIES_REGICE, 40, ITEM_NONE setflag FLAG_SYS_CTRL_OBJ_DELETE - special sub_80B0A74 + special StartRegiBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE specialvar VAR_RESULT, sub_8138B80 diff --git a/data/scripts/maps/JaggedPass.inc b/data/scripts/maps/JaggedPass.inc index 1fb3b316e..4cc415b30 100644 --- a/data/scripts/maps/JaggedPass.inc +++ b/data/scripts/maps/JaggedPass.inc @@ -104,7 +104,7 @@ JaggedPass_EventScript_230785:: @ 8230785 JaggedPass_EventScript_23079C:: @ 823079C trainerbattle 2, TRAINER_DIANA_1, 0, JaggedPass_Text_230974, JaggedPass_Text_2309B5, JaggedPass_EventScript_2307C8 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq JaggedPass_EventScript_2307E4 msgbox JaggedPass_Text_2309D8, 4 @@ -128,7 +128,7 @@ JaggedPass_EventScript_2307E4:: @ 82307E4 JaggedPass_EventScript_2307FB:: @ 82307FB trainerbattle 2, TRAINER_ETHAN_1, 0, JaggedPass_Text_230B10, JaggedPass_Text_230B50, JaggedPass_EventScript_230827 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq JaggedPass_EventScript_230843 msgbox JaggedPass_Text_230B93, 4 diff --git a/data/scripts/maps/LavaridgeTown_Gym_1F.inc b/data/scripts/maps/LavaridgeTown_Gym_1F.inc index 55ae851e0..581f4ca1d 100644 --- a/data/scripts/maps/LavaridgeTown_Gym_1F.inc +++ b/data/scripts/maps/LavaridgeTown_Gym_1F.inc @@ -60,7 +60,7 @@ LavaridgeTown_Gym_1F_EventScript_1FE78B:: @ 81FE78B LavaridgeTown_Gym_1F_EventScript_1FE78C:: @ 81FE78C trainerbattle 1, TRAINER_FLANNERY_1, 0, LavaridgeTown_Gym_1F_Text_1FF0DC, LavaridgeTown_Gym_1F_Text_1FF233, LavaridgeTown_Gym_1F_EventScript_1FE7C1 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq LavaridgeTown_Gym_1F_EventScript_1FE864 checkflag FLAG_0x0A8 @@ -127,9 +127,9 @@ LavaridgeTown_Gym_1F_EventScript_1FE89A:: @ 81FE89A LavaridgeTown_Gym_B1F_EventScript_1FE89A:: @ 81FE89A call LavaridgeTown_Gym_1F_EventScript_1FE705 release - special CheckIfMultipleTrainersWantBattle + special ShouldTryGetTrainerScript compare_var_to_value VAR_RESULT, 1 - goto_eq LavaridgeTown_Gym_1F_EventScript_2742F6 + goto_eq EventScript_GotoTrainerScript end LavaridgeTown_Gym_1F_EventScript_1FE8AF:: @ 81FE8AF diff --git a/data/scripts/maps/LittlerootTown_ProfessorBirchsLab.inc b/data/scripts/maps/LittlerootTown_ProfessorBirchsLab.inc index cef69c7b2..1dd35ab18 100644 --- a/data/scripts/maps/LittlerootTown_ProfessorBirchsLab.inc +++ b/data/scripts/maps/LittlerootTown_ProfessorBirchsLab.inc @@ -482,7 +482,7 @@ LittlerootTown_ProfessorBirchsLab_EventScript_1FA25A:: @ 81FA25A goto_eq LittlerootTown_ProfessorBirchsLab_EventScript_1FA28A compare_var_to_value VAR_0x40D3, 2 goto_eq LittlerootTown_ProfessorBirchsLab_EventScript_1FA294 - checkflag FLAG_0x12F + checkflag FLAG_HAS_MATCH_CALL goto_if 0, LittlerootTown_ProfessorBirchsLab_EventScript_1FA29E checkflag FLAG_0x119 goto_if 0, LittlerootTown_ProfessorBirchsLab_EventScript_1FA2D2 diff --git a/data/scripts/maps/MarineCave_End.inc b/data/scripts/maps/MarineCave_End.inc index dc2e2b3a0..fafc10b63 100644 --- a/data/scripts/maps/MarineCave_End.inc +++ b/data/scripts/maps/MarineCave_End.inc @@ -38,7 +38,7 @@ MarineCave_End_EventScript_23B01B:: @ 823B01B setvar VAR_LAST_TALKED, 1 setwildbattle SPECIES_KYOGRE, 70, ITEM_NONE setflag FLAG_SYS_CTRL_OBJ_DELETE - special sub_80B0934 + special BattleSetup_StartLegendaryBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE setvar VAR_0x4001, 0 diff --git a/data/scripts/maps/MauvilleCity_Gym.inc b/data/scripts/maps/MauvilleCity_Gym.inc index 899550337..dd2d502db 100644 --- a/data/scripts/maps/MauvilleCity_Gym.inc +++ b/data/scripts/maps/MauvilleCity_Gym.inc @@ -77,7 +77,7 @@ MauvilleCity_Gym_EventScript_20DEE7:: @ 820DEE7 MauvilleCity_Gym_EventScript_20DEEB:: @ 820DEEB trainerbattle 1, TRAINER_WATTSON_1, 0, MauvilleCity_Gym_Text_20E602, MauvilleCity_Gym_Text_20E734, MauvilleCity_Gym_EventScript_20DF2B - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq MauvilleCity_Gym_EventScript_20DFDE checkflag FLAG_0x0A7 diff --git a/data/scripts/maps/MeteorFalls_1F_2R.inc b/data/scripts/maps/MeteorFalls_1F_2R.inc index 8cf171209..12e84c761 100644 --- a/data/scripts/maps/MeteorFalls_1F_2R.inc +++ b/data/scripts/maps/MeteorFalls_1F_2R.inc @@ -3,7 +3,7 @@ MeteorFalls_1F_2R_MapScripts:: @ 822C4DD MeteorFalls_1F_2R_EventScript_22C4DE:: @ 822C4DE trainerbattle 2, TRAINER_NICOLAS_1, 0, MeteorFalls_1F_2R_Text_22C608, MeteorFalls_1F_2R_Text_22C678, MeteorFalls_1F_2R_EventScript_22C50A - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq MeteorFalls_1F_2R_EventScript_22C529 msgbox MeteorFalls_1F_2R_Text_22C6A3, 4 @@ -28,7 +28,7 @@ MeteorFalls_1F_2R_EventScript_22C529:: @ 822C529 MeteorFalls_1F_2R_EventScript_22C540:: @ 822C540 trainerbattle 6, TRAINER_JOHN_AND_JAY_1, 0, MeteorFalls_1F_2R_Text_22C843, MeteorFalls_1F_2R_Text_22C89C, MeteorFalls_1F_2R_Text_22C92B, MeteorFalls_1F_2R_EventScript_22C570 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq MeteorFalls_1F_2R_EventScript_22C589 msgbox MeteorFalls_1F_2R_Text_22C8C1, 4 @@ -51,7 +51,7 @@ MeteorFalls_1F_2R_EventScript_22C589:: @ 822C589 MeteorFalls_1F_2R_EventScript_22C5A4:: @ 822C5A4 trainerbattle 6, TRAINER_JOHN_AND_JAY_1, 0, MeteorFalls_1F_2R_Text_22C9E6, MeteorFalls_1F_2R_Text_22CA44, MeteorFalls_1F_2R_Text_22CACD, MeteorFalls_1F_2R_EventScript_22C5D4 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq MeteorFalls_1F_2R_EventScript_22C5ED msgbox MeteorFalls_1F_2R_Text_22CA70, 4 diff --git a/data/scripts/maps/MossdeepCity_Gym.inc b/data/scripts/maps/MossdeepCity_Gym.inc index 89c243767..dfcb14721 100644 --- a/data/scripts/maps/MossdeepCity_Gym.inc +++ b/data/scripts/maps/MossdeepCity_Gym.inc @@ -50,7 +50,7 @@ MossdeepCity_Gym_EventScript_220885:: @ 8220885 MossdeepCity_Gym_EventScript_220898:: @ 8220898 trainerbattle 8, TRAINER_TATE_AND_LIZA_1, 0, MossdeepCity_Gym_Text_221783, MossdeepCity_Gym_Text_2218EC, MossdeepCity_Gym_Text_221BCE, MossdeepCity_Gym_EventScript_2208D1 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq MossdeepCity_Gym_EventScript_22097E checkflag FLAG_0x0AB diff --git a/data/scripts/maps/MtChimney.inc b/data/scripts/maps/MtChimney.inc index d7a2ed83a..b93fbd3ec 100644 --- a/data/scripts/maps/MtChimney.inc +++ b/data/scripts/maps/MtChimney.inc @@ -488,7 +488,7 @@ MtChimney_EventScript_22F141:: @ 822F141 MtChimney_EventScript_22F14A:: @ 822F14A trainerbattle 2, TRAINER_SHELBY_1, 0, MtChimney_Text_23001D, MtChimney_Text_230076, MtChimney_EventScript_22F176 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq MtChimney_EventScript_22F195 msgbox MtChimney_Text_2300A2, 4 @@ -533,7 +533,7 @@ MtChimney_EventScript_22F1F1:: @ 822F1F1 MtChimney_EventScript_22F208:: @ 822F208 trainerbattle 2, TRAINER_SAWYER_1, 0, MtChimney_Text_2304B3, MtChimney_Text_2304F7, MtChimney_EventScript_22F234 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq MtChimney_EventScript_22F253 msgbox MtChimney_Text_230519, 4 diff --git a/data/scripts/maps/MtPyre_3F.inc b/data/scripts/maps/MtPyre_3F.inc index ad99e6c9a..7c95a8d84 100644 --- a/data/scripts/maps/MtPyre_3F.inc +++ b/data/scripts/maps/MtPyre_3F.inc @@ -13,7 +13,7 @@ MtPyre_3F_EventScript_23176A:: @ 823176A MtPyre_3F_EventScript_231781:: @ 8231781 trainerbattle 2, TRAINER_GABRIELLE_1, 0, MtPyre_3F_Text_231952, MtPyre_3F_Text_23196A, MtPyre_3F_EventScript_2317AD - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq MtPyre_3F_EventScript_2317CC msgbox MtPyre_3F_Text_23199B, 4 diff --git a/data/scripts/maps/MtPyre_6F.inc b/data/scripts/maps/MtPyre_6F.inc index 36a727daa..6c61221d5 100644 --- a/data/scripts/maps/MtPyre_6F.inc +++ b/data/scripts/maps/MtPyre_6F.inc @@ -3,7 +3,7 @@ MtPyre_6F_MapScripts:: @ 8231D3A MtPyre_6F_EventScript_231D3B:: @ 8231D3B trainerbattle 2, TRAINER_VALERIE_1, 0, MtPyre_6F_Text_231DB4, MtPyre_6F_Text_231DE2, MtPyre_6F_EventScript_231D67 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq MtPyre_6F_EventScript_231D86 msgbox MtPyre_6F_Text_231DFC, 4 diff --git a/data/scripts/maps/NavelRock_Bottom.inc b/data/scripts/maps/NavelRock_Bottom.inc index 055697d23..5167af41a 100644 --- a/data/scripts/maps/NavelRock_Bottom.inc +++ b/data/scripts/maps/NavelRock_Bottom.inc @@ -61,7 +61,7 @@ NavelRock_Bottom_EventScript_2692A2:: @ 82692A2 setvar VAR_0x8006, 0 special DoScriptedWildBattle setflag FLAG_SYS_CTRL_OBJ_DELETE - special sub_80B0934 + special BattleSetup_StartLegendaryBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE specialvar VAR_RESULT, sub_8138B80 diff --git a/data/scripts/maps/NavelRock_Top.inc b/data/scripts/maps/NavelRock_Top.inc index 01c9a1523..edebb3976 100644 --- a/data/scripts/maps/NavelRock_Top.inc +++ b/data/scripts/maps/NavelRock_Top.inc @@ -65,7 +65,7 @@ NavelRock_Top_EventScript_26916F:: @ 826916F setvar VAR_0x8006, 0 special DoScriptedWildBattle setflag FLAG_SYS_CTRL_OBJ_DELETE - special sub_80B0934 + special BattleSetup_StartLegendaryBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE setvar VAR_LAST_TALKED, 1 diff --git a/data/scripts/maps/PetalburgCity.inc b/data/scripts/maps/PetalburgCity.inc index e223bf414..ad7e2f1cb 100644 --- a/data/scripts/maps/PetalburgCity.inc +++ b/data/scripts/maps/PetalburgCity.inc @@ -36,7 +36,7 @@ PetalburgCity_EventScript_1DC32E:: @ 81DC32E applymovement 255, PetalburgCity_Movement_1DC430 waitmovement 0 msgbox PetalburgCity_Text_1EC1F8, 4 - special sub_80B086C + special StartWallyTutorialBattle waitstate msgbox PetalburgCity_Text_1EC271, 4 applymovementat 2, PetalburgCity_Movement_2725A4, PETALBURG_CITY diff --git a/data/scripts/maps/PetalburgCity_Gym.inc b/data/scripts/maps/PetalburgCity_Gym.inc index e6cdd1334..3c119a227 100644 --- a/data/scripts/maps/PetalburgCity_Gym.inc +++ b/data/scripts/maps/PetalburgCity_Gym.inc @@ -62,7 +62,7 @@ PetalburgCity_Gym_EventScript_204955:: @ 8204955 PetalburgCity_Gym_EventScript_20495D:: @ 820495D setorcopyvar 0x8015, 269 - specialvar VAR_RESULT, sub_80B22A0 + specialvar VAR_RESULT, IsTrainerReadyForRematch compare_var_to_value VAR_RESULT, 1 goto_eq PetalburgCity_Gym_EventScript_204985 compare_var_to_value VAR_0x4085, 8 diff --git a/data/scripts/maps/PetalburgWoods.inc b/data/scripts/maps/PetalburgWoods.inc index a6b018134..64cf94754 100644 --- a/data/scripts/maps/PetalburgWoods.inc +++ b/data/scripts/maps/PetalburgWoods.inc @@ -279,7 +279,7 @@ PetalburgWoods_EventScript_22E26D:: @ 822E26D PetalburgWoods_EventScript_22E284:: @ 822E284 trainerbattle 2, TRAINER_JAMES_1, 0, PetalburgWoods_Text_22E827, PetalburgWoods_Text_22E86B, PetalburgWoods_EventScript_22E2C5 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq PetalburgWoods_EventScript_22E31B setvar VAR_0x8004, 621 @@ -293,7 +293,7 @@ PetalburgWoods_EventScript_22E284:: @ 822E284 PetalburgWoods_EventScript_22E2C5:: @ 822E2C5 special sub_80B4808 waitmovement 0 - checkflag FLAG_0x12F + checkflag FLAG_HAS_MATCH_CALL goto_eq PetalburgWoods_EventScript_22E2D6 release end @@ -308,7 +308,7 @@ PetalburgWoods_EventScript_22E2D6:: @ 822E2D6 end PetalburgWoods_EventScript_22E2EF:: @ 822E2EF - checkflag FLAG_0x12F + checkflag FLAG_HAS_MATCH_CALL goto_eq PetalburgWoods_EventScript_22E302 msgbox PetalburgWoods_Text_22E889, 4 release diff --git a/data/scripts/maps/Route101.inc b/data/scripts/maps/Route101.inc index 27c83f3d0..6536952c4 100644 --- a/data/scripts/maps/Route101.inc +++ b/data/scripts/maps/Route101.inc @@ -225,7 +225,7 @@ Route101_EventScript_1EBE16:: @ 81EBE16 setobjectxy 255, 6, 13 applymovement 255, Route101_Movement_2725A4 waitmovement 0 - special sub_80B1138 + special ChooseStarter waitstate applymovement 2, Route101_Movement_1EBE8D waitmovement 0 diff --git a/data/scripts/maps/Route102.inc b/data/scripts/maps/Route102.inc index 00c8c309f..99e9f610c 100644 --- a/data/scripts/maps/Route102.inc +++ b/data/scripts/maps/Route102.inc @@ -19,7 +19,7 @@ Route102_EventScript_1EC0FC:: @ 81EC0FC Route102_EventScript_1EC105:: @ 81EC105 trainerbattle 2, TRAINER_CALVIN_1, 0, Route102_Text_294513, Route102_Text_29457C, Route102_EventScript_1EC146 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route102_EventScript_1EC19C setvar VAR_0x8004, 318 @@ -33,7 +33,7 @@ Route102_EventScript_1EC105:: @ 81EC105 Route102_EventScript_1EC146:: @ 81EC146 special sub_80B4808 waitmovement 0 - checkflag FLAG_0x12F + checkflag FLAG_HAS_MATCH_CALL goto_eq Route102_EventScript_1EC157 release end @@ -48,7 +48,7 @@ Route102_EventScript_1EC157:: @ 81EC157 end Route102_EventScript_1EC170:: @ 81EC170 - checkflag FLAG_0x12F + checkflag FLAG_HAS_MATCH_CALL goto_eq Route102_EventScript_1EC183 msgbox Route102_Text_2945AC, 4 release diff --git a/data/scripts/maps/Route103.inc b/data/scripts/maps/Route103.inc index 4dd68204a..dcfa8cde3 100644 --- a/data/scripts/maps/Route103.inc +++ b/data/scripts/maps/Route103.inc @@ -209,7 +209,7 @@ Route103_EventScript_1EC5F4:: @ 81EC5F4 Route103_EventScript_1EC60B:: @ 81EC60B trainerbattle 6, TRAINER_AMY_AND_LIV_1, 0, Route103_Text_2949F9, Route103_Text_294A3D, Route103_Text_294AAE, Route103_EventScript_1EC63A - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route103_EventScript_1EC653 msgbox Route103_Text_294A52, 6 @@ -231,7 +231,7 @@ Route103_EventScript_1EC653:: @ 81EC653 Route103_EventScript_1EC66E:: @ 81EC66E trainerbattle 6, TRAINER_AMY_AND_LIV_1, 0, Route103_Text_294AFD, Route103_Text_294B22, Route103_Text_294BD0, Route103_EventScript_1EC69D - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route103_EventScript_1EC6B6 msgbox Route103_Text_294B40, 6 @@ -258,7 +258,7 @@ Route103_EventScript_1EC6D1:: @ 81EC6D1 Route103_EventScript_1EC6E8:: @ 81EC6E8 trainerbattle 2, TRAINER_MIGUEL_1, 0, Route103_Text_294EDF, Route103_Text_294F21, Route103_EventScript_1EC714 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route103_EventScript_1EC733 msgbox Route103_Text_294F42, 4 diff --git a/data/scripts/maps/Route104.inc b/data/scripts/maps/Route104.inc index 8c4138f11..df209ced9 100644 --- a/data/scripts/maps/Route104.inc +++ b/data/scripts/maps/Route104.inc @@ -882,7 +882,7 @@ Route104_EventScript_1ED376:: @ 81ED376 Route104_EventScript_1ED38D:: @ 81ED38D trainerbattle 2, TRAINER_HALEY_1, 0, Route104_Text_29563A, Route104_Text_29566F, Route104_EventScript_1ED3CE - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route104_EventScript_1ED424 setvar VAR_0x8004, 604 @@ -896,7 +896,7 @@ Route104_EventScript_1ED38D:: @ 81ED38D Route104_EventScript_1ED3CE:: @ 81ED3CE special sub_80B4808 waitmovement 0 - checkflag FLAG_0x12F + checkflag FLAG_HAS_MATCH_CALL goto_eq Route104_EventScript_1ED3DF release end @@ -911,7 +911,7 @@ Route104_EventScript_1ED3DF:: @ 81ED3DF end Route104_EventScript_1ED3F8:: @ 81ED3F8 - checkflag FLAG_0x12F + checkflag FLAG_HAS_MATCH_CALL goto_eq Route104_EventScript_1ED40B msgbox Route104_Text_295689, 4 release @@ -933,7 +933,7 @@ Route104_EventScript_1ED424:: @ 81ED424 Route104_EventScript_1ED43B:: @ 81ED43B trainerbattle 2, TRAINER_WINSTON_1, 0, Route104_Text_295870, Route104_Text_2958AD, Route104_EventScript_1ED47C - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route104_EventScript_1ED4D2 setvar VAR_0x8004, 136 @@ -947,7 +947,7 @@ Route104_EventScript_1ED43B:: @ 81ED43B Route104_EventScript_1ED47C:: @ 81ED47C special sub_80B4808 waitmovement 0 - checkflag FLAG_0x12F + checkflag FLAG_HAS_MATCH_CALL goto_eq Route104_EventScript_1ED48D release end @@ -962,7 +962,7 @@ Route104_EventScript_1ED48D:: @ 81ED48D end Route104_EventScript_1ED4A6:: @ 81ED4A6 - checkflag FLAG_0x12F + checkflag FLAG_HAS_MATCH_CALL goto_eq Route104_EventScript_1ED4B9 msgbox Route104_Text_2958C1, 4 release @@ -984,7 +984,7 @@ Route104_EventScript_1ED4D2:: @ 81ED4D2 Route104_EventScript_1ED4E9:: @ 81ED4E9 trainerbattle 2, TRAINER_CINDY_1, 0, Route104_Text_295A7E, Route104_Text_295ABB, Route104_EventScript_1ED52A - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route104_EventScript_1ED580 setvar VAR_0x8004, 114 @@ -998,7 +998,7 @@ Route104_EventScript_1ED4E9:: @ 81ED4E9 Route104_EventScript_1ED52A:: @ 81ED52A special sub_80B4808 waitmovement 0 - checkflag FLAG_0x12F + checkflag FLAG_HAS_MATCH_CALL goto_eq Route104_EventScript_1ED53B release end @@ -1013,7 +1013,7 @@ Route104_EventScript_1ED53B:: @ 81ED53B end Route104_EventScript_1ED554:: @ 81ED554 - checkflag FLAG_0x12F + checkflag FLAG_HAS_MATCH_CALL goto_eq Route104_EventScript_1ED567 msgbox Route104_Text_295AC3, 4 release diff --git a/data/scripts/maps/Route105.inc b/data/scripts/maps/Route105.inc index 72b35e7b0..b527fc7a8 100644 --- a/data/scripts/maps/Route105.inc +++ b/data/scripts/maps/Route105.inc @@ -63,7 +63,7 @@ Route105_EventScript_1EE2BD:: @ 81EE2BD Route105_EventScript_1EE2D4:: @ 81EE2D4 trainerbattle 2, TRAINER_ANDRES_1, 0, Route105_Text_2960A9, Route105_Text_2960DB, Route105_EventScript_1EE300 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route105_EventScript_1EE31F msgbox Route105_Text_2960FA, 4 diff --git a/data/scripts/maps/Route106.inc b/data/scripts/maps/Route106.inc index 3bb5e27e7..8b0df4336 100644 --- a/data/scripts/maps/Route106.inc +++ b/data/scripts/maps/Route106.inc @@ -17,7 +17,7 @@ Route106_EventScript_1EE4AA:: @ 81EE4AA Route106_EventScript_1EE4C1:: @ 81EE4C1 trainerbattle 2, TRAINER_ELLIOT_1, 0, Route106_Text_296327, Route106_Text_29635C, Route106_EventScript_1EE4ED - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route106_EventScript_1EE50C msgbox Route106_Text_29638C, 4 diff --git a/data/scripts/maps/Route107.inc b/data/scripts/maps/Route107.inc index 736eaa8ee..0f144a6bb 100644 --- a/data/scripts/maps/Route107.inc +++ b/data/scripts/maps/Route107.inc @@ -8,7 +8,7 @@ Route107_EventScript_1EE595:: @ 81EE595 Route107_EventScript_1EE5AC:: @ 81EE5AC trainerbattle 2, TRAINER_TONY_1, 0, Route107_Text_2967AD, Route107_Text_2967D8, Route107_EventScript_1EE5D8 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route107_EventScript_1EE5F7 msgbox Route107_Text_2967FF, 4 diff --git a/data/scripts/maps/Route108.inc b/data/scripts/maps/Route108.inc index d88f63ca1..5c416d7dd 100644 --- a/data/scripts/maps/Route108.inc +++ b/data/scripts/maps/Route108.inc @@ -28,7 +28,7 @@ Route108_EventScript_1EE6E6:: @ 81EE6E6 Route108_EventScript_1EE6FD:: @ 81EE6FD trainerbattle 2, TRAINER_CORY_1, 0, Route108_Text_296F5D, Route108_Text_296F93, Route108_EventScript_1EE729 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route108_EventScript_1EE748 msgbox Route108_Text_296FB0, 4 diff --git a/data/scripts/maps/Route109.inc b/data/scripts/maps/Route109.inc index 4cdd835ff..da36de73c 100644 --- a/data/scripts/maps/Route109.inc +++ b/data/scripts/maps/Route109.inc @@ -397,7 +397,7 @@ Route109_EventScript_1EEA82:: @ 81EEA82 Route109_EventScript_1EEA99:: @ 81EEA99 trainerbattle 2, TRAINER_RICKY_1, 0, Route109_Text_29733B, Route109_Text_297379, Route109_EventScript_1EEAC5 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route109_EventScript_1EEAE4 msgbox Route109_Text_297380, 4 @@ -422,7 +422,7 @@ Route109_EventScript_1EEAE4:: @ 81EEAE4 Route109_EventScript_1EEAFB:: @ 81EEAFB trainerbattle 2, TRAINER_LOLA_1, 0, Route109_Text_29749C, Route109_Text_2974CF, Route109_EventScript_1EEB27 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route109_EventScript_1EEB46 msgbox Route109_Text_2974D6, 4 diff --git a/data/scripts/maps/Route110.inc b/data/scripts/maps/Route110.inc index 0fa78b385..f07ca623e 100644 --- a/data/scripts/maps/Route110.inc +++ b/data/scripts/maps/Route110.inc @@ -176,7 +176,7 @@ Route110_EventScript_1EF409:: @ 81EF409 Route110_EventScript_1EF420:: @ 81EF420 trainerbattle 2, TRAINER_EDWIN_1, 0, Route110_Text_29815E, Route110_Text_29818F, Route110_EventScript_1EF44C - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route110_EventScript_1EF46B msgbox Route110_Text_2981B3, 4 @@ -216,7 +216,7 @@ Route110_EventScript_1EF4B0:: @ 81EF4B0 Route110_EventScript_1EF4C7:: @ 81EF4C7 trainerbattle 2, TRAINER_BENJAMIN_1, 0, Route110_Text_297C63, Route110_Text_297C8A, Route110_EventScript_1EF4F3 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route110_EventScript_1EF512 msgbox Route110_Text_297CB4, 4 @@ -246,7 +246,7 @@ Route110_EventScript_1EF529:: @ 81EF529 Route110_EventScript_1EF540:: @ 81EF540 trainerbattle 2, TRAINER_ABIGAIL_1, 0, Route110_Text_297DFA, Route110_Text_297E69, Route110_EventScript_1EF56C - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route110_EventScript_1EF58B msgbox Route110_Text_297E88, 4 @@ -271,7 +271,7 @@ Route110_EventScript_1EF58B:: @ 81EF58B Route110_EventScript_1EF5A2:: @ 81EF5A2 trainerbattle 2, TRAINER_ISABEL_1, 0, Route110_Text_298349, Route110_Text_298389, Route110_EventScript_1EF5CE - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route110_EventScript_1EF5ED msgbox Route110_Text_2983A2, 4 diff --git a/data/scripts/maps/Route111.inc b/data/scripts/maps/Route111.inc index c51b07b6c..18dc4c389 100644 --- a/data/scripts/maps/Route111.inc +++ b/data/scripts/maps/Route111.inc @@ -473,7 +473,7 @@ Route111_EventScript_1F1249:: @ 81F1249 Route111_EventScript_1F1260:: @ 81F1260 trainerbattle 2, TRAINER_DUSTY_1, 0, Route111_Text_298B08, Route111_Text_298B53, Route111_EventScript_1F128C - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route111_EventScript_1F12AB msgbox Route111_Text_298B9A, 4 @@ -513,7 +513,7 @@ Route111_EventScript_1F12F0:: @ 81F12F0 Route111_EventScript_1F1307:: @ 81F1307 trainerbattle 2, TRAINER_WILTON_1, 0, Route111_Text_298F79, Route111_Text_298FA9, Route111_EventScript_1F1333 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route111_EventScript_1F1352 msgbox Route111_Text_298FD4, 4 @@ -538,7 +538,7 @@ Route111_EventScript_1F1352:: @ 81F1352 Route111_EventScript_1F1369:: @ 81F1369 trainerbattle 2, TRAINER_BROOKE_1, 0, Route111_Text_299143, Route111_Text_299193, Route111_EventScript_1F1395 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route111_EventScript_1F13B4 msgbox Route111_Text_2991C2, 4 diff --git a/data/scripts/maps/Route112.inc b/data/scripts/maps/Route112.inc index 066a7a347..6a9f506f6 100644 --- a/data/scripts/maps/Route112.inc +++ b/data/scripts/maps/Route112.inc @@ -67,7 +67,7 @@ Route112_EventScript_1F1E6A:: @ 81F1E6A Route112_EventScript_1F1E81:: @ 81F1E81 trainerbattle 2, TRAINER_TRENT_1, 0, Route112_Text_299815, Route112_Text_29987C, Route112_EventScript_1F1EAD - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route112_EventScript_1F1ECC msgbox Route112_Text_299896, 4 diff --git a/data/scripts/maps/Route113.inc b/data/scripts/maps/Route113.inc index 7ee63e492..30bf10068 100644 --- a/data/scripts/maps/Route113.inc +++ b/data/scripts/maps/Route113.inc @@ -60,7 +60,7 @@ Route113_EventScript_1F21D7:: @ 81F21D7 Route113_EventScript_1F21EE:: @ 81F21EE trainerbattle 2, TRAINER_MADELINE_1, 0, Route113_Text_299EA6, Route113_Text_299EF9, Route113_EventScript_1F221A - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route113_EventScript_1F2239 msgbox Route113_Text_299F15, 4 @@ -85,7 +85,7 @@ Route113_EventScript_1F2239:: @ 81F2239 Route113_EventScript_1F2250:: @ 81F2250 trainerbattle 2, TRAINER_LAO_1, 0, Route113_Text_29A015, Route113_Text_29A04C, Route113_EventScript_1F227C - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route113_EventScript_1F229B msgbox Route113_Text_29A067, 4 diff --git a/data/scripts/maps/Route114.inc b/data/scripts/maps/Route114.inc index cca7be5af..f1aaf24d2 100644 --- a/data/scripts/maps/Route114.inc +++ b/data/scripts/maps/Route114.inc @@ -110,7 +110,7 @@ Route114_EventScript_1F2685:: @ 81F2685 Route114_EventScript_1F269C:: @ 81F269C trainerbattle 2, TRAINER_STEVE_1, 0, Route114_Text_29A943, Route114_Text_29A973, Route114_EventScript_1F26C8 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route114_EventScript_1F26E7 msgbox Route114_Text_29A981, 4 @@ -135,7 +135,7 @@ Route114_EventScript_1F26E7:: @ 81F26E7 Route114_EventScript_1F26FE:: @ 81F26FE trainerbattle 2, TRAINER_BERNIE_1, 0, Route114_Text_29AADB, Route114_Text_29AB1A, Route114_EventScript_1F272A - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route114_EventScript_1F2749 msgbox Route114_Text_29AB36, 4 diff --git a/data/scripts/maps/Route115.inc b/data/scripts/maps/Route115.inc index 8ea531f9d..8adf2fa04 100644 --- a/data/scripts/maps/Route115.inc +++ b/data/scripts/maps/Route115.inc @@ -38,7 +38,7 @@ Route115_EventScript_1F2985:: @ 81F2985 Route115_EventScript_1F298E:: @ 81F298E trainerbattle 2, TRAINER_TIMOTHY_1, 0, Route115_Text_29B1FA, Route115_Text_29B230, Route115_EventScript_1F29BA - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route115_EventScript_1F29D9 msgbox Route115_Text_29B258, 4 @@ -68,7 +68,7 @@ Route115_EventScript_1F29F0:: @ 81F29F0 Route115_EventScript_1F2A07:: @ 81F2A07 trainerbattle 2, TRAINER_NOB_1, 0, Route115_Text_29B449, Route115_Text_29B480, Route115_EventScript_1F2A33 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route115_EventScript_1F2A52 msgbox Route115_Text_29B49D, 4 @@ -93,7 +93,7 @@ Route115_EventScript_1F2A52:: @ 81F2A52 Route115_EventScript_1F2A69:: @ 81F2A69 trainerbattle 2, TRAINER_CYNDY_1, 0, Route115_Text_29B5EF, Route115_Text_29B62D, Route115_EventScript_1F2A95 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route115_EventScript_1F2AB4 msgbox Route115_Text_29B647, 4 diff --git a/data/scripts/maps/Route116.inc b/data/scripts/maps/Route116.inc index 359f21375..4e6a6be80 100644 --- a/data/scripts/maps/Route116.inc +++ b/data/scripts/maps/Route116.inc @@ -259,7 +259,7 @@ Route116_EventScript_1F2EA0:: @ 81F2EA0 Route116_EventScript_1F2EB7:: @ 81F2EB7 trainerbattle 2, TRAINER_JERRY_1, 0, Route116_Text_29BD0C, Route116_Text_29BD66, Route116_EventScript_1F2EF8 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route116_EventScript_1F2F4E setvar VAR_0x8004, 273 @@ -271,7 +271,7 @@ Route116_EventScript_1F2EB7:: @ 81F2EB7 end Route116_EventScript_1F2EF8:: @ 81F2EF8 - checkflag FLAG_0x12F + checkflag FLAG_HAS_MATCH_CALL goto_eq Route116_EventScript_1F2F03 release end @@ -288,7 +288,7 @@ Route116_EventScript_1F2F03:: @ 81F2F03 end Route116_EventScript_1F2F22:: @ 81F2F22 - checkflag FLAG_0x12F + checkflag FLAG_HAS_MATCH_CALL goto_eq Route116_EventScript_1F2F35 msgbox Route116_Text_29BD92, 4 release @@ -320,7 +320,7 @@ Route116_EventScript_1F2F7C:: @ 81F2F7C Route116_EventScript_1F2F93:: @ 81F2F93 trainerbattle 2, TRAINER_KAREN_1, 0, Route116_Text_29BFC5, Route116_Text_29BFFA, Route116_EventScript_1F2FD4 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route116_EventScript_1F302A setvar VAR_0x8004, 280 @@ -332,7 +332,7 @@ Route116_EventScript_1F2F93:: @ 81F2F93 end Route116_EventScript_1F2FD4:: @ 81F2FD4 - checkflag FLAG_0x12F + checkflag FLAG_HAS_MATCH_CALL goto_eq Route116_EventScript_1F2FDF release end @@ -349,7 +349,7 @@ Route116_EventScript_1F2FDF:: @ 81F2FDF end Route116_EventScript_1F2FFE:: @ 81F2FFE - checkflag FLAG_0x12F + checkflag FLAG_HAS_MATCH_CALL goto_eq Route116_EventScript_1F3011 msgbox Route116_Text_29C010, 4 release diff --git a/data/scripts/maps/Route117.inc b/data/scripts/maps/Route117.inc index 01463516b..5140596d8 100644 --- a/data/scripts/maps/Route117.inc +++ b/data/scripts/maps/Route117.inc @@ -40,7 +40,7 @@ Route117_EventScript_1F39C7:: @ 81F39C7 Route117_EventScript_1F39D0:: @ 81F39D0 trainerbattle 2, TRAINER_ISAAC_1, 0, Route117_Text_29C43F, Route117_Text_29C47A, Route117_EventScript_1F39FC - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route117_EventScript_1F3A1B msgbox Route117_Text_29C498, 4 @@ -65,7 +65,7 @@ Route117_EventScript_1F3A1B:: @ 81F3A1B Route117_EventScript_1F3A32:: @ 81F3A32 trainerbattle 2, TRAINER_LYDIA_1, 0, Route117_Text_29C612, Route117_Text_29C659, Route117_EventScript_1F3A5E - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route117_EventScript_1F3A7D msgbox Route117_Text_29C679, 4 @@ -90,7 +90,7 @@ Route117_EventScript_1F3A7D:: @ 81F3A7D Route117_EventScript_1F3A94:: @ 81F3A94 trainerbattle 2, TRAINER_DYLAN_1, 0, Route117_Text_29C7A5, Route117_Text_29C7EB, Route117_EventScript_1F3AC0 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route117_EventScript_1F3ADF msgbox Route117_Text_29C800, 4 @@ -115,7 +115,7 @@ Route117_EventScript_1F3ADF:: @ 81F3ADF Route117_EventScript_1F3AF6:: @ 81F3AF6 trainerbattle 2, TRAINER_MARIA_1, 0, Route117_Text_29C955, Route117_Text_29C9A6, Route117_EventScript_1F3B22 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route117_EventScript_1F3B41 msgbox Route117_Text_29C9D0, 4 @@ -145,7 +145,7 @@ Route117_EventScript_1F3B58:: @ 81F3B58 Route117_EventScript_1F3B6F:: @ 81F3B6F trainerbattle 6, TRAINER_ANNA_AND_MEG_1, 0, Route117_Text_29CC4A, Route117_Text_29CC8E, Route117_Text_29CD61, Route117_EventScript_1F3B9F - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route117_EventScript_1F3BB8 msgbox Route117_Text_29CCCB, 4 @@ -168,7 +168,7 @@ Route117_EventScript_1F3BB8:: @ 81F3BB8 Route117_EventScript_1F3BD3:: @ 81F3BD3 trainerbattle 6, TRAINER_ANNA_AND_MEG_1, 0, Route117_Text_29CD9D, Route117_Text_29CDE9, Route117_Text_29CE52, Route117_EventScript_1F3C03 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route117_EventScript_1F3C1C msgbox Route117_Text_29CE17, 4 diff --git a/data/scripts/maps/Route118.inc b/data/scripts/maps/Route118.inc index 42c3d6d57..5d46224a9 100644 --- a/data/scripts/maps/Route118.inc +++ b/data/scripts/maps/Route118.inc @@ -188,7 +188,7 @@ Route118_Movement_1F3F7E: @ 81F3F7E Route118_EventScript_1F3F87:: @ 81F3F87 trainerbattle 2, TRAINER_ROSE_1, 0, Route118_Text_29D290, Route118_Text_29D2D8, Route118_EventScript_1F3FB3 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route118_EventScript_1F3FD2 msgbox Route118_Text_29D2FA, 4 @@ -223,7 +223,7 @@ Route118_EventScript_1F4000:: @ 81F4000 Route118_EventScript_1F4017:: @ 81F4017 trainerbattle 2, TRAINER_DALTON_1, 0, Route118_Text_29D6AF, Route118_Text_29D6CD, Route118_EventScript_1F4043 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route118_EventScript_1F4062 msgbox Route118_Text_29D6D8, 4 diff --git a/data/scripts/maps/Route119.inc b/data/scripts/maps/Route119.inc index 4436005ba..f9bbadb85 100644 --- a/data/scripts/maps/Route119.inc +++ b/data/scripts/maps/Route119.inc @@ -368,7 +368,7 @@ Route119_EventScript_1F47F9:: @ 81F47F9 Route119_EventScript_1F4810:: @ 81F4810 trainerbattle 2, TRAINER_JACKSON_1, 0, Route119_Text_29DC4C, Route119_Text_29DC9F, Route119_EventScript_1F483C - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route119_EventScript_1F485B msgbox Route119_Text_29DCC6, 4 @@ -393,7 +393,7 @@ Route119_EventScript_1F485B:: @ 81F485B Route119_EventScript_1F4872:: @ 81F4872 trainerbattle 2, TRAINER_CATHERINE_1, 0, Route119_Text_29DE0F, Route119_Text_29DE5D, Route119_EventScript_1F489E - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route119_EventScript_1F48BD msgbox Route119_Text_29DE88, 4 diff --git a/data/scripts/maps/Route120.inc b/data/scripts/maps/Route120.inc index aaffe0f12..9651ab8ab 100644 --- a/data/scripts/maps/Route120.inc +++ b/data/scripts/maps/Route120.inc @@ -297,7 +297,7 @@ Route120_EventScript_1F57D7:: @ 81F57D7 Route120_EventScript_1F57EE:: @ 81F57EE trainerbattle 2, TRAINER_ROBERT_1, 0, Route120_Text_29E6E3, Route120_Text_29E70A, Route120_EventScript_1F581A - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route120_EventScript_1F5839 msgbox Route120_Text_29E726, 4 @@ -332,7 +332,7 @@ Route120_EventScript_1F5867:: @ 81F5867 Route120_EventScript_1F587E:: @ 81F587E trainerbattle 2, TRAINER_JEFFREY_1, 0, Route120_Text_29E9D7, Route120_Text_29E9FF, Route120_EventScript_1F58AA - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route120_EventScript_1F58C9 msgbox Route120_Text_29EA08, 4 diff --git a/data/scripts/maps/Route121.inc b/data/scripts/maps/Route121.inc index 0d1f8863e..59623b4e6 100644 --- a/data/scripts/maps/Route121.inc +++ b/data/scripts/maps/Route121.inc @@ -72,7 +72,7 @@ Route121_EventScript_1F5E74:: @ 81F5E74 Route121_EventScript_1F5E8B:: @ 81F5E8B trainerbattle 2, TRAINER_WALTER_1, 0, Route121_Text_29F199, Route121_Text_29F20D, Route121_EventScript_1F5EB7 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route121_EventScript_1F5ED6 msgbox Route121_Text_29F21E, 4 @@ -112,7 +112,7 @@ Route121_EventScript_1F5F1F:: @ 81F5F1F Route121_EventScript_1F5F3A:: @ 81F5F3A trainerbattle 2, TRAINER_JESSICA_1, 0, Route121_Text_29F612, Route121_Text_29F641, Route121_EventScript_1F5F66 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route121_EventScript_1F5F85 msgbox Route121_Text_29F66F, 4 @@ -157,7 +157,7 @@ Route121_EventScript_1F5FE1:: @ 81F5FE1 Route121_EventScript_1F5FF8:: @ 81F5FF8 trainerbattle 2, TRAINER_CRISTIN_1, 0, Route121_Text_29F770, Route121_Text_29F7C1, Route121_EventScript_1F6024 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route121_EventScript_1F6043 msgbox Route121_Text_29F7D4, 4 diff --git a/data/scripts/maps/Route123.inc b/data/scripts/maps/Route123.inc index 8eb397fd4..ee659a496 100644 --- a/data/scripts/maps/Route123.inc +++ b/data/scripts/maps/Route123.inc @@ -62,7 +62,7 @@ Route123_EventScript_1F61F3:: @ 81F61F3 Route123_EventScript_1F620A:: @ 81F620A trainerbattle 2, TRAINER_CAMERON_1, 0, Route123_Text_29FDBA, Route123_Text_29FE1E, Route123_EventScript_1F6236 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route123_EventScript_1F6255 msgbox Route123_Text_29FE2A, 4 @@ -87,7 +87,7 @@ Route123_EventScript_1F6255:: @ 81F6255 Route123_EventScript_1F626C:: @ 81F626C trainerbattle 2, TRAINER_JACKI_1, 0, Route123_Text_29FF61, Route123_Text_29FFD8, Route123_EventScript_1F6298 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route123_EventScript_1F62B7 msgbox Route123_Text_29FFE5, 4 @@ -162,7 +162,7 @@ Route123_EventScript_1F63A5:: @ 81F63A5 Route123_EventScript_1F63BC:: @ 81F63BC trainerbattle 2, TRAINER_FERNANDO_1, 0, Route123_Text_2A0323, Route123_Text_2A035C, Route123_EventScript_1F63E8 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route123_EventScript_1F6407 msgbox Route123_Text_2A0389, 4 diff --git a/data/scripts/maps/Route124.inc b/data/scripts/maps/Route124.inc index 2a0298650..01687eba8 100644 --- a/data/scripts/maps/Route124.inc +++ b/data/scripts/maps/Route124.inc @@ -23,7 +23,7 @@ Route124_EventScript_1F659C:: @ 81F659C Route124_EventScript_1F65B3:: @ 81F65B3 trainerbattle 2, TRAINER_JENNY_1, 0, Route124_Text_2A0B37, Route124_Text_2A0B7C, Route124_EventScript_1F65DF - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route124_EventScript_1F65FE msgbox Route124_Text_2A0B9A, 4 @@ -58,7 +58,7 @@ Route124_EventScript_1F662C:: @ 81F662C Route124_EventScript_1F6643:: @ 81F6643 trainerbattle 6, TRAINER_LILA_AND_ROY_1, 0, Route124_Text_2A0E87, Route124_Text_2A0EFE, Route124_Text_2A0F8C, Route124_EventScript_1F6673 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route124_EventScript_1F668C msgbox Route124_Text_2A0F3A, 4 @@ -81,7 +81,7 @@ Route124_EventScript_1F668C:: @ 81F668C Route124_EventScript_1F66A7:: @ 81F66A7 trainerbattle 6, TRAINER_LILA_AND_ROY_1, 0, Route124_Text_2A0FD1, Route124_Text_2A1012, Route124_Text_2A10E5, Route124_EventScript_1F66D7 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route124_EventScript_1F66F0 msgbox Route124_Text_2A103E, 4 diff --git a/data/scripts/maps/Route125.inc b/data/scripts/maps/Route125.inc index 953bf52b2..b93e7f016 100644 --- a/data/scripts/maps/Route125.inc +++ b/data/scripts/maps/Route125.inc @@ -48,7 +48,7 @@ Route125_EventScript_1F67E9:: @ 81F67E9 Route125_EventScript_1F6800:: @ 81F6800 trainerbattle 2, TRAINER_ERNEST_1, 0, Route125_Text_2A16FC, Route125_Text_2A173A, Route125_EventScript_1F682C - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route125_EventScript_1F684B msgbox Route125_Text_2A1755, 4 diff --git a/data/scripts/maps/Route126.inc b/data/scripts/maps/Route126.inc index 4678fe39d..e6f8848b7 100644 --- a/data/scripts/maps/Route126.inc +++ b/data/scripts/maps/Route126.inc @@ -44,7 +44,7 @@ Route126_EventScript_1F6960:: @ 81F6960 Route126_EventScript_1F6977:: @ 81F6977 trainerbattle 2, TRAINER_PABLO_1, 0, Route126_Text_2A1EA5, Route126_Text_2A1EE3, Route126_EventScript_1F69A3 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route126_EventScript_1F69C2 msgbox Route126_Text_2A1F10, 4 diff --git a/data/scripts/maps/Route127.inc b/data/scripts/maps/Route127.inc index 9851df043..68992425e 100644 --- a/data/scripts/maps/Route127.inc +++ b/data/scripts/maps/Route127.inc @@ -63,7 +63,7 @@ Route127_EventScript_1F6ABF:: @ 81F6ABF Route127_EventScript_1F6AD6:: @ 81F6AD6 trainerbattle 2, TRAINER_KOJI_1, 0, Route127_Text_2A264D, Route127_Text_2A2685, Route127_EventScript_1F6B02 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route127_EventScript_1F6B21 msgbox Route127_Text_2A26AC, 4 diff --git a/data/scripts/maps/Route128.inc b/data/scripts/maps/Route128.inc index 1ba1b3448..21824eb41 100644 --- a/data/scripts/maps/Route128.inc +++ b/data/scripts/maps/Route128.inc @@ -177,7 +177,7 @@ Route128_Movement_1F6CBB: @ 81F6CBB Route128_EventScript_1F6CBE:: @ 81F6CBE trainerbattle 2, TRAINER_ISAIAH_1, 0, Route128_Text_2A287F, Route128_Text_2A28AB, Route128_EventScript_1F6CEA - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route128_EventScript_1F6D09 msgbox Route128_Text_2A28D7, 4 @@ -202,7 +202,7 @@ Route128_EventScript_1F6D09:: @ 81F6D09 Route128_EventScript_1F6D20:: @ 81F6D20 trainerbattle 2, TRAINER_KATELYN_1, 0, Route128_Text_2A2A1F, Route128_Text_2A2A94, Route128_EventScript_1F6D4C - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq Route128_EventScript_1F6D6B msgbox Route128_Text_2A2AB7, 4 diff --git a/data/scripts/maps/RustboroCity.inc b/data/scripts/maps/RustboroCity.inc index 31182439b..14f155cee 100644 --- a/data/scripts/maps/RustboroCity.inc +++ b/data/scripts/maps/RustboroCity.inc @@ -52,7 +52,7 @@ RustboroCity_EventScript_1E0715:: @ 81E0715 waitmovement 0 msgbox RustboroCity_Text_1E22A5, 4 closemessage - setflag FLAG_0x12F + setflag FLAG_HAS_MATCH_CALL applymovement 15, RustboroCity_Movement_2725A4 waitmovement 0 playse SE_TK_KASYA diff --git a/data/scripts/maps/RustboroCity_Gym.inc b/data/scripts/maps/RustboroCity_Gym.inc index dec6a8e73..dde0cc6a6 100644 --- a/data/scripts/maps/RustboroCity_Gym.inc +++ b/data/scripts/maps/RustboroCity_Gym.inc @@ -3,7 +3,7 @@ RustboroCity_Gym_MapScripts:: @ 8212F30 RustboroCity_Gym_EventScript_212F31:: @ 8212F31 trainerbattle 1, TRAINER_ROXANNE_1, 0, RustboroCity_Gym_Text_21362A, RustboroCity_Gym_Text_21370B, RustboroCity_Gym_EventScript_212F66 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq RustboroCity_Gym_EventScript_212FC8 checkflag FLAG_0x0A5 diff --git a/data/scripts/maps/SkyPillar_Top.inc b/data/scripts/maps/SkyPillar_Top.inc index d5a4e477c..7d7e575fc 100644 --- a/data/scripts/maps/SkyPillar_Top.inc +++ b/data/scripts/maps/SkyPillar_Top.inc @@ -53,7 +53,7 @@ SkyPillar_Top_EventScript_239722:: @ 8239722 waitmoncry setwildbattle SPECIES_RAYQUAZA, 70, ITEM_NONE setflag FLAG_SYS_CTRL_OBJ_DELETE - special sub_80B0934 + special BattleSetup_StartLegendaryBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE specialvar VAR_RESULT, sub_8138B80 diff --git a/data/scripts/maps/SootopolisCity_Gym_1F.inc b/data/scripts/maps/SootopolisCity_Gym_1F.inc index e28d8d13f..8b6a5754e 100644 --- a/data/scripts/maps/SootopolisCity_Gym_1F.inc +++ b/data/scripts/maps/SootopolisCity_Gym_1F.inc @@ -87,7 +87,7 @@ SootopolisCity_Gym_1F_Movement_224F42: @ 8224F42 SootopolisCity_Gym_1F_EventScript_224F44:: @ 8224F44 trainerbattle 1, TRAINER_JUAN_1, 0, SootopolisCity_Gym_1F_Text_225268, SootopolisCity_Gym_1F_Text_225432, SootopolisCity_Gym_1F_EventScript_224F82 - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq SootopolisCity_Gym_1F_EventScript_225025 checkflag FLAG_0x0AC diff --git a/data/scripts/maps/SouthernIsland_Interior.inc b/data/scripts/maps/SouthernIsland_Interior.inc index 1853c08b8..aa19dc5fb 100644 --- a/data/scripts/maps/SouthernIsland_Interior.inc +++ b/data/scripts/maps/SouthernIsland_Interior.inc @@ -87,7 +87,7 @@ SouthernIsland_Interior_EventScript_242AD0:: @ 8242AD0 compare_var_to_value VAR_0x40D5, 0 call_if 5, SouthernIsland_Interior_EventScript_242BB7 setflag FLAG_SYS_CTRL_OBJ_DELETE - special sub_80B08EC + special BattleSetup_StartLatiBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE specialvar VAR_RESULT, sub_8138B80 diff --git a/data/scripts/maps/TerraCave_End.inc b/data/scripts/maps/TerraCave_End.inc index a39856dda..f3168036f 100644 --- a/data/scripts/maps/TerraCave_End.inc +++ b/data/scripts/maps/TerraCave_End.inc @@ -38,7 +38,7 @@ TerraCave_End_EventScript_23B0EC:: @ 823B0EC setvar VAR_LAST_TALKED, 1 setwildbattle SPECIES_GROUDON, 70, ITEM_NONE setflag FLAG_SYS_CTRL_OBJ_DELETE - special sub_80B0934 + special BattleSetup_StartLegendaryBattle waitstate clearflag FLAG_SYS_CTRL_OBJ_DELETE setvar VAR_0x4001, 0 diff --git a/data/scripts/maps/VictoryRoad_1F.inc b/data/scripts/maps/VictoryRoad_1F.inc index 8bc22aa3d..94ecc0946 100644 --- a/data/scripts/maps/VictoryRoad_1F.inc +++ b/data/scripts/maps/VictoryRoad_1F.inc @@ -83,7 +83,7 @@ VictoryRoad_1F_EventScript_235E2C:: @ 8235E2C VictoryRoad_1F_EventScript_235E35:: @ 8235E35 trainerbattle 0, TRAINER_WALLY_3, 0, VictoryRoad_1F_Text_236073, VictoryRoad_1F_Text_2360DA - specialvar VAR_RESULT, sub_80B226C + specialvar VAR_RESULT, ShouldTryRematchBattle compare_var_to_value VAR_RESULT, 1 goto_eq VictoryRoad_1F_EventScript_235E5C msgbox VictoryRoad_1F_Text_2360FE, 6 diff --git a/data/scripts/players_house.inc b/data/scripts/players_house.inc index 85952d9f0..184a00a0d 100644 --- a/data/scripts/players_house.inc +++ b/data/scripts/players_house.inc @@ -114,7 +114,7 @@ LittlerootTown_BrendansHouse_2F_EventScript_29283F:: @ 829283F LittlerootTown_BrendansHouse_2F_EventScript_292849:: @ 8292849 fadescreen 1 - special Special_StartWallClock + special StartWallClock waitstate return @@ -318,7 +318,7 @@ LittlerootTown_MaysHouse_1F_EventScript_2929C5:: @ 82929C5 goto_eq LittlerootTown_BrendansHouse_1F_EventScript_292A0F compare_var_to_value VAR_0x408C, 4 goto_eq LittlerootTown_BrendansHouse_1F_EventScript_292A0F - checkflag FLAG_0x12F + checkflag FLAG_HAS_MATCH_CALL goto_eq LittlerootTown_BrendansHouse_1F_EventScript_292A19 checkflag FLAG_0x052 goto_eq LittlerootTown_BrendansHouse_1F_EventScript_292A86 diff --git a/data/scripts/pokeblocks.inc b/data/scripts/pokeblocks.inc index e77e4d789..a93c44615 100644 --- a/data/scripts/pokeblocks.inc +++ b/data/scripts/pokeblocks.inc @@ -290,7 +290,7 @@ LilycoveCity_ContestLobby_EventScript_293CEE:: @ 8293CEE checkitem ITEM_POKEBLOCK_CASE, 1 compare_var_to_value VAR_RESULT, 0 goto_eq LilycoveCity_ContestLobby_EventScript_293D43 - specialvar VAR_RESULT, sub_8136EF4 + specialvar VAR_RESULT, GetFirstFreePokeblockSlot compare_var_to_value VAR_RESULT, 65535 goto_eq LilycoveCity_ContestLobby_EventScript_293D39 specialvar VAR_RESULT, PlayerHasBerries @@ -303,7 +303,7 @@ LilycoveCity_ContestLobby_EventScript_293CEE:: @ 8293CEE LilycoveCity_ContestLobby_EventScript_293D2C:: @ 8293D2C copyvar VAR_0x8004, VAR_0x8009 fadescreen 1 - special sub_807FA80 + special DoBerryBlending waitstate releaseall end @@ -365,7 +365,7 @@ LilycoveCity_ContestLobby_EventScript_293DC6:: @ 8293DC6 compare_var_to_value VAR_RESULT, 0 goto_eq LilycoveCity_ContestLobby_EventScript_293E14 msgbox LilycoveCity_ContestLobby_Text_293237, 4 - specialvar VAR_RESULT, sub_8136EF4 + specialvar VAR_RESULT, GetFirstFreePokeblockSlot compare_var_to_value VAR_RESULT, 65535 goto_if 5, LilycoveCity_ContestLobby_EventScript_293D91 compare_var_to_value VAR_RESULT, 65535 @@ -431,7 +431,7 @@ LilycoveCity_ContestLobby_EventScript_293EA3:: @ 8293EA3 compare_var_to_value VAR_RESULT, 0 goto_eq LilycoveCity_ContestLobby_EventScript_293EF1 msgbox LilycoveCity_ContestLobby_Text_29354E, 4 - specialvar VAR_RESULT, sub_8136EF4 + specialvar VAR_RESULT, GetFirstFreePokeblockSlot compare_var_to_value VAR_RESULT, 65535 goto_if 5, LilycoveCity_ContestLobby_EventScript_293E6E compare_var_to_value VAR_RESULT, 65535 @@ -470,7 +470,7 @@ LilycoveCity_ContestLobby_EventScript_293F28:: @ 8293F28 specialvar VAR_RESULT, PlayerHasBerries compare_var_to_value VAR_RESULT, 0 goto_eq LilycoveCity_ContestLobby_EventScript_293F1E - specialvar VAR_RESULT, sub_8136EF4 + specialvar VAR_RESULT, GetFirstFreePokeblockSlot compare_var_to_value VAR_RESULT, 65535 goto_if 5, LilycoveCity_ContestLobby_EventScript_293F64 compare_var_to_value VAR_RESULT, 65535 @@ -536,7 +536,7 @@ LilycoveCity_ContestLobby_EventScript_293FF8:: @ 8293FF8 checkitem ITEM_POKEBLOCK_CASE, 1 compare_var_to_value VAR_RESULT, 0 goto_eq LilycoveCity_ContestLobby_EventScript_294028 - specialvar VAR_RESULT, sub_8136EF4 + specialvar VAR_RESULT, GetFirstFreePokeblockSlot compare_var_to_value VAR_RESULT, 65535 goto_eq LilycoveCity_ContestLobby_EventScript_294028 dodailyevents @@ -570,7 +570,7 @@ LilycoveCity_ContestLobby_EventScript_294055:: @ 8294055 checkitem ITEM_POKEBLOCK_CASE, 1 compare_var_to_value VAR_RESULT, 0 goto_eq LilycoveCity_ContestLobby_EventScript_29416C - specialvar VAR_RESULT, sub_8136EF4 + specialvar VAR_RESULT, GetFirstFreePokeblockSlot compare_var_to_value VAR_RESULT, 65535 goto_if 5, LilycoveCity_ContestLobby_EventScript_294092 compare_var_to_value VAR_RESULT, 65535 @@ -635,7 +635,7 @@ LilycoveCity_ContestLobby_EventScript_294147:: @ 8294147 removeobject 239 removeobject 238 removeobject 237 - special sub_807FA80 + special DoBerryBlending waitstate releaseall end diff --git a/data/specials.inc b/data/specials.inc index da076f6ff..d159df31f 100644 --- a/data/specials.inc +++ b/data/specials.inc @@ -61,17 +61,17 @@ gSpecials:: @ 81DBA64 def_special FieldObjectInteractionWaterBerryTree def_special PlayerHasBerries def_special IsEnigmaBerryValid - def_special sub_80B170C - def_special sub_80B1A14 - def_special special_trainer_unable_to_battle - def_special check_trainer_flag + def_special GetTrainerBattleMode + def_special ShowTrainerIntroSpeech + def_special ShowTrainerCantBattleSpeech + def_special GetTrainerFlag def_special sub_80B45AC def_special SetUpTrainerEncounterMusic - def_special sub_80B226C - def_special sub_80B22A0 - def_special sub_80B19EC + def_special ShouldTryRematchBattle + def_special IsTrainerReadyForRematch + def_special BattleSetup_StartRematchBattle def_special sub_80C7578 - def_special sub_80F92F8 + def_special HasEnoughMonsForDoubleBattle def_special TurnOffTVScreen def_special DoTVShow def_special DoPokeNews @@ -164,14 +164,14 @@ gSpecials:: @ 81DBA64 def_special sub_8138B8C def_special sub_814FC9C def_special sub_8085784 - def_special Special_StartWallClock + def_special StartWallClock def_special Special_ViewWallClock - def_special sub_80B1138 - def_special sub_80B086C + def_special ChooseStarter + def_special StartWallyTutorialBattle def_special ChangePokemonNickname def_special sub_81B94B0 - def_special sub_8136EF4 - def_special sub_807FA80 + def_special GetFirstFreePokeblockSlot + def_special DoBerryBlending def_special sub_8142BC8 def_special sub_813BD60 def_special sub_813BCA8 @@ -320,9 +320,9 @@ gSpecials:: @ 81DBA64 def_special sub_8139540 def_special sub_809E1C8 def_special sub_8139560 - def_special sub_80B0A18 - def_special sub_80B0934 - def_special sub_80B0A74 + def_special StartGroudonKyogreBattle + def_special BattleSetup_StartLegendaryBattle + def_special StartRegiBattle def_special sub_80B16D8 def_special DoSealedChamberShakingEffect2 def_special sub_8139634 @@ -332,7 +332,7 @@ gSpecials:: @ 81DBA64 def_special sub_80F8D28 def_special sub_80F8EB8 def_special sub_8162794 - def_special sub_80B08EC + def_special BattleSetup_StartLatiBattle def_special sub_8139648 def_special sub_8139668 def_special sub_80F8FA0 @@ -415,7 +415,7 @@ gSpecials:: @ 81DBA64 def_special PutLilycoveContestLadyShowOnTheAir def_special sub_813B880 def_special sub_81A085C - def_special CheckIfMultipleTrainersWantBattle + def_special ShouldTryGetTrainerScript def_special AddMapNamePopUpWindowTask def_special AddMapNamePopUpWindowTask def_special sub_81BE994 diff --git a/data/starter_choose.s b/data/starter_choose.s index ae81aae20..a951a8987 100644 --- a/data/starter_choose.s +++ b/data/starter_choose.s @@ -63,5 +63,4 @@ sSpriteTemplate_PokeBall:: @ 85B1F28 .incbin "baserom.gba", 0x5b1f28, 0x18 gUnknown_085B1F40:: @ 85B1F40 - .incbin "baserom.gba", 0x5b1f40, 0x294 - + .incbin "baserom.gba", 0x5b1f40, 0x18 diff --git a/data/text/contest_strings.inc b/data/text/contest_strings.inc index 46ce8a8c4..92b04c95c 100644 --- a/data/text/contest_strings.inc +++ b/data/text/contest_strings.inc @@ -202,476 +202,516 @@ gContestMoveTypeSmartText:: @ 827D4FB gContestMoveTypeToughText:: @ 827D501 .string "TOUGH$" -gUnknown_0827D507:: @ 827D507 +gText_0827D507:: @ 827D507 .string "Appeal no. {STR_VAR_1}!\n" .string "Which move will be played?$" -gUnknown_0827D531:: @ 827D531 +gText_0827D531:: @ 827D531 .string "Appeal no. {STR_VAR_1}!\n" .string "But it can’t participate!$" -gUnknown_0827D55A:: @ 827D55A +gText_0827D55A:: @ 827D55A .string "{STR_VAR_1} appealed with\n" .string "{STR_VAR_2}!$" -gUnknown_0827D56F:: @ 827D56F +gText_0827D56F:: @ 827D56F .string "{STR_VAR_1} was watching\n" .string "the others.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827D597:: @ 827D597 +gText_0827D597:: @ 827D597 .string "We’re all out of\n" .string "Appeal Time!{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827D5C1:: @ 827D5C1 +gText_0827D5C1:: @ 827D5C1 .string "But the appeal was\n" .string "jammed.$" -gUnknown_0827D5DC:: @ 827D5DC +gText_0827D5DC:: @ 827D5DC .string "It followed another\n" .string "POKéMON’s lead.$" -gUnknown_0827D600:: @ 827D600 +gText_0827D600:: @ 827D600 .string "But it messed up.$" -gUnknown_0827D612:: @ 827D612 +gText_0827D612:: @ 827D612 .string "It went better than\n" .string "usual.$" -gUnknown_0827D62D:: @ 827D62D +gText_0827D62D:: @ 827D62D .string "The JUDGE looked away\n" .string "for some reason.$" -gUnknown_0827D654:: @ 827D654 +gText_0827D654:: @ 827D654 .string "It worked hard to build on\n" .string "past mistakes.$" -gUnknown_0827D67E:: @ 827D67E +gText_0827D67E:: @ 827D67E .string "It can’t make any more\n" .string "moves.$" -gUnknown_0827D69C:: @ 827D69C +gText_0827D69C:: @ 827D69C .string "It worked frighteningly\n" .string "well.$" -gUnknown_0827D6BA:: @ 827D6BA +gText_0827D6BA:: @ 827D6BA .string "It worked as hard as the\n" .string "standout POKéMON.$" -gUnknown_0827D6E5:: @ 827D6E5 +gText_0827D6E5:: @ 827D6E5 .string "The JUDGE looked on\n" .string "expectantly.$" -gUnknown_0827D706:: @ 827D706 +gText_0827D706:: @ 827D706 .string "It worked rather well.$" -gUnknown_0827D71D:: @ 827D71D +gText_0827D71D:: @ 827D71D .string "It worked a little better\n" .string "than usual.$" -gUnknown_0827D743:: @ 827D743 +gText_0827D743:: @ 827D743 .string "{STR_VAR_1} failed to\n" .string "stand out at all…{PAUSE_UNTIL_PRESS}$" -gUnknown_0827D764:: @ 827D764 +gText_0827D764:: @ 827D764 .string "{STR_VAR_1} didn’t stand\n" .string "out very much…{PAUSE_UNTIL_PRESS}$" -gUnknown_0827D785:: @ 827D785 +gText_0827D785:: @ 827D785 .string "{STR_VAR_1} caught a\n" .string "little attention.{PAUSE_UNTIL_PRESS}$" -gUnknown_0827D7A5:: @ 827D7A5 +gText_0827D7A5:: @ 827D7A5 .string "{STR_VAR_1} attracted a\n" .string "lot of attention.{PAUSE_UNTIL_PRESS}$" -gUnknown_0827D7C8:: @ 827D7C8 +gText_0827D7C8:: @ 827D7C8 .string "{STR_VAR_1} commanded\n" .string "total attention.{PAUSE_UNTIL_PRESS}$" -gUnknown_0827D7E8:: @ 827D7E8 +gText_0827D7E8:: @ 827D7E8 .string "{STR_VAR_1} hasn’t made\n" .string "its appeal.{PAUSE_UNTIL_PRESS}$" -gUnknown_0827D805:: @ 827D805 +gText_0827D805:: @ 827D805 .string "Anticipation swelled for\n" .string "{STR_VAR_1}’s appeal next.$" -gUnknown_0827D830:: @ 827D830 +gText_0827D830:: @ 827D830 .string "$" -gUnknown_0827D831:: @ 827D831 +gText_0827D831:: @ 827D831 .string "The JUDGE ’s views on\n" .string "{STR_VAR_1} held firm.$" -gUnknown_0827D855:: @ 827D855 +gText_0827D855:: @ 827D855 .string "{STR_VAR_1}’s {STR_VAR_3}\n" .string "changed perceptions.$" -gUnknown_0827D872:: @ 827D872 +gText_0827D872:: @ 827D872 .string "{STR_VAR_1}’s appeal\n" .string "effect wore off.$" -gUnknown_0827D88F:: @ 827D88F +gText_0827D88F:: @ 827D88F .string "The special appeal’s\n" .string "effect wore off.$" -gUnknown_0827D8B5:: @ 827D8B5 +gText_0827D8B5:: @ 827D8B5 .string "Everyone’s appeals were\n" .string "made to look the same.$" -gUnknown_0827D8E4:: @ 827D8E4 +gText_0827D8E4:: @ 827D8E4 .string "It cheapened\n" .string "{STR_VAR_2}’s appeal.$" -gUnknown_0827D8FE:: @ 827D8FE +gText_0827D8FE:: @ 827D8FE .string "It cheapened the appeal\n" .string "of those ahead.$" -gUnknown_0827D926:: @ 827D926 +gText_0827D926:: @ 827D926 .string "It stole attention away\n" .string "from {STR_VAR_2}.$" -gUnknown_0827D947:: @ 827D947 +gText_0827D947:: @ 827D947 .string "It cheapened\n" .string "{STR_VAR_2}’s appeal.$" -gUnknown_0827D961:: @ 827D961 +gText_0827D961:: @ 827D961 .string "It severely cheapened\n" .string "other appeals.$" -gUnknown_0827D986:: @ 827D986 +gText_0827D986:: @ 827D986 .string "Anticipation swelled for\n" .string "{STR_VAR_1}’s appeal next.$" -gUnknown_0827D9B1:: @ 827D9B1 +gText_0827D9B1:: @ 827D9B1 .string "It cheapened the appeal\n" .string "of those ahead.$" -gUnknown_0827D9D9:: @ 827D9D9 +gText_0827D9D9:: @ 827D9D9 .string "It cheapened the JUDGE’s\n" .string "favorite appeal.$" -gUnknown_0827DA03:: @ 827DA03 +gText_0827DA03:: @ 827DA03 .string "The appeals of others\n" .string "were cheapened by half.$" -gUnknown_0827DA31:: @ 827DA31 +gText_0827DA31:: @ 827DA31 .string "It stood out to make up\n" .string "for being jammed.$" -gUnknown_0827DA5B:: @ 827DA5B +gText_0827DA5B:: @ 827DA5B .string "It can’t participate in\n" .string "appeals any more.$" -gUnknown_0827DA85:: @ 827DA85 +gText_0827DA85:: @ 827DA85 .string "It touched the JUDGE for\n" .string "a fantastic appeal.$" -gUnknown_0827DAB2:: @ 827DAB2 +gText_0827DAB2:: @ 827DAB2 .string "Anticipation rose for\n" .string "upcoming appeals.$" -gUnknown_0827DADA:: @ 827DADA +gText_0827DADA:: @ 827DADA .string "It stood out as much as\n" .string "special appeals.$" -gUnknown_0827DB03:: @ 827DB03 +gText_0827DB03:: @ 827DB03 .string "It stood out as much as\n" .string "{STR_VAR_1}.$" -gUnknown_0827DB1F:: @ 827DB1F +gText_0827DB1F:: @ 827DB1F .string "Jammed appeals were made\n" .string "even less noticeable.$" -gUnknown_0827DB4E:: @ 827DB4E +gText_0827DB4E:: @ 827DB4E .string "Everyone’s appeals were\n" .string "made the same.$" +gText_827DB75:: @ 827DB75 .string "It became more conscious\n" .string "of the other POKéMON.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827DBB0:: @ 827DBB0 .string "{STR_VAR_1} can’t make an\n" .string "appeal after this.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827DBE0:: @ 827DBE0 .string "It settled down just a\n" .string "little bit.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827DC0F:: @ 827DC0F .string "It became oblivious to\n" .string "the other POKéMON.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827DC45:: @ 827DC45 .string "It became less aware of\n" .string "the other POKéMON.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827DC7C:: @ 827DC7C .string "It stopped caring about\n" .string "other POKéMON much.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827DCB4:: @ 827DCB4 .string "It tried to startle the\n" .string "other POKéMON.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827DCE7:: @ 827DCE7 .string "It tried to dazzle the\n" .string "others.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827DD12:: @ 827DD12 .string "The JUDGE looked away\n" .string "from {STR_VAR_1}.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827DD3D:: @ 827DD3D .string "It tried to unnerve the\n" .string "next POKéMON.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827DD6F:: @ 827DD6F .string "{STR_VAR_1} became\n" .string "nervous.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827DD8E:: @ 827DD8E .string "The appeal tried to\n" .string "unnerve waiting POKéMON.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827DDC7:: @ 827DDC7 .string "It taunted POKéMON\n" .string "doing well.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827DDF2:: @ 827DDF2 .string "{STR_VAR_1} regained its\n" .string "form.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827DE14:: @ 827DE14 .string "It tried to jam POKéMON\n" .string "doing well.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827DE44:: @ 827DE44 .string "The standout {STR_VAR_1}\n" .string "hustled even more.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827DE73:: @ 827DE73 .string "The largely unnoticed\n" .string "{STR_VAR_1} worked hard.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827DEA5:: @ 827DEA5 .string "It worked as much as\n" .string "POKéMON before it.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827DED9:: @ 827DED9 .string "{STR_VAR_1}’s appeal did\n" .string "not go well.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827DF02:: @ 827DF02 .string "It worked as much as the\n" .string "preceding POKéMON.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827DF3A:: @ 827DF3A .string "{STR_VAR_1}’s appeal did\n" .string "not go well.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827DF63:: @ 827DF63 .string "{STR_VAR_1}’s appeal did\n" .string "not go well.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827DF8C:: @ 827DF8C .string "{STR_VAR_1}’s appeal\n" .string "went slightly well.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827DFB8:: @ 827DFB8 .string "{STR_VAR_1}’s appeal\n" .string "went pretty well.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827DFE2:: @ 827DFE2 .string "{STR_VAR_1}’s appeal\n" .string "went excellently.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827E00C:: @ 827E00C .string "{STR_VAR_1}’s appeal was\n" .string "a dud.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827E02F:: @ 827E02F .string "{STR_VAR_1}’s appeal did\n" .string "not work very well.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827E05F:: @ 827E05F .string "{STR_VAR_1}’s appeal\n" .string "went slightly well.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827E08B:: @ 827E08B .string "{STR_VAR_1}’s appeal\n" .string "went pretty well.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827E0B5:: @ 827E0B5 .string "{STR_VAR_1}’s appeal\n" .string "went very well.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827E0DD:: @ 827E0DD .string "{STR_VAR_1}’s appeal\n" .string "went excellently.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827E107:: @ 827E107 .string "It’s the same type as the\n" .string "POKéMON before--good!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827E143:: @ 827E143 .string "It’s not the same type as\n" .string "the one before--good!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827E17F:: @ 827E17F .string "It stood out much more\n" .string "than the POKéMON before.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827E1BB:: @ 827E1BB .string "It didn’t do as well as the\n" .string "POKéMON before.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827E1F3:: @ 827E1F3 .string "{STR_VAR_1}’s condition\n" .string "rose above usual.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827E220:: @ 827E220 .string "{STR_VAR_1}’s hot status\n" .string "made it a great appeal!{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827E254:: @ 827E254 .string "It moved up in line for\n" .string "the next appeal.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827E289:: @ 827E289 .string "It moved back in line once\n" .string "for the next appeal.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" +gText_827E2C5:: @ 827E2C5 .string "It scrambled up the\n" .string "order for the next turn.{PAUSE 15}{PAUSE 15}{PAUSE 15}{PAUSE 15}$" -gUnknown_0827E2FE:: @ 827E2FE +gText_0827E2FE:: @ 827E2FE .string "The JUDGE looked at\n" .string "{STR_VAR_1} expectantly.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827E32E:: @ 827E32E +gText_0827E32E:: @ 827E32E .string "The appeal combo went\n" .string "over well.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827E35B:: @ 827E35B +gText_0827E35B:: @ 827E35B .string "The appeal combo went\n" .string "over very well.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827E38D:: @ 827E38D +gText_0827E38D:: @ 827E38D .string "The appeal combo went\n" .string "over excellently.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827E3C1:: @ 827E3C1 +gText_0827E3C1:: @ 827E3C1 .string "{STR_VAR_1} managed to\n" .string "avert its gaze.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827E3EB:: @ 827E3EB +gText_0827E3EB:: @ 827E3EB .string "{STR_VAR_1} managed to\n" .string "avoid seeing it.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827E416:: @ 827E416 +gText_0827E416:: @ 827E416 .string "{STR_VAR_1} isn’t fazed\n" .string "by that sort of thing.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827E448:: @ 827E448 +gText_0827E448:: @ 827E448 .string "{STR_VAR_1} became a\n" .string "little distracted.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827E473:: @ 827E473 +gText_0827E473:: @ 827E473 .string "It tried to startle the\n" .string "other POKéMON.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827E4A6:: @ 827E4A6 +gText_0827E4A6:: @ 827E4A6 .string "{STR_VAR_1} looked down\n" .string "out of distraction.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827E4D5:: @ 827E4D5 +gText_0827E4D5:: @ 827E4D5 .string "{STR_VAR_1} turned back\n" .string "out of distraction.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827E504:: @ 827E504 +gText_0827E504:: @ 827E504 .string "{STR_VAR_1} couldn’t help\n" .string "uttering a cry.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827E531:: @ 827E531 +gText_0827E531:: @ 827E531 .string "{STR_VAR_1} couldn’t help\n" .string "leaping up.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827E55A:: @ 827E55A +gText_0827E55A:: @ 827E55A .string "{STR_VAR_1} tripped over\n" .string "out of distraction.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827E58A:: @ 827E58A +gText_0827E58A:: @ 827E58A .string "{STR_VAR_1} was too\n" .string "nervous to move.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827E5B2:: @ 827E5B2 +gText_0827E5B2:: @ 827E5B2 .string "But it messed up.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827E5D0:: @ 827E5D0 +gText_0827E5D0:: @ 827E5D0 .string "But it failed to make\n" .string "the target nervous.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827E606:: @ 827E606 +gText_0827E606:: @ 827E606 .string "But it failed to make\n" .string "anyone nervous.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827E638:: @ 827E638 +gText_0827E638:: @ 827E638 .string "But it was ignored…{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827E658:: @ 827E658 +gText_0827E658:: @ 827E658 .string "But it couldn’t improve\n" .string "its condition…{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827E68B:: @ 827E68B +gText_0827E68B:: @ 827E68B .string "Its bad condition\n" .string "resulted in a weak appeal.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827E6C4:: @ 827E6C4 +gText_0827E6C4:: @ 827E6C4 .string "{STR_VAR_1} was\n" .string "unaffected.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827E6E3:: @ 827E6E3 +gText_0827E6E3:: @ 827E6E3 .string "{STR_VAR_1} disappointed\n" .string "by repeating an appeal.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827E717:: @ 827E717 +gText_0827E717:: @ 827E717 .string "{STR_VAR_1}’s {STR_VAR_3}\n" .string "went over great.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827E73C:: @ 827E73C +gText_0827E73C:: @ 827E73C .string "{STR_VAR_1}’s {STR_VAR_3}\n" .string "didn’t go over well here…{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827E76A:: @ 827E76A +gText_0827E76A:: @ 827E76A .string "{STR_VAR_1}’s {STR_VAR_3}\n" .string "got the crowd going.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827E793:: @ 827E793 +gText_0827E793:: @ 827E793 .string "{STR_VAR_1} can’t appeal\n" .string "next turn…{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827E7BA:: @ 827E7BA +gText_0827E7BA:: @ 827E7BA .string "It attracted the crowd’s\n" .string "attention.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827E7EA:: @ 827E7EA +gText_0827E7EA:: @ 827E7EA .string "The crowd continues to\n" .string "watch {STR_VAR_3}.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827E817:: @ 827E817 +gText_0827E817:: @ 827E817 .string "{STR_VAR_1}’s\n" .string "{STR_VAR_2} is ignored.{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}{PAUSE 0x0F}$" -gUnknown_0827E837:: @ 827E837 +gText_0827E837:: @ 827E837 .string "shyness$" -gUnknown_0827E83F:: @ 827E83F +gText_0827E83F:: @ 827E83F .string "anxiety$" -gUnknown_0827E847:: @ 827E847 +gText_0827E847:: @ 827E847 .string "laziness$" -gUnknown_0827E850:: @ 827E850 +gText_0827E850:: @ 827E850 .string "hesitancy$" -gUnknown_0827E85A:: @ 827E85A +gText_0827E85A:: @ 827E85A .string "fear$" -gUnknown_0827E85F:: @ 827E85F +gText_0827E85F:: @ 827E85F .string "coolness$" -gUnknown_0827E868:: @ 827E868 +gText_0827E868:: @ 827E868 .string "beauty$" -gUnknown_0827E86F:: @ 827E86F +gText_0827E86F:: @ 827E86F .string "cuteness$" -gUnknown_0827E878:: @ 827E878 +gText_0827E878:: @ 827E878 .string "smartness$" -gUnknown_0827E882:: @ 827E882 +gText_0827E882:: @ 827E882 .string "toughness$" -gUnknown_0827E88C:: @ 827E88C +gText_0827E88C:: @ 827E88C .string "TENSION$" -gUnknown_0827E894:: @ 827E894 +gText_0827E894:: @ 827E894 .string "COOL Move$" -gUnknown_0827E89E:: @ 827E89E +gText_0827E89E:: @ 827E89E .string "BEAUTY Move$" -gUnknown_0827E8AA:: @ 827E8AA +gText_0827E8AA:: @ 827E8AA .string "CUTE Move$" -gUnknown_0827E8B4:: @ 827E8B4 +gText_0827E8B4:: @ 827E8B4 .string "SMART Move$" -gUnknown_0827E8BF:: @ 827E8BF +gText_0827E8BF:: @ 827E8BF .string "TOUGH Move$" -gUnknown_0827E8CA:: @ 827E8CA +gText_0827E8CA:: @ 827E8CA .string "???$" diff --git a/data/text/easy_chat/easy_chat_group_pokemon2.s b/data/text/easy_chat/easy_chat_group_pokemon2.s index 6a1bc0fcd..e2f58e496 100644 --- a/data/text/easy_chat/easy_chat_group_pokemon2.s +++ b/data/text/easy_chat/easy_chat_group_pokemon2.s @@ -57,7 +57,7 @@ gEasyChatGroup_Pokemon2:: @ 859CE0C .2byte SPECIES_ESPEON .2byte SPECIES_EXEGGCUTE .2byte SPECIES_EXEGGUTOR - .2byte SPECIES_FARFETCH_D + .2byte SPECIES_FARFETCHD .2byte SPECIES_FEAROW .2byte SPECIES_FERALIGATR .2byte SPECIES_FLAAFFY diff --git a/data/text/easy_chat/easy_chat_words_by_letter.inc b/data/text/easy_chat/easy_chat_words_by_letter.inc index a271a5586..bce4be347 100644 --- a/data/text/easy_chat/easy_chat_words_by_letter.inc +++ b/data/text/easy_chat/easy_chat_words_by_letter.inc @@ -1,2522 +1,2522 @@ gEasyChatWordsByLetter_Others:: @ 859D0B4 - ec_word EXCL - ec_word EXCL_EXCL - ec_word DASH - ec_word DASH_DASH_DASH - ec_word ELLIPSIS - ec_word ELLIPSIS_EXCL - ec_word ELLIPSIS_ELLIPSIS_ELLIPSIS - ec_word 1_HIT_KO_EXCL - ec_word QUES - ec_word QUES_EXCL + .2byte EC_WORD_EXCL + .2byte EC_WORD_EXCL_EXCL + .2byte EC_WORD_DASH + .2byte EC_WORD_DASH_DASH_DASH + .2byte EC_WORD_ELLIPSIS + .2byte EC_WORD_ELLIPSIS_EXCL + .2byte EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS + .2byte EC_WORD_1_HIT_KO_EXCL + .2byte EC_WORD_QUES + .2byte EC_WORD_QUES_EXCL gEasyChatWordsByLetter_A:: @ 859D0C8 - ec_word A - ec_word A_LITTLE - ec_word A_LOT - ec_word A_TINY_BIT - ec_word ABOUT - ec_word ABOVE - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 ABRA - ec_pokemon2 ABRA - ec_word ABSENT - ec_pokemon1 ABSOL - ec_word ABSOLUTELY - ec_move1 ABSORB - ec_word ACCEPT - ec_move2 ACID - ec_move2 ACID_ARMOR - ec_word ADORE - ec_word ADULT - ec_word ADVENTURE - ec_move2 AERIAL_ACE - ec_move1 AEROBLAST - ec_pokemon2 AERODACTYL - ec_word AFTER - ec_word AGE - ec_pokemon1 AGGRON - ec_move1 AGILITY - ec_word AGREE - ec_word AHAHA - ec_word AIM - ec_pokemon2 AIPOM - ec_move1 AIR_CUTTER - ec_word AIR_LOCK - ec_word AIYEEH - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 ALAKAZAM - ec_pokemon2 ALAKAZAM - ec_word ALL - ec_word ALL_RIGHT - ec_word ALLOW - ec_word ALLOWANCE - ec_word ALLY - ec_word ALMOST - ec_word ALONE - ec_word ALSO - ec_word ALT_COLOR - ec_pokemon1 ALTARIA - ec_word ALTHOUGH - ec_word ALWAYS - ec_word AM - ec_move2 AMNESIA - ec_pokemon2 AMPHAROS - ec_word AMUSING - ec_word AN - ec_move1 ANCIENT_POWER - ec_word AND - ec_word ANGER - ec_word ANGERS - ec_word ANGRY - ec_word ANIME - ec_pokemon1 ANORITH - ec_word ANOTHER - ec_word ANTICIPATION - ec_word ANY - ec_word ANYWHERE - ec_word APOLOGIZE - ec_word APPEAL - ec_word APPEAR - ec_word APPEARS - ec_word APPRECIATE - ec_word APPROVED - ec_pokemon2 ARBOK - ec_pokemon2 ARCANINE - ec_word ARE - ec_word AREN_T - ec_word ARENA_TRAP - ec_pokemon2 ARIADOS - ec_move2 ARM_THRUST - ec_pokemon1 ARMALDO - ec_move1 AROMATHERAPY - ec_pokemon1 ARON - ec_word AROUND - ec_word ARRGH - ec_pokemon2 ARTICUNO - ec_word AS - ec_word AS_IF - ec_word AS_MUCH_AS - ec_move2 ASSIST - ec_move1 ASTONISH - ec_word AT - ec_word ATTACK - ec_move2 ATTRACT - ec_word AUNT - ec_move1 AURORA_BEAM - ec_word AVANT_GARDE - ec_word AWAY - ec_word AWESOME - ec_word AWFUL - ec_word AWFULLY - ec_word AWW - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 AZUMARILL - ec_pokemon2 AZUMARILL - ec_pokemon1 AZURILL + .2byte EC_WORD_A + .2byte EC_WORD_A_LITTLE + .2byte EC_WORD_A_LOT + .2byte EC_WORD_A_TINY_BIT + .2byte EC_WORD_ABOUT + .2byte EC_WORD_ABOVE + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(ABRA) + .2byte EC_POKEMON2(ABRA) + .2byte EC_WORD_ABSENT + .2byte EC_POKEMON(ABSOL) + .2byte EC_WORD_ABSOLUTELY + .2byte EC_MOVE(ABSORB) + .2byte EC_WORD_ACCEPT + .2byte EC_MOVE2(ACID) + .2byte EC_MOVE2(ACID_ARMOR) + .2byte EC_WORD_ADORE + .2byte EC_WORD_ADULT + .2byte EC_WORD_ADVENTURE + .2byte EC_MOVE2(AERIAL_ACE) + .2byte EC_MOVE(AEROBLAST) + .2byte EC_POKEMON2(AERODACTYL) + .2byte EC_WORD_AFTER + .2byte EC_WORD_AGE + .2byte EC_POKEMON(AGGRON) + .2byte EC_MOVE(AGILITY) + .2byte EC_WORD_AGREE + .2byte EC_WORD_AHAHA + .2byte EC_WORD_AIM + .2byte EC_POKEMON2(AIPOM) + .2byte EC_MOVE(AIR_CUTTER) + .2byte EC_WORD_AIR_LOCK + .2byte EC_WORD_AIYEEH + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(ALAKAZAM) + .2byte EC_POKEMON2(ALAKAZAM) + .2byte EC_WORD_ALL + .2byte EC_WORD_ALL_RIGHT + .2byte EC_WORD_ALLOW + .2byte EC_WORD_ALLOWANCE + .2byte EC_WORD_ALLY + .2byte EC_WORD_ALMOST + .2byte EC_WORD_ALONE + .2byte EC_WORD_ALSO + .2byte EC_WORD_ALT_COLOR + .2byte EC_POKEMON(ALTARIA) + .2byte EC_WORD_ALTHOUGH + .2byte EC_WORD_ALWAYS + .2byte EC_WORD_AM + .2byte EC_MOVE2(AMNESIA) + .2byte EC_POKEMON2(AMPHAROS) + .2byte EC_WORD_AMUSING + .2byte EC_WORD_AN + .2byte EC_MOVE(ANCIENT_POWER) + .2byte EC_WORD_AND + .2byte EC_WORD_ANGER + .2byte EC_WORD_ANGERS + .2byte EC_WORD_ANGRY + .2byte EC_WORD_ANIME + .2byte EC_POKEMON(ANORITH) + .2byte EC_WORD_ANOTHER + .2byte EC_WORD_ANTICIPATION + .2byte EC_WORD_ANY + .2byte EC_WORD_ANYWHERE + .2byte EC_WORD_APOLOGIZE + .2byte EC_WORD_APPEAL + .2byte EC_WORD_APPEAR + .2byte EC_WORD_APPEARS + .2byte EC_WORD_APPRECIATE + .2byte EC_WORD_APPROVED + .2byte EC_POKEMON2(ARBOK) + .2byte EC_POKEMON2(ARCANINE) + .2byte EC_WORD_ARE + .2byte EC_WORD_AREN_T + .2byte EC_WORD_ARENA_TRAP + .2byte EC_POKEMON2(ARIADOS) + .2byte EC_MOVE2(ARM_THRUST) + .2byte EC_POKEMON(ARMALDO) + .2byte EC_MOVE(AROMATHERAPY) + .2byte EC_POKEMON(ARON) + .2byte EC_WORD_AROUND + .2byte EC_WORD_ARRGH + .2byte EC_POKEMON2(ARTICUNO) + .2byte EC_WORD_AS + .2byte EC_WORD_AS_IF + .2byte EC_WORD_AS_MUCH_AS + .2byte EC_MOVE2(ASSIST) + .2byte EC_MOVE(ASTONISH) + .2byte EC_WORD_AT + .2byte EC_WORD_ATTACK + .2byte EC_MOVE2(ATTRACT) + .2byte EC_WORD_AUNT + .2byte EC_MOVE(AURORA_BEAM) + .2byte EC_WORD_AVANT_GARDE + .2byte EC_WORD_AWAY + .2byte EC_WORD_AWESOME + .2byte EC_WORD_AWFUL + .2byte EC_WORD_AWFULLY + .2byte EC_WORD_AWW + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(AZUMARILL) + .2byte EC_POKEMON2(AZUMARILL) + .2byte EC_POKEMON(AZURILL) gEasyChatWordsByLetter_B:: @ 859D19C - ec_word BABE - ec_word BABY - ec_word BACK - ec_word BAD - ec_word BADLY - ec_word BAG - ec_pokemon1 BAGON - ec_word BALL - ec_pokemon1 BALTOY - ec_pokemon1 BANETTE - ec_word BANG - ec_pokemon1 BARBOACH - ec_move2 BARRAGE - ec_move2 BARRIER - ec_word BATH - ec_move2 BATON_PASS - ec_word BATTLE - ec_word BATTLE_ARMOR - ec_word BATTLE_ROOM - ec_word BATTLE_TOWER - ec_pokemon2 BAYLEEF - ec_word BE - ec_word BEAT - ec_move2 BEAT_UP - ec_pokemon1 BEAUTIFLY - ec_word BEAUTIFUL - ec_word BEAUTY - ec_word BECOMES - ec_pokemon2 BEEDRILL - ec_word BEEN - ec_word BEFORE - ec_word BEGINNING - ec_word BEING - ec_pokemon1 BELDUM - ec_word BELIEVE - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 BELLOSSOM - ec_pokemon2 BELLOSSOM - ec_pokemon2 BELLSPROUT - ec_move2 BELLY_DRUM - ec_word BELONGS_TO - ec_word BELOW - ec_word BERRY - ec_word BESIDE - ec_word BEST - ec_word BETTER - ec_move1 BIDE - ec_word BIG - ec_word BIKE - ec_move1 BIND - ec_move1 BITE - ec_move2 BLAST_BURN - ec_pokemon2 BLASTOISE - ec_word BLAZE - ec_move2 BLAZE_KICK - ec_pokemon1 BLAZIKEN - ec_word BLEND - ec_pokemon2 BLISSEY - ec_move2 BLIZZARD - ec_move2 BLOCK - ec_word BOARD - ec_move2 BODY_SLAM - ec_move2 BONE_CLUB - ec_move2 BONE_RUSH - ec_move2 BONEMERANG - ec_word BOOK - ec_word BORED - ec_word BORING - ec_move2 BOUNCE - ec_word BOY - ec_word BRAG - ec_word BREAK - ec_pokemon1 BRELOOM - ec_move1 BRICK_BREAK - ec_word BROTHER - ec_move1 BUBBLE - ec_move2 BUBBLE_BEAM - ec_word BUG - ec_pokemon2 BULBASAUR - ec_move2 BULK_UP - ec_move2 BULLET_SEED - ec_word BUSY - ec_word BUT - ec_pokemon2 BUTTERFREE - ec_word BYE_BYE + .2byte EC_WORD_BABE + .2byte EC_WORD_BABY + .2byte EC_WORD_BACK + .2byte EC_WORD_BAD + .2byte EC_WORD_BADLY + .2byte EC_WORD_BAG + .2byte EC_POKEMON(BAGON) + .2byte EC_WORD_BALL + .2byte EC_POKEMON(BALTOY) + .2byte EC_POKEMON(BANETTE) + .2byte EC_WORD_BANG + .2byte EC_POKEMON(BARBOACH) + .2byte EC_MOVE2(BARRAGE) + .2byte EC_MOVE2(BARRIER) + .2byte EC_WORD_BATH + .2byte EC_MOVE2(BATON_PASS) + .2byte EC_WORD_BATTLE + .2byte EC_WORD_BATTLE_ARMOR + .2byte EC_WORD_BATTLE_ROOM + .2byte EC_WORD_BATTLE_TOWER + .2byte EC_POKEMON2(BAYLEEF) + .2byte EC_WORD_BE + .2byte EC_WORD_BEAT + .2byte EC_MOVE2(BEAT_UP) + .2byte EC_POKEMON(BEAUTIFLY) + .2byte EC_WORD_BEAUTIFUL + .2byte EC_WORD_BEAUTY + .2byte EC_WORD_BECOMES + .2byte EC_POKEMON2(BEEDRILL) + .2byte EC_WORD_BEEN + .2byte EC_WORD_BEFORE + .2byte EC_WORD_BEGINNING + .2byte EC_WORD_BEING + .2byte EC_POKEMON(BELDUM) + .2byte EC_WORD_BELIEVE + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(BELLOSSOM) + .2byte EC_POKEMON2(BELLOSSOM) + .2byte EC_POKEMON2(BELLSPROUT) + .2byte EC_MOVE2(BELLY_DRUM) + .2byte EC_WORD_BELONGS_TO + .2byte EC_WORD_BELOW + .2byte EC_WORD_BERRY + .2byte EC_WORD_BESIDE + .2byte EC_WORD_BEST + .2byte EC_WORD_BETTER + .2byte EC_MOVE(BIDE) + .2byte EC_WORD_BIG + .2byte EC_WORD_BIKE + .2byte EC_MOVE(BIND) + .2byte EC_MOVE(BITE) + .2byte EC_MOVE2(BLAST_BURN) + .2byte EC_POKEMON2(BLASTOISE) + .2byte EC_WORD_BLAZE + .2byte EC_MOVE2(BLAZE_KICK) + .2byte EC_POKEMON(BLAZIKEN) + .2byte EC_WORD_BLEND + .2byte EC_POKEMON2(BLISSEY) + .2byte EC_MOVE2(BLIZZARD) + .2byte EC_MOVE2(BLOCK) + .2byte EC_WORD_BOARD + .2byte EC_MOVE2(BODY_SLAM) + .2byte EC_MOVE2(BONE_CLUB) + .2byte EC_MOVE2(BONE_RUSH) + .2byte EC_MOVE2(BONEMERANG) + .2byte EC_WORD_BOOK + .2byte EC_WORD_BORED + .2byte EC_WORD_BORING + .2byte EC_MOVE2(BOUNCE) + .2byte EC_WORD_BOY + .2byte EC_WORD_BRAG + .2byte EC_WORD_BREAK + .2byte EC_POKEMON(BRELOOM) + .2byte EC_MOVE(BRICK_BREAK) + .2byte EC_WORD_BROTHER + .2byte EC_MOVE(BUBBLE) + .2byte EC_MOVE2(BUBBLE_BEAM) + .2byte EC_WORD_BUG + .2byte EC_POKEMON2(BULBASAUR) + .2byte EC_MOVE2(BULK_UP) + .2byte EC_MOVE2(BULLET_SEED) + .2byte EC_WORD_BUSY + .2byte EC_WORD_BUT + .2byte EC_POKEMON2(BUTTERFREE) + .2byte EC_WORD_BYE_BYE gEasyChatWordsByLetter_C:: @ 859D248 - ec_pokemon1 CACNEA - ec_pokemon1 CACTURNE - ec_move2 CALM_MIND - ec_word CAME - ec_word CAMERA - ec_pokemon1 CAMERUPT - ec_move2 CAMOUFLAGE - ec_word CAN - ec_word CAN_WIN - ec_word CAN_T - ec_word CAN_T_WIN - ec_word CANCEL - ec_word CAPABLE - ec_word CARDS - ec_word CARE - ec_word CARES - ec_pokemon1 CARVANHA - ec_pokemon1 CASCOON - ec_word CASE - ec_pokemon1 CASTFORM - ec_pokemon2 CATERPIE - ec_word CAUSE - ec_pokemon2 CELEBI - ec_word CENTER - ec_word CHALLENGE - ec_word CHANGE - ec_word CHANNEL - ec_pokemon2 CHANSEY - ec_move1 CHARGE - ec_pokemon2 CHARIZARD - ec_move1 CHARM - ec_pokemon2 CHARMANDER - ec_pokemon2 CHARMELEON - ec_word CHAT - ec_pokemon2 CHIKORITA - ec_word CHILD_S_PLAY - ec_word CHILDREN - ec_pokemon1 CHIMECHO - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 CHINCHOU - ec_pokemon2 CHINCHOU - ec_word CHLOROPHYLL - ec_word CHOICE - ec_word CHOOSE - ec_word CHORES - ec_move1 CLAMP - ec_pokemon1 CLAMPERL - ec_word CLASS - ec_pokemon1 CLAYDOL - ec_word CLEAR_BODY - ec_pokemon2 CLEFABLE - ec_pokemon2 CLEFAIRY - ec_pokemon2 CLEFFA - ec_word CLOSE - ec_word CLOUD_NINE - ec_pokemon2 CLOYSTER - ec_word COLD - ec_word COLLECT - ec_word COLLECTION - ec_word COLOR - ec_word COLOR_CHANGE - ec_pokemon1 COMBUSKEN - ec_word COME - ec_word COME_ON - ec_word COME_OVER - ec_move2 COMET_PUNCH - ec_word COMICS - ec_word COMMEMORATE - ec_word COMPLETE - ec_word COMPOUNDEYES - ec_word CONCEDE - ec_move1 CONFUSE_RAY - ec_word CONFUSED - ec_move2 CONFUSION - ec_word CONGRATS - ec_move1 CONSTRICT - ec_word CONTEST - ec_word CONVERSATION - ec_move2 CONVERSION - ec_move2 CONVERSION_2 - ec_word COOL - ec_word COOLNESS - ec_pokemon1 CORPHISH - ec_word CORRECT - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 CORSOLA - ec_pokemon2 CORSOLA - ec_move1 COSMIC_POWER - ec_move2 COTTON_SPORE - ec_word COULD - ec_word COULDN_T - ec_word COUNT_ON - ec_move1 COUNTER - ec_word COUPLE - ec_move2 COVET - ec_move1 CRABHAMMER - ec_pokemon1 CRADILY - ec_pokemon1 CRAWDAUNT - ec_word CRIES - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 CROBAT - ec_pokemon2 CROBAT - ec_pokemon2 CROCONAW - ec_move1 CROSS_CHOP - ec_move1 CRUNCH - ec_word CRUSH - ec_move2 CRUSH_CLAW - ec_word CRY - ec_pokemon2 CUBONE - ec_word CURRENT - ec_move2 CURSE - ec_move1 CUT - ec_word CUTE - ec_word CUTE_CHARM - ec_word CUTENESS - ec_pokemon2 CYNDAQUIL + .2byte EC_POKEMON(CACNEA) + .2byte EC_POKEMON(CACTURNE) + .2byte EC_MOVE2(CALM_MIND) + .2byte EC_WORD_CAME + .2byte EC_WORD_CAMERA + .2byte EC_POKEMON(CAMERUPT) + .2byte EC_MOVE2(CAMOUFLAGE) + .2byte EC_WORD_CAN + .2byte EC_WORD_CAN_WIN + .2byte EC_WORD_CAN_T + .2byte EC_WORD_CAN_T_WIN + .2byte EC_WORD_CANCEL + .2byte EC_WORD_CAPABLE + .2byte EC_WORD_CARDS + .2byte EC_WORD_CARE + .2byte EC_WORD_CARES + .2byte EC_POKEMON(CARVANHA) + .2byte EC_POKEMON(CASCOON) + .2byte EC_WORD_CASE + .2byte EC_POKEMON(CASTFORM) + .2byte EC_POKEMON2(CATERPIE) + .2byte EC_WORD_CAUSE + .2byte EC_POKEMON2(CELEBI) + .2byte EC_WORD_CENTER + .2byte EC_WORD_CHALLENGE + .2byte EC_WORD_CHANGE + .2byte EC_WORD_CHANNEL + .2byte EC_POKEMON2(CHANSEY) + .2byte EC_MOVE(CHARGE) + .2byte EC_POKEMON2(CHARIZARD) + .2byte EC_MOVE(CHARM) + .2byte EC_POKEMON2(CHARMANDER) + .2byte EC_POKEMON2(CHARMELEON) + .2byte EC_WORD_CHAT + .2byte EC_POKEMON2(CHIKORITA) + .2byte EC_WORD_CHILD_S_PLAY + .2byte EC_WORD_CHILDREN + .2byte EC_POKEMON(CHIMECHO) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(CHINCHOU) + .2byte EC_POKEMON2(CHINCHOU) + .2byte EC_WORD_CHLOROPHYLL + .2byte EC_WORD_CHOICE + .2byte EC_WORD_CHOOSE + .2byte EC_WORD_CHORES + .2byte EC_MOVE(CLAMP) + .2byte EC_POKEMON(CLAMPERL) + .2byte EC_WORD_CLASS + .2byte EC_POKEMON(CLAYDOL) + .2byte EC_WORD_CLEAR_BODY + .2byte EC_POKEMON2(CLEFABLE) + .2byte EC_POKEMON2(CLEFAIRY) + .2byte EC_POKEMON2(CLEFFA) + .2byte EC_WORD_CLOSE + .2byte EC_WORD_CLOUD_NINE + .2byte EC_POKEMON2(CLOYSTER) + .2byte EC_WORD_COLD + .2byte EC_WORD_COLLECT + .2byte EC_WORD_COLLECTION + .2byte EC_WORD_COLOR + .2byte EC_WORD_COLOR_CHANGE + .2byte EC_POKEMON(COMBUSKEN) + .2byte EC_WORD_COME + .2byte EC_WORD_COME_ON + .2byte EC_WORD_COME_OVER + .2byte EC_MOVE2(COMET_PUNCH) + .2byte EC_WORD_COMICS + .2byte EC_WORD_COMMEMORATE + .2byte EC_WORD_COMPLETE + .2byte EC_WORD_COMPOUNDEYES + .2byte EC_WORD_CONCEDE + .2byte EC_MOVE(CONFUSE_RAY) + .2byte EC_WORD_CONFUSED + .2byte EC_MOVE2(CONFUSION) + .2byte EC_WORD_CONGRATS + .2byte EC_MOVE(CONSTRICT) + .2byte EC_WORD_CONTEST + .2byte EC_WORD_CONVERSATION + .2byte EC_MOVE2(CONVERSION) + .2byte EC_MOVE2(CONVERSION_2) + .2byte EC_WORD_COOL + .2byte EC_WORD_COOLNESS + .2byte EC_POKEMON(CORPHISH) + .2byte EC_WORD_CORRECT + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(CORSOLA) + .2byte EC_POKEMON2(CORSOLA) + .2byte EC_MOVE(COSMIC_POWER) + .2byte EC_MOVE2(COTTON_SPORE) + .2byte EC_WORD_COULD + .2byte EC_WORD_COULDN_T + .2byte EC_WORD_COUNT_ON + .2byte EC_MOVE(COUNTER) + .2byte EC_WORD_COUPLE + .2byte EC_MOVE2(COVET) + .2byte EC_MOVE(CRABHAMMER) + .2byte EC_POKEMON(CRADILY) + .2byte EC_POKEMON(CRAWDAUNT) + .2byte EC_WORD_CRIES + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(CROBAT) + .2byte EC_POKEMON2(CROBAT) + .2byte EC_POKEMON2(CROCONAW) + .2byte EC_MOVE(CROSS_CHOP) + .2byte EC_MOVE(CRUNCH) + .2byte EC_WORD_CRUSH + .2byte EC_MOVE2(CRUSH_CLAW) + .2byte EC_WORD_CRY + .2byte EC_POKEMON2(CUBONE) + .2byte EC_WORD_CURRENT + .2byte EC_MOVE2(CURSE) + .2byte EC_MOVE(CUT) + .2byte EC_WORD_CUTE + .2byte EC_WORD_CUTE_CHARM + .2byte EC_WORD_CUTENESS + .2byte EC_POKEMON2(CYNDAQUIL) gEasyChatWordsByLetter_D:: @ 859D336 - ec_word DAILY - ec_word DAMP - ec_word DANCE - ec_word DANGER - ec_word DARK - ec_word DARN - ec_word DATE - ec_word DAUGHTER - ec_word DAY - ec_word DAYS - ec_word DAYTIME - ec_word DECIDE - ec_word DECIDED - ec_word DEEP - ec_word DEFEATED - ec_move2 DEFENSE_CURL - ec_pokemon1 DELCATTY - ec_pokemon2 DELIBIRD - ec_pokemon1 DEOXYS - ec_word DEPT_STORE - ec_word DESIGN - ec_word DESTINY - ec_move2 DESTINY_BOND - ec_word DESTROYED - ec_move2 DETECT - ec_pokemon2 DEWGONG - ec_word DID - ec_word DIDN_T - ec_word DIET - ec_word DIFFERENT - ec_move1 DIG - ec_word DIGITAL - ec_pokemon2 DIGLETT - ec_word DIRECT - ec_move1 DISABLE - ec_word DISAPPEAR - ec_word DISAPPOINT - ec_word DISAPPOINTED - ec_word DISAPPOINTS - ec_word DISASTER - ec_word DISLIKE - ec_word DISLIKES - ec_pokemon2 DITTO - ec_move2 DIVE - ec_move2 DIZZY_PUNCH - ec_word DO - ec_word DOCILE - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 DODRIO - ec_pokemon2 DODRIO - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 DODUO - ec_pokemon2 DODUO - ec_word DOES - ec_word DOESN_T - ec_word DON_T - ec_word DONE - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 DONPHAN - ec_pokemon2 DONPHAN - ec_move2 DOOM_DESIRE - ec_move2 DOUBLE_KICK - ec_move1 DOUBLE_TEAM - ec_move1 DOUBLE_EDGE - ec_move1 DOUBLE_SLAP - ec_word DOWN - ec_word DOWNCAST - ec_word DRAGON - ec_move2 DRAGON_CLAW - ec_move2 DRAGON_DANCE - ec_move2 DRAGON_RAGE - ec_pokemon2 DRAGONAIR - ec_move2 DRAGON_BREATH - ec_pokemon2 DRAGONITE - ec_pokemon2 DRATINI - ec_word DREAM - ec_move2 DREAM_EATER - ec_move2 DRILL_PECK - ec_word DRINK - ec_word DRINKS - ec_word DRIZZLE - ec_word DROOLING - ec_word DROUGHT - ec_pokemon2 DROWZEE - ec_word DUDE - ec_pokemon2 DUGTRIO - ec_pokemon2 DUNSPARCE - ec_pokemon1 DUSCLOPS - ec_pokemon1 DUSKULL - ec_pokemon1 DUSTOX - ec_move2 DYNAMIC_PUNCH + .2byte EC_WORD_DAILY + .2byte EC_WORD_DAMP + .2byte EC_WORD_DANCE + .2byte EC_WORD_DANGER + .2byte EC_WORD_DARK + .2byte EC_WORD_DARN + .2byte EC_WORD_DATE + .2byte EC_WORD_DAUGHTER + .2byte EC_WORD_DAY + .2byte EC_WORD_DAYS + .2byte EC_WORD_DAYTIME + .2byte EC_WORD_DECIDE + .2byte EC_WORD_DECIDED + .2byte EC_WORD_DEEP + .2byte EC_WORD_DEFEATED + .2byte EC_MOVE2(DEFENSE_CURL) + .2byte EC_POKEMON(DELCATTY) + .2byte EC_POKEMON2(DELIBIRD) + .2byte EC_POKEMON(DEOXYS) + .2byte EC_WORD_DEPT_STORE + .2byte EC_WORD_DESIGN + .2byte EC_WORD_DESTINY + .2byte EC_MOVE2(DESTINY_BOND) + .2byte EC_WORD_DESTROYED + .2byte EC_MOVE2(DETECT) + .2byte EC_POKEMON2(DEWGONG) + .2byte EC_WORD_DID + .2byte EC_WORD_DIDN_T + .2byte EC_WORD_DIET + .2byte EC_WORD_DIFFERENT + .2byte EC_MOVE(DIG) + .2byte EC_WORD_DIGITAL + .2byte EC_POKEMON2(DIGLETT) + .2byte EC_WORD_DIRECT + .2byte EC_MOVE(DISABLE) + .2byte EC_WORD_DISAPPEAR + .2byte EC_WORD_DISAPPOINT + .2byte EC_WORD_DISAPPOINTED + .2byte EC_WORD_DISAPPOINTS + .2byte EC_WORD_DISASTER + .2byte EC_WORD_DISLIKE + .2byte EC_WORD_DISLIKES + .2byte EC_POKEMON2(DITTO) + .2byte EC_MOVE2(DIVE) + .2byte EC_MOVE2(DIZZY_PUNCH) + .2byte EC_WORD_DO + .2byte EC_WORD_DOCILE + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(DODRIO) + .2byte EC_POKEMON2(DODRIO) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(DODUO) + .2byte EC_POKEMON2(DODUO) + .2byte EC_WORD_DOES + .2byte EC_WORD_DOESN_T + .2byte EC_WORD_DON_T + .2byte EC_WORD_DONE + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(DONPHAN) + .2byte EC_POKEMON2(DONPHAN) + .2byte EC_MOVE2(DOOM_DESIRE) + .2byte EC_MOVE2(DOUBLE_KICK) + .2byte EC_MOVE(DOUBLE_TEAM) + .2byte EC_MOVE(DOUBLE_EDGE) + .2byte EC_MOVE(DOUBLE_SLAP) + .2byte EC_WORD_DOWN + .2byte EC_WORD_DOWNCAST + .2byte EC_WORD_DRAGON + .2byte EC_MOVE2(DRAGON_CLAW) + .2byte EC_MOVE2(DRAGON_DANCE) + .2byte EC_MOVE2(DRAGON_RAGE) + .2byte EC_POKEMON2(DRAGONAIR) + .2byte EC_MOVE2(DRAGON_BREATH) + .2byte EC_POKEMON2(DRAGONITE) + .2byte EC_POKEMON2(DRATINI) + .2byte EC_WORD_DREAM + .2byte EC_MOVE2(DREAM_EATER) + .2byte EC_MOVE2(DRILL_PECK) + .2byte EC_WORD_DRINK + .2byte EC_WORD_DRINKS + .2byte EC_WORD_DRIZZLE + .2byte EC_WORD_DROOLING + .2byte EC_WORD_DROUGHT + .2byte EC_POKEMON2(DROWZEE) + .2byte EC_WORD_DUDE + .2byte EC_POKEMON2(DUGTRIO) + .2byte EC_POKEMON2(DUNSPARCE) + .2byte EC_POKEMON(DUSCLOPS) + .2byte EC_POKEMON(DUSKULL) + .2byte EC_POKEMON(DUSTOX) + .2byte EC_MOVE2(DYNAMIC_PUNCH) gEasyChatWordsByLetter_E:: @ 859D3F2 - ec_word EARLIER - ec_word EARLY_BIRD - ec_move1 EARTHQUAKE - ec_word EASY - ec_word EAT - ec_word EATS - ec_word EEK - ec_pokemon2 EEVEE - ec_word EFFECT_SPORE - ec_word EGG - ec_move2 EGG_BOMB - ec_word EH_QUES - ec_word EHEHE - ec_pokemon2 EKANS - ec_pokemon2 ELECTABUZZ - ec_word ELECTRIC - ec_pokemon1 ELECTRIKE - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 ELECTRODE - ec_pokemon2 ELECTRODE - ec_pokemon2 ELEKID - ec_word ELSE - ec_move2 EMBER - ec_word EMERALD - ec_move1 ENCORE - ec_word ENCYCLOPEDIA - ec_word END - ec_move1 ENDEAVOR - ec_move1 ENDURE - ec_word ENJOY - ec_word ENJOYS - ec_word ENOUGH - ec_pokemon2 ENTEI - ec_word ENTERTAINING - ec_move2 ERUPTION - ec_word ESCAPE - ec_pokemon2 ESPEON - ec_word EVEN_SO - ec_word EVENT - ec_word EVENTS - ec_word EVER - ec_word EVERY - ec_word EVOLUTION - ec_word EVOLVE - ec_word EXCELLENT - ec_word EXCESS - ec_word EXCITE - ec_word EXCITING - ec_word EXCUSE - ec_word EXCUSE_ME - ec_pokemon2 EXEGGCUTE - ec_pokemon2 EXEGGUTOR - ec_word EXISTS - ec_word EXPENSIVE - ec_move2 EXPLOSION - ec_pokemon1 EXPLOUD - ec_move1 EXTRASENSORY - ec_move1 EXTREME_SPEED + .2byte EC_WORD_EARLIER + .2byte EC_WORD_EARLY_BIRD + .2byte EC_MOVE(EARTHQUAKE) + .2byte EC_WORD_EASY + .2byte EC_WORD_EAT + .2byte EC_WORD_EATS + .2byte EC_WORD_EEK + .2byte EC_POKEMON2(EEVEE) + .2byte EC_WORD_EFFECT_SPORE + .2byte EC_WORD_EGG + .2byte EC_MOVE2(EGG_BOMB) + .2byte EC_WORD_EH_QUES + .2byte EC_WORD_EHEHE + .2byte EC_POKEMON2(EKANS) + .2byte EC_POKEMON2(ELECTABUZZ) + .2byte EC_WORD_ELECTRIC + .2byte EC_POKEMON(ELECTRIKE) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(ELECTRODE) + .2byte EC_POKEMON2(ELECTRODE) + .2byte EC_POKEMON2(ELEKID) + .2byte EC_WORD_ELSE + .2byte EC_MOVE2(EMBER) + .2byte EC_WORD_EMERALD + .2byte EC_MOVE(ENCORE) + .2byte EC_WORD_ENCYCLOPEDIA + .2byte EC_WORD_END + .2byte EC_MOVE(ENDEAVOR) + .2byte EC_MOVE(ENDURE) + .2byte EC_WORD_ENJOY + .2byte EC_WORD_ENJOYS + .2byte EC_WORD_ENOUGH + .2byte EC_POKEMON2(ENTEI) + .2byte EC_WORD_ENTERTAINING + .2byte EC_MOVE2(ERUPTION) + .2byte EC_WORD_ESCAPE + .2byte EC_POKEMON2(ESPEON) + .2byte EC_WORD_EVEN_SO + .2byte EC_WORD_EVENT + .2byte EC_WORD_EVENTS + .2byte EC_WORD_EVER + .2byte EC_WORD_EVERY + .2byte EC_WORD_EVOLUTION + .2byte EC_WORD_EVOLVE + .2byte EC_WORD_EXCELLENT + .2byte EC_WORD_EXCESS + .2byte EC_WORD_EXCITE + .2byte EC_WORD_EXCITING + .2byte EC_WORD_EXCUSE + .2byte EC_WORD_EXCUSE_ME + .2byte EC_POKEMON2(EXEGGCUTE) + .2byte EC_POKEMON2(EXEGGUTOR) + .2byte EC_WORD_EXISTS + .2byte EC_WORD_EXPENSIVE + .2byte EC_MOVE2(EXPLOSION) + .2byte EC_POKEMON(EXPLOUD) + .2byte EC_MOVE(EXTRASENSORY) + .2byte EC_MOVE(EXTREME_SPEED) gEasyChatWordsByLetter_F:: @ 859D468 - ec_word FABULOUS - ec_move1 FACADE - ec_word FAINT - ec_move2 FAINT_ATTACK - ec_word FAINTED - ec_move2 FAKE_OUT - ec_move1 FAKE_TEARS - ec_word FALL - ec_move2 FALSE_SWIPE - ec_word FAMILY - ec_word FANTASTIC - ec_word FAR - ec_pokemon2 FARFETCH_D - ec_word FASHION - ec_word FAST - ec_word FATHER - ec_word FEAR - ec_pokemon2 FEAROW - ec_move2 FEATHER_DANCE - ec_pokemon1 FEEBAS - ec_word FEELING - ec_pokemon2 FERALIGATR - ec_word FESTIVAL - ec_word FEVER - ec_word FIERY - ec_word FIGHT - ec_word FIGHTING - ec_word FIGHTS - ec_word FINAL - ec_word FINALLY - ec_word FINISH - ec_word FIRE - ec_move2 FIRE_BLAST - ec_move2 FIRE_PUNCH - ec_move2 FIRE_SPIN - ec_word FISHING - ec_move1 FISSURE - ec_pokemon2 FLAAFFY - ec_move1 FLAIL - ec_word FLAME - ec_word FLAME_BODY - ec_move1 FLAME_WHEEL - ec_move1 FLAMETHROWER - ec_pokemon2 FLAREON - ec_move2 FLASH - ec_word FLASH_FIRE - ec_word FLATTEN - ec_move1 FLATTER - ec_word FLOWERS - ec_move1 FLY - ec_pokemon1 FLYGON - ec_word FLYING - ec_move1 FOCUS_ENERGY - ec_move1 FOCUS_PUNCH - ec_word FOE - ec_move1 FOLLOW_ME - ec_word FOR - ec_word FOR_NOW - ec_word FORECAST - ec_move2 FORESIGHT - ec_word FOREVER - ec_word FORGET - ec_word FORGETS - ec_word FORGIVE - ec_pokemon2 FORRETRESS - ec_move2 FRENZY_PLANT - ec_word FRIDAY - ec_word FRIEND - ec_word FROM - ec_word FRONT - ec_word FRONTIER - ec_move2 FRUSTRATION - ec_word FUFUFU - ec_word FULL - ec_word FUNNY - ec_pokemon2 FURRET - ec_move2 FURY_ATTACK - ec_move2 FURY_CUTTER - ec_move2 FURY_SWIPES - ec_move2 FUTURE_SIGHT + .2byte EC_WORD_FABULOUS + .2byte EC_MOVE(FACADE) + .2byte EC_WORD_FAINT + .2byte EC_MOVE2(FAINT_ATTACK) + .2byte EC_WORD_FAINTED + .2byte EC_MOVE2(FAKE_OUT) + .2byte EC_MOVE(FAKE_TEARS) + .2byte EC_WORD_FALL + .2byte EC_MOVE2(FALSE_SWIPE) + .2byte EC_WORD_FAMILY + .2byte EC_WORD_FANTASTIC + .2byte EC_WORD_FAR + .2byte EC_POKEMON2(FARFETCHD) + .2byte EC_WORD_FASHION + .2byte EC_WORD_FAST + .2byte EC_WORD_FATHER + .2byte EC_WORD_FEAR + .2byte EC_POKEMON2(FEAROW) + .2byte EC_MOVE2(FEATHER_DANCE) + .2byte EC_POKEMON(FEEBAS) + .2byte EC_WORD_FEELING + .2byte EC_POKEMON2(FERALIGATR) + .2byte EC_WORD_FESTIVAL + .2byte EC_WORD_FEVER + .2byte EC_WORD_FIERY + .2byte EC_WORD_FIGHT + .2byte EC_WORD_FIGHTING + .2byte EC_WORD_FIGHTS + .2byte EC_WORD_FINAL + .2byte EC_WORD_FINALLY + .2byte EC_WORD_FINISH + .2byte EC_WORD_FIRE + .2byte EC_MOVE2(FIRE_BLAST) + .2byte EC_MOVE2(FIRE_PUNCH) + .2byte EC_MOVE2(FIRE_SPIN) + .2byte EC_WORD_FISHING + .2byte EC_MOVE(FISSURE) + .2byte EC_POKEMON2(FLAAFFY) + .2byte EC_MOVE(FLAIL) + .2byte EC_WORD_FLAME + .2byte EC_WORD_FLAME_BODY + .2byte EC_MOVE(FLAME_WHEEL) + .2byte EC_MOVE(FLAMETHROWER) + .2byte EC_POKEMON2(FLAREON) + .2byte EC_MOVE2(FLASH) + .2byte EC_WORD_FLASH_FIRE + .2byte EC_WORD_FLATTEN + .2byte EC_MOVE(FLATTER) + .2byte EC_WORD_FLOWERS + .2byte EC_MOVE(FLY) + .2byte EC_POKEMON(FLYGON) + .2byte EC_WORD_FLYING + .2byte EC_MOVE(FOCUS_ENERGY) + .2byte EC_MOVE(FOCUS_PUNCH) + .2byte EC_WORD_FOE + .2byte EC_MOVE(FOLLOW_ME) + .2byte EC_WORD_FOR + .2byte EC_WORD_FOR_NOW + .2byte EC_WORD_FORECAST + .2byte EC_MOVE2(FORESIGHT) + .2byte EC_WORD_FOREVER + .2byte EC_WORD_FORGET + .2byte EC_WORD_FORGETS + .2byte EC_WORD_FORGIVE + .2byte EC_POKEMON2(FORRETRESS) + .2byte EC_MOVE2(FRENZY_PLANT) + .2byte EC_WORD_FRIDAY + .2byte EC_WORD_FRIEND + .2byte EC_WORD_FROM + .2byte EC_WORD_FRONT + .2byte EC_WORD_FRONTIER + .2byte EC_MOVE2(FRUSTRATION) + .2byte EC_WORD_FUFUFU + .2byte EC_WORD_FULL + .2byte EC_WORD_FUNNY + .2byte EC_POKEMON2(FURRET) + .2byte EC_MOVE2(FURY_ATTACK) + .2byte EC_MOVE2(FURY_CUTTER) + .2byte EC_MOVE2(FURY_SWIPES) + .2byte EC_MOVE2(FUTURE_SIGHT) gEasyChatWordsByLetter_G:: @ 859D508 - ec_word GAME - ec_pokemon1 GARDEVOIR - ec_pokemon2 GASTLY - ec_pokemon2 GENGAR - ec_word GENIUS - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 GEODUDE - ec_pokemon2 GEODUDE - ec_word GET - ec_word GETS - ec_word GHOST - ec_word GIDDY - ec_move1 GIGA_DRAIN - ec_word GIGGLE - ec_word GIMME - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 GIRAFARIG - ec_pokemon2 GIRAFARIG - ec_word GIRL - ec_word GIVE - ec_word GIVE_ME - ec_word GIVE_UP - ec_word GIVES - ec_pokemon1 GLALIE - ec_move2 GLARE - ec_pokemon2 GLIGAR - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 GLOOM - ec_pokemon2 GLOOM - ec_word GO - ec_word GO_AHEAD - ec_word GO_EASY - ec_word GO_HOME - ec_word GOES - ec_word GOING - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 GOLBAT - ec_pokemon2 GOLBAT - ec_word GOLD - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 GOLDEEN - ec_pokemon2 GOLDEEN - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 GOLDUCK - ec_pokemon2 GOLDUCK - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 GOLEM - ec_pokemon2 GOLEM - ec_word GOOD - ec_word GOOD_BYE - ec_pokemon1 GOREBYSS - ec_word GOT - ec_word GOTCHA - ec_word GOURMET - ec_word GRAAAH - ec_pokemon2 GRANBULL - ec_word GRANDFATHER - ec_word GRANDMOTHER - ec_word GRASS - ec_move1 GRASS_WHISTLE - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 GRAVELER - ec_pokemon2 GRAVELER - ec_word GREAT - ec_word GREEN - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 GRIMER - ec_pokemon2 GRIMER - ec_pokemon1 GROUDON - ec_word GROUND - ec_word GROUP - ec_pokemon1 GROVYLE - ec_move2 GROWL - ec_pokemon2 GROWLITHE - ec_move1 GROWTH - ec_move1 GRUDGE - ec_pokemon1 GRUMPIG - ec_word GUARD - ec_move2 GUILLOTINE - ec_pokemon1 GULPIN - ec_move1 GUST - ec_word GUTS - ec_word GUTSY - ec_word GWAH - ec_word GWAHAHAHA - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 GYARADOS - ec_pokemon2 GYARADOS + .2byte EC_WORD_GAME + .2byte EC_POKEMON(GARDEVOIR) + .2byte EC_POKEMON2(GASTLY) + .2byte EC_POKEMON2(GENGAR) + .2byte EC_WORD_GENIUS + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(GEODUDE) + .2byte EC_POKEMON2(GEODUDE) + .2byte EC_WORD_GET + .2byte EC_WORD_GETS + .2byte EC_WORD_GHOST + .2byte EC_WORD_GIDDY + .2byte EC_MOVE(GIGA_DRAIN) + .2byte EC_WORD_GIGGLE + .2byte EC_WORD_GIMME + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(GIRAFARIG) + .2byte EC_POKEMON2(GIRAFARIG) + .2byte EC_WORD_GIRL + .2byte EC_WORD_GIVE + .2byte EC_WORD_GIVE_ME + .2byte EC_WORD_GIVE_UP + .2byte EC_WORD_GIVES + .2byte EC_POKEMON(GLALIE) + .2byte EC_MOVE2(GLARE) + .2byte EC_POKEMON2(GLIGAR) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(GLOOM) + .2byte EC_POKEMON2(GLOOM) + .2byte EC_WORD_GO + .2byte EC_WORD_GO_AHEAD + .2byte EC_WORD_GO_EASY + .2byte EC_WORD_GO_HOME + .2byte EC_WORD_GOES + .2byte EC_WORD_GOING + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(GOLBAT) + .2byte EC_POKEMON2(GOLBAT) + .2byte EC_WORD_GOLD + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(GOLDEEN) + .2byte EC_POKEMON2(GOLDEEN) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(GOLDUCK) + .2byte EC_POKEMON2(GOLDUCK) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(GOLEM) + .2byte EC_POKEMON2(GOLEM) + .2byte EC_WORD_GOOD + .2byte EC_WORD_GOOD_BYE + .2byte EC_POKEMON(GOREBYSS) + .2byte EC_WORD_GOT + .2byte EC_WORD_GOTCHA + .2byte EC_WORD_GOURMET + .2byte EC_WORD_GRAAAH + .2byte EC_POKEMON2(GRANBULL) + .2byte EC_WORD_GRANDFATHER + .2byte EC_WORD_GRANDMOTHER + .2byte EC_WORD_GRASS + .2byte EC_MOVE(GRASS_WHISTLE) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(GRAVELER) + .2byte EC_POKEMON2(GRAVELER) + .2byte EC_WORD_GREAT + .2byte EC_WORD_GREEN + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(GRIMER) + .2byte EC_POKEMON2(GRIMER) + .2byte EC_POKEMON(GROUDON) + .2byte EC_WORD_GROUND + .2byte EC_WORD_GROUP + .2byte EC_POKEMON(GROVYLE) + .2byte EC_MOVE2(GROWL) + .2byte EC_POKEMON2(GROWLITHE) + .2byte EC_MOVE(GROWTH) + .2byte EC_MOVE(GRUDGE) + .2byte EC_POKEMON(GRUMPIG) + .2byte EC_WORD_GUARD + .2byte EC_MOVE2(GUILLOTINE) + .2byte EC_POKEMON(GULPIN) + .2byte EC_MOVE(GUST) + .2byte EC_WORD_GUTS + .2byte EC_WORD_GUTSY + .2byte EC_WORD_GWAH + .2byte EC_WORD_GWAHAHAHA + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(GYARADOS) + .2byte EC_POKEMON2(GYARADOS) gEasyChatWordsByLetter_H:: @ 859D5CC - ec_word HABIT - ec_word HAH - ec_word HAHAHA - ec_move1 HAIL - ec_word HALL_OF_FAME - ec_word HAPPENING - ec_word HAPPILY - ec_word HAPPINESS - ec_word HAPPY - ec_word HARD - ec_move1 HARDEN - ec_pokemon1 HARIYAMA - ec_word HAS - ec_word HASSLE - ec_pokemon2 HAUNTER - ec_word HAVE - ec_word HAVEN_T - ec_move1 HAZE - ec_word HE - ec_word HE_S - ec_move1 HEADBUTT - ec_move1 HEAL_BELL - ec_word HEALTHY - ec_word HEAR - ec_word HEARING - ec_word HEARS - ec_word HEART - ec_move2 HEAT_WAVE - ec_word HEH - ec_word HEHE - ec_word HEHEHE - ec_word HELLO - ec_move2 HELPING_HAND - ec_word HER - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 HERACROSS - ec_pokemon2 HERACROSS - ec_word HERE - ec_word HERE_GOES - ec_word HERE_I_COME - ec_word HERE_IT_IS - ec_word HERO - ec_word HEROINE - ec_word HERS - ec_word HEY - ec_word HEY_THERE - ec_word HEY_QUES - ec_word HI - ec_move2 HI_JUMP_KICK - ec_word HIDDEN - ec_move2 HIDDEN_POWER - ec_word HIGH - ec_word HIGHS - ec_word HIM - ec_word HIP_AND - ec_word HIS - ec_word HIT - ec_pokemon2 HITMONCHAN - ec_pokemon2 HITMONLEE - ec_pokemon2 HITMONTOP - ec_word HIYAH - ec_word HMM - ec_pokemon2 HO_OH - ec_word HOBBY - ec_word HOHOHO - ec_word HOLIDAY - ec_word HOME - ec_word HOO_HAH - ec_pokemon2 HOOTHOOT - ec_word HOPELESS - ec_pokemon2 HOPPIP - ec_move2 HORN_ATTACK - ec_move2 HORN_DRILL - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 HORSEA - ec_pokemon2 HORSEA - ec_word HOT - ec_pokemon2 HOUNDOOM - ec_pokemon2 HOUNDOUR - ec_word HOW - ec_word HOW_DO - ec_word HOWEVER - ec_move2 HOWL - ec_word HUGE_POWER - ec_word HUH_QUES - ec_word HUMPH - ec_word HUNGRY - ec_pokemon1 HUNTAIL - ec_word HURRIED - ec_word HUSTLE - ec_move2 HYDRO_CANNON - ec_move2 HYDRO_PUMP - ec_word HYPER - ec_move2 HYPER_BEAM - ec_word HYPER_CUTTER - ec_move2 HYPER_FANG - ec_move2 HYPER_VOICE - ec_pokemon2 HYPNO - ec_move1 HYPNOSIS + .2byte EC_WORD_HABIT + .2byte EC_WORD_HAH + .2byte EC_WORD_HAHAHA + .2byte EC_MOVE(HAIL) + .2byte EC_WORD_HALL_OF_FAME + .2byte EC_WORD_HAPPENING + .2byte EC_WORD_HAPPILY + .2byte EC_WORD_HAPPINESS + .2byte EC_WORD_HAPPY + .2byte EC_WORD_HARD + .2byte EC_MOVE(HARDEN) + .2byte EC_POKEMON(HARIYAMA) + .2byte EC_WORD_HAS + .2byte EC_WORD_HASSLE + .2byte EC_POKEMON2(HAUNTER) + .2byte EC_WORD_HAVE + .2byte EC_WORD_HAVEN_T + .2byte EC_MOVE(HAZE) + .2byte EC_WORD_HE + .2byte EC_WORD_HE_S + .2byte EC_MOVE(HEADBUTT) + .2byte EC_MOVE(HEAL_BELL) + .2byte EC_WORD_HEALTHY + .2byte EC_WORD_HEAR + .2byte EC_WORD_HEARING + .2byte EC_WORD_HEARS + .2byte EC_WORD_HEART + .2byte EC_MOVE2(HEAT_WAVE) + .2byte EC_WORD_HEH + .2byte EC_WORD_HEHE + .2byte EC_WORD_HEHEHE + .2byte EC_WORD_HELLO + .2byte EC_MOVE2(HELPING_HAND) + .2byte EC_WORD_HER + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(HERACROSS) + .2byte EC_POKEMON2(HERACROSS) + .2byte EC_WORD_HERE + .2byte EC_WORD_HERE_GOES + .2byte EC_WORD_HERE_I_COME + .2byte EC_WORD_HERE_IT_IS + .2byte EC_WORD_HERO + .2byte EC_WORD_HEROINE + .2byte EC_WORD_HERS + .2byte EC_WORD_HEY + .2byte EC_WORD_HEY_THERE + .2byte EC_WORD_HEY_QUES + .2byte EC_WORD_HI + .2byte EC_MOVE2(HI_JUMP_KICK) + .2byte EC_WORD_HIDDEN + .2byte EC_MOVE2(HIDDEN_POWER) + .2byte EC_WORD_HIGH + .2byte EC_WORD_HIGHS + .2byte EC_WORD_HIM + .2byte EC_WORD_HIP_AND + .2byte EC_WORD_HIS + .2byte EC_WORD_HIT + .2byte EC_POKEMON2(HITMONCHAN) + .2byte EC_POKEMON2(HITMONLEE) + .2byte EC_POKEMON2(HITMONTOP) + .2byte EC_WORD_HIYAH + .2byte EC_WORD_HMM + .2byte EC_POKEMON2(HO_OH) + .2byte EC_WORD_HOBBY + .2byte EC_WORD_HOHOHO + .2byte EC_WORD_HOLIDAY + .2byte EC_WORD_HOME + .2byte EC_WORD_HOO_HAH + .2byte EC_POKEMON2(HOOTHOOT) + .2byte EC_WORD_HOPELESS + .2byte EC_POKEMON2(HOPPIP) + .2byte EC_MOVE2(HORN_ATTACK) + .2byte EC_MOVE2(HORN_DRILL) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(HORSEA) + .2byte EC_POKEMON2(HORSEA) + .2byte EC_WORD_HOT + .2byte EC_POKEMON2(HOUNDOOM) + .2byte EC_POKEMON2(HOUNDOUR) + .2byte EC_WORD_HOW + .2byte EC_WORD_HOW_DO + .2byte EC_WORD_HOWEVER + .2byte EC_MOVE2(HOWL) + .2byte EC_WORD_HUGE_POWER + .2byte EC_WORD_HUH_QUES + .2byte EC_WORD_HUMPH + .2byte EC_WORD_HUNGRY + .2byte EC_POKEMON(HUNTAIL) + .2byte EC_WORD_HURRIED + .2byte EC_WORD_HUSTLE + .2byte EC_MOVE2(HYDRO_CANNON) + .2byte EC_MOVE2(HYDRO_PUMP) + .2byte EC_WORD_HYPER + .2byte EC_MOVE2(HYPER_BEAM) + .2byte EC_WORD_HYPER_CUTTER + .2byte EC_MOVE2(HYPER_FANG) + .2byte EC_MOVE2(HYPER_VOICE) + .2byte EC_POKEMON2(HYPNO) + .2byte EC_MOVE(HYPNOSIS) gEasyChatWordsByLetter_I:: @ 859D696 - ec_word I - ec_word I_AM - ec_word I_CHOOSE_YOU - ec_word I_WAS - ec_word I_VE - ec_word I_VE_ARRIVED - ec_word ICE - ec_move1 ICE_BALL - ec_move2 ICE_BEAM - ec_move2 ICE_PUNCH - ec_move2 ICICLE_SPEAR - ec_move1 ICY_WIND - ec_word IDOL - ec_word IF - ec_word IF_I_LOSE - ec_word IF_I_WIN - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 IGGLYBUFF - ec_pokemon2 IGGLYBUFF - ec_word IGNORANT - ec_word ILLUMINATE - ec_pokemon1 ILLUMISE - ec_word IMMUNITY - ec_word IMPORTANT - ec_word IMPOSSIBLE - ec_move2 IMPRISON - ec_word IN - ec_word INCREASING - ec_word INCREDIBLE - ec_word INFORMATION - ec_move2 INGRAIN - ec_word INNER_FOCUS - ec_word INSIDE - ec_word INSOMNIA - ec_word INSTEAD - ec_word INTIMIDATE - ec_word INVINCIBLE - ec_move2 IRON_DEFENSE - ec_move1 IRON_TAIL - ec_word IS - ec_word IS_IT_QUES - ec_word ISN_T - ec_word ISN_T_IT_QUES - ec_word IT - ec_word IT_S - ec_word ITEM - ec_pokemon2 IVYSAUR + .2byte EC_WORD_I + .2byte EC_WORD_I_AM + .2byte EC_WORD_I_CHOOSE_YOU + .2byte EC_WORD_I_WAS + .2byte EC_WORD_I_VE + .2byte EC_WORD_I_VE_ARRIVED + .2byte EC_WORD_ICE + .2byte EC_MOVE(ICE_BALL) + .2byte EC_MOVE2(ICE_BEAM) + .2byte EC_MOVE2(ICE_PUNCH) + .2byte EC_MOVE2(ICICLE_SPEAR) + .2byte EC_MOVE(ICY_WIND) + .2byte EC_WORD_IDOL + .2byte EC_WORD_IF + .2byte EC_WORD_IF_I_LOSE + .2byte EC_WORD_IF_I_WIN + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(IGGLYBUFF) + .2byte EC_POKEMON2(IGGLYBUFF) + .2byte EC_WORD_IGNORANT + .2byte EC_WORD_ILLUMINATE + .2byte EC_POKEMON(ILLUMISE) + .2byte EC_WORD_IMMUNITY + .2byte EC_WORD_IMPORTANT + .2byte EC_WORD_IMPOSSIBLE + .2byte EC_MOVE2(IMPRISON) + .2byte EC_WORD_IN + .2byte EC_WORD_INCREASING + .2byte EC_WORD_INCREDIBLE + .2byte EC_WORD_INFORMATION + .2byte EC_MOVE2(INGRAIN) + .2byte EC_WORD_INNER_FOCUS + .2byte EC_WORD_INSIDE + .2byte EC_WORD_INSOMNIA + .2byte EC_WORD_INSTEAD + .2byte EC_WORD_INTIMIDATE + .2byte EC_WORD_INVINCIBLE + .2byte EC_MOVE2(IRON_DEFENSE) + .2byte EC_MOVE(IRON_TAIL) + .2byte EC_WORD_IS + .2byte EC_WORD_IS_IT_QUES + .2byte EC_WORD_ISN_T + .2byte EC_WORD_ISN_T_IT_QUES + .2byte EC_WORD_IT + .2byte EC_WORD_IT_S + .2byte EC_WORD_ITEM + .2byte EC_POKEMON2(IVYSAUR) gEasyChatWordsByLetter_J:: @ 859D6F6 .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 JIGGLYPUFF - ec_pokemon2 JIGGLYPUFF - ec_pokemon1 JIRACHI - ec_word JOKING - ec_pokemon2 JOLTEON - ec_word JOY - ec_word JUDGE - ec_move2 JUMP_KICK - ec_pokemon2 JUMPLUFF - ec_word JUST - ec_pokemon2 JYNX + .2byte EC_POKEMON(JIGGLYPUFF) + .2byte EC_POKEMON2(JIGGLYPUFF) + .2byte EC_POKEMON(JIRACHI) + .2byte EC_WORD_JOKING + .2byte EC_POKEMON2(JOLTEON) + .2byte EC_WORD_JOY + .2byte EC_WORD_JUDGE + .2byte EC_MOVE2(JUMP_KICK) + .2byte EC_POKEMON2(JUMPLUFF) + .2byte EC_WORD_JUST + .2byte EC_POKEMON2(JYNX) gEasyChatWordsByLetter_K:: @ 859D710 - ec_pokemon2 KABUTO - ec_pokemon2 KABUTOPS - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 KADABRA - ec_pokemon2 KADABRA - ec_pokemon2 KAKUNA - ec_pokemon2 KANGASKHAN - ec_move1 KARATE_CHOP - ec_pokemon1 KECLEON - ec_word KEEN_EYE - ec_word KID - ec_word KIDDING - ec_word KIND - ec_word KINDERGARTEN - ec_move1 KINESIS - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 KINGDRA - ec_pokemon2 KINGDRA - ec_pokemon2 KINGLER - ec_pokemon1 KIRLIA - ec_move2 KNOCK_OFF - ec_word KNOCKOUT - ec_word KNOW - ec_word KNOWS - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 KOFFING - ec_pokemon2 KOFFING - ec_pokemon2 KRABBY - ec_word KTHX_BYE - ec_pokemon1 KYOGRE + .2byte EC_POKEMON2(KABUTO) + .2byte EC_POKEMON2(KABUTOPS) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(KADABRA) + .2byte EC_POKEMON2(KADABRA) + .2byte EC_POKEMON2(KAKUNA) + .2byte EC_POKEMON2(KANGASKHAN) + .2byte EC_MOVE(KARATE_CHOP) + .2byte EC_POKEMON(KECLEON) + .2byte EC_WORD_KEEN_EYE + .2byte EC_WORD_KID + .2byte EC_WORD_KIDDING + .2byte EC_WORD_KIND + .2byte EC_WORD_KINDERGARTEN + .2byte EC_MOVE(KINESIS) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(KINGDRA) + .2byte EC_POKEMON2(KINGDRA) + .2byte EC_POKEMON2(KINGLER) + .2byte EC_POKEMON(KIRLIA) + .2byte EC_MOVE2(KNOCK_OFF) + .2byte EC_WORD_KNOCKOUT + .2byte EC_WORD_KNOW + .2byte EC_WORD_KNOWS + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(KOFFING) + .2byte EC_POKEMON2(KOFFING) + .2byte EC_POKEMON2(KRABBY) + .2byte EC_WORD_KTHX_BYE + .2byte EC_POKEMON(KYOGRE) gEasyChatWordsByLetter_L:: @ 859D752 - ec_word LACKING - ec_word LACKS - ec_word LADY - ec_pokemon1 LAIRON - ec_word LALALA - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 LANTURN - ec_pokemon2 LANTURN - ec_pokemon2 LAPRAS - ec_pokemon2 LARVITAR - ec_word LAST - ec_word LATE - ec_word LATER - ec_pokemon1 LATIAS - ec_pokemon1 LATIOS - ec_word LAVISH - ec_word LAY - ec_word LEADER - ec_word LEADERS - ec_word LEAF - ec_move2 LEAF_BLADE - ec_word LEARN - ec_pokemon2 LEDIAN - ec_pokemon2 LEDYBA - ec_move1 LEECH_LIFE - ec_move2 LEECH_SEED - ec_move2 LEER - ec_word LEFT - ec_word LEGEND - ec_word LESS - ec_word LESSONS - ec_word LET_ME_WIN - ec_word LET_S - ec_word LETTER - ec_word LEVEL - ec_word LEVITATE - ec_move1 LICK - ec_pokemon2 LICKITUNG - ec_word LIE - ec_word LIFE - ec_move2 LIGHT_SCREEN - ec_word LIGHTNINGROD - ec_word LIKE - ec_word LIKELY_TO - ec_word LIKES - ec_pokemon1 LILEEP - ec_word LIMBER - ec_word LINK - ec_pokemon1 LINOONE - ec_word LIQUID_OOZE - ec_word LISTEN - ec_word LISTENING - ec_word LISTENS - ec_word LIVING - ec_move2 LOCK_ON - ec_word LOCOMOTIVE - ec_word LOL - ec_word LOLLING - ec_pokemon1 LOMBRE - ec_word LONESOME - ec_word LOOK - ec_word LOOKS - ec_word LOSE - ec_word LOSER - ec_word LOSING - ec_word LOSS - ec_word LOST - ec_pokemon1 LOTAD - ec_pokemon1 LOUDRED - ec_word LOUSY - ec_move1 LOVELY_KISS - ec_word LOVEY_DOVEY - ec_word LOW - ec_move1 LOW_KICK - ec_word LOWS - ec_pokemon1 LUDICOLO - ec_pokemon2 LUGIA - ec_word LUKEWARM - ec_pokemon1 LUNATONE - ec_move2 LUSTER_PURGE - ec_pokemon1 LUVDISC + .2byte EC_WORD_LACKING + .2byte EC_WORD_LACKS + .2byte EC_WORD_LADY + .2byte EC_POKEMON(LAIRON) + .2byte EC_WORD_LALALA + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(LANTURN) + .2byte EC_POKEMON2(LANTURN) + .2byte EC_POKEMON2(LAPRAS) + .2byte EC_POKEMON2(LARVITAR) + .2byte EC_WORD_LAST + .2byte EC_WORD_LATE + .2byte EC_WORD_LATER + .2byte EC_POKEMON(LATIAS) + .2byte EC_POKEMON(LATIOS) + .2byte EC_WORD_LAVISH + .2byte EC_WORD_LAY + .2byte EC_WORD_LEADER + .2byte EC_WORD_LEADERS + .2byte EC_WORD_LEAF + .2byte EC_MOVE2(LEAF_BLADE) + .2byte EC_WORD_LEARN + .2byte EC_POKEMON2(LEDIAN) + .2byte EC_POKEMON2(LEDYBA) + .2byte EC_MOVE(LEECH_LIFE) + .2byte EC_MOVE2(LEECH_SEED) + .2byte EC_MOVE2(LEER) + .2byte EC_WORD_LEFT + .2byte EC_WORD_LEGEND + .2byte EC_WORD_LESS + .2byte EC_WORD_LESSONS + .2byte EC_WORD_LET_ME_WIN + .2byte EC_WORD_LET_S + .2byte EC_WORD_LETTER + .2byte EC_WORD_LEVEL + .2byte EC_WORD_LEVITATE + .2byte EC_MOVE(LICK) + .2byte EC_POKEMON2(LICKITUNG) + .2byte EC_WORD_LIE + .2byte EC_WORD_LIFE + .2byte EC_MOVE2(LIGHT_SCREEN) + .2byte EC_WORD_LIGHTNINGROD + .2byte EC_WORD_LIKE + .2byte EC_WORD_LIKELY_TO + .2byte EC_WORD_LIKES + .2byte EC_POKEMON(LILEEP) + .2byte EC_WORD_LIMBER + .2byte EC_WORD_LINK + .2byte EC_POKEMON(LINOONE) + .2byte EC_WORD_LIQUID_OOZE + .2byte EC_WORD_LISTEN + .2byte EC_WORD_LISTENING + .2byte EC_WORD_LISTENS + .2byte EC_WORD_LIVING + .2byte EC_MOVE2(LOCK_ON) + .2byte EC_WORD_LOCOMOTIVE + .2byte EC_WORD_LOL + .2byte EC_WORD_LOLLING + .2byte EC_POKEMON(LOMBRE) + .2byte EC_WORD_LONESOME + .2byte EC_WORD_LOOK + .2byte EC_WORD_LOOKS + .2byte EC_WORD_LOSE + .2byte EC_WORD_LOSER + .2byte EC_WORD_LOSING + .2byte EC_WORD_LOSS + .2byte EC_WORD_LOST + .2byte EC_POKEMON(LOTAD) + .2byte EC_POKEMON(LOUDRED) + .2byte EC_WORD_LOUSY + .2byte EC_MOVE(LOVELY_KISS) + .2byte EC_WORD_LOVEY_DOVEY + .2byte EC_WORD_LOW + .2byte EC_MOVE(LOW_KICK) + .2byte EC_WORD_LOWS + .2byte EC_POKEMON(LUDICOLO) + .2byte EC_POKEMON2(LUGIA) + .2byte EC_WORD_LUKEWARM + .2byte EC_POKEMON(LUNATONE) + .2byte EC_MOVE2(LUSTER_PURGE) + .2byte EC_POKEMON(LUVDISC) gEasyChatWordsByLetter_M:: @ 859D7F6 - ec_move2 MACH_PUNCH - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 MACHAMP - ec_pokemon2 MACHAMP - ec_word MACHINE - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 MACHOKE - ec_pokemon2 MACHOKE - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 MACHOP - ec_pokemon2 MACHOP - ec_word MAGAZINE - ec_pokemon2 MAGBY - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 MAGCARGO - ec_pokemon2 MAGCARGO - ec_move2 MAGIC_COAT - ec_move2 MAGICAL_LEAF - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 MAGIKARP - ec_pokemon2 MAGIKARP - ec_word MAGMA_ARMOR - ec_pokemon2 MAGMAR - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 MAGNEMITE - ec_pokemon2 MAGNEMITE - ec_word MAGNET_PULL - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 MAGNETON - ec_pokemon2 MAGNETON - ec_move2 MAGNITUDE - ec_word MAIL - ec_word MAKE - ec_word MAKING - ec_pokemon1 MAKUHITA - ec_word MAN - ec_pokemon1 MANECTRIC - ec_pokemon2 MANKEY - ec_pokemon2 MANTINE - ec_pokemon2 MAREEP - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 MARILL - ec_pokemon2 MARILL - ec_pokemon2 MAROWAK - ec_pokemon1 MARSHTOMP - ec_word MARVEL_SCALE - ec_pokemon1 MASQUERAIN - ec_word MASTER - ec_word MATCH - ec_word MATCH_UP - ec_pokemon1 MAWILE - ec_word MAYBE - ec_word MC - ec_word ME - ec_word MEAN - ec_move1 MEAN_LOOK - ec_pokemon1 MEDICHAM - ec_move2 MEDITATE - ec_pokemon1 MEDITITE - ec_word MEET - ec_word MEET_YOU - ec_word MEETS - ec_word MEGA - ec_move2 MEGA_DRAIN - ec_move2 MEGA_KICK - ec_move2 MEGA_PUNCH - ec_move2 MEGAHORN - ec_pokemon2 MEGANIUM - ec_move1 MEMENTO - ec_pokemon2 MEOWTH - ec_word MESSAGE - ec_pokemon1 METAGROSS - ec_move2 METAL_CLAW - ec_move1 METAL_SOUND - ec_pokemon1 METANG - ec_pokemon2 METAPOD - ec_move1 METEOR_MASH - ec_move2 METRONOME - ec_pokemon2 MEW - ec_pokemon2 MEWTWO - ec_pokemon1 MIGHTYENA - ec_move2 MILK_DRINK - ec_pokemon1 MILOTIC - ec_pokemon2 MILTANK - ec_move2 MIMIC - ec_move1 MIND_READER - ec_move2 MINIMIZE - ec_pokemon1 MINUN - ec_word MINUS - ec_move2 MIRROR_COAT - ec_move1 MIRROR_MOVE - ec_pokemon2 MISDREAVUS - ec_word MISHEARD - ec_word MISS - ec_move1 MIST - ec_move2 MIST_BALL - ec_word MISTAKE - ec_word MMM - ec_word MODE - ec_word MODERN - ec_pokemon2 MOLTRES - ec_word MOMENTUM - ec_word MONDAY - ec_word MONEY - ec_word MONTH - ec_word MOOD - ec_move2 MOONLIGHT - ec_word MORE - ec_word MORNING - ec_move1 MORNING_SUN - ec_word MOTHER - ec_word MOVE - ec_word MOVIE - ec_word MR - ec_pokemon2 MR_MIME - ec_word MRS - ec_word MUCH - ec_word MUCH_OBLIGED - ec_move2 MUD_SHOT - ec_move2 MUD_SPORT - ec_move2 MUD_SLAP - ec_move2 MUDDY_WATER - ec_pokemon1 MUDKIP - ec_word MUFUFU - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 MUK - ec_pokemon2 MUK - ec_pokemon2 MURKROW - ec_word MUSIC - ec_word MUST_BE - ec_word MY - ec_word MYSELF - ec_word MYSTERY + .2byte EC_MOVE2(MACH_PUNCH) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(MACHAMP) + .2byte EC_POKEMON2(MACHAMP) + .2byte EC_WORD_MACHINE + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(MACHOKE) + .2byte EC_POKEMON2(MACHOKE) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(MACHOP) + .2byte EC_POKEMON2(MACHOP) + .2byte EC_WORD_MAGAZINE + .2byte EC_POKEMON2(MAGBY) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(MAGCARGO) + .2byte EC_POKEMON2(MAGCARGO) + .2byte EC_MOVE2(MAGIC_COAT) + .2byte EC_MOVE2(MAGICAL_LEAF) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(MAGIKARP) + .2byte EC_POKEMON2(MAGIKARP) + .2byte EC_WORD_MAGMA_ARMOR + .2byte EC_POKEMON2(MAGMAR) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(MAGNEMITE) + .2byte EC_POKEMON2(MAGNEMITE) + .2byte EC_WORD_MAGNET_PULL + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(MAGNETON) + .2byte EC_POKEMON2(MAGNETON) + .2byte EC_MOVE2(MAGNITUDE) + .2byte EC_WORD_MAIL + .2byte EC_WORD_MAKE + .2byte EC_WORD_MAKING + .2byte EC_POKEMON(MAKUHITA) + .2byte EC_WORD_MAN + .2byte EC_POKEMON(MANECTRIC) + .2byte EC_POKEMON2(MANKEY) + .2byte EC_POKEMON2(MANTINE) + .2byte EC_POKEMON2(MAREEP) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(MARILL) + .2byte EC_POKEMON2(MARILL) + .2byte EC_POKEMON2(MAROWAK) + .2byte EC_POKEMON(MARSHTOMP) + .2byte EC_WORD_MARVEL_SCALE + .2byte EC_POKEMON(MASQUERAIN) + .2byte EC_WORD_MASTER + .2byte EC_WORD_MATCH + .2byte EC_WORD_MATCH_UP + .2byte EC_POKEMON(MAWILE) + .2byte EC_WORD_MAYBE + .2byte EC_WORD_MC + .2byte EC_WORD_ME + .2byte EC_WORD_MEAN + .2byte EC_MOVE(MEAN_LOOK) + .2byte EC_POKEMON(MEDICHAM) + .2byte EC_MOVE2(MEDITATE) + .2byte EC_POKEMON(MEDITITE) + .2byte EC_WORD_MEET + .2byte EC_WORD_MEET_YOU + .2byte EC_WORD_MEETS + .2byte EC_WORD_MEGA + .2byte EC_MOVE2(MEGA_DRAIN) + .2byte EC_MOVE2(MEGA_KICK) + .2byte EC_MOVE2(MEGA_PUNCH) + .2byte EC_MOVE2(MEGAHORN) + .2byte EC_POKEMON2(MEGANIUM) + .2byte EC_MOVE(MEMENTO) + .2byte EC_POKEMON2(MEOWTH) + .2byte EC_WORD_MESSAGE + .2byte EC_POKEMON(METAGROSS) + .2byte EC_MOVE2(METAL_CLAW) + .2byte EC_MOVE(METAL_SOUND) + .2byte EC_POKEMON(METANG) + .2byte EC_POKEMON2(METAPOD) + .2byte EC_MOVE(METEOR_MASH) + .2byte EC_MOVE2(METRONOME) + .2byte EC_POKEMON2(MEW) + .2byte EC_POKEMON2(MEWTWO) + .2byte EC_POKEMON(MIGHTYENA) + .2byte EC_MOVE2(MILK_DRINK) + .2byte EC_POKEMON(MILOTIC) + .2byte EC_POKEMON2(MILTANK) + .2byte EC_MOVE2(MIMIC) + .2byte EC_MOVE(MIND_READER) + .2byte EC_MOVE2(MINIMIZE) + .2byte EC_POKEMON(MINUN) + .2byte EC_WORD_MINUS + .2byte EC_MOVE2(MIRROR_COAT) + .2byte EC_MOVE(MIRROR_MOVE) + .2byte EC_POKEMON2(MISDREAVUS) + .2byte EC_WORD_MISHEARD + .2byte EC_WORD_MISS + .2byte EC_MOVE(MIST) + .2byte EC_MOVE2(MIST_BALL) + .2byte EC_WORD_MISTAKE + .2byte EC_WORD_MMM + .2byte EC_WORD_MODE + .2byte EC_WORD_MODERN + .2byte EC_POKEMON2(MOLTRES) + .2byte EC_WORD_MOMENTUM + .2byte EC_WORD_MONDAY + .2byte EC_WORD_MONEY + .2byte EC_WORD_MONTH + .2byte EC_WORD_MOOD + .2byte EC_MOVE2(MOONLIGHT) + .2byte EC_WORD_MORE + .2byte EC_WORD_MORNING + .2byte EC_MOVE(MORNING_SUN) + .2byte EC_WORD_MOTHER + .2byte EC_WORD_MOVE + .2byte EC_WORD_MOVIE + .2byte EC_WORD_MR + .2byte EC_POKEMON2(MR_MIME) + .2byte EC_WORD_MRS + .2byte EC_WORD_MUCH + .2byte EC_WORD_MUCH_OBLIGED + .2byte EC_MOVE2(MUD_SHOT) + .2byte EC_MOVE2(MUD_SPORT) + .2byte EC_MOVE2(MUD_SLAP) + .2byte EC_MOVE2(MUDDY_WATER) + .2byte EC_POKEMON(MUDKIP) + .2byte EC_WORD_MUFUFU + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(MUK) + .2byte EC_POKEMON2(MUK) + .2byte EC_POKEMON2(MURKROW) + .2byte EC_WORD_MUSIC + .2byte EC_WORD_MUST_BE + .2byte EC_WORD_MY + .2byte EC_WORD_MYSELF + .2byte EC_WORD_MYSTERY gEasyChatWordsByLetter_N:: @ 859D912 - ec_word NAME - ec_word NAP - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 NATU - ec_pokemon2 NATU - ec_word NATURAL - ec_word NATURAL_CURE - ec_word NATURALLY - ec_word NATURE - ec_move1 NATURE_POWER - ec_word NEAR - ec_word NEARLY - ec_word NEED - ec_move2 NEEDLE_ARM - ec_word NEGATIVE - ec_word NEVER - ec_word NEW - ec_word NEWS - ec_word NEXT - ec_word NICE - ec_pokemon2 NIDOKING - ec_pokemon2 NIDOQUEEN - ec_pokemon2 NIDORAN_F - ec_pokemon2 NIDORAN_M - ec_pokemon2 NIDORINA - ec_pokemon2 NIDORINO - ec_word NIGHT - ec_move2 NIGHT_SHADE - ec_move1 NIGHTMARE - ec_word NIGHTTIME - ec_pokemon1 NINCADA - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 NINETALES - ec_pokemon2 NINETALES - ec_pokemon1 NINJASK - ec_word NITWIT - ec_word NO - ec_word NO_MATCH - ec_word NO_1 - ec_pokemon2 NOCTOWL - ec_word NOISY - ec_word NON_STOP - ec_word NONE - ec_word NOPE - ec_word NORMAL - ec_pokemon1 NOSEPASS - ec_word NOT - ec_word NOT_VERY - ec_word NOTHING - ec_word NOW - ec_pokemon1 NUMEL - ec_pokemon1 NUZLEAF + .2byte EC_WORD_NAME + .2byte EC_WORD_NAP + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(NATU) + .2byte EC_POKEMON2(NATU) + .2byte EC_WORD_NATURAL + .2byte EC_WORD_NATURAL_CURE + .2byte EC_WORD_NATURALLY + .2byte EC_WORD_NATURE + .2byte EC_MOVE(NATURE_POWER) + .2byte EC_WORD_NEAR + .2byte EC_WORD_NEARLY + .2byte EC_WORD_NEED + .2byte EC_MOVE2(NEEDLE_ARM) + .2byte EC_WORD_NEGATIVE + .2byte EC_WORD_NEVER + .2byte EC_WORD_NEW + .2byte EC_WORD_NEWS + .2byte EC_WORD_NEXT + .2byte EC_WORD_NICE + .2byte EC_POKEMON2(NIDOKING) + .2byte EC_POKEMON2(NIDOQUEEN) + .2byte EC_POKEMON2(NIDORAN_F) + .2byte EC_POKEMON2(NIDORAN_M) + .2byte EC_POKEMON2(NIDORINA) + .2byte EC_POKEMON2(NIDORINO) + .2byte EC_WORD_NIGHT + .2byte EC_MOVE2(NIGHT_SHADE) + .2byte EC_MOVE(NIGHTMARE) + .2byte EC_WORD_NIGHTTIME + .2byte EC_POKEMON(NINCADA) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(NINETALES) + .2byte EC_POKEMON2(NINETALES) + .2byte EC_POKEMON(NINJASK) + .2byte EC_WORD_NITWIT + .2byte EC_WORD_NO + .2byte EC_WORD_NO_MATCH + .2byte EC_WORD_NO_1 + .2byte EC_POKEMON2(NOCTOWL) + .2byte EC_WORD_NOISY + .2byte EC_WORD_NON_STOP + .2byte EC_WORD_NONE + .2byte EC_WORD_NOPE + .2byte EC_WORD_NORMAL + .2byte EC_POKEMON(NOSEPASS) + .2byte EC_WORD_NOT + .2byte EC_WORD_NOT_VERY + .2byte EC_WORD_NOTHING + .2byte EC_WORD_NOW + .2byte EC_POKEMON(NUMEL) + .2byte EC_POKEMON(NUZLEAF) gEasyChatWordsByLetter_O:: @ 859D97E - ec_word OBLIVIOUS - ec_move1 OCTAZOOKA - ec_pokemon2 OCTILLERY - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 ODDISH - ec_pokemon2 ODDISH - ec_move1 ODOR_SLEUTH - ec_word OF - ec_word OFF - ec_word OFFENSIVE - ec_word OH - ec_word OH_DEAR - ec_word OH_YEAH - ec_word OH_KAY - ec_word OH_QUES - ec_word OI - ec_word OI_OI_OI - ec_word OK_QUES - ec_word OKAY - ec_word OLD - ec_word OLDEN - ec_pokemon2 OMANYTE - ec_pokemon2 OMASTAR - ec_word ON - ec_word ONCE - ec_pokemon2 ONIX - ec_word ONLY - ec_word OOPS - ec_word OPPONENT - ec_word OPPOSITE - ec_word OR - ec_word OTHER - ec_word OUR - ec_word OUT - ec_move1 OUTRAGE - ec_word OUTSIDE - ec_word OVER - ec_word OVERDO - ec_word OVERGROW - ec_move1 OVERHEAT - ec_word OVERWHELMING - ec_word OWN - ec_word OWN_TEMPO + .2byte EC_WORD_OBLIVIOUS + .2byte EC_MOVE(OCTAZOOKA) + .2byte EC_POKEMON2(OCTILLERY) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(ODDISH) + .2byte EC_POKEMON2(ODDISH) + .2byte EC_MOVE(ODOR_SLEUTH) + .2byte EC_WORD_OF + .2byte EC_WORD_OFF + .2byte EC_WORD_OFFENSIVE + .2byte EC_WORD_OH + .2byte EC_WORD_OH_DEAR + .2byte EC_WORD_OH_YEAH + .2byte EC_WORD_OH_KAY + .2byte EC_WORD_OH_QUES + .2byte EC_WORD_OI + .2byte EC_WORD_OI_OI_OI + .2byte EC_WORD_OK_QUES + .2byte EC_WORD_OKAY + .2byte EC_WORD_OLD + .2byte EC_WORD_OLDEN + .2byte EC_POKEMON2(OMANYTE) + .2byte EC_POKEMON2(OMASTAR) + .2byte EC_WORD_ON + .2byte EC_WORD_ONCE + .2byte EC_POKEMON2(ONIX) + .2byte EC_WORD_ONLY + .2byte EC_WORD_OOPS + .2byte EC_WORD_OPPONENT + .2byte EC_WORD_OPPOSITE + .2byte EC_WORD_OR + .2byte EC_WORD_OTHER + .2byte EC_WORD_OUR + .2byte EC_WORD_OUT + .2byte EC_MOVE(OUTRAGE) + .2byte EC_WORD_OUTSIDE + .2byte EC_WORD_OVER + .2byte EC_WORD_OVERDO + .2byte EC_WORD_OVERGROW + .2byte EC_MOVE(OVERHEAT) + .2byte EC_WORD_OVERWHELMING + .2byte EC_WORD_OWN + .2byte EC_WORD_OWN_TEMPO gEasyChatWordsByLetter_P:: @ 859D9D6 - ec_move1 PAIN_SPLIT - ec_pokemon2 PARAS - ec_pokemon2 PARASECT - ec_word PARDON - ec_word PARENT - ec_word PARTNER - ec_word PARTY - ec_word PATTERN - ec_move2 PAY_DAY - ec_word PC - ec_move2 PECK - ec_pokemon1 PELIPPER - ec_word PERFECT - ec_word PERFECTION - ec_move2 PERISH_SONG - ec_pokemon2 PERSIAN - ec_word PERSON - ec_move2 PETAL_DANCE - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 PHANPY - ec_pokemon2 PHANPY - ec_word PHONE - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 PICHU - ec_pokemon2 PICHU - ec_word PICKUP - ec_pokemon2 PIDGEOT - ec_pokemon2 PIDGEOTTO - ec_pokemon2 PIDGEY - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 PIKACHU - ec_pokemon2 PIKACHU - ec_pokemon2 PILOSWINE - ec_move2 PIN_MISSILE - ec_pokemon2 PINECO - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 PINSIR - ec_pokemon2 PINSIR - ec_word PKRS - ec_word PLACE - ec_word PLANS - ec_word PLAY - ec_word PLAYED - ec_word PLAYS - ec_word PLEASE - ec_word PLUS - ec_word PLUSH_DOLL - ec_pokemon1 PLUSLE - ec_word POINTS - ec_word POISON - ec_move2 POISON_FANG - ec_move2 POISON_GAS - ec_word POISON_POINT - ec_move2 POISON_STING - ec_move2 POISON_TAIL - ec_move2 POISON_POWDER - ec_word POKEBLOCK - ec_word POKEDEX - ec_word POKEMON - ec_word POKENAV - ec_pokemon2 POLITOED - ec_pokemon2 POLIWAG - ec_pokemon2 POLIWHIRL - ec_pokemon2 POLIWRATH - ec_pokemon2 PONYTA - ec_pokemon1 POOCHYENA - ec_word POPULAR - ec_pokemon2 PORYGON - ec_pokemon2 PORYGON2 - ec_move2 POUND - ec_move1 POWDER_SNOW - ec_word POWER - ec_word PRAISE - ec_word PREPOSTEROUS - ec_move2 PRESENT - ec_word PRESSURE - ec_word PRETEND - ec_word PRETTY - ec_pokemon2 PRIMEAPE - ec_word PROBABLY - ec_word PROMISE - ec_move2 PROTECT - ec_move1 PSYBEAM - ec_move1 PSYCH_UP - .2byte -1, 2 @ doubled Pokémon species names - ec_word PSYCHIC - ec_move1 PSYCHIC - ec_move1 PSYCHO_BOOST - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 PSYDUCK - ec_pokemon2 PSYDUCK - ec_move1 PSYWAVE - ec_pokemon2 PUPITAR - ec_word PURE_POWER - ec_move1 PURSUIT - ec_word PUSHOVER + .2byte EC_MOVE(PAIN_SPLIT) + .2byte EC_POKEMON2(PARAS) + .2byte EC_POKEMON2(PARASECT) + .2byte EC_WORD_PARDON + .2byte EC_WORD_PARENT + .2byte EC_WORD_PARTNER + .2byte EC_WORD_PARTY + .2byte EC_WORD_PATTERN + .2byte EC_MOVE2(PAY_DAY) + .2byte EC_WORD_PC + .2byte EC_MOVE2(PECK) + .2byte EC_POKEMON(PELIPPER) + .2byte EC_WORD_PERFECT + .2byte EC_WORD_PERFECTION + .2byte EC_MOVE2(PERISH_SONG) + .2byte EC_POKEMON2(PERSIAN) + .2byte EC_WORD_PERSON + .2byte EC_MOVE2(PETAL_DANCE) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(PHANPY) + .2byte EC_POKEMON2(PHANPY) + .2byte EC_WORD_PHONE + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(PICHU) + .2byte EC_POKEMON2(PICHU) + .2byte EC_WORD_PICKUP + .2byte EC_POKEMON2(PIDGEOT) + .2byte EC_POKEMON2(PIDGEOTTO) + .2byte EC_POKEMON2(PIDGEY) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(PIKACHU) + .2byte EC_POKEMON2(PIKACHU) + .2byte EC_POKEMON2(PILOSWINE) + .2byte EC_MOVE2(PIN_MISSILE) + .2byte EC_POKEMON2(PINECO) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(PINSIR) + .2byte EC_POKEMON2(PINSIR) + .2byte EC_WORD_PKRS + .2byte EC_WORD_PLACE + .2byte EC_WORD_PLANS + .2byte EC_WORD_PLAY + .2byte EC_WORD_PLAYED + .2byte EC_WORD_PLAYS + .2byte EC_WORD_PLEASE + .2byte EC_WORD_PLUS + .2byte EC_WORD_PLUSH_DOLL + .2byte EC_POKEMON(PLUSLE) + .2byte EC_WORD_POINTS + .2byte EC_WORD_POISON + .2byte EC_MOVE2(POISON_FANG) + .2byte EC_MOVE2(POISON_GAS) + .2byte EC_WORD_POISON_POINT + .2byte EC_MOVE2(POISON_STING) + .2byte EC_MOVE2(POISON_TAIL) + .2byte EC_MOVE2(POISON_POWDER) + .2byte EC_WORD_POKEBLOCK + .2byte EC_WORD_POKEDEX + .2byte EC_WORD_POKEMON + .2byte EC_WORD_POKENAV + .2byte EC_POKEMON2(POLITOED) + .2byte EC_POKEMON2(POLIWAG) + .2byte EC_POKEMON2(POLIWHIRL) + .2byte EC_POKEMON2(POLIWRATH) + .2byte EC_POKEMON2(PONYTA) + .2byte EC_POKEMON(POOCHYENA) + .2byte EC_WORD_POPULAR + .2byte EC_POKEMON2(PORYGON) + .2byte EC_POKEMON2(PORYGON2) + .2byte EC_MOVE2(POUND) + .2byte EC_MOVE(POWDER_SNOW) + .2byte EC_WORD_POWER + .2byte EC_WORD_PRAISE + .2byte EC_WORD_PREPOSTEROUS + .2byte EC_MOVE2(PRESENT) + .2byte EC_WORD_PRESSURE + .2byte EC_WORD_PRETEND + .2byte EC_WORD_PRETTY + .2byte EC_POKEMON2(PRIMEAPE) + .2byte EC_WORD_PROBABLY + .2byte EC_WORD_PROMISE + .2byte EC_MOVE2(PROTECT) + .2byte EC_MOVE(PSYBEAM) + .2byte EC_MOVE(PSYCH_UP) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_WORD_PSYCHIC + .2byte EC_MOVE(PSYCHIC) + .2byte EC_MOVE(PSYCHO_BOOST) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(PSYDUCK) + .2byte EC_POKEMON2(PSYDUCK) + .2byte EC_MOVE(PSYWAVE) + .2byte EC_POKEMON2(PUPITAR) + .2byte EC_WORD_PURE_POWER + .2byte EC_MOVE(PURSUIT) + .2byte EC_WORD_PUSHOVER gEasyChatWordsByLetter_Q:: @ 859DAA2 - ec_pokemon2 QUAGSIRE - ec_word QUESTION - ec_move2 QUICK_ATTACK - ec_pokemon2 QUILAVA - ec_word QUITE - ec_pokemon2 QWILFISH + .2byte EC_POKEMON2(QUAGSIRE) + .2byte EC_WORD_QUESTION + .2byte EC_MOVE2(QUICK_ATTACK) + .2byte EC_POKEMON2(QUILAVA) + .2byte EC_WORD_QUITE + .2byte EC_POKEMON2(QWILFISH) gEasyChatWordsByLetter_R:: @ 859DAAE - ec_word RADIO - ec_move1 RAGE - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 RAICHU - ec_pokemon2 RAICHU - ec_pokemon2 RAIKOU - ec_move1 RAIN_DANCE - ec_word RAIN_DISH - ec_pokemon1 RALTS - ec_word RANK - ec_move1 RAPID_SPIN - ec_pokemon2 RAPIDASH - ec_word RARE - ec_word RATHER - ec_pokemon2 RATICATE - ec_pokemon2 RATTATA - ec_pokemon1 RAYQUAZA - ec_move2 RAZOR_LEAF - ec_move1 RAZOR_WIND - ec_word READY - ec_word REALLY - ec_word REAR - ec_word RECEIVED - ec_word RECOMMEND - ec_move1 RECOVER - ec_move2 RECYCLE - ec_word RED - ec_move2 REFLECT - ec_move2 REFRESH - ec_word REFRESHING - ec_word REFUSE - ec_pokemon1 REGICE - ec_pokemon1 REGIROCK - ec_pokemon1 REGISTEEL - ec_word REJECT - ec_word RELEASE - ec_pokemon1 RELICANTH - ec_pokemon2 REMORAID - ec_word RENTAL - ec_move2 REST - ec_word RESUSCITATE - ec_move1 RETURN - ec_move2 REVENGE - ec_move1 REVERSAL - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 RHYDON - ec_pokemon2 RHYDON - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 RHYHORN - ec_pokemon2 RHYHORN - ec_word RIBBON - ec_word RICKETY - ec_word RIGHT - ec_word RIPPED - ec_word RIVAL - ec_move2 ROAR - ec_word ROCK - ec_move2 ROCK_BLAST - ec_word ROCK_HEAD - ec_move1 ROCK_SLIDE - ec_move1 ROCK_SMASH - ec_move1 ROCK_THROW - ec_move1 ROCK_TOMB - ec_word ROCK_SOLID - ec_move2 ROLE_PLAY - ec_move2 ROLLING_KICK - ec_move1 ROLLOUT - ec_word ROMANTIC - ec_word ROOM - ec_pokemon1 ROSELIA - ec_word ROUGH_SKIN - ec_word RPG - ec_word RUBY - ec_word RULE - ec_word RUN - ec_word RUN_AWAY - ec_word RUNS + .2byte EC_WORD_RADIO + .2byte EC_MOVE(RAGE) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(RAICHU) + .2byte EC_POKEMON2(RAICHU) + .2byte EC_POKEMON2(RAIKOU) + .2byte EC_MOVE(RAIN_DANCE) + .2byte EC_WORD_RAIN_DISH + .2byte EC_POKEMON(RALTS) + .2byte EC_WORD_RANK + .2byte EC_MOVE(RAPID_SPIN) + .2byte EC_POKEMON2(RAPIDASH) + .2byte EC_WORD_RARE + .2byte EC_WORD_RATHER + .2byte EC_POKEMON2(RATICATE) + .2byte EC_POKEMON2(RATTATA) + .2byte EC_POKEMON(RAYQUAZA) + .2byte EC_MOVE2(RAZOR_LEAF) + .2byte EC_MOVE(RAZOR_WIND) + .2byte EC_WORD_READY + .2byte EC_WORD_REALLY + .2byte EC_WORD_REAR + .2byte EC_WORD_RECEIVED + .2byte EC_WORD_RECOMMEND + .2byte EC_MOVE(RECOVER) + .2byte EC_MOVE2(RECYCLE) + .2byte EC_WORD_RED + .2byte EC_MOVE2(REFLECT) + .2byte EC_MOVE2(REFRESH) + .2byte EC_WORD_REFRESHING + .2byte EC_WORD_REFUSE + .2byte EC_POKEMON(REGICE) + .2byte EC_POKEMON(REGIROCK) + .2byte EC_POKEMON(REGISTEEL) + .2byte EC_WORD_REJECT + .2byte EC_WORD_RELEASE + .2byte EC_POKEMON(RELICANTH) + .2byte EC_POKEMON2(REMORAID) + .2byte EC_WORD_RENTAL + .2byte EC_MOVE2(REST) + .2byte EC_WORD_RESUSCITATE + .2byte EC_MOVE(RETURN) + .2byte EC_MOVE2(REVENGE) + .2byte EC_MOVE(REVERSAL) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(RHYDON) + .2byte EC_POKEMON2(RHYDON) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(RHYHORN) + .2byte EC_POKEMON2(RHYHORN) + .2byte EC_WORD_RIBBON + .2byte EC_WORD_RICKETY + .2byte EC_WORD_RIGHT + .2byte EC_WORD_RIPPED + .2byte EC_WORD_RIVAL + .2byte EC_MOVE2(ROAR) + .2byte EC_WORD_ROCK + .2byte EC_MOVE2(ROCK_BLAST) + .2byte EC_WORD_ROCK_HEAD + .2byte EC_MOVE(ROCK_SLIDE) + .2byte EC_MOVE(ROCK_SMASH) + .2byte EC_MOVE(ROCK_THROW) + .2byte EC_MOVE(ROCK_TOMB) + .2byte EC_WORD_ROCK_SOLID + .2byte EC_MOVE2(ROLE_PLAY) + .2byte EC_MOVE2(ROLLING_KICK) + .2byte EC_MOVE(ROLLOUT) + .2byte EC_WORD_ROMANTIC + .2byte EC_WORD_ROOM + .2byte EC_POKEMON(ROSELIA) + .2byte EC_WORD_ROUGH_SKIN + .2byte EC_WORD_RPG + .2byte EC_WORD_RUBY + .2byte EC_WORD_RULE + .2byte EC_WORD_RUN + .2byte EC_WORD_RUN_AWAY + .2byte EC_WORD_RUNS gEasyChatWordsByLetter_S:: @ 859DB4E - ec_pokemon1 SABLEYE - ec_move1 SACRED_FIRE - ec_word SAD - ec_word SADLY - ec_move1 SAFEGUARD - ec_word SAID - ec_pokemon1 SALAMENCE - ec_word SAND_STREAM - ec_move1 SAND_TOMB - ec_word SAND_VEIL - ec_move1 SAND_ATTACK - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 SANDSHREW - ec_pokemon2 SANDSHREW - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 SANDSLASH - ec_pokemon2 SANDSLASH - ec_move1 SANDSTORM - ec_word SAPPHIRE - ec_word SATISFIED - ec_word SATURDAY - ec_word SAYS - ec_word SCARY - ec_move1 SCARY_FACE - ec_word SCATTER - ec_pokemon1 SCEPTILE - ec_word SCHOOL - ec_pokemon2 SCIZOR - ec_move2 SCRATCH - ec_move1 SCREECH - ec_pokemon2 SCYTHER - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 SEADRA - ec_pokemon2 SEADRA - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 SEAKING - ec_pokemon2 SEAKING - ec_pokemon1 SEALEO - ec_word SEARCH - ec_word SECRET - ec_word SECRET_BASE - ec_move2 SECRET_POWER - ec_word SEE - ec_word SEE_YA - ec_pokemon1 SEEDOT - ec_word SEEK - ec_pokemon2 SEEL - ec_word SEEMS - ec_word SEES - ec_move2 SEISMIC_TOSS - ec_move1 SELF_DESTRUCT - ec_word SENSE - ec_pokemon2 SENTRET - ec_word SERENE_GRACE - ec_word SERIOUS - ec_word SERIOUSLY - ec_word SERVICE - ec_pokemon1 SEVIPER - ec_move1 SHADOW_BALL - ec_move1 SHADOW_PUNCH - ec_word SHADOW_TAG - ec_word SHADY - ec_word SHAKE - ec_word SHAKY - ec_word SHALLOW - ec_pokemon1 SHARPEDO - ec_move1 SHARPEN - ec_word SHE - ec_word SHE_IS - ec_word SHE_WAS - ec_word SHED_SKIN - ec_pokemon1 SHEDINJA - ec_move1 SHEER_COLD - ec_pokemon1 SHELGON - ec_word SHELL_ARMOR - ec_pokemon2 SHELLDER - ec_word SHIELD_DUST - ec_pokemon1 SHIFTRY - ec_word SHINE - ec_move2 SHOCK_WAVE - ec_word SHOCKED - ec_word SHOPPING - ec_word SHOULD - ec_word SHOW - ec_word SHREDDED - ec_pokemon1 SHROOMISH - ec_pokemon2 SHUCKLE - ec_pokemon1 SHUPPET - ec_word SIBLINGS - ec_word SIGH - ec_move1 SIGNAL_BEAM - ec_pokemon1 SILCOON - ec_word SILKY - ec_word SILVER - ec_move1 SILVER_WIND - ec_word SIMPLE - ec_word SINCE - ec_move1 SING - ec_word SINK - ec_word SISTER - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 SKARMORY - ec_pokemon2 SKARMORY - ec_move1 SKETCH - ec_word SKILL - ec_move1 SKILL_SWAP - ec_word SKILLED - ec_pokemon2 SKIPLOOM - ec_pokemon1 SKITTY - ec_move2 SKULL_BASH - ec_move1 SKY_ATTACK - ec_move1 SKY_UPPERCUT - ec_move2 SLACK_OFF - ec_pokemon1 SLAKING - ec_pokemon1 SLAKOTH - ec_move2 SLAM - ec_move1 SLASH - ec_word SLEEP - ec_move2 SLEEP_POWDER - ec_move2 SLEEP_TALK - ec_word SLEPT - ec_word SLIDE - ec_word SLIMY - ec_pokemon2 SLOWBRO - ec_pokemon2 SLOWKING - ec_pokemon2 SLOWPOKE - ec_move2 SLUDGE - ec_move2 SLUDGE_BOMB - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 SLUGMA - ec_pokemon2 SLUGMA - ec_word SMACK - ec_word SMALL - ec_word SMART - ec_word SMARTNESS - ec_pokemon2 SMEARGLE - ec_word SMELL - ec_word SMELL_YA - ec_move1 SMELLING_SALT - ec_word SMITE - ec_move1 SMOG - ec_move1 SMOKESCREEN - ec_pokemon2 SMOOCHUM - ec_word SMOOTH - ec_move2 SNATCH - ec_pokemon2 SNEASEL - ec_move1 SNORE - ec_pokemon2 SNORLAX - ec_word SNORT - ec_pokemon1 SNORUNT - ec_pokemon2 SNUBBULL - ec_word SO - ec_move2 SOFT_BOILED - ec_word SOFTWARE - ec_move1 SOLAR_BEAM - ec_pokemon1 SOLROCK - ec_word SOME - ec_word SOMEHOW - ec_word SOMEONE - ec_word SOMETHING - ec_word SOMETIME - ec_word SON - ec_word SONG - ec_word SONGS - ec_move1 SONIC_BOOM - ec_word SOON - ec_word SORRY - ec_word SOUNDPROOF - ec_word SP_ABILITY - ec_move1 SPARK - ec_pokemon2 SPEAROW - ec_word SPECTATOR - ec_word SPEED_BOOST - ec_pokemon1 SPHEAL - ec_move1 SPIDER_WEB - ec_move2 SPIKE_CANNON - ec_move2 SPIKES - ec_pokemon2 SPINARAK - ec_pokemon1 SPINDA - ec_word SPIRALING - ec_word SPIRIT - ec_move2 SPIT_UP - ec_move1 SPITE - ec_move2 SPLASH - ec_pokemon1 SPOINK - ec_move1 SPORE - ec_word SPORTS - ec_word SPRING - ec_pokemon2 SQUIRTLE - ec_word STAGE - ec_pokemon2 STANTLER - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 STARMIE - ec_pokemon2 STARMIE - ec_word START - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 STARYU - ec_pokemon2 STARYU - ec_word STATIC - ec_word STAY_AT_HOME - ec_word STEEL - ec_move2 STEEL_WING - ec_pokemon2 STEELIX - ec_word STENCH - ec_word STICKY_HOLD - ec_move2 STOCKPILE - ec_move2 STOMP - ec_word STOP - ec_word STORE - ec_word STORES - ec_word STORY - ec_word STRATEGY - ec_move1 STRENGTH - ec_move1 STRING_SHOT - ec_word STRONG - ec_move2 STRUGGLE - ec_word STUDY - ec_move1 STUN_SPORE - ec_word STURDY - ec_move1 SUBMISSION - ec_move2 SUBSTITUTE - ec_word SUCTION_CUPS - ec_pokemon2 SUDOWOODO - ec_pokemon2 SUICUNE - ec_word SUMMER - ec_word SUNDAY - ec_pokemon2 SUNFLORA - ec_pokemon2 SUNKERN - ec_move2 SUNNY_DAY - ec_word SUPER - ec_move1 SUPER_FANG - ec_move2 SUPERPOWER - ec_move2 SUPERSONIC - ec_move2 SURF - ec_word SURPRISE - ec_word SURRENDER - ec_pokemon1 SURSKIT - ec_pokemon1 SWABLU - ec_move1 SWAGGER - ec_move2 SWALLOW - ec_pokemon1 SWALOT - ec_pokemon1 SWAMPERT - ec_word SWARM - ec_move2 SWEET_KISS - ec_move1 SWEET_SCENT - ec_word SWEETS - ec_pokemon1 SWELLOW - ec_move1 SWIFT - ec_word SWIFT_SWIM - ec_pokemon2 SWINUB - ec_move2 SWORDS_DANCE - ec_word SYNCHRONIZE - ec_move1 SYNTHESIS - ec_word SYSTEM + .2byte EC_POKEMON(SABLEYE) + .2byte EC_MOVE(SACRED_FIRE) + .2byte EC_WORD_SAD + .2byte EC_WORD_SADLY + .2byte EC_MOVE(SAFEGUARD) + .2byte EC_WORD_SAID + .2byte EC_POKEMON(SALAMENCE) + .2byte EC_WORD_SAND_STREAM + .2byte EC_MOVE(SAND_TOMB) + .2byte EC_WORD_SAND_VEIL + .2byte EC_MOVE(SAND_ATTACK) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(SANDSHREW) + .2byte EC_POKEMON2(SANDSHREW) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(SANDSLASH) + .2byte EC_POKEMON2(SANDSLASH) + .2byte EC_MOVE(SANDSTORM) + .2byte EC_WORD_SAPPHIRE + .2byte EC_WORD_SATISFIED + .2byte EC_WORD_SATURDAY + .2byte EC_WORD_SAYS + .2byte EC_WORD_SCARY + .2byte EC_MOVE(SCARY_FACE) + .2byte EC_WORD_SCATTER + .2byte EC_POKEMON(SCEPTILE) + .2byte EC_WORD_SCHOOL + .2byte EC_POKEMON2(SCIZOR) + .2byte EC_MOVE2(SCRATCH) + .2byte EC_MOVE(SCREECH) + .2byte EC_POKEMON2(SCYTHER) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(SEADRA) + .2byte EC_POKEMON2(SEADRA) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(SEAKING) + .2byte EC_POKEMON2(SEAKING) + .2byte EC_POKEMON(SEALEO) + .2byte EC_WORD_SEARCH + .2byte EC_WORD_SECRET + .2byte EC_WORD_SECRET_BASE + .2byte EC_MOVE2(SECRET_POWER) + .2byte EC_WORD_SEE + .2byte EC_WORD_SEE_YA + .2byte EC_POKEMON(SEEDOT) + .2byte EC_WORD_SEEK + .2byte EC_POKEMON2(SEEL) + .2byte EC_WORD_SEEMS + .2byte EC_WORD_SEES + .2byte EC_MOVE2(SEISMIC_TOSS) + .2byte EC_MOVE(SELF_DESTRUCT) + .2byte EC_WORD_SENSE + .2byte EC_POKEMON2(SENTRET) + .2byte EC_WORD_SERENE_GRACE + .2byte EC_WORD_SERIOUS + .2byte EC_WORD_SERIOUSLY + .2byte EC_WORD_SERVICE + .2byte EC_POKEMON(SEVIPER) + .2byte EC_MOVE(SHADOW_BALL) + .2byte EC_MOVE(SHADOW_PUNCH) + .2byte EC_WORD_SHADOW_TAG + .2byte EC_WORD_SHADY + .2byte EC_WORD_SHAKE + .2byte EC_WORD_SHAKY + .2byte EC_WORD_SHALLOW + .2byte EC_POKEMON(SHARPEDO) + .2byte EC_MOVE(SHARPEN) + .2byte EC_WORD_SHE + .2byte EC_WORD_SHE_IS + .2byte EC_WORD_SHE_WAS + .2byte EC_WORD_SHED_SKIN + .2byte EC_POKEMON(SHEDINJA) + .2byte EC_MOVE(SHEER_COLD) + .2byte EC_POKEMON(SHELGON) + .2byte EC_WORD_SHELL_ARMOR + .2byte EC_POKEMON2(SHELLDER) + .2byte EC_WORD_SHIELD_DUST + .2byte EC_POKEMON(SHIFTRY) + .2byte EC_WORD_SHINE + .2byte EC_MOVE2(SHOCK_WAVE) + .2byte EC_WORD_SHOCKED + .2byte EC_WORD_SHOPPING + .2byte EC_WORD_SHOULD + .2byte EC_WORD_SHOW + .2byte EC_WORD_SHREDDED + .2byte EC_POKEMON(SHROOMISH) + .2byte EC_POKEMON2(SHUCKLE) + .2byte EC_POKEMON(SHUPPET) + .2byte EC_WORD_SIBLINGS + .2byte EC_WORD_SIGH + .2byte EC_MOVE(SIGNAL_BEAM) + .2byte EC_POKEMON(SILCOON) + .2byte EC_WORD_SILKY + .2byte EC_WORD_SILVER + .2byte EC_MOVE(SILVER_WIND) + .2byte EC_WORD_SIMPLE + .2byte EC_WORD_SINCE + .2byte EC_MOVE(SING) + .2byte EC_WORD_SINK + .2byte EC_WORD_SISTER + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(SKARMORY) + .2byte EC_POKEMON2(SKARMORY) + .2byte EC_MOVE(SKETCH) + .2byte EC_WORD_SKILL + .2byte EC_MOVE(SKILL_SWAP) + .2byte EC_WORD_SKILLED + .2byte EC_POKEMON2(SKIPLOOM) + .2byte EC_POKEMON(SKITTY) + .2byte EC_MOVE2(SKULL_BASH) + .2byte EC_MOVE(SKY_ATTACK) + .2byte EC_MOVE(SKY_UPPERCUT) + .2byte EC_MOVE2(SLACK_OFF) + .2byte EC_POKEMON(SLAKING) + .2byte EC_POKEMON(SLAKOTH) + .2byte EC_MOVE2(SLAM) + .2byte EC_MOVE(SLASH) + .2byte EC_WORD_SLEEP + .2byte EC_MOVE2(SLEEP_POWDER) + .2byte EC_MOVE2(SLEEP_TALK) + .2byte EC_WORD_SLEPT + .2byte EC_WORD_SLIDE + .2byte EC_WORD_SLIMY + .2byte EC_POKEMON2(SLOWBRO) + .2byte EC_POKEMON2(SLOWKING) + .2byte EC_POKEMON2(SLOWPOKE) + .2byte EC_MOVE2(SLUDGE) + .2byte EC_MOVE2(SLUDGE_BOMB) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(SLUGMA) + .2byte EC_POKEMON2(SLUGMA) + .2byte EC_WORD_SMACK + .2byte EC_WORD_SMALL + .2byte EC_WORD_SMART + .2byte EC_WORD_SMARTNESS + .2byte EC_POKEMON2(SMEARGLE) + .2byte EC_WORD_SMELL + .2byte EC_WORD_SMELL_YA + .2byte EC_MOVE(SMELLING_SALT) + .2byte EC_WORD_SMITE + .2byte EC_MOVE(SMOG) + .2byte EC_MOVE(SMOKESCREEN) + .2byte EC_POKEMON2(SMOOCHUM) + .2byte EC_WORD_SMOOTH + .2byte EC_MOVE2(SNATCH) + .2byte EC_POKEMON2(SNEASEL) + .2byte EC_MOVE(SNORE) + .2byte EC_POKEMON2(SNORLAX) + .2byte EC_WORD_SNORT + .2byte EC_POKEMON(SNORUNT) + .2byte EC_POKEMON2(SNUBBULL) + .2byte EC_WORD_SO + .2byte EC_MOVE2(SOFT_BOILED) + .2byte EC_WORD_SOFTWARE + .2byte EC_MOVE(SOLAR_BEAM) + .2byte EC_POKEMON(SOLROCK) + .2byte EC_WORD_SOME + .2byte EC_WORD_SOMEHOW + .2byte EC_WORD_SOMEONE + .2byte EC_WORD_SOMETHING + .2byte EC_WORD_SOMETIME + .2byte EC_WORD_SON + .2byte EC_WORD_SONG + .2byte EC_WORD_SONGS + .2byte EC_MOVE(SONIC_BOOM) + .2byte EC_WORD_SOON + .2byte EC_WORD_SORRY + .2byte EC_WORD_SOUNDPROOF + .2byte EC_WORD_SP_ABILITY + .2byte EC_MOVE(SPARK) + .2byte EC_POKEMON2(SPEAROW) + .2byte EC_WORD_SPECTATOR + .2byte EC_WORD_SPEED_BOOST + .2byte EC_POKEMON(SPHEAL) + .2byte EC_MOVE(SPIDER_WEB) + .2byte EC_MOVE2(SPIKE_CANNON) + .2byte EC_MOVE2(SPIKES) + .2byte EC_POKEMON2(SPINARAK) + .2byte EC_POKEMON(SPINDA) + .2byte EC_WORD_SPIRALING + .2byte EC_WORD_SPIRIT + .2byte EC_MOVE2(SPIT_UP) + .2byte EC_MOVE(SPITE) + .2byte EC_MOVE2(SPLASH) + .2byte EC_POKEMON(SPOINK) + .2byte EC_MOVE(SPORE) + .2byte EC_WORD_SPORTS + .2byte EC_WORD_SPRING + .2byte EC_POKEMON2(SQUIRTLE) + .2byte EC_WORD_STAGE + .2byte EC_POKEMON2(STANTLER) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(STARMIE) + .2byte EC_POKEMON2(STARMIE) + .2byte EC_WORD_START + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(STARYU) + .2byte EC_POKEMON2(STARYU) + .2byte EC_WORD_STATIC + .2byte EC_WORD_STAY_AT_HOME + .2byte EC_WORD_STEEL + .2byte EC_MOVE2(STEEL_WING) + .2byte EC_POKEMON2(STEELIX) + .2byte EC_WORD_STENCH + .2byte EC_WORD_STICKY_HOLD + .2byte EC_MOVE2(STOCKPILE) + .2byte EC_MOVE2(STOMP) + .2byte EC_WORD_STOP + .2byte EC_WORD_STORE + .2byte EC_WORD_STORES + .2byte EC_WORD_STORY + .2byte EC_WORD_STRATEGY + .2byte EC_MOVE(STRENGTH) + .2byte EC_MOVE(STRING_SHOT) + .2byte EC_WORD_STRONG + .2byte EC_MOVE2(STRUGGLE) + .2byte EC_WORD_STUDY + .2byte EC_MOVE(STUN_SPORE) + .2byte EC_WORD_STURDY + .2byte EC_MOVE(SUBMISSION) + .2byte EC_MOVE2(SUBSTITUTE) + .2byte EC_WORD_SUCTION_CUPS + .2byte EC_POKEMON2(SUDOWOODO) + .2byte EC_POKEMON2(SUICUNE) + .2byte EC_WORD_SUMMER + .2byte EC_WORD_SUNDAY + .2byte EC_POKEMON2(SUNFLORA) + .2byte EC_POKEMON2(SUNKERN) + .2byte EC_MOVE2(SUNNY_DAY) + .2byte EC_WORD_SUPER + .2byte EC_MOVE(SUPER_FANG) + .2byte EC_MOVE2(SUPERPOWER) + .2byte EC_MOVE2(SUPERSONIC) + .2byte EC_MOVE2(SURF) + .2byte EC_WORD_SURPRISE + .2byte EC_WORD_SURRENDER + .2byte EC_POKEMON(SURSKIT) + .2byte EC_POKEMON(SWABLU) + .2byte EC_MOVE(SWAGGER) + .2byte EC_MOVE2(SWALLOW) + .2byte EC_POKEMON(SWALOT) + .2byte EC_POKEMON(SWAMPERT) + .2byte EC_WORD_SWARM + .2byte EC_MOVE2(SWEET_KISS) + .2byte EC_MOVE(SWEET_SCENT) + .2byte EC_WORD_SWEETS + .2byte EC_POKEMON(SWELLOW) + .2byte EC_MOVE(SWIFT) + .2byte EC_WORD_SWIFT_SWIM + .2byte EC_POKEMON2(SWINUB) + .2byte EC_MOVE2(SWORDS_DANCE) + .2byte EC_WORD_SYNCHRONIZE + .2byte EC_MOVE(SYNTHESIS) + .2byte EC_WORD_SYSTEM gEasyChatWordsByLetter_T:: @ 859DD5A - ec_move2 TACKLE - ec_move2 TAIL_GLOW - ec_move1 TAIL_WHIP - ec_pokemon1 TAILLOW - ec_word TAKE - ec_move2 TAKE_DOWN - ec_word TAKE_THAT - ec_word TALENT - ec_word TALK - ec_word TALKING - ec_pokemon2 TANGELA - ec_word TASTY - ec_move2 TAUNT - ec_pokemon2 TAUROS - ec_word TCH - ec_word TEACH - ec_word TEACHER - ec_word TEACHES - ec_pokemon2 TEDDIURSA - ec_move2 TEETER_DANCE - ec_move2 TELEPORT - ec_word TELEVISION - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 TENTACOOL - ec_pokemon2 TENTACOOL - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 TENTACRUEL - ec_pokemon2 TENTACRUEL - ec_word TERRIBLE - ec_word TEST - ec_word THAN - ec_word THANK_YOU - ec_word THANKS - ec_word THAT - ec_word THAT_WAS - ec_word THAT_S - ec_word THAT_S_IT_EXCL - ec_word THE - ec_word THEIR - ec_word THERE - ec_word THESE - ec_word THESE_WERE - ec_word THEY - ec_word THEY_WERE - ec_word THEY_RE - ec_word THEY_VE - ec_word THICK - ec_word THICK_FAT - ec_move2 THIEF - ec_word THIN - ec_word THING - ec_word THINGS - ec_word THINK - ec_word THINKS - ec_word THIRSTY - ec_word THIS - ec_word THIS_IS_IT_EXCL - ec_word THOSE - ec_word THOSE_ARE - ec_word THOSE_WERE - ec_move1 THRASH - ec_word THROW - ec_move1 THUNDER - ec_move2 THUNDER_WAVE - ec_move1 THUNDERBOLT - ec_move1 THUNDER_PUNCH - ec_move2 THUNDER_SHOCK - ec_word THURSDAY - ec_move1 TICKLE - ec_word TICKLISH - ec_word TIGHT - ec_word TIME - ec_word TIMES - ec_word TIRED - ec_word TO - ec_word TO_HER - ec_word TO_ME - ec_word TO_THEM - ec_word TO_US - ec_word TO_WHOM - ec_word TODAY - ec_pokemon2 TOGEPI - ec_word TOGETHER - ec_pokemon2 TOGETIC - ec_word TOMORROW - ec_word TOO - ec_word TOO_LATE - ec_word TOO_STRONG - ec_word TOO_WEAK - ec_word TOP - ec_pokemon1 TORCHIC - ec_pokemon1 TORKOAL - ec_move1 TORMENT - ec_word TORRENT - ec_word TOTALLY - ec_pokemon2 TOTODILE - ec_word TOUGH - ec_word TOUGHNESS - ec_word TOURNAMENT - ec_word TOWER - ec_move2 TOXIC - ec_word TOYS - ec_word TRACE - ec_word TRADE - ec_word TRAIN - ec_word TRAINER - ec_word TRAINS - ec_move2 TRANSFORM - ec_pokemon1 TRAPINCH - ec_word TRAVEL - ec_word TREASURE - ec_pokemon1 TREECKO - ec_word TRENDY - ec_move2 TRI_ATTACK - ec_move2 TRICK - ec_word TRIES - ec_move2 TRIPLE_KICK - ec_pokemon1 TROPIUS - ec_word TRUANT - ec_word TRULY - ec_word TRUMP_CARD - ec_word TRUST - ec_word TRY - ec_word TUESDAY - ec_move2 TWINEEDLE - ec_word TWIRLING - ec_move2 TWISTER - ec_word TYPE - ec_pokemon2 TYPHLOSION - ec_pokemon2 TYRANITAR - ec_pokemon2 TYROGUE + .2byte EC_MOVE2(TACKLE) + .2byte EC_MOVE2(TAIL_GLOW) + .2byte EC_MOVE(TAIL_WHIP) + .2byte EC_POKEMON(TAILLOW) + .2byte EC_WORD_TAKE + .2byte EC_MOVE2(TAKE_DOWN) + .2byte EC_WORD_TAKE_THAT + .2byte EC_WORD_TALENT + .2byte EC_WORD_TALK + .2byte EC_WORD_TALKING + .2byte EC_POKEMON2(TANGELA) + .2byte EC_WORD_TASTY + .2byte EC_MOVE2(TAUNT) + .2byte EC_POKEMON2(TAUROS) + .2byte EC_WORD_TCH + .2byte EC_WORD_TEACH + .2byte EC_WORD_TEACHER + .2byte EC_WORD_TEACHES + .2byte EC_POKEMON2(TEDDIURSA) + .2byte EC_MOVE2(TEETER_DANCE) + .2byte EC_MOVE2(TELEPORT) + .2byte EC_WORD_TELEVISION + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(TENTACOOL) + .2byte EC_POKEMON2(TENTACOOL) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(TENTACRUEL) + .2byte EC_POKEMON2(TENTACRUEL) + .2byte EC_WORD_TERRIBLE + .2byte EC_WORD_TEST + .2byte EC_WORD_THAN + .2byte EC_WORD_THANK_YOU + .2byte EC_WORD_THANKS + .2byte EC_WORD_THAT + .2byte EC_WORD_THAT_WAS + .2byte EC_WORD_THAT_S + .2byte EC_WORD_THAT_S_IT_EXCL + .2byte EC_WORD_THE + .2byte EC_WORD_THEIR + .2byte EC_WORD_THERE + .2byte EC_WORD_THESE + .2byte EC_WORD_THESE_WERE + .2byte EC_WORD_THEY + .2byte EC_WORD_THEY_WERE + .2byte EC_WORD_THEY_RE + .2byte EC_WORD_THEY_VE + .2byte EC_WORD_THICK + .2byte EC_WORD_THICK_FAT + .2byte EC_MOVE2(THIEF) + .2byte EC_WORD_THIN + .2byte EC_WORD_THING + .2byte EC_WORD_THINGS + .2byte EC_WORD_THINK + .2byte EC_WORD_THINKS + .2byte EC_WORD_THIRSTY + .2byte EC_WORD_THIS + .2byte EC_WORD_THIS_IS_IT_EXCL + .2byte EC_WORD_THOSE + .2byte EC_WORD_THOSE_ARE + .2byte EC_WORD_THOSE_WERE + .2byte EC_MOVE(THRASH) + .2byte EC_WORD_THROW + .2byte EC_MOVE(THUNDER) + .2byte EC_MOVE2(THUNDER_WAVE) + .2byte EC_MOVE(THUNDERBOLT) + .2byte EC_MOVE(THUNDER_PUNCH) + .2byte EC_MOVE2(THUNDER_SHOCK) + .2byte EC_WORD_THURSDAY + .2byte EC_MOVE(TICKLE) + .2byte EC_WORD_TICKLISH + .2byte EC_WORD_TIGHT + .2byte EC_WORD_TIME + .2byte EC_WORD_TIMES + .2byte EC_WORD_TIRED + .2byte EC_WORD_TO + .2byte EC_WORD_TO_HER + .2byte EC_WORD_TO_ME + .2byte EC_WORD_TO_THEM + .2byte EC_WORD_TO_US + .2byte EC_WORD_TO_WHOM + .2byte EC_WORD_TODAY + .2byte EC_POKEMON2(TOGEPI) + .2byte EC_WORD_TOGETHER + .2byte EC_POKEMON2(TOGETIC) + .2byte EC_WORD_TOMORROW + .2byte EC_WORD_TOO + .2byte EC_WORD_TOO_LATE + .2byte EC_WORD_TOO_STRONG + .2byte EC_WORD_TOO_WEAK + .2byte EC_WORD_TOP + .2byte EC_POKEMON(TORCHIC) + .2byte EC_POKEMON(TORKOAL) + .2byte EC_MOVE(TORMENT) + .2byte EC_WORD_TORRENT + .2byte EC_WORD_TOTALLY + .2byte EC_POKEMON2(TOTODILE) + .2byte EC_WORD_TOUGH + .2byte EC_WORD_TOUGHNESS + .2byte EC_WORD_TOURNAMENT + .2byte EC_WORD_TOWER + .2byte EC_MOVE2(TOXIC) + .2byte EC_WORD_TOYS + .2byte EC_WORD_TRACE + .2byte EC_WORD_TRADE + .2byte EC_WORD_TRAIN + .2byte EC_WORD_TRAINER + .2byte EC_WORD_TRAINS + .2byte EC_MOVE2(TRANSFORM) + .2byte EC_POKEMON(TRAPINCH) + .2byte EC_WORD_TRAVEL + .2byte EC_WORD_TREASURE + .2byte EC_POKEMON(TREECKO) + .2byte EC_WORD_TRENDY + .2byte EC_MOVE2(TRI_ATTACK) + .2byte EC_MOVE2(TRICK) + .2byte EC_WORD_TRIES + .2byte EC_MOVE2(TRIPLE_KICK) + .2byte EC_POKEMON(TROPIUS) + .2byte EC_WORD_TRUANT + .2byte EC_WORD_TRULY + .2byte EC_WORD_TRUMP_CARD + .2byte EC_WORD_TRUST + .2byte EC_WORD_TRY + .2byte EC_WORD_TUESDAY + .2byte EC_MOVE2(TWINEEDLE) + .2byte EC_WORD_TWIRLING + .2byte EC_MOVE2(TWISTER) + .2byte EC_WORD_TYPE + .2byte EC_POKEMON2(TYPHLOSION) + .2byte EC_POKEMON2(TYRANITAR) + .2byte EC_POKEMON2(TYROGUE) gEasyChatWordsByLetter_U:: @ 859DE64 - ec_word UGLY - ec_word UH_HUH - ec_word UH_OH - ec_word UM - ec_pokemon2 UMBREON - ec_word UNAVOIDABLE - ec_word UNBELIEVABLE - ec_word UNCLE - ec_word UNDERSTAND - ec_word UNDERSTANDS - ec_word UNDERSTOOD - ec_word UNION - ec_pokemon2 UNOWN - ec_word UNTIL - ec_word UP - ec_word UPBEAT - ec_move1 UPROAR - ec_word UPSIDE_DOWN - ec_word URGH - ec_pokemon2 URSARING - ec_word USE - ec_word USELESS - ec_word USES - ec_word USING + .2byte EC_WORD_UGLY + .2byte EC_WORD_UH_HUH + .2byte EC_WORD_UH_OH + .2byte EC_WORD_UM + .2byte EC_POKEMON2(UMBREON) + .2byte EC_WORD_UNAVOIDABLE + .2byte EC_WORD_UNBELIEVABLE + .2byte EC_WORD_UNCLE + .2byte EC_WORD_UNDERSTAND + .2byte EC_WORD_UNDERSTANDS + .2byte EC_WORD_UNDERSTOOD + .2byte EC_WORD_UNION + .2byte EC_POKEMON2(UNOWN) + .2byte EC_WORD_UNTIL + .2byte EC_WORD_UP + .2byte EC_WORD_UPBEAT + .2byte EC_MOVE(UPROAR) + .2byte EC_WORD_UPSIDE_DOWN + .2byte EC_WORD_URGH + .2byte EC_POKEMON2(URSARING) + .2byte EC_WORD_USE + .2byte EC_WORD_USELESS + .2byte EC_WORD_USES + .2byte EC_WORD_USING gEasyChatWordsByLetter_V:: @ 859DE94 - ec_word VACATION - ec_pokemon2 VAPOREON - ec_pokemon2 VENOMOTH - ec_pokemon2 VENONAT - ec_pokemon2 VENUSAUR - ec_word VERSION - ec_word VERSUS - ec_word VERY - ec_pokemon1 VIBRAVA - ec_move2 VICE_GRIP - ec_word VICTORY - ec_pokemon2 VICTREEBEL - ec_word VIEWING - ec_pokemon1 VIGOROTH - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 VILEPLUME - ec_pokemon2 VILEPLUME - ec_move2 VINE_WHIP - ec_word VITAL_SPIRIT - ec_move1 VITAL_THROW - ec_pokemon1 VOLBEAT - ec_word VOLT_ABSORB - ec_move2 VOLT_TACKLE - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 VOLTORB - ec_pokemon2 VOLTORB - ec_word VORACIOUS - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 VULPIX - ec_pokemon2 VULPIX + .2byte EC_WORD_VACATION + .2byte EC_POKEMON2(VAPOREON) + .2byte EC_POKEMON2(VENOMOTH) + .2byte EC_POKEMON2(VENONAT) + .2byte EC_POKEMON2(VENUSAUR) + .2byte EC_WORD_VERSION + .2byte EC_WORD_VERSUS + .2byte EC_WORD_VERY + .2byte EC_POKEMON(VIBRAVA) + .2byte EC_MOVE2(VICE_GRIP) + .2byte EC_WORD_VICTORY + .2byte EC_POKEMON2(VICTREEBEL) + .2byte EC_WORD_VIEWING + .2byte EC_POKEMON(VIGOROTH) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(VILEPLUME) + .2byte EC_POKEMON2(VILEPLUME) + .2byte EC_MOVE2(VINE_WHIP) + .2byte EC_WORD_VITAL_SPIRIT + .2byte EC_MOVE(VITAL_THROW) + .2byte EC_POKEMON(VOLBEAT) + .2byte EC_WORD_VOLT_ABSORB + .2byte EC_MOVE2(VOLT_TACKLE) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(VOLTORB) + .2byte EC_POKEMON2(VOLTORB) + .2byte EC_WORD_VORACIOUS + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(VULPIX) + .2byte EC_POKEMON2(VULPIX) gEasyChatWordsByLetter_W:: @ 859DED6 - ec_word WAAAH - ec_word WAHAHAHA - ec_pokemon1 WAILMER - ec_pokemon1 WAILORD - ec_word WAIT - ec_word WAKE_UP - ec_word WAKES_UP - ec_word WALK - ec_word WALKING - ec_word WALKS - ec_pokemon1 WALREIN - ec_word WANDERING - ec_word WANNABE - ec_word WANT - ec_word WANTS - ec_pokemon2 WARTORTLE - ec_word WAS - ec_word WASN_T - ec_word WATER - ec_word WATER_ABSORB - ec_move2 WATER_GUN - ec_move2 WATER_PULSE - ec_move2 WATER_SPORT - ec_move1 WATER_SPOUT - ec_word WATER_VEIL - ec_move2 WATERFALL - ec_word WAY - ec_word WE - ec_word WE_RE - ec_word WE_VE - ec_word WEAK - ec_word WEAKENED - ec_move1 WEATHER_BALL - ec_word WEDNESDAY - ec_pokemon2 WEEDLE - ec_word WEEK - ec_pokemon2 WEEPINBELL - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 WEEZING - ec_pokemon2 WEEZING - ec_word WEIRD - ec_word WELCOME - ec_word WELL - ec_word WELL_THEN - ec_word WENT - ec_word WERE - ec_word WEREN_T - ec_word WHAT - ec_word WHAT_S_UP_QUES - ec_word WHEN - ec_word WHEN_I_WIN - ec_word WHERE - ec_word WHICH - ec_word WHILE - ec_move1 WHIRLPOOL - ec_move2 WHIRLWIND - ec_pokemon1 WHISCASH - ec_pokemon1 WHISMUR - ec_word WHITE_SMOKE - ec_word WHO - ec_word WHO_IS - ec_word WHO_WAS - ec_word WHOAH - ec_word WHOM - ec_word WHOSE - ec_word WHY - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 WIGGLYTUFF - ec_pokemon2 WIGGLYTUFF - ec_word WILD - ec_word WILL - ec_word WILL_BE_HERE - ec_move1 WILL_O_WISP - ec_word WIMPY - ec_word WIN - ec_move2 WING_ATTACK - ec_pokemon1 WINGULL - ec_word WINNER - ec_word WINS - ec_word WINTER - ec_word WIRELESS - ec_move2 WISH - ec_word WITH - ec_move1 WITHDRAW - ec_word WITHOUT - ec_word WOBBLY - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 WOBBUFFET - ec_pokemon2 WOBBUFFET - ec_word WOMAN - ec_word WON - ec_word WON_T - ec_word WONDER - ec_word WONDER_GUARD - ec_pokemon2 WOOPER - ec_word WORD - ec_word WORK - ec_word WORKING - ec_word WORKS - ec_word WORLD - ec_word WORRY - ec_word WOULD - ec_word WOW - ec_word WOWEE - ec_move2 WRAP - ec_word WROOOAAR_EXCL - ec_pokemon1 WURMPLE - ec_pokemon1 WYNAUT + .2byte EC_WORD_WAAAH + .2byte EC_WORD_WAHAHAHA + .2byte EC_POKEMON(WAILMER) + .2byte EC_POKEMON(WAILORD) + .2byte EC_WORD_WAIT + .2byte EC_WORD_WAKE_UP + .2byte EC_WORD_WAKES_UP + .2byte EC_WORD_WALK + .2byte EC_WORD_WALKING + .2byte EC_WORD_WALKS + .2byte EC_POKEMON(WALREIN) + .2byte EC_WORD_WANDERING + .2byte EC_WORD_WANNABE + .2byte EC_WORD_WANT + .2byte EC_WORD_WANTS + .2byte EC_POKEMON2(WARTORTLE) + .2byte EC_WORD_WAS + .2byte EC_WORD_WASN_T + .2byte EC_WORD_WATER + .2byte EC_WORD_WATER_ABSORB + .2byte EC_MOVE2(WATER_GUN) + .2byte EC_MOVE2(WATER_PULSE) + .2byte EC_MOVE2(WATER_SPORT) + .2byte EC_MOVE(WATER_SPOUT) + .2byte EC_WORD_WATER_VEIL + .2byte EC_MOVE2(WATERFALL) + .2byte EC_WORD_WAY + .2byte EC_WORD_WE + .2byte EC_WORD_WE_RE + .2byte EC_WORD_WE_VE + .2byte EC_WORD_WEAK + .2byte EC_WORD_WEAKENED + .2byte EC_MOVE(WEATHER_BALL) + .2byte EC_WORD_WEDNESDAY + .2byte EC_POKEMON2(WEEDLE) + .2byte EC_WORD_WEEK + .2byte EC_POKEMON2(WEEPINBELL) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(WEEZING) + .2byte EC_POKEMON2(WEEZING) + .2byte EC_WORD_WEIRD + .2byte EC_WORD_WELCOME + .2byte EC_WORD_WELL + .2byte EC_WORD_WELL_THEN + .2byte EC_WORD_WENT + .2byte EC_WORD_WERE + .2byte EC_WORD_WEREN_T + .2byte EC_WORD_WHAT + .2byte EC_WORD_WHAT_S_UP_QUES + .2byte EC_WORD_WHEN + .2byte EC_WORD_WHEN_I_WIN + .2byte EC_WORD_WHERE + .2byte EC_WORD_WHICH + .2byte EC_WORD_WHILE + .2byte EC_MOVE(WHIRLPOOL) + .2byte EC_MOVE2(WHIRLWIND) + .2byte EC_POKEMON(WHISCASH) + .2byte EC_POKEMON(WHISMUR) + .2byte EC_WORD_WHITE_SMOKE + .2byte EC_WORD_WHO + .2byte EC_WORD_WHO_IS + .2byte EC_WORD_WHO_WAS + .2byte EC_WORD_WHOAH + .2byte EC_WORD_WHOM + .2byte EC_WORD_WHOSE + .2byte EC_WORD_WHY + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(WIGGLYTUFF) + .2byte EC_POKEMON2(WIGGLYTUFF) + .2byte EC_WORD_WILD + .2byte EC_WORD_WILL + .2byte EC_WORD_WILL_BE_HERE + .2byte EC_MOVE(WILL_O_WISP) + .2byte EC_WORD_WIMPY + .2byte EC_WORD_WIN + .2byte EC_MOVE2(WING_ATTACK) + .2byte EC_POKEMON(WINGULL) + .2byte EC_WORD_WINNER + .2byte EC_WORD_WINS + .2byte EC_WORD_WINTER + .2byte EC_WORD_WIRELESS + .2byte EC_MOVE2(WISH) + .2byte EC_WORD_WITH + .2byte EC_MOVE(WITHDRAW) + .2byte EC_WORD_WITHOUT + .2byte EC_WORD_WOBBLY + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON(WOBBUFFET) + .2byte EC_POKEMON2(WOBBUFFET) + .2byte EC_WORD_WOMAN + .2byte EC_WORD_WON + .2byte EC_WORD_WON_T + .2byte EC_WORD_WONDER + .2byte EC_WORD_WONDER_GUARD + .2byte EC_POKEMON2(WOOPER) + .2byte EC_WORD_WORD + .2byte EC_WORD_WORK + .2byte EC_WORD_WORKING + .2byte EC_WORD_WORKS + .2byte EC_WORD_WORLD + .2byte EC_WORD_WORRY + .2byte EC_WORD_WOULD + .2byte EC_WORD_WOW + .2byte EC_WORD_WOWEE + .2byte EC_MOVE2(WRAP) + .2byte EC_WORD_WROOOAAR_EXCL + .2byte EC_POKEMON(WURMPLE) + .2byte EC_POKEMON(WYNAUT) gEasyChatWordsByLetter_X:: @ 859DFB4 .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 XATU - ec_pokemon2 XATU + .2byte EC_POKEMON(XATU) + .2byte EC_POKEMON2(XATU) gEasyChatWordsByLetter_Y:: @ 859DFBC - ec_word YAHOO - ec_pokemon2 YANMA - ec_move1 YAWN - ec_word YAY - ec_word YEAH - ec_word YEAH_YEAH - ec_word YEEHAW_EXCL - ec_word YES - ec_word YES_SIR_EXCL - ec_word YESTERDAY - ec_word YET - ec_word YO - ec_word YOU - ec_word YOU_RE - ec_word YOU_VE - ec_word YOUNG - ec_word YOUR - ec_word YOURS - ec_word YUP + .2byte EC_WORD_YAHOO + .2byte EC_POKEMON2(YANMA) + .2byte EC_MOVE(YAWN) + .2byte EC_WORD_YAY + .2byte EC_WORD_YEAH + .2byte EC_WORD_YEAH_YEAH + .2byte EC_WORD_YEEHAW_EXCL + .2byte EC_WORD_YES + .2byte EC_WORD_YES_SIR_EXCL + .2byte EC_WORD_YESTERDAY + .2byte EC_WORD_YET + .2byte EC_WORD_YO + .2byte EC_WORD_YOU + .2byte EC_WORD_YOU_RE + .2byte EC_WORD_YOU_VE + .2byte EC_WORD_YOUNG + .2byte EC_WORD_YOUR + .2byte EC_WORD_YOURS + .2byte EC_WORD_YUP gEasyChatWordsByLetter_Z:: @ 859DFE2 - ec_pokemon1 ZANGOOSE - ec_move2 ZAP_CANNON - ec_pokemon2 ZAPDOS - ec_pokemon1 ZIGZAGOON + .2byte EC_POKEMON(ZANGOOSE) + .2byte EC_MOVE2(ZAP_CANNON) + .2byte EC_POKEMON2(ZAPDOS) + .2byte EC_POKEMON(ZIGZAGOON) .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon1 ZUBAT - ec_pokemon2 ZUBAT + .2byte EC_POKEMON(ZUBAT) + .2byte EC_POKEMON2(ZUBAT) gEasyChatWordsByLetter_UnusedJapaneseHi:: @ 859DFF2 - ec_pokemon2 CLEFFA - ec_word AIYEEH - ec_pokemon2 WEEDLE - ec_word HERO - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon2 PIKACHU - ec_pokemon1 PIKACHU - ec_move2 LIGHT_SCREEN - ec_word SHINE - ec_word LOW - ec_pokemon2 CLEFABLE - ec_word FLYING - ec_pokemon2 PIDGEOT - ec_pokemon2 PIDGEOTTO - ec_word LEFT - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon2 PICHU - ec_pokemon1 PICHU - ec_move2 SCRATCH - ec_word SURPRISE - ec_move2 HYPER_FANG - ec_pokemon2 CLEFAIRY - ec_word DROUGHT - ec_word HIDDEN - ec_word PERSON - ec_word AWFUL - ec_pokemon2 CHARMANDER - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon2 STARYU - ec_pokemon1 STARYU - ec_word ALONE - ec_pokemon2 CYNDAQUIL - ec_move2 EMBER - ec_pokemon1 VIBRAVA - ec_word BORED - ec_pokemon2 SUNKERN - ec_word SECRET - ec_word SECRET_BASE - ec_move2 SECRET_POWER - ec_pokemon2 TEDDIURSA - ec_word HIYAH - ec_move2 DIZZY_PUNCH - ec_word LIGHTNINGROD - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon2 VOLTORB - ec_pokemon1 VOLTORB - ec_word DAYTIME - ec_move2 BULK_UP - ec_word NAP - ec_word HEROINE - ec_pokemon1 FEEBAS + .2byte EC_POKEMON2(CLEFFA) + .2byte EC_WORD_AIYEEH + .2byte EC_POKEMON2(WEEDLE) + .2byte EC_WORD_HERO + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON2(PIKACHU) + .2byte EC_POKEMON(PIKACHU) + .2byte EC_MOVE2(LIGHT_SCREEN) + .2byte EC_WORD_SHINE + .2byte EC_WORD_LOW + .2byte EC_POKEMON2(CLEFABLE) + .2byte EC_WORD_FLYING + .2byte EC_POKEMON2(PIDGEOT) + .2byte EC_POKEMON2(PIDGEOTTO) + .2byte EC_WORD_LEFT + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON2(PICHU) + .2byte EC_POKEMON(PICHU) + .2byte EC_MOVE2(SCRATCH) + .2byte EC_WORD_SURPRISE + .2byte EC_MOVE2(HYPER_FANG) + .2byte EC_POKEMON2(CLEFAIRY) + .2byte EC_WORD_DROUGHT + .2byte EC_WORD_HIDDEN + .2byte EC_WORD_PERSON + .2byte EC_WORD_AWFUL + .2byte EC_POKEMON2(CHARMANDER) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON2(STARYU) + .2byte EC_POKEMON(STARYU) + .2byte EC_WORD_ALONE + .2byte EC_POKEMON2(CYNDAQUIL) + .2byte EC_MOVE2(EMBER) + .2byte EC_POKEMON(VIBRAVA) + .2byte EC_WORD_BORED + .2byte EC_POKEMON2(SUNKERN) + .2byte EC_WORD_SECRET + .2byte EC_WORD_SECRET_BASE + .2byte EC_MOVE2(SECRET_POWER) + .2byte EC_POKEMON2(TEDDIURSA) + .2byte EC_WORD_HIYAH + .2byte EC_MOVE2(DIZZY_PUNCH) + .2byte EC_WORD_LIGHTNINGROD + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON2(VOLTORB) + .2byte EC_POKEMON(VOLTORB) + .2byte EC_WORD_DAYTIME + .2byte EC_MOVE2(BULK_UP) + .2byte EC_WORD_NAP + .2byte EC_WORD_HEROINE + .2byte EC_POKEMON(FEEBAS) gEasyChatWordsByLetter_UnusedJapaneseFu:: @ 859E060 - ec_word FIGHT - ec_pokemon2 MOLTRES - ec_word FASHION - ec_word FEAR - ec_word FEVER - ec_move2 IMPRISON - ec_pokemon2 FLAREON - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon2 ALAKAZAM - ec_pokemon1 ALAKAZAM - ec_pokemon2 MAGMAR - ec_pokemon1 GRUMPIG - ec_move2 FEATHER_DANCE - ec_pokemon2 FORRETRESS - ec_move2 WHIRLWIND - ec_word COMPOUNDEYES - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon2 WIGGLYTUFF - ec_pokemon1 WIGGLYTUFF - ec_move2 BEAT_UP - ec_word MYSTERY - ec_pokemon2 IVYSAUR - ec_pokemon2 BULBASAUR - ec_word MARVEL_SCALE - ec_word WONDER_GUARD - ec_pokemon2 VENUSAUR - ec_word LACKS - ec_word RESUSCITATE - ec_word SMACK - ec_word FUFUFU - ec_pokemon2 AERODACTYL - ec_word WIMPY - ec_pokemon2 MAGBY - ec_word LOL - ec_move2 BLIZZARD - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon2 IGGLYBUFF - ec_pokemon1 IGGLYBUFF - ec_word SNORT - ec_move2 STOMP - ec_word INSOMNIA - ec_word WINTER - ec_word LEVITATE - ec_pokemon1 FLYGON - ec_word PLUS - ec_move2 BLAST_BURN - ec_pokemon1 PLUSLE - ec_pokemon2 UMBREON - ec_move2 FLASH - ec_word WOBBLY - ec_move2 TEETER_DANCE - ec_word PRETEND - ec_pokemon2 ARTICUNO - ec_word WANNABE - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon2 JIGGLYPUFF - ec_pokemon1 JIGGLYPUFF - ec_pokemon2 SNUBBULL - ec_word SHAKY - ec_move2 CRUSH_CLAW - ec_move2 BLAZE_KICK - ec_move2 PRESENT - ec_word PRESSURE - ec_word BLEND - ec_word FRONTIER - ec_word HUMPH - ec_move2 ERUPTION + .2byte EC_WORD_FIGHT + .2byte EC_POKEMON2(MOLTRES) + .2byte EC_WORD_FASHION + .2byte EC_WORD_FEAR + .2byte EC_WORD_FEVER + .2byte EC_MOVE2(IMPRISON) + .2byte EC_POKEMON2(FLAREON) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON2(ALAKAZAM) + .2byte EC_POKEMON(ALAKAZAM) + .2byte EC_POKEMON2(MAGMAR) + .2byte EC_POKEMON(GRUMPIG) + .2byte EC_MOVE2(FEATHER_DANCE) + .2byte EC_POKEMON2(FORRETRESS) + .2byte EC_MOVE2(WHIRLWIND) + .2byte EC_WORD_COMPOUNDEYES + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON2(WIGGLYTUFF) + .2byte EC_POKEMON(WIGGLYTUFF) + .2byte EC_MOVE2(BEAT_UP) + .2byte EC_WORD_MYSTERY + .2byte EC_POKEMON2(IVYSAUR) + .2byte EC_POKEMON2(BULBASAUR) + .2byte EC_WORD_MARVEL_SCALE + .2byte EC_WORD_WONDER_GUARD + .2byte EC_POKEMON2(VENUSAUR) + .2byte EC_WORD_LACKS + .2byte EC_WORD_RESUSCITATE + .2byte EC_WORD_SMACK + .2byte EC_WORD_FUFUFU + .2byte EC_POKEMON2(AERODACTYL) + .2byte EC_WORD_WIMPY + .2byte EC_POKEMON2(MAGBY) + .2byte EC_WORD_LOL + .2byte EC_MOVE2(BLIZZARD) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON2(IGGLYBUFF) + .2byte EC_POKEMON(IGGLYBUFF) + .2byte EC_WORD_SNORT + .2byte EC_MOVE2(STOMP) + .2byte EC_WORD_INSOMNIA + .2byte EC_WORD_WINTER + .2byte EC_WORD_LEVITATE + .2byte EC_POKEMON(FLYGON) + .2byte EC_WORD_PLUS + .2byte EC_MOVE2(BLAST_BURN) + .2byte EC_POKEMON(PLUSLE) + .2byte EC_POKEMON2(UMBREON) + .2byte EC_MOVE2(FLASH) + .2byte EC_WORD_WOBBLY + .2byte EC_MOVE2(TEETER_DANCE) + .2byte EC_WORD_PRETEND + .2byte EC_POKEMON2(ARTICUNO) + .2byte EC_WORD_WANNABE + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON2(JIGGLYPUFF) + .2byte EC_POKEMON(JIGGLYPUFF) + .2byte EC_POKEMON2(SNUBBULL) + .2byte EC_WORD_SHAKY + .2byte EC_MOVE2(CRUSH_CLAW) + .2byte EC_MOVE2(BLAZE_KICK) + .2byte EC_MOVE2(PRESENT) + .2byte EC_WORD_PRESSURE + .2byte EC_WORD_BLEND + .2byte EC_WORD_FRONTIER + .2byte EC_WORD_HUMPH + .2byte EC_MOVE2(ERUPTION) gEasyChatWordsByLetter_UnusedJapaneseHe:: @ 859E0EE - ec_word HEY - ec_pokemon1 CORPHISH - ec_word BABY - ec_pokemon2 BAYLEEF - ec_word BEST - ec_word LOUSY - ec_word HEHEHE - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon2 GRIMER - ec_pokemon1 GRIMER - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon2 MUK - ec_pokemon1 MUK - ec_word LIQUID_OOZE - ec_move2 SLUDGE - ec_move2 SLUDGE_BOMB - ec_move2 GLARE - ec_word HEH - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon2 HERACROSS - ec_pokemon1 HERACROSS - ec_pokemon1 PELIPPER - ec_pokemon2 HOUNDOOM - ec_pokemon2 PERSIAN - ec_word RIPPED - ec_pokemon2 LICKITUNG - ec_word STUDY - ec_word COLOR_CHANGE - ec_move2 TRANSFORM + .2byte EC_WORD_HEY + .2byte EC_POKEMON(CORPHISH) + .2byte EC_WORD_BABY + .2byte EC_POKEMON2(BAYLEEF) + .2byte EC_WORD_BEST + .2byte EC_WORD_LOUSY + .2byte EC_WORD_HEHEHE + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON2(GRIMER) + .2byte EC_POKEMON(GRIMER) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON2(MUK) + .2byte EC_POKEMON(MUK) + .2byte EC_WORD_LIQUID_OOZE + .2byte EC_MOVE2(SLUDGE) + .2byte EC_MOVE2(SLUDGE_BOMB) + .2byte EC_MOVE2(GLARE) + .2byte EC_WORD_HEH + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON2(HERACROSS) + .2byte EC_POKEMON(HERACROSS) + .2byte EC_POKEMON(PELIPPER) + .2byte EC_POKEMON2(HOUNDOOM) + .2byte EC_POKEMON2(PERSIAN) + .2byte EC_WORD_RIPPED + .2byte EC_POKEMON2(LICKITUNG) + .2byte EC_WORD_STUDY + .2byte EC_WORD_COLOR_CHANGE + .2byte EC_MOVE2(TRANSFORM) gEasyChatWordsByLetter_UnusedJapaneseHo:: @ 859E12E - ec_move2 POISON_TAIL - ec_word POINTS - ec_pokemon2 HO_OH - ec_word SOUNDPROOF - ec_word ADVENTURE - ec_word EFFECT_SPORE - ec_move2 ROAR - ec_pokemon1 WAILORD - ec_pokemon1 WAILMER - ec_word DUDE - ec_word BOARD - ec_pokemon2 HOOTHOOT - ec_pokemon1 SALAMENCE - ec_word BALL - ec_move2 BONE_RUSH - ec_word THEY - ec_word THEY_WERE - ec_word TO_THEM - ec_word THEIR - ec_word THEY_RE - ec_word THEY_VE - ec_word POKENAV - ec_word POKEMON - ec_word GET - ec_word POKEDEX - ec_word PKRS - ec_move2 CAMOUFLAGE - ec_word WANT - ec_move2 COVET - ec_pokemon1 AGGRON - ec_move2 TAIL_GLOW - ec_pokemon1 POOCHYENA - ec_pokemon2 PIDGEY - ec_word AS_MUCH_AS - ec_pokemon2 PONYTA - ec_move2 BONE_CLUB - ec_move2 BONEMERANG - ec_word FIRE - ec_move2 FIRE_SPIN - ec_word FLAME_BODY - ec_move2 FIRE_PUNCH - ec_pokemon2 SKIPLOOM - ec_word HOHOHO - ec_word PRAISE - ec_word UH_HUH - ec_pokemon2 PORYGON - ec_pokemon2 PORYGON2 - ec_move2 VOLT_TACKLE - ec_word POKEBLOCK - ec_move2 PERISH_SONG - ec_word SHREDDED - ec_pokemon1 CASTFORM - ec_word BOOK - ec_word SERIOUS - ec_word REALLY + .2byte EC_MOVE2(POISON_TAIL) + .2byte EC_WORD_POINTS + .2byte EC_POKEMON2(HO_OH) + .2byte EC_WORD_SOUNDPROOF + .2byte EC_WORD_ADVENTURE + .2byte EC_WORD_EFFECT_SPORE + .2byte EC_MOVE2(ROAR) + .2byte EC_POKEMON(WAILORD) + .2byte EC_POKEMON(WAILMER) + .2byte EC_WORD_DUDE + .2byte EC_WORD_BOARD + .2byte EC_POKEMON2(HOOTHOOT) + .2byte EC_POKEMON(SALAMENCE) + .2byte EC_WORD_BALL + .2byte EC_MOVE2(BONE_RUSH) + .2byte EC_WORD_THEY + .2byte EC_WORD_THEY_WERE + .2byte EC_WORD_TO_THEM + .2byte EC_WORD_THEIR + .2byte EC_WORD_THEY_RE + .2byte EC_WORD_THEY_VE + .2byte EC_WORD_POKENAV + .2byte EC_WORD_POKEMON + .2byte EC_WORD_GET + .2byte EC_WORD_POKEDEX + .2byte EC_WORD_PKRS + .2byte EC_MOVE2(CAMOUFLAGE) + .2byte EC_WORD_WANT + .2byte EC_MOVE2(COVET) + .2byte EC_POKEMON(AGGRON) + .2byte EC_MOVE2(TAIL_GLOW) + .2byte EC_POKEMON(POOCHYENA) + .2byte EC_POKEMON2(PIDGEY) + .2byte EC_WORD_AS_MUCH_AS + .2byte EC_POKEMON2(PONYTA) + .2byte EC_MOVE2(BONE_CLUB) + .2byte EC_MOVE2(BONEMERANG) + .2byte EC_WORD_FIRE + .2byte EC_MOVE2(FIRE_SPIN) + .2byte EC_WORD_FLAME_BODY + .2byte EC_MOVE2(FIRE_PUNCH) + .2byte EC_POKEMON2(SKIPLOOM) + .2byte EC_WORD_HOHOHO + .2byte EC_WORD_PRAISE + .2byte EC_WORD_UH_HUH + .2byte EC_POKEMON2(PORYGON) + .2byte EC_POKEMON2(PORYGON2) + .2byte EC_MOVE2(VOLT_TACKLE) + .2byte EC_WORD_POKEBLOCK + .2byte EC_MOVE2(PERISH_SONG) + .2byte EC_WORD_SHREDDED + .2byte EC_POKEMON(CASTFORM) + .2byte EC_WORD_BOOK + .2byte EC_WORD_SERIOUS + .2byte EC_WORD_REALLY gEasyChatWordsByLetter_UnusedJapaneseMa:: @ 859E19C - ec_word OH_DEAR - ec_word IN - ec_word GIVE_UP - ec_word MINUS - ec_pokemon1 MINUN - ec_word DAILY - ec_word OWN_TEMPO - ec_move2 WRAP - ec_move2 SPIKES - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon2 MAGCARGO - ec_pokemon1 MAGCARGO - ec_move2 MAGNITUDE - ec_pokemon1 MAKUHITA - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon2 SLUGMA - ec_pokemon1 SLUGMA - ec_word MAGMA_ARMOR - ec_pokemon2 QUILAVA - ec_word OVERDO - ec_word LOSS - ec_word IF_I_LOSE - ec_word LOST - ec_word LOSE - ec_word TRULY - ec_word SERIOUSLY - ec_move2 MAGICAL_LEAF - ec_move2 MAGIC_COAT - ec_word MACHINE - ec_word OUT - ec_word MASTER - ec_word INCREASING - ec_word TOO - ec_word LIKE - ec_pokemon2 BELLSPROUT - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon2 WEEZING - ec_pokemon1 WEEZING - ec_word SMELL - ec_word YET - ec_word MISTAKE - ec_pokemon1 LINOONE - ec_word TOTALLY - ec_move2 MUD_SHOT - ec_move2 MACH_PUNCH - ec_word FESTIVAL - ec_word UNTIL - ec_word WAIT - ec_word GUARD - ec_move2 PROTECT - ec_pokemon1 CASCOON - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon2 MARILL - ec_pokemon1 MARILL - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon2 AZUMARILL - ec_pokemon1 AZUMARILL - ec_move2 DEFENSE_CURL - ec_word AS_IF - ec_pokemon1 SWALOT - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon2 ELECTRODE - ec_pokemon1 ELECTRODE - ec_move2 ROLLING_KICK - ec_word COMICS - ec_pokemon2 MANKEY - ec_word SATISFIED - ec_pokemon2 MANTINE + .2byte EC_WORD_OH_DEAR + .2byte EC_WORD_IN + .2byte EC_WORD_GIVE_UP + .2byte EC_WORD_MINUS + .2byte EC_POKEMON(MINUN) + .2byte EC_WORD_DAILY + .2byte EC_WORD_OWN_TEMPO + .2byte EC_MOVE2(WRAP) + .2byte EC_MOVE2(SPIKES) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON2(MAGCARGO) + .2byte EC_POKEMON(MAGCARGO) + .2byte EC_MOVE2(MAGNITUDE) + .2byte EC_POKEMON(MAKUHITA) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON2(SLUGMA) + .2byte EC_POKEMON(SLUGMA) + .2byte EC_WORD_MAGMA_ARMOR + .2byte EC_POKEMON2(QUILAVA) + .2byte EC_WORD_OVERDO + .2byte EC_WORD_LOSS + .2byte EC_WORD_IF_I_LOSE + .2byte EC_WORD_LOST + .2byte EC_WORD_LOSE + .2byte EC_WORD_TRULY + .2byte EC_WORD_SERIOUSLY + .2byte EC_MOVE2(MAGICAL_LEAF) + .2byte EC_MOVE2(MAGIC_COAT) + .2byte EC_WORD_MACHINE + .2byte EC_WORD_OUT + .2byte EC_WORD_MASTER + .2byte EC_WORD_INCREASING + .2byte EC_WORD_TOO + .2byte EC_WORD_LIKE + .2byte EC_POKEMON2(BELLSPROUT) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON2(WEEZING) + .2byte EC_POKEMON(WEEZING) + .2byte EC_WORD_SMELL + .2byte EC_WORD_YET + .2byte EC_WORD_MISTAKE + .2byte EC_POKEMON(LINOONE) + .2byte EC_WORD_TOTALLY + .2byte EC_MOVE2(MUD_SHOT) + .2byte EC_MOVE2(MACH_PUNCH) + .2byte EC_WORD_FESTIVAL + .2byte EC_WORD_UNTIL + .2byte EC_WORD_WAIT + .2byte EC_WORD_GUARD + .2byte EC_MOVE2(PROTECT) + .2byte EC_POKEMON(CASCOON) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON2(MARILL) + .2byte EC_POKEMON(MARILL) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON2(AZUMARILL) + .2byte EC_POKEMON(AZUMARILL) + .2byte EC_MOVE2(DEFENSE_CURL) + .2byte EC_WORD_AS_IF + .2byte EC_POKEMON(SWALOT) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON2(ELECTRODE) + .2byte EC_POKEMON(ELECTRODE) + .2byte EC_MOVE2(ROLLING_KICK) + .2byte EC_WORD_COMICS + .2byte EC_POKEMON2(MANKEY) + .2byte EC_WORD_SATISFIED + .2byte EC_POKEMON2(MANTINE) gEasyChatWordsByLetter_UnusedJapaneseMi:: @ 859E230 - ec_word PARTNER - ec_move2 SUBSTITUTE - ec_word RIGHT - ec_move2 DETECT - ec_move2 PIN_MISSILE - ec_word WATER - ec_move2 WATER_SPORT - ec_pokemon1 MUDKIP - ec_move2 WATER_GUN - ec_move2 MIST_BALL - ec_move2 WATER_PULSE - ec_word WATER_VEIL - ec_word SHOW - ec_word SEE - ec_word DID - ec_move2 FURY_ATTACK - ec_move2 FURY_SWIPES - ec_move2 DESTINY_BOND - ec_word LOOKS - ec_word REJECT - ec_word ACCEPT - ec_pokemon2 DRATINI - ec_move2 FALSE_SWIPE - ec_move2 FORESIGHT - ec_pokemon2 MEW - ec_pokemon2 MEWTWO - ec_move2 MIRROR_COAT - ec_move2 FUTURE_SIGHT - ec_word SEES - ec_move2 MILK_DRINK - ec_pokemon2 MILTANK - ec_pokemon1 MILOTIC - ec_word WE - ec_word BEEN - ec_word TO_US - ec_word OUR - ec_word WE_RE + .2byte EC_WORD_PARTNER + .2byte EC_MOVE2(SUBSTITUTE) + .2byte EC_WORD_RIGHT + .2byte EC_MOVE2(DETECT) + .2byte EC_MOVE2(PIN_MISSILE) + .2byte EC_WORD_WATER + .2byte EC_MOVE2(WATER_SPORT) + .2byte EC_POKEMON(MUDKIP) + .2byte EC_MOVE2(WATER_GUN) + .2byte EC_MOVE2(MIST_BALL) + .2byte EC_MOVE2(WATER_PULSE) + .2byte EC_WORD_WATER_VEIL + .2byte EC_WORD_SHOW + .2byte EC_WORD_SEE + .2byte EC_WORD_DID + .2byte EC_MOVE2(FURY_ATTACK) + .2byte EC_MOVE2(FURY_SWIPES) + .2byte EC_MOVE2(DESTINY_BOND) + .2byte EC_WORD_LOOKS + .2byte EC_WORD_REJECT + .2byte EC_WORD_ACCEPT + .2byte EC_POKEMON2(DRATINI) + .2byte EC_MOVE2(FALSE_SWIPE) + .2byte EC_MOVE2(FORESIGHT) + .2byte EC_POKEMON2(MEW) + .2byte EC_POKEMON2(MEWTWO) + .2byte EC_MOVE2(MIRROR_COAT) + .2byte EC_MOVE2(FUTURE_SIGHT) + .2byte EC_WORD_SEES + .2byte EC_MOVE2(MILK_DRINK) + .2byte EC_POKEMON2(MILTANK) + .2byte EC_POKEMON(MILOTIC) + .2byte EC_WORD_WE + .2byte EC_WORD_BEEN + .2byte EC_WORD_TO_US + .2byte EC_WORD_OUR + .2byte EC_WORD_WE_RE gEasyChatWordsByLetter_UnusedJapaneseMu:: @ 859E27A - ec_word MOOD - ec_pokemon2 MISDREAVUS - ec_word OLDEN - ec_word ARRGH - ec_word BUG - ec_word SWARM - ec_word RATHER - ec_pokemon2 SMOOCHUM - ec_word INVINCIBLE - ec_word HEART - ec_word MUFUFU - ec_word MMM + .2byte EC_WORD_MOOD + .2byte EC_POKEMON2(MISDREAVUS) + .2byte EC_WORD_OLDEN + .2byte EC_WORD_ARRGH + .2byte EC_WORD_BUG + .2byte EC_WORD_SWARM + .2byte EC_WORD_RATHER + .2byte EC_POKEMON2(SMOOCHUM) + .2byte EC_WORD_INVINCIBLE + .2byte EC_WORD_HEART + .2byte EC_WORD_MUFUFU + .2byte EC_WORD_MMM gEasyChatWordsByLetter_UnusedJapaneseMe:: @ 859E292 - ec_move2 CALM_MIND - ec_word MAIL - ec_move2 MEGA_DRAIN - ec_move2 MEGA_KICK - ec_move2 MEGA_PUNCH - ec_pokemon2 MEGANIUM - ec_move2 MEGAHORN - ec_word SEEK - ec_move2 HIDDEN_POWER - ec_word RARE - ec_pokemon1 METAGROSS - ec_pokemon2 DITTO - ec_move2 METAL_CLAW - ec_pokemon1 METANG - ec_word DESTROYED - ec_word MESSAGE - ec_word AWFULLY - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon2 TENTACOOL - ec_pokemon1 TENTACOOL - ec_word FIERY - ec_pokemon2 MAREEP - ec_move2 ATTRACT - ec_word CUTE_CHARM - ec_word IMMUNITY + .2byte EC_MOVE2(CALM_MIND) + .2byte EC_WORD_MAIL + .2byte EC_MOVE2(MEGA_DRAIN) + .2byte EC_MOVE2(MEGA_KICK) + .2byte EC_MOVE2(MEGA_PUNCH) + .2byte EC_POKEMON2(MEGANIUM) + .2byte EC_MOVE2(MEGAHORN) + .2byte EC_WORD_SEEK + .2byte EC_MOVE2(HIDDEN_POWER) + .2byte EC_WORD_RARE + .2byte EC_POKEMON(METAGROSS) + .2byte EC_POKEMON2(DITTO) + .2byte EC_MOVE2(METAL_CLAW) + .2byte EC_POKEMON(METANG) + .2byte EC_WORD_DESTROYED + .2byte EC_WORD_MESSAGE + .2byte EC_WORD_AWFULLY + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON2(TENTACOOL) + .2byte EC_POKEMON(TENTACOOL) + .2byte EC_WORD_FIERY + .2byte EC_POKEMON2(MAREEP) + .2byte EC_MOVE2(ATTRACT) + .2byte EC_WORD_CUTE_CHARM + .2byte EC_WORD_IMMUNITY gEasyChatWordsByLetter_UnusedJapaneseMo:: @ 859E2C6 - ec_word ALMOST - ec_word BLAZE - ec_word NEARLY - ec_word MODE - ec_word OLD - ec_word THURSDAY - ec_pokemon2 FLAAFFY - ec_word LISTENING - ec_word OWN - ec_word MORE - ec_word DIDN_T - ec_word PICKUP - ec_move2 MIMIC - ec_word TOO_LATE - ec_word PATTERN - ec_word FLASH_FIRE - ec_word RECEIVED - ec_pokemon2 VENOMOTH - ec_word DOESN_T - ec_pokemon2 TANGELA + .2byte EC_WORD_ALMOST + .2byte EC_WORD_BLAZE + .2byte EC_WORD_NEARLY + .2byte EC_WORD_MODE + .2byte EC_WORD_OLD + .2byte EC_WORD_THURSDAY + .2byte EC_POKEMON2(FLAAFFY) + .2byte EC_WORD_LISTENING + .2byte EC_WORD_OWN + .2byte EC_WORD_MORE + .2byte EC_WORD_DIDN_T + .2byte EC_WORD_PICKUP + .2byte EC_MOVE2(MIMIC) + .2byte EC_WORD_TOO_LATE + .2byte EC_WORD_PATTERN + .2byte EC_WORD_FLASH_FIRE + .2byte EC_WORD_RECEIVED + .2byte EC_POKEMON2(VENOMOTH) + .2byte EC_WORD_DOESN_T + .2byte EC_POKEMON2(TANGELA) gEasyChatWordsByLetter_UnusedJapaneseYa:: @ 859E2EE - ec_word HOO_HAH - ec_word PROMISE - ec_word KIND - ec_pokemon1 BALTOY - ec_word HOLIDAY - ec_word NEGATIVE - ec_move2 FRUSTRATION - ec_word DONE - ec_word FINALLY - ec_word ANY - ec_word YAHOO - ec_pokemon2 SLOWKING - ec_pokemon2 SLOWBRO - ec_move2 LEECH_SEED - ec_pokemon2 SLOWPOKE - ec_word DANGER - ec_pokemon2 MURKROW - ec_pokemon1 SABLEYE - ec_word DEFEATED - ec_word BEAT - ec_word VITAL_SPIRIT - ec_pokemon1 VIGOROTH - ec_word YOUNG - ec_pokemon2 YANMA + .2byte EC_WORD_HOO_HAH + .2byte EC_WORD_PROMISE + .2byte EC_WORD_KIND + .2byte EC_POKEMON(BALTOY) + .2byte EC_WORD_HOLIDAY + .2byte EC_WORD_NEGATIVE + .2byte EC_MOVE2(FRUSTRATION) + .2byte EC_WORD_DONE + .2byte EC_WORD_FINALLY + .2byte EC_WORD_ANY + .2byte EC_WORD_YAHOO + .2byte EC_POKEMON2(SLOWKING) + .2byte EC_POKEMON2(SLOWBRO) + .2byte EC_MOVE2(LEECH_SEED) + .2byte EC_POKEMON2(SLOWPOKE) + .2byte EC_WORD_DANGER + .2byte EC_POKEMON2(MURKROW) + .2byte EC_POKEMON(SABLEYE) + .2byte EC_WORD_DEFEATED + .2byte EC_WORD_BEAT + .2byte EC_WORD_VITAL_SPIRIT + .2byte EC_POKEMON(VIGOROTH) + .2byte EC_WORD_YOUNG + .2byte EC_POKEMON2(YANMA) gEasyChatWordsByLetter_UnusedJapaneseYu:: @ 859E31E - ec_pokemon1 SNORUNT - ec_word TAKE - ec_word UNION - ec_move2 METRONOME - ec_word DREAM - ec_move2 DREAM_EATER - ec_word ALLOW - ec_word FORGET - ec_pokemon1 CRADILY - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon2 KADABRA - ec_pokemon1 KADABRA + .2byte EC_POKEMON(SNORUNT) + .2byte EC_WORD_TAKE + .2byte EC_WORD_UNION + .2byte EC_MOVE2(METRONOME) + .2byte EC_WORD_DREAM + .2byte EC_MOVE2(DREAM_EATER) + .2byte EC_WORD_ALLOW + .2byte EC_WORD_FORGET + .2byte EC_POKEMON(CRADILY) + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON2(KADABRA) + .2byte EC_POKEMON(KADABRA) gEasyChatWordsByLetter_UnusedJapaneseYo:: @ 859E338 - ec_word WITHOUT - ec_word YO - ec_move2 ACID - ec_word COME_OVER - ec_word KINDERGARTEN - ec_word CHLOROPHYLL - ec_word AFTER - ec_pokemon2 LARVITAR - ec_word OH_KAY - ec_word BEFORE - ec_word GREAT - ec_move2 MEDITATE - ec_word PURE_POWER - ec_word WELL - ec_move2 SNATCH - ec_word OKAY - ec_word PLANS - ec_word NIGHTTIME - ec_word WHILE - ec_pokemon1 DUSKULL - ec_word EASY - ec_word INSTEAD - ec_word NIGHT - ec_pokemon2 NOCTOWL - ec_word COUNT_ON - ec_word WEAK - ec_word TOO_WEAK - ec_word WEAKENED + .2byte EC_WORD_WITHOUT + .2byte EC_WORD_YO + .2byte EC_MOVE2(ACID) + .2byte EC_WORD_COME_OVER + .2byte EC_WORD_KINDERGARTEN + .2byte EC_WORD_CHLOROPHYLL + .2byte EC_WORD_AFTER + .2byte EC_POKEMON2(LARVITAR) + .2byte EC_WORD_OH_KAY + .2byte EC_WORD_BEFORE + .2byte EC_WORD_GREAT + .2byte EC_MOVE2(MEDITATE) + .2byte EC_WORD_PURE_POWER + .2byte EC_WORD_WELL + .2byte EC_MOVE2(SNATCH) + .2byte EC_WORD_OKAY + .2byte EC_WORD_PLANS + .2byte EC_WORD_NIGHTTIME + .2byte EC_WORD_WHILE + .2byte EC_POKEMON(DUSKULL) + .2byte EC_WORD_EASY + .2byte EC_WORD_INSTEAD + .2byte EC_WORD_NIGHT + .2byte EC_POKEMON2(NOCTOWL) + .2byte EC_WORD_COUNT_ON + .2byte EC_WORD_WEAK + .2byte EC_WORD_TOO_WEAK + .2byte EC_WORD_WEAKENED gEasyChatWordsByLetter_UnusedJapaneseRa:: @ 859E370 - ec_pokemon2 RAIKOU - ec_word WEEK - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon2 RAICHU - ec_pokemon1 RAICHU - ec_word RIVAL - ec_word LIFE - ec_pokemon1 MANECTRIC - ec_word SIMPLE - ec_word PUSHOVER - ec_pokemon1 SWAMPERT - ec_pokemon1 ELECTRIKE - ec_word SEEMS - ec_word RADIO - ec_move2 LUSTER_PURGE - ec_pokemon2 CHANSEY - ec_pokemon2 RATICATE - ec_pokemon1 LATIAS - ec_pokemon1 LATIOS - ec_pokemon1 LUVDISC - ec_pokemon2 LAPRAS - ec_word LOVEY_DOVEY - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon2 VILEPLUME - ec_pokemon1 VILEPLUME - ec_word LALALA - ec_pokemon1 RALTS - ec_word FORGETS - ec_word APPEARS - ec_word RANK - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon2 LANTURN - ec_pokemon1 LANTURN + .2byte EC_POKEMON2(RAIKOU) + .2byte EC_WORD_WEEK + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON2(RAICHU) + .2byte EC_POKEMON(RAICHU) + .2byte EC_WORD_RIVAL + .2byte EC_WORD_LIFE + .2byte EC_POKEMON(MANECTRIC) + .2byte EC_WORD_SIMPLE + .2byte EC_WORD_PUSHOVER + .2byte EC_POKEMON(SWAMPERT) + .2byte EC_POKEMON(ELECTRIKE) + .2byte EC_WORD_SEEMS + .2byte EC_WORD_RADIO + .2byte EC_MOVE2(LUSTER_PURGE) + .2byte EC_POKEMON2(CHANSEY) + .2byte EC_POKEMON2(RATICATE) + .2byte EC_POKEMON(LATIAS) + .2byte EC_POKEMON(LATIOS) + .2byte EC_POKEMON(LUVDISC) + .2byte EC_POKEMON2(LAPRAS) + .2byte EC_WORD_LOVEY_DOVEY + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON2(VILEPLUME) + .2byte EC_POKEMON(VILEPLUME) + .2byte EC_WORD_LALALA + .2byte EC_POKEMON(RALTS) + .2byte EC_WORD_FORGETS + .2byte EC_WORD_APPEARS + .2byte EC_WORD_RANK + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON2(LANTURN) + .2byte EC_POKEMON(LANTURN) gEasyChatWordsByLetter_UnusedJapaneseRi:: @ 859E3B8 - ec_word LEADER - ec_move2 LEAF_BLADE - ec_pokemon2 CHARMELEON - ec_pokemon2 CHARIZARD - ec_move2 RECYCLE - ec_move2 REFLECT - ec_move2 REFRESH - ec_move2 REVENGE - ec_word RIBBON - ec_word TRENDY - ec_move2 DRAGON_RAGE - ec_move2 DRAGON_BREATH - ec_move2 DRAGON_DANCE - ec_word VACATION - ec_pokemon1 LILEEP - ec_pokemon2 URSARING - ec_word SHIELD_DUST + .2byte EC_WORD_LEADER + .2byte EC_MOVE2(LEAF_BLADE) + .2byte EC_POKEMON2(CHARMELEON) + .2byte EC_POKEMON2(CHARIZARD) + .2byte EC_MOVE2(RECYCLE) + .2byte EC_MOVE2(REFLECT) + .2byte EC_MOVE2(REFRESH) + .2byte EC_MOVE2(REVENGE) + .2byte EC_WORD_RIBBON + .2byte EC_WORD_TRENDY + .2byte EC_MOVE2(DRAGON_RAGE) + .2byte EC_MOVE2(DRAGON_BREATH) + .2byte EC_MOVE2(DRAGON_DANCE) + .2byte EC_WORD_VACATION + .2byte EC_POKEMON(LILEEP) + .2byte EC_POKEMON2(URSARING) + .2byte EC_WORD_SHIELD_DUST gEasyChatWordsByLetter_UnusedJapaneseRu:: @ 859E3DA - ec_pokemon2 JYNX - ec_word ROOM - ec_word RULE - ec_pokemon2 LUGIA - ec_word LOOK - ec_pokemon1 LUNATONE - ec_word RUBY - ec_word THAN - ec_pokemon1 AZURILL - ec_pokemon1 LUDICOLO - ec_word HAPPILY + .2byte EC_POKEMON2(JYNX) + .2byte EC_WORD_ROOM + .2byte EC_WORD_RULE + .2byte EC_POKEMON2(LUGIA) + .2byte EC_WORD_LOOK + .2byte EC_POKEMON(LUNATONE) + .2byte EC_WORD_RUBY + .2byte EC_WORD_THAN + .2byte EC_POKEMON(AZURILL) + .2byte EC_POKEMON(LUDICOLO) + .2byte EC_WORD_HAPPILY gEasyChatWordsByLetter_UnusedJapaneseRe:: @ 859E3F0 .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon2 MAGNETON - ec_pokemon1 MAGNETON - ec_move2 ICE_PUNCH - ec_move2 ICE_BEAM - ec_pokemon1 REGICE - ec_pokemon1 REGISTEEL - ec_pokemon1 REGIROCK - ec_pokemon1 RAYQUAZA - ec_word UGLY - ec_pokemon2 LEDIAN - ec_pokemon2 LEDYBA - ec_word FANTASTIC - ec_word LEVEL - ec_move2 FURY_CUTTER - ec_move2 COMET_PUNCH - ec_word RENTAL + .2byte EC_POKEMON2(MAGNETON) + .2byte EC_POKEMON(MAGNETON) + .2byte EC_MOVE2(ICE_PUNCH) + .2byte EC_MOVE2(ICE_BEAM) + .2byte EC_POKEMON(REGICE) + .2byte EC_POKEMON(REGISTEEL) + .2byte EC_POKEMON(REGIROCK) + .2byte EC_POKEMON(RAYQUAZA) + .2byte EC_WORD_UGLY + .2byte EC_POKEMON2(LEDIAN) + .2byte EC_POKEMON2(LEDYBA) + .2byte EC_WORD_FANTASTIC + .2byte EC_WORD_LEVEL + .2byte EC_MOVE2(FURY_CUTTER) + .2byte EC_MOVE2(COMET_PUNCH) + .2byte EC_WORD_RENTAL gEasyChatWordsByLetter_UnusedJapaneseRo:: @ 859E414 - ec_move2 SKULL_BASH + .2byte EC_MOVE2(SKULL_BASH) .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon2 VULPIX - ec_pokemon1 VULPIX - ec_pokemon1 ROSELIA - ec_move2 LOCK_ON - ec_move2 ROCK_BLAST - ec_word ROMANTIC - ec_word QUESTION + .2byte EC_POKEMON2(VULPIX) + .2byte EC_POKEMON(VULPIX) + .2byte EC_POKEMON(ROSELIA) + .2byte EC_MOVE2(LOCK_ON) + .2byte EC_MOVE2(ROCK_BLAST) + .2byte EC_WORD_ROMANTIC + .2byte EC_WORD_QUESTION gEasyChatWordsByLetter_UnusedJapaneseWa:: @ 859E428 - ec_word YAY - ec_word WORLD - ec_word AWW - ec_word WIRELESS - ec_word WOWEE - ec_pokemon1 COMBUSKEN - ec_word UNDERSTAND - ec_word UNDERSTANDS - ec_word FAINT - ec_word ANTICIPATION - ec_word ONCE - ec_word MOVE - ec_word WE_VE - ec_word FAINTED - ec_word WOMAN - ec_word SHE - ec_word SHE_WAS - ec_word TO_HER - ec_word HERS - ec_word SHE_IS - ec_word SOME - ec_pokemon2 JUMPLUFF - ec_move2 COTTON_SPORE - ec_word GWAH - ec_pokemon2 TOTODILE - ec_word WAHAHAHA - ec_word ANYWHERE - ec_move2 STRUGGLE - ec_word BADLY - .2byte -1, 2 @ doubled Pokémon species names - ec_pokemon2 MACHOP - ec_pokemon1 MACHOP + .2byte EC_WORD_YAY + .2byte EC_WORD_WORLD + .2byte EC_WORD_AWW + .2byte EC_WORD_WIRELESS + .2byte EC_WORD_WOWEE + .2byte EC_POKEMON(COMBUSKEN) + .2byte EC_WORD_UNDERSTAND + .2byte EC_WORD_UNDERSTANDS + .2byte EC_WORD_FAINT + .2byte EC_WORD_ANTICIPATION + .2byte EC_WORD_ONCE + .2byte EC_WORD_MOVE + .2byte EC_WORD_WE_VE + .2byte EC_WORD_FAINTED + .2byte EC_WORD_WOMAN + .2byte EC_WORD_SHE + .2byte EC_WORD_SHE_WAS + .2byte EC_WORD_TO_HER + .2byte EC_WORD_HERS + .2byte EC_WORD_SHE_IS + .2byte EC_WORD_SOME + .2byte EC_POKEMON2(JUMPLUFF) + .2byte EC_MOVE2(COTTON_SPORE) + .2byte EC_WORD_GWAH + .2byte EC_POKEMON2(TOTODILE) + .2byte EC_WORD_WAHAHAHA + .2byte EC_WORD_ANYWHERE + .2byte EC_MOVE2(STRUGGLE) + .2byte EC_WORD_BADLY + .2byte -1, 2 @ doubled Pokémon species names + .2byte EC_POKEMON2(MACHOP) + .2byte EC_POKEMON(MACHOP) .align 2 gEasyChatWordsByLetterPointers:: @ 859E46C diff --git a/data/trade.s b/data/trade.s index 3150269b0..b392fbc24 100644 --- a/data/trade.s +++ b/data/trade.s @@ -3,6 +3,9 @@ .section .rodata .align 2, 0 + +gUnknown_0832C6A8:: @ 832C6A8 + .incbin "baserom.gba", 0x32C6A8, 0x18 gUnknown_0832C6C0:: @ 832C6C0 .incbin "baserom.gba", 0x32c6c0, 0x1fe diff --git a/data/unk_81BAD84.s b/data/unk_81BAD84.s deleted file mode 100644 index de88365ac..000000000 --- a/data/unk_81BAD84.s +++ /dev/null @@ -1,7 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -gUnknown_08617128:: @ 8617128 - .incbin "baserom.gba", 0x617128, 0x48 diff --git a/data/wild_encounter.s b/data/wild_encounter.s index e221c2f99..0b46e3d35 100644 --- a/data/wild_encounter.s +++ b/data/wild_encounter.s @@ -1,3 +1,4 @@ +#include "constants/species.h" .include "asm/macros.inc" .include "constants/constants.inc" diff --git a/data/wild_mons.inc b/data/wild_mons.inc index 3361a3975..83b73bc81 100644 --- a/data/wild_mons.inc +++ b/data/wild_mons.inc @@ -1,17 +1,17 @@ .align 2 gRoute101_LandMons:: @ 85507E4 - wild_mon WURMPLE, 2 - wild_mon POOCHYENA, 2 - wild_mon WURMPLE, 2 - wild_mon WURMPLE, 3 - wild_mon POOCHYENA, 3 - wild_mon POOCHYENA, 3 - wild_mon WURMPLE, 3 - wild_mon POOCHYENA, 3 - wild_mon ZIGZAGOON, 2 - wild_mon ZIGZAGOON, 2 - wild_mon ZIGZAGOON, 3 - wild_mon ZIGZAGOON, 3 + wild_mon SPECIES_WURMPLE, 2 + wild_mon SPECIES_POOCHYENA, 2 + wild_mon SPECIES_WURMPLE, 2 + wild_mon SPECIES_WURMPLE, 3 + wild_mon SPECIES_POOCHYENA, 3 + wild_mon SPECIES_POOCHYENA, 3 + wild_mon SPECIES_WURMPLE, 3 + wild_mon SPECIES_POOCHYENA, 3 + wild_mon SPECIES_ZIGZAGOON, 2 + wild_mon SPECIES_ZIGZAGOON, 2 + wild_mon SPECIES_ZIGZAGOON, 3 + wild_mon SPECIES_ZIGZAGOON, 3 .align 2 gRoute101_LandMonsInfo:: @ 8550814 @@ -20,18 +20,18 @@ gRoute101_LandMonsInfo:: @ 8550814 .align 2 gRoute102_LandMons:: @ 855081C - wild_mon POOCHYENA, 3 - wild_mon WURMPLE, 3 - wild_mon POOCHYENA, 4 - wild_mon WURMPLE, 4 - wild_mon LOTAD, 3 - wild_mon LOTAD, 4 - wild_mon ZIGZAGOON, 3 - wild_mon ZIGZAGOON, 3 - wild_mon ZIGZAGOON, 4 - wild_mon RALTS, 4 - wild_mon ZIGZAGOON, 4 - wild_mon SEEDOT, 3 + wild_mon SPECIES_POOCHYENA, 3 + wild_mon SPECIES_WURMPLE, 3 + wild_mon SPECIES_POOCHYENA, 4 + wild_mon SPECIES_WURMPLE, 4 + wild_mon SPECIES_LOTAD, 3 + wild_mon SPECIES_LOTAD, 4 + wild_mon SPECIES_ZIGZAGOON, 3 + wild_mon SPECIES_ZIGZAGOON, 3 + wild_mon SPECIES_ZIGZAGOON, 4 + wild_mon SPECIES_RALTS, 4 + wild_mon SPECIES_ZIGZAGOON, 4 + wild_mon SPECIES_SEEDOT, 3 .align 2 gRoute102_LandMonsInfo:: @ 855084C @@ -40,11 +40,11 @@ gRoute102_LandMonsInfo:: @ 855084C .align 2 gRoute102_WaterMons:: @ 8550854 - wild_mon MARILL, 20, 30 - wild_mon MARILL, 10, 20 - wild_mon MARILL, 30, 35 - wild_mon MARILL, 5, 10 - wild_mon GOLDEEN, 20, 30 + wild_mon SPECIES_MARILL, 20, 30 + wild_mon SPECIES_MARILL, 10, 20 + wild_mon SPECIES_MARILL, 30, 35 + wild_mon SPECIES_MARILL, 5, 10 + wild_mon SPECIES_GOLDEEN, 20, 30 .align 2 gRoute102_WaterMonsInfo:: @ 8550868 @@ -53,16 +53,16 @@ gRoute102_WaterMonsInfo:: @ 8550868 .align 2 gRoute102_FishingMons:: @ 8550870 - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon CORPHISH, 10, 30 - wild_mon CORPHISH, 25, 30 - wild_mon CORPHISH, 30, 35 - wild_mon CORPHISH, 20, 25 - wild_mon CORPHISH, 35, 40 - wild_mon CORPHISH, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_GOLDEEN, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_GOLDEEN, 10, 30 + wild_mon SPECIES_CORPHISH, 10, 30 + wild_mon SPECIES_CORPHISH, 25, 30 + wild_mon SPECIES_CORPHISH, 30, 35 + wild_mon SPECIES_CORPHISH, 20, 25 + wild_mon SPECIES_CORPHISH, 35, 40 + wild_mon SPECIES_CORPHISH, 40, 45 .align 2 gRoute102_FishingMonsInfo:: @ 8550898 @@ -71,18 +71,18 @@ gRoute102_FishingMonsInfo:: @ 8550898 .align 2 gRoute103_LandMons:: @ 85508A0 - wild_mon POOCHYENA, 2 - wild_mon POOCHYENA, 3 - wild_mon POOCHYENA, 3 - wild_mon POOCHYENA, 4 - wild_mon WINGULL, 2 - wild_mon ZIGZAGOON, 3 - wild_mon ZIGZAGOON, 3 - wild_mon ZIGZAGOON, 4 - wild_mon WINGULL, 3 - wild_mon WINGULL, 3 - wild_mon WINGULL, 2 - wild_mon WINGULL, 4 + wild_mon SPECIES_POOCHYENA, 2 + wild_mon SPECIES_POOCHYENA, 3 + wild_mon SPECIES_POOCHYENA, 3 + wild_mon SPECIES_POOCHYENA, 4 + wild_mon SPECIES_WINGULL, 2 + wild_mon SPECIES_ZIGZAGOON, 3 + wild_mon SPECIES_ZIGZAGOON, 3 + wild_mon SPECIES_ZIGZAGOON, 4 + wild_mon SPECIES_WINGULL, 3 + wild_mon SPECIES_WINGULL, 3 + wild_mon SPECIES_WINGULL, 2 + wild_mon SPECIES_WINGULL, 4 .align 2 gRoute103_LandMonsInfo:: @ 85508D0 @@ -91,11 +91,11 @@ gRoute103_LandMonsInfo:: @ 85508D0 .align 2 gRoute103_WaterMons:: @ 85508D8 - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_WINGULL, 10, 30 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_PELIPPER, 25, 30 + wild_mon SPECIES_PELIPPER, 25, 30 .align 2 gRoute103_WaterMonsInfo:: @ 85508EC @@ -104,16 +104,16 @@ gRoute103_WaterMonsInfo:: @ 85508EC .align 2 gRoute103_FishingMons:: @ 85508F4 - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_SHARPEDO, 30, 35 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_WAILMER, 25, 30 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gRoute103_FishingMonsInfo:: @ 855091C @@ -122,18 +122,18 @@ gRoute103_FishingMonsInfo:: @ 855091C .align 2 gRoute104_LandMons:: @ 8550924 - wild_mon POOCHYENA, 4 - wild_mon WURMPLE, 4 - wild_mon POOCHYENA, 5 - wild_mon MARILL, 5 - wild_mon MARILL, 4 - wild_mon POOCHYENA, 5 - wild_mon TAILLOW, 4 - wild_mon TAILLOW, 5 - wild_mon WINGULL, 4 - wild_mon WINGULL, 4 - wild_mon WINGULL, 3 - wild_mon WINGULL, 5 + wild_mon SPECIES_POOCHYENA, 4 + wild_mon SPECIES_WURMPLE, 4 + wild_mon SPECIES_POOCHYENA, 5 + wild_mon SPECIES_MARILL, 5 + wild_mon SPECIES_MARILL, 4 + wild_mon SPECIES_POOCHYENA, 5 + wild_mon SPECIES_TAILLOW, 4 + wild_mon SPECIES_TAILLOW, 5 + wild_mon SPECIES_WINGULL, 4 + wild_mon SPECIES_WINGULL, 4 + wild_mon SPECIES_WINGULL, 3 + wild_mon SPECIES_WINGULL, 5 .align 2 gRoute104_LandMonsInfo:: @ 8550954 @@ -142,11 +142,11 @@ gRoute104_LandMonsInfo:: @ 8550954 .align 2 gRoute104_WaterMons:: @ 855095C - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 + wild_mon SPECIES_WINGULL, 10, 30 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_PELIPPER, 25, 30 + wild_mon SPECIES_PELIPPER, 25, 30 .align 2 gRoute104_WaterMonsInfo:: @ 8550970 @@ -155,16 +155,16 @@ gRoute104_WaterMonsInfo:: @ 8550970 .align 2 gRoute104_FishingMons:: @ 8550978 - wild_mon MAGIKARP, 5, 10 - wild_mon MAGIKARP, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon MAGIKARP, 10, 30 - wild_mon MAGIKARP, 10, 30 - wild_mon MAGIKARP, 25, 30 - wild_mon MAGIKARP, 30, 35 - wild_mon MAGIKARP, 20, 25 - wild_mon MAGIKARP, 35, 40 - wild_mon MAGIKARP, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_MAGIKARP, 25, 30 + wild_mon SPECIES_MAGIKARP, 30, 35 + wild_mon SPECIES_MAGIKARP, 20, 25 + wild_mon SPECIES_MAGIKARP, 35, 40 + wild_mon SPECIES_MAGIKARP, 40, 45 .align 2 gRoute104_FishingMonsInfo:: @ 85509A0 @@ -173,11 +173,11 @@ gRoute104_FishingMonsInfo:: @ 85509A0 .align 2 gRoute105_WaterMons:: @ 85509A8 - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_WINGULL, 10, 30 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_PELIPPER, 25, 30 + wild_mon SPECIES_PELIPPER, 25, 30 .align 2 gRoute105_WaterMonsInfo:: @ 85509BC @@ -186,16 +186,16 @@ gRoute105_WaterMonsInfo:: @ 85509BC .align 2 gRoute105_FishingMons:: @ 85509C4 - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_WAILMER, 25, 30 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_WAILMER, 20, 25 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gRoute105_FishingMonsInfo:: @ 85509EC @@ -204,18 +204,18 @@ gRoute105_FishingMonsInfo:: @ 85509EC .align 2 gRoute110_LandMons:: @ 85509F4 - wild_mon POOCHYENA, 12 - wild_mon ELECTRIKE, 12 - wild_mon GULPIN, 12 - wild_mon ELECTRIKE, 13 - wild_mon MINUN, 13 - wild_mon ODDISH, 13 - wild_mon MINUN, 13 - wild_mon GULPIN, 13 - wild_mon WINGULL, 12 - wild_mon WINGULL, 12 - wild_mon PLUSLE, 12 - wild_mon PLUSLE, 13 + wild_mon SPECIES_POOCHYENA, 12 + wild_mon SPECIES_ELECTRIKE, 12 + wild_mon SPECIES_GULPIN, 12 + wild_mon SPECIES_ELECTRIKE, 13 + wild_mon SPECIES_MINUN, 13 + wild_mon SPECIES_ODDISH, 13 + wild_mon SPECIES_MINUN, 13 + wild_mon SPECIES_GULPIN, 13 + wild_mon SPECIES_WINGULL, 12 + wild_mon SPECIES_WINGULL, 12 + wild_mon SPECIES_PLUSLE, 12 + wild_mon SPECIES_PLUSLE, 13 .align 2 gRoute110_LandMonsInfo:: @ 8550A24 @@ -224,11 +224,11 @@ gRoute110_LandMonsInfo:: @ 8550A24 .align 2 gRoute110_WaterMons:: @ 8550A2C - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_WINGULL, 10, 30 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_PELIPPER, 25, 30 + wild_mon SPECIES_PELIPPER, 25, 30 .align 2 gRoute110_WaterMonsInfo:: @ 8550A40 @@ -237,16 +237,16 @@ gRoute110_WaterMonsInfo:: @ 8550A40 .align 2 gRoute110_FishingMons:: @ 8550A48 - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_WAILMER, 25, 30 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_WAILMER, 20, 25 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gRoute110_FishingMonsInfo:: @ 8550A70 @@ -255,18 +255,18 @@ gRoute110_FishingMonsInfo:: @ 8550A70 .align 2 gRoute111_LandMons:: @ 8550A78 - wild_mon SANDSHREW, 20 - wild_mon TRAPINCH, 20 - wild_mon SANDSHREW, 21 - wild_mon TRAPINCH, 21 - wild_mon BALTOY, 19 - wild_mon BALTOY, 21 - wild_mon SANDSHREW, 19 - wild_mon TRAPINCH, 19 - wild_mon BALTOY, 20 - wild_mon CACNEA, 20 - wild_mon CACNEA, 22 - wild_mon CACNEA, 22 + wild_mon SPECIES_SANDSHREW, 20 + wild_mon SPECIES_TRAPINCH, 20 + wild_mon SPECIES_SANDSHREW, 21 + wild_mon SPECIES_TRAPINCH, 21 + wild_mon SPECIES_BALTOY, 19 + wild_mon SPECIES_BALTOY, 21 + wild_mon SPECIES_SANDSHREW, 19 + wild_mon SPECIES_TRAPINCH, 19 + wild_mon SPECIES_BALTOY, 20 + wild_mon SPECIES_CACNEA, 20 + wild_mon SPECIES_CACNEA, 22 + wild_mon SPECIES_CACNEA, 22 .align 2 gRoute111_LandMonsInfo:: @ 8550AA8 @@ -275,11 +275,11 @@ gRoute111_LandMonsInfo:: @ 8550AA8 .align 2 gRoute111_WaterMons:: @ 8550AB0 - wild_mon MARILL, 20, 30 - wild_mon MARILL, 10, 20 - wild_mon MARILL, 30, 35 - wild_mon MARILL, 5, 10 - wild_mon GOLDEEN, 20, 30 + wild_mon SPECIES_MARILL, 20, 30 + wild_mon SPECIES_MARILL, 10, 20 + wild_mon SPECIES_MARILL, 30, 35 + wild_mon SPECIES_MARILL, 5, 10 + wild_mon SPECIES_GOLDEEN, 20, 30 .align 2 gRoute111_WaterMonsInfo:: @ 8550AC4 @@ -288,11 +288,11 @@ gRoute111_WaterMonsInfo:: @ 8550AC4 .align 2 gRoute111_RockSmashMons:: @ 8550ACC - wild_mon GEODUDE, 10, 15 - wild_mon GEODUDE, 5, 10 - wild_mon GEODUDE, 15, 20 - wild_mon GEODUDE, 15, 20 - wild_mon GEODUDE, 15, 20 + wild_mon SPECIES_GEODUDE, 10, 15 + wild_mon SPECIES_GEODUDE, 5, 10 + wild_mon SPECIES_GEODUDE, 15, 20 + wild_mon SPECIES_GEODUDE, 15, 20 + wild_mon SPECIES_GEODUDE, 15, 20 .align 2 gRoute111_RockSmashMonsInfo:: @ 8550AE0 @@ -301,16 +301,16 @@ gRoute111_RockSmashMonsInfo:: @ 8550AE0 .align 2 gRoute111_FishingMons:: @ 8550AE8 - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon BARBOACH, 10, 30 - wild_mon BARBOACH, 25, 30 - wild_mon BARBOACH, 30, 35 - wild_mon BARBOACH, 20, 25 - wild_mon BARBOACH, 35, 40 - wild_mon BARBOACH, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_GOLDEEN, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_GOLDEEN, 10, 30 + wild_mon SPECIES_BARBOACH, 10, 30 + wild_mon SPECIES_BARBOACH, 25, 30 + wild_mon SPECIES_BARBOACH, 30, 35 + wild_mon SPECIES_BARBOACH, 20, 25 + wild_mon SPECIES_BARBOACH, 35, 40 + wild_mon SPECIES_BARBOACH, 40, 45 .align 2 gRoute111_FishingMonsInfo:: @ 8550B10 @@ -319,18 +319,18 @@ gRoute111_FishingMonsInfo:: @ 8550B10 .align 2 gRoute112_LandMons:: @ 8550B18 - wild_mon NUMEL, 15 - wild_mon NUMEL, 15 - wild_mon MARILL, 15 - wild_mon NUMEL, 14 - wild_mon NUMEL, 14 - wild_mon MARILL, 14 - wild_mon NUMEL, 16 - wild_mon MARILL, 16 - wild_mon NUMEL, 16 - wild_mon NUMEL, 16 - wild_mon NUMEL, 16 - wild_mon NUMEL, 16 + wild_mon SPECIES_NUMEL, 15 + wild_mon SPECIES_NUMEL, 15 + wild_mon SPECIES_MARILL, 15 + wild_mon SPECIES_NUMEL, 14 + wild_mon SPECIES_NUMEL, 14 + wild_mon SPECIES_MARILL, 14 + wild_mon SPECIES_NUMEL, 16 + wild_mon SPECIES_MARILL, 16 + wild_mon SPECIES_NUMEL, 16 + wild_mon SPECIES_NUMEL, 16 + wild_mon SPECIES_NUMEL, 16 + wild_mon SPECIES_NUMEL, 16 .align 2 gRoute112_LandMonsInfo:: @ 8550B48 @@ -339,18 +339,18 @@ gRoute112_LandMonsInfo:: @ 8550B48 .align 2 gRoute113_LandMons:: @ 8550B50 - wild_mon SPINDA, 15 - wild_mon SPINDA, 15 - wild_mon SLUGMA, 15 - wild_mon SPINDA, 14 - wild_mon SPINDA, 14 - wild_mon SLUGMA, 14 - wild_mon SPINDA, 16 - wild_mon SLUGMA, 16 - wild_mon SPINDA, 16 - wild_mon SKARMORY, 16 - wild_mon SPINDA, 16 - wild_mon SKARMORY, 16 + wild_mon SPECIES_SPINDA, 15 + wild_mon SPECIES_SPINDA, 15 + wild_mon SPECIES_SLUGMA, 15 + wild_mon SPECIES_SPINDA, 14 + wild_mon SPECIES_SPINDA, 14 + wild_mon SPECIES_SLUGMA, 14 + wild_mon SPECIES_SPINDA, 16 + wild_mon SPECIES_SLUGMA, 16 + wild_mon SPECIES_SPINDA, 16 + wild_mon SPECIES_SKARMORY, 16 + wild_mon SPECIES_SPINDA, 16 + wild_mon SPECIES_SKARMORY, 16 .align 2 gRoute113_LandMonsInfo:: @ 8550B80 @@ -359,18 +359,18 @@ gRoute113_LandMonsInfo:: @ 8550B80 .align 2 gRoute114_LandMons:: @ 8550B88 - wild_mon SWABLU, 16 - wild_mon LOTAD, 16 - wild_mon SWABLU, 17 - wild_mon SWABLU, 15 - wild_mon LOTAD, 15 - wild_mon LOMBRE, 16 - wild_mon LOMBRE, 16 - wild_mon LOMBRE, 18 - wild_mon SEVIPER, 17 - wild_mon SEVIPER, 15 - wild_mon SEVIPER, 17 - wild_mon NUZLEAF, 15 + wild_mon SPECIES_SWABLU, 16 + wild_mon SPECIES_LOTAD, 16 + wild_mon SPECIES_SWABLU, 17 + wild_mon SPECIES_SWABLU, 15 + wild_mon SPECIES_LOTAD, 15 + wild_mon SPECIES_LOMBRE, 16 + wild_mon SPECIES_LOMBRE, 16 + wild_mon SPECIES_LOMBRE, 18 + wild_mon SPECIES_SEVIPER, 17 + wild_mon SPECIES_SEVIPER, 15 + wild_mon SPECIES_SEVIPER, 17 + wild_mon SPECIES_NUZLEAF, 15 .align 2 gRoute114_LandMonsInfo:: @ 8550BB8 @@ -379,11 +379,11 @@ gRoute114_LandMonsInfo:: @ 8550BB8 .align 2 gRoute114_WaterMons:: @ 8550BC0 - wild_mon MARILL, 20, 30 - wild_mon MARILL, 10, 20 - wild_mon MARILL, 30, 35 - wild_mon MARILL, 5, 10 - wild_mon GOLDEEN, 20, 30 + wild_mon SPECIES_MARILL, 20, 30 + wild_mon SPECIES_MARILL, 10, 20 + wild_mon SPECIES_MARILL, 30, 35 + wild_mon SPECIES_MARILL, 5, 10 + wild_mon SPECIES_GOLDEEN, 20, 30 .align 2 gRoute114_WaterMonsInfo:: @ 8550BD4 @@ -392,11 +392,11 @@ gRoute114_WaterMonsInfo:: @ 8550BD4 .align 2 gRoute114_RockSmashMons:: @ 8550BDC - wild_mon GEODUDE, 10, 15 - wild_mon GEODUDE, 5, 10 - wild_mon GEODUDE, 15, 20 - wild_mon GEODUDE, 15, 20 - wild_mon GEODUDE, 15, 20 + wild_mon SPECIES_GEODUDE, 10, 15 + wild_mon SPECIES_GEODUDE, 5, 10 + wild_mon SPECIES_GEODUDE, 15, 20 + wild_mon SPECIES_GEODUDE, 15, 20 + wild_mon SPECIES_GEODUDE, 15, 20 .align 2 gRoute114_RockSmashMonsInfo:: @ 8550BF0 @@ -405,16 +405,16 @@ gRoute114_RockSmashMonsInfo:: @ 8550BF0 .align 2 gRoute114_FishingMons:: @ 8550BF8 - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon BARBOACH, 10, 30 - wild_mon BARBOACH, 25, 30 - wild_mon BARBOACH, 30, 35 - wild_mon BARBOACH, 20, 25 - wild_mon BARBOACH, 35, 40 - wild_mon BARBOACH, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_GOLDEEN, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_GOLDEEN, 10, 30 + wild_mon SPECIES_BARBOACH, 10, 30 + wild_mon SPECIES_BARBOACH, 25, 30 + wild_mon SPECIES_BARBOACH, 30, 35 + wild_mon SPECIES_BARBOACH, 20, 25 + wild_mon SPECIES_BARBOACH, 35, 40 + wild_mon SPECIES_BARBOACH, 40, 45 .align 2 gRoute114_FishingMonsInfo:: @ 8550C20 @@ -423,18 +423,18 @@ gRoute114_FishingMonsInfo:: @ 8550C20 .align 2 gRoute116_LandMons:: @ 8550C28 - wild_mon POOCHYENA, 6 - wild_mon WHISMUR, 6 - wild_mon NINCADA, 6 - wild_mon ABRA, 7 - wild_mon NINCADA, 7 - wild_mon TAILLOW, 6 - wild_mon TAILLOW, 7 - wild_mon TAILLOW, 8 - wild_mon POOCHYENA, 7 - wild_mon POOCHYENA, 8 - wild_mon SKITTY, 7 - wild_mon SKITTY, 8 + wild_mon SPECIES_POOCHYENA, 6 + wild_mon SPECIES_WHISMUR, 6 + wild_mon SPECIES_NINCADA, 6 + wild_mon SPECIES_ABRA, 7 + wild_mon SPECIES_NINCADA, 7 + wild_mon SPECIES_TAILLOW, 6 + wild_mon SPECIES_TAILLOW, 7 + wild_mon SPECIES_TAILLOW, 8 + wild_mon SPECIES_POOCHYENA, 7 + wild_mon SPECIES_POOCHYENA, 8 + wild_mon SPECIES_SKITTY, 7 + wild_mon SPECIES_SKITTY, 8 .align 2 gRoute116_LandMonsInfo:: @ 8550C58 @@ -443,18 +443,18 @@ gRoute116_LandMonsInfo:: @ 8550C58 .align 2 gRoute117_LandMons:: @ 8550C60 - wild_mon POOCHYENA, 13 - wild_mon ODDISH, 13 - wild_mon POOCHYENA, 14 - wild_mon ODDISH, 14 - wild_mon MARILL, 13 - wild_mon ODDISH, 13 - wild_mon ILLUMISE, 13 - wild_mon ILLUMISE, 13 - wild_mon ILLUMISE, 14 - wild_mon ILLUMISE, 14 - wild_mon VOLBEAT, 13 - wild_mon SEEDOT, 13 + wild_mon SPECIES_POOCHYENA, 13 + wild_mon SPECIES_ODDISH, 13 + wild_mon SPECIES_POOCHYENA, 14 + wild_mon SPECIES_ODDISH, 14 + wild_mon SPECIES_MARILL, 13 + wild_mon SPECIES_ODDISH, 13 + wild_mon SPECIES_ILLUMISE, 13 + wild_mon SPECIES_ILLUMISE, 13 + wild_mon SPECIES_ILLUMISE, 14 + wild_mon SPECIES_ILLUMISE, 14 + wild_mon SPECIES_VOLBEAT, 13 + wild_mon SPECIES_SEEDOT, 13 .align 2 gRoute117_LandMonsInfo:: @ 8550C90 @@ -463,11 +463,11 @@ gRoute117_LandMonsInfo:: @ 8550C90 .align 2 gRoute117_WaterMons:: @ 8550C98 - wild_mon MARILL, 20, 30 - wild_mon MARILL, 10, 20 - wild_mon MARILL, 30, 35 - wild_mon MARILL, 5, 10 - wild_mon GOLDEEN, 20, 30 + wild_mon SPECIES_MARILL, 20, 30 + wild_mon SPECIES_MARILL, 10, 20 + wild_mon SPECIES_MARILL, 30, 35 + wild_mon SPECIES_MARILL, 5, 10 + wild_mon SPECIES_GOLDEEN, 20, 30 .align 2 gRoute117_WaterMonsInfo:: @ 8550CAC @@ -476,16 +476,16 @@ gRoute117_WaterMonsInfo:: @ 8550CAC .align 2 gRoute117_FishingMons:: @ 8550CB4 - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon CORPHISH, 10, 30 - wild_mon CORPHISH, 25, 30 - wild_mon CORPHISH, 30, 35 - wild_mon CORPHISH, 20, 25 - wild_mon CORPHISH, 35, 40 - wild_mon CORPHISH, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_GOLDEEN, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_GOLDEEN, 10, 30 + wild_mon SPECIES_CORPHISH, 10, 30 + wild_mon SPECIES_CORPHISH, 25, 30 + wild_mon SPECIES_CORPHISH, 30, 35 + wild_mon SPECIES_CORPHISH, 20, 25 + wild_mon SPECIES_CORPHISH, 35, 40 + wild_mon SPECIES_CORPHISH, 40, 45 .align 2 gRoute117_FishingMonsInfo:: @ 8550CDC @@ -494,18 +494,18 @@ gRoute117_FishingMonsInfo:: @ 8550CDC .align 2 gRoute118_LandMons:: @ 8550CE4 - wild_mon ZIGZAGOON, 24 - wild_mon ELECTRIKE, 24 - wild_mon ZIGZAGOON, 26 - wild_mon ELECTRIKE, 26 - wild_mon LINOONE, 26 - wild_mon MANECTRIC, 26 - wild_mon WINGULL, 25 - wild_mon WINGULL, 25 - wild_mon WINGULL, 26 - wild_mon WINGULL, 26 - wild_mon WINGULL, 27 - wild_mon KECLEON, 25 + wild_mon SPECIES_ZIGZAGOON, 24 + wild_mon SPECIES_ELECTRIKE, 24 + wild_mon SPECIES_ZIGZAGOON, 26 + wild_mon SPECIES_ELECTRIKE, 26 + wild_mon SPECIES_LINOONE, 26 + wild_mon SPECIES_MANECTRIC, 26 + wild_mon SPECIES_WINGULL, 25 + wild_mon SPECIES_WINGULL, 25 + wild_mon SPECIES_WINGULL, 26 + wild_mon SPECIES_WINGULL, 26 + wild_mon SPECIES_WINGULL, 27 + wild_mon SPECIES_KECLEON, 25 .align 2 gRoute118_LandMonsInfo:: @ 8550D14 @@ -514,11 +514,11 @@ gRoute118_LandMonsInfo:: @ 8550D14 .align 2 gRoute118_WaterMons:: @ 8550D1C - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_WINGULL, 10, 30 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_PELIPPER, 25, 30 + wild_mon SPECIES_PELIPPER, 25, 30 .align 2 gRoute118_WaterMonsInfo:: @ 8550D30 @@ -527,16 +527,16 @@ gRoute118_WaterMonsInfo:: @ 8550D30 .align 2 gRoute118_FishingMons:: @ 8550D38 - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon CARVANHA, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon CARVANHA, 30, 35 - wild_mon CARVANHA, 20, 25 - wild_mon CARVANHA, 35, 40 - wild_mon CARVANHA, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_CARVANHA, 10, 30 + wild_mon SPECIES_SHARPEDO, 30, 35 + wild_mon SPECIES_CARVANHA, 30, 35 + wild_mon SPECIES_CARVANHA, 20, 25 + wild_mon SPECIES_CARVANHA, 35, 40 + wild_mon SPECIES_CARVANHA, 40, 45 .align 2 gRoute118_FishingMonsInfo:: @ 8550D60 @@ -545,11 +545,11 @@ gRoute118_FishingMonsInfo:: @ 8550D60 .align 2 gRoute124_WaterMons:: @ 8550D68 - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_WINGULL, 10, 30 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_PELIPPER, 25, 30 + wild_mon SPECIES_PELIPPER, 25, 30 .align 2 gRoute124_WaterMonsInfo:: @ 8550D7C @@ -558,16 +558,16 @@ gRoute124_WaterMonsInfo:: @ 8550D7C .align 2 gRoute124_FishingMons:: @ 8550D84 - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_SHARPEDO, 30, 35 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_WAILMER, 25, 30 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gRoute124_FishingMonsInfo:: @ 8550DAC @@ -576,18 +576,18 @@ gRoute124_FishingMonsInfo:: @ 8550DAC .align 2 gPetalburgWoods_LandMons:: @ 8550DB4 - wild_mon POOCHYENA, 5 - wild_mon WURMPLE, 5 - wild_mon SHROOMISH, 5 - wild_mon POOCHYENA, 6 - wild_mon SILCOON, 5 - wild_mon CASCOON, 5 - wild_mon WURMPLE, 6 - wild_mon SHROOMISH, 6 - wild_mon TAILLOW, 5 - wild_mon SLAKOTH, 5 - wild_mon TAILLOW, 6 - wild_mon SLAKOTH, 6 + wild_mon SPECIES_POOCHYENA, 5 + wild_mon SPECIES_WURMPLE, 5 + wild_mon SPECIES_SHROOMISH, 5 + wild_mon SPECIES_POOCHYENA, 6 + wild_mon SPECIES_SILCOON, 5 + wild_mon SPECIES_CASCOON, 5 + wild_mon SPECIES_WURMPLE, 6 + wild_mon SPECIES_SHROOMISH, 6 + wild_mon SPECIES_TAILLOW, 5 + wild_mon SPECIES_SLAKOTH, 5 + wild_mon SPECIES_TAILLOW, 6 + wild_mon SPECIES_SLAKOTH, 6 .align 2 gPetalburgWoods_LandMonsInfo:: @ 8550DE4 @@ -596,18 +596,18 @@ gPetalburgWoods_LandMonsInfo:: @ 8550DE4 .align 2 gRusturfTunnel_LandMons:: @ 8550DEC - wild_mon WHISMUR, 6 - wild_mon WHISMUR, 7 - wild_mon WHISMUR, 6 - wild_mon WHISMUR, 6 - wild_mon WHISMUR, 7 - wild_mon WHISMUR, 7 - wild_mon WHISMUR, 5 - wild_mon WHISMUR, 8 - wild_mon WHISMUR, 5 - wild_mon WHISMUR, 8 - wild_mon WHISMUR, 5 - wild_mon WHISMUR, 8 + wild_mon SPECIES_WHISMUR, 6 + wild_mon SPECIES_WHISMUR, 7 + wild_mon SPECIES_WHISMUR, 6 + wild_mon SPECIES_WHISMUR, 6 + wild_mon SPECIES_WHISMUR, 7 + wild_mon SPECIES_WHISMUR, 7 + wild_mon SPECIES_WHISMUR, 5 + wild_mon SPECIES_WHISMUR, 8 + wild_mon SPECIES_WHISMUR, 5 + wild_mon SPECIES_WHISMUR, 8 + wild_mon SPECIES_WHISMUR, 5 + wild_mon SPECIES_WHISMUR, 8 .align 2 gRusturfTunnel_LandMonsInfo:: @ 8550E1C @@ -616,18 +616,18 @@ gRusturfTunnel_LandMonsInfo:: @ 8550E1C .align 2 gGraniteCave_1F_LandMons:: @ 8550E24 - wild_mon ZUBAT, 7 - wild_mon MAKUHITA, 8 - wild_mon MAKUHITA, 7 - wild_mon ZUBAT, 8 - wild_mon MAKUHITA, 9 - wild_mon ABRA, 8 - wild_mon MAKUHITA, 10 - wild_mon MAKUHITA, 6 - wild_mon GEODUDE, 7 - wild_mon GEODUDE, 8 - wild_mon GEODUDE, 6 - wild_mon GEODUDE, 9 + wild_mon SPECIES_ZUBAT, 7 + wild_mon SPECIES_MAKUHITA, 8 + wild_mon SPECIES_MAKUHITA, 7 + wild_mon SPECIES_ZUBAT, 8 + wild_mon SPECIES_MAKUHITA, 9 + wild_mon SPECIES_ABRA, 8 + wild_mon SPECIES_MAKUHITA, 10 + wild_mon SPECIES_MAKUHITA, 6 + wild_mon SPECIES_GEODUDE, 7 + wild_mon SPECIES_GEODUDE, 8 + wild_mon SPECIES_GEODUDE, 6 + wild_mon SPECIES_GEODUDE, 9 .align 2 gGraniteCave_1F_LandMonsInfo:: @ 8550E54 @@ -636,18 +636,18 @@ gGraniteCave_1F_LandMonsInfo:: @ 8550E54 .align 2 gGraniteCave_B1F_LandMons:: @ 8550E5C - wild_mon ZUBAT, 9 - wild_mon ARON, 10 - wild_mon ARON, 9 - wild_mon ARON, 11 - wild_mon ZUBAT, 10 - wild_mon ABRA, 9 - wild_mon MAKUHITA, 10 - wild_mon MAKUHITA, 11 - wild_mon SABLEYE, 10 - wild_mon SABLEYE, 10 - wild_mon SABLEYE, 9 - wild_mon SABLEYE, 11 + wild_mon SPECIES_ZUBAT, 9 + wild_mon SPECIES_ARON, 10 + wild_mon SPECIES_ARON, 9 + wild_mon SPECIES_ARON, 11 + wild_mon SPECIES_ZUBAT, 10 + wild_mon SPECIES_ABRA, 9 + wild_mon SPECIES_MAKUHITA, 10 + wild_mon SPECIES_MAKUHITA, 11 + wild_mon SPECIES_SABLEYE, 10 + wild_mon SPECIES_SABLEYE, 10 + wild_mon SPECIES_SABLEYE, 9 + wild_mon SPECIES_SABLEYE, 11 .align 2 gGraniteCave_B1F_LandMonsInfo:: @ 8550E8C @@ -656,18 +656,18 @@ gGraniteCave_B1F_LandMonsInfo:: @ 8550E8C .align 2 gMtPyre_1F_LandMons:: @ 8550E94 - wild_mon SHUPPET, 27 - wild_mon SHUPPET, 28 - wild_mon SHUPPET, 26 - wild_mon SHUPPET, 25 - wild_mon SHUPPET, 29 - wild_mon SHUPPET, 24 - wild_mon SHUPPET, 23 - wild_mon SHUPPET, 22 - wild_mon SHUPPET, 29 - wild_mon SHUPPET, 24 - wild_mon SHUPPET, 29 - wild_mon SHUPPET, 24 + wild_mon SPECIES_SHUPPET, 27 + wild_mon SPECIES_SHUPPET, 28 + wild_mon SPECIES_SHUPPET, 26 + wild_mon SPECIES_SHUPPET, 25 + wild_mon SPECIES_SHUPPET, 29 + wild_mon SPECIES_SHUPPET, 24 + wild_mon SPECIES_SHUPPET, 23 + wild_mon SPECIES_SHUPPET, 22 + wild_mon SPECIES_SHUPPET, 29 + wild_mon SPECIES_SHUPPET, 24 + wild_mon SPECIES_SHUPPET, 29 + wild_mon SPECIES_SHUPPET, 24 .align 2 gMtPyre_1F_LandMonsInfo:: @ 8550EC4 @@ -676,18 +676,18 @@ gMtPyre_1F_LandMonsInfo:: @ 8550EC4 .align 2 gVictoryRoad_1F_LandMons:: @ 8550ECC - wild_mon GOLBAT, 40 - wild_mon HARIYAMA, 40 - wild_mon LAIRON, 40 - wild_mon LOUDRED, 40 - wild_mon ZUBAT, 36 - wild_mon MAKUHITA, 36 - wild_mon GOLBAT, 38 - wild_mon HARIYAMA, 38 - wild_mon ARON, 36 - wild_mon WHISMUR, 36 - wild_mon ARON, 36 - wild_mon WHISMUR, 36 + wild_mon SPECIES_GOLBAT, 40 + wild_mon SPECIES_HARIYAMA, 40 + wild_mon SPECIES_LAIRON, 40 + wild_mon SPECIES_LOUDRED, 40 + wild_mon SPECIES_ZUBAT, 36 + wild_mon SPECIES_MAKUHITA, 36 + wild_mon SPECIES_GOLBAT, 38 + wild_mon SPECIES_HARIYAMA, 38 + wild_mon SPECIES_ARON, 36 + wild_mon SPECIES_WHISMUR, 36 + wild_mon SPECIES_ARON, 36 + wild_mon SPECIES_WHISMUR, 36 .align 2 gVictoryRoad_1F_LandMonsInfo:: @ 8550EFC @@ -696,18 +696,18 @@ gVictoryRoad_1F_LandMonsInfo:: @ 8550EFC .align 2 gSafariZone_South_LandMons:: @ 8550F04 - wild_mon ODDISH, 25 - wild_mon ODDISH, 27 - wild_mon GIRAFARIG, 25 - wild_mon GIRAFARIG, 27 - wild_mon NATU, 25 - wild_mon DODUO, 25 - wild_mon GLOOM, 25 - wild_mon WOBBUFFET, 27 - wild_mon PIKACHU, 25 - wild_mon WOBBUFFET, 27 - wild_mon PIKACHU, 27 - wild_mon WOBBUFFET, 29 + wild_mon SPECIES_ODDISH, 25 + wild_mon SPECIES_ODDISH, 27 + wild_mon SPECIES_GIRAFARIG, 25 + wild_mon SPECIES_GIRAFARIG, 27 + wild_mon SPECIES_NATU, 25 + wild_mon SPECIES_DODUO, 25 + wild_mon SPECIES_GLOOM, 25 + wild_mon SPECIES_WOBBUFFET, 27 + wild_mon SPECIES_PIKACHU, 25 + wild_mon SPECIES_WOBBUFFET, 27 + wild_mon SPECIES_PIKACHU, 27 + wild_mon SPECIES_WOBBUFFET, 29 .align 2 gSafariZone_South_LandMonsInfo:: @ 8550F34 @@ -716,11 +716,11 @@ gSafariZone_South_LandMonsInfo:: @ 8550F34 .align 2 gUnderwater2_WaterMons:: @ 8550F3C - wild_mon CLAMPERL, 20, 30 - wild_mon CHINCHOU, 20, 30 - wild_mon CLAMPERL, 30, 35 - wild_mon RELICANTH, 30, 35 - wild_mon RELICANTH, 30, 35 + wild_mon SPECIES_CLAMPERL, 20, 30 + wild_mon SPECIES_CHINCHOU, 20, 30 + wild_mon SPECIES_CLAMPERL, 30, 35 + wild_mon SPECIES_RELICANTH, 30, 35 + wild_mon SPECIES_RELICANTH, 30, 35 .align 2 gUnderwater2_WaterMonsInfo:: @ 8550F50 @@ -729,11 +729,11 @@ gUnderwater2_WaterMonsInfo:: @ 8550F50 .align 2 gAbandonedShip_Rooms_B1F_WaterMons:: @ 8550F58 - wild_mon TENTACOOL, 5, 35 - wild_mon TENTACOOL, 5, 35 - wild_mon TENTACOOL, 5, 35 - wild_mon TENTACOOL, 5, 35 - wild_mon TENTACRUEL, 30, 35 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_TENTACRUEL, 30, 35 .align 2 gAbandonedShip_Rooms_B1F_WaterMonsInfo:: @ 8550F6C @@ -742,16 +742,16 @@ gAbandonedShip_Rooms_B1F_WaterMonsInfo:: @ 8550F6C .align 2 gAbandonedShip_Rooms_B1F_FishingMons:: @ 8550F74 - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon TENTACOOL, 25, 30 - wild_mon TENTACOOL, 30, 35 - wild_mon TENTACRUEL, 30, 35 - wild_mon TENTACRUEL, 25, 30 - wild_mon TENTACRUEL, 20, 25 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_TENTACOOL, 25, 30 + wild_mon SPECIES_TENTACOOL, 30, 35 + wild_mon SPECIES_TENTACRUEL, 30, 35 + wild_mon SPECIES_TENTACRUEL, 25, 30 + wild_mon SPECIES_TENTACRUEL, 20, 25 .align 2 gAbandonedShip_Rooms_B1F_FishingMonsInfo:: @ 8550F9C @@ -760,18 +760,18 @@ gAbandonedShip_Rooms_B1F_FishingMonsInfo:: @ 8550F9C .align 2 gGraniteCave_B2F_LandMons:: @ 8550FA4 - wild_mon ZUBAT, 10 - wild_mon ARON, 11 - wild_mon ARON, 10 - wild_mon ZUBAT, 11 - wild_mon ARON, 12 - wild_mon ABRA, 10 - wild_mon SABLEYE, 10 - wild_mon SABLEYE, 11 - wild_mon SABLEYE, 12 - wild_mon SABLEYE, 10 - wild_mon SABLEYE, 12 - wild_mon SABLEYE, 10 + wild_mon SPECIES_ZUBAT, 10 + wild_mon SPECIES_ARON, 11 + wild_mon SPECIES_ARON, 10 + wild_mon SPECIES_ZUBAT, 11 + wild_mon SPECIES_ARON, 12 + wild_mon SPECIES_ABRA, 10 + wild_mon SPECIES_SABLEYE, 10 + wild_mon SPECIES_SABLEYE, 11 + wild_mon SPECIES_SABLEYE, 12 + wild_mon SPECIES_SABLEYE, 10 + wild_mon SPECIES_SABLEYE, 12 + wild_mon SPECIES_SABLEYE, 10 .align 2 gGraniteCave_B2F_LandMonsInfo:: @ 8550FD4 @@ -780,11 +780,11 @@ gGraniteCave_B2F_LandMonsInfo:: @ 8550FD4 .align 2 gGraniteCave_B2F_RockSmashMons:: @ 8550FDC - wild_mon GEODUDE, 10, 15 - wild_mon NOSEPASS, 10, 20 - wild_mon GEODUDE, 5, 10 - wild_mon GEODUDE, 15, 20 - wild_mon GEODUDE, 15, 20 + wild_mon SPECIES_GEODUDE, 10, 15 + wild_mon SPECIES_NOSEPASS, 10, 20 + wild_mon SPECIES_GEODUDE, 5, 10 + wild_mon SPECIES_GEODUDE, 15, 20 + wild_mon SPECIES_GEODUDE, 15, 20 .align 2 gGraniteCave_B2F_RockSmashMonsInfo:: @ 8550FF0 @@ -793,18 +793,18 @@ gGraniteCave_B2F_RockSmashMonsInfo:: @ 8550FF0 .align 2 gFieryPath_LandMons:: @ 8550FF8 - wild_mon NUMEL, 15 - wild_mon KOFFING, 15 - wild_mon NUMEL, 16 - wild_mon MACHOP, 15 - wild_mon TORKOAL, 15 - wild_mon SLUGMA, 15 - wild_mon KOFFING, 16 - wild_mon MACHOP, 16 - wild_mon TORKOAL, 14 - wild_mon TORKOAL, 16 - wild_mon GRIMER, 14 - wild_mon GRIMER, 14 + wild_mon SPECIES_NUMEL, 15 + wild_mon SPECIES_KOFFING, 15 + wild_mon SPECIES_NUMEL, 16 + wild_mon SPECIES_MACHOP, 15 + wild_mon SPECIES_TORKOAL, 15 + wild_mon SPECIES_SLUGMA, 15 + wild_mon SPECIES_KOFFING, 16 + wild_mon SPECIES_MACHOP, 16 + wild_mon SPECIES_TORKOAL, 14 + wild_mon SPECIES_TORKOAL, 16 + wild_mon SPECIES_GRIMER, 14 + wild_mon SPECIES_GRIMER, 14 .align 2 gFieryPath_LandMonsInfo:: @ 8551028 @@ -813,18 +813,18 @@ gFieryPath_LandMonsInfo:: @ 8551028 .align 2 gMeteorFalls_B1F_2R_LandMons:: @ 8551030 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 35 - wild_mon BAGON, 30 - wild_mon SOLROCK, 35 - wild_mon BAGON, 35 - wild_mon SOLROCK, 37 - wild_mon BAGON, 25 - wild_mon SOLROCK, 39 - wild_mon GOLBAT, 38 - wild_mon GOLBAT, 40 - wild_mon GOLBAT, 38 - wild_mon GOLBAT, 40 + wild_mon SPECIES_GOLBAT, 33 + wild_mon SPECIES_GOLBAT, 35 + wild_mon SPECIES_BAGON, 30 + wild_mon SPECIES_SOLROCK, 35 + wild_mon SPECIES_BAGON, 35 + wild_mon SPECIES_SOLROCK, 37 + wild_mon SPECIES_BAGON, 25 + wild_mon SPECIES_SOLROCK, 39 + wild_mon SPECIES_GOLBAT, 38 + wild_mon SPECIES_GOLBAT, 40 + wild_mon SPECIES_GOLBAT, 38 + wild_mon SPECIES_GOLBAT, 40 .align 2 gMeteorFalls_B1F_2R_LandMonsInfo:: @ 8551060 @@ -833,11 +833,11 @@ gMeteorFalls_B1F_2R_LandMonsInfo:: @ 8551060 .align 2 gMeteorFalls_B1F_2R_WaterMons:: @ 8551068 - wild_mon GOLBAT, 30, 35 - wild_mon GOLBAT, 30, 35 - wild_mon SOLROCK, 25, 35 - wild_mon SOLROCK, 15, 25 - wild_mon SOLROCK, 5, 15 + wild_mon SPECIES_GOLBAT, 30, 35 + wild_mon SPECIES_GOLBAT, 30, 35 + wild_mon SPECIES_SOLROCK, 25, 35 + wild_mon SPECIES_SOLROCK, 15, 25 + wild_mon SPECIES_SOLROCK, 5, 15 .align 2 gMeteorFalls_B1F_2R_WaterMonsInfo:: @ 855107C @@ -846,16 +846,16 @@ gMeteorFalls_B1F_2R_WaterMonsInfo:: @ 855107C .align 2 gMeteorFalls_B1F_2R_FishingMons:: @ 8551084 - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon BARBOACH, 10, 30 - wild_mon BARBOACH, 25, 30 - wild_mon BARBOACH, 30, 35 - wild_mon WHISCASH, 30, 35 - wild_mon WHISCASH, 35, 40 - wild_mon WHISCASH, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_GOLDEEN, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_GOLDEEN, 10, 30 + wild_mon SPECIES_BARBOACH, 10, 30 + wild_mon SPECIES_BARBOACH, 25, 30 + wild_mon SPECIES_BARBOACH, 30, 35 + wild_mon SPECIES_WHISCASH, 30, 35 + wild_mon SPECIES_WHISCASH, 35, 40 + wild_mon SPECIES_WHISCASH, 40, 45 .align 2 gMeteorFalls_B1F_2R_FishingMonsInfo:: @ 85510AC @@ -864,18 +864,18 @@ gMeteorFalls_B1F_2R_FishingMonsInfo:: @ 85510AC .align 2 gJaggedPass_LandMons:: @ 85510B4 - wild_mon NUMEL, 21 - wild_mon NUMEL, 21 - wild_mon MACHOP, 21 - wild_mon NUMEL, 20 - wild_mon SPOINK, 20 - wild_mon MACHOP, 20 - wild_mon SPOINK, 21 - wild_mon MACHOP, 22 - wild_mon NUMEL, 22 - wild_mon SPOINK, 22 - wild_mon NUMEL, 22 - wild_mon SPOINK, 22 + wild_mon SPECIES_NUMEL, 21 + wild_mon SPECIES_NUMEL, 21 + wild_mon SPECIES_MACHOP, 21 + wild_mon SPECIES_NUMEL, 20 + wild_mon SPECIES_SPOINK, 20 + wild_mon SPECIES_MACHOP, 20 + wild_mon SPECIES_SPOINK, 21 + wild_mon SPECIES_MACHOP, 22 + wild_mon SPECIES_NUMEL, 22 + wild_mon SPECIES_SPOINK, 22 + wild_mon SPECIES_NUMEL, 22 + wild_mon SPECIES_SPOINK, 22 .align 2 gJaggedPass_LandMonsInfo:: @ 85510E4 @@ -884,11 +884,11 @@ gJaggedPass_LandMonsInfo:: @ 85510E4 .align 2 gRoute106_WaterMons:: @ 85510EC - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_WINGULL, 10, 30 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_PELIPPER, 25, 30 + wild_mon SPECIES_PELIPPER, 25, 30 .align 2 gRoute106_WaterMonsInfo:: @ 8551100 @@ -897,16 +897,16 @@ gRoute106_WaterMonsInfo:: @ 8551100 .align 2 gRoute106_FishingMons:: @ 8551108 - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_WAILMER, 25, 30 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_WAILMER, 20, 25 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gRoute106_FishingMonsInfo:: @ 8551130 @@ -915,11 +915,11 @@ gRoute106_FishingMonsInfo:: @ 8551130 .align 2 gRoute107_WaterMons:: @ 8551138 - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_WINGULL, 10, 30 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_PELIPPER, 25, 30 + wild_mon SPECIES_PELIPPER, 25, 30 .align 2 gRoute107_WaterMonsInfo:: @ 855114C @@ -928,16 +928,16 @@ gRoute107_WaterMonsInfo:: @ 855114C .align 2 gRoute107_FishingMons:: @ 8551154 - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_WAILMER, 25, 30 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_WAILMER, 20, 25 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gRoute107_FishingMonsInfo:: @ 855117C @@ -946,11 +946,11 @@ gRoute107_FishingMonsInfo:: @ 855117C .align 2 gRoute108_WaterMons:: @ 8551184 - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_WINGULL, 10, 30 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_PELIPPER, 25, 30 + wild_mon SPECIES_PELIPPER, 25, 30 .align 2 gRoute108_WaterMonsInfo:: @ 8551198 @@ -959,16 +959,16 @@ gRoute108_WaterMonsInfo:: @ 8551198 .align 2 gRoute108_FishingMons:: @ 85511A0 - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_WAILMER, 25, 30 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_WAILMER, 20, 25 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gRoute108_FishingMonsInfo:: @ 85511C8 @@ -977,11 +977,11 @@ gRoute108_FishingMonsInfo:: @ 85511C8 .align 2 gRoute109_WaterMons:: @ 85511D0 - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_WINGULL, 10, 30 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_PELIPPER, 25, 30 + wild_mon SPECIES_PELIPPER, 25, 30 .align 2 gRoute109_WaterMonsInfo:: @ 85511E4 @@ -990,16 +990,16 @@ gRoute109_WaterMonsInfo:: @ 85511E4 .align 2 gRoute109_FishingMons:: @ 85511EC - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_WAILMER, 25, 30 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_WAILMER, 20, 25 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gRoute109_FishingMonsInfo:: @ 8551214 @@ -1008,18 +1008,18 @@ gRoute109_FishingMonsInfo:: @ 8551214 .align 2 gRoute115_LandMons:: @ 855121C - wild_mon SWABLU, 23 - wild_mon TAILLOW, 23 - wild_mon SWABLU, 25 - wild_mon TAILLOW, 24 - wild_mon TAILLOW, 25 - wild_mon SWELLOW, 25 - wild_mon JIGGLYPUFF, 24 - wild_mon JIGGLYPUFF, 25 - wild_mon WINGULL, 24 - wild_mon WINGULL, 24 - wild_mon WINGULL, 26 - wild_mon WINGULL, 25 + wild_mon SPECIES_SWABLU, 23 + wild_mon SPECIES_TAILLOW, 23 + wild_mon SPECIES_SWABLU, 25 + wild_mon SPECIES_TAILLOW, 24 + wild_mon SPECIES_TAILLOW, 25 + wild_mon SPECIES_SWELLOW, 25 + wild_mon SPECIES_JIGGLYPUFF, 24 + wild_mon SPECIES_JIGGLYPUFF, 25 + wild_mon SPECIES_WINGULL, 24 + wild_mon SPECIES_WINGULL, 24 + wild_mon SPECIES_WINGULL, 26 + wild_mon SPECIES_WINGULL, 25 .align 2 gRoute115_LandMonsInfo:: @ 855124C @@ -1028,11 +1028,11 @@ gRoute115_LandMonsInfo:: @ 855124C .align 2 gRoute115_WaterMons:: @ 8551254 - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_WINGULL, 10, 30 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_PELIPPER, 25, 30 + wild_mon SPECIES_PELIPPER, 25, 30 .align 2 gRoute115_WaterMonsInfo:: @ 8551268 @@ -1041,16 +1041,16 @@ gRoute115_WaterMonsInfo:: @ 8551268 .align 2 gRoute115_FishingMons:: @ 8551270 - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_WAILMER, 25, 30 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_WAILMER, 20, 25 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gRoute115_FishingMonsInfo:: @ 8551298 @@ -1059,18 +1059,18 @@ gRoute115_FishingMonsInfo:: @ 8551298 .align 2 gNewMauville_Inside_LandMons:: @ 85512A0 - wild_mon VOLTORB, 24 - wild_mon MAGNEMITE, 24 - wild_mon VOLTORB, 25 - wild_mon MAGNEMITE, 25 - wild_mon VOLTORB, 23 - wild_mon MAGNEMITE, 23 - wild_mon VOLTORB, 26 - wild_mon MAGNEMITE, 26 - wild_mon VOLTORB, 22 - wild_mon MAGNEMITE, 22 - wild_mon ELECTRODE, 26 - wild_mon MAGNETON, 26 + wild_mon SPECIES_VOLTORB, 24 + wild_mon SPECIES_MAGNEMITE, 24 + wild_mon SPECIES_VOLTORB, 25 + wild_mon SPECIES_MAGNEMITE, 25 + wild_mon SPECIES_VOLTORB, 23 + wild_mon SPECIES_MAGNEMITE, 23 + wild_mon SPECIES_VOLTORB, 26 + wild_mon SPECIES_MAGNEMITE, 26 + wild_mon SPECIES_VOLTORB, 22 + wild_mon SPECIES_MAGNEMITE, 22 + wild_mon SPECIES_ELECTRODE, 26 + wild_mon SPECIES_MAGNETON, 26 .align 2 gNewMauville_Inside_LandMonsInfo:: @ 85512D0 @@ -1079,18 +1079,18 @@ gNewMauville_Inside_LandMonsInfo:: @ 85512D0 .align 2 gRoute119_LandMons:: @ 85512D8 - wild_mon ZIGZAGOON, 25 - wild_mon LINOONE, 25 - wild_mon ZIGZAGOON, 27 - wild_mon ODDISH, 25 - wild_mon LINOONE, 27 - wild_mon ODDISH, 26 - wild_mon ODDISH, 27 - wild_mon ODDISH, 24 - wild_mon TROPIUS, 25 - wild_mon TROPIUS, 26 - wild_mon TROPIUS, 27 - wild_mon KECLEON, 25 + wild_mon SPECIES_ZIGZAGOON, 25 + wild_mon SPECIES_LINOONE, 25 + wild_mon SPECIES_ZIGZAGOON, 27 + wild_mon SPECIES_ODDISH, 25 + wild_mon SPECIES_LINOONE, 27 + wild_mon SPECIES_ODDISH, 26 + wild_mon SPECIES_ODDISH, 27 + wild_mon SPECIES_ODDISH, 24 + wild_mon SPECIES_TROPIUS, 25 + wild_mon SPECIES_TROPIUS, 26 + wild_mon SPECIES_TROPIUS, 27 + wild_mon SPECIES_KECLEON, 25 .align 2 gRoute119_LandMonsInfo:: @ 8551308 @@ -1099,11 +1099,11 @@ gRoute119_LandMonsInfo:: @ 8551308 .align 2 gRoute119_WaterMons:: @ 8551310 - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_WINGULL, 10, 30 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_PELIPPER, 25, 30 + wild_mon SPECIES_PELIPPER, 25, 30 .align 2 gRoute119_WaterMonsInfo:: @ 8551324 @@ -1112,16 +1112,16 @@ gRoute119_WaterMonsInfo:: @ 8551324 .align 2 gRoute119_FishingMons:: @ 855132C - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon CARVANHA, 10, 30 - wild_mon CARVANHA, 25, 30 - wild_mon CARVANHA, 30, 35 - wild_mon CARVANHA, 20, 25 - wild_mon CARVANHA, 35, 40 - wild_mon CARVANHA, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_CARVANHA, 10, 30 + wild_mon SPECIES_CARVANHA, 25, 30 + wild_mon SPECIES_CARVANHA, 30, 35 + wild_mon SPECIES_CARVANHA, 20, 25 + wild_mon SPECIES_CARVANHA, 35, 40 + wild_mon SPECIES_CARVANHA, 40, 45 .align 2 gRoute119_FishingMonsInfo:: @ 8551354 @@ -1130,18 +1130,18 @@ gRoute119_FishingMonsInfo:: @ 8551354 .align 2 gRoute120_LandMons:: @ 855135C - wild_mon POOCHYENA, 25 - wild_mon MIGHTYENA, 25 - wild_mon MIGHTYENA, 27 - wild_mon ODDISH, 25 - wild_mon MARILL, 25 - wild_mon ODDISH, 26 - wild_mon ODDISH, 27 - wild_mon MARILL, 27 - wild_mon ABSOL, 25 - wild_mon ABSOL, 27 - wild_mon KECLEON, 25 - wild_mon SEEDOT, 25 + wild_mon SPECIES_POOCHYENA, 25 + wild_mon SPECIES_MIGHTYENA, 25 + wild_mon SPECIES_MIGHTYENA, 27 + wild_mon SPECIES_ODDISH, 25 + wild_mon SPECIES_MARILL, 25 + wild_mon SPECIES_ODDISH, 26 + wild_mon SPECIES_ODDISH, 27 + wild_mon SPECIES_MARILL, 27 + wild_mon SPECIES_ABSOL, 25 + wild_mon SPECIES_ABSOL, 27 + wild_mon SPECIES_KECLEON, 25 + wild_mon SPECIES_SEEDOT, 25 .align 2 gRoute120_LandMonsInfo:: @ 855138C @@ -1150,11 +1150,11 @@ gRoute120_LandMonsInfo:: @ 855138C .align 2 gRoute120_WaterMons:: @ 8551394 - wild_mon MARILL, 20, 30 - wild_mon MARILL, 10, 20 - wild_mon MARILL, 30, 35 - wild_mon MARILL, 5, 10 - wild_mon GOLDEEN, 20, 30 + wild_mon SPECIES_MARILL, 20, 30 + wild_mon SPECIES_MARILL, 10, 20 + wild_mon SPECIES_MARILL, 30, 35 + wild_mon SPECIES_MARILL, 5, 10 + wild_mon SPECIES_GOLDEEN, 20, 30 .align 2 gRoute120_WaterMonsInfo:: @ 85513A8 @@ -1163,16 +1163,16 @@ gRoute120_WaterMonsInfo:: @ 85513A8 .align 2 gRoute120_FishingMons:: @ 85513B0 - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon BARBOACH, 10, 30 - wild_mon BARBOACH, 25, 30 - wild_mon BARBOACH, 30, 35 - wild_mon BARBOACH, 20, 25 - wild_mon BARBOACH, 35, 40 - wild_mon BARBOACH, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_GOLDEEN, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_GOLDEEN, 10, 30 + wild_mon SPECIES_BARBOACH, 10, 30 + wild_mon SPECIES_BARBOACH, 25, 30 + wild_mon SPECIES_BARBOACH, 30, 35 + wild_mon SPECIES_BARBOACH, 20, 25 + wild_mon SPECIES_BARBOACH, 35, 40 + wild_mon SPECIES_BARBOACH, 40, 45 .align 2 gRoute120_FishingMonsInfo:: @ 85513D8 @@ -1181,18 +1181,18 @@ gRoute120_FishingMonsInfo:: @ 85513D8 .align 2 gRoute121_LandMons:: @ 85513E0 - wild_mon POOCHYENA, 26 - wild_mon SHUPPET, 26 - wild_mon MIGHTYENA, 26 - wild_mon SHUPPET, 28 - wild_mon MIGHTYENA, 28 - wild_mon ODDISH, 26 - wild_mon ODDISH, 28 - wild_mon GLOOM, 28 - wild_mon WINGULL, 26 - wild_mon WINGULL, 27 - wild_mon WINGULL, 28 - wild_mon KECLEON, 25 + wild_mon SPECIES_POOCHYENA, 26 + wild_mon SPECIES_SHUPPET, 26 + wild_mon SPECIES_MIGHTYENA, 26 + wild_mon SPECIES_SHUPPET, 28 + wild_mon SPECIES_MIGHTYENA, 28 + wild_mon SPECIES_ODDISH, 26 + wild_mon SPECIES_ODDISH, 28 + wild_mon SPECIES_GLOOM, 28 + wild_mon SPECIES_WINGULL, 26 + wild_mon SPECIES_WINGULL, 27 + wild_mon SPECIES_WINGULL, 28 + wild_mon SPECIES_KECLEON, 25 .align 2 gRoute121_LandMonsInfo:: @ 8551410 @@ -1201,11 +1201,11 @@ gRoute121_LandMonsInfo:: @ 8551410 .align 2 gRoute121_WaterMons:: @ 8551418 - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_WINGULL, 10, 30 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_PELIPPER, 25, 30 + wild_mon SPECIES_PELIPPER, 25, 30 .align 2 gRoute121_WaterMonsInfo:: @ 855142C @@ -1214,16 +1214,16 @@ gRoute121_WaterMonsInfo:: @ 855142C .align 2 gRoute121_FishingMons:: @ 8551434 - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_WAILMER, 25, 30 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_WAILMER, 20, 25 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gRoute121_FishingMonsInfo:: @ 855145C @@ -1232,11 +1232,11 @@ gRoute121_FishingMonsInfo:: @ 855145C .align 2 gRoute122_WaterMons:: @ 8551464 - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_WINGULL, 10, 30 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_PELIPPER, 25, 30 + wild_mon SPECIES_PELIPPER, 25, 30 .align 2 gRoute122_WaterMonsInfo:: @ 8551478 @@ -1245,16 +1245,16 @@ gRoute122_WaterMonsInfo:: @ 8551478 .align 2 gRoute122_FishingMons:: @ 8551480 - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_SHARPEDO, 30, 35 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_WAILMER, 25, 30 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gRoute122_FishingMonsInfo:: @ 85514A8 @@ -1263,18 +1263,18 @@ gRoute122_FishingMonsInfo:: @ 85514A8 .align 2 gRoute123_LandMons:: @ 85514B0 - wild_mon POOCHYENA, 26 - wild_mon SHUPPET, 26 - wild_mon MIGHTYENA, 26 - wild_mon SHUPPET, 28 - wild_mon MIGHTYENA, 28 - wild_mon ODDISH, 26 - wild_mon ODDISH, 28 - wild_mon GLOOM, 28 - wild_mon WINGULL, 26 - wild_mon WINGULL, 27 - wild_mon WINGULL, 28 - wild_mon KECLEON, 25 + wild_mon SPECIES_POOCHYENA, 26 + wild_mon SPECIES_SHUPPET, 26 + wild_mon SPECIES_MIGHTYENA, 26 + wild_mon SPECIES_SHUPPET, 28 + wild_mon SPECIES_MIGHTYENA, 28 + wild_mon SPECIES_ODDISH, 26 + wild_mon SPECIES_ODDISH, 28 + wild_mon SPECIES_GLOOM, 28 + wild_mon SPECIES_WINGULL, 26 + wild_mon SPECIES_WINGULL, 27 + wild_mon SPECIES_WINGULL, 28 + wild_mon SPECIES_KECLEON, 25 .align 2 gRoute123_LandMonsInfo:: @ 85514E0 @@ -1283,11 +1283,11 @@ gRoute123_LandMonsInfo:: @ 85514E0 .align 2 gRoute123_WaterMons:: @ 85514E8 - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_WINGULL, 10, 30 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_PELIPPER, 25, 30 + wild_mon SPECIES_PELIPPER, 25, 30 .align 2 gRoute123_WaterMonsInfo:: @ 85514FC @@ -1296,16 +1296,16 @@ gRoute123_WaterMonsInfo:: @ 85514FC .align 2 gRoute123_FishingMons:: @ 8551504 - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_WAILMER, 25, 30 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_WAILMER, 20, 25 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gRoute123_FishingMonsInfo:: @ 855152C @@ -1314,18 +1314,18 @@ gRoute123_FishingMonsInfo:: @ 855152C .align 2 gMtPyre_2F_LandMons:: @ 8551534 - wild_mon SHUPPET, 27 - wild_mon SHUPPET, 28 - wild_mon SHUPPET, 26 - wild_mon SHUPPET, 25 - wild_mon SHUPPET, 29 - wild_mon SHUPPET, 24 - wild_mon SHUPPET, 23 - wild_mon SHUPPET, 22 - wild_mon SHUPPET, 29 - wild_mon SHUPPET, 24 - wild_mon SHUPPET, 29 - wild_mon SHUPPET, 24 + wild_mon SPECIES_SHUPPET, 27 + wild_mon SPECIES_SHUPPET, 28 + wild_mon SPECIES_SHUPPET, 26 + wild_mon SPECIES_SHUPPET, 25 + wild_mon SPECIES_SHUPPET, 29 + wild_mon SPECIES_SHUPPET, 24 + wild_mon SPECIES_SHUPPET, 23 + wild_mon SPECIES_SHUPPET, 22 + wild_mon SPECIES_SHUPPET, 29 + wild_mon SPECIES_SHUPPET, 24 + wild_mon SPECIES_SHUPPET, 29 + wild_mon SPECIES_SHUPPET, 24 .align 2 gMtPyre_2F_LandMonsInfo:: @ 8551564 @@ -1334,18 +1334,18 @@ gMtPyre_2F_LandMonsInfo:: @ 8551564 .align 2 gMtPyre_3F_LandMons:: @ 855156C - wild_mon SHUPPET, 27 - wild_mon SHUPPET, 28 - wild_mon SHUPPET, 26 - wild_mon SHUPPET, 25 - wild_mon SHUPPET, 29 - wild_mon SHUPPET, 24 - wild_mon SHUPPET, 23 - wild_mon SHUPPET, 22 - wild_mon SHUPPET, 29 - wild_mon SHUPPET, 24 - wild_mon SHUPPET, 29 - wild_mon SHUPPET, 24 + wild_mon SPECIES_SHUPPET, 27 + wild_mon SPECIES_SHUPPET, 28 + wild_mon SPECIES_SHUPPET, 26 + wild_mon SPECIES_SHUPPET, 25 + wild_mon SPECIES_SHUPPET, 29 + wild_mon SPECIES_SHUPPET, 24 + wild_mon SPECIES_SHUPPET, 23 + wild_mon SPECIES_SHUPPET, 22 + wild_mon SPECIES_SHUPPET, 29 + wild_mon SPECIES_SHUPPET, 24 + wild_mon SPECIES_SHUPPET, 29 + wild_mon SPECIES_SHUPPET, 24 .align 2 gMtPyre_3F_LandMonsInfo:: @ 855159C @@ -1354,18 +1354,18 @@ gMtPyre_3F_LandMonsInfo:: @ 855159C .align 2 gMtPyre_4F_LandMons:: @ 85515A4 - wild_mon SHUPPET, 27 - wild_mon SHUPPET, 28 - wild_mon SHUPPET, 26 - wild_mon SHUPPET, 25 - wild_mon SHUPPET, 29 - wild_mon SHUPPET, 24 - wild_mon SHUPPET, 23 - wild_mon SHUPPET, 22 - wild_mon DUSKULL, 27 - wild_mon DUSKULL, 27 - wild_mon DUSKULL, 25 - wild_mon DUSKULL, 29 + wild_mon SPECIES_SHUPPET, 27 + wild_mon SPECIES_SHUPPET, 28 + wild_mon SPECIES_SHUPPET, 26 + wild_mon SPECIES_SHUPPET, 25 + wild_mon SPECIES_SHUPPET, 29 + wild_mon SPECIES_SHUPPET, 24 + wild_mon SPECIES_SHUPPET, 23 + wild_mon SPECIES_SHUPPET, 22 + wild_mon SPECIES_DUSKULL, 27 + wild_mon SPECIES_DUSKULL, 27 + wild_mon SPECIES_DUSKULL, 25 + wild_mon SPECIES_DUSKULL, 29 .align 2 gMtPyre_4F_LandMonsInfo:: @ 85515D4 @@ -1374,18 +1374,18 @@ gMtPyre_4F_LandMonsInfo:: @ 85515D4 .align 2 gMtPyre_5F_LandMons:: @ 85515DC - wild_mon SHUPPET, 27 - wild_mon SHUPPET, 28 - wild_mon SHUPPET, 26 - wild_mon SHUPPET, 25 - wild_mon SHUPPET, 29 - wild_mon SHUPPET, 24 - wild_mon SHUPPET, 23 - wild_mon SHUPPET, 22 - wild_mon DUSKULL, 27 - wild_mon DUSKULL, 27 - wild_mon DUSKULL, 25 - wild_mon DUSKULL, 29 + wild_mon SPECIES_SHUPPET, 27 + wild_mon SPECIES_SHUPPET, 28 + wild_mon SPECIES_SHUPPET, 26 + wild_mon SPECIES_SHUPPET, 25 + wild_mon SPECIES_SHUPPET, 29 + wild_mon SPECIES_SHUPPET, 24 + wild_mon SPECIES_SHUPPET, 23 + wild_mon SPECIES_SHUPPET, 22 + wild_mon SPECIES_DUSKULL, 27 + wild_mon SPECIES_DUSKULL, 27 + wild_mon SPECIES_DUSKULL, 25 + wild_mon SPECIES_DUSKULL, 29 .align 2 gMtPyre_5F_LandMonsInfo:: @ 855160C @@ -1394,18 +1394,18 @@ gMtPyre_5F_LandMonsInfo:: @ 855160C .align 2 gMtPyre_6F_LandMons:: @ 8551614 - wild_mon SHUPPET, 27 - wild_mon SHUPPET, 28 - wild_mon SHUPPET, 26 - wild_mon SHUPPET, 25 - wild_mon SHUPPET, 29 - wild_mon SHUPPET, 24 - wild_mon SHUPPET, 23 - wild_mon SHUPPET, 22 - wild_mon DUSKULL, 27 - wild_mon DUSKULL, 27 - wild_mon DUSKULL, 25 - wild_mon DUSKULL, 29 + wild_mon SPECIES_SHUPPET, 27 + wild_mon SPECIES_SHUPPET, 28 + wild_mon SPECIES_SHUPPET, 26 + wild_mon SPECIES_SHUPPET, 25 + wild_mon SPECIES_SHUPPET, 29 + wild_mon SPECIES_SHUPPET, 24 + wild_mon SPECIES_SHUPPET, 23 + wild_mon SPECIES_SHUPPET, 22 + wild_mon SPECIES_DUSKULL, 27 + wild_mon SPECIES_DUSKULL, 27 + wild_mon SPECIES_DUSKULL, 25 + wild_mon SPECIES_DUSKULL, 29 .align 2 gMtPyre_6F_LandMonsInfo:: @ 8551644 @@ -1414,18 +1414,18 @@ gMtPyre_6F_LandMonsInfo:: @ 8551644 .align 2 gMtPyre_Exterior_LandMons:: @ 855164C - wild_mon SHUPPET, 27 - wild_mon SHUPPET, 27 - wild_mon SHUPPET, 28 - wild_mon SHUPPET, 29 - wild_mon VULPIX, 29 - wild_mon VULPIX, 27 - wild_mon VULPIX, 29 - wild_mon VULPIX, 25 - wild_mon WINGULL, 27 - wild_mon WINGULL, 27 - wild_mon WINGULL, 26 - wild_mon WINGULL, 28 + wild_mon SPECIES_SHUPPET, 27 + wild_mon SPECIES_SHUPPET, 27 + wild_mon SPECIES_SHUPPET, 28 + wild_mon SPECIES_SHUPPET, 29 + wild_mon SPECIES_VULPIX, 29 + wild_mon SPECIES_VULPIX, 27 + wild_mon SPECIES_VULPIX, 29 + wild_mon SPECIES_VULPIX, 25 + wild_mon SPECIES_WINGULL, 27 + wild_mon SPECIES_WINGULL, 27 + wild_mon SPECIES_WINGULL, 26 + wild_mon SPECIES_WINGULL, 28 .align 2 gMtPyre_Exterior_LandMonsInfo:: @ 855167C @@ -1434,18 +1434,18 @@ gMtPyre_Exterior_LandMonsInfo:: @ 855167C .align 2 gMtPyre_Summit_LandMons:: @ 8551684 - wild_mon SHUPPET, 28 - wild_mon SHUPPET, 29 - wild_mon SHUPPET, 27 - wild_mon SHUPPET, 26 - wild_mon SHUPPET, 30 - wild_mon SHUPPET, 25 - wild_mon SHUPPET, 24 - wild_mon DUSKULL, 28 - wild_mon DUSKULL, 26 - wild_mon DUSKULL, 30 - wild_mon CHIMECHO, 28 - wild_mon CHIMECHO, 28 + wild_mon SPECIES_SHUPPET, 28 + wild_mon SPECIES_SHUPPET, 29 + wild_mon SPECIES_SHUPPET, 27 + wild_mon SPECIES_SHUPPET, 26 + wild_mon SPECIES_SHUPPET, 30 + wild_mon SPECIES_SHUPPET, 25 + wild_mon SPECIES_SHUPPET, 24 + wild_mon SPECIES_DUSKULL, 28 + wild_mon SPECIES_DUSKULL, 26 + wild_mon SPECIES_DUSKULL, 30 + wild_mon SPECIES_CHIMECHO, 28 + wild_mon SPECIES_CHIMECHO, 28 .align 2 gMtPyre_Summit_LandMonsInfo:: @ 85516B4 @@ -1454,18 +1454,18 @@ gMtPyre_Summit_LandMonsInfo:: @ 85516B4 .align 2 gGraniteCave_StevensRoom_LandMons:: @ 85516BC - wild_mon ZUBAT, 7 - wild_mon MAKUHITA, 8 - wild_mon MAKUHITA, 7 - wild_mon ZUBAT, 8 - wild_mon MAKUHITA, 9 - wild_mon ABRA, 8 - wild_mon MAKUHITA, 10 - wild_mon MAKUHITA, 6 - wild_mon ARON, 7 - wild_mon ARON, 8 - wild_mon ARON, 7 - wild_mon ARON, 8 + wild_mon SPECIES_ZUBAT, 7 + wild_mon SPECIES_MAKUHITA, 8 + wild_mon SPECIES_MAKUHITA, 7 + wild_mon SPECIES_ZUBAT, 8 + wild_mon SPECIES_MAKUHITA, 9 + wild_mon SPECIES_ABRA, 8 + wild_mon SPECIES_MAKUHITA, 10 + wild_mon SPECIES_MAKUHITA, 6 + wild_mon SPECIES_ARON, 7 + wild_mon SPECIES_ARON, 8 + wild_mon SPECIES_ARON, 7 + wild_mon SPECIES_ARON, 8 .align 2 gGraniteCave_StevensRoom_LandMonsInfo:: @ 85516EC @@ -1474,11 +1474,11 @@ gGraniteCave_StevensRoom_LandMonsInfo:: @ 85516EC .align 2 gRoute125_WaterMons:: @ 85516F4 - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_WINGULL, 10, 30 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_PELIPPER, 25, 30 + wild_mon SPECIES_PELIPPER, 25, 30 .align 2 gRoute125_WaterMonsInfo:: @ 8551708 @@ -1487,16 +1487,16 @@ gRoute125_WaterMonsInfo:: @ 8551708 .align 2 gRoute125_FishingMons:: @ 8551710 - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_SHARPEDO, 30, 35 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_WAILMER, 25, 30 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gRoute125_FishingMonsInfo:: @ 8551738 @@ -1505,11 +1505,11 @@ gRoute125_FishingMonsInfo:: @ 8551738 .align 2 gRoute126_WaterMons:: @ 8551740 - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_WINGULL, 10, 30 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_PELIPPER, 25, 30 + wild_mon SPECIES_PELIPPER, 25, 30 .align 2 gRoute126_WaterMonsInfo:: @ 8551754 @@ -1518,16 +1518,16 @@ gRoute126_WaterMonsInfo:: @ 8551754 .align 2 gRoute126_FishingMons:: @ 855175C - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_SHARPEDO, 30, 35 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_WAILMER, 25, 30 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gRoute126_FishingMonsInfo:: @ 8551784 @@ -1536,11 +1536,11 @@ gRoute126_FishingMonsInfo:: @ 8551784 .align 2 gRoute127_WaterMons:: @ 855178C - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_WINGULL, 10, 30 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_PELIPPER, 25, 30 + wild_mon SPECIES_PELIPPER, 25, 30 .align 2 gRoute127_WaterMonsInfo:: @ 85517A0 @@ -1549,16 +1549,16 @@ gRoute127_WaterMonsInfo:: @ 85517A0 .align 2 gRoute127_FishingMons:: @ 85517A8 - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_SHARPEDO, 30, 35 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_WAILMER, 25, 30 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gRoute127_FishingMonsInfo:: @ 85517D0 @@ -1567,11 +1567,11 @@ gRoute127_FishingMonsInfo:: @ 85517D0 .align 2 gRoute128_WaterMons:: @ 85517D8 - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_WINGULL, 10, 30 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_PELIPPER, 25, 30 + wild_mon SPECIES_PELIPPER, 25, 30 .align 2 gRoute128_WaterMonsInfo:: @ 85517EC @@ -1580,16 +1580,16 @@ gRoute128_WaterMonsInfo:: @ 85517EC .align 2 gRoute128_FishingMons:: @ 85517F4 - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon LUVDISC, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon LUVDISC, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon CORSOLA, 30, 35 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_LUVDISC, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_LUVDISC, 30, 35 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_CORSOLA, 30, 35 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gRoute128_FishingMonsInfo:: @ 855181C @@ -1598,11 +1598,11 @@ gRoute128_FishingMonsInfo:: @ 855181C .align 2 gRoute129_WaterMons:: @ 8551824 - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon WAILORD, 25, 30 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_WINGULL, 10, 30 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_PELIPPER, 25, 30 + wild_mon SPECIES_WAILORD, 25, 30 .align 2 gRoute129_WaterMonsInfo:: @ 8551838 @@ -1611,16 +1611,16 @@ gRoute129_WaterMonsInfo:: @ 8551838 .align 2 gRoute129_FishingMons:: @ 8551840 - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_SHARPEDO, 30, 35 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_WAILMER, 25, 30 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gRoute129_FishingMonsInfo:: @ 8551868 @@ -1629,18 +1629,18 @@ gRoute129_FishingMonsInfo:: @ 8551868 .align 2 gRoute130_LandMons:: @ 8551870 - wild_mon WYNAUT, 30 - wild_mon WYNAUT, 35 - wild_mon WYNAUT, 25 - wild_mon WYNAUT, 40 - wild_mon WYNAUT, 20 - wild_mon WYNAUT, 45 - wild_mon WYNAUT, 15 - wild_mon WYNAUT, 50 - wild_mon WYNAUT, 10 - wild_mon WYNAUT, 5 - wild_mon WYNAUT, 10 - wild_mon WYNAUT, 5 + wild_mon SPECIES_WYNAUT, 30 + wild_mon SPECIES_WYNAUT, 35 + wild_mon SPECIES_WYNAUT, 25 + wild_mon SPECIES_WYNAUT, 40 + wild_mon SPECIES_WYNAUT, 20 + wild_mon SPECIES_WYNAUT, 45 + wild_mon SPECIES_WYNAUT, 15 + wild_mon SPECIES_WYNAUT, 50 + wild_mon SPECIES_WYNAUT, 10 + wild_mon SPECIES_WYNAUT, 5 + wild_mon SPECIES_WYNAUT, 10 + wild_mon SPECIES_WYNAUT, 5 .align 2 gRoute130_LandMonsInfo:: @ 85518A0 @@ -1649,11 +1649,11 @@ gRoute130_LandMonsInfo:: @ 85518A0 .align 2 gRoute130_WaterMons:: @ 85518A8 - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_WINGULL, 10, 30 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_PELIPPER, 25, 30 + wild_mon SPECIES_PELIPPER, 25, 30 .align 2 gRoute130_WaterMonsInfo:: @ 85518BC @@ -1662,16 +1662,16 @@ gRoute130_WaterMonsInfo:: @ 85518BC .align 2 gRoute130_FishingMons:: @ 85518C4 - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_SHARPEDO, 30, 35 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_WAILMER, 25, 30 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gRoute130_FishingMonsInfo:: @ 85518EC @@ -1680,11 +1680,11 @@ gRoute130_FishingMonsInfo:: @ 85518EC .align 2 gRoute131_WaterMons:: @ 85518F4 - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_WINGULL, 10, 30 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_PELIPPER, 25, 30 + wild_mon SPECIES_PELIPPER, 25, 30 .align 2 gRoute131_WaterMonsInfo:: @ 8551908 @@ -1693,16 +1693,16 @@ gRoute131_WaterMonsInfo:: @ 8551908 .align 2 gRoute131_FishingMons:: @ 8551910 - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_SHARPEDO, 30, 35 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_WAILMER, 25, 30 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gRoute131_FishingMonsInfo:: @ 8551938 @@ -1711,11 +1711,11 @@ gRoute131_FishingMonsInfo:: @ 8551938 .align 2 gRoute132_WaterMons:: @ 8551940 - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_WINGULL, 10, 30 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_PELIPPER, 25, 30 + wild_mon SPECIES_PELIPPER, 25, 30 .align 2 gRoute132_WaterMonsInfo:: @ 8551954 @@ -1724,16 +1724,16 @@ gRoute132_WaterMonsInfo:: @ 8551954 .align 2 gRoute132_FishingMons:: @ 855195C - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon HORSEA, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_SHARPEDO, 30, 35 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_HORSEA, 25, 30 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gRoute132_FishingMonsInfo:: @ 8551984 @@ -1742,11 +1742,11 @@ gRoute132_FishingMonsInfo:: @ 8551984 .align 2 gRoute133_WaterMons:: @ 855198C - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_WINGULL, 10, 30 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_PELIPPER, 25, 30 + wild_mon SPECIES_PELIPPER, 25, 30 .align 2 gRoute133_WaterMonsInfo:: @ 85519A0 @@ -1755,16 +1755,16 @@ gRoute133_WaterMonsInfo:: @ 85519A0 .align 2 gRoute133_FishingMons:: @ 85519A8 - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon HORSEA, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_SHARPEDO, 30, 35 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_HORSEA, 25, 30 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gRoute133_FishingMonsInfo:: @ 85519D0 @@ -1773,11 +1773,11 @@ gRoute133_FishingMonsInfo:: @ 85519D0 .align 2 gRoute134_WaterMons:: @ 85519D8 - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_WINGULL, 10, 30 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_PELIPPER, 25, 30 + wild_mon SPECIES_PELIPPER, 25, 30 .align 2 gRoute134_WaterMonsInfo:: @ 85519EC @@ -1786,16 +1786,16 @@ gRoute134_WaterMonsInfo:: @ 85519EC .align 2 gRoute134_FishingMons:: @ 85519F4 - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon HORSEA, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_SHARPEDO, 30, 35 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_HORSEA, 25, 30 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gRoute134_FishingMonsInfo:: @ 8551A1C @@ -1804,11 +1804,11 @@ gRoute134_FishingMonsInfo:: @ 8551A1C .align 2 gAbandonedShip_HiddenFloorCorridors_WaterMons:: @ 8551A24 - wild_mon TENTACOOL, 5, 35 - wild_mon TENTACOOL, 5, 35 - wild_mon TENTACOOL, 5, 35 - wild_mon TENTACOOL, 5, 35 - wild_mon TENTACRUEL, 30, 35 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_TENTACRUEL, 30, 35 .align 2 gAbandonedShip_HiddenFloorCorridors_WaterMonsInfo:: @ 8551A38 @@ -1817,16 +1817,16 @@ gAbandonedShip_HiddenFloorCorridors_WaterMonsInfo:: @ 8551A38 .align 2 gAbandonedShip_HiddenFloorCorridors_FishingMons:: @ 8551A40 - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon TENTACOOL, 25, 30 - wild_mon TENTACOOL, 30, 35 - wild_mon TENTACRUEL, 30, 35 - wild_mon TENTACRUEL, 25, 30 - wild_mon TENTACRUEL, 20, 25 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_TENTACOOL, 25, 30 + wild_mon SPECIES_TENTACOOL, 30, 35 + wild_mon SPECIES_TENTACRUEL, 30, 35 + wild_mon SPECIES_TENTACRUEL, 25, 30 + wild_mon SPECIES_TENTACRUEL, 20, 25 .align 2 gAbandonedShip_HiddenFloorCorridors_FishingMonsInfo:: @ 8551A68 @@ -1835,18 +1835,18 @@ gAbandonedShip_HiddenFloorCorridors_FishingMonsInfo:: @ 8551A68 .align 2 gSeafloorCavern_Room1_LandMons:: @ 8551A70 - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 28 - wild_mon ZUBAT, 29 - wild_mon ZUBAT, 34 - wild_mon ZUBAT, 35 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 + wild_mon SPECIES_ZUBAT, 30 + wild_mon SPECIES_ZUBAT, 31 + wild_mon SPECIES_ZUBAT, 32 + wild_mon SPECIES_ZUBAT, 33 + wild_mon SPECIES_ZUBAT, 28 + wild_mon SPECIES_ZUBAT, 29 + wild_mon SPECIES_ZUBAT, 34 + wild_mon SPECIES_ZUBAT, 35 + wild_mon SPECIES_GOLBAT, 34 + wild_mon SPECIES_GOLBAT, 35 + wild_mon SPECIES_GOLBAT, 33 + wild_mon SPECIES_GOLBAT, 36 .align 2 gSeafloorCavern_Room1_LandMonsInfo:: @ 8551AA0 @@ -1855,18 +1855,18 @@ gSeafloorCavern_Room1_LandMonsInfo:: @ 8551AA0 .align 2 gSeafloorCavern_Room2_LandMons:: @ 8551AA8 - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 28 - wild_mon ZUBAT, 29 - wild_mon ZUBAT, 34 - wild_mon ZUBAT, 35 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 + wild_mon SPECIES_ZUBAT, 30 + wild_mon SPECIES_ZUBAT, 31 + wild_mon SPECIES_ZUBAT, 32 + wild_mon SPECIES_ZUBAT, 33 + wild_mon SPECIES_ZUBAT, 28 + wild_mon SPECIES_ZUBAT, 29 + wild_mon SPECIES_ZUBAT, 34 + wild_mon SPECIES_ZUBAT, 35 + wild_mon SPECIES_GOLBAT, 34 + wild_mon SPECIES_GOLBAT, 35 + wild_mon SPECIES_GOLBAT, 33 + wild_mon SPECIES_GOLBAT, 36 .align 2 gSeafloorCavern_Room2_LandMonsInfo:: @ 8551AD8 @@ -1875,18 +1875,18 @@ gSeafloorCavern_Room2_LandMonsInfo:: @ 8551AD8 .align 2 gSeafloorCavern_Room3_LandMons:: @ 8551AE0 - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 28 - wild_mon ZUBAT, 29 - wild_mon ZUBAT, 34 - wild_mon ZUBAT, 35 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 + wild_mon SPECIES_ZUBAT, 30 + wild_mon SPECIES_ZUBAT, 31 + wild_mon SPECIES_ZUBAT, 32 + wild_mon SPECIES_ZUBAT, 33 + wild_mon SPECIES_ZUBAT, 28 + wild_mon SPECIES_ZUBAT, 29 + wild_mon SPECIES_ZUBAT, 34 + wild_mon SPECIES_ZUBAT, 35 + wild_mon SPECIES_GOLBAT, 34 + wild_mon SPECIES_GOLBAT, 35 + wild_mon SPECIES_GOLBAT, 33 + wild_mon SPECIES_GOLBAT, 36 .align 2 gSeafloorCavern_Room3_LandMonsInfo:: @ 8551B10 @@ -1895,18 +1895,18 @@ gSeafloorCavern_Room3_LandMonsInfo:: @ 8551B10 .align 2 gSeafloorCavern_Room4_LandMons:: @ 8551B18 - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 28 - wild_mon ZUBAT, 29 - wild_mon ZUBAT, 34 - wild_mon ZUBAT, 35 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 + wild_mon SPECIES_ZUBAT, 30 + wild_mon SPECIES_ZUBAT, 31 + wild_mon SPECIES_ZUBAT, 32 + wild_mon SPECIES_ZUBAT, 33 + wild_mon SPECIES_ZUBAT, 28 + wild_mon SPECIES_ZUBAT, 29 + wild_mon SPECIES_ZUBAT, 34 + wild_mon SPECIES_ZUBAT, 35 + wild_mon SPECIES_GOLBAT, 34 + wild_mon SPECIES_GOLBAT, 35 + wild_mon SPECIES_GOLBAT, 33 + wild_mon SPECIES_GOLBAT, 36 .align 2 gSeafloorCavern_Room4_LandMonsInfo:: @ 8551B48 @@ -1915,18 +1915,18 @@ gSeafloorCavern_Room4_LandMonsInfo:: @ 8551B48 .align 2 gSeafloorCavern_Room5_LandMons:: @ 8551B50 - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 28 - wild_mon ZUBAT, 29 - wild_mon ZUBAT, 34 - wild_mon ZUBAT, 35 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 + wild_mon SPECIES_ZUBAT, 30 + wild_mon SPECIES_ZUBAT, 31 + wild_mon SPECIES_ZUBAT, 32 + wild_mon SPECIES_ZUBAT, 33 + wild_mon SPECIES_ZUBAT, 28 + wild_mon SPECIES_ZUBAT, 29 + wild_mon SPECIES_ZUBAT, 34 + wild_mon SPECIES_ZUBAT, 35 + wild_mon SPECIES_GOLBAT, 34 + wild_mon SPECIES_GOLBAT, 35 + wild_mon SPECIES_GOLBAT, 33 + wild_mon SPECIES_GOLBAT, 36 .align 2 gSeafloorCavern_Room5_LandMonsInfo:: @ 8551B80 @@ -1935,18 +1935,18 @@ gSeafloorCavern_Room5_LandMonsInfo:: @ 8551B80 .align 2 gSeafloorCavern_Room6_LandMons:: @ 8551B88 - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 28 - wild_mon ZUBAT, 29 - wild_mon ZUBAT, 34 - wild_mon ZUBAT, 35 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 + wild_mon SPECIES_ZUBAT, 30 + wild_mon SPECIES_ZUBAT, 31 + wild_mon SPECIES_ZUBAT, 32 + wild_mon SPECIES_ZUBAT, 33 + wild_mon SPECIES_ZUBAT, 28 + wild_mon SPECIES_ZUBAT, 29 + wild_mon SPECIES_ZUBAT, 34 + wild_mon SPECIES_ZUBAT, 35 + wild_mon SPECIES_GOLBAT, 34 + wild_mon SPECIES_GOLBAT, 35 + wild_mon SPECIES_GOLBAT, 33 + wild_mon SPECIES_GOLBAT, 36 .align 2 gSeafloorCavern_Room6_LandMonsInfo:: @ 8551BB8 @@ -1955,11 +1955,11 @@ gSeafloorCavern_Room6_LandMonsInfo:: @ 8551BB8 .align 2 gSeafloorCavern_Room6_WaterMons:: @ 8551BC0 - wild_mon TENTACOOL, 5, 35 - wild_mon ZUBAT, 5, 35 - wild_mon ZUBAT, 30, 35 - wild_mon GOLBAT, 30, 35 - wild_mon GOLBAT, 30, 35 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_ZUBAT, 5, 35 + wild_mon SPECIES_ZUBAT, 30, 35 + wild_mon SPECIES_GOLBAT, 30, 35 + wild_mon SPECIES_GOLBAT, 30, 35 .align 2 gSeafloorCavern_Room6_WaterMonsInfo:: @ 8551BD4 @@ -1968,16 +1968,16 @@ gSeafloorCavern_Room6_WaterMonsInfo:: @ 8551BD4 .align 2 gSeafloorCavern_Room6_FishingMons:: @ 8551BDC - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_WAILMER, 25, 30 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_WAILMER, 20, 25 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gSeafloorCavern_Room6_FishingMonsInfo:: @ 8551C04 @@ -1986,18 +1986,18 @@ gSeafloorCavern_Room6_FishingMonsInfo:: @ 8551C04 .align 2 gSeafloorCavern_Room7_LandMons:: @ 8551C0C - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 28 - wild_mon ZUBAT, 29 - wild_mon ZUBAT, 34 - wild_mon ZUBAT, 35 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 + wild_mon SPECIES_ZUBAT, 30 + wild_mon SPECIES_ZUBAT, 31 + wild_mon SPECIES_ZUBAT, 32 + wild_mon SPECIES_ZUBAT, 33 + wild_mon SPECIES_ZUBAT, 28 + wild_mon SPECIES_ZUBAT, 29 + wild_mon SPECIES_ZUBAT, 34 + wild_mon SPECIES_ZUBAT, 35 + wild_mon SPECIES_GOLBAT, 34 + wild_mon SPECIES_GOLBAT, 35 + wild_mon SPECIES_GOLBAT, 33 + wild_mon SPECIES_GOLBAT, 36 .align 2 gSeafloorCavern_Room7_LandMonsInfo:: @ 8551C3C @@ -2006,11 +2006,11 @@ gSeafloorCavern_Room7_LandMonsInfo:: @ 8551C3C .align 2 gSeafloorCavern_Room7_WaterMons:: @ 8551C44 - wild_mon TENTACOOL, 5, 35 - wild_mon ZUBAT, 5, 35 - wild_mon ZUBAT, 30, 35 - wild_mon GOLBAT, 30, 35 - wild_mon GOLBAT, 30, 35 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_ZUBAT, 5, 35 + wild_mon SPECIES_ZUBAT, 30, 35 + wild_mon SPECIES_GOLBAT, 30, 35 + wild_mon SPECIES_GOLBAT, 30, 35 .align 2 gSeafloorCavern_Room7_WaterMonsInfo:: @ 8551C58 @@ -2019,16 +2019,16 @@ gSeafloorCavern_Room7_WaterMonsInfo:: @ 8551C58 .align 2 gSeafloorCavern_Room7_FishingMons:: @ 8551C60 - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_WAILMER, 25, 30 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_WAILMER, 20, 25 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gSeafloorCavern_Room7_FishingMonsInfo:: @ 8551C88 @@ -2037,18 +2037,18 @@ gSeafloorCavern_Room7_FishingMonsInfo:: @ 8551C88 .align 2 gSeafloorCavern_Room8_LandMons:: @ 8551C90 - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 28 - wild_mon ZUBAT, 29 - wild_mon ZUBAT, 34 - wild_mon ZUBAT, 35 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 + wild_mon SPECIES_ZUBAT, 30 + wild_mon SPECIES_ZUBAT, 31 + wild_mon SPECIES_ZUBAT, 32 + wild_mon SPECIES_ZUBAT, 33 + wild_mon SPECIES_ZUBAT, 28 + wild_mon SPECIES_ZUBAT, 29 + wild_mon SPECIES_ZUBAT, 34 + wild_mon SPECIES_ZUBAT, 35 + wild_mon SPECIES_GOLBAT, 34 + wild_mon SPECIES_GOLBAT, 35 + wild_mon SPECIES_GOLBAT, 33 + wild_mon SPECIES_GOLBAT, 36 .align 2 gSeafloorCavern_Room8_LandMonsInfo:: @ 8551CC0 @@ -2057,11 +2057,11 @@ gSeafloorCavern_Room8_LandMonsInfo:: @ 8551CC0 .align 2 gSeafloorCavern_Entrance_WaterMons:: @ 8551CC8 - wild_mon TENTACOOL, 5, 35 - wild_mon ZUBAT, 5, 35 - wild_mon ZUBAT, 30, 35 - wild_mon GOLBAT, 30, 35 - wild_mon GOLBAT, 30, 35 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_ZUBAT, 5, 35 + wild_mon SPECIES_ZUBAT, 30, 35 + wild_mon SPECIES_GOLBAT, 30, 35 + wild_mon SPECIES_GOLBAT, 30, 35 .align 2 gSeafloorCavern_Entrance_WaterMonsInfo:: @ 8551CDC @@ -2070,16 +2070,16 @@ gSeafloorCavern_Entrance_WaterMonsInfo:: @ 8551CDC .align 2 gSeafloorCavern_Entrance_FishingMons:: @ 8551CE4 - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_WAILMER, 25, 30 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_WAILMER, 20, 25 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gSeafloorCavern_Entrance_FishingMonsInfo:: @ 8551D0C @@ -2088,18 +2088,18 @@ gSeafloorCavern_Entrance_FishingMonsInfo:: @ 8551D0C .align 2 gCaveOfOrigin_Entrance_LandMons:: @ 8551D14 - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 28 - wild_mon ZUBAT, 29 - wild_mon ZUBAT, 34 - wild_mon ZUBAT, 35 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 + wild_mon SPECIES_ZUBAT, 30 + wild_mon SPECIES_ZUBAT, 31 + wild_mon SPECIES_ZUBAT, 32 + wild_mon SPECIES_ZUBAT, 33 + wild_mon SPECIES_ZUBAT, 28 + wild_mon SPECIES_ZUBAT, 29 + wild_mon SPECIES_ZUBAT, 34 + wild_mon SPECIES_ZUBAT, 35 + wild_mon SPECIES_GOLBAT, 34 + wild_mon SPECIES_GOLBAT, 35 + wild_mon SPECIES_GOLBAT, 33 + wild_mon SPECIES_GOLBAT, 36 .align 2 gCaveOfOrigin_Entrance_LandMonsInfo:: @ 8551D44 @@ -2108,18 +2108,18 @@ gCaveOfOrigin_Entrance_LandMonsInfo:: @ 8551D44 .align 2 gCaveOfOrigin_1F_LandMons:: @ 8551D4C - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon SABLEYE, 30 - wild_mon SABLEYE, 32 - wild_mon SABLEYE, 34 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 34 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 + wild_mon SPECIES_ZUBAT, 30 + wild_mon SPECIES_ZUBAT, 31 + wild_mon SPECIES_ZUBAT, 32 + wild_mon SPECIES_SABLEYE, 30 + wild_mon SPECIES_SABLEYE, 32 + wild_mon SPECIES_SABLEYE, 34 + wild_mon SPECIES_ZUBAT, 33 + wild_mon SPECIES_ZUBAT, 34 + wild_mon SPECIES_GOLBAT, 34 + wild_mon SPECIES_GOLBAT, 35 + wild_mon SPECIES_GOLBAT, 33 + wild_mon SPECIES_GOLBAT, 36 .align 2 gCaveOfOrigin_1F_LandMonsInfo:: @ 8551D7C @@ -2128,18 +2128,18 @@ gCaveOfOrigin_1F_LandMonsInfo:: @ 8551D7C .align 2 gCaveOfOrigin_UnusedRubySapphireMap1_LandMons:: @ 8551D84 - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon SABLEYE, 30 - wild_mon SABLEYE, 32 - wild_mon SABLEYE, 34 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 34 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 + wild_mon SPECIES_ZUBAT, 30 + wild_mon SPECIES_ZUBAT, 31 + wild_mon SPECIES_ZUBAT, 32 + wild_mon SPECIES_SABLEYE, 30 + wild_mon SPECIES_SABLEYE, 32 + wild_mon SPECIES_SABLEYE, 34 + wild_mon SPECIES_ZUBAT, 33 + wild_mon SPECIES_ZUBAT, 34 + wild_mon SPECIES_GOLBAT, 34 + wild_mon SPECIES_GOLBAT, 35 + wild_mon SPECIES_GOLBAT, 33 + wild_mon SPECIES_GOLBAT, 36 .align 2 gCaveOfOrigin_UnusedRubySapphireMap1_LandMonsInfo:: @ 8551DB4 @@ -2148,18 +2148,18 @@ gCaveOfOrigin_UnusedRubySapphireMap1_LandMonsInfo:: @ 8551DB4 .align 2 gCaveOfOrigin_UnusedRubySapphireMap2_LandMons:: @ 8551DBC - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon SABLEYE, 30 - wild_mon SABLEYE, 32 - wild_mon SABLEYE, 34 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 34 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 + wild_mon SPECIES_ZUBAT, 30 + wild_mon SPECIES_ZUBAT, 31 + wild_mon SPECIES_ZUBAT, 32 + wild_mon SPECIES_SABLEYE, 30 + wild_mon SPECIES_SABLEYE, 32 + wild_mon SPECIES_SABLEYE, 34 + wild_mon SPECIES_ZUBAT, 33 + wild_mon SPECIES_ZUBAT, 34 + wild_mon SPECIES_GOLBAT, 34 + wild_mon SPECIES_GOLBAT, 35 + wild_mon SPECIES_GOLBAT, 33 + wild_mon SPECIES_GOLBAT, 36 .align 2 gCaveOfOrigin_UnusedRubySapphireMap2_LandMonsInfo:: @ 8551DEC @@ -2168,18 +2168,18 @@ gCaveOfOrigin_UnusedRubySapphireMap2_LandMonsInfo:: @ 8551DEC .align 2 gCaveOfOrigin_UnusedRubySapphireMap3_LandMons:: @ 8551DF4 - wild_mon ZUBAT, 30 - wild_mon ZUBAT, 31 - wild_mon ZUBAT, 32 - wild_mon SABLEYE, 30 - wild_mon SABLEYE, 32 - wild_mon SABLEYE, 34 - wild_mon ZUBAT, 33 - wild_mon ZUBAT, 34 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 36 + wild_mon SPECIES_ZUBAT, 30 + wild_mon SPECIES_ZUBAT, 31 + wild_mon SPECIES_ZUBAT, 32 + wild_mon SPECIES_SABLEYE, 30 + wild_mon SPECIES_SABLEYE, 32 + wild_mon SPECIES_SABLEYE, 34 + wild_mon SPECIES_ZUBAT, 33 + wild_mon SPECIES_ZUBAT, 34 + wild_mon SPECIES_GOLBAT, 34 + wild_mon SPECIES_GOLBAT, 35 + wild_mon SPECIES_GOLBAT, 33 + wild_mon SPECIES_GOLBAT, 36 .align 2 gCaveOfOrigin_UnusedRubySapphireMap3_LandMonsInfo:: @ 8551E24 @@ -2188,18 +2188,18 @@ gCaveOfOrigin_UnusedRubySapphireMap3_LandMonsInfo:: @ 8551E24 .align 2 gNewMauville_Entrance_LandMons:: @ 8551E2C - wild_mon VOLTORB, 24 - wild_mon MAGNEMITE, 24 - wild_mon VOLTORB, 25 - wild_mon MAGNEMITE, 25 - wild_mon VOLTORB, 23 - wild_mon MAGNEMITE, 23 - wild_mon VOLTORB, 26 - wild_mon MAGNEMITE, 26 - wild_mon VOLTORB, 22 - wild_mon MAGNEMITE, 22 - wild_mon VOLTORB, 22 - wild_mon MAGNEMITE, 22 + wild_mon SPECIES_VOLTORB, 24 + wild_mon SPECIES_MAGNEMITE, 24 + wild_mon SPECIES_VOLTORB, 25 + wild_mon SPECIES_MAGNEMITE, 25 + wild_mon SPECIES_VOLTORB, 23 + wild_mon SPECIES_MAGNEMITE, 23 + wild_mon SPECIES_VOLTORB, 26 + wild_mon SPECIES_MAGNEMITE, 26 + wild_mon SPECIES_VOLTORB, 22 + wild_mon SPECIES_MAGNEMITE, 22 + wild_mon SPECIES_VOLTORB, 22 + wild_mon SPECIES_MAGNEMITE, 22 .align 2 gNewMauville_Entrance_LandMonsInfo:: @ 8551E5C @@ -2208,18 +2208,18 @@ gNewMauville_Entrance_LandMonsInfo:: @ 8551E5C .align 2 gSafariZone_Southwest_LandMons:: @ 8551E64 - wild_mon ODDISH, 25 - wild_mon ODDISH, 27 - wild_mon GIRAFARIG, 25 - wild_mon GIRAFARIG, 27 - wild_mon NATU, 25 - wild_mon DODUO, 27 - wild_mon GLOOM, 25 - wild_mon WOBBUFFET, 27 - wild_mon PIKACHU, 25 - wild_mon WOBBUFFET, 27 - wild_mon PIKACHU, 27 - wild_mon WOBBUFFET, 29 + wild_mon SPECIES_ODDISH, 25 + wild_mon SPECIES_ODDISH, 27 + wild_mon SPECIES_GIRAFARIG, 25 + wild_mon SPECIES_GIRAFARIG, 27 + wild_mon SPECIES_NATU, 25 + wild_mon SPECIES_DODUO, 27 + wild_mon SPECIES_GLOOM, 25 + wild_mon SPECIES_WOBBUFFET, 27 + wild_mon SPECIES_PIKACHU, 25 + wild_mon SPECIES_WOBBUFFET, 27 + wild_mon SPECIES_PIKACHU, 27 + wild_mon SPECIES_WOBBUFFET, 29 .align 2 gSafariZone_Southwest_LandMonsInfo:: @ 8551E94 @@ -2228,11 +2228,11 @@ gSafariZone_Southwest_LandMonsInfo:: @ 8551E94 .align 2 gSafariZone_Southwest_WaterMons:: @ 8551E9C - wild_mon PSYDUCK, 20, 30 - wild_mon PSYDUCK, 20, 30 - wild_mon PSYDUCK, 30, 35 - wild_mon PSYDUCK, 30, 35 - wild_mon PSYDUCK, 30, 35 + wild_mon SPECIES_PSYDUCK, 20, 30 + wild_mon SPECIES_PSYDUCK, 20, 30 + wild_mon SPECIES_PSYDUCK, 30, 35 + wild_mon SPECIES_PSYDUCK, 30, 35 + wild_mon SPECIES_PSYDUCK, 30, 35 .align 2 gSafariZone_Southwest_WaterMonsInfo:: @ 8551EB0 @@ -2241,16 +2241,16 @@ gSafariZone_Southwest_WaterMonsInfo:: @ 8551EB0 .align 2 gSafariZone_Southwest_FishingMons:: @ 8551EB8 - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 25 - wild_mon GOLDEEN, 10, 30 - wild_mon GOLDEEN, 25, 30 - wild_mon GOLDEEN, 30, 35 - wild_mon SEAKING, 30, 35 - wild_mon SEAKING, 35, 40 - wild_mon SEAKING, 25, 30 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_GOLDEEN, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_GOLDEEN, 10, 25 + wild_mon SPECIES_GOLDEEN, 10, 30 + wild_mon SPECIES_GOLDEEN, 25, 30 + wild_mon SPECIES_GOLDEEN, 30, 35 + wild_mon SPECIES_SEAKING, 30, 35 + wild_mon SPECIES_SEAKING, 35, 40 + wild_mon SPECIES_SEAKING, 25, 30 .align 2 gSafariZone_Southwest_FishingMonsInfo:: @ 8551EE0 @@ -2259,18 +2259,18 @@ gSafariZone_Southwest_FishingMonsInfo:: @ 8551EE0 .align 2 gSafariZone_North_LandMons:: @ 8551EE8 - wild_mon PHANPY, 27 - wild_mon ODDISH, 27 - wild_mon PHANPY, 29 - wild_mon ODDISH, 29 - wild_mon NATU, 27 - wild_mon GLOOM, 29 - wild_mon GLOOM, 31 - wild_mon NATU, 29 - wild_mon XATU, 29 - wild_mon HERACROSS, 27 - wild_mon XATU, 31 - wild_mon HERACROSS, 29 + wild_mon SPECIES_PHANPY, 27 + wild_mon SPECIES_ODDISH, 27 + wild_mon SPECIES_PHANPY, 29 + wild_mon SPECIES_ODDISH, 29 + wild_mon SPECIES_NATU, 27 + wild_mon SPECIES_GLOOM, 29 + wild_mon SPECIES_GLOOM, 31 + wild_mon SPECIES_NATU, 29 + wild_mon SPECIES_XATU, 29 + wild_mon SPECIES_HERACROSS, 27 + wild_mon SPECIES_XATU, 31 + wild_mon SPECIES_HERACROSS, 29 .align 2 gSafariZone_North_LandMonsInfo:: @ 8551F18 @@ -2279,11 +2279,11 @@ gSafariZone_North_LandMonsInfo:: @ 8551F18 .align 2 gSafariZone_North_RockSmashMons:: @ 8551F20 - wild_mon GEODUDE, 10, 15 - wild_mon GEODUDE, 5, 10 - wild_mon GEODUDE, 15, 20 - wild_mon GEODUDE, 20, 25 - wild_mon GEODUDE, 25, 30 + wild_mon SPECIES_GEODUDE, 10, 15 + wild_mon SPECIES_GEODUDE, 5, 10 + wild_mon SPECIES_GEODUDE, 15, 20 + wild_mon SPECIES_GEODUDE, 20, 25 + wild_mon SPECIES_GEODUDE, 25, 30 .align 2 gSafariZone_North_RockSmashMonsInfo:: @ 8551F34 @@ -2292,18 +2292,18 @@ gSafariZone_North_RockSmashMonsInfo:: @ 8551F34 .align 2 gSafariZone_Northwest_LandMons:: @ 8551F3C - wild_mon RHYHORN, 27 - wild_mon ODDISH, 27 - wild_mon RHYHORN, 29 - wild_mon ODDISH, 29 - wild_mon DODUO, 27 - wild_mon GLOOM, 29 - wild_mon GLOOM, 31 - wild_mon DODUO, 29 - wild_mon DODRIO, 29 - wild_mon PINSIR, 27 - wild_mon DODRIO, 31 - wild_mon PINSIR, 29 + wild_mon SPECIES_RHYHORN, 27 + wild_mon SPECIES_ODDISH, 27 + wild_mon SPECIES_RHYHORN, 29 + wild_mon SPECIES_ODDISH, 29 + wild_mon SPECIES_DODUO, 27 + wild_mon SPECIES_GLOOM, 29 + wild_mon SPECIES_GLOOM, 31 + wild_mon SPECIES_DODUO, 29 + wild_mon SPECIES_DODRIO, 29 + wild_mon SPECIES_PINSIR, 27 + wild_mon SPECIES_DODRIO, 31 + wild_mon SPECIES_PINSIR, 29 .align 2 gSafariZone_Northwest_LandMonsInfo:: @ 8551F6C @@ -2312,11 +2312,11 @@ gSafariZone_Northwest_LandMonsInfo:: @ 8551F6C .align 2 gSafariZone_Northwest_WaterMons:: @ 8551F74 - wild_mon PSYDUCK, 20, 30 - wild_mon PSYDUCK, 20, 30 - wild_mon PSYDUCK, 30, 35 - wild_mon GOLDUCK, 30, 35 - wild_mon GOLDUCK, 25, 40 + wild_mon SPECIES_PSYDUCK, 20, 30 + wild_mon SPECIES_PSYDUCK, 20, 30 + wild_mon SPECIES_PSYDUCK, 30, 35 + wild_mon SPECIES_GOLDUCK, 30, 35 + wild_mon SPECIES_GOLDUCK, 25, 40 .align 2 gSafariZone_Northwest_WaterMonsInfo:: @ 8551F88 @@ -2325,16 +2325,16 @@ gSafariZone_Northwest_WaterMonsInfo:: @ 8551F88 .align 2 gSafariZone_Northwest_FishingMons:: @ 8551F90 - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 25 - wild_mon GOLDEEN, 10, 30 - wild_mon GOLDEEN, 25, 30 - wild_mon GOLDEEN, 30, 35 - wild_mon SEAKING, 30, 35 - wild_mon SEAKING, 35, 40 - wild_mon SEAKING, 25, 30 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_GOLDEEN, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_GOLDEEN, 10, 25 + wild_mon SPECIES_GOLDEEN, 10, 30 + wild_mon SPECIES_GOLDEEN, 25, 30 + wild_mon SPECIES_GOLDEEN, 30, 35 + wild_mon SPECIES_SEAKING, 30, 35 + wild_mon SPECIES_SEAKING, 35, 40 + wild_mon SPECIES_SEAKING, 25, 30 .align 2 gSafariZone_Northwest_FishingMonsInfo:: @ 8551FB8 @@ -2343,18 +2343,18 @@ gSafariZone_Northwest_FishingMonsInfo:: @ 8551FB8 .align 2 gVictoryRoad_B1F_LandMons:: @ 8551FC0 - wild_mon GOLBAT, 40 - wild_mon HARIYAMA, 40 - wild_mon LAIRON, 40 - wild_mon LAIRON, 40 - wild_mon GOLBAT, 38 - wild_mon HARIYAMA, 38 - wild_mon GOLBAT, 42 - wild_mon HARIYAMA, 42 - wild_mon LAIRON, 42 - wild_mon MAWILE, 38 - wild_mon LAIRON, 42 - wild_mon MAWILE, 38 + wild_mon SPECIES_GOLBAT, 40 + wild_mon SPECIES_HARIYAMA, 40 + wild_mon SPECIES_LAIRON, 40 + wild_mon SPECIES_LAIRON, 40 + wild_mon SPECIES_GOLBAT, 38 + wild_mon SPECIES_HARIYAMA, 38 + wild_mon SPECIES_GOLBAT, 42 + wild_mon SPECIES_HARIYAMA, 42 + wild_mon SPECIES_LAIRON, 42 + wild_mon SPECIES_MAWILE, 38 + wild_mon SPECIES_LAIRON, 42 + wild_mon SPECIES_MAWILE, 38 .align 2 gVictoryRoad_B1F_LandMonsInfo:: @ 8551FF0 @@ -2363,11 +2363,11 @@ gVictoryRoad_B1F_LandMonsInfo:: @ 8551FF0 .align 2 gVictoryRoad_B1F_RockSmashMons:: @ 8551FF8 - wild_mon GRAVELER, 30, 40 - wild_mon GEODUDE, 30, 40 - wild_mon GRAVELER, 35, 40 - wild_mon GRAVELER, 35, 40 - wild_mon GRAVELER, 35, 40 + wild_mon SPECIES_GRAVELER, 30, 40 + wild_mon SPECIES_GEODUDE, 30, 40 + wild_mon SPECIES_GRAVELER, 35, 40 + wild_mon SPECIES_GRAVELER, 35, 40 + wild_mon SPECIES_GRAVELER, 35, 40 .align 2 gVictoryRoad_B1F_RockSmashMonsInfo:: @ 855200C @@ -2376,18 +2376,18 @@ gVictoryRoad_B1F_RockSmashMonsInfo:: @ 855200C .align 2 gVictoryRoad_B2F_LandMons:: @ 8552014 - wild_mon GOLBAT, 40 - wild_mon SABLEYE, 40 - wild_mon LAIRON, 40 - wild_mon LAIRON, 40 - wild_mon GOLBAT, 42 - wild_mon SABLEYE, 42 - wild_mon GOLBAT, 44 - wild_mon SABLEYE, 44 - wild_mon LAIRON, 42 - wild_mon MAWILE, 42 - wild_mon LAIRON, 44 - wild_mon MAWILE, 44 + wild_mon SPECIES_GOLBAT, 40 + wild_mon SPECIES_SABLEYE, 40 + wild_mon SPECIES_LAIRON, 40 + wild_mon SPECIES_LAIRON, 40 + wild_mon SPECIES_GOLBAT, 42 + wild_mon SPECIES_SABLEYE, 42 + wild_mon SPECIES_GOLBAT, 44 + wild_mon SPECIES_SABLEYE, 44 + wild_mon SPECIES_LAIRON, 42 + wild_mon SPECIES_MAWILE, 42 + wild_mon SPECIES_LAIRON, 44 + wild_mon SPECIES_MAWILE, 44 .align 2 gVictoryRoad_B2F_LandMonsInfo:: @ 8552044 @@ -2396,11 +2396,11 @@ gVictoryRoad_B2F_LandMonsInfo:: @ 8552044 .align 2 gVictoryRoad_B2F_WaterMons:: @ 855204C - wild_mon GOLBAT, 30, 35 - wild_mon GOLBAT, 25, 30 - wild_mon GOLBAT, 35, 40 - wild_mon GOLBAT, 35, 40 - wild_mon GOLBAT, 35, 40 + wild_mon SPECIES_GOLBAT, 30, 35 + wild_mon SPECIES_GOLBAT, 25, 30 + wild_mon SPECIES_GOLBAT, 35, 40 + wild_mon SPECIES_GOLBAT, 35, 40 + wild_mon SPECIES_GOLBAT, 35, 40 .align 2 gVictoryRoad_B2F_WaterMonsInfo:: @ 8552060 @@ -2409,16 +2409,16 @@ gVictoryRoad_B2F_WaterMonsInfo:: @ 8552060 .align 2 gVictoryRoad_B2F_FishingMons:: @ 8552068 - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon BARBOACH, 10, 30 - wild_mon BARBOACH, 25, 30 - wild_mon BARBOACH, 30, 35 - wild_mon WHISCASH, 30, 35 - wild_mon WHISCASH, 35, 40 - wild_mon WHISCASH, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_GOLDEEN, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_GOLDEEN, 10, 30 + wild_mon SPECIES_BARBOACH, 10, 30 + wild_mon SPECIES_BARBOACH, 25, 30 + wild_mon SPECIES_BARBOACH, 30, 35 + wild_mon SPECIES_WHISCASH, 30, 35 + wild_mon SPECIES_WHISCASH, 35, 40 + wild_mon SPECIES_WHISCASH, 40, 45 .align 2 gVictoryRoad_B2F_FishingMonsInfo:: @ 8552090 @@ -2427,18 +2427,18 @@ gVictoryRoad_B2F_FishingMonsInfo:: @ 8552090 .align 2 gMeteorFalls_1F_1R_LandMons:: @ 8552098 - wild_mon ZUBAT, 16 - wild_mon ZUBAT, 17 - wild_mon ZUBAT, 18 - wild_mon ZUBAT, 15 - wild_mon ZUBAT, 14 - wild_mon SOLROCK, 16 - wild_mon SOLROCK, 18 - wild_mon SOLROCK, 14 - wild_mon ZUBAT, 19 - wild_mon ZUBAT, 20 - wild_mon ZUBAT, 19 - wild_mon ZUBAT, 20 + wild_mon SPECIES_ZUBAT, 16 + wild_mon SPECIES_ZUBAT, 17 + wild_mon SPECIES_ZUBAT, 18 + wild_mon SPECIES_ZUBAT, 15 + wild_mon SPECIES_ZUBAT, 14 + wild_mon SPECIES_SOLROCK, 16 + wild_mon SPECIES_SOLROCK, 18 + wild_mon SPECIES_SOLROCK, 14 + wild_mon SPECIES_ZUBAT, 19 + wild_mon SPECIES_ZUBAT, 20 + wild_mon SPECIES_ZUBAT, 19 + wild_mon SPECIES_ZUBAT, 20 .align 2 gMeteorFalls_1F_1R_LandMonsInfo:: @ 85520C8 @@ -2447,11 +2447,11 @@ gMeteorFalls_1F_1R_LandMonsInfo:: @ 85520C8 .align 2 gMeteorFalls_1F_1R_WaterMons:: @ 85520D0 - wild_mon ZUBAT, 5, 35 - wild_mon ZUBAT, 30, 35 - wild_mon SOLROCK, 25, 35 - wild_mon SOLROCK, 15, 25 - wild_mon SOLROCK, 5, 15 + wild_mon SPECIES_ZUBAT, 5, 35 + wild_mon SPECIES_ZUBAT, 30, 35 + wild_mon SPECIES_SOLROCK, 25, 35 + wild_mon SPECIES_SOLROCK, 15, 25 + wild_mon SPECIES_SOLROCK, 5, 15 .align 2 gMeteorFalls_1F_1R_WaterMonsInfo:: @ 85520E4 @@ -2460,16 +2460,16 @@ gMeteorFalls_1F_1R_WaterMonsInfo:: @ 85520E4 .align 2 gMeteorFalls_1F_1R_FishingMons:: @ 85520EC - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon BARBOACH, 10, 30 - wild_mon BARBOACH, 25, 30 - wild_mon BARBOACH, 30, 35 - wild_mon BARBOACH, 20, 25 - wild_mon BARBOACH, 35, 40 - wild_mon BARBOACH, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_GOLDEEN, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_GOLDEEN, 10, 30 + wild_mon SPECIES_BARBOACH, 10, 30 + wild_mon SPECIES_BARBOACH, 25, 30 + wild_mon SPECIES_BARBOACH, 30, 35 + wild_mon SPECIES_BARBOACH, 20, 25 + wild_mon SPECIES_BARBOACH, 35, 40 + wild_mon SPECIES_BARBOACH, 40, 45 .align 2 gMeteorFalls_1F_1R_FishingMonsInfo:: @ 8552114 @@ -2478,18 +2478,18 @@ gMeteorFalls_1F_1R_FishingMonsInfo:: @ 8552114 .align 2 gMeteorFalls_1F_2R_LandMons:: @ 855211C - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon SOLROCK, 35 - wild_mon SOLROCK, 33 - wild_mon SOLROCK, 37 - wild_mon GOLBAT, 35 - wild_mon SOLROCK, 39 - wild_mon GOLBAT, 38 - wild_mon GOLBAT, 40 - wild_mon GOLBAT, 38 - wild_mon GOLBAT, 40 + wild_mon SPECIES_GOLBAT, 33 + wild_mon SPECIES_GOLBAT, 35 + wild_mon SPECIES_GOLBAT, 33 + wild_mon SPECIES_SOLROCK, 35 + wild_mon SPECIES_SOLROCK, 33 + wild_mon SPECIES_SOLROCK, 37 + wild_mon SPECIES_GOLBAT, 35 + wild_mon SPECIES_SOLROCK, 39 + wild_mon SPECIES_GOLBAT, 38 + wild_mon SPECIES_GOLBAT, 40 + wild_mon SPECIES_GOLBAT, 38 + wild_mon SPECIES_GOLBAT, 40 .align 2 gMeteorFalls_1F_2R_LandMonsInfo:: @ 855214C @@ -2498,11 +2498,11 @@ gMeteorFalls_1F_2R_LandMonsInfo:: @ 855214C .align 2 gMeteorFalls_1F_2R_WaterMons:: @ 8552154 - wild_mon GOLBAT, 30, 35 - wild_mon GOLBAT, 30, 35 - wild_mon SOLROCK, 25, 35 - wild_mon SOLROCK, 15, 25 - wild_mon SOLROCK, 5, 15 + wild_mon SPECIES_GOLBAT, 30, 35 + wild_mon SPECIES_GOLBAT, 30, 35 + wild_mon SPECIES_SOLROCK, 25, 35 + wild_mon SPECIES_SOLROCK, 15, 25 + wild_mon SPECIES_SOLROCK, 5, 15 .align 2 gMeteorFalls_1F_2R_WaterMonsInfo:: @ 8552168 @@ -2511,16 +2511,16 @@ gMeteorFalls_1F_2R_WaterMonsInfo:: @ 8552168 .align 2 gMeteorFalls_1F_2R_FishingMons:: @ 8552170 - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon BARBOACH, 10, 30 - wild_mon BARBOACH, 25, 30 - wild_mon BARBOACH, 30, 35 - wild_mon WHISCASH, 30, 35 - wild_mon WHISCASH, 35, 40 - wild_mon WHISCASH, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_GOLDEEN, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_GOLDEEN, 10, 30 + wild_mon SPECIES_BARBOACH, 10, 30 + wild_mon SPECIES_BARBOACH, 25, 30 + wild_mon SPECIES_BARBOACH, 30, 35 + wild_mon SPECIES_WHISCASH, 30, 35 + wild_mon SPECIES_WHISCASH, 35, 40 + wild_mon SPECIES_WHISCASH, 40, 45 .align 2 gMeteorFalls_1F_2R_FishingMonsInfo:: @ 8552198 @@ -2529,18 +2529,18 @@ gMeteorFalls_1F_2R_FishingMonsInfo:: @ 8552198 .align 2 gMeteorFalls_B1F_1R_LandMons:: @ 85521A0 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon SOLROCK, 35 - wild_mon SOLROCK, 33 - wild_mon SOLROCK, 37 - wild_mon GOLBAT, 35 - wild_mon SOLROCK, 39 - wild_mon GOLBAT, 38 - wild_mon GOLBAT, 40 - wild_mon GOLBAT, 38 - wild_mon GOLBAT, 40 + wild_mon SPECIES_GOLBAT, 33 + wild_mon SPECIES_GOLBAT, 35 + wild_mon SPECIES_GOLBAT, 33 + wild_mon SPECIES_SOLROCK, 35 + wild_mon SPECIES_SOLROCK, 33 + wild_mon SPECIES_SOLROCK, 37 + wild_mon SPECIES_GOLBAT, 35 + wild_mon SPECIES_SOLROCK, 39 + wild_mon SPECIES_GOLBAT, 38 + wild_mon SPECIES_GOLBAT, 40 + wild_mon SPECIES_GOLBAT, 38 + wild_mon SPECIES_GOLBAT, 40 .align 2 gMeteorFalls_B1F_1R_LandMonsInfo:: @ 85521D0 @@ -2549,11 +2549,11 @@ gMeteorFalls_B1F_1R_LandMonsInfo:: @ 85521D0 .align 2 gMeteorFalls_B1F_1R_WaterMons:: @ 85521D8 - wild_mon GOLBAT, 30, 35 - wild_mon GOLBAT, 30, 35 - wild_mon SOLROCK, 25, 35 - wild_mon SOLROCK, 15, 25 - wild_mon SOLROCK, 5, 15 + wild_mon SPECIES_GOLBAT, 30, 35 + wild_mon SPECIES_GOLBAT, 30, 35 + wild_mon SPECIES_SOLROCK, 25, 35 + wild_mon SPECIES_SOLROCK, 15, 25 + wild_mon SPECIES_SOLROCK, 5, 15 .align 2 gMeteorFalls_B1F_1R_WaterMonsInfo:: @ 85521EC @@ -2562,16 +2562,16 @@ gMeteorFalls_B1F_1R_WaterMonsInfo:: @ 85521EC .align 2 gMeteorFalls_B1F_1R_FishingMons:: @ 85521F4 - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon BARBOACH, 10, 30 - wild_mon BARBOACH, 25, 30 - wild_mon BARBOACH, 30, 35 - wild_mon WHISCASH, 30, 35 - wild_mon WHISCASH, 35, 40 - wild_mon WHISCASH, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_GOLDEEN, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_GOLDEEN, 10, 30 + wild_mon SPECIES_BARBOACH, 10, 30 + wild_mon SPECIES_BARBOACH, 25, 30 + wild_mon SPECIES_BARBOACH, 30, 35 + wild_mon SPECIES_WHISCASH, 30, 35 + wild_mon SPECIES_WHISCASH, 35, 40 + wild_mon SPECIES_WHISCASH, 40, 45 .align 2 gMeteorFalls_B1F_1R_FishingMonsInfo:: @ 855221C @@ -2580,18 +2580,18 @@ gMeteorFalls_B1F_1R_FishingMonsInfo:: @ 855221C .align 2 gShoalCave_LowTideStairsRoom_LandMons:: @ 8552224 - wild_mon ZUBAT, 26 - wild_mon SPHEAL, 26 - wild_mon ZUBAT, 28 - wild_mon SPHEAL, 28 - wild_mon ZUBAT, 30 - wild_mon SPHEAL, 30 - wild_mon ZUBAT, 32 - wild_mon SPHEAL, 32 - wild_mon GOLBAT, 32 - wild_mon SPHEAL, 32 - wild_mon GOLBAT, 32 - wild_mon SPHEAL, 32 + wild_mon SPECIES_ZUBAT, 26 + wild_mon SPECIES_SPHEAL, 26 + wild_mon SPECIES_ZUBAT, 28 + wild_mon SPECIES_SPHEAL, 28 + wild_mon SPECIES_ZUBAT, 30 + wild_mon SPECIES_SPHEAL, 30 + wild_mon SPECIES_ZUBAT, 32 + wild_mon SPECIES_SPHEAL, 32 + wild_mon SPECIES_GOLBAT, 32 + wild_mon SPECIES_SPHEAL, 32 + wild_mon SPECIES_GOLBAT, 32 + wild_mon SPECIES_SPHEAL, 32 .align 2 gShoalCave_LowTideStairsRoom_LandMonsInfo:: @ 8552254 @@ -2600,18 +2600,18 @@ gShoalCave_LowTideStairsRoom_LandMonsInfo:: @ 8552254 .align 2 gShoalCave_LowTideLowerRoom_LandMons:: @ 855225C - wild_mon ZUBAT, 26 - wild_mon SPHEAL, 26 - wild_mon ZUBAT, 28 - wild_mon SPHEAL, 28 - wild_mon ZUBAT, 30 - wild_mon SPHEAL, 30 - wild_mon ZUBAT, 32 - wild_mon SPHEAL, 32 - wild_mon GOLBAT, 32 - wild_mon SPHEAL, 32 - wild_mon GOLBAT, 32 - wild_mon SPHEAL, 32 + wild_mon SPECIES_ZUBAT, 26 + wild_mon SPECIES_SPHEAL, 26 + wild_mon SPECIES_ZUBAT, 28 + wild_mon SPECIES_SPHEAL, 28 + wild_mon SPECIES_ZUBAT, 30 + wild_mon SPECIES_SPHEAL, 30 + wild_mon SPECIES_ZUBAT, 32 + wild_mon SPECIES_SPHEAL, 32 + wild_mon SPECIES_GOLBAT, 32 + wild_mon SPECIES_SPHEAL, 32 + wild_mon SPECIES_GOLBAT, 32 + wild_mon SPECIES_SPHEAL, 32 .align 2 gShoalCave_LowTideLowerRoom_LandMonsInfo:: @ 855228C @@ -2620,18 +2620,18 @@ gShoalCave_LowTideLowerRoom_LandMonsInfo:: @ 855228C .align 2 gShoalCave_LowTideInnerRoom_LandMons:: @ 8552294 - wild_mon ZUBAT, 26 - wild_mon SPHEAL, 26 - wild_mon ZUBAT, 28 - wild_mon SPHEAL, 28 - wild_mon ZUBAT, 30 - wild_mon SPHEAL, 30 - wild_mon ZUBAT, 32 - wild_mon SPHEAL, 32 - wild_mon GOLBAT, 32 - wild_mon SPHEAL, 32 - wild_mon GOLBAT, 32 - wild_mon SPHEAL, 32 + wild_mon SPECIES_ZUBAT, 26 + wild_mon SPECIES_SPHEAL, 26 + wild_mon SPECIES_ZUBAT, 28 + wild_mon SPECIES_SPHEAL, 28 + wild_mon SPECIES_ZUBAT, 30 + wild_mon SPECIES_SPHEAL, 30 + wild_mon SPECIES_ZUBAT, 32 + wild_mon SPECIES_SPHEAL, 32 + wild_mon SPECIES_GOLBAT, 32 + wild_mon SPECIES_SPHEAL, 32 + wild_mon SPECIES_GOLBAT, 32 + wild_mon SPECIES_SPHEAL, 32 .align 2 gShoalCave_LowTideInnerRoom_LandMonsInfo:: @ 85522C4 @@ -2640,11 +2640,11 @@ gShoalCave_LowTideInnerRoom_LandMonsInfo:: @ 85522C4 .align 2 gShoalCave_LowTideInnerRoom_WaterMons:: @ 85522CC - wild_mon TENTACOOL, 5, 35 - wild_mon ZUBAT, 5, 35 - wild_mon SPHEAL, 25, 30 - wild_mon SPHEAL, 25, 30 - wild_mon SPHEAL, 25, 35 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_ZUBAT, 5, 35 + wild_mon SPECIES_SPHEAL, 25, 30 + wild_mon SPECIES_SPHEAL, 25, 30 + wild_mon SPECIES_SPHEAL, 25, 35 .align 2 gShoalCave_LowTideInnerRoom_WaterMonsInfo:: @ 85522E0 @@ -2653,16 +2653,16 @@ gShoalCave_LowTideInnerRoom_WaterMonsInfo:: @ 85522E0 .align 2 gShoalCave_LowTideInnerRoom_FishingMons:: @ 85522E8 - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_WAILMER, 25, 30 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_WAILMER, 20, 25 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gShoalCave_LowTideInnerRoom_FishingMonsInfo:: @ 8552310 @@ -2671,18 +2671,18 @@ gShoalCave_LowTideInnerRoom_FishingMonsInfo:: @ 8552310 .align 2 gShoalCave_LowTideEntranceRoom_LandMons:: @ 8552318 - wild_mon ZUBAT, 26 - wild_mon SPHEAL, 26 - wild_mon ZUBAT, 28 - wild_mon SPHEAL, 28 - wild_mon ZUBAT, 30 - wild_mon SPHEAL, 30 - wild_mon ZUBAT, 32 - wild_mon SPHEAL, 32 - wild_mon GOLBAT, 32 - wild_mon SPHEAL, 32 - wild_mon GOLBAT, 32 - wild_mon SPHEAL, 32 + wild_mon SPECIES_ZUBAT, 26 + wild_mon SPECIES_SPHEAL, 26 + wild_mon SPECIES_ZUBAT, 28 + wild_mon SPECIES_SPHEAL, 28 + wild_mon SPECIES_ZUBAT, 30 + wild_mon SPECIES_SPHEAL, 30 + wild_mon SPECIES_ZUBAT, 32 + wild_mon SPECIES_SPHEAL, 32 + wild_mon SPECIES_GOLBAT, 32 + wild_mon SPECIES_SPHEAL, 32 + wild_mon SPECIES_GOLBAT, 32 + wild_mon SPECIES_SPHEAL, 32 .align 2 gShoalCave_LowTideEntranceRoom_LandMonsInfo:: @ 8552348 @@ -2691,11 +2691,11 @@ gShoalCave_LowTideEntranceRoom_LandMonsInfo:: @ 8552348 .align 2 gShoalCave_LowTideEntranceRoom_WaterMons:: @ 8552350 - wild_mon TENTACOOL, 5, 35 - wild_mon ZUBAT, 5, 35 - wild_mon SPHEAL, 25, 30 - wild_mon SPHEAL, 25, 30 - wild_mon SPHEAL, 25, 35 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_ZUBAT, 5, 35 + wild_mon SPECIES_SPHEAL, 25, 30 + wild_mon SPECIES_SPHEAL, 25, 30 + wild_mon SPECIES_SPHEAL, 25, 35 .align 2 gShoalCave_LowTideEntranceRoom_WaterMonsInfo:: @ 8552364 @@ -2704,16 +2704,16 @@ gShoalCave_LowTideEntranceRoom_WaterMonsInfo:: @ 8552364 .align 2 gShoalCave_LowTideEntranceRoom_FishingMons:: @ 855236C - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_WAILMER, 25, 30 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_WAILMER, 20, 25 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gShoalCave_LowTideEntranceRoom_FishingMonsInfo:: @ 8552394 @@ -2722,11 +2722,11 @@ gShoalCave_LowTideEntranceRoom_FishingMonsInfo:: @ 8552394 .align 2 gLilycoveCity_WaterMons:: @ 855239C - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_WINGULL, 10, 30 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_PELIPPER, 25, 30 + wild_mon SPECIES_PELIPPER, 25, 30 .align 2 gLilycoveCity_WaterMonsInfo:: @ 85523B0 @@ -2735,16 +2735,16 @@ gLilycoveCity_WaterMonsInfo:: @ 85523B0 .align 2 gLilycoveCity_FishingMons:: @ 85523B8 - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon STARYU, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_WAILMER, 25, 30 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_STARYU, 25, 30 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gLilycoveCity_FishingMonsInfo:: @ 85523E0 @@ -2753,11 +2753,11 @@ gLilycoveCity_FishingMonsInfo:: @ 85523E0 .align 2 gDewfordTown_WaterMons:: @ 85523E8 - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_WINGULL, 10, 30 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_PELIPPER, 25, 30 + wild_mon SPECIES_PELIPPER, 25, 30 .align 2 gDewfordTown_WaterMonsInfo:: @ 85523FC @@ -2766,16 +2766,16 @@ gDewfordTown_WaterMonsInfo:: @ 85523FC .align 2 gDewfordTown_FishingMons:: @ 8552404 - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_WAILMER, 25, 30 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_WAILMER, 20, 25 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gDewfordTown_FishingMonsInfo:: @ 855242C @@ -2784,11 +2784,11 @@ gDewfordTown_FishingMonsInfo:: @ 855242C .align 2 gSlateportCity_WaterMons:: @ 8552434 - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_WINGULL, 10, 30 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_PELIPPER, 25, 30 + wild_mon SPECIES_PELIPPER, 25, 30 .align 2 gSlateportCity_WaterMonsInfo:: @ 8552448 @@ -2797,16 +2797,16 @@ gSlateportCity_WaterMonsInfo:: @ 8552448 .align 2 gSlateportCity_FishingMons:: @ 8552450 - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 20, 25 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_WAILMER, 25, 30 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_WAILMER, 20, 25 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gSlateportCity_FishingMonsInfo:: @ 8552478 @@ -2815,11 +2815,11 @@ gSlateportCity_FishingMonsInfo:: @ 8552478 .align 2 gMossdeepCity_WaterMons:: @ 8552480 - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_WINGULL, 10, 30 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_PELIPPER, 25, 30 + wild_mon SPECIES_PELIPPER, 25, 30 .align 2 gMossdeepCity_WaterMonsInfo:: @ 8552494 @@ -2828,16 +2828,16 @@ gMossdeepCity_WaterMonsInfo:: @ 8552494 .align 2 gMossdeepCity_FishingMons:: @ 855249C - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_SHARPEDO, 30, 35 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_WAILMER, 25, 30 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gMossdeepCity_FishingMonsInfo:: @ 85524C4 @@ -2846,11 +2846,11 @@ gMossdeepCity_FishingMonsInfo:: @ 85524C4 .align 2 gPacifidlogTown_WaterMons:: @ 85524CC - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_WINGULL, 10, 30 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_PELIPPER, 25, 30 + wild_mon SPECIES_PELIPPER, 25, 30 .align 2 gPacifidlogTown_WaterMonsInfo:: @ 85524E0 @@ -2859,16 +2859,16 @@ gPacifidlogTown_WaterMonsInfo:: @ 85524E0 .align 2 gPacifidlogTown_FishingMons:: @ 85524E8 - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon TENTACOOL, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon SHARPEDO, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon WAILMER, 25, 30 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_TENTACOOL, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_SHARPEDO, 30, 35 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_WAILMER, 25, 30 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gPacifidlogTown_FishingMonsInfo:: @ 8552510 @@ -2877,11 +2877,11 @@ gPacifidlogTown_FishingMonsInfo:: @ 8552510 .align 2 gEverGrandeCity_WaterMons:: @ 8552518 - wild_mon TENTACOOL, 5, 35 - wild_mon WINGULL, 10, 30 - wild_mon WINGULL, 15, 25 - wild_mon PELIPPER, 25, 30 - wild_mon PELIPPER, 25, 30 + wild_mon SPECIES_TENTACOOL, 5, 35 + wild_mon SPECIES_WINGULL, 10, 30 + wild_mon SPECIES_WINGULL, 15, 25 + wild_mon SPECIES_PELIPPER, 25, 30 + wild_mon SPECIES_PELIPPER, 25, 30 .align 2 gEverGrandeCity_WaterMonsInfo:: @ 855252C @@ -2890,16 +2890,16 @@ gEverGrandeCity_WaterMonsInfo:: @ 855252C .align 2 gEverGrandeCity_FishingMons:: @ 8552534 - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon LUVDISC, 10, 30 - wild_mon WAILMER, 10, 30 - wild_mon LUVDISC, 30, 35 - wild_mon WAILMER, 30, 35 - wild_mon CORSOLA, 30, 35 - wild_mon WAILMER, 35, 40 - wild_mon WAILMER, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_LUVDISC, 10, 30 + wild_mon SPECIES_WAILMER, 10, 30 + wild_mon SPECIES_LUVDISC, 30, 35 + wild_mon SPECIES_WAILMER, 30, 35 + wild_mon SPECIES_CORSOLA, 30, 35 + wild_mon SPECIES_WAILMER, 35, 40 + wild_mon SPECIES_WAILMER, 40, 45 .align 2 gEverGrandeCity_FishingMonsInfo:: @ 855255C @@ -2908,11 +2908,11 @@ gEverGrandeCity_FishingMonsInfo:: @ 855255C .align 2 gPetalburgCity_WaterMons:: @ 8552564 - wild_mon MARILL, 20, 30 - wild_mon MARILL, 10, 20 - wild_mon MARILL, 30, 35 - wild_mon MARILL, 5, 10 - wild_mon MARILL, 5, 10 + wild_mon SPECIES_MARILL, 20, 30 + wild_mon SPECIES_MARILL, 10, 20 + wild_mon SPECIES_MARILL, 30, 35 + wild_mon SPECIES_MARILL, 5, 10 + wild_mon SPECIES_MARILL, 5, 10 .align 2 gPetalburgCity_WaterMonsInfo:: @ 8552578 @@ -2921,16 +2921,16 @@ gPetalburgCity_WaterMonsInfo:: @ 8552578 .align 2 gPetalburgCity_FishingMons:: @ 8552580 - wild_mon MAGIKARP, 5, 10 - wild_mon GOLDEEN, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon GOLDEEN, 10, 30 - wild_mon CORPHISH, 10, 30 - wild_mon CORPHISH, 25, 30 - wild_mon CORPHISH, 30, 35 - wild_mon CORPHISH, 20, 25 - wild_mon CORPHISH, 35, 40 - wild_mon CORPHISH, 40, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_GOLDEEN, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_GOLDEEN, 10, 30 + wild_mon SPECIES_CORPHISH, 10, 30 + wild_mon SPECIES_CORPHISH, 25, 30 + wild_mon SPECIES_CORPHISH, 30, 35 + wild_mon SPECIES_CORPHISH, 20, 25 + wild_mon SPECIES_CORPHISH, 35, 40 + wild_mon SPECIES_CORPHISH, 40, 45 .align 2 gPetalburgCity_FishingMonsInfo:: @ 85525A8 @@ -2939,11 +2939,11 @@ gPetalburgCity_FishingMonsInfo:: @ 85525A8 .align 2 gUnderwater1_WaterMons:: @ 85525B0 - wild_mon CLAMPERL, 20, 30 - wild_mon CHINCHOU, 20, 30 - wild_mon CLAMPERL, 30, 35 - wild_mon RELICANTH, 30, 35 - wild_mon RELICANTH, 30, 35 + wild_mon SPECIES_CLAMPERL, 20, 30 + wild_mon SPECIES_CHINCHOU, 20, 30 + wild_mon SPECIES_CLAMPERL, 30, 35 + wild_mon SPECIES_RELICANTH, 30, 35 + wild_mon SPECIES_RELICANTH, 30, 35 .align 2 gUnderwater1_WaterMonsInfo:: @ 85525C4 @@ -2952,18 +2952,18 @@ gUnderwater1_WaterMonsInfo:: @ 85525C4 .align 2 gShoalCave_LowTideIceRoom_LandMons:: @ 85525CC - wild_mon ZUBAT, 26 - wild_mon SPHEAL, 26 - wild_mon ZUBAT, 28 - wild_mon SPHEAL, 28 - wild_mon ZUBAT, 30 - wild_mon SPHEAL, 30 - wild_mon SNORUNT, 26 - wild_mon SPHEAL, 32 - wild_mon GOLBAT, 30 - wild_mon SNORUNT, 28 - wild_mon GOLBAT, 32 - wild_mon SNORUNT, 30 + wild_mon SPECIES_ZUBAT, 26 + wild_mon SPECIES_SPHEAL, 26 + wild_mon SPECIES_ZUBAT, 28 + wild_mon SPECIES_SPHEAL, 28 + wild_mon SPECIES_ZUBAT, 30 + wild_mon SPECIES_SPHEAL, 30 + wild_mon SPECIES_SNORUNT, 26 + wild_mon SPECIES_SPHEAL, 32 + wild_mon SPECIES_GOLBAT, 30 + wild_mon SPECIES_SNORUNT, 28 + wild_mon SPECIES_GOLBAT, 32 + wild_mon SPECIES_SNORUNT, 30 .align 2 gShoalCave_LowTideIceRoom_LandMonsInfo:: @ 85525FC @@ -2972,18 +2972,18 @@ gShoalCave_LowTideIceRoom_LandMonsInfo:: @ 85525FC .align 2 gSkyPillar_1F_LandMons:: @ 8552604 - wild_mon SABLEYE, 33 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon SABLEYE, 34 - wild_mon CLAYDOL, 36 - wild_mon BANETTE, 37 - wild_mon BANETTE, 38 - wild_mon CLAYDOL, 36 - wild_mon CLAYDOL, 37 - wild_mon CLAYDOL, 38 - wild_mon CLAYDOL, 37 - wild_mon CLAYDOL, 38 + wild_mon SPECIES_SABLEYE, 33 + wild_mon SPECIES_GOLBAT, 34 + wild_mon SPECIES_GOLBAT, 35 + wild_mon SPECIES_SABLEYE, 34 + wild_mon SPECIES_CLAYDOL, 36 + wild_mon SPECIES_BANETTE, 37 + wild_mon SPECIES_BANETTE, 38 + wild_mon SPECIES_CLAYDOL, 36 + wild_mon SPECIES_CLAYDOL, 37 + wild_mon SPECIES_CLAYDOL, 38 + wild_mon SPECIES_CLAYDOL, 37 + wild_mon SPECIES_CLAYDOL, 38 .align 2 gSkyPillar_1F_LandMonsInfo:: @ 8552634 @@ -2992,11 +2992,11 @@ gSkyPillar_1F_LandMonsInfo:: @ 8552634 .align 2 gSootopolisCity_WaterMons:: @ 855263C - wild_mon MAGIKARP, 5, 35 - wild_mon MAGIKARP, 10, 30 - wild_mon MAGIKARP, 15, 25 - wild_mon MAGIKARP, 25, 30 - wild_mon MAGIKARP, 25, 30 + wild_mon SPECIES_MAGIKARP, 5, 35 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_MAGIKARP, 15, 25 + wild_mon SPECIES_MAGIKARP, 25, 30 + wild_mon SPECIES_MAGIKARP, 25, 30 .align 2 gSootopolisCity_WaterMonsInfo:: @ 8552650 @@ -3005,16 +3005,16 @@ gSootopolisCity_WaterMonsInfo:: @ 8552650 .align 2 gSootopolisCity_FishingMons:: @ 8552658 - wild_mon MAGIKARP, 5, 10 - wild_mon TENTACOOL, 5, 10 - wild_mon MAGIKARP, 10, 30 - wild_mon MAGIKARP, 10, 30 - wild_mon MAGIKARP, 10, 30 - wild_mon MAGIKARP, 30, 35 - wild_mon MAGIKARP, 30, 35 - wild_mon GYARADOS, 35, 40 - wild_mon GYARADOS, 35, 45 - wild_mon GYARADOS, 5, 45 + wild_mon SPECIES_MAGIKARP, 5, 10 + wild_mon SPECIES_TENTACOOL, 5, 10 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_MAGIKARP, 10, 30 + wild_mon SPECIES_MAGIKARP, 30, 35 + wild_mon SPECIES_MAGIKARP, 30, 35 + wild_mon SPECIES_GYARADOS, 35, 40 + wild_mon SPECIES_GYARADOS, 35, 45 + wild_mon SPECIES_GYARADOS, 5, 45 .align 2 gSootopolisCity_FishingMonsInfo:: @ 8552680 @@ -3023,18 +3023,18 @@ gSootopolisCity_FishingMonsInfo:: @ 8552680 .align 2 gSkyPillar_3F_LandMons:: @ 8552688 - wild_mon SABLEYE, 33 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon SABLEYE, 34 - wild_mon CLAYDOL, 36 - wild_mon BANETTE, 37 - wild_mon BANETTE, 38 - wild_mon CLAYDOL, 36 - wild_mon CLAYDOL, 37 - wild_mon CLAYDOL, 38 - wild_mon CLAYDOL, 37 - wild_mon CLAYDOL, 38 + wild_mon SPECIES_SABLEYE, 33 + wild_mon SPECIES_GOLBAT, 34 + wild_mon SPECIES_GOLBAT, 35 + wild_mon SPECIES_SABLEYE, 34 + wild_mon SPECIES_CLAYDOL, 36 + wild_mon SPECIES_BANETTE, 37 + wild_mon SPECIES_BANETTE, 38 + wild_mon SPECIES_CLAYDOL, 36 + wild_mon SPECIES_CLAYDOL, 37 + wild_mon SPECIES_CLAYDOL, 38 + wild_mon SPECIES_CLAYDOL, 37 + wild_mon SPECIES_CLAYDOL, 38 .align 2 gSkyPillar_3F_LandMonsInfo:: @ 85526B8 @@ -3043,18 +3043,18 @@ gSkyPillar_3F_LandMonsInfo:: @ 85526B8 .align 2 gSkyPillar_5F_LandMons:: @ 85526C0 - wild_mon SABLEYE, 33 - wild_mon GOLBAT, 34 - wild_mon GOLBAT, 35 - wild_mon SABLEYE, 34 - wild_mon CLAYDOL, 36 - wild_mon BANETTE, 37 - wild_mon BANETTE, 38 - wild_mon CLAYDOL, 36 - wild_mon CLAYDOL, 37 - wild_mon ALTARIA, 38 - wild_mon ALTARIA, 39 - wild_mon ALTARIA, 39 + wild_mon SPECIES_SABLEYE, 33 + wild_mon SPECIES_GOLBAT, 34 + wild_mon SPECIES_GOLBAT, 35 + wild_mon SPECIES_SABLEYE, 34 + wild_mon SPECIES_CLAYDOL, 36 + wild_mon SPECIES_BANETTE, 37 + wild_mon SPECIES_BANETTE, 38 + wild_mon SPECIES_CLAYDOL, 36 + wild_mon SPECIES_CLAYDOL, 37 + wild_mon SPECIES_ALTARIA, 38 + wild_mon SPECIES_ALTARIA, 39 + wild_mon SPECIES_ALTARIA, 39 .align 2 gSkyPillar_5F_LandMonsInfo:: @ 85526F0 @@ -3063,18 +3063,18 @@ gSkyPillar_5F_LandMonsInfo:: @ 85526F0 .align 2 gSafariZone_Southeast_LandMons:: @ 85526F8 - wild_mon SUNKERN, 33 - wild_mon MAREEP, 34 - wild_mon SUNKERN, 35 - wild_mon MAREEP, 36 - wild_mon AIPOM, 34 - wild_mon SPINARAK, 33 - wild_mon HOOTHOOT, 35 - wild_mon SNUBBULL, 34 - wild_mon STANTLER, 36 - wild_mon GLIGAR, 37 - wild_mon STANTLER, 39 - wild_mon GLIGAR, 40 + wild_mon SPECIES_SUNKERN, 33 + wild_mon SPECIES_MAREEP, 34 + wild_mon SPECIES_SUNKERN, 35 + wild_mon SPECIES_MAREEP, 36 + wild_mon SPECIES_AIPOM, 34 + wild_mon SPECIES_SPINARAK, 33 + wild_mon SPECIES_HOOTHOOT, 35 + wild_mon SPECIES_SNUBBULL, 34 + wild_mon SPECIES_STANTLER, 36 + wild_mon SPECIES_GLIGAR, 37 + wild_mon SPECIES_STANTLER, 39 + wild_mon SPECIES_GLIGAR, 40 .align 2 gSafariZone_Southeast_LandMonsInfo:: @ 8552728 @@ -3083,11 +3083,11 @@ gSafariZone_Southeast_LandMonsInfo:: @ 8552728 .align 2 gSafariZone_Southeast_WaterMons:: @ 8552730 - wild_mon WOOPER, 25, 30 - wild_mon MARILL, 25, 30 - wild_mon MARILL, 25, 30 - wild_mon MARILL, 30, 35 - wild_mon QUAGSIRE, 35, 40 + wild_mon SPECIES_WOOPER, 25, 30 + wild_mon SPECIES_MARILL, 25, 30 + wild_mon SPECIES_MARILL, 25, 30 + wild_mon SPECIES_MARILL, 30, 35 + wild_mon SPECIES_QUAGSIRE, 35, 40 .align 2 gSafariZone_Southeast_WaterMonsInfo:: @ 8552744 @@ -3096,16 +3096,16 @@ gSafariZone_Southeast_WaterMonsInfo:: @ 8552744 .align 2 gSafariZone_Southeast_FishingMons:: @ 855274C - wild_mon MAGIKARP, 25, 30 - wild_mon GOLDEEN, 25, 30 - wild_mon MAGIKARP, 25, 30 - wild_mon GOLDEEN, 25, 30 - wild_mon REMORAID, 30, 35 - wild_mon GOLDEEN, 25, 30 - wild_mon REMORAID, 25, 30 - wild_mon REMORAID, 30, 35 - wild_mon REMORAID, 30, 35 - wild_mon OCTILLERY, 35, 40 + wild_mon SPECIES_MAGIKARP, 25, 30 + wild_mon SPECIES_GOLDEEN, 25, 30 + wild_mon SPECIES_MAGIKARP, 25, 30 + wild_mon SPECIES_GOLDEEN, 25, 30 + wild_mon SPECIES_REMORAID, 30, 35 + wild_mon SPECIES_GOLDEEN, 25, 30 + wild_mon SPECIES_REMORAID, 25, 30 + wild_mon SPECIES_REMORAID, 30, 35 + wild_mon SPECIES_REMORAID, 30, 35 + wild_mon SPECIES_OCTILLERY, 35, 40 .align 2 gSafariZone_Southeast_FishingMonsInfo:: @ 8552774 @@ -3114,18 +3114,18 @@ gSafariZone_Southeast_FishingMonsInfo:: @ 8552774 .align 2 gSafariZone_Northeast_LandMons:: @ 855277C - wild_mon AIPOM, 33 - wild_mon TEDDIURSA, 34 - wild_mon AIPOM, 35 - wild_mon TEDDIURSA, 36 - wild_mon SUNKERN, 34 - wild_mon LEDYBA, 33 - wild_mon HOOTHOOT, 35 - wild_mon PINECO, 34 - wild_mon HOUNDOUR, 36 - wild_mon MILTANK, 37 - wild_mon HOUNDOUR, 39 - wild_mon MILTANK, 40 + wild_mon SPECIES_AIPOM, 33 + wild_mon SPECIES_TEDDIURSA, 34 + wild_mon SPECIES_AIPOM, 35 + wild_mon SPECIES_TEDDIURSA, 36 + wild_mon SPECIES_SUNKERN, 34 + wild_mon SPECIES_LEDYBA, 33 + wild_mon SPECIES_HOOTHOOT, 35 + wild_mon SPECIES_PINECO, 34 + wild_mon SPECIES_HOUNDOUR, 36 + wild_mon SPECIES_MILTANK, 37 + wild_mon SPECIES_HOUNDOUR, 39 + wild_mon SPECIES_MILTANK, 40 .align 2 gSafariZone_Northeast_LandMonsInfo:: @ 85527AC @@ -3134,11 +3134,11 @@ gSafariZone_Northeast_LandMonsInfo:: @ 85527AC .align 2 gSafariZone_Northeast_RockSmashMons:: @ 85527B4 - wild_mon SHUCKLE, 25, 30 - wild_mon SHUCKLE, 20, 25 - wild_mon SHUCKLE, 30, 35 - wild_mon SHUCKLE, 30, 35 - wild_mon SHUCKLE, 35, 40 + wild_mon SPECIES_SHUCKLE, 25, 30 + wild_mon SPECIES_SHUCKLE, 20, 25 + wild_mon SPECIES_SHUCKLE, 30, 35 + wild_mon SPECIES_SHUCKLE, 30, 35 + wild_mon SPECIES_SHUCKLE, 35, 40 .align 2 gSafariZone_Northeast_RockSmashMonsInfo:: @ 85527C8 @@ -3147,18 +3147,18 @@ gSafariZone_Northeast_RockSmashMonsInfo:: @ 85527C8 .align 2 gMagmaHideout_1F_LandMons:: @ 85527D0 - wild_mon GEODUDE, 27 - wild_mon TORKOAL, 28 - wild_mon GEODUDE, 28 - wild_mon TORKOAL, 30 - wild_mon GEODUDE, 29 - wild_mon GEODUDE, 30 - wild_mon GEODUDE, 30 - wild_mon GRAVELER, 30 - wild_mon GRAVELER, 30 - wild_mon GRAVELER, 31 - wild_mon GRAVELER, 32 - wild_mon GRAVELER, 33 + wild_mon SPECIES_GEODUDE, 27 + wild_mon SPECIES_TORKOAL, 28 + wild_mon SPECIES_GEODUDE, 28 + wild_mon SPECIES_TORKOAL, 30 + wild_mon SPECIES_GEODUDE, 29 + wild_mon SPECIES_GEODUDE, 30 + wild_mon SPECIES_GEODUDE, 30 + wild_mon SPECIES_GRAVELER, 30 + wild_mon SPECIES_GRAVELER, 30 + wild_mon SPECIES_GRAVELER, 31 + wild_mon SPECIES_GRAVELER, 32 + wild_mon SPECIES_GRAVELER, 33 .align 2 gMagmaHideout_1F_LandMonsInfo:: @ 8552800 @@ -3167,18 +3167,18 @@ gMagmaHideout_1F_LandMonsInfo:: @ 8552800 .align 2 gMagmaHideout_2F_1R_LandMons:: @ 8552808 - wild_mon GEODUDE, 27 - wild_mon TORKOAL, 28 - wild_mon GEODUDE, 28 - wild_mon TORKOAL, 30 - wild_mon GEODUDE, 29 - wild_mon GEODUDE, 30 - wild_mon GEODUDE, 30 - wild_mon GRAVELER, 30 - wild_mon GRAVELER, 30 - wild_mon GRAVELER, 31 - wild_mon GRAVELER, 32 - wild_mon GRAVELER, 33 + wild_mon SPECIES_GEODUDE, 27 + wild_mon SPECIES_TORKOAL, 28 + wild_mon SPECIES_GEODUDE, 28 + wild_mon SPECIES_TORKOAL, 30 + wild_mon SPECIES_GEODUDE, 29 + wild_mon SPECIES_GEODUDE, 30 + wild_mon SPECIES_GEODUDE, 30 + wild_mon SPECIES_GRAVELER, 30 + wild_mon SPECIES_GRAVELER, 30 + wild_mon SPECIES_GRAVELER, 31 + wild_mon SPECIES_GRAVELER, 32 + wild_mon SPECIES_GRAVELER, 33 .align 2 gMagmaHideout_2F_1R_LandMonsInfo:: @ 8552838 @@ -3187,18 +3187,18 @@ gMagmaHideout_2F_1R_LandMonsInfo:: @ 8552838 .align 2 gMagmaHideout_2F_2R_LandMons:: @ 8552840 - wild_mon GEODUDE, 27 - wild_mon TORKOAL, 28 - wild_mon GEODUDE, 28 - wild_mon TORKOAL, 30 - wild_mon GEODUDE, 29 - wild_mon GEODUDE, 30 - wild_mon GEODUDE, 30 - wild_mon GRAVELER, 30 - wild_mon GRAVELER, 30 - wild_mon GRAVELER, 31 - wild_mon GRAVELER, 32 - wild_mon GRAVELER, 33 + wild_mon SPECIES_GEODUDE, 27 + wild_mon SPECIES_TORKOAL, 28 + wild_mon SPECIES_GEODUDE, 28 + wild_mon SPECIES_TORKOAL, 30 + wild_mon SPECIES_GEODUDE, 29 + wild_mon SPECIES_GEODUDE, 30 + wild_mon SPECIES_GEODUDE, 30 + wild_mon SPECIES_GRAVELER, 30 + wild_mon SPECIES_GRAVELER, 30 + wild_mon SPECIES_GRAVELER, 31 + wild_mon SPECIES_GRAVELER, 32 + wild_mon SPECIES_GRAVELER, 33 .align 2 gMagmaHideout_2F_2R_LandMonsInfo:: @ 8552870 @@ -3207,18 +3207,18 @@ gMagmaHideout_2F_2R_LandMonsInfo:: @ 8552870 .align 2 gMagmaHideout_3F_1R_LandMons:: @ 8552878 - wild_mon GEODUDE, 27 - wild_mon TORKOAL, 28 - wild_mon GEODUDE, 28 - wild_mon TORKOAL, 30 - wild_mon GEODUDE, 29 - wild_mon GEODUDE, 30 - wild_mon GEODUDE, 30 - wild_mon GRAVELER, 30 - wild_mon GRAVELER, 30 - wild_mon GRAVELER, 31 - wild_mon GRAVELER, 32 - wild_mon GRAVELER, 33 + wild_mon SPECIES_GEODUDE, 27 + wild_mon SPECIES_TORKOAL, 28 + wild_mon SPECIES_GEODUDE, 28 + wild_mon SPECIES_TORKOAL, 30 + wild_mon SPECIES_GEODUDE, 29 + wild_mon SPECIES_GEODUDE, 30 + wild_mon SPECIES_GEODUDE, 30 + wild_mon SPECIES_GRAVELER, 30 + wild_mon SPECIES_GRAVELER, 30 + wild_mon SPECIES_GRAVELER, 31 + wild_mon SPECIES_GRAVELER, 32 + wild_mon SPECIES_GRAVELER, 33 .align 2 gMagmaHideout_3F_1R_LandMonsInfo:: @ 85528A8 @@ -3227,18 +3227,18 @@ gMagmaHideout_3F_1R_LandMonsInfo:: @ 85528A8 .align 2 gMagmaHideout_3F_2R_LandMons:: @ 85528B0 - wild_mon GEODUDE, 27 - wild_mon TORKOAL, 28 - wild_mon GEODUDE, 28 - wild_mon TORKOAL, 30 - wild_mon GEODUDE, 29 - wild_mon GEODUDE, 30 - wild_mon GEODUDE, 30 - wild_mon GRAVELER, 30 - wild_mon GRAVELER, 30 - wild_mon GRAVELER, 31 - wild_mon GRAVELER, 32 - wild_mon GRAVELER, 33 + wild_mon SPECIES_GEODUDE, 27 + wild_mon SPECIES_TORKOAL, 28 + wild_mon SPECIES_GEODUDE, 28 + wild_mon SPECIES_TORKOAL, 30 + wild_mon SPECIES_GEODUDE, 29 + wild_mon SPECIES_GEODUDE, 30 + wild_mon SPECIES_GEODUDE, 30 + wild_mon SPECIES_GRAVELER, 30 + wild_mon SPECIES_GRAVELER, 30 + wild_mon SPECIES_GRAVELER, 31 + wild_mon SPECIES_GRAVELER, 32 + wild_mon SPECIES_GRAVELER, 33 .align 2 gMagmaHideout_3F_2R_LandMonsInfo:: @ 85528E0 @@ -3247,18 +3247,18 @@ gMagmaHideout_3F_2R_LandMonsInfo:: @ 85528E0 .align 2 gMagmaHideout_4F_LandMons:: @ 85528E8 - wild_mon GEODUDE, 27 - wild_mon TORKOAL, 28 - wild_mon GEODUDE, 28 - wild_mon TORKOAL, 30 - wild_mon GEODUDE, 29 - wild_mon GEODUDE, 30 - wild_mon GEODUDE, 30 - wild_mon GRAVELER, 30 - wild_mon GRAVELER, 30 - wild_mon GRAVELER, 31 - wild_mon GRAVELER, 32 - wild_mon GRAVELER, 33 + wild_mon SPECIES_GEODUDE, 27 + wild_mon SPECIES_TORKOAL, 28 + wild_mon SPECIES_GEODUDE, 28 + wild_mon SPECIES_TORKOAL, 30 + wild_mon SPECIES_GEODUDE, 29 + wild_mon SPECIES_GEODUDE, 30 + wild_mon SPECIES_GEODUDE, 30 + wild_mon SPECIES_GRAVELER, 30 + wild_mon SPECIES_GRAVELER, 30 + wild_mon SPECIES_GRAVELER, 31 + wild_mon SPECIES_GRAVELER, 32 + wild_mon SPECIES_GRAVELER, 33 .align 2 gMagmaHideout_4F_LandMonsInfo:: @ 8552918 @@ -3267,18 +3267,18 @@ gMagmaHideout_4F_LandMonsInfo:: @ 8552918 .align 2 gMagmaHideout_3F_3R_LandMons:: @ 8552920 - wild_mon GEODUDE, 27 - wild_mon TORKOAL, 28 - wild_mon GEODUDE, 28 - wild_mon TORKOAL, 30 - wild_mon GEODUDE, 29 - wild_mon GEODUDE, 30 - wild_mon GEODUDE, 30 - wild_mon GRAVELER, 30 - wild_mon GRAVELER, 30 - wild_mon GRAVELER, 31 - wild_mon GRAVELER, 32 - wild_mon GRAVELER, 33 + wild_mon SPECIES_GEODUDE, 27 + wild_mon SPECIES_TORKOAL, 28 + wild_mon SPECIES_GEODUDE, 28 + wild_mon SPECIES_TORKOAL, 30 + wild_mon SPECIES_GEODUDE, 29 + wild_mon SPECIES_GEODUDE, 30 + wild_mon SPECIES_GEODUDE, 30 + wild_mon SPECIES_GRAVELER, 30 + wild_mon SPECIES_GRAVELER, 30 + wild_mon SPECIES_GRAVELER, 31 + wild_mon SPECIES_GRAVELER, 32 + wild_mon SPECIES_GRAVELER, 33 .align 2 gMagmaHideout_3F_3R_LandMonsInfo:: @ 8552950 @@ -3287,18 +3287,18 @@ gMagmaHideout_3F_3R_LandMonsInfo:: @ 8552950 .align 2 gMagmaHideout_2F_3R_LandMons:: @ 8552958 - wild_mon GEODUDE, 27 - wild_mon TORKOAL, 28 - wild_mon GEODUDE, 28 - wild_mon TORKOAL, 30 - wild_mon GEODUDE, 29 - wild_mon GEODUDE, 30 - wild_mon GEODUDE, 30 - wild_mon GRAVELER, 30 - wild_mon GRAVELER, 30 - wild_mon GRAVELER, 31 - wild_mon GRAVELER, 32 - wild_mon GRAVELER, 33 + wild_mon SPECIES_GEODUDE, 27 + wild_mon SPECIES_TORKOAL, 28 + wild_mon SPECIES_GEODUDE, 28 + wild_mon SPECIES_TORKOAL, 30 + wild_mon SPECIES_GEODUDE, 29 + wild_mon SPECIES_GEODUDE, 30 + wild_mon SPECIES_GEODUDE, 30 + wild_mon SPECIES_GRAVELER, 30 + wild_mon SPECIES_GRAVELER, 30 + wild_mon SPECIES_GRAVELER, 31 + wild_mon SPECIES_GRAVELER, 32 + wild_mon SPECIES_GRAVELER, 33 .align 2 gMagmaHideout_2F_3R_LandMonsInfo:: @ 8552988 @@ -3307,18 +3307,18 @@ gMagmaHideout_2F_3R_LandMonsInfo:: @ 8552988 .align 2 gMirageTower_1F_LandMons:: @ 8552990 - wild_mon SANDSHREW, 21 - wild_mon TRAPINCH, 21 - wild_mon SANDSHREW, 20 - wild_mon TRAPINCH, 20 - wild_mon SANDSHREW, 20 - wild_mon TRAPINCH, 20 - wild_mon SANDSHREW, 22 - wild_mon TRAPINCH, 22 - wild_mon SANDSHREW, 23 - wild_mon TRAPINCH, 23 - wild_mon SANDSHREW, 24 - wild_mon TRAPINCH, 24 + wild_mon SPECIES_SANDSHREW, 21 + wild_mon SPECIES_TRAPINCH, 21 + wild_mon SPECIES_SANDSHREW, 20 + wild_mon SPECIES_TRAPINCH, 20 + wild_mon SPECIES_SANDSHREW, 20 + wild_mon SPECIES_TRAPINCH, 20 + wild_mon SPECIES_SANDSHREW, 22 + wild_mon SPECIES_TRAPINCH, 22 + wild_mon SPECIES_SANDSHREW, 23 + wild_mon SPECIES_TRAPINCH, 23 + wild_mon SPECIES_SANDSHREW, 24 + wild_mon SPECIES_TRAPINCH, 24 .align 2 gMirageTower_1F_LandMonsInfo:: @ 85529C0 @@ -3327,18 +3327,18 @@ gMirageTower_1F_LandMonsInfo:: @ 85529C0 .align 2 gMirageTower_2F_LandMons:: @ 85529C8 - wild_mon SANDSHREW, 21 - wild_mon TRAPINCH, 21 - wild_mon SANDSHREW, 20 - wild_mon TRAPINCH, 20 - wild_mon SANDSHREW, 20 - wild_mon TRAPINCH, 20 - wild_mon SANDSHREW, 22 - wild_mon TRAPINCH, 22 - wild_mon SANDSHREW, 23 - wild_mon TRAPINCH, 23 - wild_mon SANDSHREW, 24 - wild_mon TRAPINCH, 24 + wild_mon SPECIES_SANDSHREW, 21 + wild_mon SPECIES_TRAPINCH, 21 + wild_mon SPECIES_SANDSHREW, 20 + wild_mon SPECIES_TRAPINCH, 20 + wild_mon SPECIES_SANDSHREW, 20 + wild_mon SPECIES_TRAPINCH, 20 + wild_mon SPECIES_SANDSHREW, 22 + wild_mon SPECIES_TRAPINCH, 22 + wild_mon SPECIES_SANDSHREW, 23 + wild_mon SPECIES_TRAPINCH, 23 + wild_mon SPECIES_SANDSHREW, 24 + wild_mon SPECIES_TRAPINCH, 24 .align 2 gMirageTower_2F_LandMonsInfo:: @ 85529F8 @@ -3347,18 +3347,18 @@ gMirageTower_2F_LandMonsInfo:: @ 85529F8 .align 2 gMirageTower_3F_LandMons:: @ 8552A00 - wild_mon SANDSHREW, 21 - wild_mon TRAPINCH, 21 - wild_mon SANDSHREW, 20 - wild_mon TRAPINCH, 20 - wild_mon SANDSHREW, 20 - wild_mon TRAPINCH, 20 - wild_mon SANDSHREW, 22 - wild_mon TRAPINCH, 22 - wild_mon SANDSHREW, 23 - wild_mon TRAPINCH, 23 - wild_mon SANDSHREW, 24 - wild_mon TRAPINCH, 24 + wild_mon SPECIES_SANDSHREW, 21 + wild_mon SPECIES_TRAPINCH, 21 + wild_mon SPECIES_SANDSHREW, 20 + wild_mon SPECIES_TRAPINCH, 20 + wild_mon SPECIES_SANDSHREW, 20 + wild_mon SPECIES_TRAPINCH, 20 + wild_mon SPECIES_SANDSHREW, 22 + wild_mon SPECIES_TRAPINCH, 22 + wild_mon SPECIES_SANDSHREW, 23 + wild_mon SPECIES_TRAPINCH, 23 + wild_mon SPECIES_SANDSHREW, 24 + wild_mon SPECIES_TRAPINCH, 24 .align 2 gMirageTower_3F_LandMonsInfo:: @ 8552A30 @@ -3367,18 +3367,18 @@ gMirageTower_3F_LandMonsInfo:: @ 8552A30 .align 2 gMirageTower_4F_LandMons:: @ 8552A38 - wild_mon SANDSHREW, 21 - wild_mon TRAPINCH, 21 - wild_mon SANDSHREW, 20 - wild_mon TRAPINCH, 20 - wild_mon SANDSHREW, 20 - wild_mon TRAPINCH, 20 - wild_mon SANDSHREW, 22 - wild_mon TRAPINCH, 22 - wild_mon SANDSHREW, 23 - wild_mon TRAPINCH, 23 - wild_mon SANDSHREW, 24 - wild_mon TRAPINCH, 24 + wild_mon SPECIES_SANDSHREW, 21 + wild_mon SPECIES_TRAPINCH, 21 + wild_mon SPECIES_SANDSHREW, 20 + wild_mon SPECIES_TRAPINCH, 20 + wild_mon SPECIES_SANDSHREW, 20 + wild_mon SPECIES_TRAPINCH, 20 + wild_mon SPECIES_SANDSHREW, 22 + wild_mon SPECIES_TRAPINCH, 22 + wild_mon SPECIES_SANDSHREW, 23 + wild_mon SPECIES_TRAPINCH, 23 + wild_mon SPECIES_SANDSHREW, 24 + wild_mon SPECIES_TRAPINCH, 24 .align 2 gMirageTower_4F_LandMonsInfo:: @ 8552A68 @@ -3387,18 +3387,18 @@ gMirageTower_4F_LandMonsInfo:: @ 8552A68 .align 2 gDesertUnderpass_LandMons:: @ 8552A70 - wild_mon DITTO, 38 - wild_mon WHISMUR, 35 - wild_mon DITTO, 40 - wild_mon LOUDRED, 40 - wild_mon DITTO, 41 - wild_mon WHISMUR, 36 - wild_mon LOUDRED, 38 - wild_mon DITTO, 42 - wild_mon WHISMUR, 38 - wild_mon DITTO, 43 - wild_mon LOUDRED, 44 - wild_mon DITTO, 45 + wild_mon SPECIES_DITTO, 38 + wild_mon SPECIES_WHISMUR, 35 + wild_mon SPECIES_DITTO, 40 + wild_mon SPECIES_LOUDRED, 40 + wild_mon SPECIES_DITTO, 41 + wild_mon SPECIES_WHISMUR, 36 + wild_mon SPECIES_LOUDRED, 38 + wild_mon SPECIES_DITTO, 42 + wild_mon SPECIES_WHISMUR, 38 + wild_mon SPECIES_DITTO, 43 + wild_mon SPECIES_LOUDRED, 44 + wild_mon SPECIES_DITTO, 45 .align 2 gDesertUnderpass_LandMonsInfo:: @ 8552AA0 @@ -3407,18 +3407,18 @@ gDesertUnderpass_LandMonsInfo:: @ 8552AA0 .align 2 gArtisanCave_B1F_LandMons:: @ 8552AA8 - wild_mon SMEARGLE, 40 - wild_mon SMEARGLE, 41 - wild_mon SMEARGLE, 42 - wild_mon SMEARGLE, 43 - wild_mon SMEARGLE, 44 - wild_mon SMEARGLE, 45 - wild_mon SMEARGLE, 46 - wild_mon SMEARGLE, 47 - wild_mon SMEARGLE, 48 - wild_mon SMEARGLE, 49 - wild_mon SMEARGLE, 50 - wild_mon SMEARGLE, 50 + wild_mon SPECIES_SMEARGLE, 40 + wild_mon SPECIES_SMEARGLE, 41 + wild_mon SPECIES_SMEARGLE, 42 + wild_mon SPECIES_SMEARGLE, 43 + wild_mon SPECIES_SMEARGLE, 44 + wild_mon SPECIES_SMEARGLE, 45 + wild_mon SPECIES_SMEARGLE, 46 + wild_mon SPECIES_SMEARGLE, 47 + wild_mon SPECIES_SMEARGLE, 48 + wild_mon SPECIES_SMEARGLE, 49 + wild_mon SPECIES_SMEARGLE, 50 + wild_mon SPECIES_SMEARGLE, 50 .align 2 gArtisanCave_B1F_LandMonsInfo:: @ 8552AD8 @@ -3427,18 +3427,18 @@ gArtisanCave_B1F_LandMonsInfo:: @ 8552AD8 .align 2 gArtisanCave_1F_LandMons:: @ 8552AE0 - wild_mon SMEARGLE, 40 - wild_mon SMEARGLE, 41 - wild_mon SMEARGLE, 42 - wild_mon SMEARGLE, 43 - wild_mon SMEARGLE, 44 - wild_mon SMEARGLE, 45 - wild_mon SMEARGLE, 46 - wild_mon SMEARGLE, 47 - wild_mon SMEARGLE, 48 - wild_mon SMEARGLE, 49 - wild_mon SMEARGLE, 50 - wild_mon SMEARGLE, 50 + wild_mon SPECIES_SMEARGLE, 40 + wild_mon SPECIES_SMEARGLE, 41 + wild_mon SPECIES_SMEARGLE, 42 + wild_mon SPECIES_SMEARGLE, 43 + wild_mon SPECIES_SMEARGLE, 44 + wild_mon SPECIES_SMEARGLE, 45 + wild_mon SPECIES_SMEARGLE, 46 + wild_mon SPECIES_SMEARGLE, 47 + wild_mon SPECIES_SMEARGLE, 48 + wild_mon SPECIES_SMEARGLE, 49 + wild_mon SPECIES_SMEARGLE, 50 + wild_mon SPECIES_SMEARGLE, 50 .align 2 gArtisanCave_1F_LandMonsInfo:: @ 8552B10 @@ -3447,18 +3447,18 @@ gArtisanCave_1F_LandMonsInfo:: @ 8552B10 .align 2 gAlteringCave1_LandMons:: @ 8552B18 - wild_mon ZUBAT, 10 - wild_mon ZUBAT, 12 - wild_mon ZUBAT, 8 - wild_mon ZUBAT, 14 - wild_mon ZUBAT, 10 - wild_mon ZUBAT, 12 - wild_mon ZUBAT, 16 - wild_mon ZUBAT, 6 - wild_mon ZUBAT, 8 - wild_mon ZUBAT, 14 - wild_mon ZUBAT, 8 - wild_mon ZUBAT, 14 + wild_mon SPECIES_ZUBAT, 10 + wild_mon SPECIES_ZUBAT, 12 + wild_mon SPECIES_ZUBAT, 8 + wild_mon SPECIES_ZUBAT, 14 + wild_mon SPECIES_ZUBAT, 10 + wild_mon SPECIES_ZUBAT, 12 + wild_mon SPECIES_ZUBAT, 16 + wild_mon SPECIES_ZUBAT, 6 + wild_mon SPECIES_ZUBAT, 8 + wild_mon SPECIES_ZUBAT, 14 + wild_mon SPECIES_ZUBAT, 8 + wild_mon SPECIES_ZUBAT, 14 .align 2 gAlteringCave1_LandMonsInfo:: @ 8552B48 @@ -3467,18 +3467,18 @@ gAlteringCave1_LandMonsInfo:: @ 8552B48 .align 2 gAlteringCave2_LandMons:: @ 8552B50 - wild_mon MAREEP, 7 - wild_mon MAREEP, 9 - wild_mon MAREEP, 5 - wild_mon MAREEP, 11 - wild_mon MAREEP, 7 - wild_mon MAREEP, 9 - wild_mon MAREEP, 13 - wild_mon MAREEP, 3 - wild_mon MAREEP, 5 - wild_mon MAREEP, 11 - wild_mon MAREEP, 5 - wild_mon MAREEP, 11 + wild_mon SPECIES_MAREEP, 7 + wild_mon SPECIES_MAREEP, 9 + wild_mon SPECIES_MAREEP, 5 + wild_mon SPECIES_MAREEP, 11 + wild_mon SPECIES_MAREEP, 7 + wild_mon SPECIES_MAREEP, 9 + wild_mon SPECIES_MAREEP, 13 + wild_mon SPECIES_MAREEP, 3 + wild_mon SPECIES_MAREEP, 5 + wild_mon SPECIES_MAREEP, 11 + wild_mon SPECIES_MAREEP, 5 + wild_mon SPECIES_MAREEP, 11 .align 2 gAlteringCave2_LandMonsInfo:: @ 8552B80 @@ -3487,18 +3487,18 @@ gAlteringCave2_LandMonsInfo:: @ 8552B80 .align 2 gAlteringCave3_LandMons:: @ 8552B88 - wild_mon PINECO, 23 - wild_mon PINECO, 25 - wild_mon PINECO, 22 - wild_mon PINECO, 27 - wild_mon PINECO, 23 - wild_mon PINECO, 25 - wild_mon PINECO, 29 - wild_mon PINECO, 19 - wild_mon PINECO, 21 - wild_mon PINECO, 27 - wild_mon PINECO, 21 - wild_mon PINECO, 27 + wild_mon SPECIES_PINECO, 23 + wild_mon SPECIES_PINECO, 25 + wild_mon SPECIES_PINECO, 22 + wild_mon SPECIES_PINECO, 27 + wild_mon SPECIES_PINECO, 23 + wild_mon SPECIES_PINECO, 25 + wild_mon SPECIES_PINECO, 29 + wild_mon SPECIES_PINECO, 19 + wild_mon SPECIES_PINECO, 21 + wild_mon SPECIES_PINECO, 27 + wild_mon SPECIES_PINECO, 21 + wild_mon SPECIES_PINECO, 27 .align 2 gAlteringCave3_LandMonsInfo:: @ 8552BB8 @@ -3507,18 +3507,18 @@ gAlteringCave3_LandMonsInfo:: @ 8552BB8 .align 2 gAlteringCave4_LandMons:: @ 8552BC0 - wild_mon HOUNDOUR, 16 - wild_mon HOUNDOUR, 18 - wild_mon HOUNDOUR, 14 - wild_mon HOUNDOUR, 20 - wild_mon HOUNDOUR, 16 - wild_mon HOUNDOUR, 18 - wild_mon HOUNDOUR, 22 - wild_mon HOUNDOUR, 12 - wild_mon HOUNDOUR, 14 - wild_mon HOUNDOUR, 20 - wild_mon HOUNDOUR, 14 - wild_mon HOUNDOUR, 20 + wild_mon SPECIES_HOUNDOUR, 16 + wild_mon SPECIES_HOUNDOUR, 18 + wild_mon SPECIES_HOUNDOUR, 14 + wild_mon SPECIES_HOUNDOUR, 20 + wild_mon SPECIES_HOUNDOUR, 16 + wild_mon SPECIES_HOUNDOUR, 18 + wild_mon SPECIES_HOUNDOUR, 22 + wild_mon SPECIES_HOUNDOUR, 12 + wild_mon SPECIES_HOUNDOUR, 14 + wild_mon SPECIES_HOUNDOUR, 20 + wild_mon SPECIES_HOUNDOUR, 14 + wild_mon SPECIES_HOUNDOUR, 20 .align 2 gAlteringCave4_LandMonsInfo:: @ 8552BF0 @@ -3527,18 +3527,18 @@ gAlteringCave4_LandMonsInfo:: @ 8552BF0 .align 2 gAlteringCave5_LandMons:: @ 8552BF8 - wild_mon TEDDIURSA, 10 - wild_mon TEDDIURSA, 12 - wild_mon TEDDIURSA, 8 - wild_mon TEDDIURSA, 14 - wild_mon TEDDIURSA, 10 - wild_mon TEDDIURSA, 12 - wild_mon TEDDIURSA, 16 - wild_mon TEDDIURSA, 6 - wild_mon TEDDIURSA, 8 - wild_mon TEDDIURSA, 14 - wild_mon TEDDIURSA, 8 - wild_mon TEDDIURSA, 14 + wild_mon SPECIES_TEDDIURSA, 10 + wild_mon SPECIES_TEDDIURSA, 12 + wild_mon SPECIES_TEDDIURSA, 8 + wild_mon SPECIES_TEDDIURSA, 14 + wild_mon SPECIES_TEDDIURSA, 10 + wild_mon SPECIES_TEDDIURSA, 12 + wild_mon SPECIES_TEDDIURSA, 16 + wild_mon SPECIES_TEDDIURSA, 6 + wild_mon SPECIES_TEDDIURSA, 8 + wild_mon SPECIES_TEDDIURSA, 14 + wild_mon SPECIES_TEDDIURSA, 8 + wild_mon SPECIES_TEDDIURSA, 14 .align 2 gAlteringCave5_LandMonsInfo:: @ 8552C28 @@ -3547,18 +3547,18 @@ gAlteringCave5_LandMonsInfo:: @ 8552C28 .align 2 gAlteringCave6_LandMons:: @ 8552C30 - wild_mon AIPOM, 22 - wild_mon AIPOM, 24 - wild_mon AIPOM, 20 - wild_mon AIPOM, 26 - wild_mon AIPOM, 22 - wild_mon AIPOM, 24 - wild_mon AIPOM, 28 - wild_mon AIPOM, 18 - wild_mon AIPOM, 20 - wild_mon AIPOM, 26 - wild_mon AIPOM, 20 - wild_mon AIPOM, 26 + wild_mon SPECIES_AIPOM, 22 + wild_mon SPECIES_AIPOM, 24 + wild_mon SPECIES_AIPOM, 20 + wild_mon SPECIES_AIPOM, 26 + wild_mon SPECIES_AIPOM, 22 + wild_mon SPECIES_AIPOM, 24 + wild_mon SPECIES_AIPOM, 28 + wild_mon SPECIES_AIPOM, 18 + wild_mon SPECIES_AIPOM, 20 + wild_mon SPECIES_AIPOM, 26 + wild_mon SPECIES_AIPOM, 20 + wild_mon SPECIES_AIPOM, 26 .align 2 gAlteringCave6_LandMonsInfo:: @ 8552C60 @@ -3567,18 +3567,18 @@ gAlteringCave6_LandMonsInfo:: @ 8552C60 .align 2 gAlteringCave7_LandMons:: @ 8552C68 - wild_mon SHUCKLE, 22 - wild_mon SHUCKLE, 24 - wild_mon SHUCKLE, 20 - wild_mon SHUCKLE, 26 - wild_mon SHUCKLE, 22 - wild_mon SHUCKLE, 24 - wild_mon SHUCKLE, 28 - wild_mon SHUCKLE, 18 - wild_mon SHUCKLE, 20 - wild_mon SHUCKLE, 26 - wild_mon SHUCKLE, 20 - wild_mon SHUCKLE, 26 + wild_mon SPECIES_SHUCKLE, 22 + wild_mon SPECIES_SHUCKLE, 24 + wild_mon SPECIES_SHUCKLE, 20 + wild_mon SPECIES_SHUCKLE, 26 + wild_mon SPECIES_SHUCKLE, 22 + wild_mon SPECIES_SHUCKLE, 24 + wild_mon SPECIES_SHUCKLE, 28 + wild_mon SPECIES_SHUCKLE, 18 + wild_mon SPECIES_SHUCKLE, 20 + wild_mon SPECIES_SHUCKLE, 26 + wild_mon SPECIES_SHUCKLE, 20 + wild_mon SPECIES_SHUCKLE, 26 .align 2 gAlteringCave7_LandMonsInfo:: @ 8552C98 @@ -3587,18 +3587,18 @@ gAlteringCave7_LandMonsInfo:: @ 8552C98 .align 2 gAlteringCave8_LandMons:: @ 8552CA0 - wild_mon STANTLER, 22 - wild_mon STANTLER, 24 - wild_mon STANTLER, 20 - wild_mon STANTLER, 26 - wild_mon STANTLER, 22 - wild_mon STANTLER, 24 - wild_mon STANTLER, 28 - wild_mon STANTLER, 18 - wild_mon STANTLER, 20 - wild_mon STANTLER, 26 - wild_mon STANTLER, 20 - wild_mon STANTLER, 26 + wild_mon SPECIES_STANTLER, 22 + wild_mon SPECIES_STANTLER, 24 + wild_mon SPECIES_STANTLER, 20 + wild_mon SPECIES_STANTLER, 26 + wild_mon SPECIES_STANTLER, 22 + wild_mon SPECIES_STANTLER, 24 + wild_mon SPECIES_STANTLER, 28 + wild_mon SPECIES_STANTLER, 18 + wild_mon SPECIES_STANTLER, 20 + wild_mon SPECIES_STANTLER, 26 + wild_mon SPECIES_STANTLER, 20 + wild_mon SPECIES_STANTLER, 26 .align 2 gAlteringCave8_LandMonsInfo:: @ 8552CD0 @@ -3607,18 +3607,18 @@ gAlteringCave8_LandMonsInfo:: @ 8552CD0 .align 2 gAlteringCave9_LandMons:: @ 8552CD8 - wild_mon SMEARGLE, 22 - wild_mon SMEARGLE, 24 - wild_mon SMEARGLE, 20 - wild_mon SMEARGLE, 26 - wild_mon SMEARGLE, 22 - wild_mon SMEARGLE, 24 - wild_mon SMEARGLE, 28 - wild_mon SMEARGLE, 18 - wild_mon SMEARGLE, 20 - wild_mon SMEARGLE, 26 - wild_mon SMEARGLE, 20 - wild_mon SMEARGLE, 26 + wild_mon SPECIES_SMEARGLE, 22 + wild_mon SPECIES_SMEARGLE, 24 + wild_mon SPECIES_SMEARGLE, 20 + wild_mon SPECIES_SMEARGLE, 26 + wild_mon SPECIES_SMEARGLE, 22 + wild_mon SPECIES_SMEARGLE, 24 + wild_mon SPECIES_SMEARGLE, 28 + wild_mon SPECIES_SMEARGLE, 18 + wild_mon SPECIES_SMEARGLE, 20 + wild_mon SPECIES_SMEARGLE, 26 + wild_mon SPECIES_SMEARGLE, 20 + wild_mon SPECIES_SMEARGLE, 26 .align 2 gAlteringCave9_LandMonsInfo:: @ 8552D08 @@ -3627,18 +3627,18 @@ gAlteringCave9_LandMonsInfo:: @ 8552D08 .align 2 gMeteorFalls_StevensCave_LandMons:: @ 8552D10 - wild_mon GOLBAT, 33 - wild_mon GOLBAT, 35 - wild_mon GOLBAT, 33 - wild_mon SOLROCK, 35 - wild_mon SOLROCK, 33 - wild_mon SOLROCK, 37 - wild_mon GOLBAT, 35 - wild_mon SOLROCK, 39 - wild_mon GOLBAT, 38 - wild_mon GOLBAT, 40 - wild_mon GOLBAT, 38 - wild_mon GOLBAT, 40 + wild_mon SPECIES_GOLBAT, 33 + wild_mon SPECIES_GOLBAT, 35 + wild_mon SPECIES_GOLBAT, 33 + wild_mon SPECIES_SOLROCK, 35 + wild_mon SPECIES_SOLROCK, 33 + wild_mon SPECIES_SOLROCK, 37 + wild_mon SPECIES_GOLBAT, 35 + wild_mon SPECIES_SOLROCK, 39 + wild_mon SPECIES_GOLBAT, 38 + wild_mon SPECIES_GOLBAT, 40 + wild_mon SPECIES_GOLBAT, 38 + wild_mon SPECIES_GOLBAT, 40 .align 2 gMeteorFalls_StevensCave_LandMonsInfo:: @ 8552D40 diff --git a/graphics/interface/ball/dive.png b/graphics/interface/ball/dive.png Binary files differnew file mode 100644 index 000000000..5be9b1ed6 --- /dev/null +++ b/graphics/interface/ball/dive.png diff --git a/graphics/interface/ball/great.png b/graphics/interface/ball/great.png Binary files differnew file mode 100644 index 000000000..0c054d7d3 --- /dev/null +++ b/graphics/interface/ball/great.png diff --git a/graphics/interface/ball/luxury.png b/graphics/interface/ball/luxury.png Binary files differnew file mode 100644 index 000000000..8056416b2 --- /dev/null +++ b/graphics/interface/ball/luxury.png diff --git a/graphics/interface/ball/master.png b/graphics/interface/ball/master.png Binary files differnew file mode 100644 index 000000000..9787a8896 --- /dev/null +++ b/graphics/interface/ball/master.png diff --git a/graphics/interface/ball/nest.png b/graphics/interface/ball/nest.png Binary files differnew file mode 100644 index 000000000..a2fa81c1e --- /dev/null +++ b/graphics/interface/ball/nest.png diff --git a/graphics/interface/ball/net.png b/graphics/interface/ball/net.png Binary files differnew file mode 100644 index 000000000..6fef48101 --- /dev/null +++ b/graphics/interface/ball/net.png diff --git a/graphics/interface/ball/poke.png b/graphics/interface/ball/poke.png Binary files differnew file mode 100644 index 000000000..1e4aba669 --- /dev/null +++ b/graphics/interface/ball/poke.png diff --git a/graphics/interface/ball/premier.png b/graphics/interface/ball/premier.png Binary files differnew file mode 100644 index 000000000..f5aaadbaf --- /dev/null +++ b/graphics/interface/ball/premier.png diff --git a/graphics/interface/ball/repeat.png b/graphics/interface/ball/repeat.png Binary files differnew file mode 100644 index 000000000..5abe789a2 --- /dev/null +++ b/graphics/interface/ball/repeat.png diff --git a/graphics/interface/ball/safari.png b/graphics/interface/ball/safari.png Binary files differnew file mode 100644 index 000000000..0dd49aef9 --- /dev/null +++ b/graphics/interface/ball/safari.png diff --git a/graphics/interface/ball/timer.png b/graphics/interface/ball/timer.png Binary files differnew file mode 100644 index 000000000..2b63f6795 --- /dev/null +++ b/graphics/interface/ball/timer.png diff --git a/graphics/wallclock/graphics_85b1f58.png b/graphics/wallclock/graphics_85b1f58.png Binary files differnew file mode 100644 index 000000000..06a4ecad0 --- /dev/null +++ b/graphics/wallclock/graphics_85b1f58.png diff --git a/graphics/wallclock/palette_85b21d4.pal b/graphics/wallclock/palette_85b21d4.pal new file mode 100644 index 000000000..fda317608 --- /dev/null +++ b/graphics/wallclock/palette_85b21d4.pal @@ -0,0 +1,7 @@ +JASC-PAL +0100 +4 +0 0 0 +74 180 189 +255 255 255 +0 0 0 diff --git a/include/abilities.h b/include/abilities.h deleted file mode 100644 index 4c47025f8..000000000 --- a/include/abilities.h +++ /dev/null @@ -1,81 +0,0 @@ -enum -{ - ABILITY_NONE, - ABILITY_STENCH, - ABILITY_DRIZZLE, - ABILITY_SPEED_BOOST, - ABILITY_BATTLE_ARMOR, - ABILITY_STURDY, - ABILITY_DAMP, - ABILITY_LIMBER, - ABILITY_SAND_VEIL, - ABILITY_STATIC, - ABILITY_VOLT_ABSORB, - ABILITY_WATER_ABSORB, - ABILITY_OBLIVIOUS, - ABILITY_CLOUD_NINE, - ABILITY_COMPOUND_EYES, - ABILITY_INSOMNIA, - ABILITY_COLOR_CHANGE, - ABILITY_IMMUNITY, - ABILITY_FLASH_FIRE, - ABILITY_SHIELD_DUST, - ABILITY_OWN_TEMPO, - ABILITY_SUCTION_CUPS, - ABILITY_INTIMIDATE, - ABILITY_SHADOW_TAG, - ABILITY_ROUGH_SKIN, - ABILITY_WONDER_GUARD, - ABILITY_LEVITATE, - ABILITY_EFFECT_SPORE, - ABILITY_SYNCHRONIZE, - ABILITY_CLEAR_BODY, - ABILITY_NATURAL_CURE, - ABILITY_LIGHTNING_ROD, - ABILITY_SERENE_GRACE, - ABILITY_SWIFT_SWIM, - ABILITY_CHLOROPHYLL, - ABILITY_ILLUMINATE, - ABILITY_TRACE, - ABILITY_HUGE_POWER, - ABILITY_POISON_POINT, - ABILITY_INNER_FOCUS, - ABILITY_MAGMA_ARMOR, - ABILITY_WATER_VEIL, - ABILITY_MAGNET_PULL, - ABILITY_SOUNDPROOF, - ABILITY_RAIN_DISH, - ABILITY_SAND_STREAM, - ABILITY_PRESSURE, - ABILITY_THICK_FAT, - ABILITY_EARLY_BIRD, - ABILITY_FLAME_BODY, - ABILITY_RUN_AWAY, - ABILITY_KEEN_EYE, - ABILITY_HYPER_CUTTER, - ABILITY_PICKUP, - ABILITY_TRUANT, - ABILITY_HUSTLE, - ABILITY_CUTE_CHARM, - ABILITY_PLUS, - ABILITY_MINUS, - ABILITY_FORECAST, - ABILITY_STICKY_HOLD, - ABILITY_SHED_SKIN, - ABILITY_GUTS, - ABILITY_MARVEL_SCALE, - ABILITY_LIQUID_OOZE, - ABILITY_OVERGROW, - ABILITY_BLAZE, - ABILITY_TORRENT, - ABILITY_SWARM, - ABILITY_ROCK_HEAD, - ABILITY_DROUGHT, - ABILITY_ARENA_TRAP, - ABILITY_VITAL_SPIRIT, - ABILITY_WHITE_SMOKE, - ABILITY_PURE_POWER, - ABILITY_SHELL_ARMOR, - ABILITY_CACOPHONY, - ABILITY_AIR_LOCK -};
\ No newline at end of file diff --git a/include/battle.h b/include/battle.h index 0939c92b6..71dbe9a57 100644 --- a/include/battle.h +++ b/include/battle.h @@ -53,7 +53,7 @@ #define BATTLE_TYPE_PALACE 0x20000 #define BATTLE_TYPE_ARENA 0x40000 #define BATTLE_TYPE_FACTORY 0x80000 -#define BATTLE_TYPE_x100000 0x100000 +#define BATTLE_TYPE_PIKE 0x100000 #define BATTLE_TYPE_PYRAMID 0x200000 #define BATTLE_TYPE_INGAME_PARTNER 0x400000 #define BATTLE_TYPE_x800000 0x800000 @@ -62,7 +62,7 @@ #define BATTLE_TYPE_x4000000 0x4000000 #define BATTLE_TYPE_SECRET_BASE 0x8000000 #define BATTLE_TYPE_GROUDON 0x10000000 -#define BATTLE_TYPE_KYORGE 0x20000000 +#define BATTLE_TYPE_KYOGRE 0x20000000 #define BATTLE_TYPE_RAYQUAZA 0x40000000 #define BATTLE_TYPE_x80000000 0x80000000 @@ -72,8 +72,8 @@ #define STEVEN_PARTNER_ID 0xC03 #define SECRET_BASE_OPPONENT 0x400 -#define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_x100000 | BATTLE_TYPE_PYRAMID) -#define BATTLE_TYPE_FRONTIER_NO_PYRAMID (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_x100000) +#define BATTLE_TYPE_FRONTIER (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE | BATTLE_TYPE_PYRAMID) +#define BATTLE_TYPE_FRONTIER_NO_PYRAMID (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_DOME | BATTLE_TYPE_PALACE | BATTLE_TYPE_ARENA | BATTLE_TYPE_FACTORY | BATTLE_TYPE_PIKE) #define BATTLE_WON 0x1 #define BATTLE_LOST 0x2 @@ -86,8 +86,9 @@ #define BATTLE_FORFEITED 0x9 #define BATTLE_OPPONENT_TELEPORTED 0xA -#define BATTLE_OUTCOME_BIT_x80 0x80 +#define OUTCOME_LINK_BATTLE_RUN 0x80 +#define STATUS_NONE 0x0 #define STATUS_SLEEP 0x7 #define STATUS_POISON 0x8 #define STATUS_BURN 0x10 @@ -228,9 +229,9 @@ #define BATTLE_TERRAIN_UNDERWATER 3 #define BATTLE_TERRAIN_WATER 4 #define BATTLE_TERRAIN_POND 5 -#define BATTLE_TERRAIN_ROCK 6 +#define BATTLE_TERRAIN_MOUNTAIN 6 #define BATTLE_TERRAIN_CAVE 7 -#define BATTLE_TERRAIN_INSIDE 8 +#define BATTLE_TERRAIN_BUILDING 8 #define BATTLE_TERRAIN_PLAIN 9 // array entries for battle communication @@ -272,6 +273,8 @@ #define BS_GET_TARGET 0 #define BS_GET_ATTACKER 1 #define BS_GET_EFFECT_BANK 2 +#define BS_GET_gBank1 3 +#define BS_GET_BANK_0 7 #define BS_ATTACKER_WITH_PARTNER 4 // for atk98_status_icon_update #define BS_GET_ATTACKER_SIDE 8 // for atk1E_jumpifability #define BS_GET_NOT_ATTACKER_SIDE 9 // for atk1E_jumpifability @@ -295,7 +298,6 @@ struct TrainerMonNoItemDefaultMoves u16 species; }; -u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg); u8 GetBankSide(u8 bank); struct TrainerMonItemDefaultMoves @@ -325,10 +327,10 @@ struct TrainerMonItemCustomMoves union TrainerMonPtr { - struct TrainerMonNoItemDefaultMoves* NoItemDefaultMoves; - struct TrainerMonNoItemCustomMoves* NoItemCustomMoves; - struct TrainerMonItemDefaultMoves* ItemDefaultMoves; - struct TrainerMonItemCustomMoves* ItemCustomMoves; + struct TrainerMonNoItemDefaultMoves *NoItemDefaultMoves; + struct TrainerMonNoItemCustomMoves *NoItemCustomMoves; + struct TrainerMonItemDefaultMoves *ItemDefaultMoves; + struct TrainerMonItemCustomMoves *ItemCustomMoves; }; struct Trainer @@ -345,9 +347,6 @@ struct Trainer /*0x24*/ union TrainerMonPtr party; }; -#define PARTY_FLAG_CUSTOM_MOVES 0x1 -#define PARTY_FLAG_HAS_ITEM 0x2 - extern const struct Trainer gTrainers[]; #define TRAINER_ENCOUNTER_MUSIC(trainer)((gTrainers[trainer].encounterMusic_gender & 0x7F)) @@ -613,10 +612,10 @@ struct BattleStruct u8 focusPunchBank; u8 field_49; u8 moneyMultiplier; - u8 field_4B; + u8 savedTurnActionNumber; u8 switchInAbilitiesCounter; - u8 field_4D; - u8 field_4E; + u8 faintedActionsState; + u8 faintedActionsBank; u8 field_4F; u16 expValue; u8 field_52; @@ -688,8 +687,8 @@ struct BattleStruct u8 field_182; u8 field_183; struct BattleEnigmaBerry battleEnigmaBerry; - u8 field_1A0; - u8 field_1A1; + u8 wishPerishSongState; + u8 wishPerishSongBank; bool8 overworldWeatherDone; u8 atkCancellerTracker; u8 field_1A4[96]; @@ -704,13 +703,6 @@ struct BattleStruct extern struct BattleStruct* gBattleStruct; -#define MEME_ACCESS_U8(structName, structPtr, arrayId, offsetField, value) \ -{ \ - u8* var2 = (u8*)((u32)(arrayId)); \ - var2 = (u32)(structPtr) + var2; \ - var2[offsetof(struct structName, offsetField)] = value; \ -} - #define GET_MOVE_TYPE(move, typeArg) \ { \ if (gBattleStruct->dynamicMoveType) \ @@ -805,7 +797,7 @@ extern struct BattleStruct* gBattleStruct; #define B_ANIM_ITEM_STEAL 0x10 #define B_ANIM_SNATCH_MOVE 0x11 #define B_ANIM_FUTURE_SIGHT_HIT 0x12 -#define B_ANIM_x13 0x13 +#define B_ANIM_DOOM_DESIRE_HIT 0x13 #define B_ANIM_x14 0x14 #define B_ANIM_INGRAIN_HEAL 0x15 #define B_ANIM_WISH_HEAL 0x16 @@ -835,23 +827,23 @@ extern struct BattleStruct* gBattleStruct; #define GET_STAT_BUFF_VALUE(n)(((n >> 4) & 7)) // 0x10, 0x20, 0x40 #define STAT_BUFF_NEGATIVE 0x80 // 0x80, the sign bit -#define SET_STAT_BUFF_ID(n)((n & 0xF)) #define SET_STAT_BUFF_VALUE(n)(((s8)(((s8)(n) << 4)) & 0xF0)) +#define SET_STATCHANGER(statId, stage, goesDown)(gBattleScripting.statChanger = (statId) + (stage << 4) + (goesDown << 7)) + struct BattleScripting { s32 painSplitHp; s32 bideDmg; u8 multihitString[6]; u8 dmgMultiplier; - u8 field_F; + u8 twoTurnsMoveStringId; u8 animArg1; u8 animArg2; - u8 field_12; - u8 field_13; + u16 tripleKickPower; u8 atk49_state; - u8 field_15; - u8 field_16; + u8 bankWithAbility; + u8 multihitMoveEffect; u8 bank; u8 animTurn; u8 animTargetsHit; @@ -937,7 +929,7 @@ struct BattleHealthboxInfo u8 flag_x1 : 1; u8 flag_x2 : 1; u8 flag_x4 : 1; - u8 flag_x8 : 1; + u8 ballAnimActive : 1; // 0x8 u8 statusAnimActive : 1; // x10 u8 animFromTableActive : 1; // x20 u8 specialAnimActive : 1; //x40 diff --git a/include/battle_anim.h b/include/battle_anim.h index c055e94fa..9fb7ccd53 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -79,11 +79,22 @@ void HandleIntroSlide(u8 terrainId); // battle_anim_80A5C6C.s void sub_80A6EEC(struct Sprite *sprite); +void sub_80A68D4(struct Sprite *sprite); +void sub_80A6F3C(struct Sprite *sprite); void sub_80A8278(void); void sub_80A6B30(struct UnknownAnimStruct2*); void sub_80A6B90(struct UnknownAnimStruct2*, u32 arg1); u8 sub_80A82E4(u8 bank); -u8 sub_80A5C6C(u8 bank, u8 attributeId); +bool8 AnimateBallThrow(struct Sprite *sprite); + +enum +{ + BANK_X_POS, + BANK_Y_POS, +}; + +u8 GetBankPosition(u8 bank, u8 attributeId); + bool8 IsBankSpritePresent(u8 bank); void sub_80A6C68(u8 arg0); u8 GetAnimBankSpriteId(u8 wantedBank); @@ -99,4 +110,9 @@ u8 GetSubstituteSpriteDefault_Y(u8 bank); // battle_anim_80A9C70.s void LaunchStatusAnimation(u8 bank, u8 statusAnimId); +// battle_anim_8170478.s +u8 ItemIdToBallId(u16 itemId); +u8 LaunchBallStarsTask(u8 x, u8 y, u8 kindOfStars, u8 arg3, u8 ballId); +u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 bank, u32 arg2, u8 ballId); + #endif // GUARD_BATTLE_ANIM_H diff --git a/include/battle_controllers.h b/include/battle_controllers.h index 973a723e0..c69cb1017 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -198,7 +198,7 @@ void EmitBallThrowAnim(u8 bufferId, u8 caseId); void EmitPause(u8 bufferId, u8 toWait, void *data); // unused void EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr, u8 multihit); void EmitPrintString(u8 bufferId, u16 stringId); -void EmitPrintStringPlayerOnly(u8 bufferId, u16 stringId); +void EmitPrintSelectionString(u8 bufferId, u16 stringId); void EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2); void EmitUnknownYesNoBox(u8 bufferId); void EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData); @@ -224,7 +224,7 @@ void EmitCmd39(u8 bufferId); // unused void EmitCmd40(u8 bufferId); // unused void EmitHitAnimation(u8 bufferId); void EmitCmd42(u8 bufferId); -void EmitEffectivenessSound(u8 bufferId, u16 songId); +void EmitPlaySE(u8 bufferId, u16 songId); void EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM); void EmitFaintingCry(u8 bufferId); void EmitIntroSlide(u8 bufferId, u8 terrainId); diff --git a/include/battle_frontier_2.h b/include/battle_frontier_2.h index 4f37248cc..801c3f3ec 100644 --- a/include/battle_frontier_2.h +++ b/include/battle_frontier_2.h @@ -5,5 +5,6 @@ void sub_81A8934(u8); void sub_81A895C(void); u16 sub_81A89A0(u8); void sub_81A8AF8(void); +bool8 InBattlePike(void); #endif // GUARD_BATTLE_FRONTIER_2_H diff --git a/include/battle_message.h b/include/battle_message.h index 3f9b38cad..30ddca469 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -67,13 +67,21 @@ #define B_BUFF_STAT 5 #define B_BUFF_SPECIES 6 #define B_BUFF_MON_NICK 7 -#define B_BUFF_NEGATIVE_FLAVOUR 8 +#define B_BUFF_NEGATIVE_FLAVOR 8 #define B_BUFF_ABILITY 9 #define B_BUFF_ITEM 10 #define B_BUFF_PLACEHOLDER_BEGIN 0xFD #define B_BUFF_EOS 0xFF +#define PREPARE_FLAVOR_BUFFER(textVar, flavorId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_NEGATIVE_FLAVOR; \ + textVar[2] = flavorId; \ + textVar[3] = B_BUFF_EOS; \ +} + #define PREPARE_STAT_BUFFER(textVar, statId) \ { \ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ @@ -189,7 +197,7 @@ struct StringInfoBattle { u16 currentMove; - u16 lastMove; + u16 originallyUsedMove; u16 lastItem; u8 lastAbility; u8 scrActive; diff --git a/include/battle_move_effects.h b/include/battle_move_effects.h deleted file mode 100644 index 4a9415379..000000000 --- a/include/battle_move_effects.h +++ /dev/null @@ -1,222 +0,0 @@ -#ifndef GUARD_BATTLE_MOVE_EFFECTS_H -#define GUARD_BATTLE_MOVE_EFFECTS_H - -enum -{ - EFFECT_HIT, - EFFECT_SLEEP, - EFFECT_POISON_HIT, - EFFECT_ABSORB, - EFFECT_BURN_HIT, - EFFECT_FREEZE_HIT, - EFFECT_PARALYZE_HIT, - EFFECT_EXPLOSION, - EFFECT_DREAM_EATER, - EFFECT_MIRROR_MOVE, - EFFECT_ATTACK_UP, - EFFECT_DEFENSE_UP, - EFFECT_SPEED_UP, - EFFECT_SPECIAL_ATTACK_UP, - EFFECT_SPECIAL_DEFENSE_UP, - EFFECT_ACCURACY_UP, - EFFECT_EVASION_UP, - EFFECT_ALWAYS_HIT, - EFFECT_ATTACK_DOWN, - EFFECT_DEFENSE_DOWN, - EFFECT_SPEED_DOWN, - EFFECT_SPECIAL_ATTACK_DOWN, // unused - EFFECT_SPECIAL_DEFENSE_DOWN, // unused - EFFECT_ACCURACY_DOWN, - EFFECT_EVASION_DOWN, - EFFECT_HAZE, - EFFECT_BIDE, - EFFECT_RAMPAGE, - EFFECT_ROAR, - EFFECT_MULTI_HIT, - EFFECT_CONVERSION, - EFFECT_FLINCH_HIT, - EFFECT_RESTORE_HP, - EFFECT_TOXIC, - EFFECT_PAY_DAY, - EFFECT_LIGHT_SCREEN, - EFFECT_TRI_ATTACK, - EFFECT_REST, - EFFECT_OHKO, - EFFECT_RAZOR_WIND, - EFFECT_SUPER_FANG, - EFFECT_DRAGON_RAGE, - EFFECT_TRAP, - EFFECT_HIGH_CRITICAL, - EFFECT_DOUBLE_HIT, - EFFECT_RECOIL_IF_MISS, - EFFECT_MIST, - EFFECT_FOCUS_ENERGY, - EFFECT_RECOIL, - EFFECT_CONFUSE, - EFFECT_ATTACK_UP_2, - EFFECT_DEFENSE_UP_2, - EFFECT_SPEED_UP_2, - EFFECT_SPECIAL_ATTACK_UP_2, - EFFECT_SPECIAL_DEFENSE_UP_2, - EFFECT_ACCURACY_UP_2, - EFFECT_EVASION_UP_2, - EFFECT_TRANSFORM, - EFFECT_ATTACK_DOWN_2, - EFFECT_DEFENSE_DOWN_2, - EFFECT_SPEED_DOWN_2, - EFFECT_SPECIAL_ATTACK_DOWN_2, - EFFECT_SPECIAL_DEFENSE_DOWN_2, - EFFECT_ACCURACY_DOWN_2, - EFFECT_EVASION_DOWN_2, - EFFECT_REFLECT, - EFFECT_POISON, - EFFECT_PARALYZE, - EFFECT_ATTACK_DOWN_HIT, - EFFECT_DEFENSE_DOWN_HIT, - EFFECT_SPEED_DOWN_HIT, - EFFECT_SPECIAL_ATTACK_DOWN_HIT, - EFFECT_SPECIAL_DEFENSE_DOWN_HIT, - EFFECT_ACCURACY_DOWN_HIT, - EFFECT_EVASION_DOWN_HIT, - EFFECT_SKY_ATTACK, - EFFECT_CONFUSE_HIT, - EFFECT_TWINEEDLE, - EFFECT_VITAL_THROW, - EFFECT_SUBSTITUTE, - EFFECT_RECHARGE, - EFFECT_RAGE, - EFFECT_MIMIC, - EFFECT_METRONOME, - EFFECT_LEECH_SEED, - EFFECT_SPLASH, - EFFECT_DISABLE, - EFFECT_LEVEL_DAMAGE, - EFFECT_PSYWAVE, - EFFECT_COUNTER, - EFFECT_ENCORE, - EFFECT_PAIN_SPLIT, - EFFECT_SNORE, - EFFECT_CONVERSION_2, - EFFECT_LOCK_ON, - EFFECT_SKETCH, - EFFECT_UNUSED_60, // thaw - EFFECT_SLEEP_TALK, - EFFECT_DESTINY_BOND, - EFFECT_FLAIL, - EFFECT_SPITE, - EFFECT_FALSE_SWIPE, - EFFECT_HEAL_BELL, - EFFECT_QUICK_ATTACK, - EFFECT_TRIPLE_KICK, - EFFECT_THIEF, - EFFECT_MEAN_LOOK, - EFFECT_NIGHTMARE, - EFFECT_MINIMIZE, - EFFECT_CURSE, - EFFECT_UNUSED_6E, - EFFECT_PROTECT, - EFFECT_SPIKES, - EFFECT_FORESIGHT, - EFFECT_PERISH_SONG, - EFFECT_SANDSTORM, - EFFECT_ENDURE, - EFFECT_ROLLOUT, - EFFECT_SWAGGER, - EFFECT_FURY_CUTTER, - EFFECT_ATTRACT, - EFFECT_RETURN, - EFFECT_PRESENT, - EFFECT_FRUSTRATION, - EFFECT_SAFEGUARD, - EFFECT_THAW_HIT, - EFFECT_MAGNITUDE, - EFFECT_BATON_PASS, - EFFECT_PURSUIT, - EFFECT_RAPID_SPIN, - EFFECT_SONICBOOM, - EFFECT_UNUSED_83, - EFFECT_MORNING_SUN, - EFFECT_SYNTHESIS, - EFFECT_MOONLIGHT, - EFFECT_HIDDEN_POWER, - EFFECT_RAIN_DANCE, - EFFECT_SUNNY_DAY, - EFFECT_DEFENSE_UP_HIT, - EFFECT_ATTACK_UP_HIT, - EFFECT_ALL_STATS_UP_HIT, - EFFECT_UNUSED_8D, // incomplete fake out in gen 2 - EFFECT_BELLY_DRUM, - EFFECT_PSYCH_UP, - EFFECT_MIRROR_COAT, - EFFECT_SKULL_BASH, - EFFECT_TWISTER, - EFFECT_EARTHQUAKE, - EFFECT_FUTURE_SIGHT, - EFFECT_GUST, - EFFECT_FLINCH_HIT_2, // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM - EFFECT_SOLARBEAM, - EFFECT_THUNDER, - EFFECT_TELEPORT, - EFFECT_BEAT_UP, - EFFECT_FLY, - EFFECT_DEFENSE_CURL, - EFFECT_SOFTBOILED, - EFFECT_FAKE_OUT, - EFFECT_UPROAR, - EFFECT_STOCKPILE, - EFFECT_SPIT_UP, - EFFECT_SWALLOW, - EFFECT_UNUSED_A3, - EFFECT_HAIL, - EFFECT_TORMENT, - EFFECT_FLATTER, - EFFECT_WILL_O_WISP, - EFFECT_MEMENTO, - EFFECT_FACADE, - EFFECT_FOCUS_PUNCH, - EFFECT_SMELLINGSALT, - EFFECT_FOLLOW_ME, - EFFECT_NATURE_POWER, - EFFECT_CHARGE, - EFFECT_TAUNT, - EFFECT_HELPING_HAND, - EFFECT_TRICK, - EFFECT_ROLE_PLAY, - EFFECT_WISH, - EFFECT_ASSIST, - EFFECT_INGRAIN, - EFFECT_SUPERPOWER, - EFFECT_MAGIC_COAT, - EFFECT_RECYCLE, - EFFECT_REVENGE, - EFFECT_BRICK_BREAK, - EFFECT_YAWN, - EFFECT_KNOCK_OFF, - EFFECT_ENDEAVOR, - EFFECT_ERUPTION, - EFFECT_SKILL_SWAP, - EFFECT_IMPRISON, - EFFECT_REFRESH, - EFFECT_GRUDGE, - EFFECT_SNATCH, - EFFECT_LOW_KICK, - EFFECT_SECRET_POWER, - EFFECT_DOUBLE_EDGE, - EFFECT_TEETER_DANCE, - EFFECT_BLAZE_KICK, - EFFECT_MUD_SPORT, - EFFECT_POISON_FANG, - EFFECT_WEATHER_BALL, - EFFECT_OVERHEAT, - EFFECT_TICKLE, - EFFECT_COSMIC_POWER, - EFFECT_SKY_UPPERCUT, - EFFECT_BULK_UP, - EFFECT_POISON_TAIL, - EFFECT_WATER_SPORT, - EFFECT_CALM_MIND, - EFFECT_DRAGON_DANCE, - EFFECT_CAMOUFLAGE, -}; - -#endif // GUARD_BATTLE_MOVE_EFFECTS_H diff --git a/include/battle_script_commands.h b/include/battle_script_commands.h index ebfeabccc..80fabaa64 100644 --- a/include/battle_script_commands.h +++ b/include/battle_script_commands.h @@ -1,6 +1,10 @@ #ifndef GUARD_BATTLE_SCRIPT_COMMANDS_H #define GUARD_BATTLE_SCRIPT_COMMANDS_H +#define NO_ACC_CALC 0xFFFE +#define NO_ACC_CALC_CHECK_LOCK_ON 0xFFFF +#define ACC_CURR_MOVE 0 + #define CMP_EQUAL 0x0 #define CMP_NOT_EQUAL 0x1 #define CMP_GREATER_THAN 0x2 @@ -21,7 +25,7 @@ #define VARIOUS_CANCEL_MULTI_TURN_MOVES 0 #define VARIOUS_SET_MAGIC_COAT_TARGET 1 -#define VARIOUS_CAN_RUN_FROM_BATTLE 2 +#define VARIOUS_IS_RUNNING_IMPOSSIBLE 2 #define VARIOUS_GET_MOVE_TARGET 3 #define VARIOUS_RESET_INTIMIDATE_TRACE_BITS 5 #define VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP 6 diff --git a/include/battle_scripts.h b/include/battle_scripts.h new file mode 100644 index 000000000..2e31a37c5 --- /dev/null +++ b/include/battle_scripts.h @@ -0,0 +1,290 @@ +#ifndef GUARD_BATTLE_SCRIPTS_H +#define GUARD_BATTLE_SCRIPTS_H + +extern const u8 BattleScript_HitFromCritCalc[]; +extern const u8 BattleScript_MoveEnd[]; +extern const u8 BattleScript_MakeMoveMissed[]; +extern const u8 BattleScript_PrintMoveMissed[]; +extern const u8 BattleScript_MoveMissedPause[]; +extern const u8 BattleScript_MoveMissed[]; +extern const u8 BattleScript_ButItFailed[]; +extern const u8 BattleScript_StatUp[]; +extern const u8 BattleScript_StatDown[]; +extern const u8 BattleScript_AlreadyAtFullHp[]; +extern const u8 BattleScript_PresentHealTarget[]; +extern const u8 BattleScript_MoveUsedMustRecharge[]; +extern const u8 BattleScript_FaintAttacker[]; +extern const u8 BattleScript_FaintTarget[]; +extern const u8 BattleScript_GiveExp[]; +extern const u8 BattleScript_HandleFaintedMon[]; +extern const u8 BattleScript_LocalTrainerBattleWon[]; +extern const u8 BattleScript_LocalTwoTrainersDefeated[]; +extern const u8 BattleScript_LocalBattleWonLoseTexts[]; +extern const u8 BattleScript_LocalBattleWonReward[]; +extern const u8 BattleScript_PayDayMoneyAndPickUpItems[]; +extern const u8 BattleScript_LocalBattleLost[]; +extern const u8 BattleScript_LocalBattleLostPrintWhiteOut[]; +extern const u8 BattleScript_LocalBattleLostEnd[]; +extern const u8 BattleScript_CheckDomeDrew[]; +extern const u8 BattleScript_82DAA0B[]; +extern const u8 BattleScript_82DAA31[]; +extern const u8 BattleScript_LinkBattleWonOrLost[]; +extern const u8 BattleScript_82DAA5C[]; +extern const u8 BattleScript_82DAA83[]; +extern const u8 BattleScript_FrontierTrainerBattleWon[]; +extern const u8 BattleScript_82DAAAB[]; +extern const u8 BattleScript_82DAAAE[]; +extern const u8 BattleScript_82DAACB[]; +extern const u8 BattleScript_82DAADA[]; +extern const u8 BattleScript_SmokeBallEscape[]; +extern const u8 BattleScript_RanAwayUsingMonAbility[]; +extern const u8 BattleScript_GotAwaySafely[]; +extern const u8 BattleScript_WildMonFled[]; +extern const u8 BattleScript_PrintCantRunFromTrainer[]; +extern const u8 BattleScript_PrintFailedToRunString[]; +extern const u8 BattleScript_PrintCantEscapeFromBattle[]; +extern const u8 BattleScript_PrintFullBox[]; +extern const u8 BattleScript_ActionSwitch[]; +extern const u8 BattleScript_82DAB35[]; +extern const u8 BattleScript_82DAB37[]; +extern const u8 BattleScript_82DAB44[]; +extern const u8 BattleScript_82DAB77[]; +extern const u8 BattleScript_82DABB8[]; +extern const u8 BattleScript_Pausex20[]; +extern const u8 BattleScript_LevelUp[]; +extern const u8 BattleScript_RainContinuesOrEnds[]; +extern const u8 BattleScript_DamagingWeatherContinues[]; +extern const u8 BattleScript_SandStormHailEnds[]; +extern const u8 BattleScript_SunlightContinues[]; +extern const u8 BattleScript_SunlightFaded[]; +extern const u8 BattleScript_OverworldWeatherStarts[]; +extern const u8 BattleScript_SideStatusWoreOff[]; +extern const u8 BattleScript_SafeguardProtected[]; +extern const u8 BattleScript_SafeguardEnds[]; +extern const u8 BattleScript_LeechSeedTurnDrain[]; +extern const u8 BattleScript_82DAD47[]; +extern const u8 BattleScript_82DAD4D[]; +extern const u8 BattleScript_BideStoringEnergy[]; +extern const u8 BattleScript_BideAttack[]; +extern const u8 BattleScript_BideNoEnergyToAttack[]; +extern const u8 BattleScript_SuccessForceOut[]; +extern const u8 BattleScript_82DADF1[]; +extern const u8 BattleScript_MistProtected[]; +extern const u8 BattleScript_RageIsBuilding[]; +extern const u8 BattleScript_MoveUsedIsDisabled[]; +extern const u8 BattleScript_SelectingDisabledMove[]; +extern const u8 BattleScript_DisabledNoMore[]; +extern const u8 BattleScript_SelectingDisabledMoveInPalace[]; +extern const u8 BattleScript_SelectingUnusableMoveInPalace[]; +extern const u8 BattleScript_EncoredNoMore[]; +extern const u8 BattleScript_DestinyBondTakesLife[]; +extern const u8 BattleScript_SpikesOnAttacker[]; +extern const u8 BattleScript_82DAE7A[]; +extern const u8 BattleScript_SpikesOnTarget[]; +extern const u8 BattleScript_82DAEB1[]; +extern const u8 BattleScript_SpikesOngBank1[]; +extern const u8 BattleScript_82DAEE8[]; +extern const u8 BattleScript_82DAEFE[]; +extern const u8 BattleScript_PerishSongTakesLife[]; +extern const u8 BattleScript_PerishSongCountGoesDown[]; +extern const u8 BattleScript_AllStatsUp[]; +extern const u8 BattleScript_82DAF54[]; +extern const u8 BattleScript_82DAF72[]; +extern const u8 BattleScript_82DAF86[]; +extern const u8 BattleScript_82DAF9A[]; +extern const u8 BattleScript_82DAFAE[]; +extern const u8 BattleScript_82DAFC2[]; +extern const u8 BattleScript_RapidSpinAway[]; +extern const u8 BattleScript_WrapFree[]; +extern const u8 BattleScript_LeechSeedFree[]; +extern const u8 BattleScript_SpikesFree[]; +extern const u8 BattleScript_MonTookFutureAttack[]; +extern const u8 BattleScript_82DB001[]; +extern const u8 BattleScript_82DB008[]; +extern const u8 BattleScript_82DB020[]; +extern const u8 BattleScript_82DB027[]; +extern const u8 BattleScript_82DB03F[]; +extern const u8 BattleScript_82DB058[]; +extern const u8 BattleScript_NoMovesLeft[]; +extern const u8 BattleScript_SelectingMoveWithNoPP[]; +extern const u8 BattleScript_NoPPForMove[]; +extern const u8 BattleScript_SelectingTormentedMove[]; +extern const u8 BattleScript_MoveUsedIsTormented[]; +extern const u8 BattleScript_SelectingTormentedMoveInPalace[]; +extern const u8 BattleScript_SelectingNotAllowedMoveTaunt[]; +extern const u8 BattleScript_MoveUsedIsTaunted[]; +extern const u8 BattleScript_SelectingNotAllowedMoveTauntInPalace[]; +extern const u8 BattleScript_WishComesTrue[]; +extern const u8 BattleScript_IngrainTurnHeal[]; +extern const u8 BattleScript_AtkDefDown[]; +extern const u8 BattleScript_82DB144[]; +extern const u8 BattleScript_82DB167[]; +extern const u8 BattleScript_KnockedOff[]; +extern const u8 BattleScript_MoveUsedIsImprisoned[]; +extern const u8 BattleScript_SelectingImprisionedMove[]; +extern const u8 BattleScript_SelectingImprisionedMoveInPalace[]; +extern const u8 BattleScript_GrudgeTakesPp[]; +extern const u8 BattleScript_MagicCoatBounce[]; +extern const u8 BattleScript_SnatchedMove[]; +extern const u8 BattleScript_EnduredMsg[]; +extern const u8 BattleScript_OneHitKOMsg[]; +extern const u8 BattleScript_SAtkDown2[]; +extern const u8 BattleScript_82DB1FE[]; +extern const u8 BattleScript_FocusPunchSetUp[]; +extern const u8 BattleScript_MoveUsedIsAsleep[]; +extern const u8 BattleScript_MoveUsedWokeUp[]; +extern const u8 BattleScript_MonWokeUpInUproar[]; +extern const u8 BattleScript_PoisonTurnDmg[]; +extern const u8 BattleScript_82DB243[]; +extern const u8 BattleScript_82DB245[]; +extern const u8 BattleScript_82DB25E[]; +extern const u8 BattleScript_BurnTurnDmg[]; +extern const u8 BattleScript_MoveUsedIsFrozen[]; +extern const u8 BattleScript_MoveUsedUnfroze[]; +extern const u8 BattleScript_DefrostedViaFireMove[]; +extern const u8 BattleScript_MoveUsedIsParalyzed[]; +extern const u8 BattleScript_MoveUsedFlinched[]; +extern const u8 BattleScript_PrintUproarOverTurns[]; +extern const u8 BattleScript_ThrashConfuses[]; +extern const u8 BattleScript_MoveUsedIsConfused[]; +extern const u8 BattleScript_82DB2D4[]; +extern const u8 BattleScript_82DB2FF[]; +extern const u8 BattleScript_MoveUsedIsConfusedNoMore[]; +extern const u8 BattleScript_PrintPayDayMoneyString[]; +extern const u8 BattleScript_WrapTurnDmg[]; +extern const u8 BattleScript_WrapEnds[]; +extern const u8 BattleScript_MoveUsedIsInLove[]; +extern const u8 BattleScript_MoveUsedIsParalyzedCantAttack[]; +extern const u8 BattleScript_NightmareTurnDmg[]; +extern const u8 BattleScript_CurseTurnDmg[]; +extern const u8 BattleScript_TargetPRLZHeal[]; +extern const u8 BattleScript_MoveEffectSleep[]; +extern const u8 BattleScript_82DB374[]; +extern const u8 BattleScript_YawnMakesAsleep[]; +extern const u8 BattleScript_MoveEffectPoison[]; +extern const u8 BattleScript_MoveEffectBurn[]; +extern const u8 BattleScript_MoveEffectFreeze[]; +extern const u8 BattleScript_MoveEffectParalysis[]; +extern const u8 BattleScript_MoveEffectUproar[]; +extern const u8 BattleScript_MoveEffectToxic[]; +extern const u8 BattleScript_MoveEffectPayDay[]; +extern const u8 BattleScript_MoveEffectWrap[]; +extern const u8 BattleScript_MoveEffectConfusion[]; +extern const u8 BattleScript_MoveEffectRecoil33[]; +extern const u8 BattleScript_DoRecoil33[]; +extern const u8 BattleScript_Recoil33End[]; +extern const u8 BattleScript_ItemSteal[]; +extern const u8 BattleScript_DrizzleActivates[]; +extern const u8 BattleScript_SpeedBoostActivates[]; +extern const u8 BattleScript_TraceActivates[]; +extern const u8 BattleScript_RainDishActivates[]; +extern const u8 BattleScript_SandstreamActivates[]; +extern const u8 BattleScript_ShedSkinActivates[]; +extern const u8 BattleScript_WeatherFormChanges[]; +extern const u8 BattleScript_WeatherFormChangesLoop[]; +extern const u8 BattleScript_CastformChange[]; +extern const u8 BattleScript_82DB4AF[]; +extern const u8 BattleScript_82DB4B8[]; +extern const u8 BattleScript_82DB4BE[]; +extern const u8 BattleScript_82DB4C1[]; +extern const u8 BattleScript_82DB4CD[]; +extern const u8 BattleScript_82DB510[]; +extern const u8 BattleScript_82DB51B[]; +extern const u8 BattleScript_82DB51C[]; +extern const u8 BattleScript_DroughtActivates[]; +extern const u8 BattleScript_TookAttack[]; +extern const u8 BattleScript_SturdyPreventsOHKO[]; +extern const u8 BattleScript_DampStopsExplosion[]; +extern const u8 BattleScript_MoveHPDrain_PPLoss[]; +extern const u8 BattleScript_MoveHPDrain[]; +extern const u8 BattleScript_MonMadeMoveUseless_PPLoss[]; +extern const u8 BattleScript_MonMadeMoveUseless[]; +extern const u8 BattleScript_FlashFireBoost_PPLoss[]; +extern const u8 BattleScript_FlashFireBoost[]; +extern const u8 BattleScript_AbilityNoStatLoss[]; +extern const u8 BattleScript_BRNPrevention[]; +extern const u8 BattleScript_PRLZPrevention[]; +extern const u8 BattleScript_PSNPrevention[]; +extern const u8 BattleScript_ObliviousPreventsAttraction[]; +extern const u8 BattleScript_FlinchPrevention[]; +extern const u8 BattleScript_OwnTempoPrevents[]; +extern const u8 BattleScript_SoundproofProtected[]; +extern const u8 BattleScript_AbilityNoSpecificStatLoss[]; +extern const u8 BattleScript_StickyHoldActivates[]; +extern const u8 BattleScript_ColorChangeActivates[]; +extern const u8 BattleScript_RoughSkinActivates[]; +extern const u8 BattleScript_CuteCharmActivates[]; +extern const u8 BattleScript_ApplySecondaryEffect[]; +extern const u8 BattleScript_SynchronizeActivates[]; +extern const u8 BattleScript_NoItemSteal[]; +extern const u8 BattleScript_AbilityCuredStatus[]; +extern const u8 BattleScript_82DB695[]; +extern const u8 BattleScript_IgnoresAndUsesRandomMove[]; +extern const u8 BattleScript_MoveUsedLoafingAround[]; +extern const u8 BattleScript_82DB6C7[]; +extern const u8 BattleScript_IgnoresAndFallsAsleep[]; +extern const u8 BattleScript_82DB6F0[]; +extern const u8 BattleScript_SubstituteFade[]; +extern const u8 BattleScript_BerryCurePrlzEnd2[]; +extern const u8 BattleScript_BerryCureParRet[]; +extern const u8 BattleScript_BerryCurePsnEnd2[]; +extern const u8 BattleScript_BerryCurePsnRet[]; +extern const u8 BattleScript_BerryCureBrnEnd2[]; +extern const u8 BattleScript_BerryCureBrnRet[]; +extern const u8 BattleScript_BerryCureFrzEnd2[]; +extern const u8 BattleScript_BerryCureFrzRet[]; +extern const u8 BattleScript_BerryCureSlpEnd2[]; +extern const u8 BattleScript_BerryCureSlpRet[]; +extern const u8 BattleScript_BerryCureConfusionEnd2[]; +extern const u8 BattleScript_BerryCureConfusionRet[]; +extern const u8 BattleScript_BerryCureChosenStatusEnd2[]; +extern const u8 BattleScript_BerryCureChosenStatusRet[]; +extern const u8 BattleScript_WhiteHerbEnd2[]; +extern const u8 BattleScript_WhiteHerbRet[]; +extern const u8 BattleScript_ItemHealHP_RemoveItem[]; +extern const u8 BattleScript_BerryPPHealEnd2[]; +extern const u8 BattleScript_ItemHealHP_End2[]; +extern const u8 BattleScript_ItemHealHP_Ret[]; +extern const u8 BattleScript_SelectingNotAllowedMoveChoiceItem[]; +extern const u8 BattleScript_HangedOnMsg[]; +extern const u8 BattleScript_BerryConfuseHealEnd2[]; +extern const u8 BattleScript_BerryStatRaiseEnd2[]; +extern const u8 BattleScript_82DB85B[]; +extern const u8 BattleScript_BerryFocusEnergyEnd2[]; +extern const u8 BattleScript_ActionSelectionItemsCantBeUsed[]; +extern const u8 BattleScript_82DB87D[]; +extern const u8 BattleScript_82DB881[]; +extern const u8 BattleScript_82DB887[]; +extern const u8 BattleScript_82DB89D[]; +extern const u8 BattleScript_82DB8BE[]; +extern const u8 BattleScript_82DB8E0[]; +extern const u8 BattleScript_82DB8F3[]; +extern const u8 BattleScript_82DB973[]; +extern const u8 BattleScript_82DB992[]; +extern const u8 BattleScript_AskIfWantsToForfeitMatch[]; +extern const u8 BattleScript_PrintPlayerForfeited[]; +extern const u8 BattleScript_PrintPlayerForfeitedLinkBattle[]; +extern const u8 BattleScript_BallThrow[]; +extern const u8 BattleScript_BallThrowByWally[]; +extern const u8 BattleScript_SafariBallThrow[]; +extern const u8 BattleScript_SuccessBallThrow[]; +extern const u8 BattleScript_82DBD92[]; +extern const u8 BattleScript_82DBDA5[]; +extern const u8 BattleScript_82DBDC2[]; +extern const u8 BattleScript_82DBDC3[]; +extern const u8 BattleScript_WallyBallThrow[]; +extern const u8 BattleScript_ShakeBallThrow[]; +extern const u8 BattleScript_82DBE01[]; +extern const u8 BattleScript_TrainerBallBlock[]; +extern const u8 BattleScript_82DBE12[]; +extern const u8 BattleScript_82DBE1C[]; +extern const u8 BattleScript_82DBE4B[]; +extern const u8 BattleScript_82DBE6F[]; +extern const u8 BattleScript_82DBE91[]; +extern const u8 BattleScript_RunByUsingItem[]; +extern const u8 BattleScript_ActionWatchesCarefully[]; +extern const u8 BattleScript_ActionGetNear[]; +extern const u8 BattleScript_ActionThrowPokeblock[]; +extern const u8 BattleScript_82DBEE3[]; + +#endif // GUARD_BATTLE_SCRIPTS_H diff --git a/include/battle_setup.h b/include/battle_setup.h index 0168022cc..e4bae6fdb 100644 --- a/include/battle_setup.h +++ b/include/battle_setup.h @@ -1,18 +1,85 @@ #ifndef GUARD_BATTLE_SETUP_H #define GUARD_BATTLE_SETUP_H -void BattleSetup_StartScriptedWildBattle(void); -u8 BattleSetup_GetTerrainId(void); -u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data); -void BattleSetup_StartBattlePikeWildBattle(void); +enum +{ + TRAINER_BATTLE_NORMAL, + TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC, + TRAINER_BATTLE_CONTINUE_SCRIPT, + TRAINER_BATTLE_NORMAL_NO_INTRO_TEXT, + TRAINER_BATTLE_DOUBLE, + TRAINER_BATTLE_REMATCH, + TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE, + TRAINER_BATTLE_REMATCH_DOUBLE, + TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC, + TRAINER_BATTLE_9, + TRAINER_BATTLE_SET_TRAINER_A, + TRAINER_BATTLE_SET_TRAINER_B, + TRAINER_BATTLE_12, +}; + +#define REMATCHES_COUNT 5 +#define REMATCH_TABLE_ENTRIES 78 +#define REMATCH_WALLY_ENTRY 64 +#define REMATCH_ELITE_FOUR_ENTRIES 73 + +struct RematchTrainer +{ + u16 trainerIds[REMATCHES_COUNT]; + u16 mapGroup; + u16 mapNum; +}; + +extern const struct RematchTrainer gRematchTable[REMATCH_TABLE_ENTRIES]; + +extern u16 gTrainerBattleOpponent_A; +extern u16 gTrainerBattleOpponent_B; +extern u16 gPartnerTrainerId; + void BattleSetup_StartWildBattle(void); +void BattleSetup_StartBattlePikeWildBattle(void); void BattleSetup_StartRoamerBattle(void); - -u8 HasTrainerAlreadyBeenFought(u16); -void trainer_flag_set(u16); -void trainer_flag_clear(u16); +void StartWallyTutorialBattle(void); +void BattleSetup_StartScriptedWildBattle(void); +void BattleSetup_StartLatiBattle(void); +void BattleSetup_StartLegendaryBattle(void); +void StartGroudonKyogreBattle(void); +void StartRegiBattle(void); +u8 BattleSetup_GetTerrainId(void); +u8 sub_80B100C(s32 arg0); +void ChooseStarter(void); +void ResetTrainerOpponentIds(void); +void SetMapVarsToTrainer(void); +const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data); +void ConfigureAndSetUpOneTrainerBattle(u8 trainerMapObjId, const u8 *trainerScript); +void ConfigureTwoTrainersBattle(u8 trainerMapObjId, const u8 *trainerScript); +void SetUpTwoTrainersBattle(void); +bool32 GetTrainerFlagFromScriptPointer(const u8 *data); +void sub_80B16D8(void); +u8 GetTrainerBattleMode(void); +bool8 GetTrainerFlag(void); +bool8 HasTrainerBeenFought(u16 trainerId); +void SetTrainerFlag(u16 trainerId); +void ClearTrainerFlag(u16 trainerId); void BattleSetup_StartTrainerBattle(void); -u8 *BattleSetup_GetScriptAddrAfterBattle(void); -u8 *BattleSetup_GetTrainerPostBattleScript(void); +void BattleSetup_StartRematchBattle(void); +void ShowTrainerIntroSpeech(void); +const u8 *BattleSetup_GetScriptAddrAfterBattle(void); +const u8 *BattleSetup_GetTrainerPostBattleScript(void); +void ShowTrainerCantBattleSpeech(void); +void SetUpTrainerEncounterMusic(void); +const u8 *GetTrainerALoseText(void); +const u8 *GetTrainerBLoseText(void); +const u8 *GetTrainerWonSpeech(void); +void UpdateRematchIfDefeated(s32 rematchTableId); +void IncrementRematchStepCounter(void); +void TryUpdateRandomTrainerRematches(u16 mapGroup, u16 mapNum); +bool32 DoesSomeoneWantRematchIn(u16 mapGroup, u16 mapNum); +bool32 IsRematchTrainerIn(u16 mapGroup, u16 mapNum); +u16 GetLastBeatenRematchTrainerId(u16 trainerId); +bool8 ShouldTryRematchBattle(void); +bool8 IsTrainerReadyForRematch(void); +void ShouldTryGetTrainerScript(void); +u16 CountBattledRematchTeams(u16 trainerId); #endif // GUARD_BATTLE_SETUP_H diff --git a/include/battle_transition.h b/include/battle_transition.h index 1603f5c93..84b5e37ec 100644 --- a/include/battle_transition.h +++ b/include/battle_transition.h @@ -2,5 +2,55 @@ #define GUARD_BATTLE_TRANSITION_H void sub_8149DFC(u8 a1); +void BattleTransition_StartOnField(u8 transitionID); +void BattleTransition_Start(u8 transitionID); +bool8 IsBattleTransitionDone(void); + +// credits for the names go to Dyskinesia and Tetrable +// names are naturally subject to change + +#define B_TRANSITION_BLUR 0 +#define B_TRANSITION_SWIRL 1 +#define B_TRANSITION_SHUFFLE 2 +#define B_TRANSITION_BIG_POKEBALL 3 +#define B_TRANSITION_POKEBALLS_TRAIL 4 +#define B_TRANSITION_CLOCKWISE_BLACKFADE 5 +#define B_TRANSITION_RIPPLE 6 +#define B_TRANSITION_WAVE 7 +#define B_TRANSITION_SLICE 8 +#define B_TRANSITION_WHITEFADE 9 +#define B_TRANSITION_GRID_SQUARES 10 +#define B_TRANSITION_SHARDS 11 +#define B_TRANSITION_SYDNEY 12 +#define B_TRANSITION_PHOEBE 13 +#define B_TRANSITION_GLACIA 14 +#define B_TRANSITION_DRAKE 15 +#define B_TRANSITION_CHAMPION 16 +// added in Emerald +#define B_TRANSITION_AQUA 17 +#define B_TRANSITION_MAGMA 18 +#define B_TRANSITION_REGICE 19 +#define B_TRANSITION_REGISTEEL 20 +#define B_TRANSITION_REGIROCK 21 +#define B_TRANSITION_KYOGRE 22 +#define B_TRANSITION_GROUDON 23 +#define B_TRANSITION_RAYQUAZA 24 +#define B_TRANSITION_25 25 +#define B_TRANSITION_26 26 +#define B_TRANSITION_27 27 +#define B_TRANSITION_28 28 +#define B_TRANSITION_29 29 +#define B_TRANSITION_30 30 +#define B_TRANSITION_31 31 +#define B_TRANSITION_32 32 +#define B_TRANSITION_33 33 +#define B_TRANSITION_34 34 +#define B_TRANSITION_35 35 +#define B_TRANSITION_36 36 +#define B_TRANSITION_37 37 +#define B_TRANSITION_38 38 +#define B_TRANSITION_39 39 +#define B_TRANSITION_40 40 +#define B_TRANSITION_41 41 #endif // GUARD_BATTLE_TRANSITION_H diff --git a/include/battle_util.h b/include/battle_util.h index b21b250c4..81eb85dc7 100644 --- a/include/battle_util.h +++ b/include/battle_util.h @@ -66,8 +66,8 @@ bool8 AreAllMovesUnusable(void); u8 GetImprisonedMovesCount(u8 bank, u16 move); u8 UpdateTurnCounters(void); u8 TurnBasedEffects(void); -bool8 sub_8041364(void); -bool8 sub_8041728(void); +bool8 HandleWishPerishSongOnTurnEnd(void); +bool8 HandleFaintedMonActions(void); void TryClearRageStatuses(void); u8 AtkCanceller_UnableToUseMove(void); bool8 sub_80423F4(u8 bank, u8 r1, u8 r2); @@ -79,6 +79,6 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn); void ClearFuryCutterDestinyBondGrudge(u8 bank); void HandleAction_RunBattleScript(void); u8 GetMoveTarget(u16 move, u8 useMoveTarget); -u8 IsPokeDisobedient(void); +u8 IsMonDisobedient(void); #endif // GUARD_BATTLE_UTIL_H diff --git a/include/berry.h b/include/berry.h index f51503d41..425a664c9 100644 --- a/include/berry.h +++ b/include/berry.h @@ -11,6 +11,16 @@ enum BERRY_FIRMNESS_SUPER_HARD, }; +enum +{ + FLAVOR_SPICY, + FLAVOR_DRY, + FLAVOR_SWEET, + FLAVOR_BITTER, + FLAVOR_SOUR, + FLAVOR_COUNT +}; + #define NUM_BERRIES 44 extern const u8 *const gBerryTreeFieldObjectGraphicsIdTablePointers[NUM_BERRIES]; diff --git a/include/berry_blender.h b/include/berry_blender.h new file mode 100644 index 000000000..fb62e3fa3 --- /dev/null +++ b/include/berry_blender.h @@ -0,0 +1,8 @@ +#ifndef GUARD_BERRY_BLENDER_H +#define GUARD_BERRY_BLENDER_H + +void DoBerryBlending(void); +u16 GetBlenderArrowPosition(void); +void ShowBerryBlenderRecordWindow(void); + +#endif // GUARD_BERRY_BLENDER_H diff --git a/include/constants/abilities.h b/include/constants/abilities.h new file mode 100644 index 000000000..4e2c4056c --- /dev/null +++ b/include/constants/abilities.h @@ -0,0 +1,83 @@ +#ifndef GUARD_CONSTANTS_ABILITIES_H +#define GUARD_CONSTANTS_ABILITIES_H + +#define ABILITY_NONE 0 +#define ABILITY_STENCH 1 +#define ABILITY_DRIZZLE 2 +#define ABILITY_SPEED_BOOST 3 +#define ABILITY_BATTLE_ARMOR 4 +#define ABILITY_STURDY 5 +#define ABILITY_DAMP 6 +#define ABILITY_LIMBER 7 +#define ABILITY_SAND_VEIL 8 +#define ABILITY_STATIC 9 +#define ABILITY_VOLT_ABSORB 10 +#define ABILITY_WATER_ABSORB 11 +#define ABILITY_OBLIVIOUS 12 +#define ABILITY_CLOUD_NINE 13 +#define ABILITY_COMPOUND_EYES 14 +#define ABILITY_INSOMNIA 15 +#define ABILITY_COLOR_CHANGE 16 +#define ABILITY_IMMUNITY 17 +#define ABILITY_FLASH_FIRE 18 +#define ABILITY_SHIELD_DUST 19 +#define ABILITY_OWN_TEMPO 20 +#define ABILITY_SUCTION_CUPS 21 +#define ABILITY_INTIMIDATE 22 +#define ABILITY_SHADOW_TAG 23 +#define ABILITY_ROUGH_SKIN 24 +#define ABILITY_WONDER_GUARD 25 +#define ABILITY_LEVITATE 26 +#define ABILITY_EFFECT_SPORE 27 +#define ABILITY_SYNCHRONIZE 28 +#define ABILITY_CLEAR_BODY 29 +#define ABILITY_NATURAL_CURE 30 +#define ABILITY_LIGHTNING_ROD 31 +#define ABILITY_SERENE_GRACE 32 +#define ABILITY_SWIFT_SWIM 33 +#define ABILITY_CHLOROPHYLL 34 +#define ABILITY_ILLUMINATE 35 +#define ABILITY_TRACE 36 +#define ABILITY_HUGE_POWER 37 +#define ABILITY_POISON_POINT 38 +#define ABILITY_INNER_FOCUS 39 +#define ABILITY_MAGMA_ARMOR 40 +#define ABILITY_WATER_VEIL 41 +#define ABILITY_MAGNET_PULL 42 +#define ABILITY_SOUNDPROOF 43 +#define ABILITY_RAIN_DISH 44 +#define ABILITY_SAND_STREAM 45 +#define ABILITY_PRESSURE 46 +#define ABILITY_THICK_FAT 47 +#define ABILITY_EARLY_BIRD 48 +#define ABILITY_FLAME_BODY 49 +#define ABILITY_RUN_AWAY 50 +#define ABILITY_KEEN_EYE 51 +#define ABILITY_HYPER_CUTTER 52 +#define ABILITY_PICKUP 53 +#define ABILITY_TRUANT 54 +#define ABILITY_HUSTLE 55 +#define ABILITY_CUTE_CHARM 56 +#define ABILITY_PLUS 57 +#define ABILITY_MINUS 58 +#define ABILITY_FORECAST 59 +#define ABILITY_STICKY_HOLD 60 +#define ABILITY_SHED_SKIN 61 +#define ABILITY_GUTS 62 +#define ABILITY_MARVEL_SCALE 63 +#define ABILITY_LIQUID_OOZE 64 +#define ABILITY_OVERGROW 65 +#define ABILITY_BLAZE 66 +#define ABILITY_TORRENT 67 +#define ABILITY_SWARM 68 +#define ABILITY_ROCK_HEAD 69 +#define ABILITY_DROUGHT 70 +#define ABILITY_ARENA_TRAP 71 +#define ABILITY_VITAL_SPIRIT 72 +#define ABILITY_WHITE_SMOKE 73 +#define ABILITY_PURE_POWER 74 +#define ABILITY_SHELL_ARMOR 75 +#define ABILITY_CACOPHONY 76 +#define ABILITY_AIR_LOCK 77 + +#endif // GUARD_CONSTANTS_ABILITIES_H diff --git a/include/constants/battle_move_effects.h b/include/constants/battle_move_effects.h new file mode 100644 index 000000000..1b59f2f64 --- /dev/null +++ b/include/constants/battle_move_effects.h @@ -0,0 +1,219 @@ +#ifndef GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H +#define GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H + +#define EFFECT_HIT 0 +#define EFFECT_SLEEP 1 +#define EFFECT_POISON_HIT 2 +#define EFFECT_ABSORB 3 +#define EFFECT_BURN_HIT 4 +#define EFFECT_FREEZE_HIT 5 +#define EFFECT_PARALYZE_HIT 6 +#define EFFECT_EXPLOSION 7 +#define EFFECT_DREAM_EATER 8 +#define EFFECT_MIRROR_MOVE 9 +#define EFFECT_ATTACK_UP 10 +#define EFFECT_DEFENSE_UP 11 +#define EFFECT_SPEED_UP 12 +#define EFFECT_SPECIAL_ATTACK_UP 13 +#define EFFECT_SPECIAL_DEFENSE_UP 14 +#define EFFECT_ACCURACY_UP 15 +#define EFFECT_EVASION_UP 16 +#define EFFECT_ALWAYS_HIT 17 +#define EFFECT_ATTACK_DOWN 18 +#define EFFECT_DEFENSE_DOWN 19 +#define EFFECT_SPEED_DOWN 20 +#define EFFECT_SPECIAL_ATTACK_DOWN 21 // unused +#define EFFECT_SPECIAL_DEFENSE_DOWN 22 // unused +#define EFFECT_ACCURACY_DOWN 23 +#define EFFECT_EVASION_DOWN 24 +#define EFFECT_HAZE 25 +#define EFFECT_BIDE 26 +#define EFFECT_RAMPAGE 27 +#define EFFECT_ROAR 28 +#define EFFECT_MULTI_HIT 29 +#define EFFECT_CONVERSION 30 +#define EFFECT_FLINCH_HIT 31 +#define EFFECT_RESTORE_HP 32 +#define EFFECT_TOXIC 33 +#define EFFECT_PAY_DAY 34 +#define EFFECT_LIGHT_SCREEN 35 +#define EFFECT_TRI_ATTACK 36 +#define EFFECT_REST 37 +#define EFFECT_OHKO 38 +#define EFFECT_RAZOR_WIND 39 +#define EFFECT_SUPER_FANG 40 +#define EFFECT_DRAGON_RAGE 41 +#define EFFECT_TRAP 42 +#define EFFECT_HIGH_CRITICAL 43 +#define EFFECT_DOUBLE_HIT 44 +#define EFFECT_RECOIL_IF_MISS 45 +#define EFFECT_MIST 46 +#define EFFECT_FOCUS_ENERGY 47 +#define EFFECT_RECOIL 48 +#define EFFECT_CONFUSE 49 +#define EFFECT_ATTACK_UP_2 50 +#define EFFECT_DEFENSE_UP_2 51 +#define EFFECT_SPEED_UP_2 52 +#define EFFECT_SPECIAL_ATTACK_UP_2 53 +#define EFFECT_SPECIAL_DEFENSE_UP_2 54 +#define EFFECT_ACCURACY_UP_2 55 +#define EFFECT_EVASION_UP_2 56 +#define EFFECT_TRANSFORM 57 +#define EFFECT_ATTACK_DOWN_2 58 +#define EFFECT_DEFENSE_DOWN_2 59 +#define EFFECT_SPEED_DOWN_2 60 +#define EFFECT_SPECIAL_ATTACK_DOWN_2 61 +#define EFFECT_SPECIAL_DEFENSE_DOWN_2 62 +#define EFFECT_ACCURACY_DOWN_2 63 +#define EFFECT_EVASION_DOWN_2 64 +#define EFFECT_REFLECT 65 +#define EFFECT_POISON 66 +#define EFFECT_PARALYZE 67 +#define EFFECT_ATTACK_DOWN_HIT 68 +#define EFFECT_DEFENSE_DOWN_HIT 69 +#define EFFECT_SPEED_DOWN_HIT 70 +#define EFFECT_SPECIAL_ATTACK_DOWN_HIT 71 +#define EFFECT_SPECIAL_DEFENSE_DOWN_HIT 72 +#define EFFECT_ACCURACY_DOWN_HIT 73 +#define EFFECT_EVASION_DOWN_HIT 74 +#define EFFECT_SKY_ATTACK 75 +#define EFFECT_CONFUSE_HIT 76 +#define EFFECT_TWINEEDLE 77 +#define EFFECT_VITAL_THROW 78 +#define EFFECT_SUBSTITUTE 79 +#define EFFECT_RECHARGE 80 +#define EFFECT_RAGE 81 +#define EFFECT_MIMIC 82 +#define EFFECT_METRONOME 83 +#define EFFECT_LEECH_SEED 84 +#define EFFECT_SPLASH 85 +#define EFFECT_DISABLE 86 +#define EFFECT_LEVEL_DAMAGE 87 +#define EFFECT_PSYWAVE 88 +#define EFFECT_COUNTER 89 +#define EFFECT_ENCORE 90 +#define EFFECT_PAIN_SPLIT 91 +#define EFFECT_SNORE 92 +#define EFFECT_CONVERSION_2 93 +#define EFFECT_LOCK_ON 94 +#define EFFECT_SKETCH 95 +#define EFFECT_UNUSED_60 96 // thaw +#define EFFECT_SLEEP_TALK 97 +#define EFFECT_DESTINY_BOND 98 +#define EFFECT_FLAIL 99 +#define EFFECT_SPITE 100 +#define EFFECT_FALSE_SWIPE 101 +#define EFFECT_HEAL_BELL 102 +#define EFFECT_QUICK_ATTACK 103 +#define EFFECT_TRIPLE_KICK 104 +#define EFFECT_THIEF 105 +#define EFFECT_MEAN_LOOK 106 +#define EFFECT_NIGHTMARE 107 +#define EFFECT_MINIMIZE 108 +#define EFFECT_CURSE 109 +#define EFFECT_UNUSED_6E 110 +#define EFFECT_PROTECT 111 +#define EFFECT_SPIKES 112 +#define EFFECT_FORESIGHT 113 +#define EFFECT_PERISH_SONG 114 +#define EFFECT_SANDSTORM 115 +#define EFFECT_ENDURE 116 +#define EFFECT_ROLLOUT 117 +#define EFFECT_SWAGGER 118 +#define EFFECT_FURY_CUTTER 119 +#define EFFECT_ATTRACT 120 +#define EFFECT_RETURN 121 +#define EFFECT_PRESENT 122 +#define EFFECT_FRUSTRATION 123 +#define EFFECT_SAFEGUARD 124 +#define EFFECT_THAW_HIT 125 +#define EFFECT_MAGNITUDE 126 +#define EFFECT_BATON_PASS 127 +#define EFFECT_PURSUIT 128 +#define EFFECT_RAPID_SPIN 129 +#define EFFECT_SONICBOOM 130 +#define EFFECT_UNUSED_83 131 +#define EFFECT_MORNING_SUN 132 +#define EFFECT_SYNTHESIS 133 +#define EFFECT_MOONLIGHT 134 +#define EFFECT_HIDDEN_POWER 135 +#define EFFECT_RAIN_DANCE 136 +#define EFFECT_SUNNY_DAY 137 +#define EFFECT_DEFENSE_UP_HIT 138 +#define EFFECT_ATTACK_UP_HIT 139 +#define EFFECT_ALL_STATS_UP_HIT 140 +#define EFFECT_UNUSED_8D 141 // incomplete fake out in gen 2 +#define EFFECT_BELLY_DRUM 142 +#define EFFECT_PSYCH_UP 143 +#define EFFECT_MIRROR_COAT 144 +#define EFFECT_SKULL_BASH 145 +#define EFFECT_TWISTER 146 +#define EFFECT_EARTHQUAKE 147 +#define EFFECT_FUTURE_SIGHT 148 +#define EFFECT_GUST 149 +#define EFFECT_FLINCH_HIT_2 150 // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM +#define EFFECT_SOLARBEAM 151 +#define EFFECT_THUNDER 152 +#define EFFECT_TELEPORT 153 +#define EFFECT_BEAT_UP 154 +#define EFFECT_SEMI_INVULNERABLE 155 +#define EFFECT_DEFENSE_CURL 156 +#define EFFECT_SOFTBOILED 157 +#define EFFECT_FAKE_OUT 158 +#define EFFECT_UPROAR 159 +#define EFFECT_STOCKPILE 160 +#define EFFECT_SPIT_UP 161 +#define EFFECT_SWALLOW 162 +#define EFFECT_UNUSED_A3 163 +#define EFFECT_HAIL 164 +#define EFFECT_TORMENT 165 +#define EFFECT_FLATTER 166 +#define EFFECT_WILL_O_WISP 167 +#define EFFECT_MEMENTO 168 +#define EFFECT_FACADE 169 +#define EFFECT_FOCUS_PUNCH 170 +#define EFFECT_SMELLINGSALT 171 +#define EFFECT_FOLLOW_ME 172 +#define EFFECT_NATURE_POWER 173 +#define EFFECT_CHARGE 174 +#define EFFECT_TAUNT 175 +#define EFFECT_HELPING_HAND 176 +#define EFFECT_TRICK 177 +#define EFFECT_ROLE_PLAY 178 +#define EFFECT_WISH 179 +#define EFFECT_ASSIST 180 +#define EFFECT_INGRAIN 181 +#define EFFECT_SUPERPOWER 182 +#define EFFECT_MAGIC_COAT 183 +#define EFFECT_RECYCLE 184 +#define EFFECT_REVENGE 185 +#define EFFECT_BRICK_BREAK 186 +#define EFFECT_YAWN 187 +#define EFFECT_KNOCK_OFF 188 +#define EFFECT_ENDEAVOR 189 +#define EFFECT_ERUPTION 190 +#define EFFECT_SKILL_SWAP 191 +#define EFFECT_IMPRISON 192 +#define EFFECT_REFRESH 193 +#define EFFECT_GRUDGE 194 +#define EFFECT_SNATCH 195 +#define EFFECT_LOW_KICK 196 +#define EFFECT_SECRET_POWER 197 +#define EFFECT_DOUBLE_EDGE 198 +#define EFFECT_TEETER_DANCE 199 +#define EFFECT_BLAZE_KICK 200 +#define EFFECT_MUD_SPORT 201 +#define EFFECT_POISON_FANG 202 +#define EFFECT_WEATHER_BALL 203 +#define EFFECT_OVERHEAT 204 +#define EFFECT_TICKLE 205 +#define EFFECT_COSMIC_POWER 206 +#define EFFECT_SKY_UPPERCUT 207 +#define EFFECT_BULK_UP 208 +#define EFFECT_POISON_TAIL 209 +#define EFFECT_WATER_SPORT 210 +#define EFFECT_CALM_MIND 211 +#define EFFECT_DRAGON_DANCE 212 +#define EFFECT_CAMOUFLAGE 213 + +#endif // GUARD_CONSTANTS_BATTLE_MOVE_EFFECTS_H diff --git a/include/constants/decorations.h b/include/constants/decorations.h new file mode 100644 index 000000000..2e3558721 --- /dev/null +++ b/include/constants/decorations.h @@ -0,0 +1,126 @@ +#ifndef GUARD_CONSTANTS_DECORATIONS_H +#define GUARD_CONSTANTS_DECORATIONS_H + +#define DECOR_NONE 0 +#define DECOR_SMALL_DESK 1 +#define DECOR_POKEMON_DESK 2 +#define DECOR_HEAVY_DESK 3 +#define DECOR_RAGGED_DESK 4 +#define DECOR_COMFORT_DESK 5 +#define DECOR_PRETTY_DESK 6 +#define DECOR_BRICK_DESK 7 +#define DECOR_CAMP_DESK 8 +#define DECOR_HARD_DESK 9 +#define DECOR_SMALL_CHAIR 10 +#define DECOR_POKEMON_CHAIR 11 +#define DECOR_HEAVY_CHAIR 12 +#define DECOR_PRETTY_CHAIR 13 +#define DECOR_COMFORT_CHAIR 14 +#define DECOR_RAGGED_CHAIR 15 +#define DECOR_BRICK_CHAIR 16 +#define DECOR_CAMP_CHAIR 17 +#define DECOR_HARD_CHAIR 18 +#define DECOR_RED_PLANT 19 +#define DECOR_TROPICAL_PLANT 20 +#define DECOR_PRETTY_FLOWERS 21 +#define DECOR_COLORFUL_PLANT 22 +#define DECOR_BIG_PLANT 23 +#define DECOR_GORGEOUS_PLANT 24 +#define DECOR_RED_BRICK 25 +#define DECOR_YELLOW_BRICK 26 +#define DECOR_BLUE_BRICK 27 +#define DECOR_RED_BALLOON 28 +#define DECOR_BLUE_BALLOON 29 +#define DECOR_YELLOW_BALLOON 30 +#define DECOR_RED_TENT 31 +#define DECOR_BLUE_TENT 32 +#define DECOR_SOLID_BOARD 33 +#define DECOR_SLIDE 34 +#define DECOR_FENCE_LENGTH 35 +#define DECOR_FENCE_WIDTH 36 +#define DECOR_TIRE 37 +#define DECOR_STAND 38 +#define DECOR_MUD_BALL 39 +#define DECOR_BREAKABLE_DOOR 40 +#define DECOR_SAND_ORNAMENT 41 +#define DECOR_SILVER_SHIELD 42 +#define DECOR_GOLD_SHIELD 43 +#define DECOR_GLASS_ORNAMENT 44 +#define DECOR_TV 45 +#define DECOR_ROUND_TV 46 +#define DECOR_CUTE_TV 47 +#define DECOR_GLITTER_MAT 48 +#define DECOR_JUMP_MAT 49 +#define DECOR_SPIN_MAT 50 +#define DECOR_C_LOW_NOTE_MAT 51 +#define DECOR_D_NOTE_MAT 52 +#define DECOR_E_NOTE_MAT 53 +#define DECOR_F_NOTE_MAT 54 +#define DECOR_G_NOTE_MAT 55 +#define DECOR_A_NOTE_MAT 56 +#define DECOR_B_NOTE_MAT 57 +#define DECOR_C_HIGH_NOTE_MAT 58 +#define DECOR_SURF_MAT 59 +#define DECOR_THUNDER_MAT 60 +#define DECOR_FIRE_BLAST_MAT 61 +#define DECOR_POWDER_SNOW_MAT 62 +#define DECOR_ATTRACT_MAT 63 +#define DECOR_FISSURE_MAT 64 +#define DECOR_SPIKES_MAT 65 +#define DECOR_BALL_POSTER 66 +#define DECOR_GREEN_POSTER 67 +#define DECOR_RED_POSTER 68 +#define DECOR_BLUE_POSTER 69 +#define DECOR_CUTE_POSTER 70 +#define DECOR_PIKA_POSTER 71 +#define DECOR_LONG_POSTER 72 +#define DECOR_SEA_POSTER 73 +#define DECOR_SKY_POSTER 74 +#define DECOR_KISS_POSTER 75 +#define DECOR_PICHU_DOLL 76 +#define DECOR_PIKACHU_DOLL 77 +#define DECOR_MARILL_DOLL 78 +#define DECOR_TOGEPI_DOLL 79 +#define DECOR_CYNDAQUIL_DOLL 80 +#define DECOR_CHIKORITA_DOLL 81 +#define DECOR_TOTODILE_DOLL 82 +#define DECOR_JIGGLYPUFF_DOLL 83 +#define DECOR_MEOWTH_DOLL 84 +#define DECOR_CLEFAIRY_DOLL 85 +#define DECOR_DITTO_DOLL 86 +#define DECOR_SMOOCHUM_DOLL 87 +#define DECOR_TREECKO_DOLL 88 +#define DECOR_TORCHIC_DOLL 89 +#define DECOR_MUDKIP_DOLL 90 +#define DECOR_DUSKULL_DOLL 91 +#define DECOR_WYNAUT_DOLL 92 +#define DECOR_BALTOY_DOLL 93 +#define DECOR_KECLEON_DOLL 94 +#define DECOR_AZURILL_DOLL 95 +#define DECOR_SKITTY_DOLL 96 +#define DECOR_SWABLU_DOLL 97 +#define DECOR_GULPIN_DOLL 98 +#define DECOR_LOTAD_DOLL 99 +#define DECOR_SEEDOT_DOLL 100 +#define DECOR_PIKA_CUSHION 101 +#define DECOR_ROUND_CUSHION 102 +#define DECOR_KISS_CUSHION 103 +#define DECOR_ZIGZAG_CUSHION 104 +#define DECOR_SPIN_CUSHION 105 +#define DECOR_DIAMOND_CUSHION 106 +#define DECOR_BALL_CUSHION 107 +#define DECOR_GRASS_CUSHION 108 +#define DECOR_FIRE_CUSHION 109 +#define DECOR_WATER_CUSHION 110 +#define DECOR_SNORLAX_DOLL 111 +#define DECOR_RHYDON_DOLL 112 +#define DECOR_LAPRAS_DOLL 113 +#define DECOR_VENUSAUR_DOLL 114 +#define DECOR_CHARIZARD_DOLL 115 +#define DECOR_BLASTOISE_DOLL 116 +#define DECOR_WAILMER_DOLL 117 +#define DECOR_REGIROCK_DOLL 118 +#define DECOR_REGICE_DOLL 119 +#define DECOR_REGISTEEL_DOLL 120 + +#endif // GUARD_CONSTANTS_DECORATIONS_H diff --git a/include/constants/easy_chat.h b/include/constants/easy_chat.h new file mode 100644 index 000000000..2c437c88e --- /dev/null +++ b/include/constants/easy_chat.h @@ -0,0 +1,1079 @@ +#ifndef GUARD_CONSTANTS_EASY_CHAT_H +#define GUARD_CONSTANTS_EASY_CHAT_H + +#define EC_GROUP_POKEMON 0x0 +#define EC_GROUP_TRAINER 0x1 +#define EC_GROUP_STATUS 0x2 +#define EC_GROUP_BATTLE 0x3 +#define EC_GROUP_GREETINGS 0x4 +#define EC_GROUP_PEOPLE 0x5 +#define EC_GROUP_VOICES 0x6 +#define EC_GROUP_SPEECH 0x7 +#define EC_GROUP_ENDINGS 0x8 +#define EC_GROUP_FEELINGS 0x9 +#define EC_GROUP_CONDITIONS 0xa +#define EC_GROUP_ACTIONS 0xb +#define EC_GROUP_LIFESTYLE 0xc +#define EC_GROUP_HOBBIES 0xd +#define EC_GROUP_TIME 0xe +#define EC_GROUP_MISC 0xf +#define EC_GROUP_ADJECTIVES 0x10 +#define EC_GROUP_EVENTS 0x11 +#define EC_GROUP_MOVE_1 0x12 +#define EC_GROUP_MOVE_2 0x13 +#define EC_GROUP_TRENDY_SAYING 0x14 +#define EC_GROUP_POKEMON_2 0x15 + +// TRAINER +#define EC_WORD_I_CHOOSE_YOU (EC_GROUP_TRAINER << 9) | 0x0 +#define EC_WORD_GOTCHA (EC_GROUP_TRAINER << 9) | 0x1 +#define EC_WORD_TRADE (EC_GROUP_TRAINER << 9) | 0x2 +#define EC_WORD_SAPPHIRE (EC_GROUP_TRAINER << 9) | 0x3 +#define EC_WORD_EVOLVE (EC_GROUP_TRAINER << 9) | 0x4 +#define EC_WORD_ENCYCLOPEDIA (EC_GROUP_TRAINER << 9) | 0x5 +#define EC_WORD_NATURE (EC_GROUP_TRAINER << 9) | 0x6 +#define EC_WORD_CENTER (EC_GROUP_TRAINER << 9) | 0x7 +#define EC_WORD_EGG (EC_GROUP_TRAINER << 9) | 0x8 +#define EC_WORD_LINK (EC_GROUP_TRAINER << 9) | 0x9 +#define EC_WORD_SP_ABILITY (EC_GROUP_TRAINER << 9) | 0xa +#define EC_WORD_TRAINER (EC_GROUP_TRAINER << 9) | 0xb +#define EC_WORD_VERSION (EC_GROUP_TRAINER << 9) | 0xc +#define EC_WORD_POKENAV (EC_GROUP_TRAINER << 9) | 0xd +#define EC_WORD_POKEMON (EC_GROUP_TRAINER << 9) | 0xe +#define EC_WORD_GET (EC_GROUP_TRAINER << 9) | 0xf +#define EC_WORD_POKEDEX (EC_GROUP_TRAINER << 9) | 0x10 +#define EC_WORD_RUBY (EC_GROUP_TRAINER << 9) | 0x11 +#define EC_WORD_LEVEL (EC_GROUP_TRAINER << 9) | 0x12 +#define EC_WORD_RED (EC_GROUP_TRAINER << 9) | 0x13 +#define EC_WORD_GREEN (EC_GROUP_TRAINER << 9) | 0x14 +#define EC_WORD_BAG (EC_GROUP_TRAINER << 9) | 0x15 +#define EC_WORD_FLAME (EC_GROUP_TRAINER << 9) | 0x16 +#define EC_WORD_GOLD (EC_GROUP_TRAINER << 9) | 0x17 +#define EC_WORD_LEAF (EC_GROUP_TRAINER << 9) | 0x18 +#define EC_WORD_SILVER (EC_GROUP_TRAINER << 9) | 0x19 +#define EC_WORD_EMERALD (EC_GROUP_TRAINER << 9) | 0x1a + +// STATUS +#define EC_WORD_DARK (EC_GROUP_STATUS << 9) | 0x0 +#define EC_WORD_STENCH (EC_GROUP_STATUS << 9) | 0x1 +#define EC_WORD_THICK_FAT (EC_GROUP_STATUS << 9) | 0x2 +#define EC_WORD_RAIN_DISH (EC_GROUP_STATUS << 9) | 0x3 +#define EC_WORD_DRIZZLE (EC_GROUP_STATUS << 9) | 0x4 +#define EC_WORD_ARENA_TRAP (EC_GROUP_STATUS << 9) | 0x5 +#define EC_WORD_INTIMIDATE (EC_GROUP_STATUS << 9) | 0x6 +#define EC_WORD_ROCK_HEAD (EC_GROUP_STATUS << 9) | 0x7 +#define EC_WORD_COLOR (EC_GROUP_STATUS << 9) | 0x8 +#define EC_WORD_ALT_COLOR (EC_GROUP_STATUS << 9) | 0x9 +#define EC_WORD_ROCK (EC_GROUP_STATUS << 9) | 0xa +#define EC_WORD_BEAUTIFUL (EC_GROUP_STATUS << 9) | 0xb +#define EC_WORD_BEAUTY (EC_GROUP_STATUS << 9) | 0xc +#define EC_WORD_AIR_LOCK (EC_GROUP_STATUS << 9) | 0xd +#define EC_WORD_PSYCHIC (EC_GROUP_STATUS << 9) | 0xe +#define EC_WORD_HYPER_CUTTER (EC_GROUP_STATUS << 9) | 0xf +#define EC_WORD_FIGHTING (EC_GROUP_STATUS << 9) | 0x10 +#define EC_WORD_SHADOW_TAG (EC_GROUP_STATUS << 9) | 0x11 +#define EC_WORD_SMART (EC_GROUP_STATUS << 9) | 0x12 +#define EC_WORD_SMARTNESS (EC_GROUP_STATUS << 9) | 0x13 +#define EC_WORD_SPEED_BOOST (EC_GROUP_STATUS << 9) | 0x14 +#define EC_WORD_COOL (EC_GROUP_STATUS << 9) | 0x15 +#define EC_WORD_COOLNESS (EC_GROUP_STATUS << 9) | 0x16 +#define EC_WORD_BATTLE_ARMOR (EC_GROUP_STATUS << 9) | 0x17 +#define EC_WORD_CUTE (EC_GROUP_STATUS << 9) | 0x18 +#define EC_WORD_CUTENESS (EC_GROUP_STATUS << 9) | 0x19 +#define EC_WORD_STURDY (EC_GROUP_STATUS << 9) | 0x1a +#define EC_WORD_SUCTION_CUPS (EC_GROUP_STATUS << 9) | 0x1b +#define EC_WORD_GRASS (EC_GROUP_STATUS << 9) | 0x1c +#define EC_WORD_CLEAR_BODY (EC_GROUP_STATUS << 9) | 0x1d +#define EC_WORD_TORRENT (EC_GROUP_STATUS << 9) | 0x1e +#define EC_WORD_GHOST (EC_GROUP_STATUS << 9) | 0x1f +#define EC_WORD_ICE (EC_GROUP_STATUS << 9) | 0x20 +#define EC_WORD_GUTS (EC_GROUP_STATUS << 9) | 0x21 +#define EC_WORD_ROUGH_SKIN (EC_GROUP_STATUS << 9) | 0x22 +#define EC_WORD_SHELL_ARMOR (EC_GROUP_STATUS << 9) | 0x23 +#define EC_WORD_NATURAL_CURE (EC_GROUP_STATUS << 9) | 0x24 +#define EC_WORD_DAMP (EC_GROUP_STATUS << 9) | 0x25 +#define EC_WORD_GROUND (EC_GROUP_STATUS << 9) | 0x26 +#define EC_WORD_LIMBER (EC_GROUP_STATUS << 9) | 0x27 +#define EC_WORD_MAGNET_PULL (EC_GROUP_STATUS << 9) | 0x28 +#define EC_WORD_WHITE_SMOKE (EC_GROUP_STATUS << 9) | 0x29 +#define EC_WORD_SYNCHRONIZE (EC_GROUP_STATUS << 9) | 0x2a +#define EC_WORD_OVERGROW (EC_GROUP_STATUS << 9) | 0x2b +#define EC_WORD_SWIFT_SWIM (EC_GROUP_STATUS << 9) | 0x2c +#define EC_WORD_SAND_STREAM (EC_GROUP_STATUS << 9) | 0x2d +#define EC_WORD_SAND_VEIL (EC_GROUP_STATUS << 9) | 0x2e +#define EC_WORD_KEEN_EYE (EC_GROUP_STATUS << 9) | 0x2f +#define EC_WORD_INNER_FOCUS (EC_GROUP_STATUS << 9) | 0x30 +#define EC_WORD_STATIC (EC_GROUP_STATUS << 9) | 0x31 +#define EC_WORD_TYPE (EC_GROUP_STATUS << 9) | 0x32 +#define EC_WORD_TOUGH (EC_GROUP_STATUS << 9) | 0x33 +#define EC_WORD_TOUGHNESS (EC_GROUP_STATUS << 9) | 0x34 +#define EC_WORD_SHED_SKIN (EC_GROUP_STATUS << 9) | 0x35 +#define EC_WORD_HUGE_POWER (EC_GROUP_STATUS << 9) | 0x36 +#define EC_WORD_VOLT_ABSORB (EC_GROUP_STATUS << 9) | 0x37 +#define EC_WORD_WATER_ABSORB (EC_GROUP_STATUS << 9) | 0x38 +#define EC_WORD_ELECTRIC (EC_GROUP_STATUS << 9) | 0x39 +#define EC_WORD_FORECAST (EC_GROUP_STATUS << 9) | 0x3a +#define EC_WORD_SERENE_GRACE (EC_GROUP_STATUS << 9) | 0x3b +#define EC_WORD_POISON (EC_GROUP_STATUS << 9) | 0x3c +#define EC_WORD_POISON_POINT (EC_GROUP_STATUS << 9) | 0x3d +#define EC_WORD_DRAGON (EC_GROUP_STATUS << 9) | 0x3e +#define EC_WORD_TRACE (EC_GROUP_STATUS << 9) | 0x3f +#define EC_WORD_OBLIVIOUS (EC_GROUP_STATUS << 9) | 0x40 +#define EC_WORD_TRUANT (EC_GROUP_STATUS << 9) | 0x41 +#define EC_WORD_RUN_AWAY (EC_GROUP_STATUS << 9) | 0x42 +#define EC_WORD_STICKY_HOLD (EC_GROUP_STATUS << 9) | 0x43 +#define EC_WORD_CLOUD_NINE (EC_GROUP_STATUS << 9) | 0x44 +#define EC_WORD_NORMAL (EC_GROUP_STATUS << 9) | 0x45 +#define EC_WORD_STEEL (EC_GROUP_STATUS << 9) | 0x46 +#define EC_WORD_ILLUMINATE (EC_GROUP_STATUS << 9) | 0x47 +#define EC_WORD_EARLY_BIRD (EC_GROUP_STATUS << 9) | 0x48 +#define EC_WORD_HUSTLE (EC_GROUP_STATUS << 9) | 0x49 +#define EC_WORD_SHINE (EC_GROUP_STATUS << 9) | 0x4a +#define EC_WORD_FLYING (EC_GROUP_STATUS << 9) | 0x4b +#define EC_WORD_DROUGHT (EC_GROUP_STATUS << 9) | 0x4c +#define EC_WORD_LIGHTNINGROD (EC_GROUP_STATUS << 9) | 0x4d +#define EC_WORD_COMPOUNDEYES (EC_GROUP_STATUS << 9) | 0x4e +#define EC_WORD_MARVEL_SCALE (EC_GROUP_STATUS << 9) | 0x4f +#define EC_WORD_WONDER_GUARD (EC_GROUP_STATUS << 9) | 0x50 +#define EC_WORD_INSOMNIA (EC_GROUP_STATUS << 9) | 0x51 +#define EC_WORD_LEVITATE (EC_GROUP_STATUS << 9) | 0x52 +#define EC_WORD_PLUS (EC_GROUP_STATUS << 9) | 0x53 +#define EC_WORD_PRESSURE (EC_GROUP_STATUS << 9) | 0x54 +#define EC_WORD_LIQUID_OOZE (EC_GROUP_STATUS << 9) | 0x55 +#define EC_WORD_COLOR_CHANGE (EC_GROUP_STATUS << 9) | 0x56 +#define EC_WORD_SOUNDPROOF (EC_GROUP_STATUS << 9) | 0x57 +#define EC_WORD_EFFECT_SPORE (EC_GROUP_STATUS << 9) | 0x58 +#define EC_WORD_PKRS (EC_GROUP_STATUS << 9) | 0x59 +#define EC_WORD_FIRE (EC_GROUP_STATUS << 9) | 0x5a +#define EC_WORD_FLAME_BODY (EC_GROUP_STATUS << 9) | 0x5b +#define EC_WORD_MINUS (EC_GROUP_STATUS << 9) | 0x5c +#define EC_WORD_OWN_TEMPO (EC_GROUP_STATUS << 9) | 0x5d +#define EC_WORD_MAGMA_ARMOR (EC_GROUP_STATUS << 9) | 0x5e +#define EC_WORD_WATER (EC_GROUP_STATUS << 9) | 0x5f +#define EC_WORD_WATER_VEIL (EC_GROUP_STATUS << 9) | 0x60 +#define EC_WORD_BUG (EC_GROUP_STATUS << 9) | 0x61 +#define EC_WORD_SWARM (EC_GROUP_STATUS << 9) | 0x62 +#define EC_WORD_CUTE_CHARM (EC_GROUP_STATUS << 9) | 0x63 +#define EC_WORD_IMMUNITY (EC_GROUP_STATUS << 9) | 0x64 +#define EC_WORD_BLAZE (EC_GROUP_STATUS << 9) | 0x65 +#define EC_WORD_PICKUP (EC_GROUP_STATUS << 9) | 0x66 +#define EC_WORD_PATTERN (EC_GROUP_STATUS << 9) | 0x67 +#define EC_WORD_FLASH_FIRE (EC_GROUP_STATUS << 9) | 0x68 +#define EC_WORD_VITAL_SPIRIT (EC_GROUP_STATUS << 9) | 0x69 +#define EC_WORD_CHLOROPHYLL (EC_GROUP_STATUS << 9) | 0x6a +#define EC_WORD_PURE_POWER (EC_GROUP_STATUS << 9) | 0x6b +#define EC_WORD_SHIELD_DUST (EC_GROUP_STATUS << 9) | 0x6c + +// BATTLE +#define EC_WORD_MATCH_UP (EC_GROUP_BATTLE << 9) | 0x0 +#define EC_WORD_GO (EC_GROUP_BATTLE << 9) | 0x1 +#define EC_WORD_NO_1 (EC_GROUP_BATTLE << 9) | 0x2 +#define EC_WORD_DECIDE (EC_GROUP_BATTLE << 9) | 0x3 +#define EC_WORD_LET_ME_WIN (EC_GROUP_BATTLE << 9) | 0x4 +#define EC_WORD_WINS (EC_GROUP_BATTLE << 9) | 0x5 +#define EC_WORD_WIN (EC_GROUP_BATTLE << 9) | 0x6 +#define EC_WORD_WON (EC_GROUP_BATTLE << 9) | 0x7 +#define EC_WORD_IF_I_WIN (EC_GROUP_BATTLE << 9) | 0x8 +#define EC_WORD_WHEN_I_WIN (EC_GROUP_BATTLE << 9) | 0x9 +#define EC_WORD_CAN_T_WIN (EC_GROUP_BATTLE << 9) | 0xa +#define EC_WORD_CAN_WIN (EC_GROUP_BATTLE << 9) | 0xb +#define EC_WORD_NO_MATCH (EC_GROUP_BATTLE << 9) | 0xc +#define EC_WORD_SPIRIT (EC_GROUP_BATTLE << 9) | 0xd +#define EC_WORD_DECIDED (EC_GROUP_BATTLE << 9) | 0xe +#define EC_WORD_TRUMP_CARD (EC_GROUP_BATTLE << 9) | 0xf +#define EC_WORD_TAKE_THAT (EC_GROUP_BATTLE << 9) | 0x10 +#define EC_WORD_COME_ON (EC_GROUP_BATTLE << 9) | 0x11 +#define EC_WORD_ATTACK (EC_GROUP_BATTLE << 9) | 0x12 +#define EC_WORD_SURRENDER (EC_GROUP_BATTLE << 9) | 0x13 +#define EC_WORD_GUTSY (EC_GROUP_BATTLE << 9) | 0x14 +#define EC_WORD_TALENT (EC_GROUP_BATTLE << 9) | 0x15 +#define EC_WORD_STRATEGY (EC_GROUP_BATTLE << 9) | 0x16 +#define EC_WORD_SMITE (EC_GROUP_BATTLE << 9) | 0x17 +#define EC_WORD_MATCH (EC_GROUP_BATTLE << 9) | 0x18 +#define EC_WORD_VICTORY (EC_GROUP_BATTLE << 9) | 0x19 +#define EC_WORD_OFFENSIVE (EC_GROUP_BATTLE << 9) | 0x1a +#define EC_WORD_SENSE (EC_GROUP_BATTLE << 9) | 0x1b +#define EC_WORD_VERSUS (EC_GROUP_BATTLE << 9) | 0x1c +#define EC_WORD_FIGHTS (EC_GROUP_BATTLE << 9) | 0x1d +#define EC_WORD_POWER (EC_GROUP_BATTLE << 9) | 0x1e +#define EC_WORD_CHALLENGE (EC_GROUP_BATTLE << 9) | 0x1f +#define EC_WORD_STRONG (EC_GROUP_BATTLE << 9) | 0x20 +#define EC_WORD_TOO_STRONG (EC_GROUP_BATTLE << 9) | 0x21 +#define EC_WORD_GO_EASY (EC_GROUP_BATTLE << 9) | 0x22 +#define EC_WORD_FOE (EC_GROUP_BATTLE << 9) | 0x23 +#define EC_WORD_GENIUS (EC_GROUP_BATTLE << 9) | 0x24 +#define EC_WORD_LEGEND (EC_GROUP_BATTLE << 9) | 0x25 +#define EC_WORD_ESCAPE (EC_GROUP_BATTLE << 9) | 0x26 +#define EC_WORD_AIM (EC_GROUP_BATTLE << 9) | 0x27 +#define EC_WORD_BATTLE (EC_GROUP_BATTLE << 9) | 0x28 +#define EC_WORD_FIGHT (EC_GROUP_BATTLE << 9) | 0x29 +#define EC_WORD_RESUSCITATE (EC_GROUP_BATTLE << 9) | 0x2a +#define EC_WORD_POINTS (EC_GROUP_BATTLE << 9) | 0x2b +#define EC_WORD_SERIOUS (EC_GROUP_BATTLE << 9) | 0x2c +#define EC_WORD_GIVE_UP (EC_GROUP_BATTLE << 9) | 0x2d +#define EC_WORD_LOSS (EC_GROUP_BATTLE << 9) | 0x2e +#define EC_WORD_IF_I_LOSE (EC_GROUP_BATTLE << 9) | 0x2f +#define EC_WORD_LOST (EC_GROUP_BATTLE << 9) | 0x30 +#define EC_WORD_LOSE (EC_GROUP_BATTLE << 9) | 0x31 +#define EC_WORD_GUARD (EC_GROUP_BATTLE << 9) | 0x32 +#define EC_WORD_PARTNER (EC_GROUP_BATTLE << 9) | 0x33 +#define EC_WORD_REJECT (EC_GROUP_BATTLE << 9) | 0x34 +#define EC_WORD_ACCEPT (EC_GROUP_BATTLE << 9) | 0x35 +#define EC_WORD_INVINCIBLE (EC_GROUP_BATTLE << 9) | 0x36 +#define EC_WORD_RECEIVED (EC_GROUP_BATTLE << 9) | 0x37 +#define EC_WORD_EASY (EC_GROUP_BATTLE << 9) | 0x38 +#define EC_WORD_WEAK (EC_GROUP_BATTLE << 9) | 0x39 +#define EC_WORD_TOO_WEAK (EC_GROUP_BATTLE << 9) | 0x3a +#define EC_WORD_PUSHOVER (EC_GROUP_BATTLE << 9) | 0x3b +#define EC_WORD_LEADER (EC_GROUP_BATTLE << 9) | 0x3c +#define EC_WORD_RULE (EC_GROUP_BATTLE << 9) | 0x3d +#define EC_WORD_MOVE (EC_GROUP_BATTLE << 9) | 0x3e + +// GREETINGS +#define EC_WORD_THANKS (EC_GROUP_GREETINGS << 9) | 0x0 +#define EC_WORD_YES (EC_GROUP_GREETINGS << 9) | 0x1 +#define EC_WORD_HERE_GOES (EC_GROUP_GREETINGS << 9) | 0x2 +#define EC_WORD_HERE_I_COME (EC_GROUP_GREETINGS << 9) | 0x3 +#define EC_WORD_HERE_IT_IS (EC_GROUP_GREETINGS << 9) | 0x4 +#define EC_WORD_YEAH (EC_GROUP_GREETINGS << 9) | 0x5 +#define EC_WORD_WELCOME (EC_GROUP_GREETINGS << 9) | 0x6 +#define EC_WORD_OI (EC_GROUP_GREETINGS << 9) | 0x7 +#define EC_WORD_HOW_DO (EC_GROUP_GREETINGS << 9) | 0x8 +#define EC_WORD_CONGRATS (EC_GROUP_GREETINGS << 9) | 0x9 +#define EC_WORD_GIVE_ME (EC_GROUP_GREETINGS << 9) | 0xa +#define EC_WORD_SORRY (EC_GROUP_GREETINGS << 9) | 0xb +#define EC_WORD_APOLOGIZE (EC_GROUP_GREETINGS << 9) | 0xc +#define EC_WORD_FORGIVE (EC_GROUP_GREETINGS << 9) | 0xd +#define EC_WORD_HEY_THERE (EC_GROUP_GREETINGS << 9) | 0xe +#define EC_WORD_HELLO (EC_GROUP_GREETINGS << 9) | 0xf +#define EC_WORD_GOOD_BYE (EC_GROUP_GREETINGS << 9) | 0x10 +#define EC_WORD_THANK_YOU (EC_GROUP_GREETINGS << 9) | 0x11 +#define EC_WORD_I_VE_ARRIVED (EC_GROUP_GREETINGS << 9) | 0x12 +#define EC_WORD_PARDON (EC_GROUP_GREETINGS << 9) | 0x13 +#define EC_WORD_EXCUSE (EC_GROUP_GREETINGS << 9) | 0x14 +#define EC_WORD_SEE_YA (EC_GROUP_GREETINGS << 9) | 0x15 +#define EC_WORD_EXCUSE_ME (EC_GROUP_GREETINGS << 9) | 0x16 +#define EC_WORD_WELL_THEN (EC_GROUP_GREETINGS << 9) | 0x17 +#define EC_WORD_GO_AHEAD (EC_GROUP_GREETINGS << 9) | 0x18 +#define EC_WORD_APPRECIATE (EC_GROUP_GREETINGS << 9) | 0x19 +#define EC_WORD_HEY_QUES (EC_GROUP_GREETINGS << 9) | 0x1a +#define EC_WORD_WHAT_S_UP_QUES (EC_GROUP_GREETINGS << 9) | 0x1b +#define EC_WORD_HUH_QUES (EC_GROUP_GREETINGS << 9) | 0x1c +#define EC_WORD_NO (EC_GROUP_GREETINGS << 9) | 0x1d +#define EC_WORD_HI (EC_GROUP_GREETINGS << 9) | 0x1e +#define EC_WORD_YEAH_YEAH (EC_GROUP_GREETINGS << 9) | 0x1f +#define EC_WORD_BYE_BYE (EC_GROUP_GREETINGS << 9) | 0x20 +#define EC_WORD_MEET_YOU (EC_GROUP_GREETINGS << 9) | 0x21 +#define EC_WORD_HEY (EC_GROUP_GREETINGS << 9) | 0x22 +#define EC_WORD_SMELL (EC_GROUP_GREETINGS << 9) | 0x23 +#define EC_WORD_LISTENING (EC_GROUP_GREETINGS << 9) | 0x24 +#define EC_WORD_HOO_HAH (EC_GROUP_GREETINGS << 9) | 0x25 +#define EC_WORD_YAHOO (EC_GROUP_GREETINGS << 9) | 0x26 +#define EC_WORD_YO (EC_GROUP_GREETINGS << 9) | 0x27 +#define EC_WORD_COME_OVER (EC_GROUP_GREETINGS << 9) | 0x28 +#define EC_WORD_COUNT_ON (EC_GROUP_GREETINGS << 9) | 0x29 + +// PEOPLE +#define EC_WORD_OPPONENT (EC_GROUP_PEOPLE << 9) | 0x0 +#define EC_WORD_I (EC_GROUP_PEOPLE << 9) | 0x1 +#define EC_WORD_YOU (EC_GROUP_PEOPLE << 9) | 0x2 +#define EC_WORD_YOURS (EC_GROUP_PEOPLE << 9) | 0x3 +#define EC_WORD_SON (EC_GROUP_PEOPLE << 9) | 0x4 +#define EC_WORD_YOUR (EC_GROUP_PEOPLE << 9) | 0x5 +#define EC_WORD_YOU_RE (EC_GROUP_PEOPLE << 9) | 0x6 +#define EC_WORD_YOU_VE (EC_GROUP_PEOPLE << 9) | 0x7 +#define EC_WORD_MOTHER (EC_GROUP_PEOPLE << 9) | 0x8 +#define EC_WORD_GRANDFATHER (EC_GROUP_PEOPLE << 9) | 0x9 +#define EC_WORD_UNCLE (EC_GROUP_PEOPLE << 9) | 0xa +#define EC_WORD_FATHER (EC_GROUP_PEOPLE << 9) | 0xb +#define EC_WORD_BOY (EC_GROUP_PEOPLE << 9) | 0xc +#define EC_WORD_ADULT (EC_GROUP_PEOPLE << 9) | 0xd +#define EC_WORD_BROTHER (EC_GROUP_PEOPLE << 9) | 0xe +#define EC_WORD_SISTER (EC_GROUP_PEOPLE << 9) | 0xf +#define EC_WORD_GRANDMOTHER (EC_GROUP_PEOPLE << 9) | 0x10 +#define EC_WORD_AUNT (EC_GROUP_PEOPLE << 9) | 0x11 +#define EC_WORD_PARENT (EC_GROUP_PEOPLE << 9) | 0x12 +#define EC_WORD_MAN (EC_GROUP_PEOPLE << 9) | 0x13 +#define EC_WORD_ME (EC_GROUP_PEOPLE << 9) | 0x14 +#define EC_WORD_GIRL (EC_GROUP_PEOPLE << 9) | 0x15 +#define EC_WORD_BABE (EC_GROUP_PEOPLE << 9) | 0x16 +#define EC_WORD_FAMILY (EC_GROUP_PEOPLE << 9) | 0x17 +#define EC_WORD_HER (EC_GROUP_PEOPLE << 9) | 0x18 +#define EC_WORD_HIM (EC_GROUP_PEOPLE << 9) | 0x19 +#define EC_WORD_HE (EC_GROUP_PEOPLE << 9) | 0x1a +#define EC_WORD_PLACE (EC_GROUP_PEOPLE << 9) | 0x1b +#define EC_WORD_DAUGHTER (EC_GROUP_PEOPLE << 9) | 0x1c +#define EC_WORD_HIS (EC_GROUP_PEOPLE << 9) | 0x1d +#define EC_WORD_HE_S (EC_GROUP_PEOPLE << 9) | 0x1e +#define EC_WORD_AREN_T (EC_GROUP_PEOPLE << 9) | 0x1f +#define EC_WORD_SIBLINGS (EC_GROUP_PEOPLE << 9) | 0x20 +#define EC_WORD_KID (EC_GROUP_PEOPLE << 9) | 0x21 +#define EC_WORD_CHILDREN (EC_GROUP_PEOPLE << 9) | 0x22 +#define EC_WORD_MR (EC_GROUP_PEOPLE << 9) | 0x23 +#define EC_WORD_MRS (EC_GROUP_PEOPLE << 9) | 0x24 +#define EC_WORD_MYSELF (EC_GROUP_PEOPLE << 9) | 0x25 +#define EC_WORD_I_WAS (EC_GROUP_PEOPLE << 9) | 0x26 +#define EC_WORD_TO_ME (EC_GROUP_PEOPLE << 9) | 0x27 +#define EC_WORD_MY (EC_GROUP_PEOPLE << 9) | 0x28 +#define EC_WORD_I_AM (EC_GROUP_PEOPLE << 9) | 0x29 +#define EC_WORD_I_VE (EC_GROUP_PEOPLE << 9) | 0x2a +#define EC_WORD_WHO (EC_GROUP_PEOPLE << 9) | 0x2b +#define EC_WORD_SOMEONE (EC_GROUP_PEOPLE << 9) | 0x2c +#define EC_WORD_WHO_WAS (EC_GROUP_PEOPLE << 9) | 0x2d +#define EC_WORD_TO_WHOM (EC_GROUP_PEOPLE << 9) | 0x2e +#define EC_WORD_WHOSE (EC_GROUP_PEOPLE << 9) | 0x2f +#define EC_WORD_WHO_IS (EC_GROUP_PEOPLE << 9) | 0x30 +#define EC_WORD_IT_S (EC_GROUP_PEOPLE << 9) | 0x31 +#define EC_WORD_LADY (EC_GROUP_PEOPLE << 9) | 0x32 +#define EC_WORD_FRIEND (EC_GROUP_PEOPLE << 9) | 0x33 +#define EC_WORD_ALLY (EC_GROUP_PEOPLE << 9) | 0x34 +#define EC_WORD_PERSON (EC_GROUP_PEOPLE << 9) | 0x35 +#define EC_WORD_DUDE (EC_GROUP_PEOPLE << 9) | 0x36 +#define EC_WORD_THEY (EC_GROUP_PEOPLE << 9) | 0x37 +#define EC_WORD_THEY_WERE (EC_GROUP_PEOPLE << 9) | 0x38 +#define EC_WORD_TO_THEM (EC_GROUP_PEOPLE << 9) | 0x39 +#define EC_WORD_THEIR (EC_GROUP_PEOPLE << 9) | 0x3a +#define EC_WORD_THEY_RE (EC_GROUP_PEOPLE << 9) | 0x3b +#define EC_WORD_THEY_VE (EC_GROUP_PEOPLE << 9) | 0x3c +#define EC_WORD_WE (EC_GROUP_PEOPLE << 9) | 0x3d +#define EC_WORD_BEEN (EC_GROUP_PEOPLE << 9) | 0x3e +#define EC_WORD_TO_US (EC_GROUP_PEOPLE << 9) | 0x3f +#define EC_WORD_OUR (EC_GROUP_PEOPLE << 9) | 0x40 +#define EC_WORD_WE_RE (EC_GROUP_PEOPLE << 9) | 0x41 +#define EC_WORD_RIVAL (EC_GROUP_PEOPLE << 9) | 0x42 +#define EC_WORD_WE_VE (EC_GROUP_PEOPLE << 9) | 0x43 +#define EC_WORD_WOMAN (EC_GROUP_PEOPLE << 9) | 0x44 +#define EC_WORD_SHE (EC_GROUP_PEOPLE << 9) | 0x45 +#define EC_WORD_SHE_WAS (EC_GROUP_PEOPLE << 9) | 0x46 +#define EC_WORD_TO_HER (EC_GROUP_PEOPLE << 9) | 0x47 +#define EC_WORD_HERS (EC_GROUP_PEOPLE << 9) | 0x48 +#define EC_WORD_SHE_IS (EC_GROUP_PEOPLE << 9) | 0x49 +#define EC_WORD_SOME (EC_GROUP_PEOPLE << 9) | 0x4a + +// VOICES +#define EC_WORD_EXCL (EC_GROUP_VOICES << 9) | 0x0 +#define EC_WORD_EXCL_EXCL (EC_GROUP_VOICES << 9) | 0x1 +#define EC_WORD_QUES_EXCL (EC_GROUP_VOICES << 9) | 0x2 +#define EC_WORD_QUES (EC_GROUP_VOICES << 9) | 0x3 +#define EC_WORD_ELLIPSIS (EC_GROUP_VOICES << 9) | 0x4 +#define EC_WORD_ELLIPSIS_EXCL (EC_GROUP_VOICES << 9) | 0x5 +#define EC_WORD_ELLIPSIS_ELLIPSIS_ELLIPSIS (EC_GROUP_VOICES << 9) | 0x6 +#define EC_WORD_DASH (EC_GROUP_VOICES << 9) | 0x7 +#define EC_WORD_DASH_DASH_DASH (EC_GROUP_VOICES << 9) | 0x8 +#define EC_WORD_UH_OH (EC_GROUP_VOICES << 9) | 0x9 +#define EC_WORD_WAAAH (EC_GROUP_VOICES << 9) | 0xa +#define EC_WORD_AHAHA (EC_GROUP_VOICES << 9) | 0xb +#define EC_WORD_OH_QUES (EC_GROUP_VOICES << 9) | 0xc +#define EC_WORD_NOPE (EC_GROUP_VOICES << 9) | 0xd +#define EC_WORD_URGH (EC_GROUP_VOICES << 9) | 0xe +#define EC_WORD_HMM (EC_GROUP_VOICES << 9) | 0xf +#define EC_WORD_WHOAH (EC_GROUP_VOICES << 9) | 0x10 +#define EC_WORD_WROOOAAR_EXCL (EC_GROUP_VOICES << 9) | 0x11 +#define EC_WORD_WOW (EC_GROUP_VOICES << 9) | 0x12 +#define EC_WORD_GIGGLE (EC_GROUP_VOICES << 9) | 0x13 +#define EC_WORD_SIGH (EC_GROUP_VOICES << 9) | 0x14 +#define EC_WORD_UNBELIEVABLE (EC_GROUP_VOICES << 9) | 0x15 +#define EC_WORD_CRIES (EC_GROUP_VOICES << 9) | 0x16 +#define EC_WORD_AGREE (EC_GROUP_VOICES << 9) | 0x17 +#define EC_WORD_EH_QUES (EC_GROUP_VOICES << 9) | 0x18 +#define EC_WORD_CRY (EC_GROUP_VOICES << 9) | 0x19 +#define EC_WORD_EHEHE (EC_GROUP_VOICES << 9) | 0x1a +#define EC_WORD_OI_OI_OI (EC_GROUP_VOICES << 9) | 0x1b +#define EC_WORD_OH_YEAH (EC_GROUP_VOICES << 9) | 0x1c +#define EC_WORD_OH (EC_GROUP_VOICES << 9) | 0x1d +#define EC_WORD_OOPS (EC_GROUP_VOICES << 9) | 0x1e +#define EC_WORD_SHOCKED (EC_GROUP_VOICES << 9) | 0x1f +#define EC_WORD_EEK (EC_GROUP_VOICES << 9) | 0x20 +#define EC_WORD_GRAAAH (EC_GROUP_VOICES << 9) | 0x21 +#define EC_WORD_GWAHAHAHA (EC_GROUP_VOICES << 9) | 0x22 +#define EC_WORD_WAY (EC_GROUP_VOICES << 9) | 0x23 +#define EC_WORD_TCH (EC_GROUP_VOICES << 9) | 0x24 +#define EC_WORD_HEHE (EC_GROUP_VOICES << 9) | 0x25 +#define EC_WORD_HAH (EC_GROUP_VOICES << 9) | 0x26 +#define EC_WORD_YUP (EC_GROUP_VOICES << 9) | 0x27 +#define EC_WORD_HAHAHA (EC_GROUP_VOICES << 9) | 0x28 +#define EC_WORD_AIYEEH (EC_GROUP_VOICES << 9) | 0x29 +#define EC_WORD_HIYAH (EC_GROUP_VOICES << 9) | 0x2a +#define EC_WORD_FUFUFU (EC_GROUP_VOICES << 9) | 0x2b +#define EC_WORD_LOL (EC_GROUP_VOICES << 9) | 0x2c +#define EC_WORD_SNORT (EC_GROUP_VOICES << 9) | 0x2d +#define EC_WORD_HUMPH (EC_GROUP_VOICES << 9) | 0x2e +#define EC_WORD_HEHEHE (EC_GROUP_VOICES << 9) | 0x2f +#define EC_WORD_HEH (EC_GROUP_VOICES << 9) | 0x30 +#define EC_WORD_HOHOHO (EC_GROUP_VOICES << 9) | 0x31 +#define EC_WORD_UH_HUH (EC_GROUP_VOICES << 9) | 0x32 +#define EC_WORD_OH_DEAR (EC_GROUP_VOICES << 9) | 0x33 +#define EC_WORD_ARRGH (EC_GROUP_VOICES << 9) | 0x34 +#define EC_WORD_MUFUFU (EC_GROUP_VOICES << 9) | 0x35 +#define EC_WORD_MMM (EC_GROUP_VOICES << 9) | 0x36 +#define EC_WORD_OH_KAY (EC_GROUP_VOICES << 9) | 0x37 +#define EC_WORD_OKAY (EC_GROUP_VOICES << 9) | 0x38 +#define EC_WORD_LALALA (EC_GROUP_VOICES << 9) | 0x39 +#define EC_WORD_YAY (EC_GROUP_VOICES << 9) | 0x3a +#define EC_WORD_AWW (EC_GROUP_VOICES << 9) | 0x3b +#define EC_WORD_WOWEE (EC_GROUP_VOICES << 9) | 0x3c +#define EC_WORD_GWAH (EC_GROUP_VOICES << 9) | 0x3d +#define EC_WORD_WAHAHAHA (EC_GROUP_VOICES << 9) | 0x3e + +// SPEECH +#define EC_WORD_LISTEN (EC_GROUP_SPEECH << 9) | 0x0 +#define EC_WORD_NOT_VERY (EC_GROUP_SPEECH << 9) | 0x1 +#define EC_WORD_MEAN (EC_GROUP_SPEECH << 9) | 0x2 +#define EC_WORD_LIE (EC_GROUP_SPEECH << 9) | 0x3 +#define EC_WORD_LAY (EC_GROUP_SPEECH << 9) | 0x4 +#define EC_WORD_RECOMMEND (EC_GROUP_SPEECH << 9) | 0x5 +#define EC_WORD_NITWIT (EC_GROUP_SPEECH << 9) | 0x6 +#define EC_WORD_QUITE (EC_GROUP_SPEECH << 9) | 0x7 +#define EC_WORD_FROM (EC_GROUP_SPEECH << 9) | 0x8 +#define EC_WORD_FEELING (EC_GROUP_SPEECH << 9) | 0x9 +#define EC_WORD_BUT (EC_GROUP_SPEECH << 9) | 0xa +#define EC_WORD_HOWEVER (EC_GROUP_SPEECH << 9) | 0xb +#define EC_WORD_CASE (EC_GROUP_SPEECH << 9) | 0xc +#define EC_WORD_THE (EC_GROUP_SPEECH << 9) | 0xd +#define EC_WORD_MISS (EC_GROUP_SPEECH << 9) | 0xe +#define EC_WORD_HOW (EC_GROUP_SPEECH << 9) | 0xf +#define EC_WORD_HIT (EC_GROUP_SPEECH << 9) | 0x10 +#define EC_WORD_ENOUGH (EC_GROUP_SPEECH << 9) | 0x11 +#define EC_WORD_A_LOT (EC_GROUP_SPEECH << 9) | 0x12 +#define EC_WORD_A_LITTLE (EC_GROUP_SPEECH << 9) | 0x13 +#define EC_WORD_ABSOLUTELY (EC_GROUP_SPEECH << 9) | 0x14 +#define EC_WORD_AND (EC_GROUP_SPEECH << 9) | 0x15 +#define EC_WORD_ONLY (EC_GROUP_SPEECH << 9) | 0x16 +#define EC_WORD_AROUND (EC_GROUP_SPEECH << 9) | 0x17 +#define EC_WORD_PROBABLY (EC_GROUP_SPEECH << 9) | 0x18 +#define EC_WORD_IF (EC_GROUP_SPEECH << 9) | 0x19 +#define EC_WORD_VERY (EC_GROUP_SPEECH << 9) | 0x1a +#define EC_WORD_A_TINY_BIT (EC_GROUP_SPEECH << 9) | 0x1b +#define EC_WORD_WILD (EC_GROUP_SPEECH << 9) | 0x1c +#define EC_WORD_THAT_S (EC_GROUP_SPEECH << 9) | 0x1d +#define EC_WORD_JUST (EC_GROUP_SPEECH << 9) | 0x1e +#define EC_WORD_EVEN_SO (EC_GROUP_SPEECH << 9) | 0x1f +#define EC_WORD_MUST_BE (EC_GROUP_SPEECH << 9) | 0x20 +#define EC_WORD_NATURALLY (EC_GROUP_SPEECH << 9) | 0x21 +#define EC_WORD_FOR_NOW (EC_GROUP_SPEECH << 9) | 0x22 +#define EC_WORD_UNDERSTOOD (EC_GROUP_SPEECH << 9) | 0x23 +#define EC_WORD_JOKING (EC_GROUP_SPEECH << 9) | 0x24 +#define EC_WORD_READY (EC_GROUP_SPEECH << 9) | 0x25 +#define EC_WORD_SOMETHING (EC_GROUP_SPEECH << 9) | 0x26 +#define EC_WORD_SOMEHOW (EC_GROUP_SPEECH << 9) | 0x27 +#define EC_WORD_ALTHOUGH (EC_GROUP_SPEECH << 9) | 0x28 +#define EC_WORD_ALSO (EC_GROUP_SPEECH << 9) | 0x29 +#define EC_WORD_PERFECT (EC_GROUP_SPEECH << 9) | 0x2a +#define EC_WORD_AS_MUCH_AS (EC_GROUP_SPEECH << 9) | 0x2b +#define EC_WORD_REALLY (EC_GROUP_SPEECH << 9) | 0x2c +#define EC_WORD_TRULY (EC_GROUP_SPEECH << 9) | 0x2d +#define EC_WORD_SERIOUSLY (EC_GROUP_SPEECH << 9) | 0x2e +#define EC_WORD_TOTALLY (EC_GROUP_SPEECH << 9) | 0x2f +#define EC_WORD_UNTIL (EC_GROUP_SPEECH << 9) | 0x30 +#define EC_WORD_AS_IF (EC_GROUP_SPEECH << 9) | 0x31 +#define EC_WORD_MOOD (EC_GROUP_SPEECH << 9) | 0x32 +#define EC_WORD_RATHER (EC_GROUP_SPEECH << 9) | 0x33 +#define EC_WORD_AWFULLY (EC_GROUP_SPEECH << 9) | 0x34 +#define EC_WORD_MODE (EC_GROUP_SPEECH << 9) | 0x35 +#define EC_WORD_MORE (EC_GROUP_SPEECH << 9) | 0x36 +#define EC_WORD_TOO_LATE (EC_GROUP_SPEECH << 9) | 0x37 +#define EC_WORD_FINALLY (EC_GROUP_SPEECH << 9) | 0x38 +#define EC_WORD_ANY (EC_GROUP_SPEECH << 9) | 0x39 +#define EC_WORD_INSTEAD (EC_GROUP_SPEECH << 9) | 0x3a +#define EC_WORD_FANTASTIC (EC_GROUP_SPEECH << 9) | 0x3b + +// ENDINGS +#define EC_WORD_WILL (EC_GROUP_ENDINGS << 9) | 0x0 +#define EC_WORD_WILL_BE_HERE (EC_GROUP_ENDINGS << 9) | 0x1 +#define EC_WORD_OR (EC_GROUP_ENDINGS << 9) | 0x2 +#define EC_WORD_TIMES (EC_GROUP_ENDINGS << 9) | 0x3 +#define EC_WORD_WONDER (EC_GROUP_ENDINGS << 9) | 0x4 +#define EC_WORD_IS_IT_QUES (EC_GROUP_ENDINGS << 9) | 0x5 +#define EC_WORD_BE (EC_GROUP_ENDINGS << 9) | 0x6 +#define EC_WORD_GIMME (EC_GROUP_ENDINGS << 9) | 0x7 +#define EC_WORD_COULD (EC_GROUP_ENDINGS << 9) | 0x8 +#define EC_WORD_LIKELY_TO (EC_GROUP_ENDINGS << 9) | 0x9 +#define EC_WORD_WOULD (EC_GROUP_ENDINGS << 9) | 0xa +#define EC_WORD_IS (EC_GROUP_ENDINGS << 9) | 0xb +#define EC_WORD_ISN_T_IT_QUES (EC_GROUP_ENDINGS << 9) | 0xc +#define EC_WORD_LET_S (EC_GROUP_ENDINGS << 9) | 0xd +#define EC_WORD_OTHER (EC_GROUP_ENDINGS << 9) | 0xe +#define EC_WORD_ARE (EC_GROUP_ENDINGS << 9) | 0xf +#define EC_WORD_WAS (EC_GROUP_ENDINGS << 9) | 0x10 +#define EC_WORD_WERE (EC_GROUP_ENDINGS << 9) | 0x11 +#define EC_WORD_THOSE (EC_GROUP_ENDINGS << 9) | 0x12 +#define EC_WORD_ISN_T (EC_GROUP_ENDINGS << 9) | 0x13 +#define EC_WORD_WON_T (EC_GROUP_ENDINGS << 9) | 0x14 +#define EC_WORD_CAN_T (EC_GROUP_ENDINGS << 9) | 0x15 +#define EC_WORD_CAN (EC_GROUP_ENDINGS << 9) | 0x16 +#define EC_WORD_DON_T (EC_GROUP_ENDINGS << 9) | 0x17 +#define EC_WORD_DO (EC_GROUP_ENDINGS << 9) | 0x18 +#define EC_WORD_DOES (EC_GROUP_ENDINGS << 9) | 0x19 +#define EC_WORD_WHOM (EC_GROUP_ENDINGS << 9) | 0x1a +#define EC_WORD_WHICH (EC_GROUP_ENDINGS << 9) | 0x1b +#define EC_WORD_WASN_T (EC_GROUP_ENDINGS << 9) | 0x1c +#define EC_WORD_WEREN_T (EC_GROUP_ENDINGS << 9) | 0x1d +#define EC_WORD_HAVE (EC_GROUP_ENDINGS << 9) | 0x1e +#define EC_WORD_HAVEN_T (EC_GROUP_ENDINGS << 9) | 0x1f +#define EC_WORD_A (EC_GROUP_ENDINGS << 9) | 0x20 +#define EC_WORD_AN (EC_GROUP_ENDINGS << 9) | 0x21 +#define EC_WORD_NOT (EC_GROUP_ENDINGS << 9) | 0x22 +#define EC_WORD_THERE (EC_GROUP_ENDINGS << 9) | 0x23 +#define EC_WORD_OK_QUES (EC_GROUP_ENDINGS << 9) | 0x24 +#define EC_WORD_SO (EC_GROUP_ENDINGS << 9) | 0x25 +#define EC_WORD_MAYBE (EC_GROUP_ENDINGS << 9) | 0x26 +#define EC_WORD_ABOUT (EC_GROUP_ENDINGS << 9) | 0x27 +#define EC_WORD_OVER (EC_GROUP_ENDINGS << 9) | 0x28 +#define EC_WORD_IT (EC_GROUP_ENDINGS << 9) | 0x29 +#define EC_WORD_ALL (EC_GROUP_ENDINGS << 9) | 0x2a +#define EC_WORD_FOR (EC_GROUP_ENDINGS << 9) | 0x2b +#define EC_WORD_ON (EC_GROUP_ENDINGS << 9) | 0x2c +#define EC_WORD_OFF (EC_GROUP_ENDINGS << 9) | 0x2d +#define EC_WORD_AS (EC_GROUP_ENDINGS << 9) | 0x2e +#define EC_WORD_TO (EC_GROUP_ENDINGS << 9) | 0x2f +#define EC_WORD_WITH (EC_GROUP_ENDINGS << 9) | 0x30 +#define EC_WORD_BETTER (EC_GROUP_ENDINGS << 9) | 0x31 +#define EC_WORD_EVER (EC_GROUP_ENDINGS << 9) | 0x32 +#define EC_WORD_SINCE (EC_GROUP_ENDINGS << 9) | 0x33 +#define EC_WORD_OF (EC_GROUP_ENDINGS << 9) | 0x34 +#define EC_WORD_BELONGS_TO (EC_GROUP_ENDINGS << 9) | 0x35 +#define EC_WORD_AT (EC_GROUP_ENDINGS << 9) | 0x36 +#define EC_WORD_IN (EC_GROUP_ENDINGS << 9) | 0x37 +#define EC_WORD_OUT (EC_GROUP_ENDINGS << 9) | 0x38 +#define EC_WORD_TOO (EC_GROUP_ENDINGS << 9) | 0x39 +#define EC_WORD_LIKE (EC_GROUP_ENDINGS << 9) | 0x3a +#define EC_WORD_DID (EC_GROUP_ENDINGS << 9) | 0x3b +#define EC_WORD_DIDN_T (EC_GROUP_ENDINGS << 9) | 0x3c +#define EC_WORD_DOESN_T (EC_GROUP_ENDINGS << 9) | 0x3d +#define EC_WORD_WITHOUT (EC_GROUP_ENDINGS << 9) | 0x3e +#define EC_WORD_AFTER (EC_GROUP_ENDINGS << 9) | 0x3f +#define EC_WORD_BEFORE (EC_GROUP_ENDINGS << 9) | 0x40 +#define EC_WORD_WHILE (EC_GROUP_ENDINGS << 9) | 0x41 +#define EC_WORD_THAN (EC_GROUP_ENDINGS << 9) | 0x42 +#define EC_WORD_ONCE (EC_GROUP_ENDINGS << 9) | 0x43 +#define EC_WORD_ANYWHERE (EC_GROUP_ENDINGS << 9) | 0x44 + +// FEELINGS +#define EC_WORD_MEET (EC_GROUP_FEELINGS << 9) | 0x0 +#define EC_WORD_PLAY (EC_GROUP_FEELINGS << 9) | 0x1 +#define EC_WORD_HURRIED (EC_GROUP_FEELINGS << 9) | 0x2 +#define EC_WORD_GOES (EC_GROUP_FEELINGS << 9) | 0x3 +#define EC_WORD_GIDDY (EC_GROUP_FEELINGS << 9) | 0x4 +#define EC_WORD_HAPPY (EC_GROUP_FEELINGS << 9) | 0x5 +#define EC_WORD_HAPPINESS (EC_GROUP_FEELINGS << 9) | 0x6 +#define EC_WORD_EXCITE (EC_GROUP_FEELINGS << 9) | 0x7 +#define EC_WORD_IMPORTANT (EC_GROUP_FEELINGS << 9) | 0x8 +#define EC_WORD_FUNNY (EC_GROUP_FEELINGS << 9) | 0x9 +#define EC_WORD_GOT (EC_GROUP_FEELINGS << 9) | 0xa +#define EC_WORD_GO_HOME (EC_GROUP_FEELINGS << 9) | 0xb +#define EC_WORD_DISAPPOINTED (EC_GROUP_FEELINGS << 9) | 0xc +#define EC_WORD_DISAPPOINTS (EC_GROUP_FEELINGS << 9) | 0xd +#define EC_WORD_SAD (EC_GROUP_FEELINGS << 9) | 0xe +#define EC_WORD_TRY (EC_GROUP_FEELINGS << 9) | 0xf +#define EC_WORD_TRIES (EC_GROUP_FEELINGS << 9) | 0x10 +#define EC_WORD_HEARS (EC_GROUP_FEELINGS << 9) | 0x11 +#define EC_WORD_THINK (EC_GROUP_FEELINGS << 9) | 0x12 +#define EC_WORD_HEAR (EC_GROUP_FEELINGS << 9) | 0x13 +#define EC_WORD_WANTS (EC_GROUP_FEELINGS << 9) | 0x14 +#define EC_WORD_MISHEARD (EC_GROUP_FEELINGS << 9) | 0x15 +#define EC_WORD_DISLIKE (EC_GROUP_FEELINGS << 9) | 0x16 +#define EC_WORD_ANGRY (EC_GROUP_FEELINGS << 9) | 0x17 +#define EC_WORD_ANGER (EC_GROUP_FEELINGS << 9) | 0x18 +#define EC_WORD_SCARY (EC_GROUP_FEELINGS << 9) | 0x19 +#define EC_WORD_LONESOME (EC_GROUP_FEELINGS << 9) | 0x1a +#define EC_WORD_DISAPPOINT (EC_GROUP_FEELINGS << 9) | 0x1b +#define EC_WORD_JOY (EC_GROUP_FEELINGS << 9) | 0x1c +#define EC_WORD_GETS (EC_GROUP_FEELINGS << 9) | 0x1d +#define EC_WORD_NEVER (EC_GROUP_FEELINGS << 9) | 0x1e +#define EC_WORD_DARN (EC_GROUP_FEELINGS << 9) | 0x1f +#define EC_WORD_DOWNCAST (EC_GROUP_FEELINGS << 9) | 0x20 +#define EC_WORD_INCREDIBLE (EC_GROUP_FEELINGS << 9) | 0x21 +#define EC_WORD_LIKES (EC_GROUP_FEELINGS << 9) | 0x22 +#define EC_WORD_DISLIKES (EC_GROUP_FEELINGS << 9) | 0x23 +#define EC_WORD_BORING (EC_GROUP_FEELINGS << 9) | 0x24 +#define EC_WORD_CARE (EC_GROUP_FEELINGS << 9) | 0x25 +#define EC_WORD_CARES (EC_GROUP_FEELINGS << 9) | 0x26 +#define EC_WORD_ALL_RIGHT (EC_GROUP_FEELINGS << 9) | 0x27 +#define EC_WORD_ADORE (EC_GROUP_FEELINGS << 9) | 0x28 +#define EC_WORD_DISASTER (EC_GROUP_FEELINGS << 9) | 0x29 +#define EC_WORD_ENJOY (EC_GROUP_FEELINGS << 9) | 0x2a +#define EC_WORD_ENJOYS (EC_GROUP_FEELINGS << 9) | 0x2b +#define EC_WORD_EAT (EC_GROUP_FEELINGS << 9) | 0x2c +#define EC_WORD_LACKING (EC_GROUP_FEELINGS << 9) | 0x2d +#define EC_WORD_BAD (EC_GROUP_FEELINGS << 9) | 0x2e +#define EC_WORD_HARD (EC_GROUP_FEELINGS << 9) | 0x2f +#define EC_WORD_TERRIBLE (EC_GROUP_FEELINGS << 9) | 0x30 +#define EC_WORD_SHOULD (EC_GROUP_FEELINGS << 9) | 0x31 +#define EC_WORD_NICE (EC_GROUP_FEELINGS << 9) | 0x32 +#define EC_WORD_DRINK (EC_GROUP_FEELINGS << 9) | 0x33 +#define EC_WORD_SURPRISE (EC_GROUP_FEELINGS << 9) | 0x34 +#define EC_WORD_FEAR (EC_GROUP_FEELINGS << 9) | 0x35 +#define EC_WORD_WANT (EC_GROUP_FEELINGS << 9) | 0x36 +#define EC_WORD_WAIT (EC_GROUP_FEELINGS << 9) | 0x37 +#define EC_WORD_SATISFIED (EC_GROUP_FEELINGS << 9) | 0x38 +#define EC_WORD_SEE (EC_GROUP_FEELINGS << 9) | 0x39 +#define EC_WORD_RARE (EC_GROUP_FEELINGS << 9) | 0x3a +#define EC_WORD_NEGATIVE (EC_GROUP_FEELINGS << 9) | 0x3b +#define EC_WORD_DONE (EC_GROUP_FEELINGS << 9) | 0x3c +#define EC_WORD_DANGER (EC_GROUP_FEELINGS << 9) | 0x3d +#define EC_WORD_DEFEATED (EC_GROUP_FEELINGS << 9) | 0x3e +#define EC_WORD_BEAT (EC_GROUP_FEELINGS << 9) | 0x3f +#define EC_WORD_GREAT (EC_GROUP_FEELINGS << 9) | 0x40 +#define EC_WORD_ROMANTIC (EC_GROUP_FEELINGS << 9) | 0x41 +#define EC_WORD_QUESTION (EC_GROUP_FEELINGS << 9) | 0x42 +#define EC_WORD_UNDERSTAND (EC_GROUP_FEELINGS << 9) | 0x43 +#define EC_WORD_UNDERSTANDS (EC_GROUP_FEELINGS << 9) | 0x44 + +// CONDITIONS +#define EC_WORD_HOT (EC_GROUP_CONDITIONS << 9) | 0x0 +#define EC_WORD_EXISTS (EC_GROUP_CONDITIONS << 9) | 0x1 +#define EC_WORD_EXCESS (EC_GROUP_CONDITIONS << 9) | 0x2 +#define EC_WORD_APPROVED (EC_GROUP_CONDITIONS << 9) | 0x3 +#define EC_WORD_HAS (EC_GROUP_CONDITIONS << 9) | 0x4 +#define EC_WORD_GOOD (EC_GROUP_CONDITIONS << 9) | 0x5 +#define EC_WORD_LESS (EC_GROUP_CONDITIONS << 9) | 0x6 +#define EC_WORD_MOMENTUM (EC_GROUP_CONDITIONS << 9) | 0x7 +#define EC_WORD_GOING (EC_GROUP_CONDITIONS << 9) | 0x8 +#define EC_WORD_WEIRD (EC_GROUP_CONDITIONS << 9) | 0x9 +#define EC_WORD_BUSY (EC_GROUP_CONDITIONS << 9) | 0xa +#define EC_WORD_TOGETHER (EC_GROUP_CONDITIONS << 9) | 0xb +#define EC_WORD_FULL (EC_GROUP_CONDITIONS << 9) | 0xc +#define EC_WORD_ABSENT (EC_GROUP_CONDITIONS << 9) | 0xd +#define EC_WORD_BEING (EC_GROUP_CONDITIONS << 9) | 0xe +#define EC_WORD_NEED (EC_GROUP_CONDITIONS << 9) | 0xf +#define EC_WORD_TASTY (EC_GROUP_CONDITIONS << 9) | 0x10 +#define EC_WORD_SKILLED (EC_GROUP_CONDITIONS << 9) | 0x11 +#define EC_WORD_NOISY (EC_GROUP_CONDITIONS << 9) | 0x12 +#define EC_WORD_BIG (EC_GROUP_CONDITIONS << 9) | 0x13 +#define EC_WORD_LATE (EC_GROUP_CONDITIONS << 9) | 0x14 +#define EC_WORD_CLOSE (EC_GROUP_CONDITIONS << 9) | 0x15 +#define EC_WORD_DOCILE (EC_GROUP_CONDITIONS << 9) | 0x16 +#define EC_WORD_AMUSING (EC_GROUP_CONDITIONS << 9) | 0x17 +#define EC_WORD_ENTERTAINING (EC_GROUP_CONDITIONS << 9) | 0x18 +#define EC_WORD_PERFECTION (EC_GROUP_CONDITIONS << 9) | 0x19 +#define EC_WORD_PRETTY (EC_GROUP_CONDITIONS << 9) | 0x1a +#define EC_WORD_HEALTHY (EC_GROUP_CONDITIONS << 9) | 0x1b +#define EC_WORD_EXCELLENT (EC_GROUP_CONDITIONS << 9) | 0x1c +#define EC_WORD_UPSIDE_DOWN (EC_GROUP_CONDITIONS << 9) | 0x1d +#define EC_WORD_COLD (EC_GROUP_CONDITIONS << 9) | 0x1e +#define EC_WORD_REFRESHING (EC_GROUP_CONDITIONS << 9) | 0x1f +#define EC_WORD_UNAVOIDABLE (EC_GROUP_CONDITIONS << 9) | 0x20 +#define EC_WORD_MUCH (EC_GROUP_CONDITIONS << 9) | 0x21 +#define EC_WORD_OVERWHELMING (EC_GROUP_CONDITIONS << 9) | 0x22 +#define EC_WORD_FABULOUS (EC_GROUP_CONDITIONS << 9) | 0x23 +#define EC_WORD_ELSE (EC_GROUP_CONDITIONS << 9) | 0x24 +#define EC_WORD_EXPENSIVE (EC_GROUP_CONDITIONS << 9) | 0x25 +#define EC_WORD_CORRECT (EC_GROUP_CONDITIONS << 9) | 0x26 +#define EC_WORD_IMPOSSIBLE (EC_GROUP_CONDITIONS << 9) | 0x27 +#define EC_WORD_SMALL (EC_GROUP_CONDITIONS << 9) | 0x28 +#define EC_WORD_DIFFERENT (EC_GROUP_CONDITIONS << 9) | 0x29 +#define EC_WORD_TIRED (EC_GROUP_CONDITIONS << 9) | 0x2a +#define EC_WORD_SKILL (EC_GROUP_CONDITIONS << 9) | 0x2b +#define EC_WORD_TOP (EC_GROUP_CONDITIONS << 9) | 0x2c +#define EC_WORD_NON_STOP (EC_GROUP_CONDITIONS << 9) | 0x2d +#define EC_WORD_PREPOSTEROUS (EC_GROUP_CONDITIONS << 9) | 0x2e +#define EC_WORD_NONE (EC_GROUP_CONDITIONS << 9) | 0x2f +#define EC_WORD_NOTHING (EC_GROUP_CONDITIONS << 9) | 0x30 +#define EC_WORD_NATURAL (EC_GROUP_CONDITIONS << 9) | 0x31 +#define EC_WORD_BECOMES (EC_GROUP_CONDITIONS << 9) | 0x32 +#define EC_WORD_LUKEWARM (EC_GROUP_CONDITIONS << 9) | 0x33 +#define EC_WORD_FAST (EC_GROUP_CONDITIONS << 9) | 0x34 +#define EC_WORD_LOW (EC_GROUP_CONDITIONS << 9) | 0x35 +#define EC_WORD_AWFUL (EC_GROUP_CONDITIONS << 9) | 0x36 +#define EC_WORD_ALONE (EC_GROUP_CONDITIONS << 9) | 0x37 +#define EC_WORD_BORED (EC_GROUP_CONDITIONS << 9) | 0x38 +#define EC_WORD_SECRET (EC_GROUP_CONDITIONS << 9) | 0x39 +#define EC_WORD_MYSTERY (EC_GROUP_CONDITIONS << 9) | 0x3a +#define EC_WORD_LACKS (EC_GROUP_CONDITIONS << 9) | 0x3b +#define EC_WORD_BEST (EC_GROUP_CONDITIONS << 9) | 0x3c +#define EC_WORD_LOUSY (EC_GROUP_CONDITIONS << 9) | 0x3d +#define EC_WORD_MISTAKE (EC_GROUP_CONDITIONS << 9) | 0x3e +#define EC_WORD_KIND (EC_GROUP_CONDITIONS << 9) | 0x3f +#define EC_WORD_WELL (EC_GROUP_CONDITIONS << 9) | 0x40 +#define EC_WORD_WEAKENED (EC_GROUP_CONDITIONS << 9) | 0x41 +#define EC_WORD_SIMPLE (EC_GROUP_CONDITIONS << 9) | 0x42 +#define EC_WORD_SEEMS (EC_GROUP_CONDITIONS << 9) | 0x43 +#define EC_WORD_BADLY (EC_GROUP_CONDITIONS << 9) | 0x44 + +// ACTIONS +#define EC_WORD_MEETS (EC_GROUP_ACTIONS << 9) | 0x0 +#define EC_WORD_CONCEDE (EC_GROUP_ACTIONS << 9) | 0x1 +#define EC_WORD_GIVE (EC_GROUP_ACTIONS << 9) | 0x2 +#define EC_WORD_GIVES (EC_GROUP_ACTIONS << 9) | 0x3 +#define EC_WORD_PLAYED (EC_GROUP_ACTIONS << 9) | 0x4 +#define EC_WORD_PLAYS (EC_GROUP_ACTIONS << 9) | 0x5 +#define EC_WORD_COLLECT (EC_GROUP_ACTIONS << 9) | 0x6 +#define EC_WORD_WALKING (EC_GROUP_ACTIONS << 9) | 0x7 +#define EC_WORD_WALKS (EC_GROUP_ACTIONS << 9) | 0x8 +#define EC_WORD_SAYS (EC_GROUP_ACTIONS << 9) | 0x9 +#define EC_WORD_WENT (EC_GROUP_ACTIONS << 9) | 0xa +#define EC_WORD_SAID (EC_GROUP_ACTIONS << 9) | 0xb +#define EC_WORD_WAKE_UP (EC_GROUP_ACTIONS << 9) | 0xc +#define EC_WORD_WAKES_UP (EC_GROUP_ACTIONS << 9) | 0xd +#define EC_WORD_ANGERS (EC_GROUP_ACTIONS << 9) | 0xe +#define EC_WORD_TEACH (EC_GROUP_ACTIONS << 9) | 0xf +#define EC_WORD_TEACHES (EC_GROUP_ACTIONS << 9) | 0x10 +#define EC_WORD_PLEASE (EC_GROUP_ACTIONS << 9) | 0x11 +#define EC_WORD_LEARN (EC_GROUP_ACTIONS << 9) | 0x12 +#define EC_WORD_CHANGE (EC_GROUP_ACTIONS << 9) | 0x13 +#define EC_WORD_STORY (EC_GROUP_ACTIONS << 9) | 0x14 +#define EC_WORD_TRUST (EC_GROUP_ACTIONS << 9) | 0x15 +#define EC_WORD_LAVISH (EC_GROUP_ACTIONS << 9) | 0x16 +#define EC_WORD_LISTENS (EC_GROUP_ACTIONS << 9) | 0x17 +#define EC_WORD_HEARING (EC_GROUP_ACTIONS << 9) | 0x18 +#define EC_WORD_TRAINS (EC_GROUP_ACTIONS << 9) | 0x19 +#define EC_WORD_CHOOSE (EC_GROUP_ACTIONS << 9) | 0x1a +#define EC_WORD_COME (EC_GROUP_ACTIONS << 9) | 0x1b +#define EC_WORD_CAME (EC_GROUP_ACTIONS << 9) | 0x1c +#define EC_WORD_SEARCH (EC_GROUP_ACTIONS << 9) | 0x1d +#define EC_WORD_MAKE (EC_GROUP_ACTIONS << 9) | 0x1e +#define EC_WORD_CAUSE (EC_GROUP_ACTIONS << 9) | 0x1f +#define EC_WORD_KNOW (EC_GROUP_ACTIONS << 9) | 0x20 +#define EC_WORD_KNOWS (EC_GROUP_ACTIONS << 9) | 0x21 +#define EC_WORD_REFUSE (EC_GROUP_ACTIONS << 9) | 0x22 +#define EC_WORD_STORES (EC_GROUP_ACTIONS << 9) | 0x23 +#define EC_WORD_BRAG (EC_GROUP_ACTIONS << 9) | 0x24 +#define EC_WORD_IGNORANT (EC_GROUP_ACTIONS << 9) | 0x25 +#define EC_WORD_THINKS (EC_GROUP_ACTIONS << 9) | 0x26 +#define EC_WORD_BELIEVE (EC_GROUP_ACTIONS << 9) | 0x27 +#define EC_WORD_SLIDE (EC_GROUP_ACTIONS << 9) | 0x28 +#define EC_WORD_EATS (EC_GROUP_ACTIONS << 9) | 0x29 +#define EC_WORD_USE (EC_GROUP_ACTIONS << 9) | 0x2a +#define EC_WORD_USES (EC_GROUP_ACTIONS << 9) | 0x2b +#define EC_WORD_USING (EC_GROUP_ACTIONS << 9) | 0x2c +#define EC_WORD_COULDN_T (EC_GROUP_ACTIONS << 9) | 0x2d +#define EC_WORD_CAPABLE (EC_GROUP_ACTIONS << 9) | 0x2e +#define EC_WORD_DISAPPEAR (EC_GROUP_ACTIONS << 9) | 0x2f +#define EC_WORD_APPEAR (EC_GROUP_ACTIONS << 9) | 0x30 +#define EC_WORD_THROW (EC_GROUP_ACTIONS << 9) | 0x31 +#define EC_WORD_WORRY (EC_GROUP_ACTIONS << 9) | 0x32 +#define EC_WORD_SLEPT (EC_GROUP_ACTIONS << 9) | 0x33 +#define EC_WORD_SLEEP (EC_GROUP_ACTIONS << 9) | 0x34 +#define EC_WORD_RELEASE (EC_GROUP_ACTIONS << 9) | 0x35 +#define EC_WORD_DRINKS (EC_GROUP_ACTIONS << 9) | 0x36 +#define EC_WORD_RUNS (EC_GROUP_ACTIONS << 9) | 0x37 +#define EC_WORD_RUN (EC_GROUP_ACTIONS << 9) | 0x38 +#define EC_WORD_WORKS (EC_GROUP_ACTIONS << 9) | 0x39 +#define EC_WORD_WORKING (EC_GROUP_ACTIONS << 9) | 0x3a +#define EC_WORD_TALKING (EC_GROUP_ACTIONS << 9) | 0x3b +#define EC_WORD_TALK (EC_GROUP_ACTIONS << 9) | 0x3c +#define EC_WORD_SINK (EC_GROUP_ACTIONS << 9) | 0x3d +#define EC_WORD_SMACK (EC_GROUP_ACTIONS << 9) | 0x3e +#define EC_WORD_PRETEND (EC_GROUP_ACTIONS << 9) | 0x3f +#define EC_WORD_PRAISE (EC_GROUP_ACTIONS << 9) | 0x40 +#define EC_WORD_OVERDO (EC_GROUP_ACTIONS << 9) | 0x41 +#define EC_WORD_SHOW (EC_GROUP_ACTIONS << 9) | 0x42 +#define EC_WORD_LOOKS (EC_GROUP_ACTIONS << 9) | 0x43 +#define EC_WORD_SEES (EC_GROUP_ACTIONS << 9) | 0x44 +#define EC_WORD_SEEK (EC_GROUP_ACTIONS << 9) | 0x45 +#define EC_WORD_OWN (EC_GROUP_ACTIONS << 9) | 0x46 +#define EC_WORD_TAKE (EC_GROUP_ACTIONS << 9) | 0x47 +#define EC_WORD_ALLOW (EC_GROUP_ACTIONS << 9) | 0x48 +#define EC_WORD_FORGET (EC_GROUP_ACTIONS << 9) | 0x49 +#define EC_WORD_FORGETS (EC_GROUP_ACTIONS << 9) | 0x4a +#define EC_WORD_APPEARS (EC_GROUP_ACTIONS << 9) | 0x4b +#define EC_WORD_FAINT (EC_GROUP_ACTIONS << 9) | 0x4c +#define EC_WORD_FAINTED (EC_GROUP_ACTIONS << 9) | 0x4d + +// LIFESTYLE +#define EC_WORD_CHORES (EC_GROUP_LIFESTYLE << 9) | 0x0 +#define EC_WORD_HOME (EC_GROUP_LIFESTYLE << 9) | 0x1 +#define EC_WORD_MONEY (EC_GROUP_LIFESTYLE << 9) | 0x2 +#define EC_WORD_ALLOWANCE (EC_GROUP_LIFESTYLE << 9) | 0x3 +#define EC_WORD_BATH (EC_GROUP_LIFESTYLE << 9) | 0x4 +#define EC_WORD_CONVERSATION (EC_GROUP_LIFESTYLE << 9) | 0x5 +#define EC_WORD_SCHOOL (EC_GROUP_LIFESTYLE << 9) | 0x6 +#define EC_WORD_COMMEMORATE (EC_GROUP_LIFESTYLE << 9) | 0x7 +#define EC_WORD_HABIT (EC_GROUP_LIFESTYLE << 9) | 0x8 +#define EC_WORD_GROUP (EC_GROUP_LIFESTYLE << 9) | 0x9 +#define EC_WORD_WORD (EC_GROUP_LIFESTYLE << 9) | 0xa +#define EC_WORD_STORE (EC_GROUP_LIFESTYLE << 9) | 0xb +#define EC_WORD_SERVICE (EC_GROUP_LIFESTYLE << 9) | 0xc +#define EC_WORD_WORK (EC_GROUP_LIFESTYLE << 9) | 0xd +#define EC_WORD_SYSTEM (EC_GROUP_LIFESTYLE << 9) | 0xe +#define EC_WORD_TRAIN (EC_GROUP_LIFESTYLE << 9) | 0xf +#define EC_WORD_CLASS (EC_GROUP_LIFESTYLE << 9) | 0x10 +#define EC_WORD_LESSONS (EC_GROUP_LIFESTYLE << 9) | 0x11 +#define EC_WORD_INFORMATION (EC_GROUP_LIFESTYLE << 9) | 0x12 +#define EC_WORD_LIVING (EC_GROUP_LIFESTYLE << 9) | 0x13 +#define EC_WORD_TEACHER (EC_GROUP_LIFESTYLE << 9) | 0x14 +#define EC_WORD_TOURNAMENT (EC_GROUP_LIFESTYLE << 9) | 0x15 +#define EC_WORD_LETTER (EC_GROUP_LIFESTYLE << 9) | 0x16 +#define EC_WORD_EVENT (EC_GROUP_LIFESTYLE << 9) | 0x17 +#define EC_WORD_DIGITAL (EC_GROUP_LIFESTYLE << 9) | 0x18 +#define EC_WORD_TEST (EC_GROUP_LIFESTYLE << 9) | 0x19 +#define EC_WORD_DEPT_STORE (EC_GROUP_LIFESTYLE << 9) | 0x1a +#define EC_WORD_TELEVISION (EC_GROUP_LIFESTYLE << 9) | 0x1b +#define EC_WORD_PHONE (EC_GROUP_LIFESTYLE << 9) | 0x1c +#define EC_WORD_ITEM (EC_GROUP_LIFESTYLE << 9) | 0x1d +#define EC_WORD_NAME (EC_GROUP_LIFESTYLE << 9) | 0x1e +#define EC_WORD_NEWS (EC_GROUP_LIFESTYLE << 9) | 0x1f +#define EC_WORD_POPULAR (EC_GROUP_LIFESTYLE << 9) | 0x20 +#define EC_WORD_PARTY (EC_GROUP_LIFESTYLE << 9) | 0x21 +#define EC_WORD_STUDY (EC_GROUP_LIFESTYLE << 9) | 0x22 +#define EC_WORD_MACHINE (EC_GROUP_LIFESTYLE << 9) | 0x23 +#define EC_WORD_MAIL (EC_GROUP_LIFESTYLE << 9) | 0x24 +#define EC_WORD_MESSAGE (EC_GROUP_LIFESTYLE << 9) | 0x25 +#define EC_WORD_PROMISE (EC_GROUP_LIFESTYLE << 9) | 0x26 +#define EC_WORD_DREAM (EC_GROUP_LIFESTYLE << 9) | 0x27 +#define EC_WORD_KINDERGARTEN (EC_GROUP_LIFESTYLE << 9) | 0x28 +#define EC_WORD_LIFE (EC_GROUP_LIFESTYLE << 9) | 0x29 +#define EC_WORD_RADIO (EC_GROUP_LIFESTYLE << 9) | 0x2a +#define EC_WORD_RENTAL (EC_GROUP_LIFESTYLE << 9) | 0x2b +#define EC_WORD_WORLD (EC_GROUP_LIFESTYLE << 9) | 0x2c + +// HOBBIES +#define EC_WORD_IDOL (EC_GROUP_HOBBIES << 9) | 0x0 +#define EC_WORD_ANIME (EC_GROUP_HOBBIES << 9) | 0x1 +#define EC_WORD_SONG (EC_GROUP_HOBBIES << 9) | 0x2 +#define EC_WORD_MOVIE (EC_GROUP_HOBBIES << 9) | 0x3 +#define EC_WORD_SWEETS (EC_GROUP_HOBBIES << 9) | 0x4 +#define EC_WORD_CHAT (EC_GROUP_HOBBIES << 9) | 0x5 +#define EC_WORD_CHILD_S_PLAY (EC_GROUP_HOBBIES << 9) | 0x6 +#define EC_WORD_TOYS (EC_GROUP_HOBBIES << 9) | 0x7 +#define EC_WORD_MUSIC (EC_GROUP_HOBBIES << 9) | 0x8 +#define EC_WORD_CARDS (EC_GROUP_HOBBIES << 9) | 0x9 +#define EC_WORD_SHOPPING (EC_GROUP_HOBBIES << 9) | 0xa +#define EC_WORD_CAMERA (EC_GROUP_HOBBIES << 9) | 0xb +#define EC_WORD_VIEWING (EC_GROUP_HOBBIES << 9) | 0xc +#define EC_WORD_SPECTATOR (EC_GROUP_HOBBIES << 9) | 0xd +#define EC_WORD_GOURMET (EC_GROUP_HOBBIES << 9) | 0xe +#define EC_WORD_GAME (EC_GROUP_HOBBIES << 9) | 0xf +#define EC_WORD_RPG (EC_GROUP_HOBBIES << 9) | 0x10 +#define EC_WORD_COLLECTION (EC_GROUP_HOBBIES << 9) | 0x11 +#define EC_WORD_COMPLETE (EC_GROUP_HOBBIES << 9) | 0x12 +#define EC_WORD_MAGAZINE (EC_GROUP_HOBBIES << 9) | 0x13 +#define EC_WORD_WALK (EC_GROUP_HOBBIES << 9) | 0x14 +#define EC_WORD_BIKE (EC_GROUP_HOBBIES << 9) | 0x15 +#define EC_WORD_HOBBY (EC_GROUP_HOBBIES << 9) | 0x16 +#define EC_WORD_SPORTS (EC_GROUP_HOBBIES << 9) | 0x17 +#define EC_WORD_SOFTWARE (EC_GROUP_HOBBIES << 9) | 0x18 +#define EC_WORD_SONGS (EC_GROUP_HOBBIES << 9) | 0x19 +#define EC_WORD_DIET (EC_GROUP_HOBBIES << 9) | 0x1a +#define EC_WORD_TREASURE (EC_GROUP_HOBBIES << 9) | 0x1b +#define EC_WORD_TRAVEL (EC_GROUP_HOBBIES << 9) | 0x1c +#define EC_WORD_DANCE (EC_GROUP_HOBBIES << 9) | 0x1d +#define EC_WORD_CHANNEL (EC_GROUP_HOBBIES << 9) | 0x1e +#define EC_WORD_MAKING (EC_GROUP_HOBBIES << 9) | 0x1f +#define EC_WORD_FISHING (EC_GROUP_HOBBIES << 9) | 0x20 +#define EC_WORD_DATE (EC_GROUP_HOBBIES << 9) | 0x21 +#define EC_WORD_DESIGN (EC_GROUP_HOBBIES << 9) | 0x22 +#define EC_WORD_LOCOMOTIVE (EC_GROUP_HOBBIES << 9) | 0x23 +#define EC_WORD_PLUSH_DOLL (EC_GROUP_HOBBIES << 9) | 0x24 +#define EC_WORD_PC (EC_GROUP_HOBBIES << 9) | 0x25 +#define EC_WORD_FLOWERS (EC_GROUP_HOBBIES << 9) | 0x26 +#define EC_WORD_HERO (EC_GROUP_HOBBIES << 9) | 0x27 +#define EC_WORD_NAP (EC_GROUP_HOBBIES << 9) | 0x28 +#define EC_WORD_HEROINE (EC_GROUP_HOBBIES << 9) | 0x29 +#define EC_WORD_FASHION (EC_GROUP_HOBBIES << 9) | 0x2a +#define EC_WORD_ADVENTURE (EC_GROUP_HOBBIES << 9) | 0x2b +#define EC_WORD_BOARD (EC_GROUP_HOBBIES << 9) | 0x2c +#define EC_WORD_BALL (EC_GROUP_HOBBIES << 9) | 0x2d +#define EC_WORD_BOOK (EC_GROUP_HOBBIES << 9) | 0x2e +#define EC_WORD_FESTIVAL (EC_GROUP_HOBBIES << 9) | 0x2f +#define EC_WORD_COMICS (EC_GROUP_HOBBIES << 9) | 0x30 +#define EC_WORD_HOLIDAY (EC_GROUP_HOBBIES << 9) | 0x31 +#define EC_WORD_PLANS (EC_GROUP_HOBBIES << 9) | 0x32 +#define EC_WORD_TRENDY (EC_GROUP_HOBBIES << 9) | 0x33 +#define EC_WORD_VACATION (EC_GROUP_HOBBIES << 9) | 0x34 +#define EC_WORD_LOOK (EC_GROUP_HOBBIES << 9) | 0x35 + +// TIME +#define EC_WORD_FALL (EC_GROUP_TIME << 9) | 0x0 +#define EC_WORD_MORNING (EC_GROUP_TIME << 9) | 0x1 +#define EC_WORD_TOMORROW (EC_GROUP_TIME << 9) | 0x2 +#define EC_WORD_LAST (EC_GROUP_TIME << 9) | 0x3 +#define EC_WORD_DAY (EC_GROUP_TIME << 9) | 0x4 +#define EC_WORD_SOMETIME (EC_GROUP_TIME << 9) | 0x5 +#define EC_WORD_ALWAYS (EC_GROUP_TIME << 9) | 0x6 +#define EC_WORD_CURRENT (EC_GROUP_TIME << 9) | 0x7 +#define EC_WORD_FOREVER (EC_GROUP_TIME << 9) | 0x8 +#define EC_WORD_DAYS (EC_GROUP_TIME << 9) | 0x9 +#define EC_WORD_END (EC_GROUP_TIME << 9) | 0xa +#define EC_WORD_TUESDAY (EC_GROUP_TIME << 9) | 0xb +#define EC_WORD_YESTERDAY (EC_GROUP_TIME << 9) | 0xc +#define EC_WORD_TODAY (EC_GROUP_TIME << 9) | 0xd +#define EC_WORD_FRIDAY (EC_GROUP_TIME << 9) | 0xe +#define EC_WORD_MONDAY (EC_GROUP_TIME << 9) | 0xf +#define EC_WORD_LATER (EC_GROUP_TIME << 9) | 0x10 +#define EC_WORD_EARLIER (EC_GROUP_TIME << 9) | 0x11 +#define EC_WORD_ANOTHER (EC_GROUP_TIME << 9) | 0x12 +#define EC_WORD_TIME (EC_GROUP_TIME << 9) | 0x13 +#define EC_WORD_FINISH (EC_GROUP_TIME << 9) | 0x14 +#define EC_WORD_WEDNESDAY (EC_GROUP_TIME << 9) | 0x15 +#define EC_WORD_SOON (EC_GROUP_TIME << 9) | 0x16 +#define EC_WORD_START (EC_GROUP_TIME << 9) | 0x17 +#define EC_WORD_MONTH (EC_GROUP_TIME << 9) | 0x18 +#define EC_WORD_STOP (EC_GROUP_TIME << 9) | 0x19 +#define EC_WORD_NOW (EC_GROUP_TIME << 9) | 0x1a +#define EC_WORD_FINAL (EC_GROUP_TIME << 9) | 0x1b +#define EC_WORD_NEXT (EC_GROUP_TIME << 9) | 0x1c +#define EC_WORD_AGE (EC_GROUP_TIME << 9) | 0x1d +#define EC_WORD_SATURDAY (EC_GROUP_TIME << 9) | 0x1e +#define EC_WORD_SUMMER (EC_GROUP_TIME << 9) | 0x1f +#define EC_WORD_SUNDAY (EC_GROUP_TIME << 9) | 0x20 +#define EC_WORD_BEGINNING (EC_GROUP_TIME << 9) | 0x21 +#define EC_WORD_SPRING (EC_GROUP_TIME << 9) | 0x22 +#define EC_WORD_DAYTIME (EC_GROUP_TIME << 9) | 0x23 +#define EC_WORD_WINTER (EC_GROUP_TIME << 9) | 0x24 +#define EC_WORD_DAILY (EC_GROUP_TIME << 9) | 0x25 +#define EC_WORD_OLDEN (EC_GROUP_TIME << 9) | 0x26 +#define EC_WORD_ALMOST (EC_GROUP_TIME << 9) | 0x27 +#define EC_WORD_NEARLY (EC_GROUP_TIME << 9) | 0x28 +#define EC_WORD_THURSDAY (EC_GROUP_TIME << 9) | 0x29 +#define EC_WORD_NIGHTTIME (EC_GROUP_TIME << 9) | 0x2a +#define EC_WORD_NIGHT (EC_GROUP_TIME << 9) | 0x2b +#define EC_WORD_WEEK (EC_GROUP_TIME << 9) | 0x2c + +// MISC +#define EC_WORD_HIGHS (EC_GROUP_MISC << 9) | 0x0 +#define EC_WORD_LOWS (EC_GROUP_MISC << 9) | 0x1 +#define EC_WORD_UM (EC_GROUP_MISC << 9) | 0x2 +#define EC_WORD_REAR (EC_GROUP_MISC << 9) | 0x3 +#define EC_WORD_THINGS (EC_GROUP_MISC << 9) | 0x4 +#define EC_WORD_THING (EC_GROUP_MISC << 9) | 0x5 +#define EC_WORD_BELOW (EC_GROUP_MISC << 9) | 0x6 +#define EC_WORD_ABOVE (EC_GROUP_MISC << 9) | 0x7 +#define EC_WORD_BACK (EC_GROUP_MISC << 9) | 0x8 +#define EC_WORD_HIGH (EC_GROUP_MISC << 9) | 0x9 +#define EC_WORD_HERE (EC_GROUP_MISC << 9) | 0xa +#define EC_WORD_INSIDE (EC_GROUP_MISC << 9) | 0xb +#define EC_WORD_OUTSIDE (EC_GROUP_MISC << 9) | 0xc +#define EC_WORD_BESIDE (EC_GROUP_MISC << 9) | 0xd +#define EC_WORD_THIS_IS_IT_EXCL (EC_GROUP_MISC << 9) | 0xe +#define EC_WORD_THIS (EC_GROUP_MISC << 9) | 0xf +#define EC_WORD_EVERY (EC_GROUP_MISC << 9) | 0x10 +#define EC_WORD_THESE (EC_GROUP_MISC << 9) | 0x11 +#define EC_WORD_THESE_WERE (EC_GROUP_MISC << 9) | 0x12 +#define EC_WORD_DOWN (EC_GROUP_MISC << 9) | 0x13 +#define EC_WORD_THAT (EC_GROUP_MISC << 9) | 0x14 +#define EC_WORD_THOSE_ARE (EC_GROUP_MISC << 9) | 0x15 +#define EC_WORD_THOSE_WERE (EC_GROUP_MISC << 9) | 0x16 +#define EC_WORD_THAT_S_IT_EXCL (EC_GROUP_MISC << 9) | 0x17 +#define EC_WORD_AM (EC_GROUP_MISC << 9) | 0x18 +#define EC_WORD_THAT_WAS (EC_GROUP_MISC << 9) | 0x19 +#define EC_WORD_FRONT (EC_GROUP_MISC << 9) | 0x1a +#define EC_WORD_UP (EC_GROUP_MISC << 9) | 0x1b +#define EC_WORD_CHOICE (EC_GROUP_MISC << 9) | 0x1c +#define EC_WORD_FAR (EC_GROUP_MISC << 9) | 0x1d +#define EC_WORD_AWAY (EC_GROUP_MISC << 9) | 0x1e +#define EC_WORD_NEAR (EC_GROUP_MISC << 9) | 0x1f +#define EC_WORD_WHERE (EC_GROUP_MISC << 9) | 0x20 +#define EC_WORD_WHEN (EC_GROUP_MISC << 9) | 0x21 +#define EC_WORD_WHAT (EC_GROUP_MISC << 9) | 0x22 +#define EC_WORD_DEEP (EC_GROUP_MISC << 9) | 0x23 +#define EC_WORD_SHALLOW (EC_GROUP_MISC << 9) | 0x24 +#define EC_WORD_WHY (EC_GROUP_MISC << 9) | 0x25 +#define EC_WORD_CONFUSED (EC_GROUP_MISC << 9) | 0x26 +#define EC_WORD_OPPOSITE (EC_GROUP_MISC << 9) | 0x27 +#define EC_WORD_LEFT (EC_GROUP_MISC << 9) | 0x28 +#define EC_WORD_RIGHT (EC_GROUP_MISC << 9) | 0x29 + +// ADJECTIVES +#define EC_WORD_WANDERING (EC_GROUP_ADJECTIVES << 9) | 0x0 +#define EC_WORD_RICKETY (EC_GROUP_ADJECTIVES << 9) | 0x1 +#define EC_WORD_ROCK_SOLID (EC_GROUP_ADJECTIVES << 9) | 0x2 +#define EC_WORD_HUNGRY (EC_GROUP_ADJECTIVES << 9) | 0x3 +#define EC_WORD_TIGHT (EC_GROUP_ADJECTIVES << 9) | 0x4 +#define EC_WORD_TICKLISH (EC_GROUP_ADJECTIVES << 9) | 0x5 +#define EC_WORD_TWIRLING (EC_GROUP_ADJECTIVES << 9) | 0x6 +#define EC_WORD_SPIRALING (EC_GROUP_ADJECTIVES << 9) | 0x7 +#define EC_WORD_THIRSTY (EC_GROUP_ADJECTIVES << 9) | 0x8 +#define EC_WORD_LOLLING (EC_GROUP_ADJECTIVES << 9) | 0x9 +#define EC_WORD_SILKY (EC_GROUP_ADJECTIVES << 9) | 0xa +#define EC_WORD_SADLY (EC_GROUP_ADJECTIVES << 9) | 0xb +#define EC_WORD_HOPELESS (EC_GROUP_ADJECTIVES << 9) | 0xc +#define EC_WORD_USELESS (EC_GROUP_ADJECTIVES << 9) | 0xd +#define EC_WORD_DROOLING (EC_GROUP_ADJECTIVES << 9) | 0xe +#define EC_WORD_EXCITING (EC_GROUP_ADJECTIVES << 9) | 0xf +#define EC_WORD_THICK (EC_GROUP_ADJECTIVES << 9) | 0x10 +#define EC_WORD_SMOOTH (EC_GROUP_ADJECTIVES << 9) | 0x11 +#define EC_WORD_SLIMY (EC_GROUP_ADJECTIVES << 9) | 0x12 +#define EC_WORD_THIN (EC_GROUP_ADJECTIVES << 9) | 0x13 +#define EC_WORD_BREAK (EC_GROUP_ADJECTIVES << 9) | 0x14 +#define EC_WORD_VORACIOUS (EC_GROUP_ADJECTIVES << 9) | 0x15 +#define EC_WORD_SCATTER (EC_GROUP_ADJECTIVES << 9) | 0x16 +#define EC_WORD_AWESOME (EC_GROUP_ADJECTIVES << 9) | 0x17 +#define EC_WORD_WIMPY (EC_GROUP_ADJECTIVES << 9) | 0x18 +#define EC_WORD_WOBBLY (EC_GROUP_ADJECTIVES << 9) | 0x19 +#define EC_WORD_SHAKY (EC_GROUP_ADJECTIVES << 9) | 0x1a +#define EC_WORD_RIPPED (EC_GROUP_ADJECTIVES << 9) | 0x1b +#define EC_WORD_SHREDDED (EC_GROUP_ADJECTIVES << 9) | 0x1c +#define EC_WORD_INCREASING (EC_GROUP_ADJECTIVES << 9) | 0x1d +#define EC_WORD_YET (EC_GROUP_ADJECTIVES << 9) | 0x1e +#define EC_WORD_DESTROYED (EC_GROUP_ADJECTIVES << 9) | 0x1f +#define EC_WORD_FIERY (EC_GROUP_ADJECTIVES << 9) | 0x20 +#define EC_WORD_LOVEY_DOVEY (EC_GROUP_ADJECTIVES << 9) | 0x21 +#define EC_WORD_HAPPILY (EC_GROUP_ADJECTIVES << 9) | 0x22 +#define EC_WORD_ANTICIPATION (EC_GROUP_ADJECTIVES << 9) | 0x23 + +// EVENTS +#define EC_WORD_APPEAL (EC_GROUP_EVENTS << 9) | 0x0 +#define EC_WORD_EVENTS (EC_GROUP_EVENTS << 9) | 0x1 +#define EC_WORD_STAY_AT_HOME (EC_GROUP_EVENTS << 9) | 0x2 +#define EC_WORD_BERRY (EC_GROUP_EVENTS << 9) | 0x3 +#define EC_WORD_CONTEST (EC_GROUP_EVENTS << 9) | 0x4 +#define EC_WORD_MC (EC_GROUP_EVENTS << 9) | 0x5 +#define EC_WORD_JUDGE (EC_GROUP_EVENTS << 9) | 0x6 +#define EC_WORD_SUPER (EC_GROUP_EVENTS << 9) | 0x7 +#define EC_WORD_STAGE (EC_GROUP_EVENTS << 9) | 0x8 +#define EC_WORD_HALL_OF_FAME (EC_GROUP_EVENTS << 9) | 0x9 +#define EC_WORD_EVOLUTION (EC_GROUP_EVENTS << 9) | 0xa +#define EC_WORD_HYPER (EC_GROUP_EVENTS << 9) | 0xb +#define EC_WORD_BATTLE_TOWER (EC_GROUP_EVENTS << 9) | 0xc +#define EC_WORD_LEADERS (EC_GROUP_EVENTS << 9) | 0xd +#define EC_WORD_BATTLE_ROOM (EC_GROUP_EVENTS << 9) | 0xe +#define EC_WORD_HIDDEN (EC_GROUP_EVENTS << 9) | 0xf +#define EC_WORD_SECRET_BASE (EC_GROUP_EVENTS << 9) | 0x10 +#define EC_WORD_BLEND (EC_GROUP_EVENTS << 9) | 0x11 +#define EC_WORD_POKEBLOCK (EC_GROUP_EVENTS << 9) | 0x12 +#define EC_WORD_MASTER (EC_GROUP_EVENTS << 9) | 0x13 +#define EC_WORD_RANK (EC_GROUP_EVENTS << 9) | 0x14 +#define EC_WORD_RIBBON (EC_GROUP_EVENTS << 9) | 0x15 +#define EC_WORD_CRUSH (EC_GROUP_EVENTS << 9) | 0x16 +#define EC_WORD_DIRECT (EC_GROUP_EVENTS << 9) | 0x17 +#define EC_WORD_TOWER (EC_GROUP_EVENTS << 9) | 0x18 +#define EC_WORD_UNION (EC_GROUP_EVENTS << 9) | 0x19 +#define EC_WORD_ROOM (EC_GROUP_EVENTS << 9) | 0x1a +#define EC_WORD_WIRELESS (EC_GROUP_EVENTS << 9) | 0x1b +#define EC_WORD_FRONTIER (EC_GROUP_EVENTS << 9) | 0x1c + +// TRENDY_SAYING +#define EC_WORD_KTHX_BYE (EC_GROUP_TRENDY_SAYING << 9) | 0x0 +#define EC_WORD_YES_SIR_EXCL (EC_GROUP_TRENDY_SAYING << 9) | 0x1 +#define EC_WORD_AVANT_GARDE (EC_GROUP_TRENDY_SAYING << 9) | 0x2 +#define EC_WORD_COUPLE (EC_GROUP_TRENDY_SAYING << 9) | 0x3 +#define EC_WORD_MUCH_OBLIGED (EC_GROUP_TRENDY_SAYING << 9) | 0x4 +#define EC_WORD_YEEHAW_EXCL (EC_GROUP_TRENDY_SAYING << 9) | 0x5 +#define EC_WORD_MEGA (EC_GROUP_TRENDY_SAYING << 9) | 0x6 +#define EC_WORD_1_HIT_KO_EXCL (EC_GROUP_TRENDY_SAYING << 9) | 0x7 +#define EC_WORD_DESTINY (EC_GROUP_TRENDY_SAYING << 9) | 0x8 +#define EC_WORD_CANCEL (EC_GROUP_TRENDY_SAYING << 9) | 0x9 +#define EC_WORD_NEW (EC_GROUP_TRENDY_SAYING << 9) | 0xa +#define EC_WORD_FLATTEN (EC_GROUP_TRENDY_SAYING << 9) | 0xb +#define EC_WORD_KIDDING (EC_GROUP_TRENDY_SAYING << 9) | 0xc +#define EC_WORD_LOSER (EC_GROUP_TRENDY_SAYING << 9) | 0xd +#define EC_WORD_LOSING (EC_GROUP_TRENDY_SAYING << 9) | 0xe +#define EC_WORD_HAPPENING (EC_GROUP_TRENDY_SAYING << 9) | 0xf +#define EC_WORD_HIP_AND (EC_GROUP_TRENDY_SAYING << 9) | 0x10 +#define EC_WORD_SHAKE (EC_GROUP_TRENDY_SAYING << 9) | 0x11 +#define EC_WORD_SHADY (EC_GROUP_TRENDY_SAYING << 9) | 0x12 +#define EC_WORD_UPBEAT (EC_GROUP_TRENDY_SAYING << 9) | 0x13 +#define EC_WORD_MODERN (EC_GROUP_TRENDY_SAYING << 9) | 0x14 +#define EC_WORD_SMELL_YA (EC_GROUP_TRENDY_SAYING << 9) | 0x15 +#define EC_WORD_BANG (EC_GROUP_TRENDY_SAYING << 9) | 0x16 +#define EC_WORD_KNOCKOUT (EC_GROUP_TRENDY_SAYING << 9) | 0x17 +#define EC_WORD_HASSLE (EC_GROUP_TRENDY_SAYING << 9) | 0x18 +#define EC_WORD_WINNER (EC_GROUP_TRENDY_SAYING << 9) | 0x19 +#define EC_WORD_FEVER (EC_GROUP_TRENDY_SAYING << 9) | 0x1a +#define EC_WORD_WANNABE (EC_GROUP_TRENDY_SAYING << 9) | 0x1b +#define EC_WORD_BABY (EC_GROUP_TRENDY_SAYING << 9) | 0x1c +#define EC_WORD_HEART (EC_GROUP_TRENDY_SAYING << 9) | 0x1d +#define EC_WORD_OLD (EC_GROUP_TRENDY_SAYING << 9) | 0x1e +#define EC_WORD_YOUNG (EC_GROUP_TRENDY_SAYING << 9) | 0x1f +#define EC_WORD_UGLY (EC_GROUP_TRENDY_SAYING << 9) | 0x20 + +#define EC_POKEMON(mon) ((EC_GROUP_POKEMON << 9) | SPECIES_##mon) +#define EC_POKEMON2(mon) ((EC_GROUP_POKEMON_2 << 9) | SPECIES_##mon) +#define EC_MOVE(move) ((EC_GROUP_MOVE_1 << 9) | MOVE_##move) +#define EC_MOVE2(move) ((EC_GROUP_MOVE_2 << 9) | MOVE_##move) + +#define EC_GROUP(word) ((word) >> 9) +#define EC_INDEX(word) ((word) & 0x1FF) + +#endif // GUARD_CONSTANTS_EASY_CHAT_H diff --git a/include/constants/flags.h b/include/constants/flags.h new file mode 100644 index 000000000..26d015c84 --- /dev/null +++ b/include/constants/flags.h @@ -0,0 +1,1578 @@ +#ifndef GUARD_CONSTANTS_FLAGS_H +#define GUARD_CONSTANTS_FLAGS_H + +#define FLAG_0x001 0x1 +#define FLAG_0x002 0x2 +#define FLAG_0x003 0x3 +#define FLAG_0x004 0x4 +#define FLAG_0x005 0x5 +#define FLAG_0x006 0x6 +#define FLAG_0x007 0x7 +#define FLAG_0x008 0x8 +#define FLAG_0x009 0x9 +#define FLAG_0x00A 0xA +#define FLAG_0x00B 0xB +#define FLAG_0x00C 0xC +#define FLAG_0x00D 0xD +#define FLAG_0x00E 0xE +#define FLAG_0x00F 0xF +#define FLAG_0x010 0x10 +#define FLAG_0x011 0x11 +#define FLAG_0x012 0x12 +#define FLAG_0x013 0x13 +#define FLAG_0x014 0x14 +#define FLAG_0x015 0x15 +#define FLAG_0x016 0x16 +#define FLAG_0x017 0x17 +#define FLAG_0x018 0x18 +#define FLAG_0x019 0x19 +#define FLAG_0x01A 0x1A +#define FLAG_0x01B 0x1B +#define FLAG_0x01C 0x1C +#define FLAG_0x01D 0x1D +#define FLAG_0x01E 0x1E +#define FLAG_0x01F 0x1F +#define FLAG_0x020 0x20 +#define FLAG_0x021 0x21 +#define FLAG_0x022 0x22 +#define FLAG_0x023 0x23 +#define FLAG_0x024 0x24 +#define FLAG_0x025 0x25 +#define FLAG_0x026 0x26 +#define FLAG_0x027 0x27 +#define FLAG_0x028 0x28 +#define FLAG_0x029 0x29 +#define FLAG_0x02A 0x2A +#define FLAG_0x02B 0x2B +#define FLAG_0x02C 0x2C +#define FLAG_0x02D 0x2D +#define FLAG_0x02E 0x2E +#define FLAG_0x02F 0x2F +#define FLAG_0x030 0x30 +#define FLAG_0x031 0x31 +#define FLAG_0x032 0x32 +#define FLAG_0x033 0x33 +#define FLAG_0x034 0x34 +#define FLAG_0x035 0x35 +#define FLAG_0x036 0x36 +#define FLAG_0x037 0x37 +#define FLAG_0x038 0x38 +#define FLAG_0x039 0x39 +#define FLAG_0x03A 0x3A +#define FLAG_0x03B 0x3B +#define FLAG_0x03C 0x3C +#define FLAG_0x03D 0x3D +#define FLAG_0x03E 0x3E +#define FLAG_0x03F 0x3F +#define FLAG_0x040 0x40 +#define FLAG_0x041 0x41 +#define FLAG_0x042 0x42 +#define FLAG_0x043 0x43 +#define FLAG_0x044 0x44 +#define FLAG_0x045 0x45 +#define FLAG_0x046 0x46 +#define FLAG_0x047 0x47 +#define FLAG_0x048 0x48 +#define FLAG_0x049 0x49 +#define FLAG_0x04A 0x4A +#define FLAG_0x04B 0x4B +#define FLAG_0x04C 0x4C +#define FLAG_0x04D 0x4D +#define FLAG_0x04E 0x4E +#define FLAG_0x04F 0x4F +#define FLAG_0x050 0x50 +#define FLAG_0x051 0x51 +#define FLAG_0x052 0x52 +#define FLAG_LEGENDARIES_IN_SOOTOPOLIS 0x53 +#define FLAG_0x054 0x54 +#define FLAG_0x055 0x55 +#define FLAG_0x056 0x56 +#define FLAG_0x057 0x57 +#define FLAG_0x058 0x58 +#define FLAG_0x059 0x59 +#define FLAG_0x05A 0x5A +#define FLAG_0x05B 0x5B +#define FLAG_0x05C 0x5C +#define FLAG_0x05D 0x5D +#define FLAG_0x05E 0x5E +#define FLAG_0x05F 0x5F +#define FLAG_0x060 0x60 +#define FLAG_0x061 0x61 +#define FLAG_0x062 0x62 +#define FLAG_0x063 0x63 +#define FLAG_0x064 0x64 +#define FLAG_0x065 0x65 +#define FLAG_0x066 0x66 +#define FLAG_0x067 0x67 +#define FLAG_0x068 0x68 +#define FLAG_0x069 0x69 +#define FLAG_0x06A 0x6A +#define FLAG_0x06B 0x6B +#define FLAG_0x06C 0x6C +#define FLAG_0x06D 0x6D +#define FLAG_0x06E 0x6E +#define FLAG_0x06F 0x6F +#define FLAG_0x070 0x70 +#define FLAG_0x071 0x71 +#define FLAG_0x072 0x72 +#define FLAG_0x073 0x73 +#define FLAG_0x074 0x74 +#define FLAG_0x075 0x75 +#define FLAG_0x076 0x76 +#define FLAG_0x077 0x77 +#define FLAG_0x078 0x78 +#define FLAG_0x079 0x79 +#define FLAG_0x07A 0x7A +#define FLAG_0x07B 0x7B +#define FLAG_0x07C 0x7C +#define FLAG_0x07D 0x7D +#define FLAG_0x07E 0x7E +#define FLAG_0x07F 0x7F +#define FLAG_0x080 0x80 +#define FLAG_0x081 0x81 +#define FLAG_0x082 0x82 +#define FLAG_0x083 0x83 +#define FLAG_0x084 0x84 +#define FLAG_0x085 0x85 +#define FLAG_PENDING_DAYCARE_EGG 0x86 +#define FLAG_0x087 0x87 +#define FLAG_0x088 0x88 +#define FLAG_0x089 0x89 +#define FLAG_0x08A 0x8A +#define FLAG_0x08B 0x8B +#define FLAG_0x08C 0x8C +#define FLAG_0x08D 0x8D +#define FLAG_0x08E 0x8E +#define FLAG_0x08F 0x8F +#define FLAG_0x090 0x90 +#define FLAG_0x091 0x91 +#define FLAG_0x092 0x92 +#define FLAG_0x093 0x93 +#define FLAG_0x094 0x94 +#define FLAG_0x095 0x95 +#define FLAG_0x096 0x96 +#define FLAG_0x097 0x97 +#define FLAG_0x098 0x98 +#define FLAG_0x099 0x99 +#define FLAG_0x09A 0x9A +#define FLAG_0x09B 0x9B +#define FLAG_0x09C 0x9C +#define FLAG_0x09D 0x9D +#define FLAG_0x09E 0x9E +#define FLAG_0x09F 0x9F +#define FLAG_0x0A0 0xA0 +#define FLAG_0x0A1 0xA1 +#define FLAG_0x0A2 0xA2 +#define FLAG_0x0A3 0xA3 +#define FLAG_0x0A4 0xA4 +#define FLAG_0x0A5 0xA5 +#define FLAG_0x0A6 0xA6 +#define FLAG_0x0A7 0xA7 +#define FLAG_0x0A8 0xA8 +#define FLAG_0x0A9 0xA9 +#define FLAG_0x0AA 0xAA +#define FLAG_0x0AB 0xAB +#define FLAG_0x0AC 0xAC +#define FLAG_0x0AD 0xAD +#define FLAG_0x0AE 0xAE +#define FLAG_0x0AF 0xAF +#define FLAG_0x0B0 0xB0 +#define FLAG_0x0B1 0xB1 +#define FLAG_0x0B2 0xB2 +#define FLAG_0x0B3 0xB3 +#define FLAG_0x0B4 0xB4 +#define FLAG_0x0B5 0xB5 +#define FLAG_0x0B6 0xB6 +#define FLAG_0x0B7 0xB7 +#define FLAG_0x0B8 0xB8 +#define FLAG_0x0B9 0xB9 +#define FLAG_0x0BA 0xBA +#define FLAG_0x0BB 0xBB +#define FLAG_0x0BC 0xBC +#define FLAG_0x0BD 0xBD +#define FLAG_0x0BE 0xBE +#define FLAG_0x0BF 0xBF +#define FLAG_0x0C0 0xC0 +#define FLAG_0x0C1 0xC1 +#define FLAG_0x0C2 0xC2 +#define FLAG_0x0C3 0xC3 +#define FLAG_0x0C4 0xC4 +#define FLAG_0x0C5 0xC5 +#define FLAG_0x0C6 0xC6 +#define FLAG_0x0C7 0xC7 +#define FLAG_0x0C8 0xC8 +#define FLAG_0x0C9 0xC9 +#define FLAG_0x0CA 0xCA +#define FLAG_0x0CB 0xCB +#define FLAG_0x0CC 0xCC +#define FLAG_0x0CD 0xCD +#define FLAG_0x0CE 0xCE +#define FLAG_0x0CF 0xCF +#define FLAG_0x0D0 0xD0 +#define FLAG_0x0D1 0xD1 +#define FLAG_0x0D2 0xD2 +#define FLAG_0x0D3 0xD3 +#define FLAG_0x0D4 0xD4 +#define FLAG_0x0D5 0xD5 +#define FLAG_0x0D6 0xD6 +#define FLAG_0x0D7 0xD7 +#define FLAG_0x0D8 0xD8 +#define FLAG_0x0D9 0xD9 +#define FLAG_0x0DA 0xDA +#define FLAG_0x0DB 0xDB +#define FLAG_0x0DC 0xDC +#define FLAG_0x0DD 0xDD +#define FLAG_0x0DE 0xDE +#define FLAG_0x0DF 0xDF +#define FLAG_0x0E0 0xE0 +#define FLAG_0x0E1 0xE1 +#define FLAG_0x0E2 0xE2 +#define FLAG_0x0E3 0xE3 +#define FLAG_0x0E4 0xE4 +#define FLAG_0x0E5 0xE5 +#define FLAG_0x0E6 0xE6 +#define FLAG_0x0E7 0xE7 +#define FLAG_0x0E8 0xE8 +#define FLAG_0x0E9 0xE9 +#define FLAG_0x0EA 0xEA +#define FLAG_0x0EB 0xEB +#define FLAG_0x0EC 0xEC +#define FLAG_0x0ED 0xED +#define FLAG_0x0EE 0xEE +#define FLAG_0x0EF 0xEF +#define FLAG_0x0F0 0xF0 +#define FLAG_0x0F1 0xF1 +#define FLAG_0x0F2 0xF2 +#define FLAG_0x0F3 0xF3 +#define FLAG_0x0F4 0xF4 +#define FLAG_0x0F5 0xF5 +#define FLAG_0x0F6 0xF6 +#define FLAG_0x0F7 0xF7 +#define FLAG_0x0F8 0xF8 +#define FLAG_0x0F9 0xF9 +#define FLAG_0x0FA 0xFA +#define FLAG_0x0FB 0xFB +#define FLAG_0x0FC 0xFC +#define FLAG_0x0FD 0xFD +#define FLAG_0x0FE 0xFE +#define FLAG_0x0FF 0xFF +#define FLAG_0x100 0x100 +#define FLAG_0x101 0x101 +#define FLAG_0x102 0x102 +#define FLAG_0x103 0x103 +#define FLAG_0x104 0x104 +#define FLAG_0x105 0x105 +#define FLAG_0x106 0x106 +#define FLAG_0x107 0x107 +#define FLAG_0x108 0x108 +#define FLAG_0x109 0x109 +#define FLAG_0x10A 0x10A +#define FLAG_0x10B 0x10B +#define FLAG_0x10C 0x10C +#define FLAG_0x10D 0x10D +#define FLAG_0x10E 0x10E +#define FLAG_0x10F 0x10F +#define FLAG_0x110 0x110 +#define FLAG_0x111 0x111 +#define FLAG_0x112 0x112 +#define FLAG_0x113 0x113 +#define FLAG_0x114 0x114 +#define FLAG_0x115 0x115 +#define FLAG_0x116 0x116 +#define FLAG_0x117 0x117 +#define FLAG_0x118 0x118 +#define FLAG_0x119 0x119 +#define FLAG_0x11A 0x11A +#define FLAG_0x11B 0x11B +#define FLAG_0x11C 0x11C +#define FLAG_0x11D 0x11D +#define FLAG_0x11E 0x11E +#define FLAG_0x11F 0x11F +#define FLAG_0x120 0x120 +#define FLAG_0x121 0x121 +#define FLAG_0x122 0x122 +#define FLAG_0x123 0x123 +#define FLAG_0x124 0x124 +#define FLAG_0x125 0x125 +#define FLAG_0x126 0x126 +#define FLAG_0x127 0x127 +#define FLAG_0x128 0x128 +#define FLAG_0x129 0x129 +#define FLAG_0x12A 0x12A +#define FLAG_0x12B 0x12B +#define FLAG_0x12C 0x12C +#define FLAG_0x12D 0x12D +#define FLAG_0x12E 0x12E +#define FLAG_HAS_MATCH_CALL 0x12F +#define FLAG_0x130 0x130 +#define FLAG_0x131 0x131 +#define FLAG_0x132 0x132 +#define FLAG_0x133 0x133 +#define FLAG_0x134 0x134 +#define FLAG_0x135 0x135 +#define FLAG_0x136 0x136 +#define FLAG_0x137 0x137 +#define FLAG_0x138 0x138 +#define FLAG_0x139 0x139 +#define FLAG_0x13A 0x13A +#define FLAG_0x13B 0x13B +#define FLAG_0x13C 0x13C +#define FLAG_0x13D 0x13D +#define FLAG_0x13E 0x13E +#define FLAG_0x13F 0x13F +#define FLAG_0x140 0x140 +#define FLAG_0x141 0x141 +#define FLAG_0x142 0x142 +#define FLAG_0x143 0x143 +#define FLAG_0x144 0x144 +#define FLAG_0x145 0x145 +#define FLAG_0x146 0x146 +#define FLAG_0x147 0x147 +#define FLAG_0x148 0x148 +#define FLAG_0x149 0x149 +#define FLAG_0x14A 0x14A +#define FLAG_0x14B 0x14B +#define FLAG_0x14C 0x14C +#define FLAG_0x14D 0x14D +#define FLAG_0x14E 0x14E +#define FLAG_0x14F 0x14F +#define FLAG_0x150 0x150 +#define FLAG_0x151 0x151 +#define FLAG_0x152 0x152 +#define FLAG_0x153 0x153 +#define FLAG_0x154 0x154 +#define FLAG_0x155 0x155 +#define FLAG_0x156 0x156 +#define FLAG_0x157 0x157 +#define FLAG_0x158 0x158 +#define FLAG_0x159 0x159 +#define FLAG_0x15A 0x15A +#define FLAG_0x15B 0x15B +#define FLAG_MATCH_CALL_REGISTERED 0x15C +#define FLAG_0x15D 0x15D +#define FLAG_0x15E 0x15E +#define FLAG_0x15F 0x15F +#define FLAG_0x160 0x160 +#define FLAG_0x161 0x161 +#define FLAG_0x162 0x162 +#define FLAG_0x163 0x163 +#define FLAG_0x164 0x164 +#define FLAG_0x165 0x165 +#define FLAG_0x166 0x166 +#define FLAG_0x167 0x167 +#define FLAG_0x168 0x168 +#define FLAG_0x169 0x169 +#define FLAG_0x16A 0x16A +#define FLAG_0x16B 0x16B +#define FLAG_0x16C 0x16C +#define FLAG_0x16D 0x16D +#define FLAG_0x16E 0x16E +#define FLAG_0x16F 0x16F +#define FLAG_0x170 0x170 +#define FLAG_0x171 0x171 +#define FLAG_0x172 0x172 +#define FLAG_0x173 0x173 +#define FLAG_0x174 0x174 +#define FLAG_0x175 0x175 +#define FLAG_0x176 0x176 +#define FLAG_0x177 0x177 +#define FLAG_0x178 0x178 +#define FLAG_0x179 0x179 +#define FLAG_0x17A 0x17A +#define FLAG_0x17B 0x17B +#define FLAG_0x17C 0x17C +#define FLAG_0x17D 0x17D +#define FLAG_0x17E 0x17E +#define FLAG_0x17F 0x17F +#define FLAG_0x180 0x180 +#define FLAG_0x181 0x181 +#define FLAG_0x182 0x182 +#define FLAG_0x183 0x183 +#define FLAG_0x184 0x184 +#define FLAG_0x185 0x185 +#define FLAG_0x186 0x186 +#define FLAG_0x187 0x187 +#define FLAG_0x188 0x188 +#define FLAG_0x189 0x189 +#define FLAG_0x18A 0x18A +#define FLAG_0x18B 0x18B +#define FLAG_0x18C 0x18C +#define FLAG_0x18D 0x18D +#define FLAG_0x18E 0x18E +#define FLAG_0x18F 0x18F +#define FLAG_0x190 0x190 +#define FLAG_0x191 0x191 +#define FLAG_0x192 0x192 +#define FLAG_0x193 0x193 +#define FLAG_0x194 0x194 +#define FLAG_0x195 0x195 +#define FLAG_0x196 0x196 +#define FLAG_0x197 0x197 +#define FLAG_0x198 0x198 +#define FLAG_0x199 0x199 +#define FLAG_0x19A 0x19A +#define FLAG_0x19B 0x19B +#define FLAG_0x19C 0x19C +#define FLAG_0x19D 0x19D +#define FLAG_0x19E 0x19E +#define FLAG_0x19F 0x19F +#define FLAG_0x1A0 0x1A0 +#define FLAG_0x1A1 0x1A1 +#define FLAG_0x1A2 0x1A2 +#define FLAG_0x1A3 0x1A3 +#define FLAG_0x1A4 0x1A4 +#define FLAG_0x1A5 0x1A5 +#define FLAG_0x1A6 0x1A6 +#define FLAG_0x1A7 0x1A7 +#define FLAG_0x1A8 0x1A8 +#define FLAG_0x1A9 0x1A9 +#define FLAG_0x1AA 0x1AA +#define FLAG_0x1AB 0x1AB +#define FLAG_0x1AC 0x1AC +#define FLAG_0x1AD 0x1AD +#define FLAG_0x1AE 0x1AE +#define FLAG_0x1AF 0x1AF +#define FLAG_0x1B0 0x1B0 +#define FLAG_0x1B1 0x1B1 +#define FLAG_0x1B2 0x1B2 +#define FLAG_0x1B3 0x1B3 +#define FLAG_0x1B4 0x1B4 +#define FLAG_0x1B5 0x1B5 +#define FLAG_0x1B6 0x1B6 +#define FLAG_0x1B7 0x1B7 +#define FLAG_0x1B8 0x1B8 +#define FLAG_0x1B9 0x1B9 +#define FLAG_0x1BA 0x1BA +#define FLAG_0x1BB 0x1BB +#define FLAG_0x1BC 0x1BC +#define FLAG_0x1BD 0x1BD +#define FLAG_0x1BE 0x1BE +#define FLAG_0x1BF 0x1BF +#define FLAG_0x1C0 0x1C0 +#define FLAG_0x1C1 0x1C1 +#define FLAG_0x1C2 0x1C2 +#define FLAG_0x1C3 0x1C3 +#define FLAG_0x1C4 0x1C4 +#define FLAG_0x1C5 0x1C5 +#define FLAG_0x1C6 0x1C6 +#define FLAG_0x1C7 0x1C7 +#define FLAG_0x1C8 0x1C8 +#define FLAG_0x1C9 0x1C9 +#define FLAG_0x1CA 0x1CA +#define FLAG_0x1CB 0x1CB +#define FLAG_0x1CC 0x1CC +#define FLAG_0x1CD 0x1CD +#define FLAG_0x1CE 0x1CE +#define FLAG_0x1CF 0x1CF +#define FLAG_0x1D0 0x1D0 +#define FLAG_0x1D1 0x1D1 +#define FLAG_0x1D2 0x1D2 +#define FLAG_0x1D3 0x1D3 +#define FLAG_0x1D4 0x1D4 +#define FLAG_0x1D5 0x1D5 +#define FLAG_0x1D6 0x1D6 +#define FLAG_0x1D7 0x1D7 +#define FLAG_0x1D8 0x1D8 +#define FLAG_0x1D9 0x1D9 +#define FLAG_0x1DA 0x1DA +#define FLAG_0x1DB 0x1DB +#define FLAG_0x1DC 0x1DC +#define FLAG_0x1DD 0x1DD +#define FLAG_0x1DE 0x1DE +#define FLAG_0x1DF 0x1DF +#define FLAG_0x1E0 0x1E0 +#define FLAG_0x1E1 0x1E1 +#define FLAG_0x1E2 0x1E2 +#define FLAG_0x1E3 0x1E3 +#define FLAG_0x1E4 0x1E4 +#define FLAG_0x1E5 0x1E5 +#define FLAG_0x1E6 0x1E6 +#define FLAG_0x1E7 0x1E7 +#define FLAG_0x1E8 0x1E8 +#define FLAG_0x1E9 0x1E9 +#define FLAG_0x1EA 0x1EA +#define FLAG_0x1EB 0x1EB +#define FLAG_0x1EC 0x1EC +#define FLAG_0x1ED 0x1ED +#define FLAG_0x1EE 0x1EE +#define FLAG_0x1EF 0x1EF +#define FLAG_0x1F0 0x1F0 +#define FLAG_0x1F1 0x1F1 +#define FLAG_0x1F2 0x1F2 +#define FLAG_0x1F3 0x1F3 +#define FLAG_0x1F4 0x1F4 +#define FLAG_0x1F5 0x1F5 +#define FLAG_0x1F6 0x1F6 +#define FLAG_0x1F7 0x1F7 +#define FLAG_0x1F8 0x1F8 +#define FLAG_0x1F9 0x1F9 +#define FLAG_0x1FA 0x1FA +#define FLAG_0x1FB 0x1FB +#define FLAG_0x1FC 0x1FC +#define FLAG_0x1FD 0x1FD +#define FLAG_0x1FE 0x1FE +#define FLAG_0x1FF 0x1FF +#define FLAG_0x200 0x200 +#define FLAG_0x201 0x201 +#define FLAG_0x202 0x202 +#define FLAG_0x203 0x203 +#define FLAG_0x204 0x204 +#define FLAG_0x205 0x205 +#define FLAG_0x206 0x206 +#define FLAG_0x207 0x207 +#define FLAG_0x208 0x208 +#define FLAG_0x209 0x209 +#define FLAG_0x20A 0x20A +#define FLAG_0x20B 0x20B +#define FLAG_0x20C 0x20C +#define FLAG_0x20D 0x20D +#define FLAG_0x20E 0x20E +#define FLAG_0x20F 0x20F +#define FLAG_0x210 0x210 +#define FLAG_0x211 0x211 +#define FLAG_0x212 0x212 +#define FLAG_0x213 0x213 +#define FLAG_0x214 0x214 +#define FLAG_0x215 0x215 +#define FLAG_0x216 0x216 +#define FLAG_0x217 0x217 +#define FLAG_0x218 0x218 +#define FLAG_0x219 0x219 +#define FLAG_0x21A 0x21A +#define FLAG_0x21B 0x21B +#define FLAG_0x21C 0x21C +#define FLAG_0x21D 0x21D +#define FLAG_0x21E 0x21E +#define FLAG_0x21F 0x21F +#define FLAG_0x220 0x220 +#define FLAG_0x221 0x221 +#define FLAG_0x222 0x222 +#define FLAG_0x223 0x223 +#define FLAG_0x224 0x224 +#define FLAG_0x225 0x225 +#define FLAG_0x226 0x226 +#define FLAG_0x227 0x227 +#define FLAG_0x228 0x228 +#define FLAG_0x229 0x229 +#define FLAG_0x22A 0x22A +#define FLAG_0x22B 0x22B +#define FLAG_0x22C 0x22C +#define FLAG_0x22D 0x22D +#define FLAG_0x22E 0x22E +#define FLAG_0x22F 0x22F +#define FLAG_0x230 0x230 +#define FLAG_0x231 0x231 +#define FLAG_0x232 0x232 +#define FLAG_0x233 0x233 +#define FLAG_0x234 0x234 +#define FLAG_0x235 0x235 +#define FLAG_0x236 0x236 +#define FLAG_0x237 0x237 +#define FLAG_0x238 0x238 +#define FLAG_0x239 0x239 +#define FLAG_0x23A 0x23A +#define FLAG_0x23B 0x23B +#define FLAG_0x23C 0x23C +#define FLAG_0x23D 0x23D +#define FLAG_0x23E 0x23E +#define FLAG_0x23F 0x23F +#define FLAG_0x240 0x240 +#define FLAG_0x241 0x241 +#define FLAG_0x242 0x242 +#define FLAG_0x243 0x243 +#define FLAG_0x244 0x244 +#define FLAG_0x245 0x245 +#define FLAG_0x246 0x246 +#define FLAG_0x247 0x247 +#define FLAG_0x248 0x248 +#define FLAG_0x249 0x249 +#define FLAG_0x24A 0x24A +#define FLAG_0x24B 0x24B +#define FLAG_0x24C 0x24C +#define FLAG_0x24D 0x24D +#define FLAG_0x24E 0x24E +#define FLAG_0x24F 0x24F +#define FLAG_0x250 0x250 +#define FLAG_0x251 0x251 +#define FLAG_0x252 0x252 +#define FLAG_0x253 0x253 +#define FLAG_0x254 0x254 +#define FLAG_0x255 0x255 +#define FLAG_0x256 0x256 +#define FLAG_0x257 0x257 +#define FLAG_0x258 0x258 +#define FLAG_0x259 0x259 +#define FLAG_0x25A 0x25A +#define FLAG_0x25B 0x25B +#define FLAG_0x25C 0x25C +#define FLAG_0x25D 0x25D +#define FLAG_0x25E 0x25E +#define FLAG_0x25F 0x25F +#define FLAG_0x260 0x260 +#define FLAG_0x261 0x261 +#define FLAG_0x262 0x262 +#define FLAG_0x263 0x263 +#define FLAG_0x264 0x264 +#define FLAG_0x265 0x265 +#define FLAG_0x266 0x266 +#define FLAG_0x267 0x267 +#define FLAG_0x268 0x268 +#define FLAG_0x269 0x269 +#define FLAG_0x26A 0x26A +#define FLAG_0x26B 0x26B +#define FLAG_0x26C 0x26C +#define FLAG_0x26D 0x26D +#define FLAG_0x26E 0x26E +#define FLAG_0x26F 0x26F +#define FLAG_0x270 0x270 +#define FLAG_0x271 0x271 +#define FLAG_0x272 0x272 +#define FLAG_0x273 0x273 +#define FLAG_0x274 0x274 +#define FLAG_0x275 0x275 +#define FLAG_0x276 0x276 +#define FLAG_0x277 0x277 +#define FLAG_0x278 0x278 +#define FLAG_0x279 0x279 +#define FLAG_0x27A 0x27A +#define FLAG_0x27B 0x27B +#define FLAG_0x27C 0x27C +#define FLAG_0x27D 0x27D +#define FLAG_0x27E 0x27E +#define FLAG_0x27F 0x27F +#define FLAG_0x280 0x280 +#define FLAG_0x281 0x281 +#define FLAG_0x282 0x282 +#define FLAG_0x283 0x283 +#define FLAG_0x284 0x284 +#define FLAG_0x285 0x285 +#define FLAG_0x286 0x286 +#define FLAG_0x287 0x287 +#define FLAG_0x288 0x288 +#define FLAG_0x289 0x289 +#define FLAG_0x28A 0x28A +#define FLAG_0x28B 0x28B +#define FLAG_0x28C 0x28C +#define FLAG_0x28D 0x28D +#define FLAG_0x28E 0x28E +#define FLAG_0x28F 0x28F +#define FLAG_0x290 0x290 +#define FLAG_0x291 0x291 +#define FLAG_0x292 0x292 +#define FLAG_0x293 0x293 +#define FLAG_0x294 0x294 +#define FLAG_0x295 0x295 +#define FLAG_0x296 0x296 +#define FLAG_0x297 0x297 +#define FLAG_0x298 0x298 +#define FLAG_0x299 0x299 +#define FLAG_0x29A 0x29A +#define FLAG_0x29B 0x29B +#define FLAG_0x29C 0x29C +#define FLAG_0x29D 0x29D +#define FLAG_0x29E 0x29E +#define FLAG_0x29F 0x29F +#define FLAG_0x2A0 0x2A0 +#define FLAG_0x2A1 0x2A1 +#define FLAG_0x2A2 0x2A2 +#define FLAG_0x2A3 0x2A3 +#define FLAG_0x2A4 0x2A4 +#define FLAG_0x2A5 0x2A5 +#define FLAG_0x2A6 0x2A6 +#define FLAG_0x2A7 0x2A7 +#define FLAG_0x2A8 0x2A8 +#define FLAG_0x2A9 0x2A9 +#define FLAG_0x2AA 0x2AA +#define FLAG_0x2AB 0x2AB +#define FLAG_0x2AC 0x2AC +#define FLAG_0x2AD 0x2AD +#define FLAG_0x2AE 0x2AE +#define FLAG_0x2AF 0x2AF +#define FLAG_0x2B0 0x2B0 +#define FLAG_0x2B1 0x2B1 +#define FLAG_0x2B2 0x2B2 +#define FLAG_0x2B3 0x2B3 +#define FLAG_0x2B4 0x2B4 +#define FLAG_0x2B5 0x2B5 +#define FLAG_0x2B6 0x2B6 +#define FLAG_0x2B7 0x2B7 +#define FLAG_0x2B8 0x2B8 +#define FLAG_0x2B9 0x2B9 +#define FLAG_0x2BA 0x2BA +#define FLAG_0x2BB 0x2BB +#define FLAG_0x2BC 0x2BC +#define FLAG_0x2BD 0x2BD +#define FLAG_0x2BE 0x2BE +#define FLAG_0x2BF 0x2BF +#define FLAG_0x2C0 0x2C0 +#define FLAG_0x2C1 0x2C1 +#define FLAG_0x2C2 0x2C2 +#define FLAG_0x2C3 0x2C3 +#define FLAG_0x2C4 0x2C4 +#define FLAG_0x2C5 0x2C5 +#define FLAG_0x2C6 0x2C6 +#define FLAG_0x2C7 0x2C7 +#define FLAG_0x2C8 0x2C8 +#define FLAG_0x2C9 0x2C9 +#define FLAG_0x2CA 0x2CA +#define FLAG_0x2CB 0x2CB +#define FLAG_0x2CC 0x2CC +#define FLAG_0x2CD 0x2CD +#define FLAG_0x2CE 0x2CE +#define FLAG_0x2CF 0x2CF +#define FLAG_0x2D0 0x2D0 +#define FLAG_0x2D1 0x2D1 +#define FLAG_0x2D2 0x2D2 +#define FLAG_0x2D3 0x2D3 +#define FLAG_0x2D4 0x2D4 +#define FLAG_0x2D5 0x2D5 +#define FLAG_0x2D6 0x2D6 +#define FLAG_0x2D7 0x2D7 +#define FLAG_0x2D8 0x2D8 +#define FLAG_0x2D9 0x2D9 +#define FLAG_0x2DA 0x2DA +#define FLAG_0x2DB 0x2DB +#define FLAG_0x2DC 0x2DC +#define FLAG_0x2DD 0x2DD +#define FLAG_0x2DE 0x2DE +#define FLAG_0x2DF 0x2DF +#define FLAG_0x2E0 0x2E0 +#define FLAG_0x2E1 0x2E1 +#define FLAG_0x2E2 0x2E2 +#define FLAG_0x2E3 0x2E3 +#define FLAG_0x2E4 0x2E4 +#define FLAG_0x2E5 0x2E5 +#define FLAG_0x2E6 0x2E6 +#define FLAG_0x2E7 0x2E7 +#define FLAG_0x2E8 0x2E8 +#define FLAG_0x2E9 0x2E9 +#define FLAG_0x2EA 0x2EA +#define FLAG_0x2EB 0x2EB +#define FLAG_0x2EC 0x2EC +#define FLAG_0x2ED 0x2ED +#define FLAG_0x2EE 0x2EE +#define FLAG_0x2EF 0x2EF +#define FLAG_0x2F0 0x2F0 +#define FLAG_0x2F1 0x2F1 +#define FLAG_0x2F2 0x2F2 +#define FLAG_0x2F3 0x2F3 +#define FLAG_0x2F4 0x2F4 +#define FLAG_0x2F5 0x2F5 +#define FLAG_0x2F6 0x2F6 +#define FLAG_0x2F7 0x2F7 +#define FLAG_0x2F8 0x2F8 +#define FLAG_0x2F9 0x2F9 +#define FLAG_0x2FA 0x2FA +#define FLAG_0x2FB 0x2FB +#define FLAG_0x2FC 0x2FC +#define FLAG_0x2FD 0x2FD +#define FLAG_0x2FE 0x2FE +#define FLAG_0x2FF 0x2FF +#define FLAG_0x300 0x300 +#define FLAG_0x301 0x301 +#define FLAG_0x302 0x302 +#define FLAG_0x303 0x303 +#define FLAG_0x304 0x304 +#define FLAG_0x305 0x305 +#define FLAG_0x306 0x306 +#define FLAG_0x307 0x307 +#define FLAG_0x308 0x308 +#define FLAG_0x309 0x309 +#define FLAG_0x30A 0x30A +#define FLAG_0x30B 0x30B +#define FLAG_0x30C 0x30C +#define FLAG_0x30D 0x30D +#define FLAG_0x30E 0x30E +#define FLAG_0x30F 0x30F +#define FLAG_0x310 0x310 +#define FLAG_0x311 0x311 +#define FLAG_0x312 0x312 +#define FLAG_0x313 0x313 +#define FLAG_0x314 0x314 +#define FLAG_0x315 0x315 +#define FLAG_0x316 0x316 +#define FLAG_0x317 0x317 +#define FLAG_0x318 0x318 +#define FLAG_0x319 0x319 +#define FLAG_0x31A 0x31A +#define FLAG_0x31B 0x31B +#define FLAG_0x31C 0x31C +#define FLAG_0x31D 0x31D +#define FLAG_0x31E 0x31E +#define FLAG_0x31F 0x31F +#define FLAG_0x320 0x320 +#define FLAG_0x321 0x321 +#define FLAG_0x322 0x322 +#define FLAG_0x323 0x323 +#define FLAG_0x324 0x324 +#define FLAG_0x325 0x325 +#define FLAG_0x326 0x326 +#define FLAG_0x327 0x327 +#define FLAG_0x328 0x328 +#define FLAG_0x329 0x329 +#define FLAG_0x32A 0x32A +#define FLAG_0x32B 0x32B +#define FLAG_0x32C 0x32C +#define FLAG_0x32D 0x32D +#define FLAG_0x32E 0x32E +#define FLAG_0x32F 0x32F +#define FLAG_0x330 0x330 +#define FLAG_0x331 0x331 +#define FLAG_0x332 0x332 +#define FLAG_0x333 0x333 +#define FLAG_0x334 0x334 +#define FLAG_0x335 0x335 +#define FLAG_0x336 0x336 +#define FLAG_0x337 0x337 +#define FLAG_0x338 0x338 +#define FLAG_0x339 0x339 +#define FLAG_0x33A 0x33A +#define FLAG_0x33B 0x33B +#define FLAG_0x33C 0x33C +#define FLAG_0x33D 0x33D +#define FLAG_0x33E 0x33E +#define FLAG_0x33F 0x33F +#define FLAG_0x340 0x340 +#define FLAG_0x341 0x341 +#define FLAG_0x342 0x342 +#define FLAG_0x343 0x343 +#define FLAG_0x344 0x344 +#define FLAG_0x345 0x345 +#define FLAG_0x346 0x346 +#define FLAG_0x347 0x347 +#define FLAG_0x348 0x348 +#define FLAG_0x349 0x349 +#define FLAG_0x34A 0x34A +#define FLAG_0x34B 0x34B +#define FLAG_0x34C 0x34C +#define FLAG_0x34D 0x34D +#define FLAG_0x34E 0x34E +#define FLAG_0x34F 0x34F +#define FLAG_0x350 0x350 +#define FLAG_0x351 0x351 +#define FLAG_0x352 0x352 +#define FLAG_0x353 0x353 +#define FLAG_0x354 0x354 +#define FLAG_0x355 0x355 +#define FLAG_0x356 0x356 +#define FLAG_0x357 0x357 +#define FLAG_0x358 0x358 +#define FLAG_0x359 0x359 +#define FLAG_0x35A 0x35A +#define FLAG_0x35B 0x35B +#define FLAG_0x35C 0x35C +#define FLAG_0x35D 0x35D +#define FLAG_0x35E 0x35E +#define FLAG_0x35F 0x35F +#define FLAG_0x360 0x360 +#define FLAG_0x361 0x361 +#define FLAG_0x362 0x362 +#define FLAG_0x363 0x363 +#define FLAG_0x364 0x364 +#define FLAG_0x365 0x365 +#define FLAG_0x366 0x366 +#define FLAG_0x367 0x367 +#define FLAG_0x368 0x368 +#define FLAG_0x369 0x369 +#define FLAG_0x36A 0x36A +#define FLAG_0x36B 0x36B +#define FLAG_0x36C 0x36C +#define FLAG_0x36D 0x36D +#define FLAG_0x36E 0x36E +#define FLAG_0x36F 0x36F +#define FLAG_0x370 0x370 +#define FLAG_0x371 0x371 +#define FLAG_0x372 0x372 +#define FLAG_0x373 0x373 +#define FLAG_0x374 0x374 +#define FLAG_0x375 0x375 +#define FLAG_0x376 0x376 +#define FLAG_0x377 0x377 +#define FLAG_0x378 0x378 +#define FLAG_0x379 0x379 +#define FLAG_0x37A 0x37A +#define FLAG_0x37B 0x37B +#define FLAG_0x37C 0x37C +#define FLAG_0x37D 0x37D +#define FLAG_0x37E 0x37E +#define FLAG_0x37F 0x37F +#define FLAG_0x380 0x380 +#define FLAG_0x381 0x381 +#define FLAG_0x382 0x382 +#define FLAG_0x383 0x383 +#define FLAG_0x384 0x384 +#define FLAG_0x385 0x385 +#define FLAG_0x386 0x386 +#define FLAG_0x387 0x387 +#define FLAG_0x388 0x388 +#define FLAG_0x389 0x389 +#define FLAG_0x38A 0x38A +#define FLAG_0x38B 0x38B +#define FLAG_0x38C 0x38C +#define FLAG_0x38D 0x38D +#define FLAG_0x38E 0x38E +#define FLAG_0x38F 0x38F +#define FLAG_0x390 0x390 +#define FLAG_0x391 0x391 +#define FLAG_0x392 0x392 +#define FLAG_0x393 0x393 +#define FLAG_0x394 0x394 +#define FLAG_0x395 0x395 +#define FLAG_0x396 0x396 +#define FLAG_0x397 0x397 +#define FLAG_0x398 0x398 +#define FLAG_0x399 0x399 +#define FLAG_0x39A 0x39A +#define FLAG_0x39B 0x39B +#define FLAG_0x39C 0x39C +#define FLAG_0x39D 0x39D +#define FLAG_0x39E 0x39E +#define FLAG_0x39F 0x39F +#define FLAG_0x3A0 0x3A0 +#define FLAG_0x3A1 0x3A1 +#define FLAG_0x3A2 0x3A2 +#define FLAG_0x3A3 0x3A3 +#define FLAG_0x3A4 0x3A4 +#define FLAG_0x3A5 0x3A5 +#define FLAG_0x3A6 0x3A6 +#define FLAG_0x3A7 0x3A7 +#define FLAG_0x3A8 0x3A8 +#define FLAG_0x3A9 0x3A9 +#define FLAG_0x3AA 0x3AA +#define FLAG_0x3AB 0x3AB +#define FLAG_0x3AC 0x3AC +#define FLAG_0x3AD 0x3AD +#define FLAG_0x3AE 0x3AE +#define FLAG_0x3AF 0x3AF +#define FLAG_0x3B0 0x3B0 +#define FLAG_0x3B1 0x3B1 +#define FLAG_0x3B2 0x3B2 +#define FLAG_0x3B3 0x3B3 +#define FLAG_0x3B4 0x3B4 +#define FLAG_0x3B5 0x3B5 +#define FLAG_0x3B6 0x3B6 +#define FLAG_0x3B7 0x3B7 +#define FLAG_0x3B8 0x3B8 +#define FLAG_0x3B9 0x3B9 +#define FLAG_0x3BA 0x3BA +#define FLAG_0x3BB 0x3BB +#define FLAG_0x3BC 0x3BC +#define FLAG_0x3BD 0x3BD +#define FLAG_0x3BE 0x3BE +#define FLAG_0x3BF 0x3BF +#define FLAG_0x3C0 0x3C0 +#define FLAG_0x3C1 0x3C1 +#define FLAG_0x3C2 0x3C2 +#define FLAG_0x3C3 0x3C3 +#define FLAG_0x3C4 0x3C4 +#define FLAG_0x3C5 0x3C5 +#define FLAG_0x3C6 0x3C6 +#define FLAG_0x3C7 0x3C7 +#define FLAG_0x3C8 0x3C8 +#define FLAG_0x3C9 0x3C9 +#define FLAG_0x3CA 0x3CA +#define FLAG_0x3CB 0x3CB +#define FLAG_0x3CC 0x3CC +#define FLAG_0x3CD 0x3CD +#define FLAG_0x3CE 0x3CE +#define FLAG_0x3CF 0x3CF +#define FLAG_0x3D0 0x3D0 +#define FLAG_0x3D1 0x3D1 +#define FLAG_0x3D2 0x3D2 +#define FLAG_0x3D3 0x3D3 +#define FLAG_0x3D4 0x3D4 +#define FLAG_0x3D5 0x3D5 +#define FLAG_0x3D6 0x3D6 +#define FLAG_0x3D7 0x3D7 +#define FLAG_0x3D8 0x3D8 +#define FLAG_0x3D9 0x3D9 +#define FLAG_0x3DA 0x3DA +#define FLAG_0x3DB 0x3DB +#define FLAG_0x3DC 0x3DC +#define FLAG_0x3DD 0x3DD +#define FLAG_0x3DE 0x3DE +#define FLAG_0x3DF 0x3DF +#define FLAG_0x3E0 0x3E0 +#define FLAG_0x3E1 0x3E1 +#define FLAG_0x3E2 0x3E2 +#define FLAG_0x3E3 0x3E3 +#define FLAG_0x3E4 0x3E4 +#define FLAG_0x3E5 0x3E5 +#define FLAG_0x3E6 0x3E6 +#define FLAG_0x3E7 0x3E7 +#define FLAG_0x3E8 0x3E8 +#define FLAG_0x3E9 0x3E9 +#define FLAG_0x3EA 0x3EA +#define FLAG_0x3EB 0x3EB +#define FLAG_0x3EC 0x3EC +#define FLAG_0x3ED 0x3ED +#define FLAG_0x3EE 0x3EE +#define FLAG_0x3EF 0x3EF +#define FLAG_0x3F0 0x3F0 +#define FLAG_0x3F1 0x3F1 +#define FLAG_0x3F2 0x3F2 +#define FLAG_0x3F3 0x3F3 +#define FLAG_0x3F4 0x3F4 +#define FLAG_0x3F5 0x3F5 +#define FLAG_0x3F6 0x3F6 +#define FLAG_0x3F7 0x3F7 +#define FLAG_0x3F8 0x3F8 +#define FLAG_0x3F9 0x3F9 +#define FLAG_0x3FA 0x3FA +#define FLAG_0x3FB 0x3FB +#define FLAG_0x3FC 0x3FC +#define FLAG_0x3FD 0x3FD +#define FLAG_0x3FE 0x3FE +#define FLAG_0x3FF 0x3FF +#define FLAG_0x400 0x400 +#define FLAG_0x401 0x401 +#define FLAG_0x402 0x402 +#define FLAG_0x403 0x403 +#define FLAG_0x404 0x404 +#define FLAG_0x405 0x405 +#define FLAG_0x406 0x406 +#define FLAG_0x407 0x407 +#define FLAG_0x408 0x408 +#define FLAG_0x409 0x409 +#define FLAG_0x40A 0x40A +#define FLAG_0x40B 0x40B +#define FLAG_0x40C 0x40C +#define FLAG_0x40D 0x40D +#define FLAG_0x40E 0x40E +#define FLAG_0x40F 0x40F +#define FLAG_0x410 0x410 +#define FLAG_0x411 0x411 +#define FLAG_0x412 0x412 +#define FLAG_0x413 0x413 +#define FLAG_0x414 0x414 +#define FLAG_0x415 0x415 +#define FLAG_0x416 0x416 +#define FLAG_0x417 0x417 +#define FLAG_0x418 0x418 +#define FLAG_0x419 0x419 +#define FLAG_0x41A 0x41A +#define FLAG_0x41B 0x41B +#define FLAG_0x41C 0x41C +#define FLAG_0x41D 0x41D +#define FLAG_0x41E 0x41E +#define FLAG_0x41F 0x41F +#define FLAG_0x420 0x420 +#define FLAG_0x421 0x421 +#define FLAG_0x422 0x422 +#define FLAG_0x423 0x423 +#define FLAG_0x424 0x424 +#define FLAG_0x425 0x425 +#define FLAG_0x426 0x426 +#define FLAG_0x427 0x427 +#define FLAG_0x428 0x428 +#define FLAG_0x429 0x429 +#define FLAG_0x42A 0x42A +#define FLAG_0x42B 0x42B +#define FLAG_0x42C 0x42C +#define FLAG_0x42D 0x42D +#define FLAG_0x42E 0x42E +#define FLAG_0x42F 0x42F +#define FLAG_0x430 0x430 +#define FLAG_0x431 0x431 +#define FLAG_0x432 0x432 +#define FLAG_0x433 0x433 +#define FLAG_0x434 0x434 +#define FLAG_0x435 0x435 +#define FLAG_0x436 0x436 +#define FLAG_0x437 0x437 +#define FLAG_0x438 0x438 +#define FLAG_0x439 0x439 +#define FLAG_0x43A 0x43A +#define FLAG_0x43B 0x43B +#define FLAG_0x43C 0x43C +#define FLAG_0x43D 0x43D +#define FLAG_0x43E 0x43E +#define FLAG_0x43F 0x43F +#define FLAG_0x440 0x440 +#define FLAG_0x441 0x441 +#define FLAG_0x442 0x442 +#define FLAG_0x443 0x443 +#define FLAG_0x444 0x444 +#define FLAG_0x445 0x445 +#define FLAG_0x446 0x446 +#define FLAG_0x447 0x447 +#define FLAG_0x448 0x448 +#define FLAG_0x449 0x449 +#define FLAG_0x44A 0x44A +#define FLAG_0x44B 0x44B +#define FLAG_0x44C 0x44C +#define FLAG_0x44D 0x44D +#define FLAG_0x44E 0x44E +#define FLAG_0x44F 0x44F +#define FLAG_0x450 0x450 +#define FLAG_0x451 0x451 +#define FLAG_0x452 0x452 +#define FLAG_0x453 0x453 +#define FLAG_0x454 0x454 +#define FLAG_0x455 0x455 +#define FLAG_0x456 0x456 +#define FLAG_0x457 0x457 +#define FLAG_0x458 0x458 +#define FLAG_0x459 0x459 +#define FLAG_0x45A 0x45A +#define FLAG_0x45B 0x45B +#define FLAG_0x45C 0x45C +#define FLAG_0x45D 0x45D +#define FLAG_0x45E 0x45E +#define FLAG_0x45F 0x45F +#define FLAG_0x460 0x460 +#define FLAG_0x461 0x461 +#define FLAG_0x462 0x462 +#define FLAG_0x463 0x463 +#define FLAG_0x464 0x464 +#define FLAG_0x465 0x465 +#define FLAG_0x466 0x466 +#define FLAG_0x467 0x467 +#define FLAG_0x468 0x468 +#define FLAG_0x469 0x469 +#define FLAG_0x46A 0x46A +#define FLAG_0x46B 0x46B +#define FLAG_0x46C 0x46C +#define FLAG_0x46D 0x46D +#define FLAG_0x46E 0x46E +#define FLAG_0x46F 0x46F +#define FLAG_0x470 0x470 +#define FLAG_0x471 0x471 +#define FLAG_0x472 0x472 +#define FLAG_0x473 0x473 +#define FLAG_0x474 0x474 +#define FLAG_0x475 0x475 +#define FLAG_0x476 0x476 +#define FLAG_0x477 0x477 +#define FLAG_0x478 0x478 +#define FLAG_0x479 0x479 +#define FLAG_0x47A 0x47A +#define FLAG_0x47B 0x47B +#define FLAG_0x47C 0x47C +#define FLAG_0x47D 0x47D +#define FLAG_0x47E 0x47E +#define FLAG_0x47F 0x47F +#define FLAG_0x480 0x480 +#define FLAG_0x481 0x481 +#define FLAG_0x482 0x482 +#define FLAG_0x483 0x483 +#define FLAG_0x484 0x484 +#define FLAG_0x485 0x485 +#define FLAG_0x486 0x486 +#define FLAG_0x487 0x487 +#define FLAG_0x488 0x488 +#define FLAG_0x489 0x489 +#define FLAG_0x48A 0x48A +#define FLAG_0x48B 0x48B +#define FLAG_0x48C 0x48C +#define FLAG_0x48D 0x48D +#define FLAG_0x48E 0x48E +#define FLAG_0x48F 0x48F +#define FLAG_0x490 0x490 +#define FLAG_0x491 0x491 +#define FLAG_0x492 0x492 +#define FLAG_0x493 0x493 +#define FLAG_0x494 0x494 +#define FLAG_0x495 0x495 +#define FLAG_0x496 0x496 +#define FLAG_0x497 0x497 +#define FLAG_0x498 0x498 +#define FLAG_0x499 0x499 +#define FLAG_0x49A 0x49A +#define FLAG_0x49B 0x49B +#define FLAG_0x49C 0x49C +#define FLAG_0x49D 0x49D +#define FLAG_0x49E 0x49E +#define FLAG_0x49F 0x49F +#define FLAG_0x4A0 0x4A0 +#define FLAG_0x4A1 0x4A1 +#define FLAG_0x4A2 0x4A2 +#define FLAG_0x4A3 0x4A3 +#define FLAG_0x4A4 0x4A4 +#define FLAG_0x4A5 0x4A5 +#define FLAG_0x4A6 0x4A6 +#define FLAG_0x4A7 0x4A7 +#define FLAG_0x4A8 0x4A8 +#define FLAG_0x4A9 0x4A9 +#define FLAG_0x4AA 0x4AA +#define FLAG_0x4AB 0x4AB +#define FLAG_0x4AC 0x4AC +#define FLAG_0x4AD 0x4AD +#define FLAG_0x4AE 0x4AE +#define FLAG_0x4AF 0x4AF +#define FLAG_0x4B0 0x4B0 +#define FLAG_0x4B1 0x4B1 +#define FLAG_0x4B2 0x4B2 +#define FLAG_0x4B3 0x4B3 +#define FLAG_0x4B4 0x4B4 +#define FLAG_0x4B5 0x4B5 +#define FLAG_0x4B6 0x4B6 +#define FLAG_0x4B7 0x4B7 +#define FLAG_0x4B8 0x4B8 +#define FLAG_0x4B9 0x4B9 +#define FLAG_0x4BA 0x4BA +#define FLAG_0x4BB 0x4BB +#define FLAG_0x4BC 0x4BC +#define FLAG_0x4BD 0x4BD +#define FLAG_0x4BE 0x4BE +#define FLAG_0x4BF 0x4BF +#define FLAG_0x4C0 0x4C0 +#define FLAG_0x4C1 0x4C1 +#define FLAG_0x4C2 0x4C2 +#define FLAG_0x4C3 0x4C3 +#define FLAG_0x4C4 0x4C4 +#define FLAG_0x4C5 0x4C5 +#define FLAG_0x4C6 0x4C6 +#define FLAG_0x4C7 0x4C7 +#define FLAG_0x4C8 0x4C8 +#define FLAG_0x4C9 0x4C9 +#define FLAG_0x4CA 0x4CA +#define FLAG_0x4CB 0x4CB +#define FLAG_0x4CC 0x4CC +#define FLAG_0x4CD 0x4CD +#define FLAG_0x4CE 0x4CE +#define FLAG_0x4CF 0x4CF +#define FLAG_0x4D0 0x4D0 +#define FLAG_0x4D1 0x4D1 +#define FLAG_0x4D2 0x4D2 +#define FLAG_0x4D3 0x4D3 +#define FLAG_0x4D4 0x4D4 +#define FLAG_0x4D5 0x4D5 +#define FLAG_0x4D6 0x4D6 +#define FLAG_0x4D7 0x4D7 +#define FLAG_0x4D8 0x4D8 +#define FLAG_0x4D9 0x4D9 +#define FLAG_0x4DA 0x4DA +#define FLAG_0x4DB 0x4DB +#define FLAG_0x4DC 0x4DC +#define FLAG_0x4DD 0x4DD +#define FLAG_0x4DE 0x4DE +#define FLAG_0x4DF 0x4DF +#define FLAG_0x4E0 0x4E0 +#define FLAG_0x4E1 0x4E1 +#define FLAG_0x4E2 0x4E2 +#define FLAG_0x4E3 0x4E3 +#define FLAG_0x4E4 0x4E4 +#define FLAG_0x4E5 0x4E5 +#define FLAG_0x4E6 0x4E6 +#define FLAG_0x4E7 0x4E7 +#define FLAG_0x4E8 0x4E8 +#define FLAG_0x4E9 0x4E9 +#define FLAG_0x4EA 0x4EA +#define FLAG_0x4EB 0x4EB +#define FLAG_0x4EC 0x4EC +#define FLAG_0x4ED 0x4ED +#define FLAG_0x4EE 0x4EE +#define FLAG_0x4EF 0x4EF +#define FLAG_0x4F0 0x4F0 +#define FLAG_0x4F1 0x4F1 +#define FLAG_0x4F2 0x4F2 +#define FLAG_0x4F3 0x4F3 +#define FLAG_0x4F4 0x4F4 +#define FLAG_0x4F5 0x4F5 +#define FLAG_0x4F6 0x4F6 +#define FLAG_0x4F7 0x4F7 +#define FLAG_0x4F8 0x4F8 +#define FLAG_0x4F9 0x4F9 +#define FLAG_0x4FA 0x4FA +#define FLAG_0x4FB 0x4FB +#define FLAG_0x4FC 0x4FC +#define FLAG_0x4FD 0x4FD +#define FLAG_0x4FE 0x4FE +#define FLAG_0x4FF 0x4FF + +#define FLAG_TRAINER_FLAG_START 0x500 + +#define TRAINERS_FLAG_NO 0x356 +#define CODE_FLAGS (FLAG_TRAINER_FLAG_START + TRAINERS_FLAG_NO + 0xA) // 0x860 + +// SYSTEM FLAGS + +// 0x860 +#define FLAG_SYS_POKEMON_GET (CODE_FLAGS + 0) +#define FLAG_SYS_POKEDEX_GET (CODE_FLAGS + 1) +#define FLAG_SYS_POKENAV_GET (CODE_FLAGS + 2) +// third one appears unused +#define FLAG_SYS_GAME_CLEAR (CODE_FLAGS + 4) +#define FLAG_SYS_CHAT_USED (CODE_FLAGS + 5) +#define FLAG_SYS_HIPSTER_MEET (CODE_FLAGS + 6) + +// badges +#define FLAG_BADGE01_GET (CODE_FLAGS + 7) +#define FLAG_BADGE02_GET (CODE_FLAGS + 8) +#define FLAG_BADGE03_GET (CODE_FLAGS + 9) +#define FLAG_BADGE04_GET (CODE_FLAGS + 0xA) +#define FLAG_BADGE05_GET (CODE_FLAGS + 0xB) +#define FLAG_BADGE06_GET (CODE_FLAGS + 0xC) +#define FLAG_BADGE07_GET (CODE_FLAGS + 0xD) +#define FLAG_BADGE08_GET (CODE_FLAGS + 0xE) + +// cities and towns +#define FLAG_VISITED_LITTLEROOT_TOWN (CODE_FLAGS + 0xF) +#define FLAG_VISITED_OLDALE_TOWN (CODE_FLAGS + 0x10) +#define FLAG_VISITED_DEWFORD_TOWN (CODE_FLAGS + 0x11) +#define FLAG_VISITED_LAVARIDGE_TOWN (CODE_FLAGS + 0x12) +#define FLAG_VISITED_FALLARBOR_TOWN (CODE_FLAGS + 0x13) +#define FLAG_VISITED_VERDANTURF_TOWN (CODE_FLAGS + 0x14) +#define FLAG_VISITED_PACIFIDLOG_TOWN (CODE_FLAGS + 0x15) +#define FLAG_VISITED_PETALBURG_CITY (CODE_FLAGS + 0x16) +#define FLAG_VISITED_SLATEPORT_CITY (CODE_FLAGS + 0x17) +#define FLAG_VISITED_MAUVILLE_CITY (CODE_FLAGS + 0x18) +#define FLAG_VISITED_RUSTBORO_CITY (CODE_FLAGS + 0x19) +#define FLAG_VISITED_FORTREE_CITY (CODE_FLAGS + 0x1A) +#define FLAG_VISITED_LILYCOVE_CITY (CODE_FLAGS + 0x1B) +#define FLAG_VISITED_MOSSDEEP_CITY (CODE_FLAGS + 0x1C) +#define FLAG_VISITED_SOOTOPOLIS_CITY (CODE_FLAGS + 0x1D) +#define FLAG_VISITED_EVER_GRANDE_CITY (CODE_FLAGS + 0x1E) + +#define FLAG_0x87F (CODE_FLAGS + 0x1F) +#define FLAG_0x880 (CODE_FLAGS + 0x20) +#define FLAG_0x881 (CODE_FLAGS + 0x21) +#define FLAG_0x882 (CODE_FLAGS + 0x22) +#define FLAG_0x883 (CODE_FLAGS + 0x23) +#define FLAG_0x884 (CODE_FLAGS + 0x24) +#define FLAG_0x885 (CODE_FLAGS + 0x25) +#define FLAG_0x886 (CODE_FLAGS + 0x26) +#define FLAG_0x887 (CODE_FLAGS + 0x27) + +#define FLAG_SYS_USE_FLASH (CODE_FLAGS + 0x28) +#define FLAG_SYS_USE_STRENGTH (CODE_FLAGS + 0x29) +#define FLAG_SYS_WEATHER_CTRL (CODE_FLAGS + 0x2A) +#define FLAG_SYS_CYCLING_ROAD (CODE_FLAGS + 0x2B) +#define FLAG_SYS_SAFARI_MODE (CODE_FLAGS + 0x2C) +#define FLAG_SYS_CRUISE_MODE (CODE_FLAGS + 0x2D) + +#define FLAG_0x88E (CODE_FLAGS + 0x2E) +#define FLAG_0x88F (CODE_FLAGS + 0x2F) + +#define FLAG_SYS_TV_HOME (CODE_FLAGS + 0x30) +#define FLAG_SYS_TV_WATCH (CODE_FLAGS + 0x31) +#define FLAG_SYS_TV_START (CODE_FLAGS + 0x32) +#define FLAG_SYS_POPWORD_INPUT (CODE_FLAGS + 0x33) +#define FLAG_SYS_MIX_RECORD (CODE_FLAGS + 0x34) +#define FLAG_SYS_CLOCK_SET (CODE_FLAGS + 0x35) +#define FLAG_SYS_NATIONAL_DEX (CODE_FLAGS + 0x36) +#define FLAG_SYS_CAVE_SHIP (CODE_FLAGS + 0x37) +#define FLAG_SYS_CAVE_WONDER (CODE_FLAGS + 0x38) +#define FLAG_SYS_CAVE_BATTLE (CODE_FLAGS + 0x39) +#define FLAG_SYS_SHOAL_TIDE (CODE_FLAGS + 0x3A) +#define FLAG_SYS_RIBBON_GET (CODE_FLAGS + 0x3B) + +#define FLAG_0x89C (CODE_FLAGS + 0x3C) +#define FLAG_0x89D (CODE_FLAGS + 0x3D) +#define FLAG_0x89E (CODE_FLAGS + 0x3E) +#define FLAG_0x89F (CODE_FLAGS + 0x3F) +#define FLAG_0x8A0 (CODE_FLAGS + 0x40) +#define FLAG_0x8A1 (CODE_FLAGS + 0x41) +#define FLAG_0x8A2 (CODE_FLAGS + 0x42) +#define FLAG_0x8A3 (CODE_FLAGS + 0x43) +#define FLAG_0x8A4 (CODE_FLAGS + 0x44) +#define FLAG_0x8A5 (CODE_FLAGS + 0x45) +#define FLAG_0x8A6 (CODE_FLAGS + 0x46) +#define FLAG_0x8A7 (CODE_FLAGS + 0x47) +#define FLAG_UNLOCK_BATTLE_FRONTIER (CODE_FLAGS + 0x48) +#define FLAG_UNLOCK_SOUTHERN_ISLAND (CODE_FLAGS + 0x49) +#define FLAG_0x8AA (CODE_FLAGS + 0x4A) + +#define FLAG_SYS_PC_LANETTE (CODE_FLAGS + 0x4B) +#define FLAG_SYS_MYSTERY_EVENT_ENABLE (CODE_FLAGS + 0x4C) +#define FLAG_SYS_ENC_UP_ITEM (CODE_FLAGS + 0x4D) +#define FLAG_SYS_ENC_DOWN_ITEM (CODE_FLAGS + 0x4E) +#define FLAG_SYS_BRAILLE_DIG (CODE_FLAGS + 0x4F) +#define FLAG_SYS_BRAILLE_STRENGTH (CODE_FLAGS + 0x50) +#define FLAG_SYS_BRAILLE_WAIT (CODE_FLAGS + 0x51) +#define FLAG_SYS_BRAILLE_FLY (CODE_FLAGS + 0x52) +#define FLAG_SYS_HAS_EON_TICKET (CODE_FLAGS + 0x53) + +#define FLAG_SYS_POKEMON_LEAGUE_FLY (CODE_FLAGS + 0x54) + +#define FLAG_0x8B5 (CODE_FLAGS + 0x55) +#define FLAG_0x8B6 (CODE_FLAGS + 0x56) +#define FLAG_0x8B7 (CODE_FLAGS + 0x57) +#define FLAG_0x8B8 (CODE_FLAGS + 0x58) +#define FLAG_0x8B9 (CODE_FLAGS + 0x59) +#define FLAG_0x8BA (CODE_FLAGS + 0x5A) +#define FLAG_0x8BB (CODE_FLAGS + 0x5B) +#define FLAG_0x8BC (CODE_FLAGS + 0x5C) + +#define FLAG_SYS_TV_LATI (CODE_FLAGS + 0x5D) + +#define FLAG_0x8BE (CODE_FLAGS + 0x5E) + +#define FLAG_SYS_SHOAL_ITEM (CODE_FLAGS + 0x5F) +#define FLAG_SYS_B_DASH (CODE_FLAGS + 0x60) // got Running Shoes +#define FLAG_SYS_CTRL_OBJ_DELETE (CODE_FLAGS + 0x61) +#define FLAG_SYS_RESET_RTC_ENABLE (CODE_FLAGS + 0x62) + +#define FLAG_0x8C3 (CODE_FLAGS + 0x63) + +#define FLAG_SYS_TOWER_SILVER (CODE_FLAGS + 0x64) +#define FLAG_SYS_TOWER_GOLD (CODE_FLAGS + 0x65) +#define FLAG_SYS_DOME_SILVER (CODE_FLAGS + 0x66) +#define FLAG_SYS_DOME_GOLD (CODE_FLAGS + 0x67) +#define FLAG_SYS_PALACE_SILVER (CODE_FLAGS + 0x68) +#define FLAG_SYS_PALACE_GOLD (CODE_FLAGS + 0x69) +#define FLAG_SYS_ARENA_SILVER (CODE_FLAGS + 0x6A) +#define FLAG_SYS_ARENA_GOLD (CODE_FLAGS + 0x6B) +#define FLAG_SYS_FACTORY_SILVER (CODE_FLAGS + 0x6C) +#define FLAG_SYS_FACTORY_GOLD (CODE_FLAGS + 0x6D) +#define FLAG_SYS_PIKE_SILVER (CODE_FLAGS + 0x6E) +#define FLAG_SYS_PIKE_GOLD (CODE_FLAGS + 0x6F) +#define FLAG_SYS_PYRAMID_SILVER (CODE_FLAGS + 0x70) +#define FLAG_SYS_PYRAMID_GOLD (CODE_FLAGS + 0x71) +#define FLAG_SYS_FRONTIER_PASS (CODE_FLAGS + 0x72) + +#define FLAG_0x8D3 (CODE_FLAGS + 0x73) +#define FLAG_0x8D4 (CODE_FLAGS + 0x74) +#define FLAG_0x8D5 (CODE_FLAGS + 0x75) +#define FLAG_0x8D6 (CODE_FLAGS + 0x76) + +#define FLAG_SYS_STORAGE_UNKNOWN_FLAG (CODE_FLAGS + 0x77) + +#define FLAG_0x8D8 (CODE_FLAGS + 0x78) +#define FLAG_0x8D9 (CODE_FLAGS + 0x79) +#define FLAG_0x8DA (CODE_FLAGS + 0x7A) + +#define FLAG_SYS_MYSTERY_GIFT_ENABLE (CODE_FLAGS + 0x7B) + +#define FLAG_0x8DC (CODE_FLAGS + 0x7C) +#define FLAG_0x8DD (CODE_FLAGS + 0x7D) +#define FLAG_0x8DE (CODE_FLAGS + 0x7E) +#define FLAG_0x8DF (CODE_FLAGS + 0x7F) +#define FLAG_0x8E0 (CODE_FLAGS + 0x80) +#define FLAG_0x8E1 (CODE_FLAGS + 0x81) +#define FLAG_0x8E2 (CODE_FLAGS + 0x82) +#define FLAG_0x8E3 (CODE_FLAGS + 0x83) +#define FLAG_0x8E4 (CODE_FLAGS + 0x84) +#define FLAG_0x8E5 (CODE_FLAGS + 0x85) +#define FLAG_0x8E6 (CODE_FLAGS + 0x86) +#define FLAG_0x8E7 (CODE_FLAGS + 0x87) +#define FLAG_0x8E8 (CODE_FLAGS + 0x88) +#define FLAG_0x8E9 (CODE_FLAGS + 0x89) +#define FLAG_0x8EA (CODE_FLAGS + 0x8A) +#define FLAG_0x8EB (CODE_FLAGS + 0x8B) +#define FLAG_0x8EC (CODE_FLAGS + 0x8C) +#define FLAG_0x8ED (CODE_FLAGS + 0x8D) +#define FLAG_0x8EE (CODE_FLAGS + 0x8E) +#define FLAG_0x8EF (CODE_FLAGS + 0x8F) +#define FLAG_0x8F0 (CODE_FLAGS + 0x90) +#define FLAG_0x8F1 (CODE_FLAGS + 0x91) +#define FLAG_0x8F2 (CODE_FLAGS + 0x92) +#define FLAG_0x8F3 (CODE_FLAGS + 0x93) +#define FLAG_0x8F4 (CODE_FLAGS + 0x94) +#define FLAG_0x8F5 (CODE_FLAGS + 0x95) +#define FLAG_0x8F6 (CODE_FLAGS + 0x96) +#define FLAG_0x8F7 (CODE_FLAGS + 0x97) +#define FLAG_0x8F8 (CODE_FLAGS + 0x98) +#define FLAG_0x8F9 (CODE_FLAGS + 0x99) +#define FLAG_0x8FA (CODE_FLAGS + 0x9A) +#define FLAG_0x8FB (CODE_FLAGS + 0x9B) +#define FLAG_0x8FC (CODE_FLAGS + 0x9C) +#define FLAG_0x8FD (CODE_FLAGS + 0x9D) +#define FLAG_0x8FE (CODE_FLAGS + 0x9E) +#define FLAG_0x8FF (CODE_FLAGS + 0x9F) +#define FLAG_0x900 (CODE_FLAGS + 0xA0) +#define FLAG_0x901 (CODE_FLAGS + 0xA1) +#define FLAG_0x902 (CODE_FLAGS + 0xA2) +#define FLAG_0x903 (CODE_FLAGS + 0xA3) +#define FLAG_0x904 (CODE_FLAGS + 0xA4) +#define FLAG_0x905 (CODE_FLAGS + 0xA5) +#define FLAG_0x906 (CODE_FLAGS + 0xA6) +#define FLAG_0x907 (CODE_FLAGS + 0xA7) +#define FLAG_0x908 (CODE_FLAGS + 0xA8) +#define FLAG_0x909 (CODE_FLAGS + 0xA9) +#define FLAG_0x90A (CODE_FLAGS + 0xAA) +#define FLAG_0x90B (CODE_FLAGS + 0xAB) +#define FLAG_0x90C (CODE_FLAGS + 0xAC) +#define FLAG_0x90D (CODE_FLAGS + 0xAD) +#define FLAG_0x90E (CODE_FLAGS + 0xAE) +#define FLAG_0x90F (CODE_FLAGS + 0xAF) +#define FLAG_0x910 (CODE_FLAGS + 0xB0) +#define FLAG_0x911 (CODE_FLAGS + 0xB1) +#define FLAG_0x912 (CODE_FLAGS + 0xB2) +#define FLAG_0x913 (CODE_FLAGS + 0xB3) +#define FLAG_0x914 (CODE_FLAGS + 0xB4) +#define FLAG_0x915 (CODE_FLAGS + 0xB5) +#define FLAG_0x916 (CODE_FLAGS + 0xB6) +#define FLAG_0x917 (CODE_FLAGS + 0xB7) +#define FLAG_0x918 (CODE_FLAGS + 0xB8) +#define FLAG_0x919 (CODE_FLAGS + 0xB9) +#define FLAG_0x91A (CODE_FLAGS + 0xBA) +#define FLAG_0x91B (CODE_FLAGS + 0xBB) +#define FLAG_0x91C (CODE_FLAGS + 0xBC) +#define FLAG_0x91D (CODE_FLAGS + 0xBD) +#define FLAG_0x91E (CODE_FLAGS + 0xBE) +#define FLAG_0x91F (CODE_FLAGS + 0xBF) +#define FLAG_0x920 (CODE_FLAGS + 0xC0) +#define FLAG_0x921 (CODE_FLAGS + 0xC1) +#define FLAG_0x922 (CODE_FLAGS + 0xC2) +#define FLAG_0x923 (CODE_FLAGS + 0xC3) +#define FLAG_0x924 (CODE_FLAGS + 0xC4) +#define FLAG_0x925 (CODE_FLAGS + 0xC5) +#define FLAG_0x926 (CODE_FLAGS + 0xC6) +#define FLAG_0x927 (CODE_FLAGS + 0xC7) +#define FLAG_0x928 (CODE_FLAGS + 0xC8) +#define FLAG_0x929 (CODE_FLAGS + 0xC9) +#define FLAG_0x92A (CODE_FLAGS + 0xCA) +#define FLAG_0x92B (CODE_FLAGS + 0xCB) +#define FLAG_0x92C (CODE_FLAGS + 0xCC) +#define FLAG_0x92D (CODE_FLAGS + 0xCD) +#define FLAG_0x92E (CODE_FLAGS + 0xCE) +#define FLAG_0x92F (CODE_FLAGS + 0xCF) +#define FLAG_0x930 (CODE_FLAGS + 0xD0) +#define FLAG_0x931 (CODE_FLAGS + 0xD1) +#define FLAG_0x932 (CODE_FLAGS + 0xD2) +#define FLAG_0x933 (CODE_FLAGS + 0xD3) +#define FLAG_0x934 (CODE_FLAGS + 0xD4) +#define FLAG_0x935 (CODE_FLAGS + 0xD5) +#define FLAG_0x936 (CODE_FLAGS + 0xD6) +#define FLAG_0x937 (CODE_FLAGS + 0xD7) +#define FLAG_0x938 (CODE_FLAGS + 0xD8) +#define FLAG_0x939 (CODE_FLAGS + 0xD9) +#define FLAG_0x93A (CODE_FLAGS + 0xDA) +#define FLAG_0x93B (CODE_FLAGS + 0xDB) +#define FLAG_0x93C (CODE_FLAGS + 0xDC) +#define FLAG_0x93D (CODE_FLAGS + 0xDD) +#define FLAG_0x93E (CODE_FLAGS + 0xDE) +#define FLAG_0x93F (CODE_FLAGS + 0xDF) +#define FLAG_0x940 (CODE_FLAGS + 0xE0) +#define FLAG_0x941 (CODE_FLAGS + 0xE1) +#define FLAG_0x942 (CODE_FLAGS + 0xE2) +#define FLAG_0x943 (CODE_FLAGS + 0xE3) +#define FLAG_0x944 (CODE_FLAGS + 0xE4) +#define FLAG_0x945 (CODE_FLAGS + 0xE5) +#define FLAG_0x946 (CODE_FLAGS + 0xE6) +#define FLAG_0x947 (CODE_FLAGS + 0xE7) +#define FLAG_0x948 (CODE_FLAGS + 0xE8) +#define FLAG_0x949 (CODE_FLAGS + 0xE9) +#define FLAG_0x94A (CODE_FLAGS + 0xEA) +#define FLAG_0x94B (CODE_FLAGS + 0xEB) +#define FLAG_0x94C (CODE_FLAGS + 0xEC) +#define FLAG_0x94D (CODE_FLAGS + 0xED) +#define FLAG_0x94E (CODE_FLAGS + 0xEE) +#define FLAG_0x94F (CODE_FLAGS + 0xEF) +#define FLAG_0x950 (CODE_FLAGS + 0xF0) +#define FLAG_0x951 (CODE_FLAGS + 0xF1) +#define FLAG_0x952 (CODE_FLAGS + 0xF2) +#define FLAG_0x953 (CODE_FLAGS + 0xF3) +#define FLAG_0x954 (CODE_FLAGS + 0xF4) +#define FLAG_0x955 (CODE_FLAGS + 0xF5) +#define FLAG_0x956 (CODE_FLAGS + 0xF6) +#define FLAG_0x957 (CODE_FLAGS + 0xF7) +#define FLAG_0x958 (CODE_FLAGS + 0xF8) +#define FLAG_0x959 (CODE_FLAGS + 0xF9) +#define FLAG_0x95A (CODE_FLAGS + 0xFA) +#define FLAG_0x95B (CODE_FLAGS + 0xFB) +#define FLAG_0x95C (CODE_FLAGS + 0xFC) +#define FLAG_0x95D (CODE_FLAGS + 0xFD) +#define FLAG_0x95E (CODE_FLAGS + 0xFE) +#define FLAG_0x95F (CODE_FLAGS + 0xFF) + +// SPECIAL FLAGS (unknown purpose) +#define FLAG_SPECIAL_FLAG_0x4000 0x4000 +#define FLAG_SPECIAL_FLAG_0x4001 0x4001 +#define FLAG_SPECIAL_FLAG_0x4002 0x4002 +#define FLAG_SPECIAL_FLAG_0x4003 0x4003 +#define FLAG_SPECIAL_FLAG_0x4004 0x4004 + +#endif // GUARD_CONSTANTS_FLAGS_H diff --git a/include/game_stat.h b/include/constants/game_stat.h index 5979c531c..b1f3d4197 100644 --- a/include/game_stat.h +++ b/include/constants/game_stat.h @@ -1,5 +1,5 @@ -#ifndef GUARD_GAME_STAT_H -#define GUARD_GAME_STAT_H +#ifndef GUARD_CONSTANTS_GAME_STAT_H +#define GUARD_CONSTANTS_GAME_STAT_H #define GAME_STAT_SAVED_GAME 0 #define GAME_STAT_FIRST_HOF_PLAY_TIME 1 @@ -56,7 +56,4 @@ #define NUM_GAME_STATS 64 -void IncrementGameStat(u8); -u32 GetGameStat(u8); - -#endif // GUARD_GAME_STAT_H +#endif // GUARD_CONSTANTS_GAME_STAT_H diff --git a/include/hold_effects.h b/include/constants/hold_effects.h index b653f5a92..b653f5a92 100644 --- a/include/hold_effects.h +++ b/include/constants/hold_effects.h diff --git a/include/constants/items.h b/include/constants/items.h new file mode 100644 index 000000000..6135b8d6f --- /dev/null +++ b/include/constants/items.h @@ -0,0 +1,393 @@ +#ifndef GUARD_CONSTANTS_ITEMS_H +#define GUARD_CONSTANTS_ITEMS_H + +#define ITEM_NONE 0 +#define ITEM_MASTER_BALL 1 +#define ITEM_ULTRA_BALL 2 +#define ITEM_GREAT_BALL 3 +#define ITEM_POKE_BALL 4 +#define ITEM_SAFARI_BALL 5 +#define ITEM_NET_BALL 6 +#define ITEM_DIVE_BALL 7 +#define ITEM_NEST_BALL 8 +#define ITEM_REPEAT_BALL 9 +#define ITEM_TIMER_BALL 10 +#define ITEM_LUXURY_BALL 11 +#define ITEM_PREMIER_BALL 12 +#define ITEM_POTION 13 +#define ITEM_ANTIDOTE 14 +#define ITEM_BURN_HEAL 15 +#define ITEM_ICE_HEAL 16 +#define ITEM_AWAKENING 17 +#define ITEM_PARALYZE_HEAL 18 +#define ITEM_FULL_RESTORE 19 +#define ITEM_MAX_POTION 20 +#define ITEM_HYPER_POTION 21 +#define ITEM_SUPER_POTION 22 +#define ITEM_FULL_HEAL 23 +#define ITEM_REVIVE 24 +#define ITEM_MAX_REVIVE 25 +#define ITEM_FRESH_WATER 26 +#define ITEM_SODA_POP 27 +#define ITEM_LEMONADE 28 +#define ITEM_MOOMOO_MILK 29 +#define ITEM_ENERGY_POWDER 30 +#define ITEM_ENERGY_ROOT 31 +#define ITEM_HEAL_POWDER 32 +#define ITEM_REVIVAL_HERB 33 +#define ITEM_ETHER 34 +#define ITEM_MAX_ETHER 35 +#define ITEM_ELIXIR 36 +#define ITEM_MAX_ELIXIR 37 +#define ITEM_LAVA_COOKIE 38 +#define ITEM_BLUE_FLUTE 39 +#define ITEM_YELLOW_FLUTE 40 +#define ITEM_RED_FLUTE 41 +#define ITEM_BLACK_FLUTE 42 +#define ITEM_WHITE_FLUTE 43 +#define ITEM_BERRY_JUICE 44 +#define ITEM_SACRED_ASH 45 +#define ITEM_SHOAL_SALT 46 +#define ITEM_SHOAL_SHELL 47 +#define ITEM_RED_SHARD 48 +#define ITEM_BLUE_SHARD 49 +#define ITEM_YELLOW_SHARD 50 +#define ITEM_GREEN_SHARD 51 +#define ITEM_034 52 +#define ITEM_035 53 +#define ITEM_036 54 +#define ITEM_037 55 +#define ITEM_038 56 +#define ITEM_039 57 +#define ITEM_03A 58 +#define ITEM_03B 59 +#define ITEM_03C 60 +#define ITEM_03D 61 +#define ITEM_03E 62 +#define ITEM_HP_UP 63 +#define ITEM_PROTEIN 64 +#define ITEM_IRON 65 +#define ITEM_CARBOS 66 +#define ITEM_CALCIUM 67 +#define ITEM_RARE_CANDY 68 +#define ITEM_PP_UP 69 +#define ITEM_ZINC 70 +#define ITEM_PP_MAX 71 +#define ITEM_048 72 +#define ITEM_GUARD_SPEC 73 +#define ITEM_DIRE_HIT 74 +#define ITEM_X_ATTACK 75 +#define ITEM_X_DEFEND 76 +#define ITEM_X_SPEED 77 +#define ITEM_X_ACCURACY 78 +#define ITEM_X_SPECIAL 79 +#define ITEM_POKE_DOLL 80 +#define ITEM_FLUFFY_TAIL 81 +#define ITEM_052 82 +#define ITEM_SUPER_REPEL 83 +#define ITEM_MAX_REPEL 84 +#define ITEM_ESCAPE_ROPE 85 +#define ITEM_REPEL 86 +#define ITEM_057 87 +#define ITEM_058 88 +#define ITEM_059 89 +#define ITEM_05A 90 +#define ITEM_05B 91 +#define ITEM_05C 92 +#define ITEM_SUN_STONE 93 +#define ITEM_MOON_STONE 94 +#define ITEM_FIRE_STONE 95 +#define ITEM_THUNDER_STONE 96 +#define ITEM_WATER_STONE 97 +#define ITEM_LEAF_STONE 98 +#define ITEM_063 99 +#define ITEM_064 100 +#define ITEM_065 101 +#define ITEM_066 102 +#define ITEM_TINY_MUSHROOM 103 +#define ITEM_BIG_MUSHROOM 104 +#define ITEM_069 105 +#define ITEM_PEARL 106 +#define ITEM_BIG_PEARL 107 +#define ITEM_STARDUST 108 +#define ITEM_STAR_PIECE 109 +#define ITEM_NUGGET 110 +#define ITEM_HEART_SCALE 111 +#define ITEM_070 112 +#define ITEM_071 113 +#define ITEM_072 114 +#define ITEM_073 115 +#define ITEM_074 116 +#define ITEM_075 117 +#define ITEM_076 118 +#define ITEM_077 119 +#define ITEM_078 120 +#define ITEM_ORANGE_MAIL 121 +#define ITEM_HARBOR_MAIL 122 +#define ITEM_GLITTER_MAIL 123 +#define ITEM_MECH_MAIL 124 +#define ITEM_WOOD_MAIL 125 +#define ITEM_WAVE_MAIL 126 +#define ITEM_BEAD_MAIL 127 +#define ITEM_SHADOW_MAIL 128 +#define ITEM_TROPIC_MAIL 129 +#define ITEM_DREAM_MAIL 130 +#define ITEM_FAB_MAIL 131 +#define ITEM_RETRO_MAIL 132 +#define ITEM_CHERI_BERRY 133 +#define ITEM_CHESTO_BERRY 134 +#define ITEM_PECHA_BERRY 135 +#define ITEM_RAWST_BERRY 136 +#define ITEM_ASPEAR_BERRY 137 +#define ITEM_LEPPA_BERRY 138 +#define ITEM_ORAN_BERRY 139 +#define ITEM_PERSIM_BERRY 140 +#define ITEM_LUM_BERRY 141 +#define ITEM_SITRUS_BERRY 142 +#define ITEM_FIGY_BERRY 143 +#define ITEM_WIKI_BERRY 144 +#define ITEM_MAGO_BERRY 145 +#define ITEM_AGUAV_BERRY 146 +#define ITEM_IAPAPA_BERRY 147 +#define ITEM_RAZZ_BERRY 148 +#define ITEM_BLUK_BERRY 149 +#define ITEM_NANAB_BERRY 150 +#define ITEM_WEPEAR_BERRY 151 +#define ITEM_PINAP_BERRY 152 +#define ITEM_POMEG_BERRY 153 +#define ITEM_KELPSY_BERRY 154 +#define ITEM_QUALOT_BERRY 155 +#define ITEM_HONDEW_BERRY 156 +#define ITEM_GREPA_BERRY 157 +#define ITEM_TAMATO_BERRY 158 +#define ITEM_CORNN_BERRY 159 +#define ITEM_MAGOST_BERRY 160 +#define ITEM_RABUTA_BERRY 161 +#define ITEM_NOMEL_BERRY 162 +#define ITEM_SPELON_BERRY 163 +#define ITEM_PAMTRE_BERRY 164 +#define ITEM_WATMEL_BERRY 165 +#define ITEM_DURIN_BERRY 166 +#define ITEM_BELUE_BERRY 167 +#define ITEM_LIECHI_BERRY 168 +#define ITEM_GANLON_BERRY 169 +#define ITEM_SALAC_BERRY 170 +#define ITEM_PETAYA_BERRY 171 +#define ITEM_APICOT_BERRY 172 +#define ITEM_LANSAT_BERRY 173 +#define ITEM_STARF_BERRY 174 +#define ITEM_ENIGMA_BERRY 175 +#define ITEM_0B0 176 +#define ITEM_0B1 177 +#define ITEM_0B2 178 +#define ITEM_BRIGHT_POWDER 179 +#define ITEM_WHITE_HERB 180 +#define ITEM_MACHO_BRACE 181 +#define ITEM_EXP_SHARE 182 +#define ITEM_QUICK_CLAW 183 +#define ITEM_SOOTHE_BELL 184 +#define ITEM_MENTAL_HERB 185 +#define ITEM_CHOICE_BAND 186 +#define ITEM_KINGS_ROCK 187 +#define ITEM_SILVER_POWDER 188 +#define ITEM_AMULET_COIN 189 +#define ITEM_CLEANSE_TAG 190 +#define ITEM_SOUL_DEW 191 +#define ITEM_DEEP_SEA_TOOTH 192 +#define ITEM_DEEP_SEA_SCALE 193 +#define ITEM_SMOKE_BALL 194 +#define ITEM_EVERSTONE 195 +#define ITEM_FOCUS_BAND 196 +#define ITEM_LUCKY_EGG 197 +#define ITEM_SCOPE_LENS 198 +#define ITEM_METAL_COAT 199 +#define ITEM_LEFTOVERS 200 +#define ITEM_DRAGON_SCALE 201 +#define ITEM_LIGHT_BALL 202 +#define ITEM_SOFT_SAND 203 +#define ITEM_HARD_STONE 204 +#define ITEM_MIRACLE_SEED 205 +#define ITEM_BLACK_GLASSES 206 +#define ITEM_BLACK_BELT 207 +#define ITEM_MAGNET 208 +#define ITEM_MYSTIC_WATER 209 +#define ITEM_SHARP_BEAK 210 +#define ITEM_POISON_BARB 211 +#define ITEM_NEVER_MELT_ICE 212 +#define ITEM_SPELL_TAG 213 +#define ITEM_TWISTED_SPOON 214 +#define ITEM_CHARCOAL 215 +#define ITEM_DRAGON_FANG 216 +#define ITEM_SILK_SCARF 217 +#define ITEM_UP_GRADE 218 +#define ITEM_SHELL_BELL 219 +#define ITEM_SEA_INCENSE 220 +#define ITEM_LAX_INCENSE 221 +#define ITEM_LUCKY_PUNCH 222 +#define ITEM_METAL_POWDER 223 +#define ITEM_THICK_CLUB 224 +#define ITEM_STICK 225 +#define ITEM_0E2 226 +#define ITEM_0E3 227 +#define ITEM_0E4 228 +#define ITEM_0E5 229 +#define ITEM_0E6 230 +#define ITEM_0E7 231 +#define ITEM_0E8 232 +#define ITEM_0E9 233 +#define ITEM_0EA 234 +#define ITEM_0EB 235 +#define ITEM_0EC 236 +#define ITEM_0ED 237 +#define ITEM_0EE 238 +#define ITEM_0EF 239 +#define ITEM_0F0 240 +#define ITEM_0F1 241 +#define ITEM_0F2 242 +#define ITEM_0F3 243 +#define ITEM_0F4 244 +#define ITEM_0F5 245 +#define ITEM_0F6 246 +#define ITEM_0F7 247 +#define ITEM_0F8 248 +#define ITEM_0F9 249 +#define ITEM_0FA 250 +#define ITEM_0FB 251 +#define ITEM_0FC 252 +#define ITEM_0FD 253 +#define ITEM_RED_SCARF 254 +#define ITEM_BLUE_SCARF 255 +#define ITEM_PINK_SCARF 256 +#define ITEM_GREEN_SCARF 257 +#define ITEM_YELLOW_SCARF 258 +#define ITEM_MACH_BIKE 259 +#define ITEM_COIN_CASE 260 +#define ITEM_ITEMFINDER 261 +#define ITEM_OLD_ROD 262 +#define ITEM_GOOD_ROD 263 +#define ITEM_SUPER_ROD 264 +#define ITEM_SS_TICKET 265 +#define ITEM_CONTEST_PASS 266 +#define ITEM_10B 267 +#define ITEM_WAILMER_PAIL 268 +#define ITEM_DEVON_GOODS 269 +#define ITEM_SOOT_SACK 270 +#define ITEM_BASEMENT_KEY 271 +#define ITEM_ACRO_BIKE 272 +#define ITEM_POKEBLOCK_CASE 273 +#define ITEM_LETTER 274 +#define ITEM_EON_TICKET 275 +#define ITEM_RED_ORB 276 +#define ITEM_BLUE_ORB 277 +#define ITEM_SCANNER 278 +#define ITEM_GO_GOGGLES 279 +#define ITEM_METEORITE 280 +#define ITEM_ROOM_1_KEY 281 +#define ITEM_ROOM_2_KEY 282 +#define ITEM_ROOM_4_KEY 283 +#define ITEM_ROOM_6_KEY 284 +#define ITEM_STORAGE_KEY 285 +#define ITEM_ROOT_FOSSIL 286 +#define ITEM_CLAW_FOSSIL 287 +#define ITEM_DEVON_SCOPE 288 +#define ITEM_TM01 289 +#define ITEM_TM02 290 +#define ITEM_TM03 291 +#define ITEM_TM04 292 +#define ITEM_TM05 293 +#define ITEM_TM06 294 +#define ITEM_TM07 295 +#define ITEM_TM08 296 +#define ITEM_TM09 297 +#define ITEM_TM10 298 +#define ITEM_TM11 299 +#define ITEM_TM12 300 +#define ITEM_TM13 301 +#define ITEM_TM14 302 +#define ITEM_TM15 303 +#define ITEM_TM16 304 +#define ITEM_TM17 305 +#define ITEM_TM18 306 +#define ITEM_TM19 307 +#define ITEM_TM20 308 +#define ITEM_TM21 309 +#define ITEM_TM22 310 +#define ITEM_TM23 311 +#define ITEM_TM24 312 +#define ITEM_TM25 313 +#define ITEM_TM26 314 +#define ITEM_TM27 315 +#define ITEM_TM28 316 +#define ITEM_TM29 317 +#define ITEM_TM30 318 +#define ITEM_TM31 319 +#define ITEM_TM32 320 +#define ITEM_TM33 321 +#define ITEM_TM34 322 +#define ITEM_TM35 323 +#define ITEM_TM36 324 +#define ITEM_TM37 325 +#define ITEM_TM38 326 +#define ITEM_TM39 327 +#define ITEM_TM40 328 +#define ITEM_TM41 329 +#define ITEM_TM42 330 +#define ITEM_TM43 331 +#define ITEM_TM44 332 +#define ITEM_TM45 333 +#define ITEM_TM46 334 +#define ITEM_TM47 335 +#define ITEM_TM48 336 +#define ITEM_TM49 337 +#define ITEM_TM50 338 +#define ITEM_HM01 339 +#define ITEM_HM02 340 +#define ITEM_HM03 341 +#define ITEM_HM04 342 +#define ITEM_HM05 343 +#define ITEM_HM06 344 +#define ITEM_HM07 345 +#define ITEM_HM08 346 +#define ITEM_15B 347 +#define ITEM_15C 348 + +// FireRed/LeafGreen +#define ITEM_OAKS_PARCEL 349 +#define ITEM_POKE_FLUTE 350 +#define ITEM_SECRET_KEY 351 +#define ITEM_BIKE_VOUCHER 352 +#define ITEM_GOLD_TEETH 353 +#define ITEM_OLD_AMBER 354 +#define ITEM_CARD_KEY 355 +#define ITEM_LIFT_KEY 356 +#define ITEM_HELIX_FOSSIL 357 +#define ITEM_DOME_FOSSIL 358 +#define ITEM_SILPH_SCOPE 359 +#define ITEM_BICYCLE 360 +#define ITEM_TOWN_MAP 361 +#define ITEM_VS_SEEKER 362 +#define ITEM_FAME_CHECKER 363 +#define ITEM_TM_CASE 364 +#define ITEM_BERRY_POUCH 365 +#define ITEM_TEACHY_TV 366 +#define ITEM_TRI_PASS 367 +#define ITEM_RAINBOW_PASS 368 +#define ITEM_TEA 369 +#define ITEM_MYSTIC_TICKET 370 +#define ITEM_AURORA_TICKET 371 +#define ITEM_POWDER_JAR 372 +#define ITEM_RUBY 373 +#define ITEM_SAPPHIRE 374 + +// Emerald +#define ITEM_MAGMA_EMBLEM 375 +#define ITEM_OLD_SEA_MAP 376 + +#define FIRST_BERRY_INDEX ITEM_CHERI_BERRY +#define LAST_BERRY_INDEX ITEM_ENIGMA_BERRY +#define ITEM_TO_BERRY(itemId)(((itemId - FIRST_BERRY_INDEX) + 1)) + +#define NUM_TECHNICAL_MACHINES 50 +#define NUM_HIDDEN_MACHINES 8 + +#endif // GUARD_CONSTANTS_ITEMS_H diff --git a/include/constants/map_objects.h b/include/constants/map_objects.h new file mode 100644 index 000000000..d5b983005 --- /dev/null +++ b/include/constants/map_objects.h @@ -0,0 +1,263 @@ +#ifndef GUARD_CONSTANTS_MAP_OBJECTS_H +#define GUARD_CONSTANTS_MAP_OBJECTS_H + +#define MAP_OBJ_GFX_BRENDAN_NORMAL 0 +#define MAP_OBJ_GFX_BRENDAN_MACH_BIKE 1 +#define MAP_OBJ_GFX_BRENDAN_SURFING 2 +#define MAP_OBJ_GFX_BRENDAN_FIELD_MOVE 3 +#define MAP_OBJ_GFX_QUINTY_PLUMP 4 +#define MAP_OBJ_GFX_LITTLE_BOY_1 5 +#define MAP_OBJ_GFX_LITTLE_GIRL_1 6 +#define MAP_OBJ_GFX_BOY_1 7 +#define MAP_OBJ_GFX_GIRL_1 8 +#define MAP_OBJ_GFX_BOY_2 9 +#define MAP_OBJ_GFX_GIRL_2 10 +#define MAP_OBJ_GFX_LITTLE_BOY_2 11 +#define MAP_OBJ_GFX_LITTLE_GIRL_2 12 +#define MAP_OBJ_GFX_BOY_3 13 +#define MAP_OBJ_GFX_GIRL_3 14 +#define MAP_OBJ_GFX_BOY_4 15 +#define MAP_OBJ_GFX_WOMAN_1 16 +#define MAP_OBJ_GFX_FAT_MAN 17 +#define MAP_OBJ_GFX_WOMAN_2 18 +#define MAP_OBJ_GFX_MAN_1 19 +#define MAP_OBJ_GFX_WOMAN_3 20 +#define MAP_OBJ_GFX_OLD_MAN_1 21 +#define MAP_OBJ_GFX_OLD_WOMAN_1 22 +#define MAP_OBJ_GFX_MAN_2 23 +#define MAP_OBJ_GFX_WOMAN_4 24 +#define MAP_OBJ_GFX_MAN_3 25 +#define MAP_OBJ_GFX_WOMAN_5 26 +#define MAP_OBJ_GFX_COOK 27 +#define MAP_OBJ_GFX_WOMAN_6 28 +#define MAP_OBJ_GFX_OLD_MAN_2 29 +#define MAP_OBJ_GFX_OLD_WOMAN_2 30 +#define MAP_OBJ_GFX_CAMPER 31 +#define MAP_OBJ_GFX_PICNICKER 32 +#define MAP_OBJ_GFX_MAN_4 33 +#define MAP_OBJ_GFX_WOMAN_7 34 +#define MAP_OBJ_GFX_YOUNGSTER 35 +#define MAP_OBJ_GFX_BUG_CATCHER 36 +#define MAP_OBJ_GFX_PSYCHIC_M 37 +#define MAP_OBJ_GFX_SCHOOL_KID_M 38 +#define MAP_OBJ_GFX_MANIAC 39 +#define MAP_OBJ_GFX_HEX_MANIAC 40 +#define MAP_OBJ_GFX_RAYQUAZA_1 41 +#define MAP_OBJ_GFX_SWIMMER_M 42 +#define MAP_OBJ_GFX_SWIMMER_F 43 +#define MAP_OBJ_GFX_BLACK_BELT 44 +#define MAP_OBJ_GFX_BEAUTY 45 +#define MAP_OBJ_GFX_SCIENTIST_1 46 +#define MAP_OBJ_GFX_LASS 47 +#define MAP_OBJ_GFX_GENTLEMAN 48 +#define MAP_OBJ_GFX_SAILOR 49 +#define MAP_OBJ_GFX_FISHERMAN 50 +#define MAP_OBJ_GFX_RUNNING_TRIATHLETE_M 51 +#define MAP_OBJ_GFX_RUNNING_TRIATHLETE_F 52 +#define MAP_OBJ_GFX_TUBER_F 53 +#define MAP_OBJ_GFX_TUBER_M 54 +#define MAP_OBJ_GFX_HIKER 55 +#define MAP_OBJ_GFX_CYCLING_TRIATHLETE_M 56 +#define MAP_OBJ_GFX_CYCLING_TRIATHLETE_F 57 +#define MAP_OBJ_GFX_NURSE 58 +#define MAP_OBJ_GFX_ITEM_BALL 59 +#define MAP_OBJ_GFX_BERRY_TREE 60 +#define MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES 61 +#define MAP_OBJ_GFX_BERRY_TREE_LATE_STAGES 62 +#define MAP_OBJ_GFX_BRENDAN_ACRO_BIKE 63 +#define MAP_OBJ_GFX_PROF_BIRCH 64 +#define MAP_OBJ_GFX_MAN_5 65 +#define MAP_OBJ_GFX_MAN_6 66 +#define MAP_OBJ_GFX_REPORTER_M 67 +#define MAP_OBJ_GFX_REPORTER_F 68 +#define MAP_OBJ_GFX_BARD 69 +#define MAP_OBJ_GFX_ANABEL 70 +#define MAP_OBJ_GFX_TUCKER 71 +#define MAP_OBJ_GFX_GRETA 72 +#define MAP_OBJ_GFX_SPENSER 73 +#define MAP_OBJ_GFX_NOLAND 74 +#define MAP_OBJ_GFX_LUCY 75 +#define MAP_OBJ_GFX_UNUSED_NATU_DOLL 76 +#define MAP_OBJ_GFX_UNUSED_MAGNEMITE_DOLL 77 +#define MAP_OBJ_GFX_UNUSED_SQUIRTLE_DOLL 78 +#define MAP_OBJ_GFX_UNUSED_WOOPER_DOLL 79 +#define MAP_OBJ_GFX_UNUSED_PIKACHU_DOLL 80 +#define MAP_OBJ_GFX_UNUSED_PORYGON2_DOLL 81 +#define MAP_OBJ_GFX_CUTTABLE_TREE 82 +#define MAP_OBJ_GFX_MART_EMPLOYEE 83 +#define MAP_OBJ_GFX_ROOFTOP_SALE_WOMAN 84 +#define MAP_OBJ_GFX_TEALA 85 +#define MAP_OBJ_GFX_BREAKABLE_ROCK 86 +#define MAP_OBJ_GFX_PUSHABLE_BOULDER 87 +#define MAP_OBJ_GFX_MR_BRINEYS_BOAT 88 +#define MAP_OBJ_GFX_MAY_NORMAL 89 +#define MAP_OBJ_GFX_MAY_MACH_BIKE 90 +#define MAP_OBJ_GFX_MAY_ACRO_BIKE 91 +#define MAP_OBJ_GFX_MAY_SURFING 92 +#define MAP_OBJ_GFX_MAY_FIELD_MOVE 93 +#define MAP_OBJ_GFX_TRUCK 94 +#define MAP_OBJ_GFX_VIGAROTH_CARRYING_BOX 95 +#define MAP_OBJ_GFX_VIGAROTH_FACING_AWAY 96 +#define MAP_OBJ_GFX_BIRCHS_BAG 97 +#define MAP_OBJ_GFX_ZIGZAGOON_1 98 +#define MAP_OBJ_GFX_ARTIST 99 +#define MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL 100 +#define MAP_OBJ_GFX_RIVAL_BRENDAN_MACH_BIKE 101 +#define MAP_OBJ_GFX_RIVAL_BRENDAN_ACRO_BIKE 102 +#define MAP_OBJ_GFX_RIVAL_BRENDAN_SURFING 103 +#define MAP_OBJ_GFX_RIVAL_BRENDAN_FIELD_MOVE 104 +#define MAP_OBJ_GFX_RIVAL_MAY_NORMAL 105 +#define MAP_OBJ_GFX_RIVAL_MAY_MACH_BIKE 106 +#define MAP_OBJ_GFX_RIVAL_MAY_ACRO_BIKE 107 +#define MAP_OBJ_GFX_RIVAL_MAY_SURFING 108 +#define MAP_OBJ_GFX_RIVAL_MAY_FIELD_MOVE 109 +#define MAP_OBJ_GFX_CAMERAMAN 110 +#define MAP_OBJ_GFX_BRENDAN_UNDERWATER 111 +#define MAP_OBJ_GFX_MAY_UNDERWATER 112 +#define MAP_OBJ_GFX_MOVING_BOX 113 +#define MAP_OBJ_GFX_CABLE_CAR 114 +#define MAP_OBJ_GFX_SCIENTIST_2 115 +#define MAP_OBJ_GFX_MAN_7 116 +#define MAP_OBJ_GFX_AQUA_MEMBER_M 117 +#define MAP_OBJ_GFX_AQUA_MEMBER_F 118 +#define MAP_OBJ_GFX_MAGMA_MEMBER_M 119 +#define MAP_OBJ_GFX_MAGMA_MEMBER_F 120 +#define MAP_OBJ_GFX_SIDNEY 121 +#define MAP_OBJ_GFX_PHOEBE 122 +#define MAP_OBJ_GFX_GLACIA 123 +#define MAP_OBJ_GFX_DRAKE 124 +#define MAP_OBJ_GFX_ROXANNE 125 +#define MAP_OBJ_GFX_BRAWLY 126 +#define MAP_OBJ_GFX_WATTSON 127 +#define MAP_OBJ_GFX_FLANNERY 128 +#define MAP_OBJ_GFX_NORMAN 129 +#define MAP_OBJ_GFX_WINONA 130 +#define MAP_OBJ_GFX_LIZA 131 +#define MAP_OBJ_GFX_TATE 132 +#define MAP_OBJ_GFX_WALLACE 133 +#define MAP_OBJ_GFX_STEVEN 134 +#define MAP_OBJ_GFX_WALLY 135 +#define MAP_OBJ_GFX_LITTLE_BOY_3 136 +#define MAP_OBJ_GFX_BRENDAN_FISHING 137 +#define MAP_OBJ_GFX_MAY_FISHING 138 +#define MAP_OBJ_GFX_HOT_SPRINGS_OLD_WOMAN 139 +#define MAP_OBJ_GFX_SS_TIDAL 140 +#define MAP_OBJ_GFX_SUBMARINE_SHADOW 141 +#define MAP_OBJ_GFX_PICHU_DOLL 142 +#define MAP_OBJ_GFX_PIKACHU_DOLL 143 +#define MAP_OBJ_GFX_MARILL_DOLL 144 +#define MAP_OBJ_GFX_TOGEPI_DOLL 145 +#define MAP_OBJ_GFX_CYNDAQUIL_DOLL 146 +#define MAP_OBJ_GFX_CHIKORITA_DOLL 147 +#define MAP_OBJ_GFX_TOTODILE_DOLL 148 +#define MAP_OBJ_GFX_JIGGLYPUFF_DOLL 149 +#define MAP_OBJ_GFX_MEOWTH_DOLL 150 +#define MAP_OBJ_GFX_CLEFAIRY_DOLL 151 +#define MAP_OBJ_GFX_DITTO_DOLL 152 +#define MAP_OBJ_GFX_SMOOCHUM_DOLL 153 +#define MAP_OBJ_GFX_TREECKO_DOLL 154 +#define MAP_OBJ_GFX_TORCHIC_DOLL 155 +#define MAP_OBJ_GFX_MUDKIP_DOLL 156 +#define MAP_OBJ_GFX_DUSKULL_DOLL 157 +#define MAP_OBJ_GFX_WYNAUT_DOLL 158 +#define MAP_OBJ_GFX_BALTOY_DOLL 159 +#define MAP_OBJ_GFX_KECLEON_DOLL 160 +#define MAP_OBJ_GFX_AZURILL_DOLL 161 +#define MAP_OBJ_GFX_SKITTY_DOLL 162 +#define MAP_OBJ_GFX_SWABLU_DOLL 163 +#define MAP_OBJ_GFX_GULPIN_DOLL 164 +#define MAP_OBJ_GFX_LOTAD_DOLL 165 +#define MAP_OBJ_GFX_SEEDOT_DOLL 166 +#define MAP_OBJ_GFX_PIKA_CUSHION 167 +#define MAP_OBJ_GFX_ROUND_CUSHION 168 +#define MAP_OBJ_GFX_KISS_CUSHION 169 +#define MAP_OBJ_GFX_ZIGZAG_CUSHION 170 +#define MAP_OBJ_GFX_SPIN_CUSHION 171 +#define MAP_OBJ_GFX_DIAMOND_CUSHION 172 +#define MAP_OBJ_GFX_BALL_CUSHION 173 +#define MAP_OBJ_GFX_GRASS_CUSHION 174 +#define MAP_OBJ_GFX_FIRE_CUSHION 175 +#define MAP_OBJ_GFX_WATER_CUSHION 176 +#define MAP_OBJ_GFX_BIG_SNORLAX_DOLL 177 +#define MAP_OBJ_GFX_BIG_RHYDON_DOLL 178 +#define MAP_OBJ_GFX_BIG_LAPRAS_DOLL 179 +#define MAP_OBJ_GFX_BIG_VENUSAUR_DOLL 180 +#define MAP_OBJ_GFX_BIG_CHARIZARD_DOLL 181 +#define MAP_OBJ_GFX_BIG_BLASTOISE_DOLL 182 +#define MAP_OBJ_GFX_BIG_WAILMER_DOLL 183 +#define MAP_OBJ_GFX_BIG_REGIROCK_DOLL 184 +#define MAP_OBJ_GFX_BIG_REGICE_DOLL 185 +#define MAP_OBJ_GFX_BIG_REGISTEEL_DOLL 186 +#define MAP_OBJ_GFX_LATIAS 187 +#define MAP_OBJ_GFX_LATIOS 188 +#define MAP_OBJ_GFX_BOY_5 189 +#define MAP_OBJ_GFX_CONTEST_JUDGE 190 +#define MAP_OBJ_GFX_BRENDAN_WATERING 191 +#define MAP_OBJ_GFX_MAY_WATERING 192 +#define MAP_OBJ_GFX_BRENDAN_DECORATING 193 +#define MAP_OBJ_GFX_MAY_DECORATING 194 +#define MAP_OBJ_GFX_ARCHIE 195 +#define MAP_OBJ_GFX_MAXIE 196 +#define MAP_OBJ_GFX_KYOGRE_1 197 +#define MAP_OBJ_GFX_GROUDON_1 198 +#define MAP_OBJ_GFX_FOSSIL 199 +#define MAP_OBJ_GFX_REGIROCK 200 +#define MAP_OBJ_GFX_REGICE 201 +#define MAP_OBJ_GFX_REGISTEEL 202 +#define MAP_OBJ_GFX_SKITTY 203 +#define MAP_OBJ_GFX_KECLEON_1 204 +#define MAP_OBJ_GFX_KYOGRE_2 205 +#define MAP_OBJ_GFX_GROUDON_2 206 +#define MAP_OBJ_GFX_RAYQUAZA_2 207 +#define MAP_OBJ_GFX_ZIGZAGOON_2 208 +#define MAP_OBJ_GFX_PIKACHU 209 +#define MAP_OBJ_GFX_AZUMARILL 210 +#define MAP_OBJ_GFX_WINGULL 211 +#define MAP_OBJ_GFX_KECLEON_2 212 +#define MAP_OBJ_GFX_TUBER_M_SWIMMING 213 +#define MAP_OBJ_GFX_AZURILL 214 +#define MAP_OBJ_GFX_MOM 215 +#define MAP_OBJ_GFX_LINK_BRENDAN 216 +#define MAP_OBJ_GFX_LINK_MAY 217 +#define MAP_OBJ_GFX_JUAN 218 +#define MAP_OBJ_GFX_SCOTT 219 +#define MAP_OBJ_GFX_POOCHYENA 220 +#define MAP_OBJ_GFX_KYOGRE_3 221 +#define MAP_OBJ_GFX_GROUDON_3 222 +#define MAP_OBJ_GFX_MYSTERY_GIFT_MAN 223 +#define MAP_OBJ_GFX_TRICK_HOUSE_STATUE 224 +#define MAP_OBJ_GFX_KIRLIA 225 +#define MAP_OBJ_GFX_DUSCLOPS 226 +#define MAP_OBJ_GFX_UNION_ROOM_NURSE 227 +#define MAP_OBJ_GFX_SUDOWOODO 228 +#define MAP_OBJ_GFX_MEW 229 +#define MAP_OBJ_GFX_RED 230 +#define MAP_OBJ_GFX_LEAF 231 +#define MAP_OBJ_GFX_DEOXYS 232 +#define MAP_OBJ_GFX_DEOXYS_TRIANGLE 233 +#define MAP_OBJ_GFX_BRANDON 234 +#define MAP_OBJ_GFX_LINK_RS_BRENDAN 235 +#define MAP_OBJ_GFX_LINK_RS_MAY 236 +#define MAP_OBJ_GFX_LUGIA 237 +#define MAP_OBJ_GFX_HOOH 238 +#define MAP_OBJ_GFX_BARD_2 239 +#define MAP_OBJ_GFX_HIPSTER 240 +#define MAP_OBJ_GFX_TRADER 241 +#define MAP_OBJ_GFX_STORYTELLER 242 +#define MAP_OBJ_GFX_GIDDY 243 +#define MAP_OBJ_GFX_PLACEHOLDER_1 244 +#define MAP_OBJ_GFX_PLACEHOLDER_2 245 + +#define SHADOW_SIZE_S 0 +#define SHADOW_SIZE_M 1 +#define SHADOW_SIZE_L 2 +#define SHADOW_SIZE_XL 3 + +#define F_INANIMATE (1 << 6) +#define F_DISABLE_REFLECTION_PALETTE_LOAD (1 << 7) + +#define TRACKS_NONE 0 +#define TRACKS_FOOT 1 +#define TRACKS_BIKE_TIRE 2 + +#endif // GUARD_CONSTANTS_MAP_OBJECTS_H diff --git a/include/constants/maps.h b/include/constants/maps.h new file mode 100644 index 000000000..737edd7de --- /dev/null +++ b/include/constants/maps.h @@ -0,0 +1,595 @@ +#ifndef GUARD_CONSTANTS_MAPS_H +#define GUARD_CONSTANTS_MAPS_H + +// Map Group 0 +#define MAP_PETALBURG_CITY (0 | (0 << 8)) +#define MAP_SLATEPORT_CITY (1 | (0 << 8)) +#define MAP_MAUVILLE_CITY (2 | (0 << 8)) +#define MAP_RUSTBORO_CITY (3 | (0 << 8)) +#define MAP_FORTREE_CITY (4 | (0 << 8)) +#define MAP_LILYCOVE_CITY (5 | (0 << 8)) +#define MAP_MOSSDEEP_CITY (6 | (0 << 8)) +#define MAP_SOOTOPOLIS_CITY (7 | (0 << 8)) +#define MAP_EVER_GRANDE_CITY (8 | (0 << 8)) +#define MAP_LITTLEROOT_TOWN (9 | (0 << 8)) +#define MAP_OLDALE_TOWN (10 | (0 << 8)) +#define MAP_DEWFORD_TOWN (11 | (0 << 8)) +#define MAP_LAVARIDGE_TOWN (12 | (0 << 8)) +#define MAP_FALLARBOR_TOWN (13 | (0 << 8)) +#define MAP_VERDANTURF_TOWN (14 | (0 << 8)) +#define MAP_PACIFIDLOG_TOWN (15 | (0 << 8)) +#define MAP_ROUTE101 (16 | (0 << 8)) +#define MAP_ROUTE102 (17 | (0 << 8)) +#define MAP_ROUTE103 (18 | (0 << 8)) +#define MAP_ROUTE104 (19 | (0 << 8)) +#define MAP_ROUTE105 (20 | (0 << 8)) +#define MAP_ROUTE106 (21 | (0 << 8)) +#define MAP_ROUTE107 (22 | (0 << 8)) +#define MAP_ROUTE108 (23 | (0 << 8)) +#define MAP_ROUTE109 (24 | (0 << 8)) +#define MAP_ROUTE110 (25 | (0 << 8)) +#define MAP_ROUTE111 (26 | (0 << 8)) +#define MAP_ROUTE112 (27 | (0 << 8)) +#define MAP_ROUTE113 (28 | (0 << 8)) +#define MAP_ROUTE114 (29 | (0 << 8)) +#define MAP_ROUTE115 (30 | (0 << 8)) +#define MAP_ROUTE116 (31 | (0 << 8)) +#define MAP_ROUTE117 (32 | (0 << 8)) +#define MAP_ROUTE118 (33 | (0 << 8)) +#define MAP_ROUTE119 (34 | (0 << 8)) +#define MAP_ROUTE120 (35 | (0 << 8)) +#define MAP_ROUTE121 (36 | (0 << 8)) +#define MAP_ROUTE122 (37 | (0 << 8)) +#define MAP_ROUTE123 (38 | (0 << 8)) +#define MAP_ROUTE124 (39 | (0 << 8)) +#define MAP_ROUTE125 (40 | (0 << 8)) +#define MAP_ROUTE126 (41 | (0 << 8)) +#define MAP_ROUTE127 (42 | (0 << 8)) +#define MAP_ROUTE128 (43 | (0 << 8)) +#define MAP_ROUTE129 (44 | (0 << 8)) +#define MAP_ROUTE130 (45 | (0 << 8)) +#define MAP_ROUTE131 (46 | (0 << 8)) +#define MAP_ROUTE132 (47 | (0 << 8)) +#define MAP_ROUTE133 (48 | (0 << 8)) +#define MAP_ROUTE134 (49 | (0 << 8)) +#define MAP_UNDERWATER1 (50 | (0 << 8)) +#define MAP_UNDERWATER2 (51 | (0 << 8)) +#define MAP_UNDERWATER3 (52 | (0 << 8)) +#define MAP_UNDERWATER4 (53 | (0 << 8)) + +// Map Group 1 +#define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F (0 | (1 << 8)) +#define MAP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F (1 | (1 << 8)) +#define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_1F (2 | (1 << 8)) +#define MAP_LITTLEROOT_TOWN_MAYS_HOUSE_2F (3 | (1 << 8)) +#define MAP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB (4 | (1 << 8)) + +// Map Group 2 +#define MAP_OLDALE_TOWN_HOUSE1 (0 | (2 << 8)) +#define MAP_OLDALE_TOWN_HOUSE2 (1 | (2 << 8)) +#define MAP_OLDALE_TOWN_POKEMON_CENTER_1F (2 | (2 << 8)) +#define MAP_OLDALE_TOWN_POKEMON_CENTER_2F (3 | (2 << 8)) +#define MAP_OLDALE_TOWN_MART (4 | (2 << 8)) + +// Map Group 3 +#define MAP_DEWFORD_TOWN_HOUSE1 (0 | (3 << 8)) +#define MAP_DEWFORD_TOWN_POKEMON_CENTER_1F (1 | (3 << 8)) +#define MAP_DEWFORD_TOWN_POKEMON_CENTER_2F (2 | (3 << 8)) +#define MAP_DEWFORD_TOWN_GYM (3 | (3 << 8)) +#define MAP_DEWFORD_TOWN_HALL (4 | (3 << 8)) +#define MAP_DEWFORD_TOWN_HOUSE2 (5 | (3 << 8)) + +// Map Group 4 +#define MAP_LAVARIDGE_TOWN_HERB_SHOP (0 | (4 << 8)) +#define MAP_LAVARIDGE_TOWN_GYM_1F (1 | (4 << 8)) +#define MAP_LAVARIDGE_TOWN_GYM_B1F (2 | (4 << 8)) +#define MAP_LAVARIDGE_TOWN_HOUSE (3 | (4 << 8)) +#define MAP_LAVARIDGE_TOWN_MART (4 | (4 << 8)) +#define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_1F (5 | (4 << 8)) +#define MAP_LAVARIDGE_TOWN_POKEMON_CENTER_2F (6 | (4 << 8)) + +// Map Group 5 +#define MAP_FALLARBOR_TOWN_MART (0 | (5 << 8)) +#define MAP_FALLARBOR_TOWN_BATTLE_TENT_LOBBY (1 | (5 << 8)) +#define MAP_FALLARBOR_TOWN_BATTLE_TENT_CORRIDOR (2 | (5 << 8)) +#define MAP_FALLARBOR_TOWN_BATTLE_TENT_BATTLE_ROOM (3 | (5 << 8)) +#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_1F (4 | (5 << 8)) +#define MAP_FALLARBOR_TOWN_POKEMON_CENTER_2F (5 | (5 << 8)) +#define MAP_FALLARBOR_TOWN_HOUSE1 (6 | (5 << 8)) +#define MAP_FALLARBOR_TOWN_HOUSE2 (7 | (5 << 8)) + +// Map Group 6 +#define MAP_VERDANTURF_TOWN_BATTLE_TENT_LOBBY (0 | (6 << 8)) +#define MAP_VERDANTURF_TOWN_BATTLE_TENT_CORRIDOR (1 | (6 << 8)) +#define MAP_VERDANTURF_TOWN_BATTLE_TENT_BATTLE_ROOM (2 | (6 << 8)) +#define MAP_VERDANTURF_TOWN_MART (3 | (6 << 8)) +#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_1F (4 | (6 << 8)) +#define MAP_VERDANTURF_TOWN_POKEMON_CENTER_2F (5 | (6 << 8)) +#define MAP_VERDANTURF_TOWN_WANDAS_HOUSE (6 | (6 << 8)) +#define MAP_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE (7 | (6 << 8)) +#define MAP_VERDANTURF_TOWN_HOUSE (8 | (6 << 8)) + +// Map Group 7 +#define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F (0 | (7 << 8)) +#define MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_2F (1 | (7 << 8)) +#define MAP_PACIFIDLOG_TOWN_HOUSE1 (2 | (7 << 8)) +#define MAP_PACIFIDLOG_TOWN_HOUSE2 (3 | (7 << 8)) +#define MAP_PACIFIDLOG_TOWN_HOUSE3 (4 | (7 << 8)) +#define MAP_PACIFIDLOG_TOWN_HOUSE4 (5 | (7 << 8)) +#define MAP_PACIFIDLOG_TOWN_HOUSE5 (6 | (7 << 8)) + +// Map Group 8 +#define MAP_PETALBURG_CITY_WALLYS_HOUSE (0 | (8 << 8)) +#define MAP_PETALBURG_CITY_GYM (1 | (8 << 8)) +#define MAP_PETALBURG_CITY_HOUSE1 (2 | (8 << 8)) +#define MAP_PETALBURG_CITY_HOUSE2 (3 | (8 << 8)) +#define MAP_PETALBURG_CITY_POKEMON_CENTER_1F (4 | (8 << 8)) +#define MAP_PETALBURG_CITY_POKEMON_CENTER_2F (5 | (8 << 8)) +#define MAP_PETALBURG_CITY_MART (6 | (8 << 8)) + +// Map Group 9 +#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_1F (0 | (9 << 8)) +#define MAP_SLATEPORT_CITY_STERNS_SHIPYARD_2F (1 | (9 << 8)) +#define MAP_SLATEPORT_CITY_BATTLE_TENT_LOBBY (2 | (9 << 8)) +#define MAP_SLATEPORT_CITY_BATTLE_TENT_CORRIDOR (3 | (9 << 8)) +#define MAP_SLATEPORT_CITY_BATTLE_TENT_BATTLE_ROOM (4 | (9 << 8)) +#define MAP_SLATEPORT_CITY_HOUSE1 (5 | (9 << 8)) +#define MAP_SLATEPORT_CITY_POKEMON_FAN_CLUB (6 | (9 << 8)) +#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F (7 | (9 << 8)) +#define MAP_SLATEPORT_CITY_OCEANIC_MUSEUM_2F (8 | (9 << 8)) +#define MAP_SLATEPORT_CITY_HARBOR (9 | (9 << 8)) +#define MAP_SLATEPORT_CITY_HOUSE2 (10 | (9 << 8)) +#define MAP_SLATEPORT_CITY_POKEMON_CENTER_1F (11 | (9 << 8)) +#define MAP_SLATEPORT_CITY_POKEMON_CENTER_2F (12 | (9 << 8)) +#define MAP_SLATEPORT_CITY_MART (13 | (9 << 8)) + +// Map Group 10 +#define MAP_MAUVILLE_CITY_GYM (0 | (10 << 8)) +#define MAP_MAUVILLE_CITY_BIKE_SHOP (1 | (10 << 8)) +#define MAP_MAUVILLE_CITY_HOUSE1 (2 | (10 << 8)) +#define MAP_MAUVILLE_CITY_GAME_CORNER (3 | (10 << 8)) +#define MAP_MAUVILLE_CITY_HOUSE2 (4 | (10 << 8)) +#define MAP_MAUVILLE_CITY_POKEMON_CENTER_1F (5 | (10 << 8)) +#define MAP_MAUVILLE_CITY_POKEMON_CENTER_2F (6 | (10 << 8)) +#define MAP_MAUVILLE_CITY_MART (7 | (10 << 8)) + +// Map Group 11 +#define MAP_RUSTBORO_CITY_DEVON_CORP_1F (0 | (11 << 8)) +#define MAP_RUSTBORO_CITY_DEVON_CORP_2F (1 | (11 << 8)) +#define MAP_RUSTBORO_CITY_DEVON_CORP_3F (2 | (11 << 8)) +#define MAP_RUSTBORO_CITY_GYM (3 | (11 << 8)) +#define MAP_RUSTBORO_CITY_POKEMON_SCHOOL (4 | (11 << 8)) +#define MAP_RUSTBORO_CITY_POKEMON_CENTER_1F (5 | (11 << 8)) +#define MAP_RUSTBORO_CITY_POKEMON_CENTER_2F (6 | (11 << 8)) +#define MAP_RUSTBORO_CITY_MART (7 | (11 << 8)) +#define MAP_RUSTBORO_CITY_FLAT1_1F (8 | (11 << 8)) +#define MAP_RUSTBORO_CITY_FLAT1_2F (9 | (11 << 8)) +#define MAP_RUSTBORO_CITY_HOUSE1 (10 | (11 << 8)) +#define MAP_RUSTBORO_CITY_CUTTERS_HOUSE (11 | (11 << 8)) +#define MAP_RUSTBORO_CITY_HOUSE2 (12 | (11 << 8)) +#define MAP_RUSTBORO_CITY_FLAT2_1F (13 | (11 << 8)) +#define MAP_RUSTBORO_CITY_FLAT2_2F (14 | (11 << 8)) +#define MAP_RUSTBORO_CITY_FLAT2_3F (15 | (11 << 8)) +#define MAP_RUSTBORO_CITY_HOUSE3 (16 | (11 << 8)) + +// Map Group 12 +#define MAP_FORTREE_CITY_HOUSE1 (0 | (12 << 8)) +#define MAP_FORTREE_CITY_GYM (1 | (12 << 8)) +#define MAP_FORTREE_CITY_POKEMON_CENTER_1F (2 | (12 << 8)) +#define MAP_FORTREE_CITY_POKEMON_CENTER_2F (3 | (12 << 8)) +#define MAP_FORTREE_CITY_MART (4 | (12 << 8)) +#define MAP_FORTREE_CITY_HOUSE2 (5 | (12 << 8)) +#define MAP_FORTREE_CITY_HOUSE3 (6 | (12 << 8)) +#define MAP_FORTREE_CITY_HOUSE4 (7 | (12 << 8)) +#define MAP_FORTREE_CITY_HOUSE5 (8 | (12 << 8)) +#define MAP_FORTREE_CITY_DECORATION_SHOP (9 | (12 << 8)) + +// Map Group 13 +#define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F (0 | (13 << 8)) +#define MAP_LILYCOVE_CITY_COVE_LILY_MOTEL_2F (1 | (13 << 8)) +#define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F (2 | (13 << 8)) +#define MAP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F (3 | (13 << 8)) +#define MAP_LILYCOVE_CITY_CONTEST_LOBBY (4 | (13 << 8)) +#define MAP_LILYCOVE_CITY_CONTEST_HALL (5 | (13 << 8)) +#define MAP_LILYCOVE_CITY_POKEMON_CENTER_1F (6 | (13 << 8)) +#define MAP_LILYCOVE_CITY_POKEMON_CENTER_2F (7 | (13 << 8)) +#define MAP_LILYCOVE_CITY_UNUSED_MART (8 | (13 << 8)) +#define MAP_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB (9 | (13 << 8)) +#define MAP_LILYCOVE_CITY_HARBOR (10 | (13 << 8)) +#define MAP_LILYCOVE_CITY_MOVE_DELETERS_HOUSE (11 | (13 << 8)) +#define MAP_LILYCOVE_CITY_HOUSE1 (12 | (13 << 8)) +#define MAP_LILYCOVE_CITY_HOUSE2 (13 | (13 << 8)) +#define MAP_LILYCOVE_CITY_HOUSE3 (14 | (13 << 8)) +#define MAP_LILYCOVE_CITY_HOUSE4 (15 | (13 << 8)) +#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_1F (16 | (13 << 8)) +#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_2F (17 | (13 << 8)) +#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_3F (18 | (13 << 8)) +#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_4F (19 | (13 << 8)) +#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_5F (20 | (13 << 8)) +#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP (21 | (13 << 8)) +#define MAP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR (22 | (13 << 8)) + +// Map Group 14 +#define MAP_MOSSDEEP_CITY_GYM (0 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_HOUSE1 (1 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_HOUSE2 (2 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_POKEMON_CENTER_1F (3 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_POKEMON_CENTER_2F (4 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_MART (5 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_HOUSE3 (6 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_STEVENS_HOUSE (7 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_HOUSE4 (8 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_SPACE_CENTER_1F (9 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_SPACE_CENTER_2F (10 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_GAME_CORNER_1F (11 | (14 << 8)) +#define MAP_MOSSDEEP_CITY_GAME_CORNER_B1F (12 | (14 << 8)) + +// Map Group 15 +#define MAP_SOOTOPOLIS_CITY_GYM_1F (0 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_GYM_B1F (1 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F (2 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_2F (3 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_MART (4 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_HOUSE1 (5 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_HOUSE2 (6 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_HOUSE3 (7 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_HOUSE4 (8 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_HOUSE5 (9 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_HOUSE6 (10 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_HOUSE7 (11 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_HOUSE8 (12 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_HOUSE9_1F (13 | (15 << 8)) +#define MAP_SOOTOPOLIS_CITY_HOUSE9_B1F (14 | (15 << 8)) + +// Map Group 16 +#define MAP_EVER_GRANDE_CITY_SIDNEYS_ROOM (0 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_PHOEBES_ROOM (1 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_GLACIAS_ROOM (2 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_DRAKES_ROOM (3 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_CHAMPIONS_ROOM (4 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_CORRIDOR1 (5 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_CORRIDOR2 (6 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_CORRIDOR3 (7 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_CORRIDOR4 (8 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_CORRIDOR5 (9 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F (10 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_HALL_OF_FAME (11 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_1F (12 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_POKEMON_CENTER_2F (13 | (16 << 8)) +#define MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_2F (14 | (16 << 8)) + +// Map Group 17 +#define MAP_ROUTE104_MR_BRINEYS_HOUSE (0 | (17 << 8)) +#define MAP_ROUTE104_PRETTY_PETAL_FLOWER_SHOP (1 | (17 << 8)) + +// Map Group 18 +#define MAP_ROUTE111_WINSTRATE_FAMILYS_HOUSE (0 | (18 << 8)) +#define MAP_ROUTE111_OLD_LADYS_REST_STOP (1 | (18 << 8)) + +// Map Group 19 +#define MAP_ROUTE112_CABLE_CAR_STATION (0 | (19 << 8)) +#define MAP_MT_CHIMNEY_CABLE_CAR_STATION (1 | (19 << 8)) + +// Map Group 20 +#define MAP_ROUTE114_FOSSIL_MANIACS_HOUSE (0 | (20 << 8)) +#define MAP_ROUTE114_FOSSIL_MANIACS_TUNNEL (1 | (20 << 8)) +#define MAP_ROUTE114_LANETTES_HOUSE (2 | (20 << 8)) + +// Map Group 21 +#define MAP_ROUTE116_TUNNELERS_REST_HOUSE (0 | (21 << 8)) + +// Map Group 22 +#define MAP_ROUTE117_POKEMON_DAY_CARE (0 | (22 << 8)) + +// Map Group 23 +#define MAP_ROUTE121_SAFARI_ZONE_ENTRANCE (0 | (23 << 8)) + +// Map Group 24 +#define MAP_METEOR_FALLS_1F_1R (0 | (24 << 8)) +#define MAP_METEOR_FALLS_1F_2R (1 | (24 << 8)) +#define MAP_METEOR_FALLS_B1F_1R (2 | (24 << 8)) +#define MAP_METEOR_FALLS_B1F_2R (3 | (24 << 8)) +#define MAP_RUSTURF_TUNNEL (4 | (24 << 8)) +#define MAP_UNDERWATER_SOOTOPOLIS_CITY (5 | (24 << 8)) +#define MAP_DESERT_RUINS (6 | (24 << 8)) +#define MAP_GRANITE_CAVE_1F (7 | (24 << 8)) +#define MAP_GRANITE_CAVE_B1F (8 | (24 << 8)) +#define MAP_GRANITE_CAVE_B2F (9 | (24 << 8)) +#define MAP_GRANITE_CAVE_STEVENS_ROOM (10 | (24 << 8)) +#define MAP_PETALBURG_WOODS (11 | (24 << 8)) +#define MAP_MT_CHIMNEY (12 | (24 << 8)) +#define MAP_JAGGED_PASS (13 | (24 << 8)) +#define MAP_FIERY_PATH (14 | (24 << 8)) +#define MAP_MT_PYRE_1F (15 | (24 << 8)) +#define MAP_MT_PYRE_2F (16 | (24 << 8)) +#define MAP_MT_PYRE_3F (17 | (24 << 8)) +#define MAP_MT_PYRE_4F (18 | (24 << 8)) +#define MAP_MT_PYRE_5F (19 | (24 << 8)) +#define MAP_MT_PYRE_6F (20 | (24 << 8)) +#define MAP_MT_PYRE_EXTERIOR (21 | (24 << 8)) +#define MAP_MT_PYRE_SUMMIT (22 | (24 << 8)) +#define MAP_AQUA_HIDEOUT_1F (23 | (24 << 8)) +#define MAP_AQUA_HIDEOUT_B1F (24 | (24 << 8)) +#define MAP_AQUA_HIDEOUT_B2F (25 | (24 << 8)) +#define MAP_UNDERWATER_SEAFLOOR_CAVERN (26 | (24 << 8)) +#define MAP_SEAFLOOR_CAVERN_ENTRANCE (27 | (24 << 8)) +#define MAP_SEAFLOOR_CAVERN_ROOM1 (28 | (24 << 8)) +#define MAP_SEAFLOOR_CAVERN_ROOM2 (29 | (24 << 8)) +#define MAP_SEAFLOOR_CAVERN_ROOM3 (30 | (24 << 8)) +#define MAP_SEAFLOOR_CAVERN_ROOM4 (31 | (24 << 8)) +#define MAP_SEAFLOOR_CAVERN_ROOM5 (32 | (24 << 8)) +#define MAP_SEAFLOOR_CAVERN_ROOM6 (33 | (24 << 8)) +#define MAP_SEAFLOOR_CAVERN_ROOM7 (34 | (24 << 8)) +#define MAP_SEAFLOOR_CAVERN_ROOM8 (35 | (24 << 8)) +#define MAP_SEAFLOOR_CAVERN_ROOM9 (36 | (24 << 8)) +#define MAP_CAVE_OF_ORIGIN_ENTRANCE (37 | (24 << 8)) +#define MAP_CAVE_OF_ORIGIN_1F (38 | (24 << 8)) +#define MAP_CAVE_OF_ORIGIN_UNUSED_RS_B1F (39 | (24 << 8)) // +#define MAP_CAVE_OF_ORIGIN_UNUSED_RS_B2F (40 | (24 << 8)) // Ruby/Sapphire leftovers +#define MAP_CAVE_OF_ORIGIN_UNUSED_RS_B3F (41 | (24 << 8)) // +#define MAP_CAVE_OF_ORIGIN_B1F (42 | (24 << 8)) +#define MAP_VICTORY_ROAD_1F (43 | (24 << 8)) +#define MAP_VICTORY_ROAD_B1F (44 | (24 << 8)) +#define MAP_VICTORY_ROAD_B2F (45 | (24 << 8)) +#define MAP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM (46 | (24 << 8)) +#define MAP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM (47 | (24 << 8)) +#define MAP_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM (48 | (24 << 8)) +#define MAP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM (49 | (24 << 8)) +#define MAP_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM (50 | (24 << 8)) +#define MAP_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM (51 | (24 << 8)) +#define MAP_NEW_MAUVILLE_ENTRANCE (52 | (24 << 8)) +#define MAP_NEW_MAUVILLE_INSIDE (53 | (24 << 8)) +#define MAP_ABANDONED_SHIP_DECK (54 | (24 << 8)) +#define MAP_ABANDONED_SHIP_CORRIDORS_1F (55 | (24 << 8)) +#define MAP_ABANDONED_SHIP_ROOMS_1F (56 | (24 << 8)) +#define MAP_ABANDONED_SHIP_CORRIDORS_B1F (57 | (24 << 8)) +#define MAP_ABANDONED_SHIP_ROOMS_B1F (58 | (24 << 8)) +#define MAP_ABANDONED_SHIP_ROOMS2_B1F (59 | (24 << 8)) +#define MAP_ABANDONED_SHIP_UNDERWATER1 (60 | (24 << 8)) +#define MAP_ABANDONED_SHIP_ROOM_B1F (61 | (24 << 8)) +#define MAP_ABANDONED_SHIP_ROOMS2_1F (62 | (24 << 8)) +#define MAP_ABANDONED_SHIP_CAPTAINS_OFFICE (63 | (24 << 8)) +#define MAP_ABANDONED_SHIP_UNDERWATER2 (64 | (24 << 8)) +#define MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS (65 | (24 << 8)) +#define MAP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS (66 | (24 << 8)) +#define MAP_ISLAND_CAVE (67 | (24 << 8)) +#define MAP_ANCIENT_TOMB (68 | (24 << 8)) +#define MAP_UNDERWATER_ROUTE134 (69 | (24 << 8)) +#define MAP_UNDERWATER_SEALED_CHAMBER (70 | (24 << 8)) +#define MAP_SEALED_CHAMBER_OUTER_ROOM (71 | (24 << 8)) +#define MAP_SEALED_CHAMBER_INNER_ROOM (72 | (24 << 8)) +#define MAP_SCORCHED_SLAB (73 | (24 << 8)) +#define MAP_UNUSED_RUBY_MAGMA_HIDEOUT_1F (74 | (24 << 8)) // +#define MAP_UNUSED_RUBY_MAGMA_HIDEOUT_B1F (75 | (24 << 8)) // Ruby/Sapphire leftovers +#define MAP_UNUSED_RUBY_MAGMA_HIDEOUT_B2F (76 | (24 << 8)) // +#define MAP_SKY_PILLAR_ENTRANCE (77 | (24 << 8)) +#define MAP_SKY_PILLAR_OUTSIDE (78 | (24 << 8)) +#define MAP_SKY_PILLAR_1F (79 | (24 << 8)) +#define MAP_SKY_PILLAR_2F (80 | (24 << 8)) +#define MAP_SKY_PILLAR_3F (81 | (24 << 8)) +#define MAP_SKY_PILLAR_4F (82 | (24 << 8)) +#define MAP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM (83 | (24 << 8)) +#define MAP_SKY_PILLAR_5F (84 | (24 << 8)) +#define MAP_SKY_PILLAR_TOP (85 | (24 << 8)) +#define MAP_MAGMA_HIDEOUT_1F (86 | (24 << 8)) +#define MAP_MAGMA_HIDEOUT_2F_1R (87 | (24 << 8)) +#define MAP_MAGMA_HIDEOUT_2F_2R (88 | (24 << 8)) +#define MAP_MAGMA_HIDEOUT_3F_1R (89 | (24 << 8)) +#define MAP_MAGMA_HIDEOUT_3F_2R (90 | (24 << 8)) +#define MAP_MAGMA_HIDEOUT_4F (91 | (24 << 8)) +#define MAP_MAGMA_HIDEOUT_3F_3R (92 | (24 << 8)) +#define MAP_MAGMA_HIDEOUT_2F_3R (93 | (24 << 8)) +#define MAP_MIRAGE_TOWER_1F (94 | (24 << 8)) +#define MAP_MIRAGE_TOWER_2F (95 | (24 << 8)) +#define MAP_MIRAGE_TOWER_3F (96 | (24 << 8)) +#define MAP_MIRAGE_TOWER_4F (97 | (24 << 8)) +#define MAP_DESERT_UNDERPASS (98 | (24 << 8)) +#define MAP_ARTISAN_CAVE_B1F (99 | (24 << 8)) +#define MAP_ARTISAN_CAVE_1F (100 | (24 << 8)) +#define MAP_UNDERWATER_MARINE_CAVE (101 | (24 << 8)) +#define MAP_MARINE_CAVE_ENTRANCE (102 | (24 << 8)) +#define MAP_MARINE_CAVE_END (103 | (24 << 8)) +#define MAP_TERRA_CAVE_ENTRANCE (104 | (24 << 8)) +#define MAP_TERRA_CAVE_END (105 | (24 << 8)) +#define MAP_ALTERING_CAVE (106 | (24 << 8)) +#define MAP_METEOR_FALLS_STEVENS_CAVE (107 | (24 << 8)) + +// Map Group 25 +#define MAP_SECRET_BASE_RED_CAVE1 (0 | (25 << 8)) +#define MAP_SECRET_BASE_BROWN_CAVE1 (1 | (25 << 8)) +#define MAP_SECRET_BASE_BLUE_CAVE1 (2 | (25 << 8)) +#define MAP_SECRET_BASE_YELLOW_CAVE1 (3 | (25 << 8)) +#define MAP_SECRET_BASE_TREE1 (4 | (25 << 8)) +#define MAP_SECRET_BASE_SHRUB1 (5 | (25 << 8)) +#define MAP_SECRET_BASE_RED_CAVE2 (6 | (25 << 8)) +#define MAP_SECRET_BASE_BROWN_CAVE2 (7 | (25 << 8)) +#define MAP_SECRET_BASE_BLUE_CAVE2 (8 | (25 << 8)) +#define MAP_SECRET_BASE_YELLOW_CAVE2 (9 | (25 << 8)) +#define MAP_SECRET_BASE_TREE2 (10 | (25 << 8)) +#define MAP_SECRET_BASE_SHRUB2 (11 | (25 << 8)) +#define MAP_SECRET_BASE_RED_CAVE3 (12 | (25 << 8)) +#define MAP_SECRET_BASE_BROWN_CAVE3 (13 | (25 << 8)) +#define MAP_SECRET_BASE_BLUE_CAVE3 (14 | (25 << 8)) +#define MAP_SECRET_BASE_YELLOW_CAVE3 (15 | (25 << 8)) +#define MAP_SECRET_BASE_TREE3 (16 | (25 << 8)) +#define MAP_SECRET_BASE_SHRUB3 (17 | (25 << 8)) +#define MAP_SECRET_BASE_RED_CAVE4 (18 | (25 << 8)) +#define MAP_SECRET_BASE_BROWN_CAVE4 (19 | (25 << 8)) +#define MAP_SECRET_BASE_BLUE_CAVE4 (20 | (25 << 8)) +#define MAP_SECRET_BASE_YELLOW_CAVE4 (21 | (25 << 8)) +#define MAP_SECRET_BASE_TREE4 (22 | (25 << 8)) +#define MAP_SECRET_BASE_SHRUB4 (23 | (25 << 8)) +#define MAP_SINGLE_BATTLE_COLOSSEUM (24 | (25 << 8)) +#define MAP_TRADE_CENTER (25 | (25 << 8)) +#define MAP_RECORD_CORNER (26 | (25 << 8)) +#define MAP_DOUBLE_BATTLE_COLOSSEUM (27 | (25 << 8)) +#define MAP_LINK_CONTEST_ROOM1 (28 | (25 << 8)) +#define MAP_UNKNOWN_MAP_25_29 (29 | (25 << 8)) +#define MAP_UNKNOWN_MAP_25_30 (30 | (25 << 8)) +#define MAP_UNKNOWN_MAP_25_31 (31 | (25 << 8)) +#define MAP_UNKNOWN_MAP_25_32 (32 | (25 << 8)) +#define MAP_UNKNOWN_MAP_25_33 (33 | (25 << 8)) +#define MAP_UNKNOWN_MAP_25_34 (34 | (25 << 8)) +#define MAP_LINK_CONTEST_ROOM2 (35 | (25 << 8)) +#define MAP_LINK_CONTEST_ROOM3 (36 | (25 << 8)) +#define MAP_LINK_CONTEST_ROOM4 (37 | (25 << 8)) +#define MAP_LINK_CONTEST_ROOM5 (38 | (25 << 8)) +#define MAP_LINK_CONTEST_ROOM6 (39 | (25 << 8)) +#define MAP_INSIDE_OF_TRUCK (40 | (25 << 8)) +#define MAP_SS_TIDAL_CORRIDOR (41 | (25 << 8)) +#define MAP_SS_TIDAL_LOWER_DECK (42 | (25 << 8)) +#define MAP_SS_TIDAL_ROOMS (43 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_01 (44 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_02 (45 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_03 (46 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_04 (47 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_05 (48 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_06 (49 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_07 (50 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_08 (51 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_09 (52 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_10 (53 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_11 (54 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_12 (55 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_13 (56 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_14 (57 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_15 (58 | (25 << 8)) +#define MAP_BATTLE_PYRAMID_SQUARE_16 (59 | (25 << 8)) +#define MAP_UNION_ROOM (60 | (25 << 8)) + +// Map Group 26 +#define MAP_SAFARI_ZONE_NORTHWEST (0 | (26 << 8)) +#define MAP_SAFARI_ZONE_NORTHEAST (1 | (26 << 8)) +#define MAP_SAFARI_ZONE_SOUTHWEST (2 | (26 << 8)) +#define MAP_SAFARI_ZONE_SOUTHEAST (3 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_OUTSIDE_WEST (4 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY (5 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_ELEVATOR (6 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR (7 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM (8 | (26 << 8)) +#define MAP_SOUTHERN_ISLAND_EXTERIOR (9 | (26 << 8)) +#define MAP_SOUTHERN_ISLAND_INTERIOR (10 | (26 << 8)) +#define MAP_SAFARI_ZONE_REST_HOUSE (11 | (26 << 8)) +#define MAP_SAFARI_ZONE_EM_1 (12 | (26 << 8)) +#define MAP_SAFARI_ZONE_EM_2 (13 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_OUTSIDE_EAST (14 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM (15 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR_2 (16 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_TOWER_BATTLE_ROOM_2 (17 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_DOME_LOBBY (18 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_DOME_CORRIDOR (19 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_DOME_PRE_BATTLE_ROOM (20 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_DOME_BATTLE_ROOM (21 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_LOBBY (22 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_CORRIDOR (23 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PALACE_BATTLE_ROOM (24 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_LOBBY (25 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE (26 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PYRAMID_TOP (27 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY (28 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_CORRIDOR (29 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_ARENA_BATTLE_ROOM (30 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_LOBBY (31 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_PRE_BATTLE_ROOM (32 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_FACTORY_BATTLE_ROOM (33 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_LOBBY (34 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_CORRIDOR (35 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_THREE_PATH_ROOM (36 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM_1 (37 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM_2 (38 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM_3 (39 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_RANKING_HALL (40 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_LOUNGE_1 (41 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_BATTLE_POINT_EXCHANGE_SERVICE_CORNER (42 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_LOUNGE_2 (43 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_LOUNGE_3 (44 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_LOUNGE_4 (45 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_SCOTTS_HOUSE (46 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_LOUNGE_5 (47 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_LOUNGE_6 (48 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_LOUNGE_7 (49 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_RECEPTION_GATE (50 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_LOUNGE_8 (51 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_LOUNGE_9 (52 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_1F (53 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_POKEMON_CENTER_2F (54 | (26 << 8)) +#define MAP_BATTLE_FRONTIER_MART (55 | (26 << 8)) +#define MAP_FARAWAY_ISLAND_ENTRANCE (56 | (26 << 8)) +#define MAP_FARAWAY_ISLAND_INTERIOR (57 | (26 << 8)) +#define MAP_BIRTH_ISLAND_EXTERIOR (58 | (26 << 8)) +#define MAP_BIRTH_ISLAND_HARBOR (59 | (26 << 8)) +#define MAP_TRAINER_HILL_ENTRANCE (60 | (26 << 8)) +#define MAP_TRAINER_HILL_1F (61 | (26 << 8)) +#define MAP_TRAINER_HILL_2F (62 | (26 << 8)) +#define MAP_TRAINER_HILL_3F (63 | (26 << 8)) +#define MAP_TRAINER_HILL_4F (64 | (26 << 8)) +#define MAP_TRAINER_HILL_ROOF (65 | (26 << 8)) +#define MAP_NAVEL_ROCK_EXTERIOR (66 | (26 << 8)) +#define MAP_NAVEL_ROCK_HARBOR (67 | (26 << 8)) +#define MAP_NAVEL_ROCK_ENTRANCE (68 | (26 << 8)) +#define MAP_NAVEL_ROCK_B1F (69 | (26 << 8)) +#define MAP_NAVEL_ROCK_FORK (70 | (26 << 8)) +#define MAP_NAVEL_ROCK_UP_1 (71 | (26 << 8)) +#define MAP_NAVEL_ROCK_UP_2 (72 | (26 << 8)) +#define MAP_NAVEL_ROCK_UP_3 (73 | (26 << 8)) +#define MAP_NAVEL_ROCK_UP_4 (74 | (26 << 8)) +#define MAP_NAVEL_ROCK_TOP (75 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN_01 (76 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN_02 (77 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN_03 (78 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN_04 (79 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN_05 (80 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN_06 (81 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN_07 (82 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN_08 (83 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN_09 (84 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN_10 (85 | (26 << 8)) +#define MAP_NAVEL_ROCK_DOWN_11 (86 | (26 << 8)) +#define MAP_NAVEL_ROCK_BOTTOM (87 | (26 << 8)) +#define MAP_TRAINER_HILL_ELEVATOR (88 | (26 << 8)) + +// Map Group 27 +#define MAP_ROUTE104_PROTOTYPE (0 | (27 << 8)) +#define MAP_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP (1 | (27 << 8)) + +// Map Group 28 +#define MAP_ROUTE109_SEASHORE_HOUSE (0 | (28 << 8)) + +// Map Group 29 +#define MAP_ROUTE110_TRICK_HOUSE_ENTRANCE (0 | (29 << 8)) +#define MAP_ROUTE110_TRICK_HOUSE_END (1 | (29 << 8)) +#define MAP_ROUTE110_TRICK_HOUSE_CORRIDOR (2 | (29 << 8)) +#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE1 (3 | (29 << 8)) +#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE2 (4 | (29 << 8)) +#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE3 (5 | (29 << 8)) +#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE4 (6 | (29 << 8)) +#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE5 (7 | (29 << 8)) +#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE6 (8 | (29 << 8)) +#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE7 (9 | (29 << 8)) +#define MAP_ROUTE110_TRICK_HOUSE_PUZZLE8 (10 | (29 << 8)) +#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE (11 | (29 << 8)) +#define MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE (12 | (29 << 8)) + +// Map Group 30 +#define MAP_ROUTE113_GLASS_WORKSHOP (0 | (30 << 8)) + +// Map Group 31 +#define MAP_ROUTE123_BERRY_MASTERS_HOUSE (0 | (31 << 8)) + +// Map Group 32 +#define MAP_ROUTE119_WEATHER_INSTITUTE_1F (0 | (32 << 8)) +#define MAP_ROUTE119_WEATHER_INSTITUTE_2F (1 | (32 << 8)) +#define MAP_ROUTE119_HOUSE (2 | (32 << 8)) + +// Map Group 33 +#define MAP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE (0 | (33 << 8)) + + +#define MAP_NONE (0x7F | (0x7F << 8)) +#define MAP_UNDEFINED (0xFF | (0xFF << 8)) + + +#define MAP_GROUP(map) (MAP_##map >> 8) +#define MAP_NUM(map) (MAP_##map & 0xFF) + +#endif // GUARD_CONSTANTS_MAPS_H diff --git a/include/constants/mauville_man.h b/include/constants/mauville_man.h new file mode 100644 index 000000000..b00e3a291 --- /dev/null +++ b/include/constants/mauville_man.h @@ -0,0 +1,10 @@ +#ifndef GUARD_CONSTANTS_MAUVILLE_MAN_H +#define GUARD_CONSTANTS_MAUVILLE_MAN_H + +#define MAUVILLE_MAN_BARD 0 +#define MAUVILLE_MAN_HIPSTER 1 +#define MAUVILLE_MAN_TRADER 2 +#define MAUVILLE_MAN_STORYTELLER 3 +#define MAUVILLE_MAN_GIDDY 4 + +#endif // GUARD_CONSTANTS_MAUVILLE_MAN_H diff --git a/include/constants/moves.h b/include/constants/moves.h new file mode 100644 index 000000000..f3a3acb90 --- /dev/null +++ b/include/constants/moves.h @@ -0,0 +1,362 @@ +#ifndef GUARD_CONSTANTS_MOVES_H +#define GUARD_CONSTANTS_MOVES_H + +#define MOVE_NONE 0 +#define MOVE_POUND 1 +#define MOVE_KARATE_CHOP 2 +#define MOVE_DOUBLE_SLAP 3 +#define MOVE_COMET_PUNCH 4 +#define MOVE_MEGA_PUNCH 5 +#define MOVE_PAY_DAY 6 +#define MOVE_FIRE_PUNCH 7 +#define MOVE_ICE_PUNCH 8 +#define MOVE_THUNDER_PUNCH 9 +#define MOVE_SCRATCH 10 +#define MOVE_VICE_GRIP 11 +#define MOVE_GUILLOTINE 12 +#define MOVE_RAZOR_WIND 13 +#define MOVE_SWORDS_DANCE 14 +#define MOVE_CUT 15 +#define MOVE_GUST 16 +#define MOVE_WING_ATTACK 17 +#define MOVE_WHIRLWIND 18 +#define MOVE_FLY 19 +#define MOVE_BIND 20 +#define MOVE_SLAM 21 +#define MOVE_VINE_WHIP 22 +#define MOVE_STOMP 23 +#define MOVE_DOUBLE_KICK 24 +#define MOVE_MEGA_KICK 25 +#define MOVE_JUMP_KICK 26 +#define MOVE_ROLLING_KICK 27 +#define MOVE_SAND_ATTACK 28 +#define MOVE_HEADBUTT 29 +#define MOVE_HORN_ATTACK 30 +#define MOVE_FURY_ATTACK 31 +#define MOVE_HORN_DRILL 32 +#define MOVE_TACKLE 33 +#define MOVE_BODY_SLAM 34 +#define MOVE_WRAP 35 +#define MOVE_TAKE_DOWN 36 +#define MOVE_THRASH 37 +#define MOVE_DOUBLE_EDGE 38 +#define MOVE_TAIL_WHIP 39 +#define MOVE_POISON_STING 40 +#define MOVE_TWINEEDLE 41 +#define MOVE_PIN_MISSILE 42 +#define MOVE_LEER 43 +#define MOVE_BITE 44 +#define MOVE_GROWL 45 +#define MOVE_ROAR 46 +#define MOVE_SING 47 +#define MOVE_SUPERSONIC 48 +#define MOVE_SONIC_BOOM 49 +#define MOVE_DISABLE 50 +#define MOVE_ACID 51 +#define MOVE_EMBER 52 +#define MOVE_FLAMETHROWER 53 +#define MOVE_MIST 54 +#define MOVE_WATER_GUN 55 +#define MOVE_HYDRO_PUMP 56 +#define MOVE_SURF 57 +#define MOVE_ICE_BEAM 58 +#define MOVE_BLIZZARD 59 +#define MOVE_PSYBEAM 60 +#define MOVE_BUBBLE_BEAM 61 +#define MOVE_AURORA_BEAM 62 +#define MOVE_HYPER_BEAM 63 +#define MOVE_PECK 64 +#define MOVE_DRILL_PECK 65 +#define MOVE_SUBMISSION 66 +#define MOVE_LOW_KICK 67 +#define MOVE_COUNTER 68 +#define MOVE_SEISMIC_TOSS 69 +#define MOVE_STRENGTH 70 +#define MOVE_ABSORB 71 +#define MOVE_MEGA_DRAIN 72 +#define MOVE_LEECH_SEED 73 +#define MOVE_GROWTH 74 +#define MOVE_RAZOR_LEAF 75 +#define MOVE_SOLAR_BEAM 76 +#define MOVE_POISON_POWDER 77 +#define MOVE_STUN_SPORE 78 +#define MOVE_SLEEP_POWDER 79 +#define MOVE_PETAL_DANCE 80 +#define MOVE_STRING_SHOT 81 +#define MOVE_DRAGON_RAGE 82 +#define MOVE_FIRE_SPIN 83 +#define MOVE_THUNDER_SHOCK 84 +#define MOVE_THUNDERBOLT 85 +#define MOVE_THUNDER_WAVE 86 +#define MOVE_THUNDER 87 +#define MOVE_ROCK_THROW 88 +#define MOVE_EARTHQUAKE 89 +#define MOVE_FISSURE 90 +#define MOVE_DIG 91 +#define MOVE_TOXIC 92 +#define MOVE_CONFUSION 93 +#define MOVE_PSYCHIC 94 +#define MOVE_HYPNOSIS 95 +#define MOVE_MEDITATE 96 +#define MOVE_AGILITY 97 +#define MOVE_QUICK_ATTACK 98 +#define MOVE_RAGE 99 +#define MOVE_TELEPORT 100 +#define MOVE_NIGHT_SHADE 101 +#define MOVE_MIMIC 102 +#define MOVE_SCREECH 103 +#define MOVE_DOUBLE_TEAM 104 +#define MOVE_RECOVER 105 +#define MOVE_HARDEN 106 +#define MOVE_MINIMIZE 107 +#define MOVE_SMOKESCREEN 108 +#define MOVE_CONFUSE_RAY 109 +#define MOVE_WITHDRAW 110 +#define MOVE_DEFENSE_CURL 111 +#define MOVE_BARRIER 112 +#define MOVE_LIGHT_SCREEN 113 +#define MOVE_HAZE 114 +#define MOVE_REFLECT 115 +#define MOVE_FOCUS_ENERGY 116 +#define MOVE_BIDE 117 +#define MOVE_METRONOME 118 +#define MOVE_MIRROR_MOVE 119 +#define MOVE_SELF_DESTRUCT 120 +#define MOVE_EGG_BOMB 121 +#define MOVE_LICK 122 +#define MOVE_SMOG 123 +#define MOVE_SLUDGE 124 +#define MOVE_BONE_CLUB 125 +#define MOVE_FIRE_BLAST 126 +#define MOVE_WATERFALL 127 +#define MOVE_CLAMP 128 +#define MOVE_SWIFT 129 +#define MOVE_SKULL_BASH 130 +#define MOVE_SPIKE_CANNON 131 +#define MOVE_CONSTRICT 132 +#define MOVE_AMNESIA 133 +#define MOVE_KINESIS 134 +#define MOVE_SOFT_BOILED 135 +#define MOVE_HI_JUMP_KICK 136 +#define MOVE_GLARE 137 +#define MOVE_DREAM_EATER 138 +#define MOVE_POISON_GAS 139 +#define MOVE_BARRAGE 140 +#define MOVE_LEECH_LIFE 141 +#define MOVE_LOVELY_KISS 142 +#define MOVE_SKY_ATTACK 143 +#define MOVE_TRANSFORM 144 +#define MOVE_BUBBLE 145 +#define MOVE_DIZZY_PUNCH 146 +#define MOVE_SPORE 147 +#define MOVE_FLASH 148 +#define MOVE_PSYWAVE 149 +#define MOVE_SPLASH 150 +#define MOVE_ACID_ARMOR 151 +#define MOVE_CRABHAMMER 152 +#define MOVE_EXPLOSION 153 +#define MOVE_FURY_SWIPES 154 +#define MOVE_BONEMERANG 155 +#define MOVE_REST 156 +#define MOVE_ROCK_SLIDE 157 +#define MOVE_HYPER_FANG 158 +#define MOVE_SHARPEN 159 +#define MOVE_CONVERSION 160 +#define MOVE_TRI_ATTACK 161 +#define MOVE_SUPER_FANG 162 +#define MOVE_SLASH 163 +#define MOVE_SUBSTITUTE 164 +#define MOVE_STRUGGLE 165 +#define MOVE_SKETCH 166 +#define MOVE_TRIPLE_KICK 167 +#define MOVE_THIEF 168 +#define MOVE_SPIDER_WEB 169 +#define MOVE_MIND_READER 170 +#define MOVE_NIGHTMARE 171 +#define MOVE_FLAME_WHEEL 172 +#define MOVE_SNORE 173 +#define MOVE_CURSE 174 +#define MOVE_FLAIL 175 +#define MOVE_CONVERSION_2 176 +#define MOVE_AEROBLAST 177 +#define MOVE_COTTON_SPORE 178 +#define MOVE_REVERSAL 179 +#define MOVE_SPITE 180 +#define MOVE_POWDER_SNOW 181 +#define MOVE_PROTECT 182 +#define MOVE_MACH_PUNCH 183 +#define MOVE_SCARY_FACE 184 +#define MOVE_FAINT_ATTACK 185 +#define MOVE_SWEET_KISS 186 +#define MOVE_BELLY_DRUM 187 +#define MOVE_SLUDGE_BOMB 188 +#define MOVE_MUD_SLAP 189 +#define MOVE_OCTAZOOKA 190 +#define MOVE_SPIKES 191 +#define MOVE_ZAP_CANNON 192 +#define MOVE_FORESIGHT 193 +#define MOVE_DESTINY_BOND 194 +#define MOVE_PERISH_SONG 195 +#define MOVE_ICY_WIND 196 +#define MOVE_DETECT 197 +#define MOVE_BONE_RUSH 198 +#define MOVE_LOCK_ON 199 +#define MOVE_OUTRAGE 200 +#define MOVE_SANDSTORM 201 +#define MOVE_GIGA_DRAIN 202 +#define MOVE_ENDURE 203 +#define MOVE_CHARM 204 +#define MOVE_ROLLOUT 205 +#define MOVE_FALSE_SWIPE 206 +#define MOVE_SWAGGER 207 +#define MOVE_MILK_DRINK 208 +#define MOVE_SPARK 209 +#define MOVE_FURY_CUTTER 210 +#define MOVE_STEEL_WING 211 +#define MOVE_MEAN_LOOK 212 +#define MOVE_ATTRACT 213 +#define MOVE_SLEEP_TALK 214 +#define MOVE_HEAL_BELL 215 +#define MOVE_RETURN 216 +#define MOVE_PRESENT 217 +#define MOVE_FRUSTRATION 218 +#define MOVE_SAFEGUARD 219 +#define MOVE_PAIN_SPLIT 220 +#define MOVE_SACRED_FIRE 221 +#define MOVE_MAGNITUDE 222 +#define MOVE_DYNAMIC_PUNCH 223 +#define MOVE_MEGAHORN 224 +#define MOVE_DRAGON_BREATH 225 +#define MOVE_BATON_PASS 226 +#define MOVE_ENCORE 227 +#define MOVE_PURSUIT 228 +#define MOVE_RAPID_SPIN 229 +#define MOVE_SWEET_SCENT 230 +#define MOVE_IRON_TAIL 231 +#define MOVE_METAL_CLAW 232 +#define MOVE_VITAL_THROW 233 +#define MOVE_MORNING_SUN 234 +#define MOVE_SYNTHESIS 235 +#define MOVE_MOONLIGHT 236 +#define MOVE_HIDDEN_POWER 237 +#define MOVE_CROSS_CHOP 238 +#define MOVE_TWISTER 239 +#define MOVE_RAIN_DANCE 240 +#define MOVE_SUNNY_DAY 241 +#define MOVE_CRUNCH 242 +#define MOVE_MIRROR_COAT 243 +#define MOVE_PSYCH_UP 244 +#define MOVE_EXTREME_SPEED 245 +#define MOVE_ANCIENT_POWER 246 +#define MOVE_SHADOW_BALL 247 +#define MOVE_FUTURE_SIGHT 248 +#define MOVE_ROCK_SMASH 249 +#define MOVE_WHIRLPOOL 250 +#define MOVE_BEAT_UP 251 +#define MOVE_FAKE_OUT 252 +#define MOVE_UPROAR 253 +#define MOVE_STOCKPILE 254 +#define MOVE_SPIT_UP 255 +#define MOVE_SWALLOW 256 +#define MOVE_HEAT_WAVE 257 +#define MOVE_HAIL 258 +#define MOVE_TORMENT 259 +#define MOVE_FLATTER 260 +#define MOVE_WILL_O_WISP 261 +#define MOVE_MEMENTO 262 +#define MOVE_FACADE 263 +#define MOVE_FOCUS_PUNCH 264 +#define MOVE_SMELLING_SALT 265 +#define MOVE_FOLLOW_ME 266 +#define MOVE_NATURE_POWER 267 +#define MOVE_CHARGE 268 +#define MOVE_TAUNT 269 +#define MOVE_HELPING_HAND 270 +#define MOVE_TRICK 271 +#define MOVE_ROLE_PLAY 272 +#define MOVE_WISH 273 +#define MOVE_ASSIST 274 +#define MOVE_INGRAIN 275 +#define MOVE_SUPERPOWER 276 +#define MOVE_MAGIC_COAT 277 +#define MOVE_RECYCLE 278 +#define MOVE_REVENGE 279 +#define MOVE_BRICK_BREAK 280 +#define MOVE_YAWN 281 +#define MOVE_KNOCK_OFF 282 +#define MOVE_ENDEAVOR 283 +#define MOVE_ERUPTION 284 +#define MOVE_SKILL_SWAP 285 +#define MOVE_IMPRISON 286 +#define MOVE_REFRESH 287 +#define MOVE_GRUDGE 288 +#define MOVE_SNATCH 289 +#define MOVE_SECRET_POWER 290 +#define MOVE_DIVE 291 +#define MOVE_ARM_THRUST 292 +#define MOVE_CAMOUFLAGE 293 +#define MOVE_TAIL_GLOW 294 +#define MOVE_LUSTER_PURGE 295 +#define MOVE_MIST_BALL 296 +#define MOVE_FEATHER_DANCE 297 +#define MOVE_TEETER_DANCE 298 +#define MOVE_BLAZE_KICK 299 +#define MOVE_MUD_SPORT 300 +#define MOVE_ICE_BALL 301 +#define MOVE_NEEDLE_ARM 302 +#define MOVE_SLACK_OFF 303 +#define MOVE_HYPER_VOICE 304 +#define MOVE_POISON_FANG 305 +#define MOVE_CRUSH_CLAW 306 +#define MOVE_BLAST_BURN 307 +#define MOVE_HYDRO_CANNON 308 +#define MOVE_METEOR_MASH 309 +#define MOVE_ASTONISH 310 +#define MOVE_WEATHER_BALL 311 +#define MOVE_AROMATHERAPY 312 +#define MOVE_FAKE_TEARS 313 +#define MOVE_AIR_CUTTER 314 +#define MOVE_OVERHEAT 315 +#define MOVE_ODOR_SLEUTH 316 +#define MOVE_ROCK_TOMB 317 +#define MOVE_SILVER_WIND 318 +#define MOVE_METAL_SOUND 319 +#define MOVE_GRASS_WHISTLE 320 +#define MOVE_TICKLE 321 +#define MOVE_COSMIC_POWER 322 +#define MOVE_WATER_SPOUT 323 +#define MOVE_SIGNAL_BEAM 324 +#define MOVE_SHADOW_PUNCH 325 +#define MOVE_EXTRASENSORY 326 +#define MOVE_SKY_UPPERCUT 327 +#define MOVE_SAND_TOMB 328 +#define MOVE_SHEER_COLD 329 +#define MOVE_MUDDY_WATER 330 +#define MOVE_BULLET_SEED 331 +#define MOVE_AERIAL_ACE 332 +#define MOVE_ICICLE_SPEAR 333 +#define MOVE_IRON_DEFENSE 334 +#define MOVE_BLOCK 335 +#define MOVE_HOWL 336 +#define MOVE_DRAGON_CLAW 337 +#define MOVE_FRENZY_PLANT 338 +#define MOVE_BULK_UP 339 +#define MOVE_BOUNCE 340 +#define MOVE_MUD_SHOT 341 +#define MOVE_POISON_TAIL 342 +#define MOVE_COVET 343 +#define MOVE_VOLT_TACKLE 344 +#define MOVE_MAGICAL_LEAF 345 +#define MOVE_WATER_SPORT 346 +#define MOVE_CALM_MIND 347 +#define MOVE_LEAF_BLADE 348 +#define MOVE_DRAGON_DANCE 349 +#define MOVE_ROCK_BLAST 350 +#define MOVE_SHOCK_WAVE 351 +#define MOVE_WATER_PULSE 352 +#define MOVE_DOOM_DESIRE 353 +#define MOVE_PSYCHO_BOOST 354 + +#define LAST_MOVE_INDEX MOVE_PSYCHO_BOOST + +#endif // GUARD_CONSTANTS_MOVES_H diff --git a/include/constants/songs.h b/include/constants/songs.h new file mode 100644 index 000000000..2e3adcbbf --- /dev/null +++ b/include/constants/songs.h @@ -0,0 +1,465 @@ +#ifndef GUARD_CONSTANTS_SONGS_H +#define GUARD_CONSTANTS_SONGS_H + +#define SE_STOP 0 +#define SE_KAIFUKU 1 +#define SE_PC_LOGON 2 +#define SE_PC_OFF 3 +#define SE_PC_ON 4 +#define SE_SELECT 5 +#define SE_WIN_OPEN 6 +#define SE_WALL_HIT 7 +#define SE_DOOR 8 +#define SE_KAIDAN 9 +#define SE_DANSA 10 +#define SE_JITENSYA 11 +#define SE_KOUKA_L 12 +#define SE_KOUKA_M 13 +#define SE_KOUKA_H 14 +#define SE_BOWA2 15 +#define SE_POKE_DEAD 16 +#define SE_NIGERU 17 +#define SE_JIDO_DOA 18 +#define SE_NAMINORI 19 +#define SE_BAN 20 +#define SE_PIN 21 +#define SE_BOO 22 +#define SE_BOWA 23 +#define SE_JYUNI 24 +#define SE_A 25 +#define SE_I 26 +#define SE_U 27 +#define SE_E 28 +#define SE_O 29 +#define SE_N 30 +#define SE_SEIKAI 31 +#define SE_HAZURE 32 +#define SE_EXP 33 +#define SE_JITE_PYOKO 34 +#define SE_MU_PACHI 35 +#define SE_TK_KASYA 36 +#define SE_FU_ZAKU 37 +#define SE_FU_ZAKU2 38 +#define SE_FU_ZUZUZU 39 +#define SE_RU_GASHIN 40 +#define SE_RU_GASYAN 41 +#define SE_RU_BARI 42 +#define SE_RU_HYUU 43 +#define SE_KI_GASYAN 44 +#define SE_TK_WARPIN 45 +#define SE_TK_WARPOUT 46 +#define SE_TU_SAA 47 +#define SE_HI_TURUN 48 +#define SE_TRACK_MOVE 49 +#define SE_TRACK_STOP 50 +#define SE_TRACK_HAIK 51 +#define SE_TRACK_DOOR 52 +#define SE_MOTER 53 +#define SE_CARD 54 +#define SE_SAVE 55 +#define SE_KON 56 +#define SE_KON2 57 +#define SE_KON3 58 +#define SE_KON4 59 +#define SE_SUIKOMU 60 +#define SE_NAGERU 61 +#define SE_TOY_C 62 +#define SE_TOY_D 63 +#define SE_TOY_E 64 +#define SE_TOY_F 65 +#define SE_TOY_G 66 +#define SE_TOY_A 67 +#define SE_TOY_B 68 +#define SE_TOY_C1 69 +#define SE_MIZU 70 +#define SE_HASHI 71 +#define SE_DAUGI 72 +#define SE_PINPON 73 +#define SE_FUUSEN1 74 +#define SE_FUUSEN2 75 +#define SE_FUUSEN3 76 +#define SE_TOY_KABE 77 +#define SE_TOY_DANGO 78 +#define SE_DOKU 79 +#define SE_ESUKA 80 +#define SE_T_AME 81 +#define SE_T_AME_E 82 +#define SE_T_OOAME 83 +#define SE_T_OOAME_E 84 +#define SE_T_KOAME 85 +#define SE_T_KOAME_E 86 +#define SE_T_KAMI 87 +#define SE_T_KAMI2 88 +#define SE_ELEBETA 89 +#define SE_HINSI 90 +#define SE_EXPMAX 91 +#define SE_TAMAKORO 92 +#define SE_TAMAKORO_E 93 +#define SE_BASABASA 94 +#define SE_REGI 95 +#define SE_C_GAJI 96 +#define SE_C_MAKU_U 97 +#define SE_C_MAKU_D 98 +#define SE_C_PASI 99 +#define SE_C_SYU 100 +#define SE_C_PIKON 101 +#define SE_REAPOKE 102 +#define SE_OP_BASYU 103 +#define SE_BT_START 104 +#define SE_DENDOU 105 +#define SE_JIHANKI 106 +#define SE_TAMA 107 +#define SE_Z_SCROLL 108 +#define SE_Z_PAGE 109 +#define SE_PN_ON 110 +#define SE_PN_OFF 111 +#define SE_Z_SEARCH 112 +#define SE_TAMAGO 113 +#define SE_TB_START 114 +#define SE_TB_KON 115 +#define SE_TB_KARA 116 +#define SE_BIDORO 117 +#define SE_W085 118 +#define SE_W085B 119 +#define SE_W231 120 +#define SE_W171 121 +#define SE_W233 122 +#define SE_W233B 123 +#define SE_W145 124 +#define SE_W145B 125 +#define SE_W145C 126 +#define SE_W240 127 +#define SE_W015 128 +#define SE_W081 129 +#define SE_W081B 130 +#define SE_W088 131 +#define SE_W016 132 +#define SE_W016B 133 +#define SE_W003 134 +#define SE_W104 135 +#define SE_W013 136 +#define SE_W196 137 +#define SE_W086 138 +#define SE_W004 139 +#define SE_W025 140 +#define SE_W025B 141 +#define SE_W152 142 +#define SE_W026 143 +#define SE_W172 144 +#define SE_W172B 145 +#define SE_W053 146 +#define SE_W007 147 +#define SE_W092 148 +#define SE_W221 149 +#define SE_W221B 150 +#define SE_W052 151 +#define SE_W036 152 +#define SE_W059 153 +#define SE_W059B 154 +#define SE_W010 155 +#define SE_W011 156 +#define SE_W017 157 +#define SE_W019 158 +#define SE_W028 159 +#define SE_W013B 160 +#define SE_W044 161 +#define SE_W029 162 +#define SE_W057 163 +#define SE_W056 164 +#define SE_W250 165 +#define SE_W030 166 +#define SE_W039 167 +#define SE_W054 168 +#define SE_W077 169 +#define SE_W020 170 +#define SE_W082 171 +#define SE_W047 172 +#define SE_W195 173 +#define SE_W006 174 +#define SE_W091 175 +#define SE_W146 176 +#define SE_W120 177 +#define SE_W153 178 +#define SE_W071B 179 +#define SE_W071 180 +#define SE_W103 181 +#define SE_W062 182 +#define SE_W062B 183 +#define SE_W048 184 +#define SE_W187 185 +#define SE_W118 186 +#define SE_W155 187 +#define SE_W122 188 +#define SE_W060 189 +#define SE_W185 190 +#define SE_W014 191 +#define SE_W043 192 +#define SE_W207 193 +#define SE_W207B 194 +#define SE_W215 195 +#define SE_W109 196 +#define SE_W173 197 +#define SE_W280 198 +#define SE_W202 199 +#define SE_W060B 200 +#define SE_W076 201 +#define SE_W080 202 +#define SE_W100 203 +#define SE_W107 204 +#define SE_W166 205 +#define SE_W129 206 +#define SE_W115 207 +#define SE_W112 208 +#define SE_W197 209 +#define SE_W199 210 +#define SE_W236 211 +#define SE_W204 212 +#define SE_W268 213 +#define SE_W070 214 +#define SE_W063 215 +#define SE_W127 216 +#define SE_W179 217 +#define SE_W151 218 +#define SE_W201 219 +#define SE_W161 220 +#define SE_W161B 221 +#define SE_W227 222 +#define SE_W227B 223 +#define SE_W226 224 +#define SE_W208 225 +#define SE_W213 226 +#define SE_W213B 227 +#define SE_W234 228 +#define SE_W260 229 +#define SE_W328 230 +#define SE_W320 231 +#define SE_W255 232 +#define SE_W291 233 +#define SE_W089 234 +#define SE_W239 235 +#define SE_W230 236 +#define SE_W281 237 +#define SE_W327 238 +#define SE_W287 239 +#define SE_W257 240 +#define SE_W253 241 +#define SE_W258 242 +#define SE_W322 243 +#define SE_W298 244 +#define SE_W287B 245 +#define SE_W114 246 +#define SE_W063B 247 +#define BGM_STOP 349 +#define BGM_TETSUJI 350 +#define BGM_FIELD13 351 +#define BGM_KACHI22 352 +#define BGM_KACHI2 353 +#define BGM_KACHI3 354 +#define BGM_KACHI5 355 +#define BGM_PCC 356 +#define BGM_NIBI 357 +#define BGM_SUIKUN 358 +#define BGM_DOORO1 359 +#define BGM_DOORO_X1 360 +#define BGM_DOORO_X3 361 +#define BGM_MACHI_S2 362 +#define BGM_MACHI_S4 363 +#define BGM_GIM 364 +#define BGM_NAMINORI 365 +#define BGM_DAN01 366 +#define BGM_FANFA1 367 +#define BGM_ME_ASA 368 +#define BGM_ME_BACHI 369 +#define BGM_FANFA4 370 +#define BGM_FANFA5 371 +#define BGM_ME_WAZA 372 +#define BGM_BIJYUTU 373 +#define BGM_DOORO_X4 374 +#define BGM_FUNE_KAN 375 +#define BGM_ME_SHINKA 376 +#define BGM_SHINKA 377 +#define BGM_ME_WASURE 378 +#define BGM_SYOUJOEYE 379 +#define BGM_BOYEYE 380 +#define BGM_DAN02 381 +#define BGM_MACHI_S3 382 +#define BGM_ODAMAKI 383 +#define BGM_B_TOWER 384 +#define BGM_SWIMEYE 385 +#define BGM_DAN03 386 +#define BGM_ME_KINOMI 387 +#define BGM_ME_TAMA 388 +#define BGM_ME_B_BIG 389 +#define BGM_ME_B_SMALL 390 +#define BGM_ME_ZANNEN 391 +#define BGM_BD_TIME 392 +#define BGM_TEST1 393 +#define BGM_TEST2 394 +#define BGM_TEST3 395 +#define BGM_TEST4 396 +#define BGM_TEST 397 +#define BGM_GOMACHI0 398 +#define BGM_GOTOWN 399 +#define BGM_POKECEN 400 +#define BGM_NEXTROAD 401 +#define BGM_GRANROAD 402 +#define BGM_CYCLING 403 +#define BGM_FRIENDLY 404 +#define BGM_MISHIRO 405 +#define BGM_TOZAN 406 +#define BGM_GIRLEYE 407 +#define BGM_MINAMO 408 +#define BGM_ASHROAD 409 +#define BGM_EVENT0 410 +#define BGM_DEEPDEEP 411 +#define BGM_KACHI1 412 +#define BGM_TITLE3 413 +#define BGM_DEMO1 414 +#define BGM_GIRL_SUP 415 +#define BGM_HAGESHII 416 +#define BGM_KAKKOII 417 +#define BGM_KAZANBAI 418 +#define BGM_AQA_0 419 +#define BGM_TSURETEK 420 +#define BGM_BOY_SUP 421 +#define BGM_RAINBOW 422 +#define BGM_AYASII 423 +#define BGM_KACHI4 424 +#define BGM_ROPEWAY 425 +#define BGM_CASINO 426 +#define BGM_HIGHTOWN 427 +#define BGM_SAFARI 428 +#define BGM_C_ROAD 429 +#define BGM_AJITO 430 +#define BGM_M_BOAT 431 +#define BGM_M_DUNGON 432 +#define BGM_FINECITY 433 +#define BGM_MACHUPI 434 +#define BGM_P_SCHOOL 435 +#define BGM_DENDOU 436 +#define BGM_TONEKUSA 437 +#define BGM_MABOROSI 438 +#define BGM_CON_FAN 439 +#define BGM_CONTEST0 440 +#define BGM_MGM0 441 +#define BGM_T_BATTLE 442 +#define BGM_OOAME 443 +#define BGM_HIDERI 444 +#define BGM_RUNECITY 445 +#define BGM_CON_K 446 +#define BGM_EIKOU_R 447 +#define BGM_KARAKURI 448 +#define BGM_HUTAGO 449 +#define BGM_SITENNOU 450 +#define BGM_YAMA_EYE 451 +#define BGM_CONLOBBY 452 +#define BGM_INTER_V 453 +#define BGM_DAIGO 454 +#define BGM_THANKFOR 455 +#define BGM_END 456 +#define BGM_BATTLE_FRONTIER 457 +#define BGM_BATTLE_ARENA 458 +#define BGM_ME_BATTLE_POINTS 459 +#define BGM_ME_MATCH_CALL 460 +#define BGM_BATTLE_PYRAMID 461 +#define BGM_BATTLE_PYRAMID_SUMMIT 462 +#define BGM_BATTLE_PALACE 463 +#define BGM_FANFA_RAYQUAZA 464 +#define BGM_BATTLE_TOWER 465 +#define BGM_ME_BATTLE_SYMBOL 466 +#define BGM_BATTLE_DOME_TOURNAMENT 467 +#define BGM_BATTLE_PIKE 468 +#define BGM_BATTLE_FACTORY 469 +#define BGM_BATTLE_LEGENDARY 470 +#define BGM_BATTLE_FRONTIER_BRAIN 471 +#define BGM_BATTLE_MEW 472 +#define BGM_BATTLE_DOME 473 +#define BGM_BATTLE27 474 +#define BGM_BATTLE31 475 +#define BGM_BATTLE20 476 +#define BGM_BATTLE32 477 +#define BGM_BATTLE33 478 +#define BGM_BATTLE36 479 +#define BGM_BATTLE34 480 +#define BGM_BATTLE35 481 +#define BGM_BATTLE38 482 +#define BGM_BATTLE30 483 +#define BGM_FRLG_FOLLOW_ME 484 +#define BGM_FRLG_GAMECORNER 485 +#define BGM_FRLG_ROCKET_HIDEOUT 486 +#define BGM_FRLG_GYM 487 +#define BGM_FRLG_JIGGLYPUFF 488 +#define BGM_FRLG_OPENING 489 +#define BGM_FRLG_TITLE 490 +#define BGM_FRLG_CINNABAR_ISLAND 491 +#define BGM_FRLG_LAVENDER_TOWN 492 +#define BGM_FRLG_HEALING_TEST 493 +#define BGM_FRLG_BICYCLE 494 +#define BGM_FRLG_SUSPICIOUS_EYE 495 +#define BGM_FRLG_GIRL_EYE 496 +#define BGM_FRLG_BOY_EYE 497 +#define BGM_FRLG_CONGRATULATIONS_HALL_OF_FAME 498 +#define BGM_FRLG_VIRIDIAN_FOREST 499 +#define BGM_FRLG_MT_MOON 500 +#define BGM_FRLG_POKEMON_MANSION 501 +#define BGM_FRLG_CREDITS 502 +#define BGM_FRLG_ROUTE_1 503 +#define BGM_FRLG_ROUTE_24 504 +#define BGM_FRLG_ROUTE_3 505 +#define BGM_FRLG_ROUTE_11 506 +#define BGM_FRLG_INDIGO_PLATEAU 507 +#define BGM_FRLG_BATTLE_LEADER 508 +#define BGM_FRLG_BATTLE_TRAINER 509 +#define BGM_FRLG_BATTLE_WILD_POKEMON 510 +#define BGM_FRLG_BATTLE_CHAMPION 511 +#define BGM_FRLG_PALLET_TOWN 512 +#define BGM_FRLG_OAK_LAB 513 +#define BGM_FRLG_PROF_OAK 514 +#define BGM_FRLG_POKEMON_CENTER 515 +#define BGM_FRLG_SS_ANNE 516 +#define BGM_FRLG_SURF 517 +#define BGM_FRLG_POKEMON_TOWER 518 +#define BGM_FRLG_SILPH 519 +#define BGM_FRLG_CERULEAN_CITY 520 +#define BGM_FRLG_CELADON_CITY 521 +#define BGM_FRLG_KACHI_TRAINER 522 +#define BGM_FRLG_KACHI_WILD_POKEMON 523 +#define BGM_FRLG_KACHI_LEADER 524 +#define BGM_FRLG_VERMILION_CITY 525 +#define BGM_FRLG_VIRIDIAN_CITY 526 +#define BGM_FRLG_RIVAL 527 +#define BGM_FRLG_RIVAL_POSTBATTLE 528 +#define BGM_FRLG_ME_POKEDEX_EVAL 529 +#define BGM_FRLG_ME_KEYITEM 530 +#define BGM_FRLG_FANFA_POKEMON_CAUGHT 531 +#define BGM_FRLG_FANFA_TRAINERCARD_PHOTO 532 +#define BGM_FRLG_GAMEFREAK_LOGO 533 +#define BGM_FRLG_CAUGHT_POKEMON 534 +#define BGM_FRLG_GAME_EXPLANATION_START 535 +#define BGM_FRLG_GAME_EXPLANATION_MIDDLE 536 +#define BGM_FRLG_GAME_EXPLANATION_END 537 +#define BGM_FRLG_POKEMON_JUMP 538 +#define BGM_FRLG_UNION_ROOM 539 +#define BGM_FRLG_POKEMON_NETWORK_CENTER 540 +#define BGM_FRLG_MYSTERY_GIFT 541 +#define BGM_FRLG_DODRIO_BERRY_PICK 542 +#define BGM_FRLG_MT_EMBER 543 +#define BGM_FRLG_TEACHY_TV_EPISODE 544 +#define BGM_FRLG_SEVII_ISLANDS 545 +#define BGM_FRLG_TANOBY_RUINS 546 +#define BGM_FRLG_ISLAND_ONE 547 +#define BGM_FRLG_ISLAND_FOUR 548 +#define BGM_FRLG_ISLAND_SIX 549 +#define BGM_FRLG_FLUTE 550 +#define BGM_FRLG_BATTLE_DEOXYS 551 +#define BGM_FRLG_BATTLE_MEWTWO 552 +#define BGM_FRLG_BATTLE_LEGENDARY 553 +#define BGM_FRLG_LEADER_EYE 554 +#define BGM_FRLG_DEOXYS_EYE 555 +#define BGM_FRLG_TRAINER_TOWER 556 +#define BGM_FRLG_HALL_OF_FAME_PALLET_TOWN 557 +#define BGM_FRLG_TEACHY_TV 558 + +#define BGM_ROUTE_118 0x7FFF // What is this for? + +#endif // GUARD_CONSTANTS_SONGS_H diff --git a/include/constants/species.h b/include/constants/species.h new file mode 100644 index 000000000..f698ada14 --- /dev/null +++ b/include/constants/species.h @@ -0,0 +1,450 @@ +#ifndef GUARD_CONSTANTS_SPECIES_H +#define GUARD_CONSTANTS_SPECIES_H + +#define SPECIES_NONE 0 +#define SPECIES_BULBASAUR 1 +#define SPECIES_IVYSAUR 2 +#define SPECIES_VENUSAUR 3 +#define SPECIES_CHARMANDER 4 +#define SPECIES_CHARMELEON 5 +#define SPECIES_CHARIZARD 6 +#define SPECIES_SQUIRTLE 7 +#define SPECIES_WARTORTLE 8 +#define SPECIES_BLASTOISE 9 +#define SPECIES_CATERPIE 10 +#define SPECIES_METAPOD 11 +#define SPECIES_BUTTERFREE 12 +#define SPECIES_WEEDLE 13 +#define SPECIES_KAKUNA 14 +#define SPECIES_BEEDRILL 15 +#define SPECIES_PIDGEY 16 +#define SPECIES_PIDGEOTTO 17 +#define SPECIES_PIDGEOT 18 +#define SPECIES_RATTATA 19 +#define SPECIES_RATICATE 20 +#define SPECIES_SPEAROW 21 +#define SPECIES_FEAROW 22 +#define SPECIES_EKANS 23 +#define SPECIES_ARBOK 24 +#define SPECIES_PIKACHU 25 +#define SPECIES_RAICHU 26 +#define SPECIES_SANDSHREW 27 +#define SPECIES_SANDSLASH 28 +#define SPECIES_NIDORAN_F 29 +#define SPECIES_NIDORINA 30 +#define SPECIES_NIDOQUEEN 31 +#define SPECIES_NIDORAN_M 32 +#define SPECIES_NIDORINO 33 +#define SPECIES_NIDOKING 34 +#define SPECIES_CLEFAIRY 35 +#define SPECIES_CLEFABLE 36 +#define SPECIES_VULPIX 37 +#define SPECIES_NINETALES 38 +#define SPECIES_JIGGLYPUFF 39 +#define SPECIES_WIGGLYTUFF 40 +#define SPECIES_ZUBAT 41 +#define SPECIES_GOLBAT 42 +#define SPECIES_ODDISH 43 +#define SPECIES_GLOOM 44 +#define SPECIES_VILEPLUME 45 +#define SPECIES_PARAS 46 +#define SPECIES_PARASECT 47 +#define SPECIES_VENONAT 48 +#define SPECIES_VENOMOTH 49 +#define SPECIES_DIGLETT 50 +#define SPECIES_DUGTRIO 51 +#define SPECIES_MEOWTH 52 +#define SPECIES_PERSIAN 53 +#define SPECIES_PSYDUCK 54 +#define SPECIES_GOLDUCK 55 +#define SPECIES_MANKEY 56 +#define SPECIES_PRIMEAPE 57 +#define SPECIES_GROWLITHE 58 +#define SPECIES_ARCANINE 59 +#define SPECIES_POLIWAG 60 +#define SPECIES_POLIWHIRL 61 +#define SPECIES_POLIWRATH 62 +#define SPECIES_ABRA 63 +#define SPECIES_KADABRA 64 +#define SPECIES_ALAKAZAM 65 +#define SPECIES_MACHOP 66 +#define SPECIES_MACHOKE 67 +#define SPECIES_MACHAMP 68 +#define SPECIES_BELLSPROUT 69 +#define SPECIES_WEEPINBELL 70 +#define SPECIES_VICTREEBEL 71 +#define SPECIES_TENTACOOL 72 +#define SPECIES_TENTACRUEL 73 +#define SPECIES_GEODUDE 74 +#define SPECIES_GRAVELER 75 +#define SPECIES_GOLEM 76 +#define SPECIES_PONYTA 77 +#define SPECIES_RAPIDASH 78 +#define SPECIES_SLOWPOKE 79 +#define SPECIES_SLOWBRO 80 +#define SPECIES_MAGNEMITE 81 +#define SPECIES_MAGNETON 82 +#define SPECIES_FARFETCHD 83 +#define SPECIES_DODUO 84 +#define SPECIES_DODRIO 85 +#define SPECIES_SEEL 86 +#define SPECIES_DEWGONG 87 +#define SPECIES_GRIMER 88 +#define SPECIES_MUK 89 +#define SPECIES_SHELLDER 90 +#define SPECIES_CLOYSTER 91 +#define SPECIES_GASTLY 92 +#define SPECIES_HAUNTER 93 +#define SPECIES_GENGAR 94 +#define SPECIES_ONIX 95 +#define SPECIES_DROWZEE 96 +#define SPECIES_HYPNO 97 +#define SPECIES_KRABBY 98 +#define SPECIES_KINGLER 99 +#define SPECIES_VOLTORB 100 +#define SPECIES_ELECTRODE 101 +#define SPECIES_EXEGGCUTE 102 +#define SPECIES_EXEGGUTOR 103 +#define SPECIES_CUBONE 104 +#define SPECIES_MAROWAK 105 +#define SPECIES_HITMONLEE 106 +#define SPECIES_HITMONCHAN 107 +#define SPECIES_LICKITUNG 108 +#define SPECIES_KOFFING 109 +#define SPECIES_WEEZING 110 +#define SPECIES_RHYHORN 111 +#define SPECIES_RHYDON 112 +#define SPECIES_CHANSEY 113 +#define SPECIES_TANGELA 114 +#define SPECIES_KANGASKHAN 115 +#define SPECIES_HORSEA 116 +#define SPECIES_SEADRA 117 +#define SPECIES_GOLDEEN 118 +#define SPECIES_SEAKING 119 +#define SPECIES_STARYU 120 +#define SPECIES_STARMIE 121 +#define SPECIES_MR_MIME 122 +#define SPECIES_SCYTHER 123 +#define SPECIES_JYNX 124 +#define SPECIES_ELECTABUZZ 125 +#define SPECIES_MAGMAR 126 +#define SPECIES_PINSIR 127 +#define SPECIES_TAUROS 128 +#define SPECIES_MAGIKARP 129 +#define SPECIES_GYARADOS 130 +#define SPECIES_LAPRAS 131 +#define SPECIES_DITTO 132 +#define SPECIES_EEVEE 133 +#define SPECIES_VAPOREON 134 +#define SPECIES_JOLTEON 135 +#define SPECIES_FLAREON 136 +#define SPECIES_PORYGON 137 +#define SPECIES_OMANYTE 138 +#define SPECIES_OMASTAR 139 +#define SPECIES_KABUTO 140 +#define SPECIES_KABUTOPS 141 +#define SPECIES_AERODACTYL 142 +#define SPECIES_SNORLAX 143 +#define SPECIES_ARTICUNO 144 +#define SPECIES_ZAPDOS 145 +#define SPECIES_MOLTRES 146 +#define SPECIES_DRATINI 147 +#define SPECIES_DRAGONAIR 148 +#define SPECIES_DRAGONITE 149 +#define SPECIES_MEWTWO 150 +#define SPECIES_MEW 151 +#define SPECIES_CHIKORITA 152 +#define SPECIES_BAYLEEF 153 +#define SPECIES_MEGANIUM 154 +#define SPECIES_CYNDAQUIL 155 +#define SPECIES_QUILAVA 156 +#define SPECIES_TYPHLOSION 157 +#define SPECIES_TOTODILE 158 +#define SPECIES_CROCONAW 159 +#define SPECIES_FERALIGATR 160 +#define SPECIES_SENTRET 161 +#define SPECIES_FURRET 162 +#define SPECIES_HOOTHOOT 163 +#define SPECIES_NOCTOWL 164 +#define SPECIES_LEDYBA 165 +#define SPECIES_LEDIAN 166 +#define SPECIES_SPINARAK 167 +#define SPECIES_ARIADOS 168 +#define SPECIES_CROBAT 169 +#define SPECIES_CHINCHOU 170 +#define SPECIES_LANTURN 171 +#define SPECIES_PICHU 172 +#define SPECIES_CLEFFA 173 +#define SPECIES_IGGLYBUFF 174 +#define SPECIES_TOGEPI 175 +#define SPECIES_TOGETIC 176 +#define SPECIES_NATU 177 +#define SPECIES_XATU 178 +#define SPECIES_MAREEP 179 +#define SPECIES_FLAAFFY 180 +#define SPECIES_AMPHAROS 181 +#define SPECIES_BELLOSSOM 182 +#define SPECIES_MARILL 183 +#define SPECIES_AZUMARILL 184 +#define SPECIES_SUDOWOODO 185 +#define SPECIES_POLITOED 186 +#define SPECIES_HOPPIP 187 +#define SPECIES_SKIPLOOM 188 +#define SPECIES_JUMPLUFF 189 +#define SPECIES_AIPOM 190 +#define SPECIES_SUNKERN 191 +#define SPECIES_SUNFLORA 192 +#define SPECIES_YANMA 193 +#define SPECIES_WOOPER 194 +#define SPECIES_QUAGSIRE 195 +#define SPECIES_ESPEON 196 +#define SPECIES_UMBREON 197 +#define SPECIES_MURKROW 198 +#define SPECIES_SLOWKING 199 +#define SPECIES_MISDREAVUS 200 +#define SPECIES_UNOWN 201 +#define SPECIES_WOBBUFFET 202 +#define SPECIES_GIRAFARIG 203 +#define SPECIES_PINECO 204 +#define SPECIES_FORRETRESS 205 +#define SPECIES_DUNSPARCE 206 +#define SPECIES_GLIGAR 207 +#define SPECIES_STEELIX 208 +#define SPECIES_SNUBBULL 209 +#define SPECIES_GRANBULL 210 +#define SPECIES_QWILFISH 211 +#define SPECIES_SCIZOR 212 +#define SPECIES_SHUCKLE 213 +#define SPECIES_HERACROSS 214 +#define SPECIES_SNEASEL 215 +#define SPECIES_TEDDIURSA 216 +#define SPECIES_URSARING 217 +#define SPECIES_SLUGMA 218 +#define SPECIES_MAGCARGO 219 +#define SPECIES_SWINUB 220 +#define SPECIES_PILOSWINE 221 +#define SPECIES_CORSOLA 222 +#define SPECIES_REMORAID 223 +#define SPECIES_OCTILLERY 224 +#define SPECIES_DELIBIRD 225 +#define SPECIES_MANTINE 226 +#define SPECIES_SKARMORY 227 +#define SPECIES_HOUNDOUR 228 +#define SPECIES_HOUNDOOM 229 +#define SPECIES_KINGDRA 230 +#define SPECIES_PHANPY 231 +#define SPECIES_DONPHAN 232 +#define SPECIES_PORYGON2 233 +#define SPECIES_STANTLER 234 +#define SPECIES_SMEARGLE 235 +#define SPECIES_TYROGUE 236 +#define SPECIES_HITMONTOP 237 +#define SPECIES_SMOOCHUM 238 +#define SPECIES_ELEKID 239 +#define SPECIES_MAGBY 240 +#define SPECIES_MILTANK 241 +#define SPECIES_BLISSEY 242 +#define SPECIES_RAIKOU 243 +#define SPECIES_ENTEI 244 +#define SPECIES_SUICUNE 245 +#define SPECIES_LARVITAR 246 +#define SPECIES_PUPITAR 247 +#define SPECIES_TYRANITAR 248 +#define SPECIES_LUGIA 249 +#define SPECIES_HO_OH 250 +#define SPECIES_CELEBI 251 + +#define SPECIES_OLD_UNOWN_B 252 +#define SPECIES_OLD_UNOWN_C 253 +#define SPECIES_OLD_UNOWN_D 254 +#define SPECIES_OLD_UNOWN_E 255 +#define SPECIES_OLD_UNOWN_F 256 +#define SPECIES_OLD_UNOWN_G 257 +#define SPECIES_OLD_UNOWN_H 258 +#define SPECIES_OLD_UNOWN_I 259 +#define SPECIES_OLD_UNOWN_J 260 +#define SPECIES_OLD_UNOWN_K 261 +#define SPECIES_OLD_UNOWN_L 262 +#define SPECIES_OLD_UNOWN_M 263 +#define SPECIES_OLD_UNOWN_N 264 +#define SPECIES_OLD_UNOWN_O 265 +#define SPECIES_OLD_UNOWN_P 266 +#define SPECIES_OLD_UNOWN_Q 267 +#define SPECIES_OLD_UNOWN_R 268 +#define SPECIES_OLD_UNOWN_S 269 +#define SPECIES_OLD_UNOWN_T 270 +#define SPECIES_OLD_UNOWN_U 271 +#define SPECIES_OLD_UNOWN_V 272 +#define SPECIES_OLD_UNOWN_W 273 +#define SPECIES_OLD_UNOWN_X 274 +#define SPECIES_OLD_UNOWN_Y 275 +#define SPECIES_OLD_UNOWN_Z 276 + +#define SPECIES_TREECKO 277 +#define SPECIES_GROVYLE 278 +#define SPECIES_SCEPTILE 279 +#define SPECIES_TORCHIC 280 +#define SPECIES_COMBUSKEN 281 +#define SPECIES_BLAZIKEN 282 +#define SPECIES_MUDKIP 283 +#define SPECIES_MARSHTOMP 284 +#define SPECIES_SWAMPERT 285 +#define SPECIES_POOCHYENA 286 +#define SPECIES_MIGHTYENA 287 +#define SPECIES_ZIGZAGOON 288 +#define SPECIES_LINOONE 289 +#define SPECIES_WURMPLE 290 +#define SPECIES_SILCOON 291 +#define SPECIES_BEAUTIFLY 292 +#define SPECIES_CASCOON 293 +#define SPECIES_DUSTOX 294 +#define SPECIES_LOTAD 295 +#define SPECIES_LOMBRE 296 +#define SPECIES_LUDICOLO 297 +#define SPECIES_SEEDOT 298 +#define SPECIES_NUZLEAF 299 +#define SPECIES_SHIFTRY 300 +#define SPECIES_NINCADA 301 +#define SPECIES_NINJASK 302 +#define SPECIES_SHEDINJA 303 +#define SPECIES_TAILLOW 304 +#define SPECIES_SWELLOW 305 +#define SPECIES_SHROOMISH 306 +#define SPECIES_BRELOOM 307 +#define SPECIES_SPINDA 308 +#define SPECIES_WINGULL 309 +#define SPECIES_PELIPPER 310 +#define SPECIES_SURSKIT 311 +#define SPECIES_MASQUERAIN 312 +#define SPECIES_WAILMER 313 +#define SPECIES_WAILORD 314 +#define SPECIES_SKITTY 315 +#define SPECIES_DELCATTY 316 +#define SPECIES_KECLEON 317 +#define SPECIES_BALTOY 318 +#define SPECIES_CLAYDOL 319 +#define SPECIES_NOSEPASS 320 +#define SPECIES_TORKOAL 321 +#define SPECIES_SABLEYE 322 +#define SPECIES_BARBOACH 323 +#define SPECIES_WHISCASH 324 +#define SPECIES_LUVDISC 325 +#define SPECIES_CORPHISH 326 +#define SPECIES_CRAWDAUNT 327 +#define SPECIES_FEEBAS 328 +#define SPECIES_MILOTIC 329 +#define SPECIES_CARVANHA 330 +#define SPECIES_SHARPEDO 331 +#define SPECIES_TRAPINCH 332 +#define SPECIES_VIBRAVA 333 +#define SPECIES_FLYGON 334 +#define SPECIES_MAKUHITA 335 +#define SPECIES_HARIYAMA 336 +#define SPECIES_ELECTRIKE 337 +#define SPECIES_MANECTRIC 338 +#define SPECIES_NUMEL 339 +#define SPECIES_CAMERUPT 340 +#define SPECIES_SPHEAL 341 +#define SPECIES_SEALEO 342 +#define SPECIES_WALREIN 343 +#define SPECIES_CACNEA 344 +#define SPECIES_CACTURNE 345 +#define SPECIES_SNORUNT 346 +#define SPECIES_GLALIE 347 +#define SPECIES_LUNATONE 348 +#define SPECIES_SOLROCK 349 +#define SPECIES_AZURILL 350 +#define SPECIES_SPOINK 351 +#define SPECIES_GRUMPIG 352 +#define SPECIES_PLUSLE 353 +#define SPECIES_MINUN 354 +#define SPECIES_MAWILE 355 +#define SPECIES_MEDITITE 356 +#define SPECIES_MEDICHAM 357 +#define SPECIES_SWABLU 358 +#define SPECIES_ALTARIA 359 +#define SPECIES_WYNAUT 360 +#define SPECIES_DUSKULL 361 +#define SPECIES_DUSCLOPS 362 +#define SPECIES_ROSELIA 363 +#define SPECIES_SLAKOTH 364 +#define SPECIES_VIGOROTH 365 +#define SPECIES_SLAKING 366 +#define SPECIES_GULPIN 367 +#define SPECIES_SWALOT 368 +#define SPECIES_TROPIUS 369 +#define SPECIES_WHISMUR 370 +#define SPECIES_LOUDRED 371 +#define SPECIES_EXPLOUD 372 +#define SPECIES_CLAMPERL 373 +#define SPECIES_HUNTAIL 374 +#define SPECIES_GOREBYSS 375 +#define SPECIES_ABSOL 376 +#define SPECIES_SHUPPET 377 +#define SPECIES_BANETTE 378 +#define SPECIES_SEVIPER 379 +#define SPECIES_ZANGOOSE 380 +#define SPECIES_RELICANTH 381 +#define SPECIES_ARON 382 +#define SPECIES_LAIRON 383 +#define SPECIES_AGGRON 384 +#define SPECIES_CASTFORM 385 +#define SPECIES_VOLBEAT 386 +#define SPECIES_ILLUMISE 387 +#define SPECIES_LILEEP 388 +#define SPECIES_CRADILY 389 +#define SPECIES_ANORITH 390 +#define SPECIES_ARMALDO 391 +#define SPECIES_RALTS 392 +#define SPECIES_KIRLIA 393 +#define SPECIES_GARDEVOIR 394 +#define SPECIES_BAGON 395 +#define SPECIES_SHELGON 396 +#define SPECIES_SALAMENCE 397 +#define SPECIES_BELDUM 398 +#define SPECIES_METANG 399 +#define SPECIES_METAGROSS 400 +#define SPECIES_REGIROCK 401 +#define SPECIES_REGICE 402 +#define SPECIES_REGISTEEL 403 +#define SPECIES_KYOGRE 404 +#define SPECIES_GROUDON 405 +#define SPECIES_RAYQUAZA 406 +#define SPECIES_LATIAS 407 +#define SPECIES_LATIOS 408 +#define SPECIES_JIRACHI 409 +#define SPECIES_DEOXYS 410 +#define SPECIES_CHIMECHO 411 +#define SPECIES_EGG 412 + +#define SPECIES_UNOWN_B 413 +#define SPECIES_UNOWN_C 414 +#define SPECIES_UNOWN_D 415 +#define SPECIES_UNOWN_E 416 +#define SPECIES_UNOWN_F 417 +#define SPECIES_UNOWN_G 418 +#define SPECIES_UNOWN_H 419 +#define SPECIES_UNOWN_I 420 +#define SPECIES_UNOWN_J 421 +#define SPECIES_UNOWN_K 422 +#define SPECIES_UNOWN_L 423 +#define SPECIES_UNOWN_M 424 +#define SPECIES_UNOWN_N 425 +#define SPECIES_UNOWN_O 426 +#define SPECIES_UNOWN_P 427 +#define SPECIES_UNOWN_Q 428 +#define SPECIES_UNOWN_R 429 +#define SPECIES_UNOWN_S 430 +#define SPECIES_UNOWN_T 431 +#define SPECIES_UNOWN_U 432 +#define SPECIES_UNOWN_V 433 +#define SPECIES_UNOWN_W 434 +#define SPECIES_UNOWN_X 435 +#define SPECIES_UNOWN_Y 436 +#define SPECIES_UNOWN_Z 437 +#define SPECIES_UNOWN_EMARK 438 +#define SPECIES_UNOWN_QMARK 439 + +#define NUM_SPECIES SPECIES_EGG + +#endif // GUARD_CONSTANTS_SPECIES_H diff --git a/include/constants/trainers.h b/include/constants/trainers.h new file mode 100644 index 000000000..48d4f081e --- /dev/null +++ b/include/constants/trainers.h @@ -0,0 +1,1129 @@ +#ifndef GUARD_TRAINERS_H +#define GUARD_TRAINERS_H + +#define TRAINER_NONE 0 +#define TRAINER_SAWYER_1 1 +#define TRAINER_GRUNT_1 2 +#define TRAINER_GRUNT_2 3 +#define TRAINER_GRUNT_3 4 +#define TRAINER_GRUNT_4 5 +#define TRAINER_GRUNT_5 6 +#define TRAINER_GRUNT_6 7 +#define TRAINER_GRUNT_7 8 +#define TRAINER_GABRIELLE_1 9 +#define TRAINER_GRUNT_8 10 +#define TRAINER_MARCEL 11 +#define TRAINER_ALBERTO 12 +#define TRAINER_ED 13 +#define TRAINER_GRUNT_9 14 +#define TRAINER_DECLAN 15 +#define TRAINER_GRUNT_10 16 +#define TRAINER_GRUNT_11 17 +#define TRAINER_GRUNT_12 18 +#define TRAINER_GRUNT_13 19 +#define TRAINER_GRUNT_14 20 +#define TRAINER_GRUNT_15 21 +#define TRAINER_GRUNT_16 22 +#define TRAINER_GRUNT_17 23 +#define TRAINER_GRUNT_18 24 +#define TRAINER_GRUNT_19 25 +#define TRAINER_GRUNT_20 26 +#define TRAINER_GRUNT_21 27 +#define TRAINER_GRUNT_22 28 +#define TRAINER_FREDRICK 29 +#define TRAINER_MATT 30 +#define TRAINER_ZANDER 31 +#define TRAINER_SHELLY_1 32 +#define TRAINER_SHELLY_2 33 +#define TRAINER_ARCHIE 34 +#define TRAINER_LEAH 35 +#define TRAINER_DAISY 36 +#define TRAINER_ROSE_1 37 +#define TRAINER_FELIX 38 +#define TRAINER_VIOLET 39 +#define TRAINER_ROSE_2 40 +#define TRAINER_ROSE_3 41 +#define TRAINER_ROSE_4 42 +#define TRAINER_ROSE_5 43 +#define TRAINER_DUSTY_1 44 +#define TRAINER_CHIP 45 +#define TRAINER_FOSTER 46 +#define TRAINER_DUSTY_2 47 +#define TRAINER_DUSTY_3 48 +#define TRAINER_DUSTY_4 49 +#define TRAINER_DUSTY_5 50 +#define TRAINER_GABBY_AND_TY_1 51 +#define TRAINER_GABBY_AND_TY_2 52 +#define TRAINER_GABBY_AND_TY_3 53 +#define TRAINER_GABBY_AND_TY_4 54 +#define TRAINER_GABBY_AND_TY_5 55 +#define TRAINER_GABBY_AND_TY_6 56 +#define TRAINER_LOLA_1 57 +#define TRAINER_AUSTINA 58 +#define TRAINER_GWEN 59 +#define TRAINER_LOLA_2 60 +#define TRAINER_LOLA_3 61 +#define TRAINER_LOLA_4 62 +#define TRAINER_LOLA_5 63 +#define TRAINER_RICKY_1 64 +#define TRAINER_SIMON 65 +#define TRAINER_CHARLIE 66 +#define TRAINER_RICKY_2 67 +#define TRAINER_RICKY_3 68 +#define TRAINER_RICKY_4 69 +#define TRAINER_RICKY_5 70 +#define TRAINER_RANDALL 71 +#define TRAINER_PARKER 72 +#define TRAINER_GEORGE 73 +#define TRAINER_BERKE 74 +#define TRAINER_BRAXTON 75 +#define TRAINER_VINCENT 76 +#define TRAINER_LEROY 77 +#define TRAINER_WILTON_1 78 +#define TRAINER_EDGAR 79 +#define TRAINER_ALBERT 80 +#define TRAINER_SAMUEL 81 +#define TRAINER_VITO 82 +#define TRAINER_OWEN 83 +#define TRAINER_WILTON_2 84 +#define TRAINER_WILTON_3 85 +#define TRAINER_WILTON_4 86 +#define TRAINER_WILTON_5 87 +#define TRAINER_WARREN 88 +#define TRAINER_MARY 89 +#define TRAINER_ALEXIA 90 +#define TRAINER_JODY 91 +#define TRAINER_WENDY 92 +#define TRAINER_KEIRA 93 +#define TRAINER_BROOKE_1 94 +#define TRAINER_JENNIFER 95 +#define TRAINER_HOPE 96 +#define TRAINER_SHANNON 97 +#define TRAINER_MICHELLE 98 +#define TRAINER_CAROLINE 99 +#define TRAINER_JULIE 100 +#define TRAINER_BROOKE_2 101 +#define TRAINER_BROOKE_3 102 +#define TRAINER_BROOKE_4 103 +#define TRAINER_BROOKE_5 104 +#define TRAINER_PATRICIA 105 +#define TRAINER_KINDRA 106 +#define TRAINER_TAMMY 107 +#define TRAINER_VALERIE_1 108 +#define TRAINER_TASHA 109 +#define TRAINER_VALERIE_2 110 +#define TRAINER_VALERIE_3 111 +#define TRAINER_VALERIE_4 112 +#define TRAINER_VALERIE_5 113 +#define TRAINER_CINDY_1 114 +#define TRAINER_DAPHNE 115 +#define TRAINER_GRUNT_23 116 +#define TRAINER_CINDY_2 117 +#define TRAINER_BRIANNA 118 +#define TRAINER_NAOMI 119 +#define TRAINER_CINDY_3 120 +#define TRAINER_CINDY_4 121 +#define TRAINER_CINDY_5 122 +#define TRAINER_CINDY_6 123 +#define TRAINER_MELISSA 124 +#define TRAINER_SHEILA 125 +#define TRAINER_SHIRLEY 126 +#define TRAINER_JESSICA_1 127 +#define TRAINER_CONNIE 128 +#define TRAINER_BRIDGET 129 +#define TRAINER_OLIVIA 130 +#define TRAINER_TIFFANY 131 +#define TRAINER_JESSICA_2 132 +#define TRAINER_JESSICA_3 133 +#define TRAINER_JESSICA_4 134 +#define TRAINER_JESSICA_5 135 +#define TRAINER_WINSTON_1 136 +#define TRAINER_MOLLIE 137 +#define TRAINER_GARRET 138 +#define TRAINER_WINSTON_2 139 +#define TRAINER_WINSTON_3 140 +#define TRAINER_WINSTON_4 141 +#define TRAINER_WINSTON_5 142 +#define TRAINER_STEVE_1 143 +#define TRAINER_THALIA_1 144 +#define TRAINER_MARK 145 +#define TRAINER_GRUNT_24 146 +#define TRAINER_STEVE_2 147 +#define TRAINER_STEVE_3 148 +#define TRAINER_STEVE_4 149 +#define TRAINER_STEVE_5 150 +#define TRAINER_LUIS 151 +#define TRAINER_DOMINIK 152 +#define TRAINER_DOUGLAS 153 +#define TRAINER_DARRIN 154 +#define TRAINER_TONY_1 155 +#define TRAINER_JEROME 156 +#define TRAINER_MATTHEW 157 +#define TRAINER_DAVID 158 +#define TRAINER_SPENCER 159 +#define TRAINER_ROLAND 160 +#define TRAINER_NOLEN 161 +#define TRAINER_STAN 162 +#define TRAINER_BARRY 163 +#define TRAINER_DEAN 164 +#define TRAINER_RODNEY 165 +#define TRAINER_RICHARD 166 +#define TRAINER_HERMAN 167 +#define TRAINER_SANTIAGO 168 +#define TRAINER_GILBERT 169 +#define TRAINER_FRANKLIN 170 +#define TRAINER_KEVIN 171 +#define TRAINER_JACK 172 +#define TRAINER_DUDLEY 173 +#define TRAINER_CHAD 174 +#define TRAINER_TONY_2 175 +#define TRAINER_TONY_3 176 +#define TRAINER_TONY_4 177 +#define TRAINER_TONY_5 178 +#define TRAINER_TAKAO 179 +#define TRAINER_HITOSHI 180 +#define TRAINER_KIYO 181 +#define TRAINER_KOICHI 182 +#define TRAINER_NOB_1 183 +#define TRAINER_NOB_2 184 +#define TRAINER_NOB_3 185 +#define TRAINER_NOB_4 186 +#define TRAINER_NOB_5 187 +#define TRAINER_YUJI 188 +#define TRAINER_DAISUKE 189 +#define TRAINER_ATSUSHI 190 +#define TRAINER_KIRK 191 +#define TRAINER_GRUNT_25 192 +#define TRAINER_GRUNT_26 193 +#define TRAINER_SHAWN 194 +#define TRAINER_FERNANDO_1 195 +#define TRAINER_DALTON_1 196 +#define TRAINER_DALTON_2 197 +#define TRAINER_DALTON_3 198 +#define TRAINER_DALTON_4 199 +#define TRAINER_DALTON_5 200 +#define TRAINER_COLE 201 +#define TRAINER_JEFF 202 +#define TRAINER_AXLE 203 +#define TRAINER_JACE 204 +#define TRAINER_KEEGAN 205 +#define TRAINER_BERNIE_1 206 +#define TRAINER_BERNIE_2 207 +#define TRAINER_BERNIE_3 208 +#define TRAINER_BERNIE_4 209 +#define TRAINER_BERNIE_5 210 +#define TRAINER_DREW 211 +#define TRAINER_BEAU 212 +#define TRAINER_LARRY 213 +#define TRAINER_SHANE 214 +#define TRAINER_JUSTIN 215 +#define TRAINER_ETHAN_1 216 +#define TRAINER_AUTUMN 217 +#define TRAINER_TRAVIS 218 +#define TRAINER_ETHAN_2 219 +#define TRAINER_ETHAN_3 220 +#define TRAINER_ETHAN_4 221 +#define TRAINER_ETHAN_5 222 +#define TRAINER_BRENT 223 +#define TRAINER_DONALD 224 +#define TRAINER_TAYLOR 225 +#define TRAINER_JEFFREY_1 226 +#define TRAINER_DEREK 227 +#define TRAINER_JEFFREY_2 228 +#define TRAINER_JEFFREY_3 229 +#define TRAINER_JEFFREY_4 230 +#define TRAINER_JEFFREY_5 231 +#define TRAINER_EDWARD 232 +#define TRAINER_PRESTON 233 +#define TRAINER_VIRGIL 234 +#define TRAINER_BLAKE 235 +#define TRAINER_WILLIAM 236 +#define TRAINER_JOSHUA 237 +#define TRAINER_CAMERON_1 238 +#define TRAINER_CAMERON_2 239 +#define TRAINER_CAMERON_3 240 +#define TRAINER_CAMERON_4 241 +#define TRAINER_CAMERON_5 242 +#define TRAINER_JACLYN 243 +#define TRAINER_HANNAH 244 +#define TRAINER_SAMANTHA 245 +#define TRAINER_MAURA 246 +#define TRAINER_KAYLA 247 +#define TRAINER_ALEXIS 248 +#define TRAINER_JACKI_1 249 +#define TRAINER_JACKI_2 250 +#define TRAINER_JACKI_3 251 +#define TRAINER_JACKI_4 252 +#define TRAINER_JACKI_5 253 +#define TRAINER_WALTER_1 254 +#define TRAINER_MICAH 255 +#define TRAINER_THOMAS 256 +#define TRAINER_WALTER_2 257 +#define TRAINER_WALTER_3 258 +#define TRAINER_WALTER_4 259 +#define TRAINER_WALTER_5 260 +#define TRAINER_SIDNEY 261 +#define TRAINER_PHOEBE 262 +#define TRAINER_GLACIA 263 +#define TRAINER_DRAKE 264 +#define TRAINER_ROXANNE_1 265 +#define TRAINER_BRAWLY_1 266 +#define TRAINER_WATTSON_1 267 +#define TRAINER_FLANNERY_1 268 +#define TRAINER_NORMAN_1 269 +#define TRAINER_WINONA_1 270 +#define TRAINER_TATE_AND_LIZA_1 271 +#define TRAINER_JUAN_1 272 +#define TRAINER_JERRY_1 273 +#define TRAINER_TED 274 +#define TRAINER_PAUL 275 +#define TRAINER_JERRY_2 276 +#define TRAINER_JERRY_3 277 +#define TRAINER_JERRY_4 278 +#define TRAINER_JERRY_5 279 +#define TRAINER_KAREN_1 280 +#define TRAINER_GEORGIA 281 +#define TRAINER_KAREN_2 282 +#define TRAINER_KAREN_3 283 +#define TRAINER_KAREN_4 284 +#define TRAINER_KAREN_5 285 +#define TRAINER_KATE_AND_JOY 286 +#define TRAINER_ANNA_AND_MEG_1 287 +#define TRAINER_ANNA_AND_MEG_2 288 +#define TRAINER_ANNA_AND_MEG_3 289 +#define TRAINER_ANNA_AND_MEG_4 290 +#define TRAINER_ANNA_AND_MEG_5 291 +#define TRAINER_VICTOR 292 +#define TRAINER_MIGUEL_1 293 +#define TRAINER_COLTON 294 +#define TRAINER_MIGUEL_2 295 +#define TRAINER_MIGUEL_3 296 +#define TRAINER_MIGUEL_4 297 +#define TRAINER_MIGUEL_5 298 +#define TRAINER_VICTORIA 299 +#define TRAINER_VANESSA 300 +#define TRAINER_BETHANY 301 +#define TRAINER_ISABEL_1 302 +#define TRAINER_ISABEL_2 303 +#define TRAINER_ISABEL_3 304 +#define TRAINER_ISABEL_4 305 +#define TRAINER_ISABEL_5 306 +#define TRAINER_TIMOTHY_1 307 +#define TRAINER_TIMOTHY_2 308 +#define TRAINER_TIMOTHY_3 309 +#define TRAINER_TIMOTHY_4 310 +#define TRAINER_TIMOTHY_5 311 +#define TRAINER_VICKY 312 +#define TRAINER_SHELBY_1 313 +#define TRAINER_SHELBY_2 314 +#define TRAINER_SHELBY_3 315 +#define TRAINER_SHELBY_4 316 +#define TRAINER_SHELBY_5 317 +#define TRAINER_CALVIN_1 318 +#define TRAINER_BILLY 319 +#define TRAINER_JOSH 320 +#define TRAINER_TOMMY 321 +#define TRAINER_JOEY 322 +#define TRAINER_BEN 323 +#define TRAINER_QUINCY 324 +#define TRAINER_KATELYNN 325 +#define TRAINER_JAYLEN 326 +#define TRAINER_DILLON 327 +#define TRAINER_CALVIN_2 328 +#define TRAINER_CALVIN_3 329 +#define TRAINER_CALVIN_4 330 +#define TRAINER_CALVIN_5 331 +#define TRAINER_EDDIE 332 +#define TRAINER_ALLEN 333 +#define TRAINER_TIMMY 334 +#define TRAINER_WALLACE 335 +#define TRAINER_ANDREW 336 +#define TRAINER_IVAN 337 +#define TRAINER_CLAUDE 338 +#define TRAINER_ELLIOT_1 339 +#define TRAINER_NED 340 +#define TRAINER_DALE 341 +#define TRAINER_NOLAN 342 +#define TRAINER_BARNY 343 +#define TRAINER_WADE 344 +#define TRAINER_CARTER 345 +#define TRAINER_ELLIOT_2 346 +#define TRAINER_ELLIOT_3 347 +#define TRAINER_ELLIOT_4 348 +#define TRAINER_ELLIOT_5 349 +#define TRAINER_RONALD 350 +#define TRAINER_JACOB 351 +#define TRAINER_ANTHONY 352 +#define TRAINER_BENJAMIN_1 353 +#define TRAINER_BENJAMIN_2 354 +#define TRAINER_BENJAMIN_3 355 +#define TRAINER_BENJAMIN_4 356 +#define TRAINER_BENJAMIN_5 357 +#define TRAINER_ABIGAIL_1 358 +#define TRAINER_JASMINE 359 +#define TRAINER_ABIGAIL_2 360 +#define TRAINER_ABIGAIL_3 361 +#define TRAINER_ABIGAIL_4 362 +#define TRAINER_ABIGAIL_5 363 +#define TRAINER_DYLAN_1 364 +#define TRAINER_DYLAN_2 365 +#define TRAINER_DYLAN_3 366 +#define TRAINER_DYLAN_4 367 +#define TRAINER_DYLAN_5 368 +#define TRAINER_MARIA_1 369 +#define TRAINER_MARIA_2 370 +#define TRAINER_MARIA_3 371 +#define TRAINER_MARIA_4 372 +#define TRAINER_MARIA_5 373 +#define TRAINER_CAMDEN 374 +#define TRAINER_DEMETRIUS 375 +#define TRAINER_ISAIAH_1 376 +#define TRAINER_PABLO_1 377 +#define TRAINER_CHASE 378 +#define TRAINER_ISAIAH_2 379 +#define TRAINER_ISAIAH_3 380 +#define TRAINER_ISAIAH_4 381 +#define TRAINER_ISAIAH_5 382 +#define TRAINER_ISOBEL 383 +#define TRAINER_DONNY 384 +#define TRAINER_TALIA 385 +#define TRAINER_KATELYN_1 386 +#define TRAINER_ALLISON 387 +#define TRAINER_KATELYN_2 388 +#define TRAINER_KATELYN_3 389 +#define TRAINER_KATELYN_4 390 +#define TRAINER_KATELYN_5 391 +#define TRAINER_NICOLAS_1 392 +#define TRAINER_NICOLAS_2 393 +#define TRAINER_NICOLAS_3 394 +#define TRAINER_NICOLAS_4 395 +#define TRAINER_NICOLAS_5 396 +#define TRAINER_AARON 397 +#define TRAINER_PERRY 398 +#define TRAINER_HUGH 399 +#define TRAINER_PHIL 400 +#define TRAINER_JARED 401 +#define TRAINER_HUMBERTO 402 +#define TRAINER_PRESLEY 403 +#define TRAINER_EDWARDO 404 +#define TRAINER_COLIN 405 +#define TRAINER_ROBERT_1 406 +#define TRAINER_BENNY 407 +#define TRAINER_CHESTER 408 +#define TRAINER_ROBERT_2 409 +#define TRAINER_ROBERT_3 410 +#define TRAINER_ROBERT_4 411 +#define TRAINER_ROBERT_5 412 +#define TRAINER_ALEX 413 +#define TRAINER_BECK 414 +#define TRAINER_YASU 415 +#define TRAINER_TAKASHI 416 +#define TRAINER_DIANNE 417 +#define TRAINER_JANI 418 +#define TRAINER_LAO_1 419 +#define TRAINER_LUNG 420 +#define TRAINER_LAO_2 421 +#define TRAINER_LAO_3 422 +#define TRAINER_LAO_4 423 +#define TRAINER_LAO_5 424 +#define TRAINER_JOCELYN 425 +#define TRAINER_LAURA 426 +#define TRAINER_CYNDY_1 427 +#define TRAINER_CORA 428 +#define TRAINER_PAULA 429 +#define TRAINER_CYNDY_2 430 +#define TRAINER_CYNDY_3 431 +#define TRAINER_CYNDY_4 432 +#define TRAINER_CYNDY_5 433 +#define TRAINER_MADELINE_1 434 +#define TRAINER_CLARISSA 435 +#define TRAINER_ANGELICA 436 +#define TRAINER_MADELINE_2 437 +#define TRAINER_MADELINE_3 438 +#define TRAINER_MADELINE_4 439 +#define TRAINER_MADELINE_5 440 +#define TRAINER_BEVERLY 441 +#define TRAINER_IMANI 442 +#define TRAINER_KYLA 443 +#define TRAINER_DENISE 444 +#define TRAINER_BETH 445 +#define TRAINER_TARA 446 +#define TRAINER_MISSY 447 +#define TRAINER_ALICE 448 +#define TRAINER_JENNY_1 449 +#define TRAINER_GRACE 450 +#define TRAINER_TANYA 451 +#define TRAINER_SHARON 452 +#define TRAINER_NIKKI 453 +#define TRAINER_BRENDA 454 +#define TRAINER_KATIE 455 +#define TRAINER_SUSIE 456 +#define TRAINER_KARA 457 +#define TRAINER_DANA 458 +#define TRAINER_SIENNA 459 +#define TRAINER_DEBRA 460 +#define TRAINER_LINDA 461 +#define TRAINER_KAYLEE 462 +#define TRAINER_LAUREL 463 +#define TRAINER_CARLEE 464 +#define TRAINER_JENNY_2 465 +#define TRAINER_JENNY_3 466 +#define TRAINER_JENNY_4 467 +#define TRAINER_JENNY_5 468 +#define TRAINER_HEIDI 469 +#define TRAINER_BECKY 470 +#define TRAINER_CAROL 471 +#define TRAINER_NANCY 472 +#define TRAINER_MARTHA 473 +#define TRAINER_DIANA_1 474 +#define TRAINER_CEDRIC 475 +#define TRAINER_IRENE 476 +#define TRAINER_DIANA_2 477 +#define TRAINER_DIANA_3 478 +#define TRAINER_DIANA_4 479 +#define TRAINER_DIANA_5 480 +#define TRAINER_AMY_AND_LIV_1 481 +#define TRAINER_AMY_AND_LIV_2 482 +#define TRAINER_GINA_AND_MIA_1 483 +#define TRAINER_MIU_AND_YUKI 484 +#define TRAINER_AMY_AND_LIV_3 485 +#define TRAINER_GINA_AND_MIA_2 486 +#define TRAINER_AMY_AND_LIV_4 487 +#define TRAINER_AMY_AND_LIV_5 488 +#define TRAINER_AMY_AND_LIV_6 489 +#define TRAINER_HUEY 490 +#define TRAINER_EDMOND 491 +#define TRAINER_ERNEST_1 492 +#define TRAINER_DWAYNE 493 +#define TRAINER_PHILLIP 494 +#define TRAINER_LEONARD 495 +#define TRAINER_DUNCAN 496 +#define TRAINER_ERNEST_2 497 +#define TRAINER_ERNEST_3 498 +#define TRAINER_ERNEST_4 499 +#define TRAINER_ERNEST_5 500 +#define TRAINER_ELI 501 +#define TRAINER_ANNIKA 502 +#define TRAINER_JAZMYN 503 +#define TRAINER_JONAS 504 +#define TRAINER_KAYLEY 505 +#define TRAINER_AURON 506 +#define TRAINER_KELVIN 507 +#define TRAINER_MARLEY 508 +#define TRAINER_REYNA 509 +#define TRAINER_HUDSON 510 +#define TRAINER_CONOR 511 +#define TRAINER_EDWIN_1 512 +#define TRAINER_HECTOR 513 +#define TRAINER_TABITHA_1 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_ISAAC_1 538 +#define TRAINER_DAVIS 539 +#define TRAINER_MITCHELL 540 +#define TRAINER_ISAAC_2 541 +#define TRAINER_ISAAC_3 542 +#define TRAINER_ISAAC_4 543 +#define TRAINER_ISAAC_5 544 +#define TRAINER_LYDIA_1 545 +#define TRAINER_HALLE 546 +#define TRAINER_GARRISON 547 +#define TRAINER_LYDIA_2 548 +#define TRAINER_LYDIA_3 549 +#define TRAINER_LYDIA_4 550 +#define TRAINER_LYDIA_5 551 +#define TRAINER_JACKSON_1 552 +#define TRAINER_LORENZO 553 +#define TRAINER_SEBASTIAN 554 +#define TRAINER_JACKSON_2 555 +#define TRAINER_JACKSON_3 556 +#define TRAINER_JACKSON_4 557 +#define TRAINER_JACKSON_5 558 +#define TRAINER_CATHERINE_1 559 +#define TRAINER_JENNA 560 +#define TRAINER_SOPHIA 561 +#define TRAINER_CATHERINE_2 562 +#define TRAINER_CATHERINE_3 563 +#define TRAINER_CATHERINE_4 564 +#define TRAINER_CATHERINE_5 565 +#define TRAINER_JULIO 566 +#define TRAINER_GRUNT_27 567 +#define TRAINER_GRUNT_28 568 +#define TRAINER_GRUNT_29 569 +#define TRAINER_GRUNT_30 570 +#define TRAINER_MARC 571 +#define TRAINER_BRENDEN 572 +#define TRAINER_LILITH 573 +#define TRAINER_CRISTIAN 574 +#define TRAINER_SYLVIA 575 +#define TRAINER_LEONARDO 576 +#define TRAINER_ATHENA 577 +#define TRAINER_HARRISON 578 +#define TRAINER_GRUNT_31 579 +#define TRAINER_CLARENCE 580 +#define TRAINER_TERRY 581 +#define TRAINER_NATE 582 +#define TRAINER_KATHLEEN 583 +#define TRAINER_CLIFFORD 584 +#define TRAINER_NICHOLAS 585 +#define TRAINER_GRUNT_32 586 +#define TRAINER_GRUNT_33 587 +#define TRAINER_GRUNT_34 588 +#define TRAINER_GRUNT_35 589 +#define TRAINER_GRUNT_36 590 +#define TRAINER_MACEY 591 +#define TRAINER_BRENDAN_10 592 +#define TRAINER_BRENDAN_11 593 +#define TRAINER_PAXTON 594 +#define TRAINER_ISABELLA 595 +#define TRAINER_GRUNT_37 596 +#define TRAINER_TABITHA_2 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_TIANA 603 +#define TRAINER_HALEY_1 604 +#define TRAINER_JANICE 605 +#define TRAINER_VIVI 606 +#define TRAINER_HALEY_2 607 +#define TRAINER_HALEY_3 608 +#define TRAINER_HALEY_4 609 +#define TRAINER_HALEY_5 610 +#define TRAINER_SALLY 611 +#define TRAINER_ROBIN 612 +#define TRAINER_ANDREA 613 +#define TRAINER_CRISSY 614 +#define TRAINER_RICK 615 +#define TRAINER_LYLE 616 +#define TRAINER_JOSE 617 +#define TRAINER_DOUG 618 +#define TRAINER_GREG 619 +#define TRAINER_KENT 620 +#define TRAINER_JAMES_1 621 +#define TRAINER_JAMES_2 622 +#define TRAINER_JAMES_3 623 +#define TRAINER_JAMES_4 624 +#define TRAINER_JAMES_5 625 +#define TRAINER_BRICE 626 +#define TRAINER_TRENT_1 627 +#define TRAINER_LENNY 628 +#define TRAINER_LUCAS_1 629 +#define TRAINER_ALAN 630 +#define TRAINER_CLARK 631 +#define TRAINER_ERIC 632 +#define TRAINER_LUCAS_2 633 +#define TRAINER_MIKE_1 634 +#define TRAINER_MIKE_2 635 +#define TRAINER_TRENT_2 636 +#define TRAINER_TRENT_3 637 +#define TRAINER_TRENT_4 638 +#define TRAINER_TRENT_5 639 +#define TRAINER_DEZ_AND_LUKE 640 +#define TRAINER_LEA_AND_JED 641 +#define TRAINER_KIRA_AND_DAN_1 642 +#define TRAINER_KIRA_AND_DAN_2 643 +#define TRAINER_KIRA_AND_DAN_3 644 +#define TRAINER_KIRA_AND_DAN_4 645 +#define TRAINER_KIRA_AND_DAN_5 646 +#define TRAINER_JOHANNA 647 +#define TRAINER_GERALD 648 +#define TRAINER_VIVIAN 649 +#define TRAINER_DANIELLE 650 +#define TRAINER_HIDEO 651 +#define TRAINER_KEIGO 652 +#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_JONAH 667 +#define TRAINER_HENRY 668 +#define TRAINER_ROGER 669 +#define TRAINER_ALEXA 670 +#define TRAINER_RUBEN 671 +#define TRAINER_KOJI_1 672 +#define TRAINER_WAYNE 673 +#define TRAINER_AIDAN 674 +#define TRAINER_REED 675 +#define TRAINER_TISHA 676 +#define TRAINER_TORI_AND_TIA 677 +#define TRAINER_KIM_AND_IRIS 678 +#define TRAINER_TYRA_AND_IVY 679 +#define TRAINER_MEL_AND_PAUL 680 +#define TRAINER_JOHN_AND_JAY_1 681 +#define TRAINER_JOHN_AND_JAY_2 682 +#define TRAINER_JOHN_AND_JAY_3 683 +#define TRAINER_JOHN_AND_JAY_4 684 +#define TRAINER_JOHN_AND_JAY_5 685 +#define TRAINER_RELI_AND_IAN 686 +#define TRAINER_LILA_AND_ROY_1 687 +#define TRAINER_LILA_AND_ROY_2 688 +#define TRAINER_LILA_AND_ROY_3 689 +#define TRAINER_LILA_AND_ROY_4 690 +#define TRAINER_LILA_AND_ROY_5 691 +#define TRAINER_LISA_AND_RAY 692 +#define TRAINER_CHRIS 693 +#define TRAINER_DAWSON 694 +#define TRAINER_SARAH 695 +#define TRAINER_DARIAN 696 +#define TRAINER_HAILEY 697 +#define TRAINER_CHANDLER 698 +#define TRAINER_KALEB 699 +#define TRAINER_JOSEPH 700 +#define TRAINER_ALYSSA 701 +#define TRAINER_MARCOS 702 +#define TRAINER_RHETT 703 +#define TRAINER_TYRON 704 +#define TRAINER_CELINA 705 +#define TRAINER_BIANCA 706 +#define TRAINER_HAYDEN 707 +#define TRAINER_SOPHIE 708 +#define TRAINER_COBY 709 +#define TRAINER_LAWRENCE 710 +#define TRAINER_WYATT 711 +#define TRAINER_ANGELINA 712 +#define TRAINER_KAI 713 +#define TRAINER_CHARLOTTE 714 +#define TRAINER_DEANDRE 715 +#define TRAINER_GRUNT_38 716 +#define TRAINER_GRUNT_39 717 +#define TRAINER_GRUNT_40 718 +#define TRAINER_GRUNT_41 719 +#define TRAINER_GRUNT_42 720 +#define TRAINER_GRUNT_43 721 +#define TRAINER_GRUNT_44 722 +#define TRAINER_GRUNT_45 723 +#define TRAINER_GRUNT_46 724 +#define TRAINER_GRUNT_47 725 +#define TRAINER_GRUNT_48 726 +#define TRAINER_GRUNT_49 727 +#define TRAINER_GRUNT_50 728 +#define TRAINER_GRUNT_51 729 +#define TRAINER_GRUNT_52 730 +#define TRAINER_GRUNT_53 731 +#define TRAINER_TABITHA_3 732 +#define TRAINER_DARCY 733 +#define TRAINER_MAXIE_3 734 +#define TRAINER_PETE 735 +#define TRAINER_ISABELLE 736 +#define TRAINER_ANDRES_1 737 +#define TRAINER_JOSUE 738 +#define TRAINER_CAMRON 739 +#define TRAINER_CORY_1 740 +#define TRAINER_CAROLINA 741 +#define TRAINER_ELIJAH 742 +#define TRAINER_CELIA 743 +#define TRAINER_BRYAN 744 +#define TRAINER_BRANDEN 745 +#define TRAINER_BRYANT 746 +#define TRAINER_SHAYLA 747 +#define TRAINER_KYRA 748 +#define TRAINER_JAIDEN 749 +#define TRAINER_ALIX 750 +#define TRAINER_HELENE 751 +#define TRAINER_MARLENE 752 +#define TRAINER_DEVAN 753 +#define TRAINER_JOHNSON 754 +#define TRAINER_MELINA 755 +#define TRAINER_BRANDI 756 +#define TRAINER_AISHA 757 +#define TRAINER_MAKAYLA 758 +#define TRAINER_FABIAN 759 +#define TRAINER_DAYTON 760 +#define TRAINER_RACHEL 761 +#define TRAINER_LEONEL 762 +#define TRAINER_CALLIE 763 +#define TRAINER_CALE 764 +#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_ROXANNE_2 770 +#define TRAINER_ROXANNE_3 771 +#define TRAINER_ROXANNE_4 772 +#define TRAINER_ROXANNE_5 773 +#define TRAINER_BRAWLY_2 774 +#define TRAINER_BRAWLY_3 775 +#define TRAINER_BRAWLY_4 776 +#define TRAINER_BRAWLY_5 777 +#define TRAINER_WATTSON_2 778 +#define TRAINER_WATTSON_3 779 +#define TRAINER_WATTSON_4 780 +#define TRAINER_WATTSON_5 781 +#define TRAINER_FLANNERY_2 782 +#define TRAINER_FLANNERY_3 783 +#define TRAINER_FLANNERY_4 784 +#define TRAINER_FLANNERY_5 785 +#define TRAINER_NORMAN_2 786 +#define TRAINER_NORMAN_3 787 +#define TRAINER_NORMAN_4 788 +#define TRAINER_NORMAN_5 789 +#define TRAINER_WINONA_2 790 +#define TRAINER_WINONA_3 791 +#define TRAINER_WINONA_4 792 +#define TRAINER_WINONA_5 793 +#define TRAINER_TATE_AND_LIZA_2 794 +#define TRAINER_TATE_AND_LIZA_3 795 +#define TRAINER_TATE_AND_LIZA_4 796 +#define TRAINER_TATE_AND_LIZA_5 797 +#define TRAINER_JUAN_2 798 +#define TRAINER_JUAN_3 799 +#define TRAINER_JUAN_4 800 +#define TRAINER_JUAN_5 801 +#define TRAINER_ANGELO 802 +#define TRAINER_DARIUS 803 +#define TRAINER_STEVEN 804 +#define TRAINER_ANABEL 805 +#define TRAINER_TUCKER 806 +#define TRAINER_SPENSER 807 +#define TRAINER_GRETA 808 +#define TRAINER_NOLAND 809 +#define TRAINER_LUCY 810 +#define TRAINER_BRANDON 811 +#define TRAINER_ANDRES_2 812 +#define TRAINER_ANDRES_3 813 +#define TRAINER_ANDRES_4 814 +#define TRAINER_ANDRES_5 815 +#define TRAINER_CORY_2 816 +#define TRAINER_CORY_3 817 +#define TRAINER_CORY_4 818 +#define TRAINER_CORY_5 819 +#define TRAINER_PABLO_2 820 +#define TRAINER_PABLO_3 821 +#define TRAINER_PABLO_4 822 +#define TRAINER_PABLO_5 823 +#define TRAINER_KOJI_2 824 +#define TRAINER_KOJI_3 825 +#define TRAINER_KOJI_4 826 +#define TRAINER_KOJI_5 827 +#define TRAINER_CRISTIN_2 828 +#define TRAINER_CRISTIN_3 829 +#define TRAINER_CRISTIN_4 830 +#define TRAINER_CRISTIN_5 831 +#define TRAINER_FERNANDO_2 832 +#define TRAINER_FERNANDO_3 833 +#define TRAINER_FERNANDO_4 834 +#define TRAINER_FERNANDO_5 835 +#define TRAINER_SAWYER_2 836 +#define TRAINER_SAWYER_3 837 +#define TRAINER_SAWYER_4 838 +#define TRAINER_SAWYER_5 839 +#define TRAINER_GABRIELLE_2 840 +#define TRAINER_GABRIELLE_3 841 +#define TRAINER_GABRIELLE_4 842 +#define TRAINER_GABRIELLE_5 843 +#define TRAINER_THALIA_2 844 +#define TRAINER_THALIA_3 845 +#define TRAINER_THALIA_4 846 +#define TRAINER_THALIA_5 847 +#define TRAINER_MARIELA 848 +#define TRAINER_ALVARO 849 +#define TRAINER_EVERETT 850 +#define TRAINER_RED 851 +#define TRAINER_LEAF 852 +#define TRAINER_BRENDAN_16 853 +#define TRAINER_MAY_16 854 + +#define NO_OF_TRAINERS 854 + +#define TRAINER_PIC_HIKER 0 +#define TRAINER_PIC_AQUA_GRUNT_M 1 +#define TRAINER_PIC_POKEMON_BREEDER_F 2 +#define TRAINER_PIC_COOL_TRAINER_M 3 +#define TRAINER_PIC_BIRD_KEEPER 4 +#define TRAINER_PIC_COLLECTOR 5 +#define TRAINER_PIC_AQUA_GRUNT_F 6 +#define TRAINER_PIC_SWIMMER_M 7 +#define TRAINER_PIC_MAGMA_GRUNT_M 8 +#define TRAINER_PIC_EXPERT_M 9 +#define TRAINER_PIC_AQUA_ADMIN_M 10 +#define TRAINER_PIC_BLACK_BELT 11 +#define TRAINER_PIC_AQUA_ADMIN_F 12 +#define TRAINER_PIC_AQUA_LEADER_ARCHIE 13 +#define TRAINER_PIC_HEX_MANIAC 14 +#define TRAINER_PIC_AROMA_LADY 15 +#define TRAINER_PIC_RUIN_MANIAC 16 +#define TRAINER_PIC_INTERVIEWER 17 +#define TRAINER_PIC_TUBER_F 18 +#define TRAINER_PIC_TUBER_M 19 +#define TRAINER_PIC_COOL_TRAINER_F 20 +#define TRAINER_PIC_LADY 21 +#define TRAINER_PIC_BEAUTY 22 +#define TRAINER_PIC_RICH_BOY 23 +#define TRAINER_PIC_EXPERT_F 24 +#define TRAINER_PIC_POKEMANIAC 25 +#define TRAINER_PIC_MAGMA_GRUNT_F 26 +#define TRAINER_PIC_GUITARIST 27 +#define TRAINER_PIC_KINDLER 28 +#define TRAINER_PIC_CAMPER 29 +#define TRAINER_PIC_PICNICKER 30 +#define TRAINER_PIC_BUG_MANIAC 31 +#define TRAINER_PIC_POKEMON_BREEDER_M 32 +#define TRAINER_PIC_PSYCHIC_M 33 +#define TRAINER_PIC_PSYCHIC_F 34 +#define TRAINER_PIC_GENTLEMAN 35 +#define TRAINER_PIC_ELITE_FOUR_SIDNEY 36 +#define TRAINER_PIC_ELITE_FOUR_PHOEBE 37 +#define TRAINER_PIC_ELITE_FOUR_GLACIA 38 +#define TRAINER_PIC_ELITE_FOUR_DRAKE 39 +#define TRAINER_PIC_LEADER_ROXANNE 40 +#define TRAINER_PIC_LEADER_BRAWLY 41 +#define TRAINER_PIC_LEADER_WATTSON 42 +#define TRAINER_PIC_LEADER_FLANNERY 43 +#define TRAINER_PIC_LEADER_NORMAN 44 +#define TRAINER_PIC_LEADER_WINONA 45 +#define TRAINER_PIC_LEADER_TATE_AND_LIZA 46 +#define TRAINER_PIC_LEADER_JUAN 47 +#define TRAINER_PIC_SCHOOL_KID_M 48 +#define TRAINER_PIC_SCHOOL_KID_F 49 +#define TRAINER_PIC_SR_AND_JR 50 +#define TRAINER_PIC_WINSTRATE_M 51 +#define TRAINER_PIC_WINSTRATE_F 52 +#define TRAINER_PIC_YOUNGSTER 53 +#define TRAINER_PIC_CHAMPION_WALLACE 54 +#define TRAINER_PIC_FISHERMAN 55 +#define TRAINER_PIC_CYCLING_TRIATHLETE_M 56 +#define TRAINER_PIC_CYCLING_TRIATHLETE_F 57 +#define TRAINER_PIC_RUNNING_TRIATHLETE_M 58 +#define TRAINER_PIC_RUNNING_TRIATHLETE_F 59 +#define TRAINER_PIC_SWIMMING_TRIATHLETE_M 60 +#define TRAINER_PIC_SWIMMING_TRIATHLETE_F 61 +#define TRAINER_PIC_DRAGON_TAMER 62 +#define TRAINER_PIC_NINJA_BOY 63 +#define TRAINER_PIC_BATTLE_GIRL 64 +#define TRAINER_PIC_PARASOL_LADY 65 +#define TRAINER_PIC_SWIMMER_F 66 +#define TRAINER_PIC_TWINS 67 +#define TRAINER_PIC_SAILOR 68 +#define TRAINER_PIC_MAGMA_ADMIN 69 +#define TRAINER_PIC_WALLY 70 +#define TRAINER_PIC_BRENDAN 71 +#define TRAINER_PIC_MAY 72 +#define TRAINER_PIC_BUG_CATCHER 73 +#define TRAINER_PIC_POKEMON_RANGER_M 74 +#define TRAINER_PIC_POKEMON_RANGER_F 75 +#define TRAINER_PIC_MAGMA_LEADER_MAXIE 76 +#define TRAINER_PIC_LASS 77 +#define TRAINER_PIC_YOUNG_COUPLE 78 +#define TRAINER_PIC_OLD_COUPLE 79 +#define TRAINER_PIC_SIS_AND_BRO 80 +#define TRAINER_PIC_STEVEN 81 +#define TRAINER_PIC_SALON_MAIDEN_ANABEL 82 +#define TRAINER_PIC_DOME_ACE_TUCKER 83 +#define TRAINER_PIC_PALACE_MAVEN_SPENSER 84 +#define TRAINER_PIC_ARENA_TYCOON_GRETA 85 +#define TRAINER_PIC_FACTORY_HEAD_NOLAND 86 +#define TRAINER_PIC_PIKE_QUEEN_LUCY 87 +#define TRAINER_PIC_PYRAMID_KING_BRANDON 88 +#define TRAINER_PIC_RED 89 +#define TRAINER_PIC_LEAF 90 +#define TRAINER_PIC_RUBY_SAPPHIRE_BRENDAN 91 +#define TRAINER_PIC_RUBY_SAPPHIRE_MAY 92 + +#define FACILITY_CLASS_HIKER 0x0 +#define FACILITY_CLASS_TEAM_AQUA_1 0x1 +#define FACILITY_CLASS_PKMN_BREEDER_1 0x2 +#define FACILITY_CLASS_COOLTRAINER_1 0x3 +#define FACILITY_CLASS_BIRD_KEEPER 0x4 +#define FACILITY_CLASS_COLLECTOR 0x5 +#define FACILITY_CLASS_TEAM_AQUA_2 0x6 +#define FACILITY_CLASS_SWIMMER_M 0x7 +#define FACILITY_CLASS_TEAM_MAGMA_1 0x8 +#define FACILITY_CLASS_EXPERT_1 0x9 +#define FACILITY_CLASS_BLACK_BELT 0xa +#define FACILITY_CLASS_AQUA_LEADER 0xb +#define FACILITY_CLASS_HEX_MANIAC 0xc +#define FACILITY_CLASS_AROMA_LADY 0xd +#define FACILITY_CLASS_RUIN_MANIAC 0xe +#define FACILITY_CLASS_INTERVIEWER 0xf +#define FACILITY_CLASS_TUBER_1 0x10 +#define FACILITY_CLASS_TUBER_2 0x11 +#define FACILITY_CLASS_COOLTRAINER_2 0x12 +#define FACILITY_CLASS_LADY 0x13 +#define FACILITY_CLASS_BEAUTY 0x14 +#define FACILITY_CLASS_RICH_BOY 0x15 +#define FACILITY_CLASS_EXPERT_2 0x16 +#define FACILITY_CLASS_POKEMANIAC 0x17 +#define FACILITY_CLASS_TEAM_MAGMA_2 0x18 +#define FACILITY_CLASS_GUITARIST 0x19 +#define FACILITY_CLASS_KINDLER 0x1a +#define FACILITY_CLASS_CAMPER 0x1b +#define FACILITY_CLASS_PICNICKER 0x1c +#define FACILITY_CLASS_BUG_MANIAC 0x1d +#define FACILITY_CLASS_PSYCHIC_1 0x1e +#define FACILITY_CLASS_PSYCHIC_2 0x1f +#define FACILITY_CLASS_GENTLEMAN 0x20 +#define FACILITY_CLASS_ELITE_FOUR_1 0x21 +#define FACILITY_CLASS_ELITE_FOUR_2 0x22 +#define FACILITY_CLASS_LEADER_1 0x23 +#define FACILITY_CLASS_LEADER_2 0x24 +#define FACILITY_CLASS_LEADER_3 0x25 +#define FACILITY_CLASS_SCHOOL_KID_1 0x26 +#define FACILITY_CLASS_SCHOOL_KID_2 0x27 +#define FACILITY_CLASS_SR_AND_JR 0x28 +#define FACILITY_CLASS_POKEFAN_1 0x29 +#define FACILITY_CLASS_POKEFAN_2 0x2a +#define FACILITY_CLASS_YOUNGSTER 0x2b +#define FACILITY_CLASS_CHAMPION 0x2c +#define FACILITY_CLASS_FISHERMAN 0x2d +#define FACILITY_CLASS_TRIATHLETE_1 0x2e +#define FACILITY_CLASS_TRIATHLETE_2 0x2f +#define FACILITY_CLASS_TRIATHLETE_3 0x30 +#define FACILITY_CLASS_TRIATHLETE_4 0x31 +#define FACILITY_CLASS_TRIATHLETE_5 0x32 +#define FACILITY_CLASS_TRIATHLETE_6 0x33 +#define FACILITY_CLASS_DRAGON_TAMER 0x34 +#define FACILITY_CLASS_NINJA_BOY 0x35 +#define FACILITY_CLASS_BATTLE_GIRL 0x36 +#define FACILITY_CLASS_PARASOL_LADY 0x37 +#define FACILITY_CLASS_SWIMMER_F 0x38 +#define FACILITY_CLASS_TWINS 0x39 +#define FACILITY_CLASS_SAILOR 0x3a +#define FACILITY_CLASS_PKMN_TRAINER_1 0x3b +#define FACILITY_CLASS_PKMN_TRAINER_2 0x3c +#define FACILITY_CLASS_PKMN_TRAINER_3 0x3d +#define FACILITY_CLASS_PKMN_TRAINER_4 0x3e +#define FACILITY_CLASS_PKMN_TRAINER_5 0x3f +#define FACILITY_CLASS_PKMN_TRAINER_6 0x40 +#define FACILITY_CLASS_PKMN_TRAINER_7 0x41 +#define FACILITY_CLASS_PKMN_BREEDER_2 0x42 +#define FACILITY_CLASS_BUG_CATCHER 0x43 +#define FACILITY_CLASS_PKMN_RANGER_1 0x44 +#define FACILITY_CLASS_PKMN_RANGER_2 0x45 +#define FACILITY_CLASS_MAGMA_LEADER 0x46 +#define FACILITY_CLASS_LASS 0x47 +#define FACILITY_CLASS_YOUNG_COUPLE 0x48 +#define FACILITY_CLASS_OLD_COUPLE 0x49 +#define FACILITY_CLASS_SIS_AND_BRO 0x4a +#define FACILITY_CLASS_PKMN_TRAINER_8 0x4b +#define FACILITY_CLASS_SALON_MAIDEN 0x4c +#define FACILITY_CLASS_DOME_ACE 0x4d +#define FACILITY_CLASS_PKMN_TRAINER_9 0x4e +#define FACILITY_CLASS_PKMN_TRAINER_10 0x4f +#define FACILITY_CLASS_PKMN_TRAINER_11 0x50 +#define FACILITY_CLASS_PKMN_TRAINER_12 0x51 + +#define TRAINER_CLASS_PKMN_TRAINER_1 0x0 +#define TRAINER_CLASS_PKMN_TRAINER_2 0x1 +#define TRAINER_CLASS_HIKER 0x2 +#define TRAINER_CLASS_TEAM_AQUA 0x3 +#define TRAINER_CLASS_PKMN_BREEDER 0x4 +#define TRAINER_CLASS_COOLTRAINER_1 0x5 +#define TRAINER_CLASS_BIRD_KEEPER 0x6 +#define TRAINER_CLASS_COLLECTOR 0x7 +#define TRAINER_CLASS_SWIMMER_M 0x8 +#define TRAINER_CLASS_TEAM_MAGMA 0x9 +#define TRAINER_CLASS_EXPERT 0xa +#define TRAINER_CLASS_AQUA_ADMIN 0xb +#define TRAINER_CLASS_BLACK_BELT 0xc +#define TRAINER_CLASS_AQUA_LEADER 0xd +#define TRAINER_CLASS_HEX_MANIAC 0xe +#define TRAINER_CLASS_AROMA_LADY 0xf +#define TRAINER_CLASS_RUIN_MANIAC 0x10 +#define TRAINER_CLASS_INTERVIEWER 0x11 +#define TRAINER_CLASS_TUBER_1 0x12 +#define TRAINER_CLASS_TUBER_2 0x13 +#define TRAINER_CLASS_LADY 0x14 +#define TRAINER_CLASS_BEAUTY 0x15 +#define TRAINER_CLASS_RICH_BOY 0x16 +#define TRAINER_CLASS_POKEMANIAC 0x17 +#define TRAINER_CLASS_GUITARIST 0x18 +#define TRAINER_CLASS_KINDLER 0x19 +#define TRAINER_CLASS_CAMPER 0x1a +#define TRAINER_CLASS_PICNICKER 0x1b +#define TRAINER_CLASS_BUG_MANIAC 0x1c +#define TRAINER_CLASS_PSYCHIC 0x1d +#define TRAINER_CLASS_GENTLEMAN 0x1e +#define TRAINER_CLASS_ELITE_FOUR 0x1f +#define TRAINER_CLASS_LEADER 0x20 +#define TRAINER_CLASS_SCHOOL_KID 0x21 +#define TRAINER_CLASS_SR_AND_JR 0x22 +#define TRAINER_CLASS_WINSTRATE 0x23 +#define TRAINER_CLASS_POKEFAN 0x24 +#define TRAINER_CLASS_YOUNGSTER 0x25 +#define TRAINER_CLASS_CHAMPION 0x26 +#define TRAINER_CLASS_FISHERMAN 0x27 +#define TRAINER_CLASS_TRIATHLETE 0x28 +#define TRAINER_CLASS_DRAGON_TAMER 0x29 +#define TRAINER_CLASS_NINJA_BOY 0x2a +#define TRAINER_CLASS_BATTLE_GIRL 0x2b +#define TRAINER_CLASS_PARASOL_LADY 0x2c +#define TRAINER_CLASS_SWIMMER_F 0x2d +#define TRAINER_CLASS_TWINS 0x2e +#define TRAINER_CLASS_SAILOR 0x2f +#define TRAINER_CLASS_COOLTRAINER_2 0x30 +#define TRAINER_CLASS_MAGMA_ADMIN 0x31 +#define TRAINER_CLASS_PKMN_TRAINER_3 0x32 +#define TRAINER_CLASS_BUG_CATCHER 0x33 +#define TRAINER_CLASS_PKMN_RANGER 0x34 +#define TRAINER_CLASS_MAGMA_LEADER 0x35 +#define TRAINER_CLASS_LASS 0x36 +#define TRAINER_CLASS_YOUNG_COUPLE 0x37 +#define TRAINER_CLASS_OLD_COUPLE 0x38 +#define TRAINER_CLASS_SIS_AND_BRO 0x39 +#define TRAINER_CLASS_SALON_MAIDEN 0x3a +#define TRAINER_CLASS_DOME_ACE 0x3b +#define TRAINER_CLASS_PALACE_MAVEN 0x3c +#define TRAINER_CLASS_ARENA_TYCOON 0x3d +#define TRAINER_CLASS_FACTORY_HEAD 0x3e +#define TRAINER_CLASS_PIKE_QUEEN 0x3f +#define TRAINER_CLASS_PYRAMID_KING 0x40 +#define TRAINER_CLASS_PKMN_TRAINER_4 0x41 + +#define TRAINER_ENCOUNTER_MUSIC_MALE 0 // standard male encounter music +#define TRAINER_ENCOUNTER_MUSIC_FEMALE 1 // standard female encounter music +#define TRAINER_ENCOUNTER_MUSIC_GIRL 2 // used for male Tubers and Young Couples too +#define TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS 3 +#define TRAINER_ENCOUNTER_MUSIC_INTENSE 4 +#define TRAINER_ENCOUNTER_MUSIC_COOL 5 +#define TRAINER_ENCOUNTER_MUSIC_AQUA 6 +#define TRAINER_ENCOUNTER_MUSIC_MAGMA 7 +#define TRAINER_ENCOUNTER_MUSIC_SWIMMER 8 +#define TRAINER_ENCOUNTER_MUSIC_TWINS 9 // used for other trainer classes too +#define TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR 10 +#define TRAINER_ENCOUNTER_MUSIC_HIKER 11 // used for other trainer classes too +#define TRAINER_ENCOUNTER_MUSIC_INTERVIEWER 12 +#define TRAINER_ENCOUNTER_MUSIC_RICH 13 // Rich Boys and Gentlemen + +#define F_TRAINER_FEMALE (1 << 7) + +// All trainer parties specify the IV, level, and species for each Pokémon in the +// party. Some trainer parties also specify held items and custom moves for each +// Pokémon. +#define F_TRAINER_PARTY_CUSTOM_MOVESET (1 << 0) +#define F_TRAINER_PARTY_HELD_ITEM (1 << 1) + +#endif // GUARD_TRAINERS_H diff --git a/include/constants/vars.h b/include/constants/vars.h new file mode 100644 index 000000000..6dc8d0ccd --- /dev/null +++ b/include/constants/vars.h @@ -0,0 +1,288 @@ +#ifndef GUARD_CONSTANTS_VARS_H +#define GUARD_CONSTANTS_VARS_H + +#define VAR_0x3F20 0x3F20 + +#define VAR_0x4000 0x4000 +#define VAR_0x4001 0x4001 +#define VAR_0x4002 0x4002 +#define VAR_0x4003 0x4003 +#define VAR_0x4004 0x4004 +#define VAR_0x4005 0x4005 +#define VAR_0x4006 0x4006 +#define VAR_0x4007 0x4007 +#define VAR_0x4008 0x4008 +#define VAR_0x4009 0x4009 +#define VAR_0x400A 0x400A +#define VAR_0x400B 0x400B +#define VAR_0x400C 0x400C +#define VAR_0x400D 0x400D +#define VAR_0x400E 0x400E +#define VAR_0x400F 0x400F +#define VAR_0x4010 0x4010 +#define VAR_0x4011 0x4011 +#define VAR_0x4012 0x4012 +#define VAR_0x4013 0x4013 +#define VAR_0x4014 0x4014 +#define VAR_0x4015 0x4015 +#define VAR_0x4016 0x4016 +#define VAR_0x4017 0x4017 +#define VAR_0x4018 0x4018 +#define VAR_0x4019 0x4019 +#define VAR_0x401A 0x401A +#define VAR_0x401B 0x401B +#define VAR_0x401C 0x401C +#define VAR_0x401D 0x401D +#define VAR_0x401E 0x401E +#define VAR_0x401F 0x401F +#define VAR_RECYCLE_GOODS 0x4020 +#define VAR_REPEL_STEP_COUNT 0x4021 +#define VAR_ICE_STEP_COUNT 0x4022 +#define VAR_FIRST_POKE 0x4023 +#define VAR_MIRAGE_RND_H 0x4024 +#define VAR_MIRAGE_RND_L 0x4025 +#define VAR_SECRET_BASE_MAP 0x4026 +#define VAR_0x4027 0x4027 +#define VAR_0x4028 0x4028 +#define VAR_0x4029 0x4029 +#define VAR_HAPPINESS_STEP_COUNTER 0x402A +#define VAR_POISON_STEP_COUNTER 0x402B +#define VAR_RESET_RTC_ENABLE 0x402C +#define VAR_0x402D 0x402D +#define VAR_0x402E 0x402E + +#define VAR_FRONTIER_MANIAC_FACILITY 0x402F + +#define VAR_FRONTIER_GAMBLER_FACILITY 0x4030 +#define VAR_FRONTIER_GAMBLER_SET_FACILITY_F 0x4031 +#define VAR_FRONTIER_GAMBLER_AMOUNT_BET 0x4032 +#define VAR_FRONTIER_GAMBLER_PLACED_BET_F 0x4033 + +#define VAR_0x4034 0x4034 +#define VAR_0x4035 0x4035 +#define VAR_STORAGE_UNKNOWN 0x4036 +#define VAR_0x4037 0x4037 +#define VAR_0x4038 0x4038 +#define VAR_0x4039 0x4039 +#define VAR_0x403A 0x403A +#define VAR_0x403B 0x403B +#define VAR_0x403C 0x403C +#define VAR_0x403D 0x403D +#define VAR_ALTERING_CAVE_WILD_SET 0x403E +#define VAR_0x403F 0x403F +#define VAR_DAYS 0x4040 +#define VAR_0x4041 0x4041 +#define VAR_0x4042 0x4042 +#define VAR_DEPT_STORE_FLOOR 0x4043 +#define VAR_0x4044 0x4044 +#define VAR_POKELOT_PRIZE 0x4045 +#define VAR_NATIONAL_DEX 0x4046 +#define VAR_SEEDOT_SIZE_RECORD 0x4047 +#define VAR_ASH_GATHER_COUNT 0x4048 +#define VAR_BIRCH_STATE 0x4049 +#define VAR_CRUISE_STEP_COUNT 0x404A +#define VAR_POKELOT_RND1 0x404B +#define VAR_POKELOT_RND2 0x404C +#define VAR_0x404D 0x404D +#define VAR_0x404E 0x404E +#define VAR_LOTAD_SIZE_RECORD 0x404F +#define VAR_0x4050 0x4050 +#define VAR_0x4051 0x4051 +#define VAR_0x4052 0x4052 +#define VAR_0x4053 0x4053 +#define VAR_0x4054 0x4054 +#define VAR_0x4055 0x4055 +#define VAR_0x4056 0x4056 +#define VAR_0x4057 0x4057 +#define VAR_0x4058 0x4058 +#define VAR_0x4059 0x4059 +#define VAR_0x405A 0x405A +#define VAR_0x405B 0x405B +#define VAR_0x405C 0x405C +#define VAR_0x405D 0x405D +#define VAR_0x405E 0x405E +#define VAR_0x405F 0x405F +#define VAR_0x4060 0x4060 +#define VAR_0x4061 0x4061 +#define VAR_0x4062 0x4062 +#define VAR_0x4063 0x4063 +#define VAR_0x4064 0x4064 +#define VAR_0x4065 0x4065 +#define VAR_0x4066 0x4066 +#define VAR_0x4067 0x4067 +#define VAR_0x4068 0x4068 +#define VAR_0x4069 0x4069 +#define VAR_0x406A 0x406A +#define VAR_0x406B 0x406B +#define VAR_0x406C 0x406C +#define VAR_0x406D 0x406D +#define VAR_0x406E 0x406E +#define VAR_0x406F 0x406F +#define VAR_0x4070 0x4070 +#define VAR_0x4071 0x4071 +#define VAR_0x4072 0x4072 +#define VAR_0x4073 0x4073 +#define VAR_0x4074 0x4074 +#define VAR_0x4075 0x4075 +#define VAR_0x4076 0x4076 +#define VAR_0x4077 0x4077 +#define VAR_0x4078 0x4078 +#define VAR_0x4079 0x4079 +#define VAR_0x407A 0x407A +#define VAR_0x407B 0x407B +#define VAR_0x407C 0x407C +#define VAR_0x407D 0x407D +#define VAR_0x407E 0x407E +#define VAR_0x407F 0x407F +#define VAR_0x4080 0x4080 +#define VAR_0x4081 0x4081 +#define VAR_0x4082 0x4082 +#define VAR_0x4083 0x4083 +#define VAR_0x4084 0x4084 +#define VAR_0x4085 0x4085 +#define VAR_0x4086 0x4086 +#define VAR_0x4087 0x4087 +#define VAR_0x4088 0x4088 +#define VAR_0x4089 0x4089 +#define VAR_0x408A 0x408A +#define VAR_0x408B 0x408B +#define VAR_0x408C 0x408C +#define VAR_0x408D 0x408D +#define VAR_0x408E 0x408E +#define VAR_0x408F 0x408F +#define VAR_0x4090 0x4090 +#define VAR_0x4091 0x4091 +#define VAR_0x4092 0x4092 +#define VAR_0x4093 0x4093 +#define VAR_0x4094 0x4094 +#define VAR_0x4095 0x4095 +#define VAR_0x4096 0x4096 +#define VAR_0x4097 0x4097 +#define VAR_0x4098 0x4098 +#define VAR_0x4099 0x4099 +#define VAR_0x409A 0x409A +#define VAR_0x409B 0x409B +#define VAR_0x409C 0x409C +#define VAR_0x409D 0x409D +#define VAR_0x409E 0x409E +#define VAR_0x409F 0x409F +#define VAR_0x40A0 0x40A0 +#define VAR_0x40A1 0x40A1 +#define VAR_0x40A2 0x40A2 +#define VAR_0x40A3 0x40A3 +#define VAR_0x40A4 0x40A4 +#define VAR_0x40A5 0x40A5 +#define VAR_0x40A6 0x40A6 +#define VAR_0x40A7 0x40A7 +#define VAR_0x40A8 0x40A8 +#define VAR_0x40A9 0x40A9 +#define VAR_0x40AA 0x40AA +#define VAR_0x40AB 0x40AB +#define VAR_0x40AC 0x40AC +#define VAR_0x40AD 0x40AD +#define VAR_0x40AE 0x40AE +#define VAR_0x40AF 0x40AF +#define VAR_0x40B0 0x40B0 +#define VAR_0x40B1 0x40B1 +#define VAR_0x40B2 0x40B2 +#define VAR_0x40B3 0x40B3 +#define VAR_PORTHOLE 0x40B4 +#define VAR_0x40B5 0x40B5 +#define VAR_0x40B6 0x40B6 +#define VAR_0x40B7 0x40B7 +#define VAR_0x40B8 0x40B8 +#define VAR_0x40B9 0x40B9 +#define VAR_0x40BA 0x40BA +#define VAR_0x40BB 0x40BB +#define VAR_0x40BC 0x40BC +#define VAR_0x40BD 0x40BD +#define VAR_0x40BE 0x40BE +#define VAR_0x40BF 0x40BF +#define VAR_0x40C0 0x40C0 +#define VAR_0x40C1 0x40C1 +#define VAR_0x40C2 0x40C2 +#define VAR_0x40C3 0x40C3 +#define VAR_0x40C4 0x40C4 +#define VAR_0x40C5 0x40C5 +#define VAR_0x40C6 0x40C6 +#define VAR_0x40C7 0x40C7 +#define VAR_0x40C8 0x40C8 +#define VAR_0x40C9 0x40C9 +#define VAR_0x40CA 0x40CA +#define VAR_0x40CB 0x40CB +#define VAR_0x40CC 0x40CC +#define VAR_0x40CD 0x40CD +#define VAR_0x40CE 0x40CE +#define VAR_FRONTIER_FACILITY 0x40CF +#define VAR_0x40D0 0x40D0 +#define VAR_0x40D1 0x40D1 +#define VAR_0x40D2 0x40D2 +#define VAR_0x40D3 0x40D3 +#define VAR_0x40D4 0x40D4 +#define VAR_0x40D5 0x40D5 +#define VAR_0x40D6 0x40D6 +#define VAR_0x40D7 0x40D7 +#define VAR_0x40D8 0x40D8 +#define VAR_0x40D9 0x40D9 +#define VAR_0x40DA 0x40DA +#define VAR_0x40DB 0x40DB +#define VAR_0x40DC 0x40DC +#define VAR_0x40DD 0x40DD +#define VAR_0x40DE 0x40DE +#define VAR_0x40DF 0x40DF +#define VAR_0x40E0 0x40E0 +#define VAR_0x40E1 0x40E1 +#define VAR_0x40E2 0x40E2 +#define VAR_0x40E3 0x40E3 +#define VAR_0x40E4 0x40E4 +#define VAR_0x40E5 0x40E5 +#define VAR_DAILY_SLOTS 0x40E6 +#define VAR_DAILY_WILDS 0x40E7 +#define VAR_DAILY_BLENDER 0x40E8 +#define VAR_DAILY_PLANTED_BERRIES 0x40E9 +#define VAR_DAILY_PICKED_BERRIES 0x40EA +#define VAR_DAILY_ROULETTE 0x40EB +#define VAR_0x40EC 0x40EC +#define VAR_0x40ED 0x40ED +#define VAR_0x40EE 0x40EE +#define VAR_0x40EF 0x40EF +#define VAR_0x40F0 0x40F0 +#define VAR_DAILY_BP 0x40F1 +#define VAR_0x40F2 0x40F2 +#define VAR_0x40F3 0x40F3 +#define VAR_0x40F4 0x40F4 +#define VAR_0x40F5 0x40F5 +#define VAR_0x40F6 0x40F6 +#define VAR_0x40F7 0x40F7 +#define VAR_0x40F8 0x40F8 +#define VAR_0x40F9 0x40F9 +#define VAR_0x40FA 0x40FA +#define VAR_0x40FB 0x40FB +#define VAR_0x40FC 0x40FC +#define VAR_0x40FD 0x40FD +#define VAR_0x40FE 0x40FE +#define VAR_0x40FF 0x40FF + +#define VAR_0x8000 0x8000 +#define VAR_0x8001 0x8001 +#define VAR_0x8002 0x8002 +#define VAR_0x8003 0x8003 +#define VAR_0x8004 0x8004 +#define VAR_0x8005 0x8005 +#define VAR_0x8006 0x8006 +#define VAR_0x8007 0x8007 +#define VAR_0x8008 0x8008 +#define VAR_0x8009 0x8009 +#define VAR_0x800A 0x800A +#define VAR_0x800B 0x800B +#define VAR_FACING 0x800C +#define VAR_RESULT 0x800D +#define VAR_ITEM_ID 0x800E +#define VAR_LAST_TALKED 0x800F +#define VAR_CONTEST_RANK 0x8010 +#define VAR_CONTEST_CATEGORY 0x8011 +#define VAR_MON_BOX_ID 0x8012 +#define VAR_MON_BOX_POS 0x8013 +#define VAR_0x8014 0x8014 + +#endif // GUARD_CONSTANTS_VARS_H diff --git a/include/data/bard_music/pokemon.h b/include/data/bard_music/pokemon.h index 7b4081a3c..693005360 100644 --- a/include/data/bard_music/pokemon.h +++ b/include/data/bard_music/pokemon.h @@ -1,6 +1,6 @@ #ifndef GUARD_DATA_BARD_MUSIC_POKEMON_H #define GUARD_DATA_BARD_MUSIC_POKEMON_H -#include "species.h" +#include "constants/species.h" const u16 gUnknown_085F5490 = NUM_SPECIES; diff --git a/include/decompress.h b/include/decompress.h index 36be803e0..34a678cda 100644 --- a/include/decompress.h +++ b/include/decompress.h @@ -28,4 +28,6 @@ void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32 void LoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic); void LoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic); +u32 sub_8034974(const u8 *ptr); + #endif // GUARD_DECOMPRESS_H diff --git a/include/decoration.h b/include/decoration.h index ead621c5f..c841bbfc1 100644 --- a/include/decoration.h +++ b/include/decoration.h @@ -1,130 +1,6 @@ #ifndef GUARD_DECORATION_H #define GUARD_DECORATION_H -enum DecoId { - /*000*/ DECOR_NONE, - /*001*/ DECOR_SMALL_DESK, - /*002*/ DECOR_POKEMON_DESK, - /*003*/ DECOR_HEAVY_DESK, - /*004*/ DECOR_RAGGED_DESK, - /*005*/ DECOR_COMFORT_DESK, - /*006*/ DECOR_PRETTY_DESK, - /*007*/ DECOR_BRICK_DESK, - /*008*/ DECOR_CAMP_DESK, - /*009*/ DECOR_HARD_DESK, - /*010*/ DECOR_SMALL_CHAIR, - /*011*/ DECOR_POKEMON_CHAIR, - /*012*/ DECOR_HEAVY_CHAIR, - /*013*/ DECOR_PRETTY_CHAIR, - /*014*/ DECOR_COMFORT_CHAIR, - /*015*/ DECOR_RAGGED_CHAIR, - /*016*/ DECOR_BRICK_CHAIR, - /*017*/ DECOR_CAMP_CHAIR, - /*018*/ DECOR_HARD_CHAIR, - /*019*/ DECOR_RED_PLANT, - /*020*/ DECOR_TROPICAL_PLANT, - /*021*/ DECOR_PRETTY_FLOWERS, - /*022*/ DECOR_COLORFUL_PLANT, - /*023*/ DECOR_BIG_PLANT, - /*024*/ DECOR_GORGEOUS_PLANT, - /*025*/ DECOR_RED_BRICK, - /*026*/ DECOR_YELLOW_BRICK, - /*027*/ DECOR_BLUE_BRICK, - /*028*/ DECOR_RED_BALLOON, - /*029*/ DECOR_BLUE_BALLOON, - /*030*/ DECOR_YELLOW_BALLOON, - /*031*/ DECOR_RED_TENT, - /*032*/ DECOR_BLUE_TENT, - /*033*/ DECOR_SOLID_BOARD, - /*034*/ DECOR_SLIDE, - /*035*/ DECOR_FENCE_LENGTH, - /*036*/ DECOR_FENCE_WIDTH, - /*037*/ DECOR_TIRE, - /*038*/ DECOR_STAND, - /*039*/ DECOR_MUD_BALL, - /*040*/ DECOR_BREAKABLE_DOOR, - /*041*/ DECOR_SAND_ORNAMENT, - /*042*/ DECOR_SILVER_SHIELD, - /*043*/ DECOR_GOLD_SHIELD, - /*044*/ DECOR_GLASS_ORNAMENT, - /*045*/ DECOR_TV, - /*046*/ DECOR_ROUND_TV, - /*047*/ DECOR_CUTE_TV, - /*048*/ DECOR_GLITTER_MAT, - /*049*/ DECOR_JUMP_MAT, - /*050*/ DECOR_SPIN_MAT, - /*051*/ DECOR_C_LOW_NOTE_MAT, - /*052*/ DECOR_D_NOTE_MAT, - /*053*/ DECOR_E_NOTE_MAT, - /*054*/ DECOR_F_NOTE_MAT, - /*055*/ DECOR_G_NOTE_MAT, - /*056*/ DECOR_A_NOTE_MAT, - /*057*/ DECOR_B_NOTE_MAT, - /*058*/ DECOR_C_HIGH_NOTE_MAT, - /*059*/ DECOR_SURF_MAT, - /*060*/ DECOR_THUNDER_MAT, - /*061*/ DECOR_FIRE_BLAST_MAT, - /*062*/ DECOR_POWDER_SNOW_MAT, - /*063*/ DECOR_ATTRACT_MAT, - /*064*/ DECOR_FISSURE_MAT, - /*065*/ DECOR_SPIKES_MAT, - /*066*/ DECOR_BALL_POSTER, - /*067*/ DECOR_GREEN_POSTER, - /*068*/ DECOR_RED_POSTER, - /*069*/ DECOR_BLUE_POSTER, - /*070*/ DECOR_CUTE_POSTER, - /*071*/ DECOR_PIKA_POSTER, - /*072*/ DECOR_LONG_POSTER, - /*073*/ DECOR_SEA_POSTER, - /*074*/ DECOR_SKY_POSTER, - /*075*/ DECOR_KISS_POSTER, - /*076*/ DECOR_PICHU_DOLL, - /*077*/ DECOR_PIKACHU_DOLL, - /*078*/ DECOR_MARILL_DOLL, - /*079*/ DECOR_TOGEPI_DOLL, - /*080*/ DECOR_CYNDAQUIL_DOLL, - /*081*/ DECOR_CHIKORITA_DOLL, - /*082*/ DECOR_TOTODILE_DOLL, - /*083*/ DECOR_JIGGLYPUFF_DOLL, - /*084*/ DECOR_MEOWTH_DOLL, - /*085*/ DECOR_CLEFAIRY_DOLL, - /*086*/ DECOR_DITTO_DOLL, - /*087*/ DECOR_SMOOCHUM_DOLL, - /*088*/ DECOR_TREECKO_DOLL, - /*089*/ DECOR_TORCHIC_DOLL, - /*090*/ DECOR_MUDKIP_DOLL, - /*091*/ DECOR_DUSKULL_DOLL, - /*092*/ DECOR_WYNAUT_DOLL, - /*093*/ DECOR_BALTOY_DOLL, - /*094*/ DECOR_KECLEON_DOLL, - /*095*/ DECOR_AZURILL_DOLL, - /*096*/ DECOR_SKITTY_DOLL, - /*097*/ DECOR_SWABLU_DOLL, - /*098*/ DECOR_GULPIN_DOLL, - /*099*/ DECOR_LOTAD_DOLL, - /*100*/ DECOR_SEEDOT_DOLL, - /*101*/ DECOR_PIKA_CUSHION, - /*102*/ DECOR_ROUND_CUSHION, - /*103*/ DECOR_KISS_CUSHION, - /*104*/ DECOR_ZIGZAG_CUSHION, - /*105*/ DECOR_SPIN_CUSHION, - /*106*/ DECOR_DIAMOND_CUSHION, - /*107*/ DECOR_BALL_CUSHION, - /*108*/ DECOR_GRASS_CUSHION, - /*109*/ DECOR_FIRE_CUSHION, - /*110*/ DECOR_WATER_CUSHION, - /*111*/ DECOR_SNORLAX_DOLL, - /*112*/ DECOR_RHYDON_DOLL, - /*113*/ DECOR_LAPRAS_DOLL, - /*114*/ DECOR_VENUSAUR_DOLL, - /*115*/ DECOR_CHARIZARD_DOLL, - /*116*/ DECOR_BLASTOISE_DOLL, - /*117*/ DECOR_WAILMER_DOLL, - /*118*/ DECOR_REGIROCK_DOLL, - /*119*/ DECOR_REGICE_DOLL, - /*120*/ DECOR_REGISTEEL_DOLL -}; - enum DecorPerm { /* * The nomenclature here describes collision and placement permissions, in that order. diff --git a/include/dewford_trend.h b/include/dewford_trend.h index 01e5d9762..dac5ea6c9 100644 --- a/include/dewford_trend.h +++ b/include/dewford_trend.h @@ -3,5 +3,6 @@ void InitDewfordTrend(void); void UpdateDewfordTrendPerDay(u16); +void UpdateDewfordTrendPerDay(u16 days); #endif // GUARD_DEWFORDTREND_H diff --git a/include/event_data.h b/include/event_data.h index f0ab90ae4..f829d3b87 100644 --- a/include/event_data.h +++ b/include/event_data.h @@ -1,8 +1,8 @@ #ifndef GUARD_EVENT_DATA_H #define GUARD_EVENT_DATA_H -#include "flags.h" -#include "vars.h" +#include "constants/flags.h" +#include "constants/vars.h" void InitEventData(void); void ClearTempFieldEventData(void); diff --git a/include/event_scripts.h b/include/event_scripts.h index 844f1052a..a54e0e463 100755 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -7,10 +7,18 @@ extern const u8 gUnknown_0823B4E8[]; extern const u8 gUnknown_0823B5E9[]; +extern const u8 EventScript_TestSignpostMsg[]; +extern const u8 EventScript_TryGetTrainerScript[]; extern const u8 EventScript_275BB7[]; extern const u8 EventScript_275D0C[]; extern const u8 EventScript_275D1F[]; extern const u8 EventScript_275D2E[]; +extern const u8 EventScript_271354[]; +extern const u8 EventScript_2713C2[]; +extern const u8 EventScript_TryDoDoubleTrainerBattle[]; +extern const u8 EventScript_271362[]; +extern const u8 EventScript_TryDoDoubleRematchBattle[]; +extern const u8 EventScript_2713D1[]; extern const u8 EventScript_2766A2[]; extern const u8 EventScript_2766A6[]; diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 0107fa10f..696d1c2e2 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -76,6 +76,8 @@ void MoveCoords(u8, s16 *, s16 *); bool8 FieldObjectIsSpecialAnimActive(struct MapObject *); u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *); u8 GetFieldObjectIdByXYZ(u16 x, u16 y, u8 z); +void npc_set_running_behaviour_etc(struct MapObject *mapObject, u8 animPattern); +u8 npc_running_behaviour_by_direction(u8 direction); // Exported data declarations diff --git a/include/field_poison.h b/include/field_poison.h new file mode 100644 index 000000000..d1a4c823b --- /dev/null +++ b/include/field_poison.h @@ -0,0 +1,19 @@ +#ifndef GUARD_FIELD_POISON_H +#define GUARD_FIELD_POISON_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations + +enum { + FLDPSN_NONE, + FLDPSN_PSN, + FLDPSN_FNT +}; + +void sub_80F972C(void); +unsigned int overworld_poison(void); + +#endif //GUARD_FIELD_POISON_H diff --git a/include/field_screen.h b/include/field_screen.h index 089e79cc4..cfc0d081f 100644 --- a/include/field_screen.h +++ b/include/field_screen.h @@ -9,5 +9,6 @@ void pal_fill_black(void); bool8 sub_80ABDFC(void); void sub_80AF168(void); +void UpdateWeatherPerDay(u16 days); #endif //GUARD_FIELD_SCREEN_H diff --git a/include/flags.h b/include/flags.h deleted file mode 100644 index 30c28c0c2..000000000 --- a/include/flags.h +++ /dev/null @@ -1,118 +0,0 @@ -#ifndef GUARD_FLAGS_H -#define GUARD_FLAGS_H - -#define FLAG_LEGENDARIES_IN_SOOTOPOLIS 0x53 -#define FLAG_PENDING_DAYCARE_EGG 0x86 - -#define FLAG_TRAINER_FLAG_START 0x500 - -#define TRAINERS_FLAG_NO 0x356 -#define CODE_FLAGS (FLAG_TRAINER_FLAG_START + TRAINERS_FLAG_NO + 0xA) // 0x860 - -// SYSTEM FLAGS - -#define FLAG_SYS_POKEMON_GET (CODE_FLAGS + 0) -#define FLAG_SYS_POKEDEX_GET (CODE_FLAGS + 1) -#define FLAG_SYS_POKENAV_GET (CODE_FLAGS + 2) -// third one appears unused -#define FLAG_SYS_GAME_CLEAR (CODE_FLAGS + 4) -#define FLAG_SYS_CHAT_USED (CODE_FLAGS + 5) -#define FLAG_SYS_HIPSTER_MEET (CODE_FLAGS + 6) - -// badges -#define FLAG_BADGE01_GET (CODE_FLAGS + 7) -#define FLAG_BADGE02_GET (CODE_FLAGS + 8) -#define FLAG_BADGE03_GET (CODE_FLAGS + 9) -#define FLAG_BADGE04_GET (CODE_FLAGS + 0xA) -#define FLAG_BADGE05_GET (CODE_FLAGS + 0xB) -#define FLAG_BADGE06_GET (CODE_FLAGS + 0xC) -#define FLAG_BADGE07_GET (CODE_FLAGS + 0xD) -#define FLAG_BADGE08_GET (CODE_FLAGS + 0xE) - -// cities and towns -#define FLAG_VISITED_LITTLEROOT_TOWN (CODE_FLAGS + 0xF) -#define FLAG_VISITED_OLDALE_TOWN (CODE_FLAGS + 0x10) -#define FLAG_VISITED_DEWFORD_TOWN (CODE_FLAGS + 0x11) -#define FLAG_VISITED_LAVARIDGE_TOWN (CODE_FLAGS + 0x12) -#define FLAG_VISITED_FALLARBOR_TOWN (CODE_FLAGS + 0x13) -#define FLAG_VISITED_VERDANTURF_TOWN (CODE_FLAGS + 0x14) -#define FLAG_VISITED_PACIFIDLOG_TOWN (CODE_FLAGS + 0x15) -#define FLAG_VISITED_PETALBURG_CITY (CODE_FLAGS + 0x16) -#define FLAG_VISITED_SLATEPORT_CITY (CODE_FLAGS + 0x17) -#define FLAG_VISITED_MAUVILLE_CITY (CODE_FLAGS + 0x18) -#define FLAG_VISITED_RUSTBORO_CITY (CODE_FLAGS + 0x19) -#define FLAG_VISITED_FORTREE_CITY (CODE_FLAGS + 0x1A) -#define FLAG_VISITED_LILYCOVE_CITY (CODE_FLAGS + 0x1B) -#define FLAG_VISITED_MOSSDEEP_CITY (CODE_FLAGS + 0x1C) -#define FLAG_VISITED_SOOTOPOLIS_CITY (CODE_FLAGS + 0x1D) -#define FLAG_VISITED_EVER_GRANDE_CITY (CODE_FLAGS + 0x1E) - -#define FLAG_SYS_UNKNOWN_880 (CODE_FLAGS + 0x20) - -#define FLAG_SYS_USE_FLASH (CODE_FLAGS + 0x28) -#define FLAG_SYS_USE_STRENGTH (CODE_FLAGS + 0x29) -#define FLAG_SYS_WEATHER_CTRL (CODE_FLAGS + 0x2A) -#define FLAG_SYS_CYCLING_ROAD (CODE_FLAGS + 0x2B) -#define FLAG_SYS_SAFARI_MODE (CODE_FLAGS + 0x2C) -#define FLAG_SYS_CRUISE_MODE (CODE_FLAGS + 0x2D) - -#define FLAG_SYS_TV_HOME (CODE_FLAGS + 0x30) -#define FLAG_SYS_TV_WATCH (CODE_FLAGS + 0x31) -#define FLAG_SYS_TV_START (CODE_FLAGS + 0x32) -#define FLAG_SYS_POPWORD_INPUT (CODE_FLAGS + 0x33) -#define FLAG_SYS_MIX_RECORD (CODE_FLAGS + 0x34) -#define FLAG_SYS_CLOCK_SET (CODE_FLAGS + 0x35) -#define FLAG_SYS_NATIONAL_DEX (CODE_FLAGS + 0x36) -#define FLAG_SYS_CAVE_SHIP (CODE_FLAGS + 0x37) -#define FLAG_SYS_CAVE_WONDER (CODE_FLAGS + 0x38) -#define FLAG_SYS_CAVE_BATTLE (CODE_FLAGS + 0x39) -#define FLAG_SYS_SHOAL_TIDE (CODE_FLAGS + 0x3A) -#define FLAG_SYS_RIBBON_GET (CODE_FLAGS + 0x3B) - -#define FLAG_UNLOCK_BATTLE_FRONTIER (CODE_FLAGS + 0x48) -#define FLAG_UNLOCK_SOUTHERN_ISLAND (CODE_FLAGS + 0x49) - -#define FLAG_SYS_PC_LANETTE (CODE_FLAGS + 0x4B) -#define FLAG_SYS_MYSTERY_EVENT_ENABLE (CODE_FLAGS + 0x4C) -#define FLAG_SYS_ENC_UP_ITEM (CODE_FLAGS + 0x4D) -#define FLAG_SYS_ENC_DOWN_ITEM (CODE_FLAGS + 0x4E) -#define FLAG_SYS_BRAILLE_DIG (CODE_FLAGS + 0x4F) -#define FLAG_SYS_BRAILLE_STRENGTH (CODE_FLAGS + 0x50) -#define FLAG_SYS_BRAILLE_WAIT (CODE_FLAGS + 0x51) -#define FLAG_SYS_BRAILLE_FLY (CODE_FLAGS + 0x52) -#define FLAG_SYS_HAS_EON_TICKET (CODE_FLAGS + 0x53) - -#define FLAG_SYS_POKEMON_LEAGUE_FLY (CODE_FLAGS + 0x54) - -#define FLAG_SYS_TV_LATI (CODE_FLAGS + 0x5D) - -#define FLAG_SYS_SHOAL_ITEM (CODE_FLAGS + 0x5F) -#define FLAG_SYS_B_DASH (CODE_FLAGS + 0x60) // got Running Shoes -#define FLAG_SYS_CTRL_OBJ_DELETE (CODE_FLAGS + 0x61) -#define FLAG_SYS_RESET_RTC_ENABLE (CODE_FLAGS + 0x62) - -#define FLAG_SYS_TOWER_SILVER (CODE_FLAGS + 0x64) -#define FLAG_SYS_TOWER_GOLD (CODE_FLAGS + 0x65) -#define FLAG_SYS_DOME_SILVER (CODE_FLAGS + 0x66) -#define FLAG_SYS_DOME_GOLD (CODE_FLAGS + 0x67) -#define FLAG_SYS_PALACE_SILVER (CODE_FLAGS + 0x68) -#define FLAG_SYS_PALACE_GOLD (CODE_FLAGS + 0x69) -#define FLAG_SYS_ARENA_SILVER (CODE_FLAGS + 0x6A) -#define FLAG_SYS_ARENA_GOLD (CODE_FLAGS + 0x6B) -#define FLAG_SYS_FACTORY_SILVER (CODE_FLAGS + 0x6C) -#define FLAG_SYS_FACTORY_GOLD (CODE_FLAGS + 0x6D) -#define FLAG_SYS_PIKE_SILVER (CODE_FLAGS + 0x6E) -#define FLAG_SYS_PIKE_GOLD (CODE_FLAGS + 0x6F) -#define FLAG_SYS_PYRAMID_SILVER (CODE_FLAGS + 0x70) -#define FLAG_SYS_PYRAMID_GOLD (CODE_FLAGS + 0x71) -#define FLAG_SYS_FRONTIER_PASS (CODE_FLAGS + 0x72) - -#define FLAG_SYS_STORAGE_UNKNOWN_FLAG (CODE_FLAGS + 0x77) - -#define FLAG_SYS_MYSTERY_GIFT_ENABLE (CODE_FLAGS + 0x7B) - -// SPECIAL FLAGS (unknown purpose) - -#define SPECIAL_FLAG_1 0x4001 - -#endif // GUARD_FLAGS_H diff --git a/include/fldeff_80F9BCC.h b/include/fldeff_80F9BCC.h index ecce04943..d57665c68 100644 --- a/include/fldeff_80F9BCC.h +++ b/include/fldeff_80F9BCC.h @@ -9,5 +9,6 @@ void sub_80FA5E4(s16 id, s16 x, s16 y); void sub_80FA794(s16 x, s16 y); +void overworld_poison_effect(void); #endif //GUARD_FLDEFF_80F9BCC_H diff --git a/include/gba/m4a_internal.h b/include/gba/m4a_internal.h index 6cdfd13e1..659302fd5 100644 --- a/include/gba/m4a_internal.h +++ b/include/gba/m4a_internal.h @@ -406,7 +406,7 @@ void m4aSoundVSyncOff(void); void m4aMPlayTempoControl(struct MusicPlayerInfo *mplayInfo, u16 tempo); void m4aMPlayVolumeControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 volume); -void m4aMPlayPitchControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 pitch); +void m4aMPlayPitchControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s16 pitch); void m4aMPlayPanpotControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s8 pan); void ClearModM(struct MusicPlayerTrack *track); void m4aMPlayModDepthSet(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u8 modDepth); diff --git a/include/gba/macro.h b/include/gba/macro.h index 7b6b98c06..ad4820bcf 100644 --- a/include/gba/macro.h +++ b/include/gba/macro.h @@ -78,6 +78,81 @@ #define DmaCopy16(dmaNum, src, dest, size) DMA_COPY(dmaNum, src, dest, size, 16) #define DmaCopy32(dmaNum, src, dest, size) DMA_COPY(dmaNum, src, dest, size, 32) +#define DmaCopyLarge(dmaNum, src, dest, size, block, bit) \ +{ \ + const void *_src = src; \ + void *_dest = dest; \ + u32 _size = size; \ + while (1) \ + { \ + DmaCopy##bit(dmaNum, _src, _dest, (block)); \ + _src += (block); \ + _dest += (block); \ + _size -= (block); \ + if (_size <= (block)) \ + { \ + DmaCopy##bit(dmaNum, _src, _dest, _size); \ + break; \ + } \ + } \ +} + +#define DmaCopyLarge16(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 16) + +#define DmaCopyLarge32(dmaNum, src, dest, size, block) DmaCopyLarge(dmaNum, src, dest, size, block, 32) + +#define DmaFillLarge(dmaNum, value, dest, size, block, bit) \ +{ \ + void *_dest = dest; \ + u32 _size = size; \ + while (1) \ + { \ + DmaFill##bit(dmaNum, value, _dest, (block)); \ + _dest += (block); \ + _size -= (block); \ + if (_size <= (block)) \ + { \ + DmaFill##bit(dmaNum, value, _dest, _size); \ + break; \ + } \ + } \ +} + +#define DmaFillLarge16(dmaNum, value, dest, size, block) DmaFillLarge(dmaNum, value, dest, size, block, 16) + +#define DmaFillLarge32(dmaNum, value, dest, size, block) DmaFillLarge(dmaNum, value, dest, size, block, 32) + +#define DmaCopyDefvars(dmaNum, src, dest, size, bit) \ +{ \ + const void *_src = src; \ + void *_dest = dest; \ + u32 _size = size; \ + DmaCopy##bit(dmaNum, _src, _dest, _size); \ +} + +#define DmaCopy16Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 16) +#define DmaCopy32Defvars(dmaNum, src, dest, size) DmaCopyDefvars(dmaNum, src, dest, size, 32) + +#define DmaFillDefvars(dmaNum, value, dest, size, bit) \ +{ \ + void *_dest = dest; \ + u32 _size = size; \ + DmaFill##bit(dmaNum, value, _dest, _size); \ +} + +#define DmaFill16Defvars(dmaNum, value, dest, size) DmaFillDefvars(dmaNum, value, dest, size, 16) +#define DmaFill32Defvars(dmaNum, value, dest, size) DmaFillDefvars(dmaNum, value, dest, size, 32) + +#define DmaClearDefvars(dmaNum, dest, size, bit) \ +{ \ + void *_dest = dest; \ + u32 _size = size; \ + DmaClear##bit(dmaNum, _dest, _size); \ +} + +#define DmaClear16Defvars(dmaNum, dest, size) DmaClearDefvars(dmaNum, dest, size, 16) +#define DmaClear32Defvars(dmaNum, dest, size) DmaClearDefvars(dmaNum, dest, size, 32) + #define DmaStop(dmaNum) \ { \ vu16 *dmaRegs = (vu16 *)REG_ADDR_DMA##dmaNum; \ diff --git a/include/global.h b/include/global.h index f3ec9ce33..9fe0d975f 100644 --- a/include/global.h +++ b/include/global.h @@ -36,6 +36,24 @@ extern u8 gStringVar2[]; extern u8 gStringVar3[]; extern u8 gStringVar4[]; +// There are many quirks in the source code which have overarching behavioral differences from +// a number of other files. For example, diploma.c seems to declare rodata before each use while +// other files declare out of order and must be at the beginning. There are also a number of +// macros which differ from one file to the next due to the method of obtaining the result, such +// as these below. Because of this, there is a theory (Two Team Theory) that states that these +// programming projects had more than 1 "programming team" which utilized different macros for +// each of the files that were worked on. +#define T1_READ_8(ptr) ((ptr)[0]) +#define T1_READ_16(ptr) ((ptr)[0] | ((ptr)[1] << 8)) +#define T1_READ_32(ptr) ((ptr)[0] | ((ptr)[1] << 8) | ((ptr)[2] << 16) | ((ptr)[3] << 24)) +#define T1_READ_PTR(ptr) (u8*) T1_READ_32(ptr) + +// T2_READ_8 is a duplicate to remain consistent with each group. +#define T2_READ_8(ptr) ((ptr)[0]) +#define T2_READ_16(ptr) ((ptr)[0] + ((ptr)[1] << 8)) +#define T2_READ_32(ptr) ((ptr)[0] + ((ptr)[1] << 8) + ((ptr)[2] << 16) + ((ptr)[3] << 24)) +#define T2_READ_PTR(ptr) (void*) T2_READ_32(ptr) + enum { VERSION_SAPPHIRE = 1, @@ -45,10 +63,15 @@ enum VERSION_LEAF_GREEN = 5, }; -enum LanguageId { +enum LanguageId +{ LANGUAGE_JAPANESE = 1, LANGUAGE_ENGLISH = 2, + LANGUAGE_FRENCH = 3, + LANGUAGE_ITALIAN = 4, LANGUAGE_GERMAN = 5, + // 6 goes unused but the theory is it was meant to be Korean + LANGUAGE_SPANISH = 7, }; #define GAME_LANGUAGE (LANGUAGE_ENGLISH) @@ -218,7 +241,7 @@ struct SaveBlock2 /*0x1EC*/ struct BerryCrush berryCrush; /*0x1FC*/ struct PokemonJumpResults pokeJump; /*0x20C*/ struct BerryPickingResults berryPick; - /*0x214*/ u8 field_214[1032]; + /*0x21C*/ u8 field_21C[1032]; /*0x624*/ u16 contestLinkResults[20]; // 4 positions for 5 categories, possibly a struct or a 2d array // All below could be a one giant struct @@ -240,7 +263,7 @@ struct SaveBlock2 /*0xCA9*/ u8 field_CA9_f : 1; // 0x80 /*0xCAA*/ u16 field_CAA[4]; /*0xCB2*/ u16 battlePyramidWildHeaderId; - /*0xCB4*/ u8 field_CB4[82]; + /*0xCB4*/ u16 field_CB4[41]; /*0xD06*/ u8 field_D06; /*0xD07*/ u8 field_D07; /*0xD08*/ u8 filler_D08[0x112]; @@ -284,7 +307,7 @@ struct SecretBaseRecord /*0x1B34*/ u8 partyEVs[6]; }; -#include "game_stat.h" +#include "constants/game_stat.h" #include "global.fieldmap.h" #include "global.berry.h" #include "global.tv.h" @@ -356,10 +379,12 @@ struct EasyChatPair u16 words[2]; }; /*size = 0x8*/ +#define MAIL_WORDS_COUNT 9 + struct MailStruct { - /*0x00*/ u16 words[9]; - /*0x12*/ u8 playerName[8]; + /*0x00*/ u16 words[MAIL_WORDS_COUNT]; + /*0x12*/ u8 playerName[PLAYER_NAME_LENGTH]; /*0x1A*/ u8 trainerId[4]; /*0x1E*/ u16 species; /*0x20*/ u16 itemId; diff --git a/include/graphics.h b/include/graphics.h index c50fdef3f..aad5c0190 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -5,6 +5,32 @@ #ifndef GUARD_GRAPHICS_H #define GUARD_GRAPHICS_H +extern const u8 gInterfaceGfx_PokeBall[]; +extern const u8 gInterfacePal_PokeBall[]; +extern const u8 gInterfaceGfx_GreatBall[]; +extern const u8 gInterfacePal_GreatBall[]; +extern const u8 gInterfaceGfx_SafariBall[]; +extern const u8 gInterfacePal_SafariBall[]; +extern const u8 gInterfaceGfx_UltraBall[]; +extern const u8 gInterfacePal_UltraBall[]; +extern const u8 gInterfaceGfx_MasterBall[]; +extern const u8 gInterfacePal_MasterBall[]; +extern const u8 gInterfaceGfx_NetBall[]; +extern const u8 gInterfacePal_NetBall[]; +extern const u8 gInterfaceGfx_DiveBall[]; +extern const u8 gInterfacePal_DiveBall[]; +extern const u8 gInterfaceGfx_NestBall[]; +extern const u8 gInterfacePal_NestBall[]; +extern const u8 gInterfaceGfx_RepeatBall[]; +extern const u8 gInterfacePal_RepeatBall[]; +extern const u8 gInterfaceGfx_TimerBall[]; +extern const u8 gInterfacePal_TimerBall[]; +extern const u8 gInterfaceGfx_LuxuryBall[]; +extern const u8 gInterfacePal_LuxuryBall[]; +extern const u8 gInterfaceGfx_PremierBall[]; +extern const u8 gInterfacePal_PremierBall[]; +extern const u8 gOpenPokeballGfx[]; + extern const u8 gItemIcon_QuestionMark[]; extern const u8 gItemIconPalette_QuestionMark[]; extern const u8 gUnknown_08DB7AA0[]; @@ -91,5 +117,28 @@ extern const u8 gUnknown_08DB9F08[]; extern const u8 gUnknown_08DB9FFC[]; extern const u8 gUnknown_08DBA020[]; extern const u8 gUnknown_08DBA12C[]; +extern const u8 gUnknown_08DCC05C[]; +extern const u16 gUnknown_08DCC01C[]; +extern const u16 gUnknown_08DCC03C[]; +extern const u8 gUnknown_08DCC648[]; +extern const u8 gUnknown_08DCC908[]; +extern const u8 gUnknown_08DD87C0[]; +extern const u8 gUnknown_08DD8EE0[]; +extern const u16 gUnknown_08DD8780[]; +extern const u8 gUnknown_08DD90E0[]; +extern const u8 gUnknown_08DD9718[]; +extern const u16 gUnknown_08DD9080[]; +extern const u8 gUnknown_08DD98B4[]; +extern const u8 gUnknown_08DD9E58[]; +extern const u16 gUnknown_08DD9874[]; +extern const u8 gUnknown_08DDA02C[]; +extern const u8 gUnknown_08DDA63C[]; +extern const u16 gUnknown_08DD9FEC[]; +extern const u8 gUnknown_08DDA840[]; +extern const u8 gUnknown_08DDAE40[]; +extern const u16 gUnknown_08DDA800[]; +extern const u8 gUnknown_08DDB020[]; +extern const u8 gUnknown_08DDB2C4[]; +extern const u16 gUnknown_08DDAFE0[]; #endif //GUARD_GRAPHICS_H diff --git a/include/international_string_util.h b/include/international_string_util.h index e7876162e..f4ba827e3 100644 --- a/include/international_string_util.h +++ b/include/international_string_util.h @@ -14,7 +14,7 @@ s32 sub_81DB3D8(const struct MenuAction *str, u8* arg1, s32 arg2); // sub_81DB41C // CopyMonCategoryText // sub_81DB494 -// sub_81DB4DC +void PadNameString(u8 *dst, u8 padWith); // sub_81DB554 // sub_81DB5AC u32 sub_81DB604(const u8 *); diff --git a/include/item_menu_icons.h b/include/item_menu_icons.h new file mode 100644 index 000000000..553e7c262 --- /dev/null +++ b/include/item_menu_icons.h @@ -0,0 +1,6 @@ +#ifndef GUARD_ITEM_MENU_ICONS +#define GUARD_ITEM_MENU_ICONS + +u8 sub_80D511C(u8 a0, u8 a1, u8 a2, u8 a3); + +#endif // GUARD_ITEM_MENU_ICONS diff --git a/include/items.h b/include/items.h deleted file mode 100644 index 1f6c288c5..000000000 --- a/include/items.h +++ /dev/null @@ -1,392 +0,0 @@ -#ifndef GUARD_ITEMS_H -#define GUARD_ITEMS_H - -enum -{ - ITEM_NONE, // 0x000 - ITEM_MASTER_BALL, // 0x001 - ITEM_ULTRA_BALL, // 0x002 - ITEM_GREAT_BALL, // 0x003 - ITEM_POKE_BALL, // 0x004 - ITEM_SAFARI_BALL, // 0x005 - ITEM_NET_BALL, // 0x006 - ITEM_DIVE_BALL, // 0x007 - ITEM_NEST_BALL, // 0x008 - ITEM_REPEAT_BALL, // 0x009 - ITEM_TIMER_BALL, // 0x00a - ITEM_LUXURY_BALL, // 0x00b - ITEM_PREMIER_BALL, // 0x00c - ITEM_POTION, // 0x00d - ITEM_ANTIDOTE, // 0x00e - ITEM_BURN_HEAL, // 0x00f - ITEM_ICE_HEAL, // 0x010 - ITEM_AWAKENING, // 0x011 - ITEM_PARALYZE_HEAL, // 0x012 - ITEM_FULL_RESTORE, // 0x013 - ITEM_MAX_POTION, // 0x014 - ITEM_HYPER_POTION, // 0x015 - ITEM_SUPER_POTION, // 0x016 - ITEM_FULL_HEAL, // 0x017 - ITEM_REVIVE, // 0x018 - ITEM_MAX_REVIVE, // 0x019 - ITEM_FRESH_WATER, // 0x01a - ITEM_SODA_POP, // 0x01b - ITEM_LEMONADE, // 0x01c - ITEM_MOOMOO_MILK, // 0x01d - ITEM_ENERGY_POWDER, // 0x01e - ITEM_ENERGY_ROOT, // 0x01f - ITEM_HEAL_POWDER, // 0x020 - ITEM_REVIVAL_HERB, // 0x021 - ITEM_ETHER, // 0x022 - ITEM_MAX_ETHER, // 0x023 - ITEM_ELIXIR, // 0x024 - ITEM_MAX_ELIXIR, // 0x025 - ITEM_LAVA_COOKIE, // 0x026 - ITEM_BLUE_FLUTE, // 0x027 - ITEM_YELLOW_FLUTE, // 0x028 - ITEM_RED_FLUTE, // 0x029 - ITEM_BLACK_FLUTE, // 0x02a - ITEM_WHITE_FLUTE, // 0x02b - ITEM_BERRY_JUICE, // 0x02c - ITEM_SACRED_ASH, // 0x02d - ITEM_SHOAL_SALT, // 0x02e - ITEM_SHOAL_SHELL, // 0x02f - ITEM_RED_SHARD, // 0x030 - ITEM_BLUE_SHARD, // 0x031 - ITEM_YELLOW_SHARD, // 0x032 - ITEM_GREEN_SHARD, // 0x033 - ITEM_034, - ITEM_035, - ITEM_036, - ITEM_037, - ITEM_038, - ITEM_039, - ITEM_03A, - ITEM_03B, - ITEM_03C, - ITEM_03D, - ITEM_03E, - ITEM_HP_UP, // 0x03f - ITEM_PROTEIN, // 0x040 - ITEM_IRON, // 0x041 - ITEM_CARBOS, // 0x042 - ITEM_CALCIUM, // 0x043 - ITEM_RARE_CANDY, // 0x044 - ITEM_PP_UP, // 0x045 - ITEM_ZINC, // 0x046 - ITEM_PP_MAX, // 0x047 - ITEM_048, - ITEM_GUARD_SPEC, // 0x049 - ITEM_DIRE_HIT, // 0x04a - ITEM_X_ATTACK, // 0x04b - ITEM_X_DEFEND, // 0x04c - ITEM_X_SPEED, // 0x04d - ITEM_X_ACCURACY, // 0x04e - ITEM_X_SPECIAL, // 0x04f - ITEM_POKE_DOLL, // 0x050 - ITEM_FLUFFY_TAIL, // 0x051 - ITEM_052, - ITEM_SUPER_REPEL, // 0x053 - ITEM_MAX_REPEL, // 0x054 - ITEM_ESCAPE_ROPE, // 0x055 - ITEM_REPEL, // 0x056 - ITEM_057, - ITEM_058, - ITEM_059, - ITEM_05A, - ITEM_05B, - ITEM_05C, - ITEM_SUN_STONE, // 0x05d - ITEM_MOON_STONE, // 0x05e - ITEM_FIRE_STONE, // 0x05f - ITEM_THUNDER_STONE, // 0x060 - ITEM_WATER_STONE, // 0x061 - ITEM_LEAF_STONE, // 0x062 - ITEM_063, - ITEM_064, - ITEM_065, - ITEM_066, - ITEM_TINY_MUSHROOM, // 0x067 - ITEM_BIG_MUSHROOM, // 0x068 - ITEM_069, - ITEM_PEARL, // 0x06a - ITEM_BIG_PEARL, // 0x06b - ITEM_STARDUST, // 0x06c - ITEM_STAR_PIECE, // 0x06d - ITEM_NUGGET, // 0x06e - ITEM_HEART_SCALE, // 0x06f - ITEM_070, - ITEM_071, - ITEM_072, - ITEM_073, - ITEM_074, - ITEM_075, - ITEM_076, - ITEM_077, - ITEM_078, - ITEM_ORANGE_MAIL, // 0x079 - ITEM_HARBOR_MAIL, // 0x07a - ITEM_GLITTER_MAIL, // 0x07b - ITEM_MECH_MAIL, // 0x07c - ITEM_WOOD_MAIL, // 0x07d - ITEM_WAVE_MAIL, // 0x07e - ITEM_BEAD_MAIL, // 0x07f - ITEM_SHADOW_MAIL, // 0x080 - ITEM_TROPIC_MAIL, // 0x081 - ITEM_DREAM_MAIL, // 0x082 - ITEM_FAB_MAIL, // 0x083 - ITEM_RETRO_MAIL, // 0x084 - ITEM_CHERI_BERRY, // 0x085 - ITEM_CHESTO_BERRY, // 0x086 - ITEM_PECHA_BERRY, // 0x087 - ITEM_RAWST_BERRY, // 0x088 - ITEM_ASPEAR_BERRY, // 0x089 - ITEM_LEPPA_BERRY, // 0x08a - ITEM_ORAN_BERRY, // 0x08b - ITEM_PERSIM_BERRY, // 0x08c - ITEM_LUM_BERRY, // 0x08d - ITEM_SITRUS_BERRY, // 0x08e - ITEM_FIGY_BERRY, // 0x08f - ITEM_WIKI_BERRY, // 0x090 - ITEM_MAGO_BERRY, // 0x091 - ITEM_AGUAV_BERRY, // 0x092 - ITEM_IAPAPA_BERRY, // 0x093 - ITEM_RAZZ_BERRY, // 0x094 - ITEM_BLUK_BERRY, // 0x095 - ITEM_NANAB_BERRY, // 0x096 - ITEM_WEPEAR_BERRY, // 0x097 - ITEM_PINAP_BERRY, // 0x098 - ITEM_POMEG_BERRY, // 0x099 - ITEM_KELPSY_BERRY, // 0x09a - ITEM_QUALOT_BERRY, // 0x09b - ITEM_HONDEW_BERRY, // 0x09c - ITEM_GREPA_BERRY, // 0x09d - ITEM_TAMATO_BERRY, // 0x09e - ITEM_CORNN_BERRY, // 0x09f - ITEM_MAGOST_BERRY, // 0x0a0 - ITEM_RABUTA_BERRY, // 0x0a1 - ITEM_NOMEL_BERRY, // 0x0a2 - ITEM_SPELON_BERRY, // 0x0a3 - ITEM_PAMTRE_BERRY, // 0x0a4 - ITEM_WATMEL_BERRY, // 0x0a5 - ITEM_DURIN_BERRY, // 0x0a6 - ITEM_BELUE_BERRY, // 0x0a7 - ITEM_LIECHI_BERRY, // 0x0a8 - ITEM_GANLON_BERRY, // 0x0a9 - ITEM_SALAC_BERRY, // 0x0aa - ITEM_PETAYA_BERRY, // 0x0ab - ITEM_APICOT_BERRY, // 0x0ac - ITEM_LANSAT_BERRY, // 0x0ad - ITEM_STARF_BERRY, // 0x0ae - ITEM_ENIGMA_BERRY, // 0x0af - ITEM_0B0, - ITEM_0B1, - ITEM_0B2, - ITEM_BRIGHT_POWDER, // 0x0b3 - ITEM_WHITE_HERB, // 0x0b4 - ITEM_MACHO_BRACE, // 0x0b5 - ITEM_EXP_SHARE, // 0x0b6 - ITEM_QUICK_CLAW, // 0x0b7 - ITEM_SOOTHE_BELL, // 0x0b8 - ITEM_MENTAL_HERB, // 0x0b9 - ITEM_CHOICE_BAND, // 0x0ba - ITEM_KINGS_ROCK, // 0x0bb - ITEM_SILVER_POWDER, // 0x0bc - ITEM_AMULET_COIN, // 0x0bd - ITEM_CLEANSE_TAG, // 0x0be - ITEM_SOUL_DEW, // 0x0bf - ITEM_DEEP_SEA_TOOTH, // 0x0c0 - ITEM_DEEP_SEA_SCALE, // 0x0c1 - ITEM_SMOKE_BALL, // 0x0c2 - ITEM_EVERSTONE, // 0x0c3 - ITEM_FOCUS_BAND, // 0x0c4 - ITEM_LUCKY_EGG, // 0x0c5 - ITEM_SCOPE_LENS, // 0x0c6 - ITEM_METAL_COAT, // 0x0c7 - ITEM_LEFTOVERS, // 0x0c8 - ITEM_DRAGON_SCALE, // 0x0c9 - ITEM_LIGHT_BALL, // 0x0ca - ITEM_SOFT_SAND, // 0x0cb - ITEM_HARD_STONE, // 0x0cc - ITEM_MIRACLE_SEED, // 0x0cd - ITEM_BLACK_GLASSES, // 0x0ce - ITEM_BLACK_BELT, // 0x0cf - ITEM_MAGNET, // 0x0d0 - ITEM_MYSTIC_WATER, // 0x0d1 - ITEM_SHARP_BEAK, // 0x0d2 - ITEM_POISON_BARB, // 0x0d3 - ITEM_NEVER_MELT_ICE, // 0x0d4 - ITEM_SPELL_TAG, // 0x0d5 - ITEM_TWISTED_SPOON, // 0x0d6 - ITEM_CHARCOAL, // 0x0d7 - ITEM_DRAGON_FANG, // 0x0d8 - ITEM_SILK_SCARF, // 0x0d9 - ITEM_UP_GRADE, // 0x0da - ITEM_SHELL_BELL, // 0x0db - ITEM_SEA_INCENSE, // 0x0dc - ITEM_LAX_INCENSE, // 0x0dd - ITEM_LUCKY_PUNCH, // 0x0de - ITEM_METAL_POWDER, // 0x0df - ITEM_THICK_CLUB, // 0x0e0 - ITEM_STICK, // 0x0e1 - ITEM_0E2, - ITEM_0E3, - ITEM_0E4, - ITEM_0E5, - ITEM_0E6, - ITEM_0E7, - ITEM_0E8, - ITEM_0E9, - ITEM_0EA, - ITEM_0EB, - ITEM_0EC, - ITEM_0ED, - ITEM_0EE, - ITEM_0EF, - ITEM_0F0, - ITEM_0F1, - ITEM_0F2, - ITEM_0F3, - ITEM_0F4, - ITEM_0F5, - ITEM_0F6, - ITEM_0F7, - ITEM_0F8, - ITEM_0F9, - ITEM_0FA, - ITEM_0FB, - ITEM_0FC, - ITEM_0FD, - ITEM_RED_SCARF, // 0x0fe - ITEM_BLUE_SCARF, // 0x0ff - ITEM_PINK_SCARF, // 0x100 - ITEM_GREEN_SCARF, // 0x101 - ITEM_YELLOW_SCARF, // 0x102 - ITEM_MACH_BIKE, // 0x103 - ITEM_COIN_CASE, // 0x104 - ITEM_ITEMFINDER, // 0x105 - ITEM_OLD_ROD, // 0x106 - ITEM_GOOD_ROD, // 0x107 - ITEM_SUPER_ROD, // 0x108 - ITEM_SS_TICKET, // 0x109 - ITEM_CONTEST_PASS, // 0x10a - ITEM_10B, - ITEM_WAILMER_PAIL, // 0x10c - ITEM_DEVON_GOODS, // 0x10d - ITEM_SOOT_SACK, // 0x10e - ITEM_BASEMENT_KEY, // 0x10f - ITEM_ACRO_BIKE, // 0x110 - ITEM_POKEBLOCK_CASE, // 0x111 - ITEM_LETTER, // 0x112 - ITEM_EON_TICKET, // 0x113 - ITEM_RED_ORB, // 0x114 - ITEM_BLUE_ORB, // 0x115 - ITEM_SCANNER, // 0x116 - ITEM_GO_GOGGLES, // 0x117 - ITEM_METEORITE, // 0x118 - ITEM_ROOM_1_KEY, // 0x119 - ITEM_ROOM_2_KEY, // 0x11a - ITEM_ROOM_4_KEY, // 0x11b - ITEM_ROOM_6_KEY, // 0x11c - ITEM_STORAGE_KEY, // 0x11d - ITEM_ROOT_FOSSIL, // 0x11e - ITEM_CLAW_FOSSIL, // 0x11f - ITEM_DEVON_SCOPE, // 0x120 - ITEM_TM01, // 0x121 - ITEM_TM02, // 0x122 - ITEM_TM03, // 0x123 - ITEM_TM04, // 0x124 - ITEM_TM05, // 0x125 - ITEM_TM06, // 0x126 - ITEM_TM07, // 0x127 - ITEM_TM08, // 0x128 - ITEM_TM09, // 0x129 - ITEM_TM10, // 0x12a - ITEM_TM11, // 0x12b - ITEM_TM12, // 0x12c - ITEM_TM13, // 0x12d - ITEM_TM14, // 0x12e - ITEM_TM15, // 0x12f - ITEM_TM16, // 0x130 - ITEM_TM17, // 0x131 - ITEM_TM18, // 0x132 - ITEM_TM19, // 0x133 - ITEM_TM20, // 0x134 - ITEM_TM21, // 0x135 - ITEM_TM22, // 0x136 - ITEM_TM23, // 0x137 - ITEM_TM24, // 0x138 - ITEM_TM25, // 0x139 - ITEM_TM26, // 0x13a - ITEM_TM27, // 0x13b - ITEM_TM28, // 0x13c - ITEM_TM29, // 0x13d - ITEM_TM30, // 0x13e - ITEM_TM31, // 0x13f - ITEM_TM32, // 0x140 - ITEM_TM33, // 0x141 - ITEM_TM34, // 0x142 - ITEM_TM35, // 0x143 - ITEM_TM36, // 0x144 - ITEM_TM37, // 0x145 - ITEM_TM38, // 0x146 - ITEM_TM39, // 0x147 - ITEM_TM40, // 0x148 - ITEM_TM41, // 0x149 - ITEM_TM42, // 0x14a - ITEM_TM43, // 0x14b - ITEM_TM44, // 0x14c - ITEM_TM45, // 0x14d - ITEM_TM46, // 0x14e - ITEM_TM47, // 0x14f - ITEM_TM48, // 0x150 - ITEM_TM49, // 0x151 - ITEM_TM50, // 0x152 - ITEM_HM01, // 0x153 - ITEM_HM02, // 0x154 - ITEM_HM03, // 0x155 - ITEM_HM04, // 0x156 - ITEM_HM05, // 0x157 - ITEM_HM06, // 0x158 - ITEM_HM07, // 0x159 - ITEM_HM08, // 0x15a - ITEM_15B, - ITEM_15C, - - // FireRed/LeafGreen - ITEM_OAKS_PARCEL, // 0x15d - ITEM_POKE_FLUTE, // 0x15e - ITEM_SECRET_KEY, // 0x15f - ITEM_BIKE_VOUCHER, // 0x160 - ITEM_GOLD_TEETH, // 0x161 - ITEM_OLD_AMBER, // 0x162 - ITEM_CARD_KEY, // 0x163 - ITEM_LIFT_KEY, // 0x164 - ITEM_HELIX_FOSSIL, // 0x165 - ITEM_DOME_FOSSIL, // 0x166 - ITEM_SILPH_SCOPE, // 0x167 - ITEM_BICYCLE, // 0x168 - ITEM_TOWN_MAP, // 0x169 - ITEM_VS_SEEKER, // 0x16a - ITEM_FAME_CHECKER, // 0x16b - ITEM_TM_CASE, // 0x16c - ITEM_BERRY_POUCH, // 0x16d - ITEM_TEACHY_TV, // 0x16e - ITEM_TRI_PASS, // 0x16f - ITEM_RAINBOW_PASS, // 0x170 - ITEM_TEA, // 0x171 - ITEM_MYSTIC_TICKET, // 0x172 - ITEM_AURORA_TICKET, // 0x173 - ITEM_POWDER_JAR, // 0x174 - ITEM_RUBY, // 0x175 - ITEM_SAPPHIRE, // 0x176 - - // Emerald - ITEM_MAGMA_EMBLEM, // 0x177 - ITEM_OLD_SEA_MAP, // 0x178 -}; - -#define NUM_TECHNICAL_MACHINES 50 -#define NUM_HIDDEN_MACHINES 8 - -#endif // GUARD_ITEMS_H diff --git a/include/link.h b/include/link.h index ccde9818c..fe5429497 100644 --- a/include/link.h +++ b/include/link.h @@ -2,6 +2,7 @@ #define GUARD_LINK_H #define MAX_LINK_PLAYERS 4 +#define MAX_RFU_PLAYERS 5 #define CMD_LENGTH 8 #define QUEUE_CAPACITY 50 #define BLOCK_BUFFER_SIZE 0x100 @@ -131,7 +132,7 @@ struct BlockRequest extern const struct BlockRequest sBlockRequestLookupTable[5]; extern struct Link gLink; -extern u16 gRecvCmds[CMD_LENGTH][MAX_LINK_PLAYERS]; +extern u16 gRecvCmds[MAX_RFU_PLAYERS][CMD_LENGTH]; extern u8 gBlockSendBuffer[BLOCK_BUFFER_SIZE]; extern u16 gLinkType; extern u32 gLinkStatus; diff --git a/include/mail.h b/include/mail.h index 1a29d73b5..042586653 100644 --- a/include/mail.h +++ b/include/mail.h @@ -1,8 +1,6 @@ #ifndef GUARD_MAIL_H #define GUARD_MAIL_H -#include "items.h" - #define IS_ITEM_MAIL(itemId)((itemId == ITEM_ORANGE_MAIL \ || itemId == ITEM_HARBOR_MAIL \ || itemId == ITEM_GLITTER_MAIL \ @@ -16,10 +14,20 @@ || itemId == ITEM_FAB_MAIL \ || itemId == ITEM_RETRO_MAIL)) +// mail.h +void ReadMail(struct MailStruct *mail, void (*callback)(void), bool8 flag); +// mail_data.h +void ClearMailData(void); +void ClearMailStruct(struct MailStruct *mail); bool8 MonHasMail(struct Pokemon *mon); -void TakeMailFromMon(struct Pokemon *mon); +u8 GiveMailToMon(struct Pokemon *mon, u16 itemId); +u16 SpeciesToMailSpecies(u16 species, u32 personality); +u16 MailSpeciesToSpecies(u16 mailSpecies, u16 *buffer); u8 GiveMailToMon2(struct Pokemon *mon, struct MailStruct *mail); -void ClearMailStruct(struct MailStruct *mail); +void TakeMailFromMon(struct Pokemon *mon); +void ClearMailItemId(u8 mailId); +u8 TakeMailFromMon2(struct Pokemon *mon); +bool8 ItemIsMail(u16 itemId); #endif // GUARD_MAIL_H diff --git a/include/mail_data.h b/include/mail_data.h deleted file mode 100644 index bf6540bad..000000000 --- a/include/mail_data.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef GUARD_MAIL_DATA_H -#define GUARD_MAIL_DATA_H - -// Exported type declarations - -// Exported RAM declarations - -// Exported ROM declarations - -u16 sub_80D45E8(u16, u16 *); - -#endif //GUARD_MAIL_DATA_H diff --git a/include/map_constants.h b/include/map_constants.h deleted file mode 100644 index 6199793c8..000000000 --- a/include/map_constants.h +++ /dev/null @@ -1,1342 +0,0 @@ -#ifndef GUARD_MAP_CONSTANTS_H -#define GUARD_MAP_CONSTANTS_H - -//-------------------------------------------------- -// Map Group 0 -//-------------------------------------------------- - -enum -{ - MAP_ID_PETALBURG_CITY, - MAP_ID_SLATEPORT_CITY, - MAP_ID_MAUVILLE_CITY, - MAP_ID_RUSTBORO_CITY, - MAP_ID_FORTREE_CITY, - MAP_ID_LILYCOVE_CITY, - MAP_ID_MOSSDEEP_CITY, - MAP_ID_SOOTOPOLIS_CITY, - MAP_ID_EVER_GRANDE_CITY, - MAP_ID_LITTLEROOT_TOWN, - MAP_ID_OLDALE_TOWN, - MAP_ID_DEWFORD_TOWN, - MAP_ID_LAVARIDGE_TOWN, - MAP_ID_FALLARBOR_TOWN, - MAP_ID_VERDANTURF_TOWN, - MAP_ID_PACIFIDLOG_TOWN, - MAP_ID_ROUTE101, - MAP_ID_ROUTE102, - MAP_ID_ROUTE103, - MAP_ID_ROUTE104, - MAP_ID_ROUTE105, - MAP_ID_ROUTE106, - MAP_ID_ROUTE107, - MAP_ID_ROUTE108, - MAP_ID_ROUTE109, - MAP_ID_ROUTE110, - MAP_ID_ROUTE111, - MAP_ID_ROUTE112, - MAP_ID_ROUTE113, - MAP_ID_ROUTE114, - MAP_ID_ROUTE115, - MAP_ID_ROUTE116, - MAP_ID_ROUTE117, - MAP_ID_ROUTE118, - MAP_ID_ROUTE119, - MAP_ID_ROUTE120, - MAP_ID_ROUTE121, - MAP_ID_ROUTE122, - MAP_ID_ROUTE123, - MAP_ID_ROUTE124, - MAP_ID_ROUTE125, - MAP_ID_ROUTE126, - MAP_ID_ROUTE127, - MAP_ID_ROUTE128, - MAP_ID_ROUTE129, - MAP_ID_ROUTE130, - MAP_ID_ROUTE131, - MAP_ID_ROUTE132, - MAP_ID_ROUTE133, - MAP_ID_ROUTE134, - MAP_ID_UNDERWATER1, - MAP_ID_UNDERWATER2, - MAP_ID_UNDERWATER3, - MAP_ID_UNDERWATER4, - MAP_ID_UNDERWATER5, - MAP_ID_UNDERWATER6, - MAP_ID_UNDERWATER7, -}; - -#define MAP_GROUP_PETALBURG_CITY 0 -#define MAP_GROUP_SLATEPORT_CITY 0 -#define MAP_GROUP_MAUVILLE_CITY 0 -#define MAP_GROUP_RUSTBORO_CITY 0 -#define MAP_GROUP_FORTREE_CITY 0 -#define MAP_GROUP_LILYCOVE_CITY 0 -#define MAP_GROUP_MOSSDEEP_CITY 0 -#define MAP_GROUP_SOOTOPOLIS_CITY 0 -#define MAP_GROUP_EVER_GRANDE_CITY 0 -#define MAP_GROUP_LITTLEROOT_TOWN 0 -#define MAP_GROUP_OLDALE_TOWN 0 -#define MAP_GROUP_DEWFORD_TOWN 0 -#define MAP_GROUP_LAVARIDGE_TOWN 0 -#define MAP_GROUP_FALLARBOR_TOWN 0 -#define MAP_GROUP_VERDANTURF_TOWN 0 -#define MAP_GROUP_PACIFIDLOG_TOWN 0 -#define MAP_GROUP_ROUTE101 0 -#define MAP_GROUP_ROUTE102 0 -#define MAP_GROUP_ROUTE103 0 -#define MAP_GROUP_ROUTE104 0 -#define MAP_GROUP_ROUTE105 0 -#define MAP_GROUP_ROUTE106 0 -#define MAP_GROUP_ROUTE107 0 -#define MAP_GROUP_ROUTE108 0 -#define MAP_GROUP_ROUTE109 0 -#define MAP_GROUP_ROUTE110 0 -#define MAP_GROUP_ROUTE111 0 -#define MAP_GROUP_ROUTE112 0 -#define MAP_GROUP_ROUTE113 0 -#define MAP_GROUP_ROUTE114 0 -#define MAP_GROUP_ROUTE115 0 -#define MAP_GROUP_ROUTE116 0 -#define MAP_GROUP_ROUTE117 0 -#define MAP_GROUP_ROUTE118 0 -#define MAP_GROUP_ROUTE119 0 -#define MAP_GROUP_ROUTE120 0 -#define MAP_GROUP_ROUTE121 0 -#define MAP_GROUP_ROUTE122 0 -#define MAP_GROUP_ROUTE123 0 -#define MAP_GROUP_ROUTE124 0 -#define MAP_GROUP_ROUTE125 0 -#define MAP_GROUP_ROUTE126 0 -#define MAP_GROUP_ROUTE127 0 -#define MAP_GROUP_ROUTE128 0 -#define MAP_GROUP_ROUTE129 0 -#define MAP_GROUP_ROUTE130 0 -#define MAP_GROUP_ROUTE131 0 -#define MAP_GROUP_ROUTE132 0 -#define MAP_GROUP_ROUTE133 0 -#define MAP_GROUP_ROUTE134 0 -#define MAP_GROUP_UNDERWATER1 0 -#define MAP_GROUP_UNDERWATER2 0 -#define MAP_GROUP_UNDERWATER3 0 -#define MAP_GROUP_UNDERWATER4 0 -#define MAP_GROUP_UNDERWATER5 0 -#define MAP_GROUP_UNDERWATER6 0 -#define MAP_GROUP_UNDERWATER7 0 -//-------------------------------------------------- -// Map Group 1 -//-------------------------------------------------- - -enum -{ - MAP_ID_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F, - MAP_ID_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F, - MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_1F, - MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_2F, - MAP_ID_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB, -}; - -#define MAP_GROUP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F 1 -#define MAP_GROUP_LITTLEROOT_TOWN_BRENDANS_HOUSE_2F 1 -#define MAP_GROUP_LITTLEROOT_TOWN_MAYS_HOUSE_1F 1 -#define MAP_GROUP_LITTLEROOT_TOWN_MAYS_HOUSE_2F 1 -#define MAP_GROUP_LITTLEROOT_TOWN_PROFESSOR_BIRCHS_LAB 1 - -//-------------------------------------------------- -// Map Group 2 -//-------------------------------------------------- - -enum -{ - MAP_ID_OLDALE_TOWN_HOUSE1, - MAP_ID_OLDALE_TOWN_HOUSE2, - MAP_ID_OLDALE_TOWN_POKEMON_CENTER_1F, - MAP_ID_OLDALE_TOWN_POKEMON_CENTER_2F, - MAP_ID_OLDALE_TOWN_MART, -}; - -#define MAP_GROUP_OLDALE_TOWN_HOUSE1 2 -#define MAP_GROUP_OLDALE_TOWN_HOUSE2 2 -#define MAP_GROUP_OLDALE_TOWN_POKEMON_CENTER_1F 2 -#define MAP_GROUP_OLDALE_TOWN_POKEMON_CENTER_2F 2 -#define MAP_GROUP_OLDALE_TOWN_MART 2 - -//-------------------------------------------------- -// Map Group 3 -//-------------------------------------------------- - -enum -{ - MAP_ID_DEWFORD_TOWN_HOUSE1, - MAP_ID_DEWFORD_TOWN_POKEMON_CENTER_1F, - MAP_ID_DEWFORD_TOWN_POKEMON_CENTER_2F, - MAP_ID_DEWFORD_TOWN_GYM, - MAP_ID_DEWFORD_TOWN_HALL, - MAP_ID_DEWFORD_TOWN_HOUSE2, -}; - -#define MAP_GROUP_DEWFORD_TOWN_HOUSE1 3 -#define MAP_GROUP_DEWFORD_TOWN_POKEMON_CENTER_1F 3 -#define MAP_GROUP_DEWFORD_TOWN_POKEMON_CENTER_2F 3 -#define MAP_GROUP_DEWFORD_TOWN_GYM 3 -#define MAP_GROUP_DEWFORD_TOWN_HALL 3 -#define MAP_GROUP_DEWFORD_TOWN_HOUSE2 3 - -//-------------------------------------------------- -// Map Group 4 -//-------------------------------------------------- - -enum -{ - MAP_ID_LAVARIDGE_TOWN_HERB_SHOP, - MAP_ID_LAVARIDGE_TOWN_GYM_1F, - MAP_ID_LAVARIDGE_TOWN_GYM_B1F, - MAP_ID_LAVARIDGE_TOWN_HOUSE, - MAP_ID_LAVARIDGE_TOWN_MART, - MAP_ID_LAVARIDGE_TOWN_POKEMON_CENTER_1F, - MAP_ID_LAVARIDGE_TOWN_POKEMON_CENTER_2F, -}; - -#define MAP_GROUP_LAVARIDGE_TOWN_HERB_SHOP 4 -#define MAP_GROUP_LAVARIDGE_TOWN_GYM_1F 4 -#define MAP_GROUP_LAVARIDGE_TOWN_GYM_B1F 4 -#define MAP_GROUP_LAVARIDGE_TOWN_HOUSE 4 -#define MAP_GROUP_LAVARIDGE_TOWN_MART 4 -#define MAP_GROUP_LAVARIDGE_TOWN_POKEMON_CENTER_1F 4 -#define MAP_GROUP_LAVARIDGE_TOWN_POKEMON_CENTER_2F 4 - -//-------------------------------------------------- -// Map Group 5 -//-------------------------------------------------- - -enum -{ - MAP_ID_FALLARBOR_TOWN_MART, - MAP_ID_FALLARBOR_TOWN_TENT_LOBBY, - MAP_ID_FALLARBOR_TOWN_TENT_HALL, - MAP_ID_FALLARBOR_TOWN_TENT_ARENA, - MAP_ID_FALLARBOR_TOWN_POKEMON_CENTER_1F, - MAP_ID_FALLARBOR_TOWN_POKEMON_CENTER_2F, - MAP_ID_FALLARBOR_TOWN_HOUSE1, - MAP_ID_FALLARBOR_TOWN_HOUSE2, -}; - -#define MAP_GROUP_FALLARBOR_TOWN_MART 5 -#define MAP_GROUP_FALLARBOR_TOWN_TENT_LOBBY 5 -#define MAP_GROUP_FALLARBOR_TOWN_TENT_HALL 5 -#define MAP_GROUP_FALLARBOR_TOWN_TENT_ARENA 5 -#define MAP_GROUP_FALLARBOR_TOWN_POKEMON_CENTER_1F 5 -#define MAP_GROUP_FALLARBOR_TOWN_POKEMON_CENTER_2F 5 -#define MAP_GROUP_FALLARBOR_TOWN_HOUSE1 5 -#define MAP_GROUP_FALLARBOR_TOWN_HOUSE2 5 - -//-------------------------------------------------- -// Map Group 6 -//-------------------------------------------------- - -enum -{ - MAP_ID_VERDANTURF_TOWN_TENT_LOBBY, - MAP_ID_VERDANTURF_TOWN_TENT_HALL, - MAP_ID_VERDANTURF_TOWN_TENT_ARENA, - MAP_ID_VERDANTURF_TOWN_MART, - MAP_ID_VERDANTURF_TOWN_POKEMON_CENTER_1F, - MAP_ID_VERDANTURF_TOWN_POKEMON_CENTER_2F, - MAP_ID_VERDANTURF_TOWN_WANDAS_HOUSE, - MAP_ID_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE, - MAP_ID_VERDANTURF_TOWN_HOUSE, -}; - -#define MAP_GROUP_VERDANTURF_TOWN_TENT_LOBBY 6 -#define MAP_GROUP_VERDANTURF_TOWN_TENT_HALL 6 -#define MAP_GROUP_VERDANTURF_TOWN_TENT_ARENA 6 -#define MAP_GROUP_VERDANTURF_TOWN_MART 6 -#define MAP_GROUP_VERDANTURF_TOWN_POKEMON_CENTER_1F 6 -#define MAP_GROUP_VERDANTURF_TOWN_POKEMON_CENTER_2F 6 -#define MAP_GROUP_VERDANTURF_TOWN_WANDAS_HOUSE 6 -#define MAP_GROUP_VERDANTURF_TOWN_FRIENDSHIP_RATERS_HOUSE 6 -#define MAP_GROUP_VERDANTURF_TOWN_HOUSE 6 - -//-------------------------------------------------- -// Map Group 7 -//-------------------------------------------------- - -enum -{ - MAP_ID_PACIFIDLOG_TOWN_POKEMON_CENTER_1F, - MAP_ID_PACIFIDLOG_TOWN_POKEMON_CENTER_2F, - MAP_ID_PACIFIDLOG_TOWN_HOUSE1, - MAP_ID_PACIFIDLOG_TOWN_HOUSE2, - MAP_ID_PACIFIDLOG_TOWN_HOUSE3, - MAP_ID_PACIFIDLOG_TOWN_HOUSE4, - MAP_ID_PACIFIDLOG_TOWN_HOUSE5, -}; - -#define MAP_GROUP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F 7 -#define MAP_GROUP_PACIFIDLOG_TOWN_POKEMON_CENTER_2F 7 -#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE1 7 -#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE2 7 -#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE3 7 -#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE4 7 -#define MAP_GROUP_PACIFIDLOG_TOWN_HOUSE5 7 - -//-------------------------------------------------- -// Map Group 8 -//-------------------------------------------------- - -enum -{ - MAP_ID_PETALBURG_CITY_WALLYS_HOUSE, - MAP_ID_PETALBURG_CITY_GYM, - MAP_ID_PETALBURG_CITY_HOUSE1, - MAP_ID_PETALBURG_CITY_HOUSE2, - MAP_ID_PETALBURG_CITY_POKEMON_CENTER_1F, - MAP_ID_PETALBURG_CITY_POKEMON_CENTER_2F, - MAP_ID_PETALBURG_CITY_MART, -}; - -#define MAP_GROUP_PETALBURG_CITY_WALLYS_HOUSE 8 -#define MAP_GROUP_PETALBURG_CITY_GYM 8 -#define MAP_GROUP_PETALBURG_CITY_HOUSE1 8 -#define MAP_GROUP_PETALBURG_CITY_HOUSE2 8 -#define MAP_GROUP_PETALBURG_CITY_POKEMON_CENTER_1F 8 -#define MAP_GROUP_PETALBURG_CITY_POKEMON_CENTER_2F 8 -#define MAP_GROUP_PETALBURG_CITY_MART 8 - -//-------------------------------------------------- -// Map Group 9 -//-------------------------------------------------- - -enum -{ - MAP_ID_SLATEPORT_CITY_STERNS_SHIPYARD_1F, - MAP_ID_SLATEPORT_CITY_STERNS_SHIPYARD_2F, - MAP_ID_SLATEPORT_CITY_TENT_LOBBY, - MAP_ID_SLATEPORT_CITY_TENT_HALL, - MAP_ID_SLATEPORT_CITY_TENT_ARENA, - MAP_ID_SLATEPORT_CITY_HOUSE1, - MAP_ID_SLATEPORT_CITY_POKEMON_FAN_CLUB, - MAP_ID_SLATEPORT_CITY_OCEANIC_MUSEUM_1F, - MAP_ID_SLATEPORT_CITY_OCEANIC_MUSEUM_2F, - MAP_ID_SLATEPORT_CITY_HARBOR, - MAP_ID_SLATEPORT_CITY_HOUSE2, - MAP_ID_SLATEPORT_CITY_POKEMON_CENTER_1F, - MAP_ID_SLATEPORT_CITY_POKEMON_CENTER_2F, - MAP_ID_SLATEPORT_CITY_MART, -}; - -#define MAP_GROUP_SLATEPORT_CITY_STERNS_SHIPYARD_1F 9 -#define MAP_GROUP_SLATEPORT_CITY_STERNS_SHIPYARD_2F 9 -#define MAP_GROUP_SLATEPORT_CITY_TENT_LOBBY 9 -#define MAP_GROUP_SLATEPORT_CITY_TENT_HALL 9 -#define MAP_GROUP_SLATEPORT_CITY_TENT_ARENA 9 -#define MAP_GROUP_SLATEPORT_CITY_HOUSE1 9 -#define MAP_GROUP_SLATEPORT_CITY_POKEMON_FAN_CLUB 9 -#define MAP_GROUP_SLATEPORT_CITY_OCEANIC_MUSEUM_1F 9 -#define MAP_GROUP_SLATEPORT_CITY_OCEANIC_MUSEUM_2F 9 -#define MAP_GROUP_SLATEPORT_CITY_HARBOR 9 -#define MAP_GROUP_SLATEPORT_CITY_HOUSE2 9 -#define MAP_GROUP_SLATEPORT_CITY_POKEMON_CENTER_1F 9 -#define MAP_GROUP_SLATEPORT_CITY_POKEMON_CENTER_2F 9 -#define MAP_GROUP_SLATEPORT_CITY_MART 9 - -//-------------------------------------------------- -// Map Group 10 -//-------------------------------------------------- - -enum -{ - MAP_ID_MAUVILLE_CITY_GYM, - MAP_ID_MAUVILLE_CITY_BIKE_SHOP, - MAP_ID_MAUVILLE_CITY_HOUSE1, - MAP_ID_MAUVILLE_CITY_GAME_CORNER, - MAP_ID_MAUVILLE_CITY_HOUSE2, - MAP_ID_MAUVILLE_CITY_POKEMON_CENTER_1F, - MAP_ID_MAUVILLE_CITY_POKEMON_CENTER_2F, - MAP_ID_MAUVILLE_CITY_MART, -}; - -#define MAP_GROUP_MAUVILLE_CITY_GYM 10 -#define MAP_GROUP_MAUVILLE_CITY_BIKE_SHOP 10 -#define MAP_GROUP_MAUVILLE_CITY_HOUSE1 10 -#define MAP_GROUP_MAUVILLE_CITY_GAME_CORNER 10 -#define MAP_GROUP_MAUVILLE_CITY_HOUSE2 10 -#define MAP_GROUP_MAUVILLE_CITY_POKEMON_CENTER_1F 10 -#define MAP_GROUP_MAUVILLE_CITY_POKEMON_CENTER_2F 10 -#define MAP_GROUP_MAUVILLE_CITY_MART 10 - -//-------------------------------------------------- -// Map Group 11 -//-------------------------------------------------- - -enum -{ - MAP_ID_RUSTBORO_CITY_DEVON_CORP_1F, - MAP_ID_RUSTBORO_CITY_DEVON_CORP_2F, - MAP_ID_RUSTBORO_CITY_DEVON_CORP_3F, - MAP_ID_RUSTBORO_CITY_GYM, - MAP_ID_RUSTBORO_CITY_POKEMON_SCHOOL, - MAP_ID_RUSTBORO_CITY_POKEMON_CENTER_1F, - MAP_ID_RUSTBORO_CITY_POKEMON_CENTER_2F, - MAP_ID_RUSTBORO_CITY_MART, - MAP_ID_RUSTBORO_CITY_FLAT1_1F, - MAP_ID_RUSTBORO_CITY_FLAT1_2F, - MAP_ID_RUSTBORO_CITY_HOUSE1, - MAP_ID_RUSTBORO_CITY_CUTTERS_HOUSE, - MAP_ID_RUSTBORO_CITY_HOUSE2, - MAP_ID_RUSTBORO_CITY_FLAT2_1F, - MAP_ID_RUSTBORO_CITY_FLAT2_2F, - MAP_ID_RUSTBORO_CITY_FLAT2_3F, - MAP_ID_RUSTBORO_CITY_HOUSE3, -}; - -#define MAP_GROUP_RUSTBORO_CITY_DEVON_CORP_1F 11 -#define MAP_GROUP_RUSTBORO_CITY_DEVON_CORP_2F 11 -#define MAP_GROUP_RUSTBORO_CITY_DEVON_CORP_3F 11 -#define MAP_GROUP_RUSTBORO_CITY_GYM 11 -#define MAP_GROUP_RUSTBORO_CITY_POKEMON_SCHOOL 11 -#define MAP_GROUP_RUSTBORO_CITY_POKEMON_CENTER_1F 11 -#define MAP_GROUP_RUSTBORO_CITY_POKEMON_CENTER_2F 11 -#define MAP_GROUP_RUSTBORO_CITY_MART 11 -#define MAP_GROUP_RUSTBORO_CITY_FLAT1_1F 11 -#define MAP_GROUP_RUSTBORO_CITY_FLAT1_2F 11 -#define MAP_GROUP_RUSTBORO_CITY_HOUSE1 11 -#define MAP_GROUP_RUSTBORO_CITY_CUTTERS_HOUSE 11 -#define MAP_GROUP_RUSTBORO_CITY_HOUSE2 11 -#define MAP_GROUP_RUSTBORO_CITY_FLAT2_1F 11 -#define MAP_GROUP_RUSTBORO_CITY_FLAT2_2F 11 -#define MAP_GROUP_RUSTBORO_CITY_FLAT2_3F 11 -#define MAP_GROUP_RUSTBORO_CITY_HOUSE3 11 - -//-------------------------------------------------- -// Map Group 12 -//-------------------------------------------------- - -enum -{ - MAP_ID_FORTREE_CITY_HOUSE1, - MAP_ID_FORTREE_CITY_GYM, - MAP_ID_FORTREE_CITY_POKEMON_CENTER_1F, - MAP_ID_FORTREE_CITY_POKEMON_CENTER_2F, - MAP_ID_FORTREE_CITY_MART, - MAP_ID_FORTREE_CITY_HOUSE2, - MAP_ID_FORTREE_CITY_HOUSE3, - MAP_ID_FORTREE_CITY_HOUSE4, - MAP_ID_FORTREE_CITY_HOUSE5, - MAP_ID_FORTREE_CITY_DECORATION_SHOP, -}; - -#define MAP_GROUP_FORTREE_CITY_HOUSE1 12 -#define MAP_GROUP_FORTREE_CITY_GYM 12 -#define MAP_GROUP_FORTREE_CITY_POKEMON_CENTER_1F 12 -#define MAP_GROUP_FORTREE_CITY_POKEMON_CENTER_2F 12 -#define MAP_GROUP_FORTREE_CITY_MART 12 -#define MAP_GROUP_FORTREE_CITY_HOUSE2 12 -#define MAP_GROUP_FORTREE_CITY_HOUSE3 12 -#define MAP_GROUP_FORTREE_CITY_HOUSE4 12 -#define MAP_GROUP_FORTREE_CITY_HOUSE5 12 -#define MAP_GROUP_FORTREE_CITY_DECORATION_SHOP 12 - -//-------------------------------------------------- -// Map Group 13 -//-------------------------------------------------- - -enum -{ - MAP_ID_LILYCOVE_CITY_COVE_LILY_MOTEL_1F, - MAP_ID_LILYCOVE_CITY_COVE_LILY_MOTEL_2F, - MAP_ID_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F, - MAP_ID_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F, - MAP_ID_LILYCOVE_CITY_CONTEST_LOBBY, - MAP_ID_LILYCOVE_CITY_CONTEST_HALL, - MAP_ID_LILYCOVE_CITY_POKEMON_CENTER_1F, - MAP_ID_LILYCOVE_CITY_POKEMON_CENTER_2F, - MAP_ID_LILYCOVE_CITY_UNUSED_MART, - MAP_ID_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB, - MAP_ID_LILYCOVE_CITY_HARBOR, - MAP_ID_LILYCOVE_CITY_MOVE_DELETERS_HOUSE, - MAP_ID_LILYCOVE_CITY_HOUSE1, - MAP_ID_LILYCOVE_CITY_HOUSE2, - MAP_ID_LILYCOVE_CITY_HOUSE3, - MAP_ID_LILYCOVE_CITY_HOUSE4, - MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_1F, - MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_2F, - MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_3F, - MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_4F, - MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_5F, - MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP, - MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR, -}; - -#define MAP_GROUP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F 13 -#define MAP_GROUP_LILYCOVE_CITY_COVE_LILY_MOTEL_2F 13 -#define MAP_GROUP_LILYCOVE_CITY_LILYCOVE_MUSEUM_1F 13 -#define MAP_GROUP_LILYCOVE_CITY_LILYCOVE_MUSEUM_2F 13 -#define MAP_GROUP_LILYCOVE_CITY_CONTEST_LOBBY 13 -#define MAP_GROUP_LILYCOVE_CITY_CONTEST_HALL 13 -#define MAP_GROUP_LILYCOVE_CITY_POKEMON_CENTER_1F 13 -#define MAP_GROUP_LILYCOVE_CITY_POKEMON_CENTER_2F 13 -#define MAP_GROUP_LILYCOVE_CITY_UNUSED_MART 13 -#define MAP_GROUP_LILYCOVE_CITY_POKEMON_TRAINER_FAN_CLUB 13 -#define MAP_GROUP_LILYCOVE_CITY_HARBOR 13 -#define MAP_GROUP_LILYCOVE_CITY_MOVE_DELETERS_HOUSE 13 -#define MAP_GROUP_LILYCOVE_CITY_HOUSE1 13 -#define MAP_GROUP_LILYCOVE_CITY_HOUSE2 13 -#define MAP_GROUP_LILYCOVE_CITY_HOUSE3 13 -#define MAP_GROUP_LILYCOVE_CITY_HOUSE4 13 -#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_1F 13 -#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_2F 13 -#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_3F 13 -#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_4F 13 -#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_5F 13 -#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP 13 -#define MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_ELEVATOR 13 - -//-------------------------------------------------- -// Map Group 14 -//-------------------------------------------------- - -enum -{ - MAP_ID_MOSSDEEP_CITY_GYM, - MAP_ID_MOSSDEEP_CITY_HOUSE1, - MAP_ID_MOSSDEEP_CITY_HOUSE2, - MAP_ID_MOSSDEEP_CITY_POKEMON_CENTER_1F, - MAP_ID_MOSSDEEP_CITY_POKEMON_CENTER_2F, - MAP_ID_MOSSDEEP_CITY_MART, - MAP_ID_MOSSDEEP_CITY_HOUSE3, - MAP_ID_MOSSDEEP_CITY_STEVENS_HOUSE, - MAP_ID_MOSSDEEP_CITY_HOUSE4, - MAP_ID_MOSSDEEP_CITY_SPACE_CENTER_1F, - MAP_ID_MOSSDEEP_CITY_SPACE_CENTER_2F, - MAP_ID_MOSSDEEP_CITY_GAME_CORNER_1F, - MAP_ID_MOSSDEEP_CITY_GAME_CORNER_B1F, -}; - -#define MAP_GROUP_MOSSDEEP_CITY_GYM 14 -#define MAP_GROUP_MOSSDEEP_CITY_HOUSE1 14 -#define MAP_GROUP_MOSSDEEP_CITY_HOUSE2 14 -#define MAP_GROUP_MOSSDEEP_CITY_POKEMON_CENTER_1F 14 -#define MAP_GROUP_MOSSDEEP_CITY_POKEMON_CENTER_2F 14 -#define MAP_GROUP_MOSSDEEP_CITY_MART 14 -#define MAP_GROUP_MOSSDEEP_CITY_HOUSE3 14 -#define MAP_GROUP_MOSSDEEP_CITY_STEVENS_HOUSE 14 -#define MAP_GROUP_MOSSDEEP_CITY_HOUSE4 14 -#define MAP_GROUP_MOSSDEEP_CITY_SPACE_CENTER_1F 14 -#define MAP_GROUP_MOSSDEEP_CITY_SPACE_CENTER_2F 14 -#define MAP_GROUP_MOSSDEEP_CITY_GAME_CORNER_1F 14 -#define MAP_GROUP_MOSSDEEP_CITY_GAME_CORNER_B1F 14 - -//-------------------------------------------------- -// Map Group 15 -//-------------------------------------------------- - -enum -{ - MAP_ID_SOOTOPOLIS_CITY_GYM_1F, - MAP_ID_SOOTOPOLIS_CITY_GYM_B1F, - MAP_ID_SOOTOPOLIS_CITY_POKEMON_CENTER_1F, - MAP_ID_SOOTOPOLIS_CITY_POKEMON_CENTER_2F, - MAP_ID_SOOTOPOLIS_CITY_MART, - MAP_ID_SOOTOPOLIS_CITY_HOUSE1, - MAP_ID_SOOTOPOLIS_CITY_HOUSE2, - MAP_ID_SOOTOPOLIS_CITY_HOUSE3, - MAP_ID_SOOTOPOLIS_CITY_HOUSE4, - MAP_ID_SOOTOPOLIS_CITY_HOUSE5, - MAP_ID_SOOTOPOLIS_CITY_HOUSE6, - MAP_ID_SOOTOPOLIS_CITY_HOUSE7, - MAP_ID_SOOTOPOLIS_CITY_HOUSE8, - MAP_ID_SOOTOPOLIS_CITY_BATTLEHOUSE_1, - MAP_ID_SOOTOPOLIS_CITY_BATTLEHOUSE_2, -}; - -#define MAP_GROUP_SOOTOPOLIS_CITY_GYM_1F 15 -#define MAP_GROUP_SOOTOPOLIS_CITY_GYM_B1F 15 -#define MAP_GROUP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F 15 -#define MAP_GROUP_SOOTOPOLIS_CITY_POKEMON_CENTER_2F 15 -#define MAP_GROUP_SOOTOPOLIS_CITY_MART 15 -#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE1 15 -#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE2 15 -#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE3 15 -#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE4 15 -#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE5 15 -#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE6 15 -#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE7 15 -#define MAP_GROUP_SOOTOPOLIS_CITY_HOUSE8 15 -#define MAP_ID_SOOTOPOLIS_CITY_BATTLEHOUSE_1 15 -#define MAP_ID_SOOTOPOLIS_CITY_BATTLEHOUSE_2 15 -//-------------------------------------------------- -// Map Group 16 -//-------------------------------------------------- - -enum -{ - MAP_ID_EVER_GRANDE_CITY_SIDNEYS_ROOM, - MAP_ID_EVER_GRANDE_CITY_PHOEBES_ROOM, - MAP_ID_EVER_GRANDE_CITY_GLACIAS_ROOM, - MAP_ID_EVER_GRANDE_CITY_DRAKES_ROOM, - MAP_ID_EVER_GRANDE_CITY_CHAMPIONS_ROOM, - MAP_ID_EVER_GRANDE_CITY_CORRIDOR1, - MAP_ID_EVER_GRANDE_CITY_CORRIDOR2, - MAP_ID_EVER_GRANDE_CITY_CORRIDOR3, - MAP_ID_EVER_GRANDE_CITY_CORRIDOR4, - MAP_ID_EVER_GRANDE_CITY_CORRIDOR5, - MAP_ID_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F, - MAP_ID_EVER_GRANDE_CITY_HALL_OF_FAME, - MAP_ID_EVER_GRANDE_CITY_POKEMON_CENTER_1F, - MAP_ID_EVER_GRANDE_CITY_POKEMON_CENTER_2F, - MAP_ID_EVER_GRANDE_CITY_POKEMON_LEAGUE_2F, -}; - -#define MAP_GROUP_EVER_GRANDE_CITY_SIDNEYS_ROOM 16 -#define MAP_GROUP_EVER_GRANDE_CITY_PHOEBES_ROOM 16 -#define MAP_GROUP_EVER_GRANDE_CITY_GLACIAS_ROOM 16 -#define MAP_GROUP_EVER_GRANDE_CITY_DRAKES_ROOM 16 -#define MAP_GROUP_EVER_GRANDE_CITY_CHAMPIONS_ROOM 16 -#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR1 16 -#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR2 16 -#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR3 16 -#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR4 16 -#define MAP_GROUP_EVER_GRANDE_CITY_CORRIDOR5 16 -#define MAP_GROUP_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F 16 -#define MAP_GROUP_EVER_GRANDE_CITY_HALL_OF_FAME 16 -#define MAP_GROUP_EVER_GRANDE_CITY_POKEMON_CENTER_1F 16 -#define MAP_GROUP_EVER_GRANDE_CITY_POKEMON_CENTER_2F 16 -#define MAP_GROUP_EVER_GRANDE_CITY_POKEMON_LEAGUE_2F 16 - -//-------------------------------------------------- -// Map Group 17 -//-------------------------------------------------- - -enum -{ - MAP_ID_ROUTE104_MR_BRINEYS_HOUSE, - MAP_ID_ROUTE104_PRETTY_PETAL_FLOWER_SHOP, -}; - -#define MAP_GROUP_ROUTE104_MR_BRINEYS_HOUSE 17 -#define MAP_GROUP_ROUTE104_PRETTY_PETAL_FLOWER_SHOP 17 - -//-------------------------------------------------- -// Map Group 18 -//-------------------------------------------------- - -enum -{ - MAP_ID_ROUTE111_WINSTRATE_FAMILYS_HOUSE, - MAP_ID_ROUTE111_OLD_LADYS_REST_STOP, -}; - -#define MAP_GROUP_ROUTE111_WINSTRATE_FAMILYS_HOUSE 18 -#define MAP_GROUP_ROUTE111_OLD_LADYS_REST_STOP 18 - -//-------------------------------------------------- -// Map Group 19 -//-------------------------------------------------- - -enum -{ - MAP_ID_ROUTE112_CABLE_CAR_STATION, - MAP_ID_MT_CHIMNEY_CABLE_CAR_STATION, -}; - -#define MAP_GROUP_ROUTE112_CABLE_CAR_STATION 19 -#define MAP_GROUP_MT_CHIMNEY_CABLE_CAR_STATION 19 - -//-------------------------------------------------- -// Map Group 20 -//-------------------------------------------------- - -enum -{ - MAP_ID_ROUTE114_FOSSIL_MANIACS_HOUSE, - MAP_ID_ROUTE114_FOSSIL_MANIACS_TUNNEL, - MAP_ID_ROUTE114_LANETTES_HOUSE, -}; - -#define MAP_GROUP_ROUTE114_FOSSIL_MANIACS_HOUSE 20 -#define MAP_GROUP_ROUTE114_FOSSIL_MANIACS_TUNNEL 20 -#define MAP_GROUP_ROUTE114_LANETTES_HOUSE 20 - -//-------------------------------------------------- -// Map Group 21 -//-------------------------------------------------- - -enum -{ - MAP_ID_ROUTE116_TUNNELERS_REST_HOUSE, -}; - -#define MAP_GROUP_ROUTE116_TUNNELERS_REST_HOUSE 21 - -//-------------------------------------------------- -// Map Group 22 -//-------------------------------------------------- - -enum -{ - MAP_ID_ROUTE117_POKEMON_DAY_CARE, -}; - -#define MAP_GROUP_ROUTE117_POKEMON_DAY_CARE 22 - -//-------------------------------------------------- -// Map Group 23 -//-------------------------------------------------- - -enum -{ - MAP_ID_ROUTE121_SAFARI_ZONE_ENTRANCE, -}; - -#define MAP_GROUP_ROUTE121_SAFARI_ZONE_ENTRANCE 23 - -//-------------------------------------------------- -// Map Group 24 -//-------------------------------------------------- - -enum -{ - MAP_ID_METEOR_FALLS_1F_1R, - MAP_ID_METEOR_FALLS_1F_2R, - MAP_ID_METEOR_FALLS_B1F_1R, - MAP_ID_METEOR_FALLS_B1F_2R, - MAP_ID_RUSTURF_TUNNEL, - MAP_ID_UNDERWATER_SOOTOPOLIS_CITY, - MAP_ID_DESERT_RUINS, - MAP_ID_GRANITE_CAVE_1F, - MAP_ID_GRANITE_CAVE_B1F, - MAP_ID_GRANITE_CAVE_B2F, - MAP_ID_GRANITE_CAVE_STEVENS_ROOM, - MAP_ID_PETALBURG_WOODS, - MAP_ID_MT_CHIMNEY, - MAP_ID_JAGGED_PASS, - MAP_ID_FIERY_PATH, - MAP_ID_MT_PYRE_1F, - MAP_ID_MT_PYRE_2F, - MAP_ID_MT_PYRE_3F, - MAP_ID_MT_PYRE_4F, - MAP_ID_MT_PYRE_5F, - MAP_ID_MT_PYRE_6F, - MAP_ID_MT_PYRE_EXTERIOR, - MAP_ID_MT_PYRE_SUMMIT, - MAP_ID_AQUA_HIDEOUT_1F, - MAP_ID_AQUA_HIDEOUT_B1F, - MAP_ID_AQUA_HIDEOUT_B2F, - MAP_ID_UNDERWATER_SEAFLOOR_CAVERN, - MAP_ID_SEAFLOOR_CAVERN_ENTRANCE, - MAP_ID_SEAFLOOR_CAVERN_ROOM1, - MAP_ID_SEAFLOOR_CAVERN_ROOM2, - MAP_ID_SEAFLOOR_CAVERN_ROOM3, - MAP_ID_SEAFLOOR_CAVERN_ROOM4, - MAP_ID_SEAFLOOR_CAVERN_ROOM5, - MAP_ID_SEAFLOOR_CAVERN_ROOM6, - MAP_ID_SEAFLOOR_CAVERN_ROOM7, - MAP_ID_SEAFLOOR_CAVERN_ROOM8, - MAP_ID_SEAFLOOR_CAVERN_ROOM9, - MAP_ID_CAVE_OF_ORIGIN_ENTRANCE, - MAP_ID_CAVE_OF_ORIGIN_1F, - MAP_ID_CAVE_OF_ORIGIN_B1F, - MAP_ID_CAVE_OF_ORIGIN_B2F, - MAP_ID_CAVE_OF_ORIGIN_B3F, - MAP_ID_CAVE_OF_ORIGIN_B4F, - MAP_ID_VICTORY_ROAD_1F, - MAP_ID_VICTORY_ROAD_B1F, - MAP_ID_VICTORY_ROAD_B2F, - MAP_ID_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM, - MAP_ID_SHOAL_CAVE_LOW_TIDE_INNER_ROOM, - MAP_ID_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM, - MAP_ID_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM, - MAP_ID_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM, - MAP_ID_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM, - MAP_ID_NEW_MAUVILLE_ENTRANCE, - MAP_ID_NEW_MAUVILLE_INSIDE, - MAP_ID_ABANDONED_SHIP_DECK, - MAP_ID_ABANDONED_SHIP_CORRIDORS_1F, - MAP_ID_ABANDONED_SHIP_ROOMS_1F, - MAP_ID_ABANDONED_SHIP_CORRIDORS_B1F, - MAP_ID_ABANDONED_SHIP_ROOMS_B1F, - MAP_ID_ABANDONED_SHIP_ROOMS2_B1F, - MAP_ID_ABANDONED_SHIP_UNDERWATER1, - MAP_ID_ABANDONED_SHIP_ROOM_B1F, - MAP_ID_ABANDONED_SHIP_ROOMS2_1F, - MAP_ID_ABANDONED_SHIP_CAPTAINS_OFFICE, - MAP_ID_ABANDONED_SHIP_UNDERWATER2, - MAP_ID_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS, - MAP_ID_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS, - MAP_ID_ISLAND_CAVE, - MAP_ID_ANCIENT_TOMB, - MAP_ID_UNDERWATER_ROUTE134, - MAP_ID_UNDERWATER_SEALED_CHAMBER, - MAP_ID_SEALED_CHAMBER_OUTER_ROOM, - MAP_ID_SEALED_CHAMBER_INNER_ROOM, - MAP_ID_SCORCHED_SLAB, - MAP_ID_UNUSED_AQUA_HIDEOUT_1F, - MAP_ID_UNUSED_AQUA_HIDEOUT_B1F, - MAP_ID_UNUSED_AQUA_HIDEOUT_B2F, - MAP_ID_SKY_PILLAR_ENTRANCE, - MAP_ID_SKY_PILLAR_OUTSIDE, - MAP_ID_SKY_PILLAR_1F, - MAP_ID_SKY_PILLAR_2F, - MAP_ID_SKY_PILLAR_3F, - MAP_ID_SKY_PILLAR_4F, - MAP_ID_SHOAL_CAVE_LOW_TIDE_ICE_ROOM, - MAP_ID_SKY_PILLAR_5F, - MAP_ID_SKY_PILLAR_TOP, - MAP_ID_MAGMA_HIDEOUT_ENTRANCE, - MAP_ID_MAGMA_HIDEOUT_B1F, - MAP_ID_MAGMA_HIDEOUT_B2F, - MAP_ID_MAGMA_HIDEOUT_B3F, - MAP_ID_MAGMA_HIDEOUT_B4F, - MAP_ID_MAGMA_HIDEOUT_B5F, - MAP_ID_MAGMA_HIDEOUT_B6F, - MAP_ID_MAGMA_HIDEOUT_B7F, - MAP_ID_MIRAGE_TOWER_1F, - MAP_ID_MIRAGE_TOWER_2F, - MAP_ID_MIRAGE_TOWER_3F, - MAP_ID_MIRAGE_TOWER_4F, - MAP_ID_DESERT_UNDERPASS, - MAP_ID_ARTISAN_CAVE_1F, - MAP_ID_ARTISAN_CAVE_2F, - MAP_ID_UNKNOWN_UNDERWATER, - MAP_ID_MARINE_CAVE_1F, - MAP_ID_MARINE_CAVE_2F, - MAP_ID_TERRA_CAVE_1F, - MAP_ID_TERRA_CAVE_2F, - MAP_ID_ALTERING_CAVE, - MAP_ID_METEOR_FALLS_B1F_3R, -}; - -#define MAP_GROUP_METEOR_FALLS_1F_1R 24 -#define MAP_GROUP_METEOR_FALLS_1F_2R 24 -#define MAP_GROUP_METEOR_FALLS_B1F_1R 24 -#define MAP_GROUP_METEOR_FALLS_B1F_2R 24 -#define MAP_GROUP_RUSTURF_TUNNEL 24 -#define MAP_GROUP_UNDERWATER_SOOTOPOLIS_CITY 24 -#define MAP_GROUP_DESERT_RUINS 24 -#define MAP_GROUP_GRANITE_CAVE_1F 24 -#define MAP_GROUP_GRANITE_CAVE_B1F 24 -#define MAP_GROUP_GRANITE_CAVE_B2F 24 -#define MAP_GROUP_GRANITE_CAVE_STEVENS_ROOM 24 -#define MAP_GROUP_PETALBURG_WOODS 24 -#define MAP_GROUP_MT_CHIMNEY 24 -#define MAP_GROUP_JAGGED_PASS 24 -#define MAP_GROUP_FIERY_PATH 24 -#define MAP_GROUP_MT_PYRE_1F 24 -#define MAP_GROUP_MT_PYRE_2F 24 -#define MAP_GROUP_MT_PYRE_3F 24 -#define MAP_GROUP_MT_PYRE_4F 24 -#define MAP_GROUP_MT_PYRE_5F 24 -#define MAP_GROUP_MT_PYRE_6F 24 -#define MAP_GROUP_MT_PYRE_EXTERIOR 24 -#define MAP_GROUP_MT_PYRE_SUMMIT 24 -#define MAP_GROUP_AQUA_HIDEOUT_1F 24 -#define MAP_GROUP_AQUA_HIDEOUT_B1F 24 -#define MAP_GROUP_AQUA_HIDEOUT_B2F 24 -#define MAP_GROUP_UNDERWATER_SEAFLOOR_CAVERN 24 -#define MAP_GROUP_SEAFLOOR_CAVERN_ENTRANCE 24 -#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM1 24 -#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM2 24 -#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM3 24 -#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM4 24 -#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM5 24 -#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM6 24 -#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM7 24 -#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM8 24 -#define MAP_GROUP_SEAFLOOR_CAVERN_ROOM9 24 -#define MAP_GROUP_CAVE_OF_ORIGIN_ENTRANCE 24 -#define MAP_GROUP_CAVE_OF_ORIGIN_1F 24 -#define MAP_GROUP_CAVE_OF_ORIGIN_B1F 24 -#define MAP_GROUP_CAVE_OF_ORIGIN_B2F 24 -#define MAP_GROUP_CAVE_OF_ORIGIN_B3F 24 -#define MAP_GROUP_CAVE_OF_ORIGIN_B4F 24 -#define MAP_GROUP_VICTORY_ROAD_1F 24 -#define MAP_GROUP_VICTORY_ROAD_B1F 24 -#define MAP_GROUP_VICTORY_ROAD_B2F 24 -#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_ENTRANCE_ROOM 24 -#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_INNER_ROOM 24 -#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_STAIRS_ROOM 24 -#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_LOWER_ROOM 24 -#define MAP_GROUP_SHOAL_CAVE_HIGH_TIDE_ENTRANCE_ROOM 24 -#define MAP_GROUP_SHOAL_CAVE_HIGH_TIDE_INNER_ROOM 24 -#define MAP_GROUP_NEW_MAUVILLE_ENTRANCE 24 -#define MAP_GROUP_NEW_MAUVILLE_INSIDE 24 -#define MAP_GROUP_ABANDONED_SHIP_DECK 24 -#define MAP_GROUP_ABANDONED_SHIP_CORRIDORS_1F 24 -#define MAP_GROUP_ABANDONED_SHIP_ROOMS_1F 24 -#define MAP_GROUP_ABANDONED_SHIP_CORRIDORS_B1F 24 -#define MAP_GROUP_ABANDONED_SHIP_ROOMS_B1F 24 -#define MAP_GROUP_ABANDONED_SHIP_ROOMS2_B1F 24 -#define MAP_GROUP_ABANDONED_SHIP_UNDERWATER1 24 -#define MAP_GROUP_ABANDONED_SHIP_ROOM_B1F 24 -#define MAP_GROUP_ABANDONED_SHIP_ROOMS2_1F 24 -#define MAP_GROUP_ABANDONED_SHIP_CAPTAINS_OFFICE 24 -#define MAP_GROUP_ABANDONED_SHIP_UNDERWATER2 24 -#define MAP_GROUP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS 24 -#define MAP_GROUP_ABANDONED_SHIP_HIDDEN_FLOOR_ROOMS 24 -#define MAP_GROUP_ISLAND_CAVE 24 -#define MAP_GROUP_ANCIENT_TOMB 24 -#define MAP_GROUP_UNDERWATER_ROUTE134 24 -#define MAP_GROUP_UNDERWATER_SEALED_CHAMBER 24 -#define MAP_GROUP_SEALED_CHAMBER_OUTER_ROOM 24 -#define MAP_GROUP_SEALED_CHAMBER_INNER_ROOM 24 -#define MAP_GROUP_SCORCHED_SLAB 24 -#define MAP_GROUP_UNUSED_AQUA_HIDEOUT_1F 24 -#define MAP_GROUP_UNUSED_AQUA_HIDEOUT_B1F 24 -#define MAP_GROUP_UNUSED_AQUA_HIDEOUT_B2F 24 -#define MAP_GROUP_SKY_PILLAR_ENTRANCE 24 -#define MAP_GROUP_SKY_PILLAR_OUTSIDE 24 -#define MAP_GROUP_SKY_PILLAR_1F 24 -#define MAP_GROUP_SKY_PILLAR_2F 24 -#define MAP_GROUP_SKY_PILLAR_3F 24 -#define MAP_GROUP_SKY_PILLAR_4F 24 -#define MAP_GROUP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM 24 -#define MAP_GROUP_SKY_PILLAR_5F 24 -#define MAP_GROUP_SKY_PILLAR_TOP 24 -#define MAP_GROUP_MAGMA_HIDEOUT_ENTRANCE 24 -#define MAP_GROUP_MAGMA_HIDEOUT_B1F 24 -#define MAP_GROUP_MAGMA_HIDEOUT_B2F 24 -#define MAP_GROUP_MAGMA_HIDEOUT_B3F 24 -#define MAP_GROUP_MAGMA_HIDEOUT_B4F 24 -#define MAP_GROUP_MAGMA_HIDEOUT_B5F 24 -#define MAP_GROUP_MAGMA_HIDEOUT_B6F 24 -#define MAP_GROUP_MAGMA_HIDEOUT_B7F 24 -#define MAP_GROUP_MIRAGE_TOWER_1F 24 -#define MAP_GROUP_MIRAGE_TOWER_2F 24 -#define MAP_GROUP_MIRAGE_TOWER_3F 24 -#define MAP_GROUP_MIRAGE_TOWER_4F 24 -#define MAP_GROUP_DESERT_UNDERPASS 24 -#define MAP_GROUP_ARTISAN_CAVE_1F 24 -#define MAP_GROUP_ARTISAN_CAVE_2F 24 -#define MAP_GROUP_UNKNOWN_UNDERWATER 24 -#define MAP_GROUP_MARINE_CAVE_1F 24 -#define MAP_GROUP_MARINE_CAVE_2F 24 -#define MAP_GROUP_TERRA_CAVE_1F 24 -#define MAP_GROUP_TERRA_CAVE_2F 24 -#define MAP_GROUP_ALTERING_CAVE 24 -#define MAP_GROUP_METEOR_FALLS_B1F_3R 24 - -//-------------------------------------------------- -// Map Group 25 -//-------------------------------------------------- - -enum -{ - MAP_ID_SECRET_BASE_RED_CAVE1, - MAP_ID_SECRET_BASE_BROWN_CAVE1, - MAP_ID_SECRET_BASE_BLUE_CAVE1, - MAP_ID_SECRET_BASE_YELLOW_CAVE1, - MAP_ID_SECRET_BASE_TREE1, - MAP_ID_SECRET_BASE_SHRUB1, - MAP_ID_SECRET_BASE_RED_CAVE2, - MAP_ID_SECRET_BASE_BROWN_CAVE2, - MAP_ID_SECRET_BASE_BLUE_CAVE2, - MAP_ID_SECRET_BASE_YELLOW_CAVE2, - MAP_ID_SECRET_BASE_TREE2, - MAP_ID_SECRET_BASE_SHRUB2, - MAP_ID_SECRET_BASE_RED_CAVE3, - MAP_ID_SECRET_BASE_BROWN_CAVE3, - MAP_ID_SECRET_BASE_BLUE_CAVE3, - MAP_ID_SECRET_BASE_YELLOW_CAVE3, - MAP_ID_SECRET_BASE_TREE3, - MAP_ID_SECRET_BASE_SHRUB3, - MAP_ID_SECRET_BASE_RED_CAVE4, - MAP_ID_SECRET_BASE_BROWN_CAVE4, - MAP_ID_SECRET_BASE_BLUE_CAVE4, - MAP_ID_SECRET_BASE_YELLOW_CAVE4, - MAP_ID_SECRET_BASE_TREE4, - MAP_ID_SECRET_BASE_SHRUB4, - MAP_ID_SINGLE_BATTLE_COLOSSEUM, - MAP_ID_TRADE_CENTER, - MAP_ID_RECORD_CORNER, - MAP_ID_DOUBLE_BATTLE_COLOSSEUM, - MAP_ID_LINK_CONTEST_ROOM1, - MAP_ID_UNKNOWN_MAP_25_29, - MAP_ID_UNKNOWN_MAP_25_30, - MAP_ID_UNKNOWN_MAP_25_31, - MAP_ID_UNKNOWN_MAP_25_32, - MAP_ID_UNKNOWN_MAP_25_33, - MAP_ID_UNKNOWN_MAP_25_34, - MAP_ID_LINK_CONTEST_ROOM2, - MAP_ID_LINK_CONTEST_ROOM3, - MAP_ID_LINK_CONTEST_ROOM4, - MAP_ID_LINK_CONTEST_ROOM5, - MAP_ID_LINK_CONTEST_ROOM6, - MAP_ID_INSIDE_OF_TRUCK, - MAP_ID_SS_TIDAL_CORRIDOR, - MAP_ID_SS_TIDAL_LOWER_DECK, - MAP_ID_SS_TIDAL_ROOMS, - MAP_ID_TEST_ROOM_1, - MAP_ID_TEST_ROOM_2, - MAP_ID_TEST_ROOM_3, - MAP_ID_TEST_ROOM_4, - MAP_ID_TEST_ROOM_5, - MAP_ID_TEST_ROOM_6, - MAP_ID_TEST_ROOM_7, - MAP_ID_TEST_ROOM_8, - MAP_ID_TEST_ROOM_9, - MAP_ID_TEST_ROOM_10, - MAP_ID_TEST_ROOM_11, - MAP_ID_TEST_ROOM_12, - MAP_ID_TEST_ROOM_13, - MAP_ID_TEST_ROOM_14, - MAP_ID_TEST_ROOM_15, - MAP_ID_TEST_ROOM_16, - MAP_ID_UNION_ROOM, -}; - -#define MAP_GROUP_SECRET_BASE_RED_CAVE1 25 -#define MAP_GROUP_SECRET_BASE_BROWN_CAVE1 25 -#define MAP_GROUP_SECRET_BASE_BLUE_CAVE1 25 -#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE1 25 -#define MAP_GROUP_SECRET_BASE_TREE1 25 -#define MAP_GROUP_SECRET_BASE_SHRUB1 25 -#define MAP_GROUP_SECRET_BASE_RED_CAVE2 25 -#define MAP_GROUP_SECRET_BASE_BROWN_CAVE2 25 -#define MAP_GROUP_SECRET_BASE_BLUE_CAVE2 25 -#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE2 25 -#define MAP_GROUP_SECRET_BASE_TREE2 25 -#define MAP_GROUP_SECRET_BASE_SHRUB2 25 -#define MAP_GROUP_SECRET_BASE_RED_CAVE3 25 -#define MAP_GROUP_SECRET_BASE_BROWN_CAVE3 25 -#define MAP_GROUP_SECRET_BASE_BLUE_CAVE3 25 -#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE3 25 -#define MAP_GROUP_SECRET_BASE_TREE3 25 -#define MAP_GROUP_SECRET_BASE_SHRUB3 25 -#define MAP_GROUP_SECRET_BASE_RED_CAVE4 25 -#define MAP_GROUP_SECRET_BASE_BROWN_CAVE4 25 -#define MAP_GROUP_SECRET_BASE_BLUE_CAVE4 25 -#define MAP_GROUP_SECRET_BASE_YELLOW_CAVE4 25 -#define MAP_GROUP_SECRET_BASE_TREE4 25 -#define MAP_GROUP_SECRET_BASE_SHRUB4 25 -#define MAP_GROUP_SINGLE_BATTLE_COLOSSEUM 25 -#define MAP_GROUP_TRADE_CENTER 25 -#define MAP_GROUP_RECORD_CORNER 25 -#define MAP_GROUP_DOUBLE_BATTLE_COLOSSEUM 25 -#define MAP_GROUP_LINK_CONTEST_ROOM1 25 -#define MAP_GROUP_UNKNOWN_MAP_25_29 25 -#define MAP_GROUP_UNKNOWN_MAP_25_30 25 -#define MAP_GROUP_UNKNOWN_MAP_25_31 25 -#define MAP_GROUP_UNKNOWN_MAP_25_32 25 -#define MAP_GROUP_UNKNOWN_MAP_25_33 25 -#define MAP_GROUP_UNKNOWN_MAP_25_34 25 -#define MAP_GROUP_LINK_CONTEST_ROOM2 25 -#define MAP_GROUP_LINK_CONTEST_ROOM3 25 -#define MAP_GROUP_LINK_CONTEST_ROOM4 25 -#define MAP_GROUP_LINK_CONTEST_ROOM5 25 -#define MAP_GROUP_LINK_CONTEST_ROOM6 25 -#define MAP_GROUP_INSIDE_OF_TRUCK 25 -#define MAP_GROUP_SS_TIDAL_CORRIDOR 25 -#define MAP_GROUP_SS_TIDAL_LOWER_DECK 25 -#define MAP_GROUP_SS_TIDAL_ROOMS 25 -#define MAP_GROUP_TEST_ROOM_1 25 -#define MAP_GROUP_TEST_ROOM_2 25 -#define MAP_GROUP_TEST_ROOM_3 25 -#define MAP_GROUP_TEST_ROOM_4 25 -#define MAP_GROUP_TEST_ROOM_5 25 -#define MAP_GROUP_TEST_ROOM_6 25 -#define MAP_GROUP_TEST_ROOM_7 25 -#define MAP_GROUP_TEST_ROOM_8 25 -#define MAP_GROUP_TEST_ROOM_9 25 -#define MAP_GROUP_TEST_ROOM_10 25 -#define MAP_GROUP_TEST_ROOM_11 25 -#define MAP_GROUP_TEST_ROOM_12 25 -#define MAP_GROUP_TEST_ROOM_13 25 -#define MAP_GROUP_TEST_ROOM_14 25 -#define MAP_GROUP_TEST_ROOM_15 25 -#define MAP_GROUP_TEST_ROOM_16 25 -#define MAP_GROUP_UNION_ROOM 25 -//-------------------------------------------------- -// Map Group 26 -//-------------------------------------------------- - -enum -{ - MAP_ID_SAFARI_ZONE_NORTHWEST, - MAP_ID_SAFARI_ZONE_NORTHEAST, - MAP_ID_SAFARI_ZONE_SOUTHWEST, - MAP_ID_SAFARI_ZONE_SOUTHEAST, - MAP_ID_BATTLE_FRONTIER_OUTSIDE_WEST, - MAP_ID_BATTLE_TOWER_LOBBY, - MAP_ID_BATTLE_TOWER_ELEVATOR, - MAP_ID_BATTLE_TOWER_CORRIDOR, - MAP_ID_BATTLE_TOWER_BATTLE_ROOM, - MAP_ID_SOUTHERN_ISLAND_EXTERIOR, - MAP_ID_SOUTHERN_ISLAND_INTERIOR, - MAP_ID_SAFARI_ZONE_REST_HOUSE, - MAP_ID_SAFARI_ZONE_EM_1, - MAP_ID_SAFARI_ZONE_EM_2, - MAP_ID_BATTLE_FRONTIER_OUTSIDE_EAST, - MAP_ID_BATTLE_FRONTIER_TAG_LINK, - MAP_ID_BATTLE_FRONTIER_TAG_LINK_CORRIDOR, - MAP_ID_BATTLE_FRONTIER_TAG_LINK_ARENA, - MAP_ID_BATTLE_DOME_LOBBY, - MAP_ID_BATTLE_DOME_CORRIDOR, - MAP_ID_BATTLE_DOME_ROOM, - MAP_ID_BATTLE_DOME_ARENA, - MAP_ID_BATTLE_PALACE_LOBBY, - MAP_ID_BATTLE_PALACE_CORRIDOR, - MAP_ID_BATTLE_PALACE_1F, - MAP_ID_BATTLE_PYRAMID_LOBBY, - MAP_ID_BATTLE_PYRAMID_UNKNOWN, - MAP_ID_BATTLE_PYRAMID_PEAK, - MAP_ID_BATTLE_ARENA_LOBBY, - MAP_ID_BATTLE_ARENA_CORRIDOR, - MAP_ID_BATTLE_ARENA_ARENA, - MAP_ID_BATTLE_FACTORY_LOBBY, - MAP_ID_BATTLE_FACTORY_CORRIDOR, - MAP_ID_BATTLE_FACTORY_ARENA, - MAP_ID_BATTLE_PALACE_2F, - MAP_ID_BATTLE_PALACE_3F, - MAP_ID_BATTLE_PALACE_4F, - MAP_ID_BATTLE_PALACE_5F, - MAP_ID_BATTLE_PALACE_6F, - MAP_ID_BATTLE_PALACE_TEST_ROOM, - MAP_ID_RANKING_HALL, - MAP_ID_STAT_RATER_HOUSE, - MAP_ID_BATTLE_FRONTIER_EXCHANGE, - MAP_ID_BATTLE_FRONTIER_MANIAC_HOUSE, - MAP_ID_BATTLE_FRONTIER_GAMBLING_HOUSE, - MAP_ID_BATTLE_FRONTIER_HOUSE1, - MAP_ID_BATTLE_FRONTIER_SCOTTS_HOUSE, - MAP_ID_BATTLE_FRONTIER_HOUSE2, - MAP_ID_BATTLE_FRONTIER_HOUSE3, - MAP_ID_BATTLE_FRONTIER_HOUSE4, - MAP_ID_BATTLE_FRONTIER_ENTRANCE_HALL, - MAP_ID_BATTLE_FRONTIER_HOUSE5, - MAP_ID_BATTLE_FRONTIER_UNUSED_HOUSE, - MAP_ID_BATTLE_FRONTIER_POKEMON_CENTER_1F, - MAP_ID_BATTLE_FRONTIER_POKEMON_CENTER_2F, - MAP_ID_BATTLE_FRONTIER_MART, - MAP_ID_FARAWAY_ISLAND_OUTSIDE, - MAP_ID_FARAWAY_ISLAND_FOREST, - MAP_ID_BIRTH_ISLAND_OUTSIDE, - MAP_ID_BIRTH_ISLAND_DOCKS, - MAP_ID_TRAINER_HILL_LOBBY, - MAP_ID_TRAINER_HILL_1F, - MAP_ID_TRAINER_HILL_2F, - MAP_ID_TRAINER_HILL_3F, - MAP_ID_TRAINER_HILL_4F, - MAP_ID_TRAINER_HILL_5F, - MAP_ID_NAVEL_ROCK_OUTSIDE, - MAP_ID_NAVEL_ROCK_DOCKS, - MAP_ID_NAVEL_ROCK_1F, - MAP_ID_NAVEL_ROCK_2F, - MAP_ID_NAVEL_ROCK_3F, - MAP_ID_NAVEL_ROCK_4F, - MAP_ID_NAVEL_ROCK_5F, - MAP_ID_NAVEL_ROCK_6F, - MAP_ID_NAVEL_ROCK_7F, - MAP_ID_NAVEL_ROCK_PEAK, - MAP_ID_NAVEL_ROCK_B1F, - MAP_ID_NAVEL_ROCK_B2F, - MAP_ID_NAVEL_ROCK_B3F, - MAP_ID_NAVEL_ROCK_B4F, - MAP_ID_NAVEL_ROCK_B5F, - MAP_ID_NAVEL_ROCK_B6F, - MAP_ID_NAVEL_ROCK_B7F, - MAP_ID_NAVEL_ROCK_B8F, - MAP_ID_NAVEL_ROCK_B9F, - MAP_ID_NAVEL_ROCK_B10F, - MAP_ID_NAVEL_ROCK_B11F, - MAP_ID_NAVEL_ROCK_INNER, - MAP_ID_TRAINER_HILL_ELEVATOR, -}; - -#define MAP_GROUP_SAFARI_ZONE_NORTHWEST 26 -#define MAP_GROUP_SAFARI_ZONE_NORTHEAST 26 -#define MAP_GROUP_SAFARI_ZONE_SOUTHWEST 26 -#define MAP_GROUP_SAFARI_ZONE_SOUTHEAST 26 -#define MAP_GROUP_BATTLE_FRONTIER_OUTSIDE_WEST 26 -#define MAP_GROUP_BATTLE_TOWER_LOBBY 26 -#define MAP_GROUP_BATTLE_TOWER_ELEVATOR 26 -#define MAP_GROUP_BATTLE_TOWER_CORRIDOR 26 -#define MAP_GROUP_BATTLE_TOWER_BATTLE_ROOM 26 -#define MAP_GROUP_SOUTHERN_ISLAND_EXTERIOR 26 -#define MAP_GROUP_SOUTHERN_ISLAND_INTERIOR 26 -#define MAP_GROUP_SAFARI_ZONE_REST_HOUSE 26 -#define MAP_GROUP_SAFARI_ZONE_EM_1 26 -#define MAP_GROUP_SAFARI_ZONE_EM_2 26 -#define MAP_GROUP_BATTLE_FRONTIER_OUTSIDE_EAST 26 -#define MAP_GROUP_BATTLE_FRONTIER_TAG_LINK 26 -#define MAP_GROUP_BATTLE_FRONTIER_TAG_LINK_CORRIDOR 26 -#define MAP_GROUP_BATTLE_FRONTIER_TAG_LINK_ARENA 26 -#define MAP_GROUP_BATTLE_DOME_LOBBY 26 -#define MAP_GROUP_BATTLE_DOME_CORRIDOR 26 -#define MAP_GROUP_BATTLE_DOME_ROOM 26 -#define MAP_GROUP_BATTLE_DOME_ARENA 26 -#define MAP_GROUP_BATTLE_PALACE_LOBBY 26 -#define MAP_GROUP_BATTLE_PALACE_CORRIDOR 26 -#define MAP_GROUP_BATTLE_PALACE_1F 26 -#define MAP_GROUP_BATTLE_PYRAMID_LOBBY 26 -#define MAP_GROUP_BATTLE_PYRAMID_UNKNOWN 26 -#define MAP_GROUP_BATTLE_PYRAMID_PEAK 26 -#define MAP_GROUP_BATTLE_ARENA_LOBBY 26 -#define MAP_GROUP_BATTLE_ARENA_CORRIDOR 26 -#define MAP_GROUP_BATTLE_ARENA_ARENA 26 // rename -#define MAP_GROUP_BATTLE_FACTORY_LOBBY 26 -#define MAP_GROUP_BATTLE_FACTORY_CORRIDOR 26 -#define MAP_GROUP_BATTLE_FACTORY_ARENA 26 -#define MAP_GROUP_BATTLE_PALACE_2F 26 -#define MAP_GROUP_BATTLE_PALACE_3F 26 -#define MAP_GROUP_BATTLE_PALACE_4F 26 -#define MAP_GROUP_BATTLE_PALACE_5F 26 -#define MAP_GROUP_BATTLE_PALACE_6F 26 -#define MAP_GROUP_BATTLE_PALACE_TEST_ROOM 26 -#define MAP_GROUP_RANKING_HALL 26 -#define MAP_GROUP_STAT_RATER_HOUSE 26 -#define MAP_GROUP_BATTLE_FRONTIER_EXCHANGE 26 -#define MAP_GROUP_BATTLE_FRONTIER_MANIAC_HOUSE 26 -#define MAP_GROUP_BATTLE_FRONTIER_GAMBLING_HOUSE 26 -#define MAP_GROUP_BATTLE_FRONTIER_HOUSE1 26 -#define MAP_GROUP_BATTLE_FRONTIER_SCOTTS_HOUSE 26 -#define MAP_GROUP_BATTLE_FRONTIER_HOUSE2 26 -#define MAP_GROUP_BATTLE_FRONTIER_HOUSE3 26 -#define MAP_GROUP_BATTLE_FRONTIER_HOUSE4 26 -#define MAP_GROUP_BATTLE_FRONTIER_ENTRANCE_HALL 26 -#define MAP_GROUP_BATTLE_FRONTIER_HOUSE5 26 -#define MAP_GROUP_BATTLE_FRONTIER_UNUSED_HOUSE 26 -#define MAP_GROUP_BATTLE_FRONTIER_POKEMON_CENTER_1F 26 -#define MAP_GROUP_BATTLE_FRONTIER_POKEMON_CENTER_2F 26 -#define MAP_GROUP_BATTLE_FRONTIER_MART 26 -#define MAP_GROUP_FARAWAY_ISLAND_OUTSIDE 26 -#define MAP_GROUP_FARAWAY_ISLAND_FOREST 26 -#define MAP_GROUP_BIRTH_ISLAND_OUTSIDE 26 -#define MAP_GROUP_BIRTH_ISLAND_DOCKS 26 -#define MAP_GROUP_TRAINER_HILL_LOBBY 26 -#define MAP_GROUP_TRAINER_HILL_1F 26 -#define MAP_GROUP_TRAINER_HILL_2F 26 -#define MAP_GROUP_TRAINER_HILL_3F 26 -#define MAP_GROUP_TRAINER_HILL_4F 26 -#define MAP_GROUP_TRAINER_HILL_5F 26 -#define MAP_GROUP_NAVEL_ROCK_OUTSIDE 26 -#define MAP_GROUP_NAVEL_ROCK_DOCKS 26 -#define MAP_GROUP_NAVEL_ROCK_1F 26 -#define MAP_GROUP_NAVEL_ROCK_2F 26 -#define MAP_GROUP_NAVEL_ROCK_3F 26 -#define MAP_GROUP_NAVEL_ROCK_4F 26 -#define MAP_GROUP_NAVEL_ROCK_5F 26 -#define MAP_GROUP_NAVEL_ROCK_6F 26 -#define MAP_GROUP_NAVEL_ROCK_7F 26 -#define MAP_GROUP_NAVEL_ROCK_PEAK 26 -#define MAP_GROUP_NAVEL_ROCK_B1F 26 -#define MAP_GROUP_NAVEL_ROCK_B2F 26 -#define MAP_GROUP_NAVEL_ROCK_B3F 26 -#define MAP_GROUP_NAVEL_ROCK_B4F 26 -#define MAP_GROUP_NAVEL_ROCK_B5F 26 -#define MAP_GROUP_NAVEL_ROCK_B6F 26 -#define MAP_GROUP_NAVEL_ROCK_B7F 26 -#define MAP_GROUP_NAVEL_ROCK_B8F 26 -#define MAP_GROUP_NAVEL_ROCK_B9F 26 -#define MAP_GROUP_NAVEL_ROCK_B10F 26 -#define MAP_GROUP_NAVEL_ROCK_B11F 26 -#define MAP_GROUP_NAVEL_ROCK_INNER 26 -#define MAP_GROUP_TRAINER_HILL_ELEVATOR 26 -//-------------------------------------------------- -// Map Group 27 -//-------------------------------------------------- - -enum -{ - MAP_ID_ROUTE104_PROTOTYPE, - MAP_ID_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP, -}; - -#define MAP_GROUP_ROUTE104_PROTOTYPE 27 -#define MAP_GROUP_ROUTE104_PROTOTYPE_PRETTY_PETAL_FLOWER_SHOP 27 - -//-------------------------------------------------- -// Map Group 28 -//-------------------------------------------------- - -enum -{ - MAP_ID_ROUTE109_SEASHORE_HOUSE, -}; - -#define MAP_GROUP_ROUTE109_SEASHORE_HOUSE 28 - -//-------------------------------------------------- -// Map Group 29 -//-------------------------------------------------- - -enum -{ - MAP_ID_ROUTE110_TRICK_HOUSE_ENTRANCE, - MAP_ID_ROUTE110_TRICK_HOUSE_END, - MAP_ID_ROUTE110_TRICK_HOUSE_CORRIDOR, - MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE1, - MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE2, - MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE3, - MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE4, - MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE5, - MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE6, - MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE7, - MAP_ID_ROUTE110_TRICK_HOUSE_PUZZLE8, - MAP_ID_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE, - MAP_ID_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE, -}; - -#define MAP_GROUP_ROUTE110_TRICK_HOUSE_ENTRANCE 29 -#define MAP_GROUP_ROUTE110_TRICK_HOUSE_END 29 -#define MAP_GROUP_ROUTE110_TRICK_HOUSE_CORRIDOR 29 -#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE1 29 -#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE2 29 -#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE3 29 -#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE4 29 -#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE5 29 -#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE6 29 -#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE7 29 -#define MAP_GROUP_ROUTE110_TRICK_HOUSE_PUZZLE8 29 -#define MAP_GROUP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE 29 -#define MAP_GROUP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE 29 - -//-------------------------------------------------- -// Map Group 30 -//-------------------------------------------------- - -enum -{ - MAP_ID_ROUTE113_GLASS_WORKSHOP, -}; - -#define MAP_GROUP_ROUTE113_GLASS_WORKSHOP 30 - -//-------------------------------------------------- -// Map Group 31 -//-------------------------------------------------- - -enum -{ - MAP_ID_ROUTE123_BERRY_MASTERS_HOUSE, -}; - -#define MAP_GROUP_ROUTE123_BERRY_MASTERS_HOUSE 31 - -//-------------------------------------------------- -// Map Group 32 -//-------------------------------------------------- - -enum -{ - MAP_ID_ROUTE119_WEATHER_INSTITUTE_1F, - MAP_ID_ROUTE119_WEATHER_INSTITUTE_2F, - MAP_ID_ROUTE119_HOUSE, -}; - -#define MAP_GROUP_ROUTE119_WEATHER_INSTITUTE_1F 32 -#define MAP_GROUP_ROUTE119_WEATHER_INSTITUTE_2F 32 -#define MAP_GROUP_ROUTE119_HOUSE 32 - -//-------------------------------------------------- -// Map Group 33 -//-------------------------------------------------- - -enum -{ - MAP_ID_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE, -}; - -#define MAP_GROUP_ROUTE124_DIVING_TREASURE_HUNTERS_HOUSE 33 - -#endif // GUARD_MAP_CONSTANTS_H
\ No newline at end of file diff --git a/include/map_object_constants.h b/include/map_object_constants.h deleted file mode 100644 index 79482b54a..000000000 --- a/include/map_object_constants.h +++ /dev/null @@ -1,239 +0,0 @@ -#ifndef GUARD_MAP_OBJECT_CONSTANTS_H -#define GUARD_MAP_OBJECT_CONSTANTS_H - -enum -{ - MAP_OBJ_GFX_BRENDAN_NORMAL, - MAP_OBJ_GFX_BRENDAN_MACH_BIKE, - MAP_OBJ_GFX_BRENDAN_SURFING, - MAP_OBJ_GFX_BRENDAN_FIELD_MOVE, - MAP_OBJ_GFX_QUINTY_PLUMP, - MAP_OBJ_GFX_LITTLE_BOY_1, - MAP_OBJ_GFX_LITTLE_GIRL_1, - MAP_OBJ_GFX_BOY_1, - MAP_OBJ_GFX_GIRL_1, - MAP_OBJ_GFX_BOY_2, - MAP_OBJ_GFX_GIRL_2, - MAP_OBJ_GFX_LITTLE_BOY_2, - MAP_OBJ_GFX_LITTLE_GIRL_2, - MAP_OBJ_GFX_BOY_3, - MAP_OBJ_GFX_GIRL_3, - MAP_OBJ_GFX_BOY_4, - MAP_OBJ_GFX_WOMAN_1, - MAP_OBJ_GFX_FAT_MAN, - MAP_OBJ_GFX_WOMAN_2, - MAP_OBJ_GFX_MAN_1, - MAP_OBJ_GFX_WOMAN_3, - MAP_OBJ_GFX_OLD_MAN_1, - MAP_OBJ_GFX_OLD_WOMAN_1, - MAP_OBJ_GFX_MAN_2, - MAP_OBJ_GFX_WOMAN_4, - MAP_OBJ_GFX_MAN_3, - MAP_OBJ_GFX_WOMAN_5, - MAP_OBJ_GFX_COOK, - MAP_OBJ_GFX_WOMAN_6, - MAP_OBJ_GFX_OLD_MAN_2, - MAP_OBJ_GFX_OLD_WOMAN_2, - MAP_OBJ_GFX_CAMPER, - MAP_OBJ_GFX_PICNICKER, - MAP_OBJ_GFX_MAN_4, - MAP_OBJ_GFX_WOMAN_7, - MAP_OBJ_GFX_YOUNGSTER, - MAP_OBJ_GFX_BUG_CATCHER, - MAP_OBJ_GFX_PSYCHIC_M, - MAP_OBJ_GFX_SCHOOL_KID_M, - MAP_OBJ_GFX_MANIAC, - MAP_OBJ_GFX_HEX_MANIAC, - MAP_OBJ_GFX_WOMAN_8, - MAP_OBJ_GFX_SWIMMER_M, - MAP_OBJ_GFX_SWIMMER_F, - MAP_OBJ_GFX_BLACK_BELT, - MAP_OBJ_GFX_BEAUTY, - MAP_OBJ_GFX_SCIENTIST_1, - MAP_OBJ_GFX_LASS, - MAP_OBJ_GFX_GENTLEMAN, - MAP_OBJ_GFX_SAILOR, - MAP_OBJ_GFX_FISHERMAN, - MAP_OBJ_GFX_RUNNING_TRIATHLETE_M, - MAP_OBJ_GFX_RUNNING_TRIATHLETE_F, - MAP_OBJ_GFX_TUBER_F, - MAP_OBJ_GFX_TUBER_M, - MAP_OBJ_GFX_HIKER, - MAP_OBJ_GFX_CYCLING_TRIATHLETE_M, - MAP_OBJ_GFX_CYCLING_TRIATHLETE_F, - MAP_OBJ_GFX_NURSE, - MAP_OBJ_GFX_ITEM_BALL, - MAP_OBJ_GFX_BERRY_TREE, - MAP_OBJ_GFX_BERRY_TREE_EARLY_STAGES, - MAP_OBJ_GFX_BERRY_TREE_LATE_STAGES, - MAP_OBJ_GFX_BRENDAN_ACRO_BIKE, - MAP_OBJ_GFX_PROF_BIRCH, - MAP_OBJ_GFX_MAN_5, - MAP_OBJ_GFX_MAN_6, - MAP_OBJ_GFX_REPORTER_M, - MAP_OBJ_GFX_REPORTER_F, - MAP_OBJ_GFX_BARD, - MAP_OBJ_GFX_HIPSTER, - MAP_OBJ_GFX_TRADER, - MAP_OBJ_GFX_STORYTELLER, - MAP_OBJ_GFX_GIDDY, - MAP_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_1, - MAP_OBJ_GFX_UNUSED_MAUVILLE_OLD_MAN_2, - MAP_OBJ_GFX_UNUSED_NATU_DOLL, - MAP_OBJ_GFX_UNUSED_MAGNEMITE_DOLL, - MAP_OBJ_GFX_UNUSED_SQUIRTLE_DOLL, - MAP_OBJ_GFX_UNUSED_WOOPER_DOLL, - MAP_OBJ_GFX_UNUSED_PIKACHU_DOLL, - MAP_OBJ_GFX_UNUSED_PORYGON2_DOLL, - MAP_OBJ_GFX_CUTTABLE_TREE, - MAP_OBJ_GFX_MART_EMPLOYEE, - MAP_OBJ_GFX_ROOFTOP_SALE_WOMAN, - MAP_OBJ_GFX_TEALA, - MAP_OBJ_GFX_BREAKABLE_ROCK, - MAP_OBJ_GFX_PUSHABLE_BOULDER, - MAP_OBJ_GFX_MR_BRINEYS_BOAT, - MAP_OBJ_GFX_MAY_NORMAL, - MAP_OBJ_GFX_MAY_MACH_BIKE, - MAP_OBJ_GFX_MAY_ACRO_BIKE, - MAP_OBJ_GFX_MAY_SURFING, - MAP_OBJ_GFX_MAY_FIELD_MOVE, - MAP_OBJ_GFX_TRUCK, - MAP_OBJ_GFX_MACHOKE_CARRYING_BOX, - MAP_OBJ_GFX_MACHOKE_FACING_AWAY, - MAP_OBJ_GFX_BIRCHS_BAG, - MAP_OBJ_GFX_POOCHYENA, - MAP_OBJ_GFX_ARTIST, - MAP_OBJ_GFX_RIVAL_BRENDAN_NORMAL, - MAP_OBJ_GFX_RIVAL_BRENDAN_MACH_BIKE, - MAP_OBJ_GFX_RIVAL_BRENDAN_ACRO_BIKE, - MAP_OBJ_GFX_RIVAL_BRENDAN_SURFING, - MAP_OBJ_GFX_RIVAL_BRENDAN_FIELD_MOVE, - MAP_OBJ_GFX_RIVAL_MAY_NORMAL, - MAP_OBJ_GFX_RIVAL_MAY_MACH_BIKE, - MAP_OBJ_GFX_RIVAL_MAY_ACRO_BIKE, - MAP_OBJ_GFX_RIVAL_MAY_SURFING, - MAP_OBJ_GFX_RIVAL_MAY_FIELD_MOVE, - MAP_OBJ_GFX_CAMERAMAN, - MAP_OBJ_GFX_BRENDAN_UNDERWATER, - MAP_OBJ_GFX_MAY_UNDERWATER, - MAP_OBJ_GFX_MOVING_BOX, - MAP_OBJ_GFX_CABLE_CAR, - MAP_OBJ_GFX_SCIENTIST_2, - MAP_OBJ_GFX_MAN_7, - MAP_OBJ_GFX_AQUA_MEMBER_M, - MAP_OBJ_GFX_AQUA_MEMBER_F, - MAP_OBJ_GFX_MAGMA_MEMBER_M, - MAP_OBJ_GFX_MAGMA_MEMBER_F, - MAP_OBJ_GFX_SIDNEY, - MAP_OBJ_GFX_PHOEBE, - MAP_OBJ_GFX_GLACIA, - MAP_OBJ_GFX_DRAKE, - MAP_OBJ_GFX_ROXANNE, - MAP_OBJ_GFX_BRAWLY, - MAP_OBJ_GFX_WATTSON, - MAP_OBJ_GFX_FLANNERY, - MAP_OBJ_GFX_NORMAN, - MAP_OBJ_GFX_WINONA, - MAP_OBJ_GFX_LIZA, - MAP_OBJ_GFX_TATE, - MAP_OBJ_GFX_WALLACE, - MAP_OBJ_GFX_STEVEN, - MAP_OBJ_GFX_WALLY, - MAP_OBJ_GFX_LITTLE_BOY_3, - MAP_OBJ_GFX_BRENDAN_FISHING, - MAP_OBJ_GFX_MAY_FISHING, - MAP_OBJ_GFX_HOT_SPRINGS_OLD_WOMAN, - MAP_OBJ_GFX_SS_TIDAL, - MAP_OBJ_GFX_SUBMARINE_SHADOW, - MAP_OBJ_GFX_PICHU_DOLL, - MAP_OBJ_GFX_PIKACHU_DOLL, - MAP_OBJ_GFX_MARILL_DOLL, - MAP_OBJ_GFX_TOGEPI_DOLL, - MAP_OBJ_GFX_CYNDAQUIL_DOLL, - MAP_OBJ_GFX_CHIKORITA_DOLL, - MAP_OBJ_GFX_TOTODILE_DOLL, - MAP_OBJ_GFX_JIGGLYPUFF_DOLL, - MAP_OBJ_GFX_MEOWTH_DOLL, - MAP_OBJ_GFX_CLEFAIRY_DOLL, - MAP_OBJ_GFX_DITTO_DOLL, - MAP_OBJ_GFX_SMOOCHUM_DOLL, - MAP_OBJ_GFX_TREECKO_DOLL, - MAP_OBJ_GFX_TORCHIC_DOLL, - MAP_OBJ_GFX_MUDKIP_DOLL, - MAP_OBJ_GFX_DUSKULL_DOLL, - MAP_OBJ_GFX_WYNAUT_DOLL, - MAP_OBJ_GFX_BALTOY_DOLL, - MAP_OBJ_GFX_KECLEON_DOLL, - MAP_OBJ_GFX_AZURILL_DOLL, - MAP_OBJ_GFX_SKITTY_DOLL, - MAP_OBJ_GFX_SWABLU_DOLL, - MAP_OBJ_GFX_GULPIN_DOLL, - MAP_OBJ_GFX_LOTAD_DOLL, - MAP_OBJ_GFX_SEEDOT_DOLL, - MAP_OBJ_GFX_PIKA_CUSHION, - MAP_OBJ_GFX_ROUND_CUSHION, - MAP_OBJ_GFX_KISS_CUSHION, - MAP_OBJ_GFX_ZIGZAG_CUSHION, - MAP_OBJ_GFX_SPIN_CUSHION, - MAP_OBJ_GFX_DIAMOND_CUSHION, - MAP_OBJ_GFX_BALL_CUSHION, - MAP_OBJ_GFX_GRASS_CUSHION, - MAP_OBJ_GFX_FIRE_CUSHION, - MAP_OBJ_GFX_WATER_CUSHION, - MAP_OBJ_GFX_BIG_SNORLAX_DOLL, - MAP_OBJ_GFX_BIG_RHYDON_DOLL, - MAP_OBJ_GFX_BIG_LAPRAS_DOLL, - MAP_OBJ_GFX_BIG_VENUSAUR_DOLL, - MAP_OBJ_GFX_BIG_CHARIZARD_DOLL, - MAP_OBJ_GFX_BIG_BLASTOISE_DOLL, - MAP_OBJ_GFX_BIG_WAILMER_DOLL, - MAP_OBJ_GFX_BIG_REGIROCK_DOLL, - MAP_OBJ_GFX_BIG_REGICE_DOLL, - MAP_OBJ_GFX_BIG_REGISTEEL_DOLL, - MAP_OBJ_GFX_LATIAS, - MAP_OBJ_GFX_LATIOS, - MAP_OBJ_GFX_BOY_5, - MAP_OBJ_GFX_CONTEST_JUDGE, - MAP_OBJ_GFX_BRENDAN_WATERING, - MAP_OBJ_GFX_MAY_WATERING, - MAP_OBJ_GFX_BRENDAN_DECORATING, - MAP_OBJ_GFX_MAY_DECORATING, - MAP_OBJ_GFX_ARCHIE, - MAP_OBJ_GFX_MAXIE, - MAP_OBJ_GFX_KYOGRE_1, - MAP_OBJ_GFX_GROUDON_1, - MAP_OBJ_GFX_FOSSIL, - MAP_OBJ_GFX_REGIROCK, - MAP_OBJ_GFX_REGICE, - MAP_OBJ_GFX_REGISTEEL, - MAP_OBJ_GFX_SKITTY, - MAP_OBJ_GFX_KECLEON_1, - MAP_OBJ_GFX_KYOGRE_2, - MAP_OBJ_GFX_GROUDON_2, - MAP_OBJ_GFX_RAYQUAZA, - MAP_OBJ_GFX_ZIGZAGOON, - MAP_OBJ_GFX_PIKACHU, - MAP_OBJ_GFX_AZUMARILL, - MAP_OBJ_GFX_WINGULL, - MAP_OBJ_GFX_KECLEON_2, - MAP_OBJ_GFX_TUBER_M_SWIMMING, - MAP_OBJ_GFX_AZURILL, - MAP_OBJ_GFX_MOM, - MAP_OBJ_GFX_LINK_BRENDAN, - MAP_OBJ_GFX_LINK_MAY, -}; - -enum { - SHADOW_SIZE_S, - SHADOW_SIZE_M, - SHADOW_SIZE_L, - SHADOW_SIZE_XL -}; - -enum { - TRACKS_NONE, - TRACKS_FOOT, - TRACKS_BIKE_TIRE -}; - -#endif // GUARD_MAP_OBJECT_CONSTANTS_H diff --git a/include/menu.h b/include/menu.h index e93d688e4..99ff35adb 100644 --- a/include/menu.h +++ b/include/menu.h @@ -1,6 +1,7 @@ #ifndef GUARD_MENU_H #define GUARD_MENU_H +#include "text.h" #include "window.h" struct MenuAction @@ -28,8 +29,10 @@ int decompress_and_copy_tile_data_to_vram(u8 bg_id, const void *src, int size, u bool8 free_temp_tile_data_buffers_if_possible(void); u64 sub_8198A50(struct WindowTemplate*, u8, u8, u8, u8, u8, u8, u16); // returns something but it isn't used, fix when menu.s is decomp'd void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos); -s8 sub_8198C58(void); +s8 ProcessMenuInputNoWrap_(void); void do_scheduled_bg_tilemap_copies_to_vram(void); void clear_scheduled_bg_copies_to_vram(void); +void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, struct TextColor *color, s8 speed, const u8 *str); +void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a2, u16 a3); #endif // GUARD_MENU_H diff --git a/include/moves.h b/include/moves.h deleted file mode 100644 index 682f59506..000000000 --- a/include/moves.h +++ /dev/null @@ -1,366 +0,0 @@ -#ifndef GUARD_MOVES_H -#define GUARD_MOVES_H - -enum -{ - MOVE_NONE, - MOVE_POUND, - MOVE_KARATE_CHOP, - MOVE_DOUBLE_SLAP, - MOVE_COMET_PUNCH, - MOVE_MEGA_PUNCH, - MOVE_PAY_DAY, - MOVE_FIRE_PUNCH, - MOVE_ICE_PUNCH, - MOVE_THUNDER_PUNCH, - MOVE_SCRATCH, - MOVE_VICE_GRIP, - MOVE_GUILLOTINE, - MOVE_RAZOR_WIND, - MOVE_SWORDS_DANCE, - MOVE_CUT, - MOVE_GUST, - MOVE_WING_ATTACK, - MOVE_WHIRLWIND, - MOVE_FLY, - MOVE_BIND, - MOVE_SLAM, - MOVE_VINE_WHIP, - MOVE_STOMP, - MOVE_DOUBLE_KICK, - MOVE_MEGA_KICK, - MOVE_JUMP_KICK, - MOVE_ROLLING_KICK, - MOVE_SAND_ATTACK, - MOVE_HEADBUTT, - MOVE_HORN_ATTACK, - MOVE_FURY_ATTACK, - MOVE_HORN_DRILL, - MOVE_TACKLE, - MOVE_BODY_SLAM, - MOVE_WRAP, - MOVE_TAKE_DOWN, - MOVE_THRASH, - MOVE_DOUBLE_EDGE, - MOVE_TAIL_WHIP, - MOVE_POISON_STING, - MOVE_TWINEEDLE, - MOVE_PIN_MISSILE, - MOVE_LEER, - MOVE_BITE, - MOVE_GROWL, - MOVE_ROAR, - MOVE_SING, - MOVE_SUPERSONIC, - MOVE_SONIC_BOOM, - MOVE_DISABLE, - MOVE_ACID, - MOVE_EMBER, - MOVE_FLAMETHROWER, - MOVE_MIST, - MOVE_WATER_GUN, - MOVE_HYDRO_PUMP, - MOVE_SURF, - MOVE_ICE_BEAM, - MOVE_BLIZZARD, - MOVE_PSYBEAM, - MOVE_BUBBLE_BEAM, - MOVE_AURORA_BEAM, - MOVE_HYPER_BEAM, - MOVE_PECK, - MOVE_DRILL_PECK, - MOVE_SUBMISSION, - MOVE_LOW_KICK, - MOVE_COUNTER, - MOVE_SEISMIC_TOSS, - MOVE_STRENGTH, - MOVE_ABSORB, - MOVE_MEGA_DRAIN, - MOVE_LEECH_SEED, - MOVE_GROWTH, - MOVE_RAZOR_LEAF, - MOVE_SOLAR_BEAM, - MOVE_POISON_POWDER, - MOVE_STUN_SPORE, - MOVE_SLEEP_POWDER, - MOVE_PETAL_DANCE, - MOVE_STRING_SHOT, - MOVE_DRAGON_RAGE, - MOVE_FIRE_SPIN, - MOVE_THUNDER_SHOCK, - MOVE_THUNDERBOLT, - MOVE_THUNDER_WAVE, - MOVE_THUNDER, - MOVE_ROCK_THROW, - MOVE_EARTHQUAKE, - MOVE_FISSURE, - MOVE_DIG, - MOVE_TOXIC, - MOVE_CONFUSION, - MOVE_PSYCHIC, - MOVE_HYPNOSIS, - MOVE_MEDITATE, - MOVE_AGILITY, - MOVE_QUICK_ATTACK, - MOVE_RAGE, - MOVE_TELEPORT, - MOVE_NIGHT_SHADE, - MOVE_MIMIC, - MOVE_SCREECH, - MOVE_DOUBLE_TEAM, - MOVE_RECOVER, - MOVE_HARDEN, - MOVE_MINIMIZE, - MOVE_SMOKESCREEN, - MOVE_CONFUSE_RAY, - MOVE_WITHDRAW, - MOVE_DEFENSE_CURL, - MOVE_BARRIER, - MOVE_LIGHT_SCREEN, - MOVE_HAZE, - MOVE_REFLECT, - MOVE_FOCUS_ENERGY, - MOVE_BIDE, - MOVE_METRONOME, - MOVE_MIRROR_MOVE, - MOVE_SELF_DESTRUCT, - MOVE_EGG_BOMB, - MOVE_LICK, - MOVE_SMOG, - MOVE_SLUDGE, - MOVE_BONE_CLUB, - MOVE_FIRE_BLAST, - MOVE_WATERFALL, - MOVE_CLAMP, - MOVE_SWIFT, - MOVE_SKULL_BASH, - MOVE_SPIKE_CANNON, - MOVE_CONSTRICT, - MOVE_AMNESIA, - MOVE_KINESIS, - MOVE_SOFT_BOILED, - MOVE_HI_JUMP_KICK, - MOVE_GLARE, - MOVE_DREAM_EATER, - MOVE_POISON_GAS, - MOVE_BARRAGE, - MOVE_LEECH_LIFE, - MOVE_LOVELY_KISS, - MOVE_SKY_ATTACK, - MOVE_TRANSFORM, - MOVE_BUBBLE, - MOVE_DIZZY_PUNCH, - MOVE_SPORE, - MOVE_FLASH, - MOVE_PSYWAVE, - MOVE_SPLASH, - MOVE_ACID_ARMOR, - MOVE_CRABHAMMER, - MOVE_EXPLOSION, - MOVE_FURY_SWIPES, - MOVE_BONEMERANG, - MOVE_REST, - MOVE_ROCK_SLIDE, - MOVE_HYPER_FANG, - MOVE_SHARPEN, - MOVE_CONVERSION, - MOVE_TRI_ATTACK, - MOVE_SUPER_FANG, - MOVE_SLASH, - MOVE_SUBSTITUTE, - MOVE_STRUGGLE, - MOVE_SKETCH, - MOVE_TRIPLE_KICK, - MOVE_THIEF, - MOVE_SPIDER_WEB, - MOVE_MIND_READER, - MOVE_NIGHTMARE, - MOVE_FLAME_WHEEL, - MOVE_SNORE, - MOVE_CURSE, - MOVE_FLAIL, - MOVE_CONVERSION_2, - MOVE_AEROBLAST, - MOVE_COTTON_SPORE, - MOVE_REVERSAL, - MOVE_SPITE, - MOVE_POWDER_SNOW, - MOVE_PROTECT, - MOVE_MACH_PUNCH, - MOVE_SCARY_FACE, - MOVE_FAINT_ATTACK, - MOVE_SWEET_KISS, - MOVE_BELLY_DRUM, - MOVE_SLUDGE_BOMB, - MOVE_MUD_SLAP, - MOVE_OCTAZOOKA, - MOVE_SPIKES, - MOVE_ZAP_CANNON, - MOVE_FORESIGHT, - MOVE_DESTINY_BOND, - MOVE_PERISH_SONG, - MOVE_ICY_WIND, - MOVE_DETECT, - MOVE_BONE_RUSH, - MOVE_LOCK_ON, - MOVE_OUTRAGE, - MOVE_SANDSTORM, - MOVE_GIGA_DRAIN, - MOVE_ENDURE, - MOVE_CHARM, - MOVE_ROLLOUT, - MOVE_FALSE_SWIPE, - MOVE_SWAGGER, - MOVE_MILK_DRINK, - MOVE_SPARK, - MOVE_FURY_CUTTER, - MOVE_STEEL_WING, - MOVE_MEAN_LOOK, - MOVE_ATTRACT, - MOVE_SLEEP_TALK, - MOVE_HEAL_BELL, - MOVE_RETURN, - MOVE_PRESENT, - MOVE_FRUSTRATION, - MOVE_SAFEGUARD, - MOVE_PAIN_SPLIT, - MOVE_SACRED_FIRE, - MOVE_MAGNITUDE, - MOVE_DYNAMIC_PUNCH, - MOVE_MEGAHORN, - MOVE_DRAGON_BREATH, - MOVE_BATON_PASS, - MOVE_ENCORE, - MOVE_PURSUIT, - MOVE_RAPID_SPIN, - MOVE_SWEET_SCENT, - MOVE_IRON_TAIL, - MOVE_METAL_CLAW, - MOVE_VITAL_THROW, - MOVE_MORNING_SUN, - MOVE_SYNTHESIS, - MOVE_MOONLIGHT, - MOVE_HIDDEN_POWER, - MOVE_CROSS_CHOP, - MOVE_TWISTER, - MOVE_RAIN_DANCE, - MOVE_SUNNY_DAY, - MOVE_CRUNCH, - MOVE_MIRROR_COAT, - MOVE_PSYCH_UP, - MOVE_EXTREME_SPEED, - MOVE_ANCIENT_POWER, - MOVE_SHADOW_BALL, - MOVE_FUTURE_SIGHT, - MOVE_ROCK_SMASH, - MOVE_WHIRLPOOL, - MOVE_BEAT_UP, - MOVE_FAKE_OUT, - MOVE_UPROAR, - MOVE_STOCKPILE, - MOVE_SPIT_UP, - MOVE_SWALLOW, - MOVE_HEAT_WAVE, - MOVE_HAIL, - MOVE_TORMENT, - MOVE_FLATTER, - MOVE_WILL_O_WISP, - MOVE_MEMENTO, - MOVE_FACADE, - MOVE_FOCUS_PUNCH, - MOVE_SMELLING_SALT, - MOVE_FOLLOW_ME, - MOVE_NATURE_POWER, - MOVE_CHARGE, - MOVE_TAUNT, - MOVE_HELPING_HAND, - MOVE_TRICK, - MOVE_ROLE_PLAY, - MOVE_WISH, - MOVE_ASSIST, - MOVE_INGRAIN, - MOVE_SUPERPOWER, - MOVE_MAGIC_COAT, - MOVE_RECYCLE, - MOVE_REVENGE, - MOVE_BRICK_BREAK, - MOVE_YAWN, - MOVE_KNOCK_OFF, - MOVE_ENDEAVOR, - MOVE_ERUPTION, - MOVE_SKILL_SWAP, - MOVE_IMPRISON, - MOVE_REFRESH, - MOVE_GRUDGE, - MOVE_SNATCH, - MOVE_SECRET_POWER, - MOVE_DIVE, - MOVE_ARM_THRUST, - MOVE_CAMOUFLAGE, - MOVE_TAIL_GLOW, - MOVE_LUSTER_PURGE, - MOVE_MIST_BALL, - MOVE_FEATHER_DANCE, - MOVE_TEETER_DANCE, - MOVE_BLAZE_KICK, - MOVE_MUD_SPORT, - MOVE_ICE_BALL, - MOVE_NEEDLE_ARM, - MOVE_SLACK_OFF, - MOVE_HYPER_VOICE, - MOVE_POISON_FANG, - MOVE_CRUSH_CLAW, - MOVE_BLAST_BURN, - MOVE_HYDRO_CANNON, - MOVE_METEOR_MASH, - MOVE_ASTONISH, - MOVE_WEATHER_BALL, - MOVE_AROMATHERAPY, - MOVE_FAKE_TEARS, - MOVE_AIR_CUTTER, - MOVE_OVERHEAT, - MOVE_ODOR_SLEUTH, - MOVE_ROCK_TOMB, - MOVE_SILVER_WIND, - MOVE_METAL_SOUND, - MOVE_GRASS_WHISTLE, - MOVE_TICKLE, - MOVE_COSMIC_POWER, - MOVE_WATER_SPOUT, - MOVE_SIGNAL_BEAM, - MOVE_SHADOW_PUNCH, - MOVE_EXTRASENSORY, - MOVE_SKY_UPPERCUT, - MOVE_SAND_TOMB, - MOVE_SHEER_COLD, - MOVE_MUDDY_WATER, - MOVE_BULLET_SEED, - MOVE_AERIAL_ACE, - MOVE_ICICLE_SPEAR, - MOVE_IRON_DEFENSE, - MOVE_BLOCK, - MOVE_HOWL, - MOVE_DRAGON_CLAW, - MOVE_FRENZY_PLANT, - MOVE_BULK_UP, - MOVE_BOUNCE, - MOVE_MUD_SHOT, - MOVE_POISON_TAIL, - MOVE_COVET, - MOVE_VOLT_TACKLE, - MOVE_MAGICAL_LEAF, - MOVE_WATER_SPORT, - MOVE_CALM_MIND, - MOVE_LEAF_BLADE, - MOVE_DRAGON_DANCE, - MOVE_ROCK_BLAST, - MOVE_SHOCK_WAVE, - MOVE_WATER_PULSE, - MOVE_DOOM_DESIRE, - MOVE_PSYCHO_BOOST, -}; -extern const u8 gMoveNames[][13]; - -#define LAST_MOVE_INDEX MOVE_PSYCHO_BOOST - -#endif // GUARD_MOVES_H diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h index 42b8c60b1..c52184972 100644 --- a/include/new_menu_helpers.h +++ b/include/new_menu_helpers.h @@ -13,5 +13,6 @@ void DisplayItemMessageOnField(u8 taskId, const u8 *src, TaskFunc callback); void sub_8197434(u8 a0, u8 a1); void SetStandardWindowBorderStyle(u8 a0, u8 a1); void sub_8197930(void); +u8 GetPlayerTextSpeed(void); #endif // GUARD_NEW_MENU_HELPERS_H diff --git a/include/overworld.h b/include/overworld.h index ea3d27319..a5fba0c10 100644 --- a/include/overworld.h +++ b/include/overworld.h @@ -68,4 +68,7 @@ void c2_load_new_map(void); void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused); void mapldr_default(void); +void IncrementGameStat(u8); +u32 GetGameStat(u8); + #endif //GUARD_ROM4_H diff --git a/include/party_menu.h b/include/party_menu.h index 7a7d59cd0..c787bafb1 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -1,8 +1,18 @@ #ifndef GUARD_PARTY_MENU_H #define GUARD_PARTY_MENU_H +enum { + AILMENT_NONE, + AILMENT_PSN, + AILMENT_PRZ, + AILMENT_SLP, + AILMENT_FRZ, + AILMENT_BRN +}; + bool8 pokemon_has_move(struct Pokemon *, u16); void sub_81B58A8(void); void DoWallyTutorialBagMenu(void); +u8 pokemon_ailments_get_primary(u32 status); #endif // GUARD_PARTY_MENU_H diff --git a/include/pokeball.h b/include/pokeball.h index 76f084465..84178b5b2 100644 --- a/include/pokeball.h +++ b/include/pokeball.h @@ -1,8 +1,32 @@ #ifndef GUARD_POKEBALL_H #define GUARD_POKEBALL_H -u8 sub_80753E8(u16, u8); +enum +{ + BALL_POKE, + BALL_GREAT, + BALL_SAFARI, + BALL_ULTRA, + BALL_MASTER, + BALL_NET, + BALL_DIVE, + BALL_NEST, + BALL_REPEAT, + BALL_TIMER, + BALL_LUXURY, + BALL_PREMIER, + POKEBALL_COUNT +}; + +#define POKEBALL_PLAYER_SENDOUT 0xFF +#define POKEBALL_OPPONENT_SENDOUT 0xFE + +u8 DoPokeballSendOutAnimation(s16 pan, u8 kindOfThrow); +void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 bank, u8 x, u8 y, u8 oamPriority, u8 subpriortiy, u8 g, u32 h, u16 species); +u8 sub_807671C(u8 a, u8 b, u8 x, u8 y, u8 oamPriority, u8 subPriority, u8 g, u32 h); void sub_8076918(u8 bank); void DoHitAnimHealthboxEffect(u8 bank); +void LoadBallGfx(u8 ballId); +void FreeBallGfx(u8 ballId); #endif // GUARD_POKEBALL_H diff --git a/include/pokeblock.h b/include/pokeblock.h index b0e93f0e5..a145cbada 100644 --- a/include/pokeblock.h +++ b/include/pokeblock.h @@ -23,23 +23,11 @@ enum }; void ClearPokeblocks(void); +s8 GetFirstFreePokeblockSlot(void); +bool32 AddPokeblock(struct Pokeblock *pokeblock); +u8 GetHighestPokeblocksFlavorLevel(const struct Pokeblock *pokeblock); +u8 GetPokeblocksFeel(const struct Pokeblock *pokeblock); +u8 GetPokeblocksFlavor(const struct Pokeblock *pokeblock); s16 PokeblockGetGain(u8, const struct Pokeblock *); -/* -void sub_810B96C(void); -u8 sub_810BA50(s16, s16, u8); -u8 sub_810C9B0(struct Pokeblock *); -s16 GetPokeblockData(const struct Pokeblock *, u8); -u8 sub_810C9E8(struct Pokeblock *); -void sub_810BA7C(u8); -bool8 PokeblockClearIfExists(u8); -u8 sub_810CB68(u8, u8*); -void PokeblockCopyName(struct Pokeblock *pokeblock, u8 *dest); -void CB2_PreparePokeblockFeedScene(void); - -#include "main.h" - -void sub_8136130(struct Pokeblock *, MainCallback); -*/ - #endif // GUARD_POKEBLOCK_H diff --git a/include/pokemon.h b/include/pokemon.h index 1eb052f4e..cdab96687 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -642,8 +642,8 @@ u8 CheckPartyPokerus(struct Pokemon *party, u8 selection); u8 CheckPartyHasHadPokerus(struct Pokemon *party, u8 selection); void UpdatePartyPokerusTime(u16 days); void PartySpreadPokerus(struct Pokemon *party); -s8 GetMonFlavourRelation(struct Pokemon *mon, u8 a2); -s8 GetFlavourRelationByPersonality(u32 personality, u8 a2); +s8 GetMonFlavorRelation(struct Pokemon *mon, u8 a2); +s8 GetFlavorRelationByPersonality(u32 personality, u8 a2); u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit); u8 GetDefaultMoveTarget(u8 atkBank); u16 PlayerGenderToFrontTrainerPicId(u8 playerGender); @@ -653,6 +653,7 @@ u8 GetSecretBaseTrainerPicIndex(void); bool8 TryIncrementMonLevel(struct Pokemon *mon); void BoxMonToMon(struct BoxPokemon *srcMon, struct Pokemon *dstMon); u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves); +u8 GetMonsStateToDoubles_2(void); #include "sprite.h" diff --git a/include/pokemon_3.h b/include/pokemon_3.h index 5c9862d57..82dfacf48 100644 --- a/include/pokemon_3.h +++ b/include/pokemon_3.h @@ -3,5 +3,7 @@ const u8* GetTrainerClassNameFromId(u16 trainerId); const u8* GetTrainerNameFromId(u16 trainerId); +void PlayMapChosenOrBattleBGM(u16 song); +u8 GetTrainerEncounterMusicId(u16 trainerOpponentId); #endif // GUARD_POKEMON_3_H diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h index b6d21823e..e0a9aa0c5 100644 --- a/include/pokemon_icon.h +++ b/include/pokemon_icon.h @@ -3,6 +3,7 @@ const u8 *GetMonIconPtr(u16 speciesId, u32 personality, u32 frameNo); const u16 *GetValidMonIconPalettePtr(u16 speciesId); +u16 GetUnownLetterByPersonality(u32 personality); u16 sub_80D2E84(u16 speciesId); void sub_80D2F68(u16 iconId); u8 sub_80D2D78(u16 iconId, void callback(struct Sprite *), u16 x, u16 y, u16 a4, u8 a5); diff --git a/include/pokenav.h b/include/pokenav.h new file mode 100644 index 000000000..06676610a --- /dev/null +++ b/include/pokenav.h @@ -0,0 +1,6 @@ +#ifndef GUARD_POKENAV_H +#define GUARD_POKENAV_H + +bool8 sub_81D5C18(void); + +#endif //GUARD_POKENAV_H diff --git a/include/rng.h b/include/random.h index ae98e575f..79a9d71dc 100644 --- a/include/rng.h +++ b/include/random.h @@ -1,5 +1,5 @@ -#ifndef GUARD_RNG_H -#define GUARD_RNG_H +#ifndef GUARD_RANDOM_H +#define GUARD_RANDOM_H extern u32 gRngValue; extern u32 gRng2Value; @@ -15,4 +15,4 @@ u16 Random2(void); void SeedRng(u16 seed); void SeedRng2(u16 seed); -#endif // GUARD_RNG_H +#endif // GUARD_RANDOM_H diff --git a/include/rom6.h b/include/rom6.h index b4a972794..6d20752e2 100644 --- a/include/rom6.h +++ b/include/rom6.h @@ -5,5 +5,11 @@ void sub_81357FC(u8, void(void)); u8 GetLeadMonIndex(void); u8 GetSSTidalLocation(u8 *grp, u8 *num, s16 *x, s16 *y); void sub_813BADC(bool8); +bool8 sub_813B9C0(void); +void UpdateMirageRnd(u16 days); +void UpdateBirchState(u16 days); +void UpdateFrontierManiac(u16 days); +void UpdateFrontierGambler(u16 days); +void SetShoalItemFlag(u16 days); #endif //GUARD_ROM6_H diff --git a/include/safari_zone.h b/include/safari_zone.h index 9a81894b8..39ee3ccb3 100644 --- a/include/safari_zone.h +++ b/include/safari_zone.h @@ -13,6 +13,8 @@ void ExitSafariMode(void); bool8 SafariZoneTakeStep(void); void SafariZoneRetirePrompt(void); +void CB2_EndSafariBattle(void); + struct Pokeblock *SafariZoneGetActivePokeblock(void); void SafariZoneActivatePokeblockFeeder(u8 pokeblock_index); diff --git a/include/secret_base.h b/include/secret_base.h index 630a36773..b2502889c 100644 --- a/include/secret_base.h +++ b/include/secret_base.h @@ -9,5 +9,6 @@ void sub_80E9578(void); void sub_80E980C(void); u8 *GetSecretBaseMapName(u8 *dest); +const u8 *GetSecretBaseTrainerLoseText(void); #endif //GUARD_SECRET_BASE_H diff --git a/include/songs.h b/include/songs.h index 5a1fff00c..37c4f16b4 100644 --- a/include/songs.h +++ b/include/songs.h @@ -372,20 +372,20 @@ enum BGM_BATTLE_DOME_TOURNAMENT, BGM_BATTLE_PIKE, BGM_BATTLE_FACTORY, - BGM_BATTLE_LEGENDARY, - BGM_BATTLE_FRONTIER_BRAIN, - BGM_BATTLE_MEW, - BGM_BATTLE_DOME, // end of the human-readable names + /*0x1D6*/ BGM_BATTLE_LEGENDARY, + /*0x1D7*/ BGM_BATTLE_FRONTIER_BRAIN, + /*0x1D8*/ BGM_BATTLE_MEW, + /*0x1D9*/ BGM_BATTLE_DOME, // end of the human-readable names /*0x1DA*/ BGM_BATTLE27, // wild - BGM_BATTLE31, // aqua/magma grunt - BGM_BATTLE20, // trainer - BGM_BATTLE32, // gym leader - BGM_BATTLE33, // champion - BGM_BATTLE36, // regi - BGM_BATTLE34, // weather trio - BGM_BATTLE35, // rival - BGM_BATTLE38, // elite four - BGM_BATTLE30, // aqua/magma leader + /*0x1DB*/ BGM_BATTLE31, // aqua/magma grunt + /*0x1DC*/ BGM_BATTLE20, // trainer + /*0x1DD*/ BGM_BATTLE32, // gym leader + /*0x1DE*/ BGM_BATTLE33, // champion + /*0x1DF*/ BGM_BATTLE36, // regi + /*0x1E0*/ BGM_BATTLE34, // weather trio + /*0x1E1*/ BGM_BATTLE35, // rival + /*0x1E2*/ BGM_BATTLE38, // elite four + /*0x1E3*/ BGM_BATTLE30, // aqua/magma leader /*0x1E4*/ BGM_FRLG_FOLLOW_ME, // FR/LG names not known, human-readable again! BGM_FRLG_GAMECORNER, BGM_FRLG_ROCKET_HIDEOUT, @@ -453,14 +453,14 @@ enum BGM_FRLG_ISLAND_FOUR, BGM_FRLG_ISLAND_SIX, BGM_FRLG_FLUTE, - BGM_FRLG_BATTLE_DEOXYS, - BGM_FRLG_BATTLE_MEWTWO, - BGM_FRLG_BATTLE_LEGENDARY, - BGM_FRLG_LEADER_EYE, - BGM_FRLG_DEOXYS_EYE, - BGM_FRLG_TRAINER_TOWER, - BGM_FRLG_HALL_OF_FAME_PALLET_TOWN, - /*0x22E*/BGM_FRLG_TEACHY_TV, + /*0x227*/ BGM_FRLG_BATTLE_DEOXYS, + /*0x228*/ BGM_FRLG_BATTLE_MEWTWO, + /*0x229*/ BGM_FRLG_BATTLE_LEGENDARY, + /*0x22A*/ BGM_FRLG_LEADER_EYE, + /*0x22B*/ BGM_FRLG_DEOXYS_EYE, + /*0x22C*/ BGM_FRLG_TRAINER_TOWER, + /*0x22D*/ BGM_FRLG_HALL_OF_FAME_PALLET_TOWN, + /*0x22E*/ BGM_FRLG_TEACHY_TV, }; #endif // GUARD_SONGS_H diff --git a/include/species.h b/include/species.h deleted file mode 100644 index ac0797418..000000000 --- a/include/species.h +++ /dev/null @@ -1,454 +0,0 @@ -#ifndef GUARD_SPECIES_H -#define GUARD_SPECIES_H - -enum -{ - SPECIES_NONE, // 0x000 - SPECIES_BULBASAUR, // 0x001 - SPECIES_IVYSAUR, // 0x002 - SPECIES_VENUSAUR, // 0x003 - SPECIES_CHARMANDER, // 0x004 - SPECIES_CHARMELEON, // 0x005 - SPECIES_CHARIZARD, // 0x006 - SPECIES_SQUIRTLE, // 0x007 - SPECIES_WARTORTLE, // 0x008 - SPECIES_BLASTOISE, // 0x009 - SPECIES_CATERPIE, // 0x00a - SPECIES_METAPOD, // 0x00b - SPECIES_BUTTERFREE, // 0x00c - SPECIES_WEEDLE, // 0x00d - SPECIES_KAKUNA, // 0x00e - SPECIES_BEEDRILL, // 0x00f - SPECIES_PIDGEY, // 0x010 - SPECIES_PIDGEOTTO, // 0x011 - SPECIES_PIDGEOT, // 0x012 - SPECIES_RATTATA, // 0x013 - SPECIES_RATICATE, // 0x014 - SPECIES_SPEAROW, // 0x015 - SPECIES_FEAROW, // 0x016 - SPECIES_EKANS, // 0x017 - SPECIES_ARBOK, // 0x018 - SPECIES_PIKACHU, // 0x019 - SPECIES_RAICHU, // 0x01a - SPECIES_SANDSHREW, // 0x01b - SPECIES_SANDSLASH, // 0x01c - SPECIES_NIDORAN_F, // 0x01d - SPECIES_NIDORINA, // 0x01e - SPECIES_NIDOQUEEN, // 0x01f - SPECIES_NIDORAN_M, // 0x020 - SPECIES_NIDORINO, // 0x021 - SPECIES_NIDOKING, // 0x022 - SPECIES_CLEFAIRY, // 0x023 - SPECIES_CLEFABLE, // 0x024 - SPECIES_VULPIX, // 0x025 - SPECIES_NINETALES, // 0x026 - SPECIES_JIGGLYPUFF, // 0x027 - SPECIES_WIGGLYTUFF, // 0x028 - SPECIES_ZUBAT, // 0x029 - SPECIES_GOLBAT, // 0x02a - SPECIES_ODDISH, // 0x02b - SPECIES_GLOOM, // 0x02c - SPECIES_VILEPLUME, // 0x02d - SPECIES_PARAS, // 0x02e - SPECIES_PARASECT, // 0x02f - SPECIES_VENONAT, // 0x030 - SPECIES_VENOMOTH, // 0x031 - SPECIES_DIGLETT, // 0x032 - SPECIES_DUGTRIO, // 0x033 - SPECIES_MEOWTH, // 0x034 - SPECIES_PERSIAN, // 0x035 - SPECIES_PSYDUCK, // 0x036 - SPECIES_GOLDUCK, // 0x037 - SPECIES_MANKEY, // 0x038 - SPECIES_PRIMEAPE, // 0x039 - SPECIES_GROWLITHE, // 0x03a - SPECIES_ARCANINE, // 0x03b - SPECIES_POLIWAG, // 0x03c - SPECIES_POLIWHIRL, // 0x03d - SPECIES_POLIWRATH, // 0x03e - SPECIES_ABRA, // 0x03f - SPECIES_KADABRA, // 0x040 - SPECIES_ALAKAZAM, // 0x041 - SPECIES_MACHOP, // 0x042 - SPECIES_MACHOKE, // 0x043 - SPECIES_MACHAMP, // 0x044 - SPECIES_BELLSPROUT, // 0x045 - SPECIES_WEEPINBELL, // 0x046 - SPECIES_VICTREEBEL, // 0x047 - SPECIES_TENTACOOL, // 0x048 - SPECIES_TENTACRUEL, // 0x049 - SPECIES_GEODUDE, // 0x04a - SPECIES_GRAVELER, // 0x04b - SPECIES_GOLEM, // 0x04c - SPECIES_PONYTA, // 0x04d - SPECIES_RAPIDASH, // 0x04e - SPECIES_SLOWPOKE, // 0x04f - SPECIES_SLOWBRO, // 0x050 - SPECIES_MAGNEMITE, // 0x051 - SPECIES_MAGNETON, // 0x052 - SPECIES_FARFETCHD, // 0x053 - SPECIES_DODUO, // 0x054 - SPECIES_DODRIO, // 0x055 - SPECIES_SEEL, // 0x056 - SPECIES_DEWGONG, // 0x057 - SPECIES_GRIMER, // 0x058 - SPECIES_MUK, // 0x059 - SPECIES_SHELLDER, // 0x05a - SPECIES_CLOYSTER, // 0x05b - SPECIES_GASTLY, // 0x05c - SPECIES_HAUNTER, // 0x05d - SPECIES_GENGAR, // 0x05e - SPECIES_ONIX, // 0x05f - SPECIES_DROWZEE, // 0x060 - SPECIES_HYPNO, // 0x061 - SPECIES_KRABBY, // 0x062 - SPECIES_KINGLER, // 0x063 - SPECIES_VOLTORB, // 0x064 - SPECIES_ELECTRODE, // 0x065 - SPECIES_EXEGGCUTE, // 0x066 - SPECIES_EXEGGUTOR, // 0x067 - SPECIES_CUBONE, // 0x068 - SPECIES_MAROWAK, // 0x069 - SPECIES_HITMONLEE, // 0x06a - SPECIES_HITMONCHAN, // 0x06b - SPECIES_LICKITUNG, // 0x06c - SPECIES_KOFFING, // 0x06d - SPECIES_WEEZING, // 0x06e - SPECIES_RHYHORN, // 0x06f - SPECIES_RHYDON, // 0x070 - SPECIES_CHANSEY, // 0x071 - SPECIES_TANGELA, // 0x072 - SPECIES_KANGASKHAN, // 0x073 - SPECIES_HORSEA, // 0x074 - SPECIES_SEADRA, // 0x075 - SPECIES_GOLDEEN, // 0x076 - SPECIES_SEAKING, // 0x077 - SPECIES_STARYU, // 0x078 - SPECIES_STARMIE, // 0x079 - SPECIES_MR_MIME, // 0x07a - SPECIES_SCYTHER, // 0x07b - SPECIES_JYNX, // 0x07c - SPECIES_ELECTABUZZ, // 0x07d - SPECIES_MAGMAR, // 0x07e - SPECIES_PINSIR, // 0x07f - SPECIES_TAUROS, // 0x080 - SPECIES_MAGIKARP, // 0x081 - SPECIES_GYARADOS, // 0x082 - SPECIES_LAPRAS, // 0x083 - SPECIES_DITTO, // 0x084 - SPECIES_EEVEE, // 0x085 - SPECIES_VAPOREON, // 0x086 - SPECIES_JOLTEON, // 0x087 - SPECIES_FLAREON, // 0x088 - SPECIES_PORYGON, // 0x089 - SPECIES_OMANYTE, // 0x08a - SPECIES_OMASTAR, // 0x08b - SPECIES_KABUTO, // 0x08c - SPECIES_KABUTOPS, // 0x08d - SPECIES_AERODACTYL, // 0x08e - SPECIES_SNORLAX, // 0x08f - SPECIES_ARTICUNO, // 0x090 - SPECIES_ZAPDOS, // 0x091 - SPECIES_MOLTRES, // 0x092 - SPECIES_DRATINI, // 0x093 - SPECIES_DRAGONAIR, // 0x094 - SPECIES_DRAGONITE, // 0x095 - SPECIES_MEWTWO, // 0x096 - SPECIES_MEW, // 0x097 - SPECIES_CHIKORITA, // 0x098 - SPECIES_BAYLEEF, // 0x099 - SPECIES_MEGANIUM, // 0x09a - SPECIES_CYNDAQUIL, // 0x09b - SPECIES_QUILAVA, // 0x09c - SPECIES_TYPHLOSION, // 0x09d - SPECIES_TOTODILE, // 0x09e - SPECIES_CROCONAW, // 0x09f - SPECIES_FERALIGATR, // 0x0a0 - SPECIES_SENTRET, // 0x0a1 - SPECIES_FURRET, // 0x0a2 - SPECIES_HOOTHOOT, // 0x0a3 - SPECIES_NOCTOWL, // 0x0a4 - SPECIES_LEDYBA, // 0x0a5 - SPECIES_LEDIAN, // 0x0a6 - SPECIES_SPINARAK, // 0x0a7 - SPECIES_ARIADOS, // 0x0a8 - SPECIES_CROBAT, // 0x0a9 - SPECIES_CHINCHOU, // 0x0aa - SPECIES_LANTURN, // 0x0ab - SPECIES_PICHU, // 0x0ac - SPECIES_CLEFFA, // 0x0ad - SPECIES_IGGLYBUFF, // 0x0ae - SPECIES_TOGEPI, // 0x0af - SPECIES_TOGETIC, // 0x0b0 - SPECIES_NATU, // 0x0b1 - SPECIES_XATU, // 0x0b2 - SPECIES_MAREEP, // 0x0b3 - SPECIES_FLAAFFY, // 0x0b4 - SPECIES_AMPHAROS, // 0x0b5 - SPECIES_BELLOSSOM, // 0x0b6 - SPECIES_MARILL, // 0x0b7 - SPECIES_AZUMARILL, // 0x0b8 - SPECIES_SUDOWOODO, // 0x0b9 - SPECIES_POLITOED, // 0x0ba - SPECIES_HOPPIP, // 0x0bb - SPECIES_SKIPLOOM, // 0x0bc - SPECIES_JUMPLUFF, // 0x0bd - SPECIES_AIPOM, // 0x0be - SPECIES_SUNKERN, // 0x0bf - SPECIES_SUNFLORA, // 0x0c0 - SPECIES_YANMA, // 0x0c1 - SPECIES_WOOPER, // 0x0c2 - SPECIES_QUAGSIRE, // 0x0c3 - SPECIES_ESPEON, // 0x0c4 - SPECIES_UMBREON, // 0x0c5 - SPECIES_MURKROW, // 0x0c6 - SPECIES_SLOWKING, // 0x0c7 - SPECIES_MISDREAVUS, // 0x0c8 - SPECIES_UNOWN, // 0x0c9 - SPECIES_WOBBUFFET, // 0x0ca - SPECIES_GIRAFARIG, // 0x0cb - SPECIES_PINECO, // 0x0cc - SPECIES_FORRETRESS, // 0x0cd - SPECIES_DUNSPARCE, // 0x0ce - SPECIES_GLIGAR, // 0x0cf - SPECIES_STEELIX, // 0x0d0 - SPECIES_SNUBBULL, // 0x0d1 - SPECIES_GRANBULL, // 0x0d2 - SPECIES_QWILFISH, // 0x0d3 - SPECIES_SCIZOR, // 0x0d4 - SPECIES_SHUCKLE, // 0x0d5 - SPECIES_HERACROSS, // 0x0d6 - SPECIES_SNEASEL, // 0x0d7 - SPECIES_TEDDIURSA, // 0x0d8 - SPECIES_URSARING, // 0x0d9 - SPECIES_SLUGMA, // 0x0da - SPECIES_MAGCARGO, // 0x0db - SPECIES_SWINUB, // 0x0dc - SPECIES_PILOSWINE, // 0x0dd - SPECIES_CORSOLA, // 0x0de - SPECIES_REMORAID, // 0x0df - SPECIES_OCTILLERY, // 0x0e0 - SPECIES_DELIBIRD, // 0x0e1 - SPECIES_MANTINE, // 0x0e2 - SPECIES_SKARMORY, // 0x0e3 - SPECIES_HOUNDOUR, // 0x0e4 - SPECIES_HOUNDOOM, // 0x0e5 - SPECIES_KINGDRA, // 0x0e6 - SPECIES_PHANPY, // 0x0e7 - SPECIES_DONPHAN, // 0x0e8 - SPECIES_PORYGON2, // 0x0e9 - SPECIES_STANTLER, // 0x0ea - SPECIES_SMEARGLE, // 0x0eb - SPECIES_TYROGUE, // 0x0ec - SPECIES_HITMONTOP, // 0x0ed - SPECIES_SMOOCHUM, // 0x0ee - SPECIES_ELEKID, // 0x0ef - SPECIES_MAGBY, // 0x0f0 - SPECIES_MILTANK, // 0x0f1 - SPECIES_BLISSEY, // 0x0f2 - SPECIES_RAIKOU, // 0x0f3 - SPECIES_ENTEI, // 0x0f4 - SPECIES_SUICUNE, // 0x0f5 - SPECIES_LARVITAR, // 0x0f6 - SPECIES_PUPITAR, // 0x0f7 - SPECIES_TYRANITAR, // 0x0f8 - SPECIES_LUGIA, // 0x0f9 - SPECIES_HO_OH, // 0x0fa - SPECIES_CELEBI, // 0x0fb - - SPECIES_OLD_UNOWN_B, - SPECIES_OLD_UNOWN_C, - SPECIES_OLD_UNOWN_D, - SPECIES_OLD_UNOWN_E, - SPECIES_OLD_UNOWN_F, - SPECIES_OLD_UNOWN_G, - SPECIES_OLD_UNOWN_H, - SPECIES_OLD_UNOWN_I, - SPECIES_OLD_UNOWN_J, - SPECIES_OLD_UNOWN_K, - SPECIES_OLD_UNOWN_L, - SPECIES_OLD_UNOWN_M, - SPECIES_OLD_UNOWN_N, - SPECIES_OLD_UNOWN_O, - SPECIES_OLD_UNOWN_P, - SPECIES_OLD_UNOWN_Q, - SPECIES_OLD_UNOWN_R, - SPECIES_OLD_UNOWN_S, - SPECIES_OLD_UNOWN_T, - SPECIES_OLD_UNOWN_U, - SPECIES_OLD_UNOWN_V, - SPECIES_OLD_UNOWN_W, - SPECIES_OLD_UNOWN_X, - SPECIES_OLD_UNOWN_Y, - SPECIES_OLD_UNOWN_Z, - - SPECIES_TREECKO, // 0x115 - SPECIES_GROVYLE, // 0x116 - SPECIES_SCEPTILE, // 0x117 - SPECIES_TORCHIC, // 0x118 - SPECIES_COMBUSKEN, // 0x119 - SPECIES_BLAZIKEN, // 0x11a - SPECIES_MUDKIP, // 0x11b - SPECIES_MARSHTOMP, // 0x11c - SPECIES_SWAMPERT, // 0x11d - SPECIES_POOCHYENA, // 0x11e - SPECIES_MIGHTYENA, // 0x11f - SPECIES_ZIGZAGOON, // 0x120 - SPECIES_LINOONE, // 0x121 - SPECIES_WURMPLE, // 0x122 - SPECIES_SILCOON, // 0x123 - SPECIES_BEAUTIFLY, // 0x124 - SPECIES_CASCOON, // 0x125 - SPECIES_DUSTOX, // 0x126 - SPECIES_LOTAD, // 0x127 - SPECIES_LOMBRE, // 0x128 - SPECIES_LUDICOLO, // 0x129 - SPECIES_SEEDOT, // 0x12a - SPECIES_NUZLEAF, // 0x12b - SPECIES_SHIFTRY, // 0x12c - SPECIES_NINCADA, // 0x12d - SPECIES_NINJASK, // 0x12e - SPECIES_SHEDINJA, // 0x12f - SPECIES_TAILLOW, // 0x130 - SPECIES_SWELLOW, // 0x131 - SPECIES_SHROOMISH, // 0x132 - SPECIES_BRELOOM, // 0x133 - SPECIES_SPINDA, // 0x134 - SPECIES_WINGULL, // 0x135 - SPECIES_PELIPPER, // 0x136 - SPECIES_SURSKIT, // 0x137 - SPECIES_MASQUERAIN, // 0x138 - SPECIES_WAILMER, // 0x139 - SPECIES_WAILORD, // 0x13a - SPECIES_SKITTY, // 0x13b - SPECIES_DELCATTY, // 0x13c - SPECIES_KECLEON, // 0x13d - SPECIES_BALTOY, // 0x13e - SPECIES_CLAYDOL, // 0x13f - SPECIES_NOSEPASS, // 0x140 - SPECIES_TORKOAL, // 0x141 - SPECIES_SABLEYE, // 0x142 - SPECIES_BARBOACH, // 0x143 - SPECIES_WHISCASH, // 0x144 - SPECIES_LUVDISC, // 0x145 - SPECIES_CORPHISH, // 0x146 - SPECIES_CRAWDAUNT, // 0x147 - SPECIES_FEEBAS, // 0x148 - SPECIES_MILOTIC, // 0x149 - SPECIES_CARVANHA, // 0x14a - SPECIES_SHARPEDO, // 0x14b - SPECIES_TRAPINCH, // 0x14c - SPECIES_VIBRAVA, // 0x14d - SPECIES_FLYGON, // 0x14e - SPECIES_MAKUHITA, // 0x14f - SPECIES_HARIYAMA, // 0x150 - SPECIES_ELECTRIKE, // 0x151 - SPECIES_MANECTRIC, // 0x152 - SPECIES_NUMEL, // 0x153 - SPECIES_CAMERUPT, // 0x154 - SPECIES_SPHEAL, // 0x155 - SPECIES_SEALEO, // 0x156 - SPECIES_WALREIN, // 0x157 - SPECIES_CACNEA, // 0x158 - SPECIES_CACTURNE, // 0x159 - SPECIES_SNORUNT, // 0x15a - SPECIES_GLALIE, // 0x15b - SPECIES_LUNATONE, // 0x15c - SPECIES_SOLROCK, // 0x15d - SPECIES_AZURILL, // 0x15e - SPECIES_SPOINK, // 0x15f - SPECIES_GRUMPIG, // 0x160 - SPECIES_PLUSLE, // 0x161 - SPECIES_MINUN, // 0x162 - SPECIES_MAWILE, // 0x163 - SPECIES_MEDITITE, // 0x164 - SPECIES_MEDICHAM, // 0x165 - SPECIES_SWABLU, // 0x166 - SPECIES_ALTARIA, // 0x167 - SPECIES_WYNAUT, // 0x168 - SPECIES_DUSKULL, // 0x169 - SPECIES_DUSCLOPS, // 0x16a - SPECIES_ROSELIA, // 0x16b - SPECIES_SLAKOTH, // 0x16c - SPECIES_VIGOROTH, // 0x16d - SPECIES_SLAKING, // 0x16e - SPECIES_GULPIN, // 0x16f - SPECIES_SWALOT, // 0x170 - SPECIES_TROPIUS, // 0x171 - SPECIES_WHISMUR, // 0x172 - SPECIES_LOUDRED, // 0x173 - SPECIES_EXPLOUD, // 0x174 - SPECIES_CLAMPERL, // 0x175 - SPECIES_HUNTAIL, // 0x176 - SPECIES_GOREBYSS, // 0x177 - SPECIES_ABSOL, // 0x178 - SPECIES_SHUPPET, // 0x179 - SPECIES_BANETTE, // 0x17a - SPECIES_SEVIPER, // 0x17b - SPECIES_ZANGOOSE, // 0x17c - SPECIES_RELICANTH, // 0x17d - SPECIES_ARON, // 0x17e - SPECIES_LAIRON, // 0x17f - SPECIES_AGGRON, // 0x180 - SPECIES_CASTFORM, // 0x181 - SPECIES_VOLBEAT, // 0x182 - SPECIES_ILLUMISE, // 0x183 - SPECIES_LILEEP, // 0x184 - SPECIES_CRADILY, // 0x185 - SPECIES_ANORITH, // 0x186 - SPECIES_ARMALDO, // 0x187 - SPECIES_RALTS, // 0x188 - SPECIES_KIRLIA, // 0x189 - SPECIES_GARDEVOIR, // 0x18a - SPECIES_BAGON, // 0x18b - SPECIES_SHELGON, // 0x18c - SPECIES_SALAMENCE, // 0x18d - SPECIES_BELDUM, // 0x18e - SPECIES_METANG, // 0x18f - SPECIES_METAGROSS, // 0x190 - SPECIES_REGIROCK, // 0x191 - SPECIES_REGICE, // 0x192 - SPECIES_REGISTEEL, // 0x193 - SPECIES_KYOGRE, // 0x194 - SPECIES_GROUDON, // 0x195 - SPECIES_RAYQUAZA, // 0x196 - SPECIES_LATIAS, // 0x197 - SPECIES_LATIOS, // 0x198 - SPECIES_JIRACHI, // 0x199 - SPECIES_DEOXYS, // 0x19a - SPECIES_CHIMECHO, // 0x19b - SPECIES_EGG, // 0x19c - - SPECIES_UNOWN_B, - SPECIES_UNOWN_C, - SPECIES_UNOWN_D, - SPECIES_UNOWN_E, - SPECIES_UNOWN_F, - SPECIES_UNOWN_G, - SPECIES_UNOWN_H, - SPECIES_UNOWN_I, - SPECIES_UNOWN_J, - SPECIES_UNOWN_K, - SPECIES_UNOWN_L, - SPECIES_UNOWN_M, - SPECIES_UNOWN_N, - SPECIES_UNOWN_O, - SPECIES_UNOWN_P, - SPECIES_UNOWN_Q, - SPECIES_UNOWN_R, - SPECIES_UNOWN_S, - SPECIES_UNOWN_T, - SPECIES_UNOWN_U, - SPECIES_UNOWN_V, - SPECIES_UNOWN_W, - SPECIES_UNOWN_X, - SPECIES_UNOWN_Y, - SPECIES_UNOWN_Z, - SPECIES_UNOWN_EMARK, - SPECIES_UNOWN_QMARK, -}; - -#define NUM_SPECIES SPECIES_EGG -extern const u8 gSpeciesNames[][11]; - -#endif // GUARD_SPECIES_H diff --git a/include/sprite.h b/include/sprite.h index 531314079..170d77c3f 100644 --- a/include/sprite.h +++ b/include/sprite.h @@ -195,14 +195,7 @@ struct Sprite /*0x2D*/ u8 animLoopCounter; // general purpose data fields - /*0x2E*/ s16 data0; - /*0x30*/ s16 data1; - /*0x32*/ s16 data2; - /*0x34*/ s16 data3; - /*0x36*/ s16 data4; - /*0x38*/ s16 data5; - /*0x3A*/ s16 data6; - /*0x3C*/ s16 data7; + /*0x2E*/ s16 data[8]; /*0x3E*/ u16 inUse:1; //1 u16 coordOffsetEnabled:1; //2 diff --git a/include/strings.h b/include/strings.h index 08e2b4bba..84d7084b4 100644 --- a/include/strings.h +++ b/include/strings.h @@ -82,5 +82,11 @@ extern const u8 gText_NoRegistry[]; extern const u8 gText_OkayToDeleteFromRegistry[]; extern const u8 gText_RegisteredDataDeleted[]; extern const u8 gUnknown_085EA79D[]; +extern const u8 gText_EmptyString2[]; +extern const u8 gText_Confirm3[]; +extern const u8 gText_Cancel4[]; +extern const u8 gText_IsThisTheCorrectTime[]; +extern const u8 gText_PkmnFainted3[]; +extern const u8 gText_Coins[]; #endif //GUARD_STRINGS_H diff --git a/include/text.h b/include/text.h index 594661717..289c7d2b5 100644 --- a/include/text.h +++ b/include/text.h @@ -65,6 +65,7 @@ #define CHAR_x 0xEC #define CHAR_y 0xED #define CHAR_z 0xEE +#define CHAR_SPECIAL_F7 0xF7 #define CHAR_SPECIAL_F9 0xF9 #define CHAR_COLON 0xF0 #define CHAR_PROMPT_SCROLL 0xFA // waits for button press and scrolls dialog @@ -85,6 +86,8 @@ #define NUM_TEXT_PRINTERS 32 +#define TEXT_SPEED_FF 0xFF + struct TextPrinterSubStruct { u8 font_type:4; // 0x14 diff --git a/include/trainer_classes.h b/include/trainer_classes.h deleted file mode 100644 index e5e26b359..000000000 --- a/include/trainer_classes.h +++ /dev/null @@ -1,74 +0,0 @@ -#ifndef GUARD_TRAINER_CLASSES_H -#define GUARD_TRAINER_CLASSES_H - -enum -{ - CLASS_PKMN_TRAINER0, // 0 - CLASS_PKMN_TRAINER1, // 1 - CLASS_HIKER, // 2 - CLASS_TEAM_AQUA, // 3 - CLASS_PKMN_BREEDER, // 4 - CLASS_COOLTRAINER, // 5 - CLASS_BIRDKEEPER, // 6 - CLASS_COLLECTOR, // 7 - CLASS_SWIMMER_MALE, // 8 - CLASS_TEAM_MAGMA, // 9 - CLASS_EXPERT, // 0xA - CLASS_AQUA_ADMIN, // 0xB - CLASS_BLACK_BELT, // 0xC - CLASS_AQUA_LEADER, // 0xD - CLASS_HEX_MANIAC, // 0xE - CLASS_AROMA_LADY, // 0xF - CLASS_RUIN_MANIAC, // 0x10 - CLASS_INTERVIEWER, // 0x11 - CLASS_TUBER_FEMALE, // 0x12 - CLASS_TUBER_MALE, // 0x13 - CLASS_LADY, // 0x14 - CLASS_BEAUTY, // 0x15 - CLASS_RICH_BOY, // 0x16 - CLASS_POKEMANIAC, // 0x17 - CLASS_GUITARIST, // 0x18 - CLASS_KINDLER, // 0x19 - CLASS_CAMPER, // 0x1A - CLASS_PICKNICKER, // 0x1B - CLASS_BUG_MANIAC, // 0x1C - CLASS_PSYCHIC, // 0x1D - CLASS_GENTLEMAN, // 0x1E - CLASS_ELITE_FOUR, // 0x1F - CLASS_LEADER, // 0x20 - CLASS_SCHOOL_KID, // 0x21 - CLASS_SCHOOL_SR_JR, // 0x22 - CLASS_WINSTRATE, // 0x23 - CLASS_POKE_FAN, // 0x24 - CLASS_YOUNGSTER, // 0x25 - CLASS_CHAMPION, // 0x26 - CLASS_FISHERMAN, // 0x27 - CLASS_TRIATHLETE, // 0x28 - CLASS_DRAGON_TAMER, // 0x29 - CLASS_NINJA_BOY, // 0x2A - CLASS_BATTLE_GIRL, // 0x2B - CLASS_PARASOL_LADY, // 0x2C - CLASS_SWIMMER_FEMALE, // 0x2D - CLASS_TWINS, // 0x2E - CLASS_SAILOR, // 0x2F - CLASS_COOLTRAINER_2, // 0x30 - CLASS_MAGMA_ADMIN, // 0x31 - CLASS_PKMN_TRAINER_RIVAL, // 0x32 - CLASS_BUG_CATCHER, // 0x33 - CLASS_PKMN_RANGER, // 0x34 - CLASS_MAGMA_LEADER, // 0x35 - CLASS_LASS, // 0x36 - CLASS_YOUNG_COUPLE, // 0x37 - CLASS_OLD_COUPLE, // 0x38 - CLASS_SIS_AND_BRO, // 0x39 - CLASS_SALON_MAIDEN, // 0x3A - CLASS_DOME_ACE, // 0x3B - CLASS_PALACE_MAVEN, // 0x3C - CLASS_ARENA_TYCOON, // 0x3D - CLASS_FACTORY_HEAD, // 0x3E - CLASS_PIKE_QUEEN, // 0x3F - CLASS_PYRAMID_KING, // 0x40 - CLASS_PKMN_TRAINER2, // 0x41 -}; - -#endif // GUARD_TRAINER_CLASSES_H diff --git a/include/trainer_front_sprites.h b/include/trainer_front_sprites.h deleted file mode 100644 index 3259bec88..000000000 --- a/include/trainer_front_sprites.h +++ /dev/null @@ -1,101 +0,0 @@ -#ifndef GUARD_TRAINER_FRONT_SPRITES_H -#define GUARD_TRAINER_FRONT_SPRITES_H - -enum -{ - TRAINER_FRONT_PIC_HIKER, - TRAINER_FRONT_PIC_AQUA_GRUNT_M, - TRAINER_FRONT_PIC_PKMN_BREEDER_F, - TRAINER_FRONT_PIC_COOLTRAINER_M, - TRAINER_FRONT_PIC_BIRD_KEEPER, - TRAINER_FRONT_PIC_COLLECTOR, - TRAINER_FRONT_PIC_AQUA_GRUNT_F, - TRAINER_FRONT_PIC_SWIMMER_M, - TRAINER_FRONT_PIC_MAGMA_GRUNT_M, - TRAINER_FRONT_PIC_EXPERT_M, - TRAINER_FRONT_PIC_AQUA_ADMIN_M, - TRAINER_FRONT_PIC_BLACK_BELT, - TRAINER_FRONT_PIC_AQUA_ADMIN_F, - TRAINER_FRONT_PIC_AQUA_LEADER, - TRAINER_FRONT_PIC_HEX_MANIAC, - TRAINER_FRONT_PIC_AROMA_LADY, - TRAINER_FRONT_PIC_RUIN_MANIAC, - TRAINER_FRONT_PIC_INTERVIEWER, - TRAINER_FRONT_PIC_TUBER_F, - TRAINER_FRONT_PIC_TUBER_M, - TRAINER_FRONT_PIC_COOLTRAINER_F, - TRAINER_FRONT_PIC_LADY, - TRAINER_FRONT_PIC_BEAUTY, - TRAINER_FRONT_PIC_RICH_BOY, - TRAINER_FRONT_PIC_EXPERT_F, - TRAINER_FRONT_PIC_POKE_MANIAC, - TRAINER_FRONT_PIC_MAGMA_GRUNT_F, - TRAINER_FRONT_PIC_GUITARIST, - TRAINER_FRONT_PIC_KINDLER, - TRAINER_FRONT_PIC_CAMPER, - TRAINER_FRONT_PIC_PICNICKER, - TRAINER_FRONT_PIC_BUG_MANIAC, - TRAINER_FRONT_PIC_PKMN_BREEDER_M, - TRAINER_FRONT_PIC_PSYCHIC_M, - TRAINER_FRONT_PIC_PSYCHIC_F, - TRAINER_FRONT_PIC_GENTLEMAN, - TRAINER_FRONT_PIC_SIDNEY, - TRAINER_FRONT_PIC_PHOEBE, - TRAINER_FRONT_PIC_GLACIA, - TRAINER_FRONT_PIC_DRAKE, - TRAINER_FRONT_PIC_ROXANNE, - TRAINER_FRONT_PIC_BRAWLY, - TRAINER_FRONT_PIC_WATTSON, - TRAINER_FRONT_PIC_FLANNERY, - TRAINER_FRONT_PIC_NORMAN, - TRAINER_FRONT_PIC_WINONA, - TRAINER_FRONT_PIC_TATE_LIZA, - TRAINER_FRONT_PIC_JUAN, - TRAINER_FRONT_PIC_SCHOOL_KID_M, - TRAINER_FRONT_PIC_SCHOOL_KID_F, - TRAINER_FRONT_PIC_SR_JR, - TRAINER_FRONT_PIC_POKÉFAN_M, - TRAINER_FRONT_PIC_POKÉFAN_F, - TRAINER_FRONT_PIC_YOUNGSTER, - TRAINER_FRONT_PIC_WALLACE, - TRAINER_FRONT_PIC_FISHERMAN, - TRAINER_FRONT_PIC_TRIATHLETE_BIKER_M, - TRAINER_FRONT_PIC_TRIATHLETE_BIKER_F, - TRAINER_FRONT_PIC_TRIATHLETE_JOGGER_M, - TRAINER_FRONT_PIC_TRIATHLETE_JOGGER_F, - TRAINER_FRONT_PIC_TRIATHLETE_SWIMMER_M, - TRAINER_FRONT_PIC_TRIATHLETE_SWIMMER_F, - TRAINER_FRONT_PIC_DRAGON_TAMER, - TRAINER_FRONT_PIC_NINJA_BOY, - TRAINER_FRONT_PIC_BATTLE_GIRL, - TRAINER_FRONT_PIC_PARASOL_LADY, - TRAINER_FRONT_PIC_SWIMMER_F, - TRAINER_FRONT_PIC_TWINS, - TRAINER_FRONT_PIC_SAILOR, - TRAINER_FRONT_PIC_MAGMA_ADMIN_M, - TRAINER_FRONT_PIC_WALLY, - TRAINER_FRONT_PIC_BRENDAN_E, - TRAINER_FRONT_PIC_MAY_E, - TRAINER_FRONT_PIC_BUG_CATCHER, - TRAINER_FRONT_PIC_PKMN_RANGER_M, - TRAINER_FRONT_PIC_PKMN_RANGER_F, - TRAINER_FRONT_PIC_MAGMA_LEADER, - TRAINER_FRONT_PIC_LASS, - TRAINER_FRONT_PIC_YOUNG_COUPLE, - TRAINER_FRONT_PIC_OLD_COUPLE, - TRAINER_FRONT_PIC_SIS_AND_BRO, - TRAINER_FRONT_PIC_STEVEN, - TRAINER_FRONT_PIC_ANABEL, - TRAINER_FRONT_PIC_TUCKER, - TRAINER_FRONT_PIC_SPENSER, - TRAINER_FRONT_PIC_GRETA, - TRAINER_FRONT_PIC_NOLAND, - TRAINER_FRONT_PIC_LUCY, - TRAINER_FRONT_PIC_BRANDON, - TRAINER_FRONT_PIC_RED, - TRAINER_FRONT_PIC_LEAF, - TRAINER_FRONT_PIC_BRENDAN_RS, - TRAINER_FRONT_PIC_MAY_RS -}; - -#endif // GUARD_TRAINER_FRONT_SPRITES_H diff --git a/include/trainer_ids.h b/include/trainer_ids.h deleted file mode 100644 index 65c80187f..000000000 --- a/include/trainer_ids.h +++ /dev/null @@ -1,7 +0,0 @@ -#ifndef GUARD_TRAINER_IDS_H -#define GUARD_TRAINER_IDS_H - -#define NO_OF_TRAINERS 854 -#define TRAINER_ID_STEVEN 804 - -#endif // GUARD_TRAINER_IDS_H diff --git a/include/trainer_see.h b/include/trainer_see.h index ab035d9f8..5da50cfa1 100644 --- a/include/trainer_see.h +++ b/include/trainer_see.h @@ -1,6 +1,21 @@ #ifndef GUARD_TRAINER_SEE_H #define GUARD_TRAINER_SEE_H +struct ApproachingTrainer +{ + u8 mapObjectId; + u8 radius; + u8 field_2; + u8 field_3; + const u8 *trainerScriptPtr; + u8 field_8; + u8 field_9; + u8 field_A; + u8 field_B; +}; + +extern struct ApproachingTrainer gApproachingTrainers[]; + void sub_80B4578(struct MapObject *); u8 sub_80B47BC(void); void sub_8155D78(struct MapObject *); diff --git a/include/tv.h b/include/tv.h index 3f48af569..eca11385e 100644 --- a/include/tv.h +++ b/include/tv.h @@ -13,6 +13,8 @@ void sub_80EE184(void); void sub_80EEA70(void); void sub_80F14F8(TVShow *shows); size_t sub_80EF370(int value); +bool8 Put3CheersForPokeblocksOnTheAir(const u8 *partnersName, u8 flavor, u8 unused, u8 sheen, u8 language); void SetPokemonAnglerSpecies(u16 species); +void UpdateTVShowsPerDay(u16 days); #endif //GUARD_TV_H diff --git a/include/unk_text_util.h b/include/unk_text_util.h new file mode 100644 index 000000000..72243a90e --- /dev/null +++ b/include/unk_text_util.h @@ -0,0 +1,9 @@ +#ifndef GUARD_UNK_TEXT_UTIL_H +#define GUARD_UNK_TEXT_UTIL_H + +void UnkTextUtil_Reset(void); +void UnkTextUtil_SetPtrI(u8 idx, const u8 *ptr); +u8 *UnkTextUtil_StringExpandPlaceholders(u8 *dest, const u8 *src); +const u8 *UnkTextUtil_GetPtrI(u8 idx); + +#endif //GUARD_UNK_TEXT_UTIL_H diff --git a/include/vars.h b/include/vars.h deleted file mode 100644 index 763b7379d..000000000 --- a/include/vars.h +++ /dev/null @@ -1,75 +0,0 @@ -#ifndef GUARD_VARS_H -#define GUARD_VARS_H - -#define VAR_0x3F20 0x3F20 - -#define VAR_0x4000 0x4000 -#define VAR_0x4001 0x4001 -#define VAR_0x4002 0x4002 -#define VAR_0x4003 0x4003 -#define VAR_0x4004 0x4004 -#define VAR_0x4005 0x4005 -#define VAR_0x4006 0x4006 -#define VAR_0x4007 0x4007 -#define VAR_0x4008 0x4008 -#define VAR_0x4009 0x4009 -#define VAR_0x400A 0x400A -#define VAR_0x4010 0x4010 -#define VAR_0x4011 0x4011 -#define VAR_0x401F 0x401F -#define VAR_RECYCLE_GOODS 0x4020 -#define VAR_REPEL_STEP_COUNT 0x4021 -#define VAR_ICE_STEP_COUNT 0x4022 -#define VAR_FIRST_POKE 0x4023 -#define VAR_MIRAGE_RND_H 0x4024 -#define VAR_MIRAGE_RND_L 0x4025 -#define VAR_SECRET_BASE_MAP 0x4026 - -#define VAR_HAPPINESS_STEP_COUNTER 0x402A -#define VAR_POISON_STEP_COUNTER 0x402B -#define VAR_RESET_RTC_ENABLE 0x402C - -#define VAR_0x4037 0x4037 -#define VAR_ALTERING_CAVE_WILD_SET 0x403E -#define VAR_DAYS 0x4040 - -#define VAR_DEPT_STORE_FLOOR 0x4043 -#define VAR_STORAGE_UNKNOWN 0x4036 -#define VAR_POKELOT_PRIZE 0x4045 -#define VAR_NATIONAL_DEX 0x4046 -#define VAR_SEEDOT_SIZE_RECORD 0x4047 -#define VAR_ASH_GATHER_COUNT 0x4048 -#define VAR_BIRCH_STATE 0x4049 -#define VAR_CRUISE_STEP_COUNT 0x404A -#define VAR_POKELOT_RND1 0x404B -#define VAR_POKELOT_RND2 0x404C - -#define VAR_LOTAD_SIZE_RECORD 0x404F - -#define VAR_0x4054 0x4054 - -#define VAR_0x4089 0x4089 -#define VAR_0x4095 0x4095 -#define VAR_0x4097 0x4097 -#define VAR_0x409a 0x409a -#define VAR_PORTHOLE 0x40B4 - -#define VAR_0x40BC 0x40BC -#define VAR_0x40C2 0x40C2 - -#define VAR_FRONTIER_FACILITY 0x40CF - -#define VAR_DAILY_SLOTS 0x40E6 -#define VAR_DAILY_WILDS 0x40E7 -#define VAR_DAILY_BLENDER 0x40E8 -#define VAR_DAILY_PLANTED_BERRIES 0x40E9 -#define VAR_DAILY_PICKED_BERRIES 0x40EA -#define VAR_DAILY_ROULETTE 0x40EB -#define VAR_0x40EC 0x40EC -#define VAR_0x40ED 0x40ED -#define VAR_0x40EE 0x40EE -#define VAR_0x40EF 0x40EF -#define VAR_0x40F0 0x40F0 -#define VAR_DAILY_BP 0x40F1 - -#endif // GUARD_VARS_H diff --git a/include/wallclock.h b/include/wallclock.h new file mode 100644 index 000000000..48697c19f --- /dev/null +++ b/include/wallclock.h @@ -0,0 +1,6 @@ +#ifndef GUARD_WALLCLOCK_H +#define GUARD_WALLCLOCK_H + +void Cb2_StartWallClock(void); + +#endif //GUARD_WALLCLOCK_H diff --git a/ld_script.txt b/ld_script.txt index e9c810adc..4015c51fa 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -74,22 +74,20 @@ SECTIONS { src/pokemon_3.o(.text); asm/pokemon_3.o(.text); src/trig.o(.text); - src/rng.o(.text); + src/random.o(.text); src/util.o(.text); src/blend_palette.o(.text); src/daycare.o(.text); src/egg_hatch.o(.text); src/battle_interface.o(.text); asm/smokescreen.o(.text); - asm/pokeball.o(.text); + src/pokeball.o(.text); src/load_save.o(.text); - asm/load_save.o(.text); asm/trade.o(.text); src/berry_blender.o(.text); - asm/berry_blender.o(.text); src/play_time.o(.text); src/new_game.o(.text); - asm/rom4.o(.text); + asm/overworld.o(.text); asm/fieldmap.o(.text); src/metatile_behavior.o(.text); asm/field_camera.o(.text); @@ -107,7 +105,7 @@ SECTIONS { src/event_data.o(.text); asm/coord_event_weather.o(.text); asm/field_tasks.o(.text); - asm/clock.o(.text); + src/clock.o(.text); asm/reset_rtc_screen.o(.text); src/start_menu.o(.text); asm/start_menu.o(.text); @@ -121,8 +119,9 @@ SECTIONS { asm/battle_anim_80A9C70.o(.text); asm/title_screen.o(.text); asm/field_screen.o(.text); - asm/battle_setup.o(.text); + src/battle_setup.o(.text); asm/cable_club.o(.text); + src/trainer_see.o(.text); asm/trainer_see.o(.text); src/wild_encounter.o(.text); asm/field_effect.o(.text); @@ -135,7 +134,7 @@ SECTIONS { asm/pokemon_icon.o(.text); asm/script_movement.o(.text); asm/fldeff_cut.o(.text); - asm/mail_data.o(.text); + src/mail_data.o(.text); asm/map_name_popup.o(.text); asm/item_menu_icons.o(.text); asm/battle_anim_80D51AC.o(.text); @@ -153,7 +152,7 @@ SECTIONS { src/tv.o(.text); asm/contest_link_80F57C4.o(.text); asm/script_pokemon_util_80F87D8.o(.text); - asm/field_poison.o(.text); + src/field_poison.o(.text); src/pokemon_size_record.o(.text); asm/fldeff_80F9BCC.o(.text); src/field_special_scene.o(.text); @@ -178,7 +177,7 @@ SECTIONS { src/battle_ai_script_commands.o(.text); asm/trader.o(.text); src/starter_choose.o(.text); - asm/wallclock.o(.text); + src/wallclock.o(.text); asm/rom6.o(.text); asm/battle_records.o(.text); asm/pokedex_area_screen.o(.text); @@ -186,7 +185,6 @@ SECTIONS { asm/roulette.o(.text); asm/pokedex_cry_screen.o(.text); src/coins.o(.text); - asm/coins.o(.text); asm/landmark.o(.text); asm/fldeff_strength.o(.text); asm/battle_transition.o(.text); @@ -244,14 +242,14 @@ SECTIONS { asm/item_menu.o(.text); asm/list_menu.o(.text); asm/menu_indicators.o(.text); - asm/unk_text_util.o(.text); + src/unk_text_util.o(.text); src/save_location.o(.text); asm/item_icon.o(.text); asm/party_menu.o(.text); asm/battle_tent.o(.text); src/unk_text_util_2.o(.text); src/multiboot.o(.text); - asm/unk_81BAD84.o(.text); + src/unk_81BAD84.o(.text); src/battle_controller_player_partner.o(.text); asm/fldeff_groundshake.o(.text); asm/fossil_specials.o(.text); @@ -348,11 +346,11 @@ SECTIONS { src/egg_hatch.o(.rodata); src/battle_gfx_sfx_util.o(.rodata); src/battle_interface.o(.rodata); - data/pokeball.o(.rodata); + src/pokeball.o(.rodata); data/trade.o(.rodata); src/berry_blender.o(.rodata); src/new_game.o(.rodata); - data/rom4.o(.rodata); + data/overworld.o(.rodata); data/tilesets.o(.rodata); data/maps.o(.rodata); data/fieldmap.o(.rodata); @@ -379,7 +377,7 @@ SECTIONS { data/battle_anim_80A9C70.o(.rodata); data/title_screen.o(.rodata); data/field_screen.o(.rodata); - data/battle_setup.o(.rodata); + src/battle_setup.o(.rodata); data/cable_club.o(.rodata); data/trainer_see.o(.rodata); data/wild_encounter.o(.rodata); @@ -425,6 +423,7 @@ SECTIONS { src/battle_ai_script_commands.o(.rodata); data/data4.o(.rodata); data/starter_choose.o(.rodata); + src/wallclock.o(.rodata); data/data4c.o(.rodata); src/battle_controller_link_partner.o(.rodata); src/battle_message.o(.rodata); @@ -472,7 +471,7 @@ SECTIONS { data/party_menu.o(.rodata); data/battle_tent.o(.rodata); src/unk_text_util_2.o(.rodata); - data/unk_81BAD84.o(.rodata); + src/unk_81BAD84.o(.rodata); src/battle_controller_player_partner.o(.rodata); data/fossil_special_fldeff_groundshake.o(.rodata); src/berry_fix_program.o(.rodata); diff --git a/src/battle_2.c b/src/battle_2.c index 2be6f9d77..7bde3d174 100644 --- a/src/battle_2.c +++ b/src/battle_2.c @@ -6,16 +6,18 @@ #include "gpu_regs.h" #include "unknown_task.h" #include "battle_setup.h" +#include "battle_scripts.h" #include "pokemon.h" #include "palette.h" #include "task.h" #include "event_data.h" -#include "species.h" +#include "constants/species.h" #include "berry.h" #include "text.h" #include "item.h" -#include "items.h" -#include "hold_effects.h" +#include "constants/items.h" +#include "constants/hold_effects.h" +#include "constants/trainers.h" #include "link.h" #include "bg.h" #include "dma3.h" @@ -24,20 +26,19 @@ #include "event_data.h" #include "m4a.h" #include "window.h" -#include "rng.h" -#include "songs.h" +#include "random.h" +#include "constants/songs.h" #include "sound.h" #include "battle_message.h" #include "sprite.h" #include "util.h" #include "trig.h" #include "battle_ai_script_commands.h" -#include "battle_move_effects.h" +#include "constants/battle_move_effects.h" #include "battle_controllers.h" #include "pokedex.h" -#include "abilities.h" -#include "moves.h" -#include "trainer_classes.h" +#include "constants/abilities.h" +#include "constants/moves.h" #include "evolution_scene.h" #include "roamer.h" #include "tv.h" @@ -119,14 +120,14 @@ extern u32 gBattleExecBuffer; extern u8 gMultiHitCounter; extern u8 gBattleMoveFlags; extern s32 gBattleMoveDamage; -extern const u8* gUnknown_02024230[BATTLE_BANKS_COUNT]; -extern u16 gUnknownMovesUsedByBanks[BATTLE_BANKS_COUNT]; -extern u16 gLastUsedMovesByBanks[BATTLE_BANKS_COUNT]; -extern u16 gUnknown_02024250[BATTLE_BANKS_COUNT]; -extern u16 gUnknown_02024258[BATTLE_BANKS_COUNT]; -extern u16 gUnknown_02024260[BATTLE_BANKS_COUNT]; +extern const u8* gPalaceSelectionBattleScripts[BATTLE_BANKS_COUNT]; +extern u16 gLastPrintedMoves[BATTLE_BANKS_COUNT]; +extern u16 gLastMoves[BATTLE_BANKS_COUNT]; +extern u16 gLastLandedMoves[BATTLE_BANKS_COUNT]; +extern u16 gLastHitByType[BATTLE_BANKS_COUNT]; +extern u16 gLastResultingMoves[BATTLE_BANKS_COUNT]; extern u16 gLockedMoves[BATTLE_BANKS_COUNT]; -extern u8 gUnknown_02024270[BATTLE_BANKS_COUNT]; +extern u8 gLastHitBy[BATTLE_BANKS_COUNT]; extern u8 gUnknown_02024284[BATTLE_BANKS_COUNT]; extern u32 gStatuses3[BATTLE_BANKS_COUNT]; extern u16 gSideAffecting[2]; @@ -140,7 +141,7 @@ extern u16 gChosenMovesByBanks[BATTLE_BANKS_COUNT]; extern u8 gCurrentActionFuncId; extern u8 gLastUsedAbility; extern u8 gUnknown_0203CF00[]; -extern const u8* gBattlescriptPtrsForSelection[BATTLE_BANKS_COUNT]; +extern const u8* gSelectionBattleScripts[BATTLE_BANKS_COUNT]; extern const u8* gBattlescriptCurrInstr; extern u8 gActionsByTurnOrder[BATTLE_BANKS_COUNT]; extern u8 gCurrentTurnActionNumber; @@ -148,7 +149,7 @@ extern u16 gDynamicBasePower; extern u8 gCritMultiplier; extern u8 gCurrMovePos; extern u8 gUnknown_020241E9; -extern u16 gLastUsedMove; +extern u16 gChosenMove; extern const struct BattleMove gBattleMoves[]; extern const u16 gUnknown_08C004E0[]; // battle textbox palette @@ -159,7 +160,7 @@ extern const u8 gStatStageRatios[][2]; extern const u8 * const gBattleScriptsForMoveEffects[]; extern const u8 * const gBattlescriptsForBallThrow[]; extern const u8 * const gBattlescriptsForRunningByItem[]; -extern const u8 * const gUnknown_082DBD3C[]; +extern const u8 * const gBattlescriptsForUsingItem[]; extern const u8 * const gBattlescriptsForSafariActions[]; // strings @@ -178,38 +179,13 @@ extern const u8 gText_Ice[]; extern const u8 gText_Confusion[]; extern const u8 gText_Love[]; -// battlescripts -extern const u8 gUnknown_082DB8BE[]; -extern const u8 gUnknown_082DB881[]; -extern const u8 BattleScript_ActionSelectionItemsCantBeUsed[]; -extern const u8 gUnknown_082DAB11[]; -extern const u8 gUnknown_082DB9BA[]; -extern const u8 gUnknown_082DAAFE[]; -extern const u8 gUnknown_082DAB0B[]; -extern const u8 BattleScript_FocusPunchSetUp[]; -extern const u8 BattleScript_LinkBattleWonOrLost[]; -extern const u8 BattleScript_FrontierTrainerBattleWon[]; -extern const u8 BattleScript_LocalTrainerBattleWon[]; -extern const u8 BattleScript_PayDayMoneyAndPickUpItems[]; -extern const u8 BattleScript_LocalBattleLost[]; -extern const u8 gUnknown_082DB9C8[]; -extern const u8 gUnknown_082DAA0B[]; -extern const u8 gUnknown_082DB9C1[]; -extern const u8 BattleScript_RanAwayUsingMonAbility[]; -extern const u8 BattleScript_SmokeBallEscape[]; -extern const u8 BattleScript_GotAwaySafely[]; -extern const u8 BattleScript_WildMonFled[]; -extern const u8 BattleScript_MoveUsedLoafingAround[]; -extern const u8 BattleScript_ActionSwitch[]; -extern const u8 BattleScript_PrintFailedToRunString[]; - // functions extern void dp12_8087EA4(void); extern void sub_80356D0(void); extern void GetFrontierTrainerName(u8* dst, u16 trainerId); // battle tower extern void sub_8166188(void); // battle tower, sets link battle mons level but why? extern void sub_8165B88(u8* dst, u16 trainerId); // battle tower, gets language -extern void sub_81DB4DC(u8* dst, u8 arg2); // +extern void PadNameString(u8* dst, u8 arg2); // extern void sub_81B9150(void); extern void sub_800AC34(void); extern void sub_80B3AF8(u8 taskId); // cable club @@ -439,7 +415,7 @@ static void CB2_InitBattleInternal(void) gBattleTerrain = BattleSetup_GetTerrainId(); if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) - gBattleTerrain = BATTLE_TERRAIN_INSIDE; + gBattleTerrain = BATTLE_TERRAIN_BUILDING; sub_80356D0(); LoadBattleTextboxAndBackground(); @@ -485,7 +461,7 @@ static void sub_8036A5C(void) u32 status = 0; s32 i; - for (i = 0; i < 6; i++) + for (i = 0; i < PARTY_SIZE; i++) { species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2); hp = GetMonData(&gPlayerParty[i], MON_DATA_HP); @@ -1164,7 +1140,7 @@ static void sub_80379F8(u8 arrayIdPlus) gUnknown_02022FF8[i].gender = GetMonGender(&gPlayerParty[arrayIdPlus + i]); StripExtCtrlCodes(gUnknown_02022FF8[i].nickname); if (GetMonData(&gPlayerParty[arrayIdPlus + i], MON_DATA_LANGUAGE) != LANGUAGE_JAPANESE) - sub_81DB4DC(gUnknown_02022FF8[i].nickname, 0); + PadNameString(gUnknown_02022FF8[i].nickname, CHAR_SPACE); } memcpy(gUnknown_02023058, gUnknown_02022FF8, sizeof(gUnknown_02022FF8)); } @@ -1644,7 +1620,7 @@ void CB2_QuitRecordedBattle(void) void sub_8038528(struct Sprite* sprite) { - sprite->data0 = 0; + sprite->data[0] = 0; sprite->callback = sub_8038538; } @@ -1652,42 +1628,42 @@ static void sub_8038538(struct Sprite *sprite) { u16 *arr = (u16*)(gDecompressionBuffer); - switch (sprite->data0) + switch (sprite->data[0]) { case 0: - sprite->data0++; - sprite->data1 = 0; - sprite->data2 = 0x281; - sprite->data3 = 0; - sprite->data4 = 1; + sprite->data[0]++; + sprite->data[1] = 0; + sprite->data[2] = 0x281; + sprite->data[3] = 0; + sprite->data[4] = 1; // fall through case 1: - sprite->data4--; - if (sprite->data4 == 0) + sprite->data[4]--; + if (sprite->data[4] == 0) { s32 i; s32 r2; s32 r0; - sprite->data4 = 2; - r2 = sprite->data1 + sprite->data3 * 32; - r0 = sprite->data2 - sprite->data3 * 32; + sprite->data[4] = 2; + r2 = sprite->data[1] + sprite->data[3] * 32; + r0 = sprite->data[2] - sprite->data[3] * 32; for (i = 0; i < 29; i += 2) { arr[r2 + i] = 0x3D; arr[r0 + i] = 0x3D; } - sprite->data3++; - if (sprite->data3 == 21) + sprite->data[3]++; + if (sprite->data[3] == 21) { - sprite->data0++; - sprite->data1 = 32; + sprite->data[0]++; + sprite->data[1] = 32; } } break; case 2: - sprite->data1--; - if (sprite->data1 == 20) + sprite->data[1]--; + if (sprite->data[1] == 20) SetMainCallback2(CB2_InitBattle); break; } @@ -1742,7 +1718,7 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum, bool8 fir { const struct TrainerMonNoItemDefaultMoves *partyData = gTrainers[trainerNum].party.NoItemDefaultMoves; - for (j = 0; gSpeciesNames[partyData[i].species][j] != 0xFF; j++) + for (j = 0; gSpeciesNames[partyData[i].species][j] != EOS; j++) nameHash += gSpeciesNames[partyData[i].species][j]; personalityValue += nameHash << 8; @@ -1750,11 +1726,11 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum, bool8 fir CreateMon(&party[i], partyData[i].species, partyData[i].lvl, fixedIV, TRUE, personalityValue, OT_ID_RANDOM_NO_SHINY, 0); break; } - case PARTY_FLAG_CUSTOM_MOVES: + case F_TRAINER_PARTY_CUSTOM_MOVESET: { const struct TrainerMonNoItemCustomMoves *partyData = gTrainers[trainerNum].party.NoItemCustomMoves; - for (j = 0; gSpeciesNames[partyData[i].species][j] != 0xFF; j++) + for (j = 0; gSpeciesNames[partyData[i].species][j] != EOS; j++) nameHash += gSpeciesNames[partyData[i].species][j]; personalityValue += nameHash << 8; @@ -1768,11 +1744,11 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum, bool8 fir } break; } - case PARTY_FLAG_HAS_ITEM: + case F_TRAINER_PARTY_HELD_ITEM: { const struct TrainerMonItemDefaultMoves *partyData = gTrainers[trainerNum].party.ItemDefaultMoves; - for (j = 0; gSpeciesNames[partyData[i].species][j] != 0xFF; j++) + for (j = 0; gSpeciesNames[partyData[i].species][j] != EOS; j++) nameHash += gSpeciesNames[partyData[i].species][j]; personalityValue += nameHash << 8; @@ -1782,11 +1758,11 @@ static u8 CreateNPCTrainerParty(struct Pokemon *party, u16 trainerNum, bool8 fir SetMonData(&party[i], MON_DATA_HELD_ITEM, &partyData[i].heldItem); break; } - case PARTY_FLAG_CUSTOM_MOVES | PARTY_FLAG_HAS_ITEM: + case F_TRAINER_PARTY_CUSTOM_MOVESET | F_TRAINER_PARTY_HELD_ITEM: { const struct TrainerMonItemCustomMoves *partyData = gTrainers[trainerNum].party.ItemCustomMoves; - for (j = 0; gSpeciesNames[partyData[i].species][j] != 0xFF; j++) + for (j = 0; gSpeciesNames[partyData[i].species][j] != EOS; j++) nameHash += gSpeciesNames[partyData[i].species][j]; personalityValue += nameHash << 8; @@ -1848,12 +1824,12 @@ void nullsub_17(void) static void sub_8038B04(struct Sprite *sprite) { - if (sprite->data0 != 0) - sprite->pos1.x = sprite->data1 + ((sprite->data2 & 0xFF00) >> 8); + if (sprite->data[0] != 0) + sprite->pos1.x = sprite->data[1] + ((sprite->data[2] & 0xFF00) >> 8); else - sprite->pos1.x = sprite->data1 - ((sprite->data2 & 0xFF00) >> 8); + sprite->pos1.x = sprite->data[1] - ((sprite->data[2] & 0xFF00) >> 8); - sprite->data2 += 0x180; + sprite->data[2] += 0x180; if (sprite->affineAnimEnded) { @@ -1902,7 +1878,7 @@ static void sub_8038B94(u8 taskId) } r7 = 0; - for (i = 0; i < 6; i++) + for (i = 0; i < PARTY_SIZE; i++) { u16 species = GetMonData(&sp4[i], MON_DATA_SPECIES2); u16 hp = GetMonData(&sp4[i], MON_DATA_HP); @@ -1926,7 +1902,7 @@ static void sub_8038B94(u8 taskId) gTasks[taskId].data[3] = r7; r7 = 0; - for (i = 0; i < 6; i++) + for (i = 0; i < PARTY_SIZE; i++) { u16 species = GetMonData(&sp8[i], MON_DATA_SPECIES2); u16 hp = GetMonData(&sp8[i], MON_DATA_HP); @@ -2406,8 +2382,8 @@ u32 sub_80397C4(u32 setId, u32 tableId) return gUnknown_0831ABA0[setId][tableId].width * 8; } -#define tBank data0 -#define tSpeciesId data2 +#define tBank data[0] +#define tSpeciesId data[2] void oac_poke_opponent(struct Sprite *sprite) { @@ -2455,20 +2431,20 @@ void SpriteCallbackDummy_2(struct Sprite *sprite) static void sub_80398BC(struct Sprite *sprite) // unused? { - sprite->data3 = 6; - sprite->data4 = 1; + sprite->data[3] = 6; + sprite->data[4] = 1; sprite->callback = sub_80398D0; } static void sub_80398D0(struct Sprite *sprite) { - sprite->data4--; - if (sprite->data4 == 0) + sprite->data[4]--; + if (sprite->data[4] == 0) { - sprite->data4 = 8; + sprite->data[4] = 8; sprite->invisible ^= 1; - sprite->data3--; - if (sprite->data3 == 0) + sprite->data[3]--; + if (sprite->data[3] == 0) { sprite->invisible = FALSE; sprite->callback = SpriteCallbackDummy_2; @@ -2519,8 +2495,8 @@ void sub_8039934(struct Sprite *sprite) yOffset = gMonFrontPicCoords[species].y_offset; } - sprite->data3 = 8 - yOffset / 8; - sprite->data4 = 1; + sprite->data[3] = 8 - yOffset / 8; + sprite->data[4] = 1; sprite->callback = sub_8039A48; } @@ -2528,20 +2504,20 @@ static void sub_8039A48(struct Sprite *sprite) { s32 i; - sprite->data4--; - if (sprite->data4 == 0) + sprite->data[4]--; + if (sprite->data[4] == 0) { - sprite->data4 = 2; + sprite->data[4] = 2; sprite->pos2.y += 8; - sprite->data3--; - if (sprite->data3 < 0) + sprite->data[3]--; + if (sprite->data[3] < 0) { FreeSpriteOamMatrix(sprite); DestroySprite(sprite); } else { - u8 *dst = (u8 *)gMonSpritesGfxPtr->sprites[GetBankIdentity(sprite->tBank)] + (gBattleMonForms[sprite->tBank] << 11) + (sprite->data3 << 8); + u8 *dst = (u8 *)gMonSpritesGfxPtr->sprites[GetBankIdentity(sprite->tBank)] + (gBattleMonForms[sprite->tBank] << 11) + (sprite->data[3] << 8); for (i = 0; i < 0x100; i++) *(dst++) = 0; @@ -2553,25 +2529,25 @@ static void sub_8039A48(struct Sprite *sprite) void sub_8039AD8(struct Sprite *sprite) { - sprite->data3 = 8; - sprite->data4 = sprite->invisible; + sprite->data[3] = 8; + sprite->data[4] = sprite->invisible; sprite->callback = sub_8039AF4; } static void sub_8039AF4(struct Sprite *sprite) { - sprite->data3--; - if (sprite->data3 == 0) + sprite->data[3]--; + if (sprite->data[3] == 0) { sprite->invisible ^= 1; - sprite->data3 = 8; + sprite->data[3] = 8; } } void sub_8039B2C(struct Sprite *sprite) { - sprite->invisible = sprite->data4; - sprite->data4 = FALSE; + sprite->invisible = sprite->data[4]; + sprite->data[4] = FALSE; sprite->callback = SpriteCallbackDummy_2; } @@ -2601,7 +2577,7 @@ static void oac_poke_ally_(struct Sprite *sprite) if (sprite->pos2.x == 0) { sprite->callback = SpriteCallbackDummy_3; - sprite->data1 = 0; + sprite->data[1] = 0; } } } @@ -2619,8 +2595,8 @@ void sub_8039C00(struct Sprite *sprite) { if (!(gUnknown_020243FC & 1)) { - sprite->pos2.x += sprite->data1; - sprite->pos2.y += sprite->data2; + sprite->pos2.x += sprite->data[1]; + sprite->pos2.y += sprite->data[2]; } } @@ -2646,19 +2622,19 @@ void dp11b_obj_instanciate(u8 bank, u8 b, s8 c, s8 d) spriteId2 = gHealthBoxesIds[bank]; gBattleSpritesDataPtr->healthBoxesData[bank].field_2 = bounceHealthBoxSpriteId; gBattleSpritesDataPtr->healthBoxesData[bank].flag_x2 = 1; - gSprites[bounceHealthBoxSpriteId].data0 = 0x80; + gSprites[bounceHealthBoxSpriteId].data[0] = 0x80; } else { spriteId2 = gBankSpriteIds[bank]; gBattleSpritesDataPtr->healthBoxesData[bank].field_3 = bounceHealthBoxSpriteId; gBattleSpritesDataPtr->healthBoxesData[bank].flag_x4 = 1; - gSprites[bounceHealthBoxSpriteId].data0 = 0xC0; + gSprites[bounceHealthBoxSpriteId].data[0] = 0xC0; } - gSprites[bounceHealthBoxSpriteId].data1 = c; - gSprites[bounceHealthBoxSpriteId].data2 = d; - gSprites[bounceHealthBoxSpriteId].data3 = spriteId2; - gSprites[bounceHealthBoxSpriteId].data4 = b; + gSprites[bounceHealthBoxSpriteId].data[1] = c; + gSprites[bounceHealthBoxSpriteId].data[2] = d; + gSprites[bounceHealthBoxSpriteId].data[3] = spriteId2; + gSprites[bounceHealthBoxSpriteId].data[4] = b; gSprites[spriteId2].pos2.x = 0; gSprites[spriteId2].pos2.y = 0; } @@ -2672,7 +2648,7 @@ void dp11b_obj_free(u8 bank, bool8 b) if (!gBattleSpritesDataPtr->healthBoxesData[bank].flag_x2) return; - r4 = gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].field_2].data3; + r4 = gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].field_2].data[3]; DestroySprite(&gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].field_2]); gBattleSpritesDataPtr->healthBoxesData[bank].flag_x2 = 0; } @@ -2681,7 +2657,7 @@ void dp11b_obj_free(u8 bank, bool8 b) if (!gBattleSpritesDataPtr->healthBoxesData[bank].flag_x4) return; - r4 = gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].field_3].data3; + r4 = gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].field_3].data[3]; DestroySprite(&gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].field_3]); gBattleSpritesDataPtr->healthBoxesData[bank].flag_x4 = 0; } @@ -2691,16 +2667,16 @@ void dp11b_obj_free(u8 bank, bool8 b) static void SpriteCB_HealthBoxBounce(struct Sprite *sprite) { - u8 spriteId = sprite->data3; + u8 spriteId = sprite->data[3]; s32 var; - if (sprite->data4 == 1) - var = sprite->data0; + if (sprite->data[4] == 1) + var = sprite->data[0]; else - var = sprite->data0; + var = sprite->data[0]; - gSprites[spriteId].pos2.y = Sin(var, sprite->data2) + sprite->data2; - sprite->data0 = (sprite->data0 + sprite->data1) & 0xFF; + gSprites[spriteId].pos2.y = Sin(var, sprite->data[2]) + sprite->data[2]; + sprite->data[0] = (sprite->data[0] + sprite->data[1]) & 0xFF; } void sub_8039E44(struct Sprite *sprite) @@ -2765,17 +2741,17 @@ static void BattleStartClearSetData(void) for (j = 0; j < sizeof(struct DisableStruct); j++) dataPtr[j] = 0; - gDisableStructs[i].isFirstTurn= 2; + gDisableStructs[i].isFirstTurn = 2; gUnknown_02024284[i] = 0; - gLastUsedMovesByBanks[i] = 0; - gUnknown_02024250[i] = 0; - gUnknown_02024258[i] = 0; - gUnknown_02024260[i] = 0; - gUnknown_02024270[i] = 0xFF; + gLastMoves[i] = 0; + gLastLandedMoves[i] = 0; + gLastHitByType[i] = 0; + gLastResultingMoves[i] = 0; + gLastHitBy[i] = 0xFF; gLockedMoves[i] = 0; - gUnknownMovesUsedByBanks[i] = 0; + gLastPrintedMoves[i] = 0; gBattleResources->flags->flags[i] = 0; - gUnknown_02024230[i] = 0; + gPalaceSelectionBattleScripts[i] = 0; } for (i = 0; i < 2; i++) @@ -2896,7 +2872,7 @@ void SwitchInClearSetData(void) && (gStatuses3[i] & STATUS3_ALWAYS_HITS) != 0 && (gDisableStructs[i].bankWithSureHit == gActiveBank)) { - gStatuses3[i] &= ~STATUS3_ALWAYS_HITS; + gStatuses3[i] &= ~(STATUS3_ALWAYS_HITS); gStatuses3[i] |= 0x10; } } @@ -2932,14 +2908,14 @@ void SwitchInClearSetData(void) } gBattleMoveFlags = 0; - gDisableStructs[gActiveBank].isFirstTurn= 2; + gDisableStructs[gActiveBank].isFirstTurn = 2; gDisableStructs[gActiveBank].truantUnknownBit = disableStructCopy.truantUnknownBit; - gLastUsedMovesByBanks[gActiveBank] = 0; - gUnknown_02024250[gActiveBank] = 0; - gUnknown_02024258[gActiveBank] = 0; - gUnknown_02024260[gActiveBank] = 0; - gUnknownMovesUsedByBanks[gActiveBank] = 0; - gUnknown_02024270[gActiveBank] = 0xFF; + gLastMoves[gActiveBank] = 0; + gLastLandedMoves[gActiveBank] = 0; + gLastHitByType[gActiveBank] = 0; + gLastResultingMoves[gActiveBank] = 0; + gLastPrintedMoves[gActiveBank] = 0; + gLastHitBy[gActiveBank] = 0xFF; *(gBattleStruct->mirrorMoves + gActiveBank * 2 + 0) = 0; *(gBattleStruct->mirrorMoves + gActiveBank * 2 + 1) = 0; @@ -3026,12 +3002,12 @@ void FaintClearSetData(void) gDisableStructs[gActiveBank].isFirstTurn = 2; - gLastUsedMovesByBanks[gActiveBank] = 0; - gUnknown_02024250[gActiveBank] = 0; - gUnknown_02024258[gActiveBank] = 0; - gUnknown_02024260[gActiveBank] = 0; - gUnknownMovesUsedByBanks[gActiveBank] = 0; - gUnknown_02024270[gActiveBank] = 0xFF; + gLastMoves[gActiveBank] = 0; + gLastLandedMoves[gActiveBank] = 0; + gLastHitByType[gActiveBank] = 0; + gLastResultingMoves[gActiveBank] = 0; + gLastPrintedMoves[gActiveBank] = 0; + gLastHitBy[gActiveBank] = 0xFF; *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBank]) + 0) = 0; *(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBank]) + 1) = 0; @@ -3213,7 +3189,7 @@ static void BattleIntroDrawPartySummaryScreens(void) if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { - for (i = 0; i < 6; i++) + for (i = 0; i < PARTY_SIZE; i++) { if (GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_NONE || GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_EGG) @@ -3231,7 +3207,7 @@ static void BattleIntroDrawPartySummaryScreens(void) EmitDrawPartyStatusSummary(0, hpStatus, 0x80); MarkBufferBankForExecution(gActiveBank); - for (i = 0; i < 6; i++) + for (i = 0; i < PARTY_SIZE; i++) { if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_NONE || GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_EGG) @@ -3692,10 +3668,10 @@ static void TryDoEventsBeforeFirstTurn(void) *(&gBattleStruct->turnEffectsTracker) = 0; *(&gBattleStruct->turnEffectsBank) = 0; - *(&gBattleStruct->field_1A0) = 0; - *(&gBattleStruct->field_1A1) = 0; + *(&gBattleStruct->wishPerishSongState) = 0; + *(&gBattleStruct->wishPerishSongBank) = 0; gBattleScripting.atk49_state = 0; - gBattleStruct->field_4D = 0; + gBattleStruct->faintedActionsState = 0; gBattleStruct->turncountersTracker = 0; gBattleMoveFlags = 0; @@ -3704,7 +3680,7 @@ static void TryDoEventsBeforeFirstTurn(void) if (gBattleTypeFlags & BATTLE_TYPE_ARENA) { StopCryAndClearCrySongs(); - BattleScriptExecute(gUnknown_082DB8BE); + BattleScriptExecute(BattleScript_82DB8BE); } } @@ -3725,8 +3701,8 @@ static void HandleEndTurn_ContinueBattle(void) } gBattleStruct->turnEffectsTracker = 0; gBattleStruct->turnEffectsBank = 0; - gBattleStruct->field_1A0 = 0; - gBattleStruct->field_1A1 = 0; + gBattleStruct->wishPerishSongState = 0; + gBattleStruct->wishPerishSongBank = 0; gBattleStruct->turncountersTracker = 0; gBattleMoveFlags = 0; } @@ -3744,10 +3720,10 @@ void BattleTurnPassed(void) if (TurnBasedEffects() != 0) return; } - if (sub_8041728() != 0) + if (HandleFaintedMonActions() != 0) return; - gBattleStruct->field_4D = 0; - if (sub_8041364() != 0) + gBattleStruct->faintedActionsState = 0; + if (HandleWishPerishSongOnTurnEnd() != 0) return; TurnValuesCleanUp(FALSE); @@ -3792,9 +3768,9 @@ void BattleTurnPassed(void) gRandomTurnNumber = Random(); if (gBattleTypeFlags & BATTLE_TYPE_PALACE) - BattleScriptExecute(gUnknown_082DB881); + BattleScriptExecute(BattleScript_82DB881); else if (gBattleTypeFlags & BATTLE_TYPE_ARENA && gBattleStruct->field_DA == 0) - BattleScriptExecute(gUnknown_082DB8BE); + BattleScriptExecute(BattleScript_82DB8BE); } u8 IsRunningFromBattleImpossible(void) @@ -4007,7 +3983,7 @@ static void HandleTurnActionSelectionState(void) | BATTLE_TYPE_x2000000)) { RecordedBattle_ClearBankAction(gActiveBank, 1); - gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_ActionSelectionItemsCantBeUsed; + gSelectionBattleScripts[gActiveBank] = BattleScript_ActionSelectionItemsCantBeUsed; gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT; *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN; @@ -4052,7 +4028,7 @@ static void HandleTurnActionSelectionState(void) case ACTION_SAFARI_ZONE_BALL: if (IsPlayerPartyAndPokemonStorageFull()) { - gBattlescriptPtrsForSelection[gActiveBank] = gUnknown_082DAB11; + gSelectionBattleScripts[gActiveBank] = BattleScript_PrintFullBox; gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT; *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN; @@ -4107,7 +4083,7 @@ static void HandleTurnActionSelectionState(void) && gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_x4000000) && gBattleBufferB[gActiveBank][1] == ACTION_RUN) { - gBattlescriptPtrsForSelection[gActiveBank] = gUnknown_082DB9BA; + gSelectionBattleScripts[gActiveBank] = BattleScript_AskIfWantsToForfeitMatch; gBattleCommunication[gActiveBank] = 8; *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN; @@ -4117,13 +4093,13 @@ static void HandleTurnActionSelectionState(void) && !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) && gBattleBufferB[gActiveBank][1] == ACTION_RUN) { - BattleScriptExecute(gUnknown_082DAAFE); + BattleScriptExecute(BattleScript_PrintCantRunFromTrainer); gBattleCommunication[gActiveBank] = 1; } - else if (IsRunningFromBattleImpossible() != 0 + else if (IsRunningFromBattleImpossible() && gBattleBufferB[gActiveBank][1] == ACTION_RUN) { - gBattlescriptPtrsForSelection[gActiveBank] = gUnknown_082DAB0B; + gSelectionBattleScripts[gActiveBank] = BattleScript_PrintCantEscapeFromBattle; gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT; *(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE; *(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN; @@ -4276,12 +4252,12 @@ static void HandleTurnActionSelectionState(void) else { gBankAttacker = gActiveBank; - gBattlescriptCurrInstr = gBattlescriptPtrsForSelection[gActiveBank]; + gBattlescriptCurrInstr = gSelectionBattleScripts[gActiveBank]; if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC)))) { gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); } - gBattlescriptPtrsForSelection[gActiveBank] = gBattlescriptCurrInstr; + gSelectionBattleScripts[gActiveBank] = gBattlescriptCurrInstr; } break; case STATE_WAIT_SET_BEFORE_ACTION: @@ -4308,12 +4284,12 @@ static void HandleTurnActionSelectionState(void) else { gBankAttacker = gActiveBank; - gBattlescriptCurrInstr = gBattlescriptPtrsForSelection[gActiveBank]; + gBattlescriptCurrInstr = gSelectionBattleScripts[gActiveBank]; if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC)))) { gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); } - gBattlescriptPtrsForSelection[gActiveBank] = gBattlescriptCurrInstr; + gSelectionBattleScripts[gActiveBank] = gBattlescriptCurrInstr; } break; } @@ -4716,7 +4692,7 @@ static void CheckFocusPunch_ClearVarsBeforeTurnStarts(void) gBattleMainFunc = RunTurnActionsFunctions; gBattleCommunication[3] = 0; gBattleCommunication[4] = 0; - gBattleScripting.field_16 = 0; + gBattleScripting.multihitMoveEffect = 0; gBattleResources->battleScriptsStack->size = 0; } @@ -4725,7 +4701,7 @@ static void RunTurnActionsFunctions(void) if (gBattleOutcome != 0) gCurrentActionFuncId = 12; - *(&gBattleStruct->field_4B) = gCurrentTurnActionNumber; + *(&gBattleStruct->savedTurnActionNumber) = gCurrentTurnActionNumber; sTurnActionsFuncsTable[gCurrentActionFuncId](); if (gCurrentTurnActionNumber >= gNoOfAllBanks) // everyone did their actions, turn finished @@ -4735,7 +4711,7 @@ static void RunTurnActionsFunctions(void) } else { - if (gBattleStruct->field_4B != gCurrentTurnActionNumber) // action turn has been done, clear hitmarker bits for another bank + if (gBattleStruct->savedTurnActionNumber != gCurrentTurnActionNumber) // action turn has been done, clear hitmarker bits for another bank { gHitMarker &= ~(HITMARKER_NO_ATTACKSTRING); gHitMarker &= ~(HITMARKER_UNABLE_TO_USE_MOVE); @@ -4753,7 +4729,7 @@ static void HandleEndTurn_BattleWon(void) gBattleTextBuff1[0] = gBattleOutcome; gBankAttacker = GetBankByIdentity(IDENTITY_PLAYER_MON1); gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost; - gBattleOutcome &= ~(BATTLE_OUTCOME_BIT_x80); + gBattleOutcome &= ~(OUTCOME_LINK_BATTLE_RUN); } else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_x4000000 | BATTLE_TYPE_EREADER_TRAINER)) @@ -4773,19 +4749,19 @@ static void HandleEndTurn_BattleWon(void) switch (gTrainers[gTrainerBattleOpponent_A].trainerClass) { - case CLASS_ELITE_FOUR: - case CLASS_CHAMPION: + case TRAINER_CLASS_ELITE_FOUR: + case TRAINER_CLASS_CHAMPION: PlayBGM(BGM_KACHI5); break; - case CLASS_TEAM_AQUA: - case CLASS_TEAM_MAGMA: - case CLASS_AQUA_ADMIN: - case CLASS_AQUA_LEADER: - case CLASS_MAGMA_ADMIN: - case CLASS_MAGMA_LEADER: + case TRAINER_CLASS_TEAM_AQUA: + case TRAINER_CLASS_TEAM_MAGMA: + case TRAINER_CLASS_AQUA_ADMIN: + case TRAINER_CLASS_AQUA_LEADER: + case TRAINER_CLASS_MAGMA_ADMIN: + case TRAINER_CLASS_MAGMA_LEADER: PlayBGM(BGM_KACHI4); break; - case CLASS_LEADER: + case TRAINER_CLASS_LEADER: PlayBGM(BGM_KACHI3); break; default: @@ -4809,16 +4785,16 @@ static void HandleEndTurn_BattleLost(void) { if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) { - if (gBattleOutcome & BATTLE_OUTCOME_BIT_x80) + if (gBattleOutcome & OUTCOME_LINK_BATTLE_RUN) { - gBattlescriptCurrInstr = gUnknown_082DB9C8; - gBattleOutcome &= ~(BATTLE_OUTCOME_BIT_x80); + gBattlescriptCurrInstr = BattleScript_PrintPlayerForfeitedLinkBattle; + gBattleOutcome &= ~(OUTCOME_LINK_BATTLE_RUN); gSaveBlock2Ptr->field_CA9_b = 1; } else { - gBattlescriptCurrInstr = gUnknown_082DAA0B; - gBattleOutcome &= ~(BATTLE_OUTCOME_BIT_x80); + gBattlescriptCurrInstr = BattleScript_82DAA0B; + gBattleOutcome &= ~(OUTCOME_LINK_BATTLE_RUN); } } else @@ -4826,7 +4802,7 @@ static void HandleEndTurn_BattleLost(void) gBattleTextBuff1[0] = gBattleOutcome; gBankAttacker = GetBankByIdentity(IDENTITY_PLAYER_MON1); gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost; - gBattleOutcome &= ~(BATTLE_OUTCOME_BIT_x80); + gBattleOutcome &= ~(OUTCOME_LINK_BATTLE_RUN); } } else @@ -4843,13 +4819,13 @@ static void HandleEndTurn_RanFromBattle(void) if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER && gBattleTypeFlags & BATTLE_TYPE_TRAINER) { - gBattlescriptCurrInstr = gUnknown_082DB9C1; + gBattlescriptCurrInstr = BattleScript_PrintPlayerForfeited; gBattleOutcome = BATTLE_FORFEITED; gSaveBlock2Ptr->field_CA9_b = 1; } else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) { - gBattlescriptCurrInstr = gUnknown_082DB9C1; + gBattlescriptCurrInstr = BattleScript_PrintPlayerForfeited; gBattleOutcome = BATTLE_FORFEITED; } else @@ -5072,19 +5048,19 @@ static void HandleAction_UseMove(void) if (gProtectStructs[gBankAttacker].onlyStruggle) { gProtectStructs[gBankAttacker].onlyStruggle = 0; - gCurrentMove = gLastUsedMove = MOVE_STRUGGLE; + gCurrentMove = gChosenMove = MOVE_STRUGGLE; gHitMarker |= HITMARKER_NO_PPDEDUCT; *(gBattleStruct->moveTarget + gBankAttacker) = GetMoveTarget(MOVE_STRUGGLE, 0); } else if (gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS || gBattleMons[gBankAttacker].status2 & STATUS2_RECHARGE) { - gCurrentMove = gLastUsedMove = gLockedMoves[gBankAttacker]; + gCurrentMove = gChosenMove = gLockedMoves[gBankAttacker]; } // encore forces you to use the same move else if (gDisableStructs[gBankAttacker].encoredMove != MOVE_NONE && gDisableStructs[gBankAttacker].encoredMove == gBattleMons[gBankAttacker].moves[gDisableStructs[gBankAttacker].encoredMovePos]) { - gCurrentMove = gLastUsedMove = gDisableStructs[gBankAttacker].encoredMove; + gCurrentMove = gChosenMove = gDisableStructs[gBankAttacker].encoredMove; gCurrMovePos = gUnknown_020241E9 = gDisableStructs[gBankAttacker].encoredMovePos; *(gBattleStruct->moveTarget + gBankAttacker) = GetMoveTarget(gCurrentMove, 0); } @@ -5093,7 +5069,7 @@ static void HandleAction_UseMove(void) && gDisableStructs[gBankAttacker].encoredMove != gBattleMons[gBankAttacker].moves[gDisableStructs[gBankAttacker].encoredMovePos]) { gCurrMovePos = gUnknown_020241E9 = gDisableStructs[gBankAttacker].encoredMovePos; - gCurrentMove = gLastUsedMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; + gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; gDisableStructs[gBankAttacker].encoredMove = MOVE_NONE; gDisableStructs[gBankAttacker].encoredMovePos = 0; gDisableStructs[gBankAttacker].encoreTimer1 = 0; @@ -5101,12 +5077,12 @@ static void HandleAction_UseMove(void) } else if (gBattleMons[gBankAttacker].moves[gCurrMovePos] != gChosenMovesByBanks[gBankAttacker]) { - gCurrentMove = gLastUsedMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; + gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; *(gBattleStruct->moveTarget + gBankAttacker) = GetMoveTarget(gCurrentMove, 0); } else { - gCurrentMove = gLastUsedMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; + gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; } if (gBattleMons[gBankAttacker].hp != 0) @@ -5146,7 +5122,7 @@ static void HandleAction_UseMove(void) } if (var == 4) { - if (gBattleMoves[gLastUsedMove].target & MOVE_TARGET_RANDOM) + if (gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM) { if (GetBankSide(gBankAttacker) == SIDE_PLAYER) { @@ -5191,7 +5167,7 @@ static void HandleAction_UseMove(void) } } else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE - && gBattleMoves[gLastUsedMove].target & MOVE_TARGET_RANDOM) + && gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM) { if (GetBankSide(gBankAttacker) == SIDE_PLAYER) { @@ -5241,11 +5217,11 @@ static void HandleAction_UseMove(void) gCurrentActionFuncId = 12; return; } - else if (gUnknown_02024230[gBankAttacker] != NULL) + else if (gPalaceSelectionBattleScripts[gBankAttacker] != NULL) { gBattleCommunication[MULTISTRING_CHOOSER] = 4; - gBattlescriptCurrInstr = gUnknown_02024230[gBankAttacker]; - gUnknown_02024230[gBankAttacker] = NULL; + gBattlescriptCurrInstr = gPalaceSelectionBattleScripts[gBankAttacker]; + gPalaceSelectionBattleScripts[gBankAttacker] = NULL; } else { @@ -5300,7 +5276,7 @@ static void HandleAction_UseItem(void) } else if (GetBankSide(gBankAttacker) == SIDE_PLAYER) { - gBattlescriptCurrInstr = gUnknown_082DBD3C[0]; + gBattlescriptCurrInstr = gBattlescriptsForUsingItem[0]; } else { @@ -5356,7 +5332,7 @@ static void HandleAction_UseItem(void) break; } - gBattlescriptCurrInstr = gUnknown_082DBD3C[*(gBattleStruct->AI_itemType + gBankAttacker / 2)]; + gBattlescriptCurrInstr = gBattlescriptsForUsingItem[*(gBattleStruct->AI_itemType + gBankAttacker / 2)]; } gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; } @@ -5463,7 +5439,7 @@ static void HandleAction_Run(void) } } - gBattleOutcome |= BATTLE_OUTCOME_BIT_x80; + gBattleOutcome |= OUTCOME_LINK_BATTLE_RUN; gSaveBlock2Ptr->field_CA9_b = 1; } else @@ -5589,9 +5565,9 @@ static void HandleAction_Action9(void) static void HandleAction_Action11(void) { - if (!sub_8041728()) + if (!HandleFaintedMonActions()) { - gBattleStruct->field_4D = 0; + gBattleStruct->faintedActionsState = 0; gCurrentActionFuncId = ACTION_FINISHED; } } @@ -5624,13 +5600,13 @@ static void HandleAction_ActionFinished(void) gBattleMoveFlags = 0; gBattleScripting.animTurn = 0; gBattleScripting.animTargetsHit = 0; - gUnknown_02024250[gBankAttacker] = 0; - gUnknown_02024258[gBankAttacker] = 0; + gLastLandedMoves[gBankAttacker] = 0; + gLastHitByType[gBankAttacker] = 0; gBattleStruct->dynamicMoveType = 0; gDynamicBasePower = 0; gBattleScripting.atk49_state = 0; gBattleCommunication[3] = 0; gBattleCommunication[4] = 0; - gBattleScripting.field_16 = 0; + gBattleScripting.multihitMoveEffect = 0; gBattleResources->battleScriptsStack->size = 0; } diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c index 24377eacc..44be0a4d9 100644 --- a/src/battle_ai_script_commands.c +++ b/src/battle_ai_script_commands.c @@ -2,17 +2,16 @@ #include "battle_ai_script_commands.h" #include "pokemon.h" #include "battle.h" -#include "species.h" -#include "abilities.h" -#include "rng.h" +#include "constants/species.h" +#include "constants/abilities.h" +#include "random.h" #include "item.h" -#include "battle_move_effects.h" -#include "moves.h" +#include "constants/battle_move_effects.h" +#include "constants/moves.h" #include "util.h" #define AIScriptRead32(ptr) ((ptr)[0] | (ptr)[1] << 8 | (ptr)[2] << 16 | (ptr)[3] << 24) #define AIScriptRead16(ptr) ((ptr)[0] | (ptr)[1] << 8) -#define AIScriptRead8(ptr) ((ptr)[0]) #define AIScriptReadPtr(ptr) (const u8*) AIScriptRead32(ptr) #define AI_ACTION_DONE 0x0001 @@ -58,7 +57,7 @@ extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; extern u16 gCurrentMove; extern u8 gBankTarget; extern u8 gAbsentBankFlags; -extern u16 gLastUsedMovesByBanks[BATTLE_BANKS_COUNT]; +extern u16 gLastMoves[BATTLE_BANKS_COUNT]; extern u16 gTrainerBattleOpponent_A; extern u16 gTrainerBattleOpponent_B; extern u32 gStatuses3[BATTLE_BANKS_COUNT]; @@ -633,12 +632,12 @@ static void RecordLastUsedMoveByTarget(void) for (i = 0; i < 4; i++) { - if (gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] == gLastUsedMovesByBanks[gBankTarget]) + if (gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] == gLastMoves[gBankTarget]) break; - if (gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] != gLastUsedMovesByBanks[gBankTarget] // HACK: This redundant condition is a hack to make the asm match. + if (gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] != gLastMoves[gBankTarget] // HACK: This redundant condition is a hack to make the asm match. && gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] == 0) { - gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] = gLastUsedMovesByBanks[gBankTarget]; + gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] = gLastMoves[gBankTarget]; break; } } @@ -1252,9 +1251,9 @@ static void BattleAICmd_is_most_powerful_move(void) static void BattleAICmd_get_last_used_bank_move(void) { if (gAIScriptPtr[1] == AI_USER) - AI_THINKING_STRUCT->funcResult = gLastUsedMovesByBanks[sBank_AI]; + AI_THINKING_STRUCT->funcResult = gLastMoves[sBank_AI]; else - AI_THINKING_STRUCT->funcResult = gLastUsedMovesByBanks[gBankTarget]; + AI_THINKING_STRUCT->funcResult = gLastMoves[gBankTarget]; gAIScriptPtr += 2; } diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c index 75d144c3d..b3fccb17f 100644 --- a/src/battle_ai_switch_items.c +++ b/src/battle_ai_switch_items.c @@ -1,13 +1,13 @@ #include "global.h" #include "battle.h" #include "battle_controllers.h" -#include "abilities.h" -#include "moves.h" +#include "constants/abilities.h" +#include "constants/moves.h" #include "pokemon.h" -#include "species.h" -#include "rng.h" +#include "constants/species.h" +#include "random.h" #include "util.h" -#include "items.h" +#include "constants/items.h" #include "pokemon_item_effects.h" extern u8 gActiveBank; @@ -16,8 +16,8 @@ extern u32 gBattleTypeFlags; extern u32 gStatuses3[BATTLE_BANKS_COUNT]; extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; -extern u16 gUnknown_02024250[BATTLE_BANKS_COUNT]; -extern u8 gUnknown_02024270[BATTLE_BANKS_COUNT]; +extern u16 gLastLandedMoves[BATTLE_BANKS_COUNT]; +extern u8 gLastHitBy[BATTLE_BANKS_COUNT]; extern u16 gDynamicBasePower; extern u8 gBattleMoveFlags; extern u8 gCritMultiplier; @@ -141,11 +141,11 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void) if (HasSuperEffectiveMoveAgainstOpponents(TRUE) && Random() % 3 != 0) return FALSE; - if (gUnknown_02024250[gActiveBank] == 0) + if (gLastLandedMoves[gActiveBank] == 0) return FALSE; - if (gUnknown_02024250[gActiveBank] == 0xFFFF) + if (gLastLandedMoves[gActiveBank] == 0xFFFF) return FALSE; - if (gBattleMoves[gUnknown_02024250[gActiveBank]].power == 0) + if (gBattleMoves[gLastLandedMoves[gActiveBank]].power == 0) return FALSE; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) @@ -162,11 +162,11 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void) bankIn2 = gActiveBank; } - if (gBattleMoves[gUnknown_02024250[gActiveBank]].type == TYPE_FIRE) + if (gBattleMoves[gLastLandedMoves[gActiveBank]].type == TYPE_FIRE) absorbingTypeAbility = ABILITY_FLASH_FIRE; - else if (gBattleMoves[gUnknown_02024250[gActiveBank]].type == TYPE_WATER) + else if (gBattleMoves[gLastLandedMoves[gActiveBank]].type == TYPE_WATER) absorbingTypeAbility = ABILITY_WATER_ABSORB; - else if (gBattleMoves[gUnknown_02024250[gActiveBank]].type == TYPE_ELECTRIC) + else if (gBattleMoves[gLastLandedMoves[gActiveBank]].type == TYPE_ELECTRIC) absorbingTypeAbility = ABILITY_VOLT_ABSORB; else return FALSE; @@ -238,13 +238,13 @@ static bool8 ShouldSwitchIfNaturalCure(void) if (gBattleMons[gActiveBank].hp < gBattleMons[gActiveBank].maxHP / 2) return FALSE; - if ((gUnknown_02024250[gActiveBank] == 0 || gUnknown_02024250[gActiveBank] == 0xFFFF) && Random() & 1) + if ((gLastLandedMoves[gActiveBank] == 0 || gLastLandedMoves[gActiveBank] == 0xFFFF) && Random() & 1) { *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = 6; EmitTwoReturnValues(1, ACTION_SWITCH, 0); return TRUE; } - else if (gBattleMoves[gUnknown_02024250[gActiveBank]].power == 0 && Random() & 1) + else if (gBattleMoves[gLastLandedMoves[gActiveBank]].power == 0 && Random() & 1) { *(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = 6; EmitTwoReturnValues(1, ACTION_SWITCH, 0); @@ -345,13 +345,13 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent) u16 move; u8 moveFlags; - if (gUnknown_02024250[gActiveBank] == 0) + if (gLastLandedMoves[gActiveBank] == 0) return FALSE; - if (gUnknown_02024250[gActiveBank] == 0xFFFF) + if (gLastLandedMoves[gActiveBank] == 0xFFFF) return FALSE; - if (gUnknown_02024270[gActiveBank] == 0xFF) + if (gLastHitBy[gActiveBank] == 0xFF) return FALSE; - if (gBattleMoves[gUnknown_02024250[gActiveBank]].power == 0) + if (gBattleMoves[gLastLandedMoves[gActiveBank]].power == 0) return FALSE; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) @@ -411,10 +411,10 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent) else monAbility = gBaseStats[species].ability1; - moveFlags = AI_TypeCalc(gUnknown_02024250[gActiveBank], species, monAbility); + moveFlags = AI_TypeCalc(gLastLandedMoves[gActiveBank], species, monAbility); if (moveFlags & flags) { - bankIn1 = gUnknown_02024270[gActiveBank]; + bankIn1 = gLastHitBy[gActiveBank]; for (j = 0; j < 4; j++) { diff --git a/src/battle_anim.c b/src/battle_anim.c index fa3ac73be..2eec0bed5 100644 --- a/src/battle_anim.c +++ b/src/battle_anim.c @@ -423,7 +423,7 @@ static void ScriptCmd_createsprite(void) if (subpriority < 3) subpriority = 3; - CreateSpriteAndAnimate(template, sub_80A5C6C(gAnimBankTarget, 2), sub_80A5C6C(gAnimBankTarget, 3), subpriority); + CreateSpriteAndAnimate(template, GetBankPosition(gAnimBankTarget, 2), GetBankPosition(gAnimBankTarget, 3), subpriority); gAnimVisualTaskCount++; } diff --git a/src/battle_controller_link_opponent.c b/src/battle_controller_link_opponent.c index 423d34d45..dd8582618 100644 --- a/src/battle_controller_link_opponent.c +++ b/src/battle_controller_link_opponent.c @@ -10,7 +10,7 @@ #include "link.h" #include "util.h" #include "main.h" -#include "songs.h" +#include "constants/songs.h" #include "sound.h" #include "window.h" #include "m4a.h" @@ -82,7 +82,7 @@ static void LinkOpponentHandleBallThrowAnim(void); static void LinkOpponentHandlePause(void); static void LinkOpponentHandleMoveAnimation(void); static void LinkOpponentHandlePrintString(void); -static void LinkOpponentHandlePrintStringPlayerOnly(void); +static void LinkOpponentHandlePrintSelectionString(void); static void LinkOpponentHandleChooseAction(void); static void LinkOpponentHandleUnknownYesNoBox(void); static void LinkOpponentHandleChooseMove(void); @@ -108,7 +108,7 @@ static void LinkOpponentHandleCmd39(void); static void LinkOpponentHandleCmd40(void); static void LinkOpponentHandleHitAnimation(void); static void LinkOpponentHandleCmd42(void); -static void LinkOpponentHandleEffectivenessSound(void); +static void LinkOpponentHandlePlaySE(void); static void LinkOpponentHandlePlayFanfareOrBGM(void); static void LinkOpponentHandleFaintingCry(void); static void LinkOpponentHandleIntroSlide(void); @@ -154,7 +154,7 @@ static void (*const sLinkOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) = LinkOpponentHandlePause, LinkOpponentHandleMoveAnimation, LinkOpponentHandlePrintString, - LinkOpponentHandlePrintStringPlayerOnly, + LinkOpponentHandlePrintSelectionString, LinkOpponentHandleChooseAction, LinkOpponentHandleUnknownYesNoBox, LinkOpponentHandleChooseMove, @@ -180,7 +180,7 @@ static void (*const sLinkOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) = LinkOpponentHandleCmd40, LinkOpponentHandleHitAnimation, LinkOpponentHandleCmd42, - LinkOpponentHandleEffectivenessSound, + LinkOpponentHandlePlaySE, LinkOpponentHandlePlayFanfareOrBGM, LinkOpponentHandleFaintingCry, LinkOpponentHandleIntroSlide, @@ -310,14 +310,14 @@ static void sub_8064734(void) { bool32 r10 = FALSE; - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8 + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1) { sub_8172EF0(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]); } if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI) - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x8 + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1) { @@ -325,7 +325,7 @@ static void sub_8064734(void) } - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x8) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80) { @@ -465,18 +465,18 @@ static void DoHitAnimBlinkSpriteEffect(void) { u8 spriteId = gBankSpriteIds[gActiveBank]; - if (gSprites[spriteId].data1 == 32) + if (gSprites[spriteId].data[1] == 32) { - gSprites[spriteId].data1 = 0; + gSprites[spriteId].data[1] = 0; gSprites[spriteId].invisible = 0; gDoingBattleAnim = FALSE; LinkOpponentBufferExecCompleted(); } else { - if ((gSprites[spriteId].data1 % 4) == 0) + if ((gSprites[spriteId].data[1] % 4) == 0) gSprites[spriteId].invisible ^= 1; - gSprites[spriteId].data1++; + gSprites[spriteId].data[1]++; } } @@ -527,14 +527,14 @@ static void sub_8064E50(void) static void sub_8064F40(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8 + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80) { sub_8172EF0(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]); } if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) { DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]); SetBankEnemyShadowSpriteCallback(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES)); @@ -1163,12 +1163,12 @@ static void LinkOpponentHandleLoadMonSprite(void) sub_806A068(species, GetBankIdentity(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, - sub_80A5C6C(gActiveBank, 2), + GetBankPosition(gActiveBank, 2), GetBankSpriteDefault_Y(gActiveBank), sub_80A82E4(gActiveBank)); gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBank]].data0 = gActiveBank; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = gActiveBank; gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], gBattleMonForms[gActiveBank]); @@ -1197,15 +1197,15 @@ static void sub_8066494(u8 bank, bool8 dontClearSubstituteBit) gBankSpriteIds[bank] = CreateSprite( &gUnknown_0202499C, - sub_80A5C6C(bank, 2), + GetBankPosition(bank, 2), GetBankSpriteDefault_Y(bank), sub_80A82E4(bank)); - gSprites[gUnknown_03005D7C[bank]].data1 = gBankSpriteIds[bank]; - gSprites[gUnknown_03005D7C[bank]].data2 = bank; + gSprites[gUnknown_03005D7C[bank]].data[1] = gBankSpriteIds[bank]; + gSprites[gUnknown_03005D7C[bank]].data[2] = bank; - gSprites[gBankSpriteIds[bank]].data0 = bank; - gSprites[gBankSpriteIds[bank]].data2 = species; + gSprites[gBankSpriteIds[bank]].data[0] = bank; + gSprites[gBankSpriteIds[bank]].data[2] = species; gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); @@ -1213,7 +1213,7 @@ static void sub_8066494(u8 bank, bool8 dontClearSubstituteBit) gSprites[gBankSpriteIds[bank]].invisible = TRUE; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gUnknown_03005D7C[bank]].data0 = sub_80753E8(0, 0xFE); + gSprites[gUnknown_03005D7C[bank]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_OPPONENT_SENDOUT); } static void LinkOpponentHandleReturnMonToBall(void) @@ -1334,7 +1334,7 @@ static void LinkOpponentHandleDrawTrainerPic(void) sub_80A82E4(gActiveBank)); gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBank]].data0 = 2; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = 2; gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); gSprites[gBankSpriteIds[gActiveBank]].oam.affineParam = trainerPicId; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; @@ -1357,7 +1357,7 @@ static void LinkOpponentHandleTrainerSlide(void) gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 96; gSprites[gBankSpriteIds[gActiveBank]].pos1.x += 32; - gSprites[gBankSpriteIds[gActiveBank]].data0 = -2; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2; gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); gSprites[gBankSpriteIds[gActiveBank]].oam.affineParam = trainerPicId; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; @@ -1369,9 +1369,9 @@ static void LinkOpponentHandleTrainerSlide(void) static void LinkOpponentHandleTrainerSlideBack(void) { oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); - gSprites[gBankSpriteIds[gActiveBank]].data0 = 35; - gSprites[gBankSpriteIds[gActiveBank]].data2 = 280; - gSprites[gBankSpriteIds[gActiveBank]].data4 = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35; + gSprites[gBankSpriteIds[gActiveBank]].data[2] = 280; + gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC; StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy); gBattleBankFunc[gActiveBank] = sub_8064470; @@ -1505,7 +1505,7 @@ static void LinkOpponentHandlePrintString(void) sub_817C95C(*stringId); } -static void LinkOpponentHandlePrintStringPlayerOnly(void) +static void LinkOpponentHandlePrintSelectionString(void) { LinkOpponentBufferExecCompleted(); } @@ -1670,7 +1670,7 @@ static void LinkOpponentHandleHitAnimation(void) else { gDoingBattleAnim = TRUE; - gSprites[gBankSpriteIds[gActiveBank]].data1 = 0; + gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0; DoHitAnimHealthboxEffect(gActiveBank); gBattleBankFunc[gActiveBank] = DoHitAnimBlinkSpriteEffect; } @@ -1681,7 +1681,7 @@ static void LinkOpponentHandleCmd42(void) LinkOpponentBufferExecCompleted(); } -static void LinkOpponentHandleEffectivenessSound(void) +static void LinkOpponentHandlePlaySE(void) { s8 pan; @@ -1731,9 +1731,9 @@ static void LinkOpponentHandleIntroTrainerBallThrow(void) oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); - gSprites[gBankSpriteIds[gActiveBank]].data0 = 35; - gSprites[gBankSpriteIds[gActiveBank]].data2 = 280; - gSprites[gBankSpriteIds[gActiveBank]].data4 = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35; + gSprites[gBankSpriteIds[gActiveBank]].data[2] = 280; + gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC; StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], sub_80676FC); diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index e3bee98d9..9da468761 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -10,7 +10,7 @@ #include "link.h" #include "util.h" #include "main.h" -#include "songs.h" +#include "constants/songs.h" #include "sound.h" #include "window.h" #include "m4a.h" @@ -78,7 +78,7 @@ static void LinkPartnerHandleBallThrowAnim(void); static void LinkPartnerHandlePause(void); static void LinkPartnerHandleMoveAnimation(void); static void LinkPartnerHandlePrintString(void); -static void LinkPartnerHandlePrintStringPlayerOnly(void); +static void LinkPartnerHandlePrintSelectionString(void); static void LinkPartnerHandleChooseAction(void); static void LinkPartnerHandleUnknownYesNoBox(void); static void LinkPartnerHandleChooseMove(void); @@ -104,7 +104,7 @@ static void LinkPartnerHandleCmd39(void); static void LinkPartnerHandleCmd40(void); static void LinkPartnerHandleHitAnimation(void); static void LinkPartnerHandleCmd42(void); -static void LinkPartnerHandleEffectivenessSound(void); +static void LinkPartnerHandlePlaySE(void); static void LinkPartnerHandlePlayFanfareOrBGM(void); static void LinkPartnerHandleFaintingCry(void); static void LinkPartnerHandleIntroSlide(void); @@ -149,7 +149,7 @@ static void (*const sLinkPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = LinkPartnerHandlePause, LinkPartnerHandleMoveAnimation, LinkPartnerHandlePrintString, - LinkPartnerHandlePrintStringPlayerOnly, + LinkPartnerHandlePrintSelectionString, LinkPartnerHandleChooseAction, LinkPartnerHandleUnknownYesNoBox, LinkPartnerHandleChooseMove, @@ -175,7 +175,7 @@ static void (*const sLinkPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = LinkPartnerHandleCmd40, LinkPartnerHandleHitAnimation, LinkPartnerHandleCmd42, - LinkPartnerHandleEffectivenessSound, + LinkPartnerHandlePlaySE, LinkPartnerHandlePlayFanfareOrBGM, LinkPartnerHandleFaintingCry, LinkPartnerHandleIntroSlide, @@ -267,8 +267,8 @@ static void sub_814B004(void) static void sub_814B0E8(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x8 + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive && gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy && ++gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 != 1) @@ -352,18 +352,18 @@ static void DoHitAnimBlinkSpriteEffect(void) { u8 spriteId = gBankSpriteIds[gActiveBank]; - if (gSprites[spriteId].data1 == 32) + if (gSprites[spriteId].data[1] == 32) { - gSprites[spriteId].data1 = 0; + gSprites[spriteId].data[1] = 0; gSprites[spriteId].invisible = 0; gDoingBattleAnim = FALSE; LinkPartnerBufferExecCompleted(); } else { - if ((gSprites[spriteId].data1 % 4) == 0) + if ((gSprites[spriteId].data[1] % 4) == 0) gSprites[spriteId].invisible ^= 1; - gSprites[spriteId].data1++; + gSprites[spriteId].data[1]++; } } @@ -412,13 +412,13 @@ static void sub_814B5A8(void) static void sub_814B69C(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) { sub_8172EF0(gActiveBank, &gPlayerParty[gBattlePartyID[gActiveBank]]); } if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) { DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]); gBattleBankFunc[gActiveBank] = sub_814B5A8; @@ -1049,11 +1049,11 @@ static void LinkPartnerHandleLoadMonSprite(void) sub_806A068(species, GetBankIdentity(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, - sub_80A5C6C(gActiveBank, 2), + GetBankPosition(gActiveBank, 2), GetBankSpriteDefault_Y(gActiveBank), sub_80A82E4(gActiveBank)); gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBank]].data0 = gActiveBank; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = gActiveBank; gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], gBattleMonForms[gActiveBank]); gBattleBankFunc[gActiveBank] = sub_814B290; @@ -1080,15 +1080,15 @@ static void sub_814CC98(u8 bank, bool8 dontClearSubstituteBit) gBankSpriteIds[bank] = CreateSprite( &gUnknown_0202499C, - sub_80A5C6C(bank, 2), + GetBankPosition(bank, 2), GetBankSpriteDefault_Y(bank), sub_80A82E4(bank)); - gSprites[gUnknown_03005D7C[bank]].data1 = gBankSpriteIds[bank]; - gSprites[gUnknown_03005D7C[bank]].data2 = bank; + gSprites[gUnknown_03005D7C[bank]].data[1] = gBankSpriteIds[bank]; + gSprites[gUnknown_03005D7C[bank]].data[2] = bank; - gSprites[gBankSpriteIds[bank]].data0 = bank; - gSprites[gBankSpriteIds[bank]].data2 = species; + gSprites[gBankSpriteIds[bank]].data[0] = bank; + gSprites[gBankSpriteIds[bank]].data[2] = species; gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); @@ -1096,7 +1096,7 @@ static void sub_814CC98(u8 bank, bool8 dontClearSubstituteBit) gSprites[gBankSpriteIds[bank]].invisible = TRUE; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gUnknown_03005D7C[bank]].data0 = sub_80753E8(0, 0xFF); + gSprites[gUnknown_03005D7C[bank]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT); } static void LinkPartnerHandleReturnMonToBall(void) @@ -1174,7 +1174,7 @@ static void LinkPartnerHandleDrawTrainerPic(void) gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBank]].data0 = -2; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; gBattleBankFunc[gActiveBank] = CompleteOnBankSpriteCallbackDummy; @@ -1188,9 +1188,9 @@ static void LinkPartnerHandleTrainerSlide(void) static void LinkPartnerHandleTrainerSlideBack(void) { oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); - gSprites[gBankSpriteIds[gActiveBank]].data0 = 35; - gSprites[gBankSpriteIds[gActiveBank]].data2 = -40; - gSprites[gBankSpriteIds[gActiveBank]].data4 = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35; + gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40; + gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC; StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy); gBattleBankFunc[gActiveBank] = sub_814AF54; @@ -1211,8 +1211,8 @@ static void LinkPartnerHandleFaintAnimation(void) gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); PlaySE12WithPanning(SE_POKE_DEAD, PAN_SIDE_PLAYER); - gSprites[gBankSpriteIds[gActiveBank]].data1 = 0; - gSprites[gBankSpriteIds[gActiveBank]].data2 = 5; + gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0; + gSprites[gBankSpriteIds[gActiveBank]].data[2] = 5; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8039C00; gBattleBankFunc[gActiveBank] = sub_814B340; } @@ -1327,7 +1327,7 @@ static void LinkPartnerHandlePrintString(void) sub_817C95C(*stringId); } -static void LinkPartnerHandlePrintStringPlayerOnly(void) +static void LinkPartnerHandlePrintSelectionString(void) { LinkPartnerBufferExecCompleted(); } @@ -1492,7 +1492,7 @@ static void LinkPartnerHandleHitAnimation(void) else { gDoingBattleAnim = TRUE; - gSprites[gBankSpriteIds[gActiveBank]].data1 = 0; + gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0; DoHitAnimHealthboxEffect(gActiveBank); gBattleBankFunc[gActiveBank] = DoHitAnimBlinkSpriteEffect; } @@ -1503,7 +1503,7 @@ static void LinkPartnerHandleCmd42(void) LinkPartnerBufferExecCompleted(); } -static void LinkPartnerHandleEffectivenessSound(void) +static void LinkPartnerHandlePlaySE(void) { s8 pan; @@ -1554,11 +1554,11 @@ static void LinkPartnerHandleIntroTrainerBallThrow(void) oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); - gSprites[gBankSpriteIds[gActiveBank]].data0 = 50; - gSprites[gBankSpriteIds[gActiveBank]].data2 = -40; - gSprites[gBankSpriteIds[gActiveBank]].data4 = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = 50; + gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40; + gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC; - gSprites[gBankSpriteIds[gActiveBank]].data5 = gActiveBank; + gSprites[gBankSpriteIds[gActiveBank]].data[5] = gActiveBank; StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], sub_805CC00); StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 1); diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 0aac4cbe4..0862e72a7 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -11,10 +11,10 @@ #include "util.h" #include "main.h" #include "item.h" -#include "items.h" -#include "songs.h" +#include "constants/items.h" +#include "constants/songs.h" #include "sound.h" -#include "moves.h" +#include "constants/moves.h" #include "window.h" #include "m4a.h" #include "palette.h" @@ -23,7 +23,7 @@ #include "string_util.h" #include "bg.h" #include "reshow_battle_screen.h" -#include "rng.h" +#include "random.h" #include "pokeball.h" #include "data2.h" @@ -83,7 +83,7 @@ static void OpponentHandleBallThrow(void); static void OpponentHandlePause(void); static void OpponentHandleMoveAnimation(void); static void OpponentHandlePrintString(void); -static void OpponentHandlePrintStringPlayerOnly(void); +static void OpponentHandlePrintSelectionString(void); static void OpponentHandleChooseAction(void); static void OpponentHandleUnknownYesNoBox(void); static void OpponentHandleChooseMove(void); @@ -109,7 +109,7 @@ static void OpponentHandleCmd39(void); static void OpponentHandleCmd40(void); static void OpponentHandleHitAnimation(void); static void OpponentHandleCmd42(void); -static void OpponentHandleEffectivenessSound(void); +static void OpponentHandlePlaySE(void); static void OpponentHandlePlayFanfareOrBGM(void); static void OpponentHandleFaintingCry(void); static void OpponentHandleIntroSlide(void); @@ -155,7 +155,7 @@ static void (*const sOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) = OpponentHandlePause, OpponentHandleMoveAnimation, OpponentHandlePrintString, - OpponentHandlePrintStringPlayerOnly, + OpponentHandlePrintSelectionString, OpponentHandleChooseAction, OpponentHandleUnknownYesNoBox, OpponentHandleChooseMove, @@ -181,7 +181,7 @@ static void (*const sOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) = OpponentHandleCmd40, OpponentHandleHitAnimation, OpponentHandleCmd42, - OpponentHandleEffectivenessSound, + OpponentHandlePlaySE, OpponentHandlePlayFanfareOrBGM, OpponentHandleFaintingCry, OpponentHandleIntroSlide, @@ -318,11 +318,11 @@ static void sub_805F560(void) bool32 sp = FALSE; bool32 r10 = FALSE; - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x1) sub_8172EF0(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]); - if (!(gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) && !(gBattleTypeFlags & BATTLE_TYPE_MULTI) && IsDoubleBattle() && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x8 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1) + if (!(gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) && !(gBattleTypeFlags & BATTLE_TYPE_MULTI) && IsDoubleBattle() && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].field_1_x1) sub_8172EF0(gActiveBank ^ BIT_MON, &gEnemyParty[gBattlePartyID[gActiveBank ^ BIT_MON]]); - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x8) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80) { @@ -453,18 +453,18 @@ static void DoHitAnimBlinkSpriteEffect(void) { u8 spriteId = gBankSpriteIds[gActiveBank]; - if (gSprites[spriteId].data1 == 32) + if (gSprites[spriteId].data[1] == 32) { - gSprites[spriteId].data1 = 0; + gSprites[spriteId].data[1] = 0; gSprites[spriteId].invisible = 0; gDoingBattleAnim = FALSE; OpponentBufferExecCompleted(); } else { - if ((gSprites[spriteId].data1 % 4) == 0) + if ((gSprites[spriteId].data[1] % 4) == 0) gSprites[spriteId].invisible ^= 1; - gSprites[spriteId].data1++; + gSprites[spriteId].data[1]++; } } @@ -509,11 +509,11 @@ static void sub_805FD00(void) static void sub_805FDF0(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) sub_8172EF0(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]); if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) { DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]); SetBankEnemyShadowSpriteCallback(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES)); @@ -1151,13 +1151,13 @@ static void OpponentHandleLoadMonSprite(void) sub_806A068(species, GetBankIdentity(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, - sub_80A5C6C(gActiveBank, 2), + GetBankPosition(gActiveBank, 2), GetBankSpriteDefault_Y(gActiveBank), sub_80A82E4(gActiveBank)); gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBank]].data0 = gActiveBank; - gSprites[gBankSpriteIds[gActiveBank]].data2 = species; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = gActiveBank; + gSprites[gBankSpriteIds[gActiveBank]].data[2] = species; gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], gBattleMonForms[gActiveBank]); @@ -1186,15 +1186,15 @@ static void sub_80613DC(u8 bank, bool8 dontClearSubstituteBit) sub_806A068(species, GetBankIdentity(bank)); gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, - sub_80A5C6C(bank, 2), + GetBankPosition(bank, 2), GetBankSpriteDefault_Y(bank), sub_80A82E4(bank)); - gSprites[gBankSpriteIds[bank]].data0 = bank; - gSprites[gBankSpriteIds[bank]].data2 = species; + gSprites[gBankSpriteIds[bank]].data[0] = bank; + gSprites[gBankSpriteIds[bank]].data[2] = species; - gSprites[gUnknown_03005D7C[bank]].data1 = gBankSpriteIds[bank]; - gSprites[gUnknown_03005D7C[bank]].data2 = bank; + gSprites[gUnknown_03005D7C[bank]].data[1] = gBankSpriteIds[bank]; + gSprites[gUnknown_03005D7C[bank]].data[2] = bank; gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; @@ -1203,7 +1203,7 @@ static void sub_80613DC(u8 bank, bool8 dontClearSubstituteBit) gSprites[gBankSpriteIds[bank]].invisible = TRUE; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gUnknown_03005D7C[bank]].data0 = sub_80753E8(0, 0xFE); + gSprites[gUnknown_03005D7C[bank]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_OPPONENT_SENDOUT); } static void OpponentHandleReturnMonToBall(void) @@ -1321,7 +1321,7 @@ static void OpponentHandleDrawTrainerPic(void) sub_80A82E4(gActiveBank)); gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBank]].data0 = 2; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = 2; gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); gSprites[gBankSpriteIds[gActiveBank]].oam.affineParam = trainerPicId; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; @@ -1391,7 +1391,7 @@ static void OpponentHandleTrainerSlide(void) gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 96; gSprites[gBankSpriteIds[gActiveBank]].pos1.x += 32; - gSprites[gBankSpriteIds[gActiveBank]].data0 = -2; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2; gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); gSprites[gBankSpriteIds[gActiveBank]].oam.affineParam = trainerPicId; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; @@ -1402,9 +1402,9 @@ static void OpponentHandleTrainerSlide(void) static void OpponentHandleTrainerSlideBack(void) { oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); - gSprites[gBankSpriteIds[gActiveBank]].data0 = 35; - gSprites[gBankSpriteIds[gActiveBank]].data2 = 280; - gSprites[gBankSpriteIds[gActiveBank]].data4 = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35; + gSprites[gBankSpriteIds[gActiveBank]].data[2] = 280; + gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC; StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy); gBattleBankFunc[gActiveBank] = sub_805F240; @@ -1537,7 +1537,7 @@ static void OpponentHandlePrintString(void) sub_81A57E4(gActiveBank, *stringId); } -static void OpponentHandlePrintStringPlayerOnly(void) +static void OpponentHandlePrintSelectionString(void) { OpponentBufferExecCompleted(); } @@ -1815,7 +1815,7 @@ static void OpponentHandleHitAnimation(void) else { gDoingBattleAnim = TRUE; - gSprites[gBankSpriteIds[gActiveBank]].data1 = 0; + gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0; DoHitAnimHealthboxEffect(gActiveBank); gBattleBankFunc[gActiveBank] = DoHitAnimBlinkSpriteEffect; } @@ -1826,7 +1826,7 @@ static void OpponentHandleCmd42(void) OpponentBufferExecCompleted(); } -static void OpponentHandleEffectivenessSound(void) +static void OpponentHandlePlaySE(void) { s8 pan; @@ -1876,9 +1876,9 @@ static void OpponentHandleIntroTrainerBallThrow(void) oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); - gSprites[gBankSpriteIds[gActiveBank]].data0 = 35; - gSprites[gBankSpriteIds[gActiveBank]].data2 = 280; - gSprites[gBankSpriteIds[gActiveBank]].data4 = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35; + gSprites[gBankSpriteIds[gActiveBank]].data[2] = 280; + gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC; StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], sub_806280C); diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 16c62c53b..e497dbfe2 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -10,10 +10,10 @@ #include "util.h" #include "main.h" #include "item.h" -#include "items.h" -#include "songs.h" +#include "constants/items.h" +#include "constants/songs.h" #include "sound.h" -#include "moves.h" +#include "constants/moves.h" #include "window.h" #include "m4a.h" #include "palette.h" @@ -22,7 +22,7 @@ #include "string_util.h" #include "bg.h" #include "reshow_battle_screen.h" -#include "rng.h" +#include "random.h" #include "pokeball.h" #include "data2.h" @@ -102,7 +102,7 @@ static void PlayerHandleBallThrowAnim(void); static void PlayerHandlePause(void); static void PlayerHandleMoveAnimation(void); static void PlayerHandlePrintString(void); -static void PlayerHandlePrintStringPlayerOnly(void); +static void PlayerHandlePrintSelectionString(void); static void PlayerHandleChooseAction(void); static void PlayerHandleUnknownYesNoBox(void); static void PlayerHandleChooseMove(void); @@ -128,7 +128,7 @@ static void PlayerHandleCmd39(void); static void PlayerHandleCmd40(void); static void PlayerHandleHitAnimation(void); static void PlayerHandleCmd42(void); -static void PlayerHandleEffectivenessSound(void); +static void PlayerHandlePlaySE(void); static void PlayerHandlePlayFanfareOrBGM(void); static void PlayerHandleFaintingCry(void); static void PlayerHandleIntroSlide(void); @@ -189,7 +189,7 @@ static void (*const sPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = PlayerHandlePause, PlayerHandleMoveAnimation, PlayerHandlePrintString, - PlayerHandlePrintStringPlayerOnly, + PlayerHandlePrintSelectionString, PlayerHandleChooseAction, PlayerHandleUnknownYesNoBox, PlayerHandleChooseMove, @@ -215,7 +215,7 @@ static void (*const sPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = PlayerHandleCmd40, PlayerHandleHitAnimation, PlayerHandleCmd42, - PlayerHandleEffectivenessSound, + PlayerHandlePlaySE, PlayerHandlePlayFanfareOrBGM, PlayerHandleFaintingCry, PlayerHandleIntroSlide, @@ -1023,12 +1023,12 @@ static void sub_8058B40(void) bool32 r9 = FALSE; bool32 r8 = FALSE; - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) sub_8172EF0(gActiveBank, &gPlayerParty[gBattlePartyID[gActiveBank]]); - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x8) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive) sub_8172EF0(gActiveBank ^ BIT_MON, &gPlayerParty[gBattlePartyID[gActiveBank ^ BIT_MON]]); - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x8) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80) { @@ -1127,13 +1127,13 @@ static void sub_8058FC0(void) static void sub_805902C(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) { sub_8172EF0(gActiveBank, &gPlayerParty[gBattlePartyID[gActiveBank]]); } if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) { DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]); UpdateHealthboxAttribute(gHealthBoxesIds[gActiveBank], &gPlayerParty[gBattlePartyID[gActiveBank]], HEALTHBOX_ALL); @@ -1431,18 +1431,18 @@ static void DoHitAnimBlinkSpriteEffect(void) { u8 spriteId = gBankSpriteIds[gActiveBank]; - if (gSprites[spriteId].data1 == 32) + if (gSprites[spriteId].data[1] == 32) { - gSprites[spriteId].data1 = 0; + gSprites[spriteId].data[1] = 0; gSprites[spriteId].invisible = 0; gDoingBattleAnim = FALSE; PlayerBufferExecCompleted(); } else { - if ((gSprites[spriteId].data1 % 4) == 0) + if ((gSprites[spriteId].data[1] % 4) == 0) gSprites[spriteId].invisible ^= 1; - gSprites[spriteId].data1++; + gSprites[spriteId].data[1]++; } } @@ -2237,15 +2237,15 @@ static void sub_805B258(u8 bank, bool8 dontClearSubstituteBit) gBankSpriteIds[bank] = CreateSprite( &gUnknown_0202499C, - sub_80A5C6C(bank, 2), + GetBankPosition(bank, 2), GetBankSpriteDefault_Y(bank), sub_80A82E4(bank)); - gSprites[gUnknown_03005D7C[bank]].data1 = gBankSpriteIds[bank]; - gSprites[gUnknown_03005D7C[bank]].data2 = bank; + gSprites[gUnknown_03005D7C[bank]].data[1] = gBankSpriteIds[bank]; + gSprites[gUnknown_03005D7C[bank]].data[2] = bank; - gSprites[gBankSpriteIds[bank]].data0 = bank; - gSprites[gBankSpriteIds[bank]].data2 = species; + gSprites[gBankSpriteIds[bank]].data[0] = bank; + gSprites[gBankSpriteIds[bank]].data[2] = species; gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); @@ -2253,7 +2253,7 @@ static void sub_805B258(u8 bank, bool8 dontClearSubstituteBit) gSprites[gBankSpriteIds[bank]].invisible = TRUE; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gUnknown_03005D7C[bank]].data0 = sub_80753E8(0, 0xFF); + gSprites[gUnknown_03005D7C[bank]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT); } static void PlayerHandleReturnMonToBall(void) @@ -2358,7 +2358,7 @@ static void PlayerHandleDrawTrainerPic(void) gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 240; gSprites[gBankSpriteIds[gActiveBank]].pos2.y = 48; - gSprites[gBankSpriteIds[gActiveBank]].data0 = -2; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; gSprites[gBankSpriteIds[gActiveBank]].oam.affineMode = 0; gSprites[gBankSpriteIds[gActiveBank]].hFlip = 1; @@ -2372,7 +2372,7 @@ static void PlayerHandleDrawTrainerPic(void) gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBank]].data0 = -2; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; } @@ -2411,7 +2411,7 @@ static void PlayerHandleTrainerSlide(void) gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -96; - gSprites[gBankSpriteIds[gActiveBank]].data0 = 2; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = 2; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; gBattleBankFunc[gActiveBank] = CompleteOnBankSpriteCallbackDummy2; @@ -2420,9 +2420,9 @@ static void PlayerHandleTrainerSlide(void) static void PlayerHandleTrainerSlideBack(void) { oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); - gSprites[gBankSpriteIds[gActiveBank]].data0 = 50; - gSprites[gBankSpriteIds[gActiveBank]].data2 = -40; - gSprites[gBankSpriteIds[gActiveBank]].data4 = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = 50; + gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40; + gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC; StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy); StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 1); @@ -2444,8 +2444,8 @@ static void PlayerHandleFaintAnimation(void) gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); PlaySE12WithPanning(SE_POKE_DEAD, PAN_SIDE_PLAYER); - gSprites[gBankSpriteIds[gActiveBank]].data1 = 0; - gSprites[gBankSpriteIds[gActiveBank]].data2 = 5; + gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0; + gSprites[gBankSpriteIds[gActiveBank]].data[2] = 5; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8039C00; gBattleBankFunc[gActiveBank] = sub_80596A8; } @@ -2576,7 +2576,7 @@ static void PlayerHandlePrintString(void) sub_81A57E4(gActiveBank, *stringId); } -static void PlayerHandlePrintStringPlayerOnly(void) +static void PlayerHandlePrintSelectionString(void) { if (GetBankSide(gActiveBank) == SIDE_PLAYER) PlayerHandlePrintString(); @@ -2902,7 +2902,7 @@ static void PlayerHandleHitAnimation(void) else { gDoingBattleAnim = TRUE; - gSprites[gBankSpriteIds[gActiveBank]].data1 = 0; + gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0; DoHitAnimHealthboxEffect(gActiveBank); gBattleBankFunc[gActiveBank] = DoHitAnimBlinkSpriteEffect; } @@ -2913,7 +2913,7 @@ static void PlayerHandleCmd42(void) PlayerBufferExecCompleted(); } -static void PlayerHandleEffectivenessSound(void) +static void PlayerHandlePlaySE(void) { s8 pan; @@ -2963,11 +2963,11 @@ static void PlayerHandleIntroTrainerBallThrow(void) oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); - gSprites[gBankSpriteIds[gActiveBank]].data0 = 50; - gSprites[gBankSpriteIds[gActiveBank]].data2 = -40; - gSprites[gBankSpriteIds[gActiveBank]].data4 = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = 50; + gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40; + gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC; - gSprites[gBankSpriteIds[gActiveBank]].data5 = gActiveBank; + gSprites[gBankSpriteIds[gActiveBank]].data[5] = gActiveBank; StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], sub_805CC00); StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 1); @@ -2988,7 +2988,7 @@ static void PlayerHandleIntroTrainerBallThrow(void) void sub_805CC00(struct Sprite *sprite) { - u8 bank = sprite->data5; + u8 bank = sprite->data[5]; FreeSpriteOamMatrix(sprite); FreeSpritePaletteByTag(GetSpritePaletteTagByPaletteNum(sprite->oam.paletteNum)); diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c index 0cd34442a..eb57297da 100644 --- a/src/battle_controller_player_partner.c +++ b/src/battle_controller_player_partner.c @@ -9,7 +9,7 @@ #include "link.h" #include "util.h" #include "main.h" -#include "songs.h" +#include "constants/songs.h" #include "sound.h" #include "window.h" #include "m4a.h" @@ -78,7 +78,7 @@ static void PlayerPartnerHandleBallThrowAnim(void); static void PlayerPartnerHandlePause(void); static void PlayerPartnerHandleMoveAnimation(void); static void PlayerPartnerHandlePrintString(void); -static void PlayerPartnerHandlePrintStringPlayerOnly(void); +static void PlayerPartnerHandlePrintSelectionString(void); static void PlayerPartnerHandleChooseAction(void); static void PlayerPartnerHandleUnknownYesNoBox(void); static void PlayerPartnerHandleChooseMove(void); @@ -104,7 +104,7 @@ static void PlayerPartnerHandleCmd39(void); static void PlayerPartnerHandleCmd40(void); static void PlayerPartnerHandleHitAnimation(void); static void PlayerPartnerHandleCmd42(void); -static void PlayerPartnerHandleEffectivenessSound(void); +static void PlayerPartnerHandlePlaySE(void); static void PlayerPartnerHandlePlayFanfareOrBGM(void); static void PlayerPartnerHandleFaintingCry(void); static void PlayerPartnerHandleIntroSlide(void); @@ -155,7 +155,7 @@ static void (*const sPlayerPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = PlayerPartnerHandlePause, PlayerPartnerHandleMoveAnimation, PlayerPartnerHandlePrintString, - PlayerPartnerHandlePrintStringPlayerOnly, + PlayerPartnerHandlePrintSelectionString, PlayerPartnerHandleChooseAction, PlayerPartnerHandleUnknownYesNoBox, PlayerPartnerHandleChooseMove, @@ -181,7 +181,7 @@ static void (*const sPlayerPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(void) = PlayerPartnerHandleCmd40, PlayerPartnerHandleHitAnimation, PlayerPartnerHandleCmd42, - PlayerPartnerHandleEffectivenessSound, + PlayerPartnerHandlePlaySE, PlayerPartnerHandlePlayFanfareOrBGM, PlayerPartnerHandleFaintingCry, PlayerPartnerHandleIntroSlide, @@ -282,8 +282,8 @@ static void sub_81BAF48(void) static void sub_81BB02C(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x8 + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive && gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy && ++gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_9 != 1) @@ -539,18 +539,18 @@ static void DoHitAnimBlinkSpriteEffect(void) { u8 spriteId = gBankSpriteIds[gActiveBank]; - if (gSprites[spriteId].data1 == 32) + if (gSprites[spriteId].data[1] == 32) { - gSprites[spriteId].data1 = 0; + gSprites[spriteId].data[1] = 0; gSprites[spriteId].invisible = 0; gDoingBattleAnim = FALSE; PlayerPartnerBufferExecCompleted(); } else { - if ((gSprites[spriteId].data1 % 4) == 0) + if ((gSprites[spriteId].data[1] % 4) == 0) gSprites[spriteId].invisible ^= 1; - gSprites[spriteId].data1++; + gSprites[spriteId].data[1]++; } } @@ -599,13 +599,13 @@ static void sub_81BB9F4(void) static void sub_81BBAE8(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) { sub_8172EF0(gActiveBank, &gPlayerParty[gBattlePartyID[gActiveBank]]); } if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) { DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]); gBattleBankFunc[gActiveBank] = sub_81BB9F4; @@ -1236,11 +1236,11 @@ static void PlayerPartnerHandleLoadMonSprite(void) sub_806A068(species, GetBankIdentity(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, - sub_80A5C6C(gActiveBank, 2), + GetBankPosition(gActiveBank, 2), GetBankSpriteDefault_Y(gActiveBank), sub_80A82E4(gActiveBank)); gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBank]].data0 = gActiveBank; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = gActiveBank; gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], gBattleMonForms[gActiveBank]); gBattleBankFunc[gActiveBank] = sub_81BB1D4; @@ -1267,15 +1267,15 @@ static void sub_81BD0E4(u8 bank, bool8 dontClearSubstituteBit) gBankSpriteIds[bank] = CreateSprite( &gUnknown_0202499C, - sub_80A5C6C(bank, 2), + GetBankPosition(bank, 2), GetBankSpriteDefault_Y(bank), sub_80A82E4(bank)); - gSprites[gUnknown_03005D7C[bank]].data1 = gBankSpriteIds[bank]; - gSprites[gUnknown_03005D7C[bank]].data2 = bank; + gSprites[gUnknown_03005D7C[bank]].data[1] = gBankSpriteIds[bank]; + gSprites[gUnknown_03005D7C[bank]].data[2] = bank; - gSprites[gBankSpriteIds[bank]].data0 = bank; - gSprites[gBankSpriteIds[bank]].data2 = species; + gSprites[gBankSpriteIds[bank]].data[0] = bank; + gSprites[gBankSpriteIds[bank]].data[2] = species; gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); @@ -1283,7 +1283,7 @@ static void sub_81BD0E4(u8 bank, bool8 dontClearSubstituteBit) gSprites[gBankSpriteIds[bank]].invisible = TRUE; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gUnknown_03005D7C[bank]].data0 = sub_80753E8(0, 0xFF); + gSprites[gUnknown_03005D7C[bank]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT); } static void PlayerPartnerHandleReturnMonToBall(void) @@ -1353,7 +1353,7 @@ static void PlayerPartnerHandleDrawTrainerPic(void) gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBank]].data0 = -2; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; } else // otherwise use front sprite @@ -1365,7 +1365,7 @@ static void PlayerPartnerHandleDrawTrainerPic(void) gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 240; gSprites[gBankSpriteIds[gActiveBank]].pos2.y = 48; - gSprites[gBankSpriteIds[gActiveBank]].data0 = -2; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; gSprites[gBankSpriteIds[gActiveBank]].oam.affineMode = 0; gSprites[gBankSpriteIds[gActiveBank]].hFlip = 1; @@ -1382,9 +1382,9 @@ static void PlayerPartnerHandleTrainerSlide(void) static void PlayerPartnerHandleTrainerSlideBack(void) { oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); - gSprites[gBankSpriteIds[gActiveBank]].data0 = 35; - gSprites[gBankSpriteIds[gActiveBank]].data2 = -40; - gSprites[gBankSpriteIds[gActiveBank]].data4 = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35; + gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40; + gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC; StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy); gBattleBankFunc[gActiveBank] = sub_81BAE98; @@ -1405,8 +1405,8 @@ static void PlayerPartnerHandleFaintAnimation(void) gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); PlaySE12WithPanning(SE_POKE_DEAD, PAN_SIDE_PLAYER); - gSprites[gBankSpriteIds[gActiveBank]].data1 = 0; - gSprites[gBankSpriteIds[gActiveBank]].data2 = 5; + gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0; + gSprites[gBankSpriteIds[gActiveBank]].data[2] = 5; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8039C00; gBattleBankFunc[gActiveBank] = sub_81BB78C; } @@ -1519,7 +1519,7 @@ static void PlayerPartnerHandlePrintString(void) gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter2; } -static void PlayerPartnerHandlePrintStringPlayerOnly(void) +static void PlayerPartnerHandlePrintSelectionString(void) { PlayerPartnerBufferExecCompleted(); } @@ -1745,7 +1745,7 @@ static void PlayerPartnerHandleHitAnimation(void) else { gDoingBattleAnim = TRUE; - gSprites[gBankSpriteIds[gActiveBank]].data1 = 0; + gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0; DoHitAnimHealthboxEffect(gActiveBank); gBattleBankFunc[gActiveBank] = DoHitAnimBlinkSpriteEffect; } @@ -1756,7 +1756,7 @@ static void PlayerPartnerHandleCmd42(void) PlayerPartnerBufferExecCompleted(); } -static void PlayerPartnerHandleEffectivenessSound(void) +static void PlayerPartnerHandlePlaySE(void) { s8 pan; @@ -1806,11 +1806,11 @@ static void PlayerPartnerHandleIntroTrainerBallThrow(void) oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); - gSprites[gBankSpriteIds[gActiveBank]].data0 = 50; - gSprites[gBankSpriteIds[gActiveBank]].data2 = -40; - gSprites[gBankSpriteIds[gActiveBank]].data4 = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = 50; + gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40; + gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC; - gSprites[gBankSpriteIds[gActiveBank]].data5 = gActiveBank; + gSprites[gBankSpriteIds[gActiveBank]].data[5] = gActiveBank; StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], sub_805CC00); StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 1); diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c index b55d644ac..8e2f31879 100644 --- a/src/battle_controller_recorded_opponent.c +++ b/src/battle_controller_recorded_opponent.c @@ -11,7 +11,7 @@ #include "link.h" #include "util.h" #include "main.h" -#include "songs.h" +#include "constants/songs.h" #include "sound.h" #include "window.h" #include "m4a.h" @@ -81,7 +81,7 @@ static void RecordedOpponentHandleBallThrowAnim(void); static void RecordedOpponentHandlePause(void); static void RecordedOpponentHandleMoveAnimation(void); static void RecordedOpponentHandlePrintString(void); -static void RecordedOpponentHandlePrintStringPlayerOnly(void); +static void RecordedOpponentHandlePrintSelectionString(void); static void RecordedOpponentHandleChooseAction(void); static void RecordedOpponentHandleUnknownYesNoBox(void); static void RecordedOpponentHandleChooseMove(void); @@ -107,7 +107,7 @@ static void RecordedOpponentHandleCmd39(void); static void RecordedOpponentHandleCmd40(void); static void RecordedOpponentHandleHitAnimation(void); static void RecordedOpponentHandleCmd42(void); -static void RecordedOpponentHandleEffectivenessSound(void); +static void RecordedOpponentHandlePlaySE(void); static void RecordedOpponentHandlePlayFanfareOrBGM(void); static void RecordedOpponentHandleFaintingCry(void); static void RecordedOpponentHandleIntroSlide(void); @@ -153,7 +153,7 @@ static void (*const sRecordedOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void RecordedOpponentHandlePause, RecordedOpponentHandleMoveAnimation, RecordedOpponentHandlePrintString, - RecordedOpponentHandlePrintStringPlayerOnly, + RecordedOpponentHandlePrintSelectionString, RecordedOpponentHandleChooseAction, RecordedOpponentHandleUnknownYesNoBox, RecordedOpponentHandleChooseMove, @@ -179,7 +179,7 @@ static void (*const sRecordedOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void RecordedOpponentHandleCmd40, RecordedOpponentHandleHitAnimation, RecordedOpponentHandleCmd42, - RecordedOpponentHandleEffectivenessSound, + RecordedOpponentHandlePlaySE, RecordedOpponentHandlePlayFanfareOrBGM, RecordedOpponentHandleFaintingCry, RecordedOpponentHandleIntroSlide, @@ -298,12 +298,12 @@ static void sub_818686C(void) bool32 r9 = FALSE; bool32 r8 = FALSE; - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) sub_8172EF0(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]); - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x8) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive) sub_8172EF0(gActiveBank ^ BIT_MON, &gEnemyParty[gBattlePartyID[gActiveBank ^ BIT_MON]]); - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x8) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80) { @@ -449,18 +449,18 @@ static void DoHitAnimBlinkSpriteEffect(void) { u8 spriteId = gBankSpriteIds[gActiveBank]; - if (gSprites[spriteId].data1 == 32) + if (gSprites[spriteId].data[1] == 32) { - gSprites[spriteId].data1 = 0; + gSprites[spriteId].data[1] = 0; gSprites[spriteId].invisible = 0; gDoingBattleAnim = FALSE; RecordedOpponentBufferExecCompleted(); } else { - if ((gSprites[spriteId].data1 % 4) == 0) + if ((gSprites[spriteId].data[1] % 4) == 0) gSprites[spriteId].invisible ^= 1; - gSprites[spriteId].data1++; + gSprites[spriteId].data[1]++; } } @@ -512,14 +512,14 @@ static void sub_8186F94(void) static void sub_8187084(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8 + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80) { sub_8172EF0(gActiveBank, &gEnemyParty[gBattlePartyID[gActiveBank]]); } if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) { DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]); SetBankEnemyShadowSpriteCallback(gActiveBank, GetMonData(&gEnemyParty[gBattlePartyID[gActiveBank]], MON_DATA_SPECIES)); @@ -1148,14 +1148,14 @@ static void RecordedOpponentHandleLoadMonSprite(void) sub_806A068(species, GetBankIdentity(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, - sub_80A5C6C(gActiveBank, 2), + GetBankPosition(gActiveBank, 2), GetBankSpriteDefault_Y(gActiveBank), sub_80A82E4(gActiveBank)); gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBank]].data0 = gActiveBank; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = gActiveBank; gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], gBattleMonForms[gActiveBank]); @@ -1183,15 +1183,15 @@ static void sub_81885D8(u8 bank, bool8 dontClearSubstituteBit) sub_806A068(species, GetBankIdentity(bank)); gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, - sub_80A5C6C(bank, 2), + GetBankPosition(bank, 2), GetBankSpriteDefault_Y(bank), sub_80A82E4(bank)); - gSprites[gUnknown_03005D7C[bank]].data1 = gBankSpriteIds[bank]; - gSprites[gUnknown_03005D7C[bank]].data2 = bank; + gSprites[gUnknown_03005D7C[bank]].data[1] = gBankSpriteIds[bank]; + gSprites[gUnknown_03005D7C[bank]].data[2] = bank; - gSprites[gBankSpriteIds[bank]].data0 = bank; - gSprites[gBankSpriteIds[bank]].data2 = species; + gSprites[gBankSpriteIds[bank]].data[0] = bank; + gSprites[gBankSpriteIds[bank]].data[2] = species; gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); @@ -1199,7 +1199,7 @@ static void sub_81885D8(u8 bank, bool8 dontClearSubstituteBit) gSprites[gBankSpriteIds[bank]].invisible = TRUE; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gUnknown_03005D7C[bank]].data0 = sub_80753E8(0, 0xFE); + gSprites[gUnknown_03005D7C[bank]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_OPPONENT_SENDOUT); } static void RecordedOpponentHandleReturnMonToBall(void) @@ -1285,7 +1285,7 @@ static void RecordedOpponentHandleDrawTrainerPic(void) sub_80A82E4(gActiveBank)); gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBank]].data0 = 2; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = 2; gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); gSprites[gBankSpriteIds[gActiveBank]].oam.affineParam = trainerPicId; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; @@ -1301,9 +1301,9 @@ static void RecordedOpponentHandleTrainerSlide(void) static void RecordedOpponentHandleTrainerSlideBack(void) { oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); - gSprites[gBankSpriteIds[gActiveBank]].data0 = 35; - gSprites[gBankSpriteIds[gActiveBank]].data2 = 280; - gSprites[gBankSpriteIds[gActiveBank]].data4 = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35; + gSprites[gBankSpriteIds[gActiveBank]].data[2] = 280; + gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC; StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy); gBattleBankFunc[gActiveBank] = sub_81865C8; @@ -1435,7 +1435,7 @@ static void RecordedOpponentHandlePrintString(void) gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter; } -static void RecordedOpponentHandlePrintStringPlayerOnly(void) +static void RecordedOpponentHandlePrintSelectionString(void) { RecordedOpponentBufferExecCompleted(); } @@ -1614,7 +1614,7 @@ static void RecordedOpponentHandleHitAnimation(void) else { gDoingBattleAnim = TRUE; - gSprites[gBankSpriteIds[gActiveBank]].data1 = 0; + gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0; DoHitAnimHealthboxEffect(gActiveBank); gBattleBankFunc[gActiveBank] = DoHitAnimBlinkSpriteEffect; } @@ -1625,7 +1625,7 @@ static void RecordedOpponentHandleCmd42(void) RecordedOpponentBufferExecCompleted(); } -static void RecordedOpponentHandleEffectivenessSound(void) +static void RecordedOpponentHandlePlaySE(void) { s8 pan; @@ -1675,9 +1675,9 @@ static void RecordedOpponentHandleIntroTrainerBallThrow(void) oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); - gSprites[gBankSpriteIds[gActiveBank]].data0 = 35; - gSprites[gBankSpriteIds[gActiveBank]].data2 = 280; - gSprites[gBankSpriteIds[gActiveBank]].data4 = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35; + gSprites[gBankSpriteIds[gActiveBank]].data[2] = 280; + gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC; StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], sub_818962C); diff --git a/src/battle_controller_recorded_player.c b/src/battle_controller_recorded_player.c index 78e7497a5..f558fde87 100644 --- a/src/battle_controller_recorded_player.c +++ b/src/battle_controller_recorded_player.c @@ -10,7 +10,7 @@ #include "link.h" #include "util.h" #include "main.h" -#include "songs.h" +#include "constants/songs.h" #include "sound.h" #include "window.h" #include "m4a.h" @@ -81,7 +81,7 @@ static void RecordedPlayerHandleBallThrowAnim(void); static void RecordedPlayerHandlePause(void); static void RecordedPlayerHandleMoveAnimation(void); static void RecordedPlayerHandlePrintString(void); -static void RecordedPlayerHandlePrintStringPlayerOnly(void); +static void RecordedPlayerHandlePrintSelectionString(void); static void RecordedPlayerHandleChooseAction(void); static void RecordedPlayerHandleUnknownYesNoBox(void); static void RecordedPlayerHandleChooseMove(void); @@ -107,7 +107,7 @@ static void RecordedPlayerHandleCmd39(void); static void RecordedPlayerHandleCmd40(void); static void RecordedPlayerHandleHitAnimation(void); static void RecordedPlayerHandleCmd42(void); -static void RecordedPlayerHandleEffectivenessSound(void); +static void RecordedPlayerHandlePlaySE(void); static void RecordedPlayerHandlePlayFanfareOrBGM(void); static void RecordedPlayerHandleFaintingCry(void); static void RecordedPlayerHandleIntroSlide(void); @@ -152,7 +152,7 @@ static void (*const sRecordedPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void) RecordedPlayerHandlePause, RecordedPlayerHandleMoveAnimation, RecordedPlayerHandlePrintString, - RecordedPlayerHandlePrintStringPlayerOnly, + RecordedPlayerHandlePrintSelectionString, RecordedPlayerHandleChooseAction, RecordedPlayerHandleUnknownYesNoBox, RecordedPlayerHandleChooseMove, @@ -178,7 +178,7 @@ static void (*const sRecordedPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void) RecordedPlayerHandleCmd40, RecordedPlayerHandleHitAnimation, RecordedPlayerHandleCmd42, - RecordedPlayerHandleEffectivenessSound, + RecordedPlayerHandlePlaySE, RecordedPlayerHandlePlayFanfareOrBGM, RecordedPlayerHandleFaintingCry, RecordedPlayerHandleIntroSlide, @@ -314,19 +314,19 @@ static void sub_8189D40(void) if (GetBankIdentity(gActiveBank) == IDENTITY_PLAYER_MON1) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) { sub_8172EF0(gActiveBank, &gPlayerParty[gBattlePartyID[gActiveBank]]); } if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x8) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive) { sub_8172EF0(gActiveBank ^ BIT_MON, &gPlayerParty[gBattlePartyID[gActiveBank ^ BIT_MON]]); } } - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x8) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].field_1_x80) { @@ -437,18 +437,18 @@ static void DoHitAnimBlinkSpriteEffect(void) { u8 spriteId = gBankSpriteIds[gActiveBank]; - if (gSprites[spriteId].data1 == 32) + if (gSprites[spriteId].data[1] == 32) { - gSprites[spriteId].data1 = 0; + gSprites[spriteId].data[1] = 0; gSprites[spriteId].invisible = 0; gDoingBattleAnim = FALSE; RecordedPlayerBufferExecCompleted(); } else { - if ((gSprites[spriteId].data1 % 4) == 0) + if ((gSprites[spriteId].data[1] % 4) == 0) gSprites[spriteId].invisible ^= 1; - gSprites[spriteId].data1++; + gSprites[spriteId].data[1]++; } } @@ -497,13 +497,13 @@ static void sub_818A37C(void) static void sub_818A470(void) { if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) { sub_8172EF0(gActiveBank, &gPlayerParty[gBattlePartyID[gActiveBank]]); } if (gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) { DestroySprite(&gSprites[gUnknown_03005D7C[gActiveBank]]); gBattleBankFunc[gActiveBank] = sub_818A37C; @@ -1134,11 +1134,11 @@ static void RecordedPlayerHandleLoadMonSprite(void) sub_806A068(species, GetBankIdentity(gActiveBank)); gBankSpriteIds[gActiveBank] = CreateSprite(&gUnknown_0202499C, - sub_80A5C6C(gActiveBank, 2), + GetBankPosition(gActiveBank, 2), GetBankSpriteDefault_Y(gActiveBank), sub_80A82E4(gActiveBank)); gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -240; - gSprites[gBankSpriteIds[gActiveBank]].data0 = gActiveBank; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = gActiveBank; gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], gBattleMonForms[gActiveBank]); gBattleBankFunc[gActiveBank] = sub_818A064; @@ -1165,15 +1165,15 @@ static void sub_818BA6C(u8 bank, bool8 dontClearSubstituteBit) gBankSpriteIds[bank] = CreateSprite( &gUnknown_0202499C, - sub_80A5C6C(bank, 2), + GetBankPosition(bank, 2), GetBankSpriteDefault_Y(bank), sub_80A82E4(bank)); - gSprites[gUnknown_03005D7C[bank]].data1 = gBankSpriteIds[bank]; - gSprites[gUnknown_03005D7C[bank]].data2 = bank; + gSprites[gUnknown_03005D7C[bank]].data[1] = gBankSpriteIds[bank]; + gSprites[gUnknown_03005D7C[bank]].data[2] = bank; - gSprites[gBankSpriteIds[bank]].data0 = bank; - gSprites[gBankSpriteIds[bank]].data2 = species; + gSprites[gBankSpriteIds[bank]].data[0] = bank; + gSprites[gBankSpriteIds[bank]].data[2] = species; gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); @@ -1181,7 +1181,7 @@ static void sub_818BA6C(u8 bank, bool8 dontClearSubstituteBit) gSprites[gBankSpriteIds[bank]].invisible = TRUE; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gUnknown_03005D7C[bank]].data0 = sub_80753E8(0, 0xFF); + gSprites[gUnknown_03005D7C[bank]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT); } static void RecordedPlayerHandleReturnMonToBall(void) @@ -1272,7 +1272,7 @@ static void RecordedPlayerHandleDrawTrainerPic(void) gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag); gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 240; gSprites[gBankSpriteIds[gActiveBank]].pos2.y = 48; - gSprites[gBankSpriteIds[gActiveBank]].data0 = -2; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; gSprites[gBankSpriteIds[gActiveBank]].oam.affineMode = 0; gSprites[gBankSpriteIds[gActiveBank]].hFlip = 1; @@ -1285,7 +1285,7 @@ static void RecordedPlayerHandleDrawTrainerPic(void) gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBank]].data0 = -2; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; } @@ -1300,9 +1300,9 @@ static void RecordedPlayerHandleTrainerSlide(void) static void RecordedPlayerHandleTrainerSlideBack(void) { oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); - gSprites[gBankSpriteIds[gActiveBank]].data0 = 35; - gSprites[gBankSpriteIds[gActiveBank]].data2 = -40; - gSprites[gBankSpriteIds[gActiveBank]].data4 = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = 35; + gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40; + gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC; StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], SpriteCallbackDummy); gBattleBankFunc[gActiveBank] = sub_81899F0; @@ -1323,8 +1323,8 @@ static void RecordedPlayerHandleFaintAnimation(void) gBattleSpritesDataPtr->healthBoxesData[gActiveBank].animationState = 0; HandleLowHpMusicChange(&gPlayerParty[gBattlePartyID[gActiveBank]], gActiveBank); PlaySE12WithPanning(SE_POKE_DEAD, -64); - gSprites[gBankSpriteIds[gActiveBank]].data1 = 0; - gSprites[gBankSpriteIds[gActiveBank]].data2 = 5; + gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0; + gSprites[gBankSpriteIds[gActiveBank]].data[2] = 5; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_8039C00; gBattleBankFunc[gActiveBank] = sub_818A114; } @@ -1437,7 +1437,7 @@ static void RecordedPlayerHandlePrintString(void) gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter; } -static void RecordedPlayerHandlePrintStringPlayerOnly(void) +static void RecordedPlayerHandlePrintSelectionString(void) { RecordedPlayerBufferExecCompleted(); } @@ -1633,7 +1633,7 @@ static void RecordedPlayerHandleHitAnimation(void) else { gDoingBattleAnim = TRUE; - gSprites[gBankSpriteIds[gActiveBank]].data1 = 0; + gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0; DoHitAnimHealthboxEffect(gActiveBank); gBattleBankFunc[gActiveBank] = DoHitAnimBlinkSpriteEffect; } @@ -1644,7 +1644,7 @@ static void RecordedPlayerHandleCmd42(void) RecordedPlayerBufferExecCompleted(); } -static void RecordedPlayerHandleEffectivenessSound(void) +static void RecordedPlayerHandlePlaySE(void) { s8 pan; @@ -1695,11 +1695,11 @@ static void RecordedPlayerHandleIntroTrainerBallThrow(void) oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); - gSprites[gBankSpriteIds[gActiveBank]].data0 = 50; - gSprites[gBankSpriteIds[gActiveBank]].data2 = -40; - gSprites[gBankSpriteIds[gActiveBank]].data4 = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = 50; + gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40; + gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC; - gSprites[gBankSpriteIds[gActiveBank]].data5 = gActiveBank; + gSprites[gBankSpriteIds[gActiveBank]].data[5] = gActiveBank; StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], sub_805CC00); StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 1); diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c index a4f35bed1..db4670523 100644 --- a/src/battle_controller_safari.c +++ b/src/battle_controller_safari.c @@ -8,7 +8,7 @@ #include "link.h" #include "util.h" #include "main.h" -#include "songs.h" +#include "constants/songs.h" #include "sound.h" #include "window.h" #include "m4a.h" @@ -66,7 +66,7 @@ static void SafariHandleBallThrowAnim(void); static void SafariHandlePause(void); static void SafariHandleMoveAnimation(void); static void SafariHandlePrintString(void); -static void SafariHandlePrintStringPlayerOnly(void); +static void SafariHandlePrintSelectionString(void); static void SafariHandleChooseAction(void); static void SafariHandleUnknownYesNoBox(void); static void SafariHandleChooseMove(void); @@ -92,7 +92,7 @@ static void SafariHandleCmd39(void); static void SafariHandleCmd40(void); static void SafariHandleHitAnimation(void); static void SafariHandleCmd42(void); -static void SafariHandleEffectivenessSound(void); +static void SafariHandlePlaySE(void); static void SafariHandlePlayFanfareOrBGM(void); static void SafariHandleFaintingCry(void); static void SafariHandleIntroSlide(void); @@ -130,7 +130,7 @@ static void (*const sSafariBufferCommands[CONTROLLER_CMDS_COUNT])(void) = SafariHandlePause, SafariHandleMoveAnimation, SafariHandlePrintString, - SafariHandlePrintStringPlayerOnly, + SafariHandlePrintSelectionString, SafariHandleChooseAction, SafariHandleUnknownYesNoBox, SafariHandleChooseMove, @@ -156,7 +156,7 @@ static void (*const sSafariBufferCommands[CONTROLLER_CMDS_COUNT])(void) = SafariHandleCmd40, SafariHandleHitAnimation, SafariHandleCmd42, - SafariHandleEffectivenessSound, + SafariHandlePlaySE, SafariHandlePlayFanfareOrBGM, SafariHandleFaintingCry, SafariHandleIntroSlide, @@ -384,7 +384,7 @@ static void SafariHandleDrawTrainerPic(void) 30); gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBank]].data0 = -2; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; gBattleBankFunc[gActiveBank] = CompleteOnBankSpriteCallbackDummy; } @@ -449,7 +449,7 @@ static void SafariHandlePrintString(void) gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter; } -static void SafariHandlePrintStringPlayerOnly(void) +static void SafariHandlePrintSelectionString(void) { if (GetBankSide(gActiveBank) == SIDE_PLAYER) SafariHandlePrintString(); @@ -607,7 +607,7 @@ static void SafariHandleCmd42(void) SafariBufferExecCompleted(); } -static void SafariHandleEffectivenessSound(void) +static void SafariHandlePlaySE(void) { s8 pan; diff --git a/src/battle_controller_wally.c b/src/battle_controller_wally.c index 4dac1d264..446027944 100644 --- a/src/battle_controller_wally.c +++ b/src/battle_controller_wally.c @@ -10,10 +10,10 @@ #include "util.h" #include "main.h" #include "item.h" -#include "items.h" -#include "songs.h" +#include "constants/items.h" +#include "constants/songs.h" #include "sound.h" -#include "moves.h" +#include "constants/moves.h" #include "window.h" #include "m4a.h" #include "palette.h" @@ -22,7 +22,7 @@ #include "string_util.h" #include "bg.h" #include "reshow_battle_screen.h" -#include "rng.h" +#include "random.h" #include "pokeball.h" #include "data2.h" #include "party_menu.h" @@ -86,7 +86,7 @@ static void WallyHandleBallThrowAnim(void); static void WallyHandlePause(void); static void WallyHandleMoveAnimation(void); static void WallyHandlePrintString(void); -static void WallyHandlePrintStringPlayerOnly(void); +static void WallyHandlePrintSelectionString(void); static void WallyHandleChooseAction(void); static void WallyHandleUnknownYesNoBox(void); static void WallyHandleChooseMove(void); @@ -112,7 +112,7 @@ static void WallyHandleCmd39(void); static void WallyHandleCmd40(void); static void WallyHandleHitAnimation(void); static void WallyHandleCmd42(void); -static void WallyHandleEffectivenessSound(void); +static void WallyHandlePlaySE(void); static void WallyHandlePlayFanfareOrBGM(void); static void WallyHandleFaintingCry(void); static void WallyHandleIntroSlide(void); @@ -155,7 +155,7 @@ static void (*const sWallyBufferCommands[CONTROLLER_CMDS_COUNT])(void) = WallyHandlePause, WallyHandleMoveAnimation, WallyHandlePrintString, - WallyHandlePrintStringPlayerOnly, + WallyHandlePrintSelectionString, WallyHandleChooseAction, WallyHandleUnknownYesNoBox, WallyHandleChooseMove, @@ -181,7 +181,7 @@ static void (*const sWallyBufferCommands[CONTROLLER_CMDS_COUNT])(void) = WallyHandleCmd40, WallyHandleHitAnimation, WallyHandleCmd42, - WallyHandleEffectivenessSound, + WallyHandlePlaySE, WallyHandlePlayFanfareOrBGM, WallyHandleFaintingCry, WallyHandleIntroSlide, @@ -321,13 +321,13 @@ static void CompleteOnChosenItem(void) static void sub_816864C(void) { - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive) sub_8172EF0(gActiveBank, &gPlayerParty[gBattlePartyID[gActiveBank]]); - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x8) + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x80 && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive) sub_8172EF0(gActiveBank ^ BIT_MON, &gPlayerParty[gBattlePartyID[gActiveBank ^ BIT_MON]]); - if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].flag_x8 - && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].flag_x8 + if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive + && !gBattleSpritesDataPtr->healthBoxesData[gActiveBank ^ BIT_MON].ballAnimActive && gSprites[gUnknown_03005D7C[gActiveBank]].callback == SpriteCallbackDummy && gSprites[gBankSpriteIds[gActiveBank]].callback == SpriteCallbackDummy) { @@ -396,18 +396,18 @@ static void DoHitAnimBlinkSpriteEffect(void) { u8 spriteId = gBankSpriteIds[gActiveBank]; - if (gSprites[spriteId].data1 == 32) + if (gSprites[spriteId].data[1] == 32) { - gSprites[spriteId].data1 = 0; + gSprites[spriteId].data[1] = 0; gSprites[spriteId].invisible = 0; gDoingBattleAnim = FALSE; WallyBufferExecCompleted(); } else { - if ((gSprites[spriteId].data1 % 4) == 0) + if ((gSprites[spriteId].data[1] % 4) == 0) gSprites[spriteId].invisible ^= 1; - gSprites[spriteId].data1++; + gSprites[spriteId].data[1]++; } } @@ -1073,7 +1073,7 @@ static void WallyHandleDrawTrainerPic(void) 30); gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; gSprites[gBankSpriteIds[gActiveBank]].pos2.x = 240; - gSprites[gBankSpriteIds[gActiveBank]].data0 = -2; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = -2; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; gBattleBankFunc[gActiveBank] = CompleteOnBankSpriteCallbackDummy; } @@ -1088,7 +1088,7 @@ static void WallyHandleTrainerSlide(void) 30); gSprites[gBankSpriteIds[gActiveBank]].oam.paletteNum = gActiveBank; gSprites[gBankSpriteIds[gActiveBank]].pos2.x = -96; - gSprites[gBankSpriteIds[gActiveBank]].data0 = 2; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = 2; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_805D7AC; gBattleBankFunc[gActiveBank] = CompleteOnBankSpriteCallbackDummy2; } @@ -1211,7 +1211,7 @@ static void WallyHandlePrintString(void) gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter; } -static void WallyHandlePrintStringPlayerOnly(void) +static void WallyHandlePrintSelectionString(void) { if (GetBankSide(gActiveBank) == SIDE_PLAYER) WallyHandlePrintString(); @@ -1408,7 +1408,7 @@ static void WallyHandleHitAnimation(void) else { gDoingBattleAnim = TRUE; - gSprites[gBankSpriteIds[gActiveBank]].data1 = 0; + gSprites[gBankSpriteIds[gActiveBank]].data[1] = 0; DoHitAnimHealthboxEffect(gActiveBank); gBattleBankFunc[gActiveBank] = DoHitAnimBlinkSpriteEffect; } @@ -1419,7 +1419,7 @@ static void WallyHandleCmd42(void) WallyBufferExecCompleted(); } -static void WallyHandleEffectivenessSound(void) +static void WallyHandlePlaySE(void) { PlaySE(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8)); WallyBufferExecCompleted(); @@ -1462,11 +1462,11 @@ static void WallyHandleIntroTrainerBallThrow(void) oamt_add_pos2_onto_pos1(&gSprites[gBankSpriteIds[gActiveBank]]); - gSprites[gBankSpriteIds[gActiveBank]].data0 = 50; - gSprites[gBankSpriteIds[gActiveBank]].data2 = -40; - gSprites[gBankSpriteIds[gActiveBank]].data4 = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; + gSprites[gBankSpriteIds[gActiveBank]].data[0] = 50; + gSprites[gBankSpriteIds[gActiveBank]].data[2] = -40; + gSprites[gBankSpriteIds[gActiveBank]].data[4] = gSprites[gBankSpriteIds[gActiveBank]].pos1.y; gSprites[gBankSpriteIds[gActiveBank]].callback = sub_80A6EEC; - gSprites[gBankSpriteIds[gActiveBank]].data5 = gActiveBank; + gSprites[gBankSpriteIds[gActiveBank]].data[5] = gActiveBank; StoreSpriteCallbackInData6(&gSprites[gBankSpriteIds[gActiveBank]], sub_805CC00); StartSpriteAnim(&gSprites[gBankSpriteIds[gActiveBank]], 1); @@ -1495,21 +1495,21 @@ static void sub_816AA80(u8 bank) gUnknown_03005D7C[bank] = CreateInvisibleSpriteWithCallback(sub_805D714); sub_806A068(species, GetBankIdentity(bank)); gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, - sub_80A5C6C(bank, 2), + GetBankPosition(bank, 2), GetBankSpriteDefault_Y(bank), sub_80A82E4(bank)); - gSprites[gUnknown_03005D7C[bank]].data1 = gBankSpriteIds[bank]; - gSprites[gUnknown_03005D7C[bank]].data2 = bank; + gSprites[gUnknown_03005D7C[bank]].data[1] = gBankSpriteIds[bank]; + gSprites[gUnknown_03005D7C[bank]].data[2] = bank; - gSprites[gBankSpriteIds[bank]].data0 = bank; - gSprites[gBankSpriteIds[bank]].data2 = species; + gSprites[gBankSpriteIds[bank]].data[0] = bank; + gSprites[gBankSpriteIds[bank]].data[2] = species; gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); gSprites[gBankSpriteIds[bank]].invisible = TRUE; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gUnknown_03005D7C[bank]].data0 = sub_80753E8(0, 0xFF); + gSprites[gUnknown_03005D7C[bank]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT); } static void sub_816AC04(u8 taskId) diff --git a/src/battle_controllers.c b/src/battle_controllers.c index 858540a9f..c6d47e71e 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -6,10 +6,10 @@ #include "battle_ai_script_commands.h" #include "battle_anim.h" #include "pokemon.h" -#include "species.h" +#include "constants/species.h" #include "recorded_battle.h" #include "util.h" -#include "abilities.h" +#include "constants/abilities.h" #include "battle_message.h" extern u32 gBattleTypeFlags; @@ -38,7 +38,7 @@ extern u8 gEffectBank; extern u16 gBattleWeather; extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; extern u16 gCurrentMove; -extern u16 gLastUsedMove; +extern u16 gChosenMove; extern u16 gLastUsedItem; extern u8 gBattleOutcome; extern u8 gLastUsedAbility; @@ -1120,7 +1120,7 @@ void EmitPrintString(u8 bufferId, u16 stringID) stringInfo = (struct StringInfoBattle*)(&gBattleBuffersTransferData[4]); stringInfo->currentMove = gCurrentMove; - stringInfo->lastMove = gLastUsedMove; + stringInfo->originallyUsedMove = gChosenMove; stringInfo->lastItem = gLastUsedItem; stringInfo->lastAbility = gLastUsedAbility; stringInfo->scrActive = gBattleScripting.bank; @@ -1140,10 +1140,10 @@ void EmitPrintString(u8 bufferId, u16 stringID) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, sizeof(struct StringInfoBattle) + 4); } -void EmitPrintStringPlayerOnly(u8 bufferId, u16 stringID) +void EmitPrintSelectionString(u8 bufferId, u16 stringID) { s32 i; - struct StringInfoBattle* stringInfo; + struct StringInfoBattle *stringInfo; gBattleBuffersTransferData[0] = CONTROLLER_PRINTSTRINGPLAYERONLY; gBattleBuffersTransferData[1] = CONTROLLER_PRINTSTRINGPLAYERONLY; @@ -1152,7 +1152,7 @@ void EmitPrintStringPlayerOnly(u8 bufferId, u16 stringID) stringInfo = (struct StringInfoBattle*)(&gBattleBuffersTransferData[4]); stringInfo->currentMove = gCurrentMove; - stringInfo->lastMove = gLastUsedMove; + stringInfo->originallyUsedMove = gChosenMove; stringInfo->lastItem = gLastUsedItem; stringInfo->lastAbility = gLastUsedAbility; stringInfo->scrActive = gBattleScripting.bank; @@ -1427,7 +1427,7 @@ void EmitCmd42(u8 bufferId) PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4); } -void EmitEffectivenessSound(u8 bufferId, u16 songId) +void EmitPlaySE(u8 bufferId, u16 songId) { gBattleBuffersTransferData[0] = CONTROLLER_EFFECTIVENESSSOUND; gBattleBuffersTransferData[1] = songId; diff --git a/src/battle_dome_cards.c b/src/battle_dome_cards.c index 9385417b4..d549856f2 100644 --- a/src/battle_dome_cards.c +++ b/src/battle_dome_cards.c @@ -4,7 +4,7 @@ #include "sprite.h" #include "window.h" #include "malloc.h" -#include "species.h" +#include "constants/species.h" #include "palette.h" #include "decompress.h" #include "battle_dome_cards.h" diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 99a82f3ca..22be086f0 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -6,21 +6,21 @@ #include "battle_interface.h" #include "main.h" #include "malloc.h" -#include "rng.h" +#include "random.h" #include "util.h" #include "pokemon.h" -#include "moves.h" +#include "constants/moves.h" #include "task.h" #include "sprite.h" #include "sound.h" #include "m4a.h" -#include "species.h" +#include "constants/species.h" #include "decompress.h" #include "data2.h" #include "palette.h" #include "blend_palette.h" #include "contest.h" -#include "songs.h" +#include "constants/songs.h" extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200]; extern u8 gActiveBank; @@ -332,7 +332,7 @@ static u16 BattlePalaceGetTargetRetValue(void) void sub_805D714(struct Sprite *sprite) { - u8 spriteId = sprite->data1; + u8 spriteId = sprite->data[1]; if (!gSprites[spriteId].affineAnimEnded) return; @@ -367,7 +367,7 @@ void sub_805D7AC(struct Sprite *sprite) { if (!(gUnknown_020243FC & 1)) { - sprite->pos2.x += sprite->data0; + sprite->pos2.x += sprite->data[0]; if (sprite->pos2.x == 0) { if (sprite->pos2.y != 0) @@ -1134,7 +1134,7 @@ void sub_805EB9C(u8 affineMode) } } -#define tBank data0 +#define tBank data[0] void LoadAndCreateEnemyShadowSprites(void) { @@ -1143,14 +1143,14 @@ void LoadAndCreateEnemyShadowSprites(void) LoadCompressedObjectPic(&gSpriteSheet_EnemyShadow); bank = GetBankByIdentity(IDENTITY_OPPONENT_MON1); - gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, sub_80A5C6C(bank, 0), sub_80A5C6C(bank, 1) + 29, 0xC8); - gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId].data0 = bank; + gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBankPosition(bank, 0), GetBankPosition(bank, 1) + 29, 0xC8); + gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId].data[0] = bank; if (IsDoubleBattle()) { bank = GetBankByIdentity(IDENTITY_OPPONENT_MON2); - gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, sub_80A5C6C(bank, 0), sub_80A5C6C(bank, 1) + 29, 0xC8); - gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId].data0 = bank; + gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId = CreateSprite(&gSpriteTemplate_EnemyShadow, GetBankPosition(bank, 0), GetBankPosition(bank, 1) + 29, 0xC8); + gSprites[gBattleSpritesDataPtr->healthBoxesData[bank].shadowSpriteId].data[0] = bank; } } diff --git a/src/battle_interface.c b/src/battle_interface.c index 240c64862..95f1a1111 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -8,13 +8,13 @@ #include "string_util.h" #include "text.h" #include "sound.h" -#include "songs.h" +#include "constants/songs.h" #include "decompress.h" #include "task.h" #include "util.h" #include "gpu_regs.h" #include "battle_message.h" -#include "species.h" +#include "constants/species.h" #include "pokedex.h" #include "palette.h" #include "international_string_util.h" @@ -927,7 +927,7 @@ u8 CreateBankHealthboxSprites(u8 bank) data6 = 2; } gSprites[healthboxSpriteId_1].oam.affineParam = healthboxSpriteId_2; - gSprites[healthboxSpriteId_2].data5 = healthboxSpriteId_1; + gSprites[healthboxSpriteId_2].data[5] = healthboxSpriteId_1; gSprites[healthboxSpriteId_2].callback = sub_8072924; } else @@ -939,7 +939,7 @@ u8 CreateBankHealthboxSprites(u8 bank) gSprites[healthboxSpriteId_1].oam.affineParam = healthboxSpriteId_2; - gSprites[healthboxSpriteId_2].data5 = healthboxSpriteId_1; + gSprites[healthboxSpriteId_2].data[5] = healthboxSpriteId_1; gSprites[healthboxSpriteId_2].oam.tileNum += 32; gSprites[healthboxSpriteId_2].callback = sub_8072924; @@ -952,7 +952,7 @@ u8 CreateBankHealthboxSprites(u8 bank) gSprites[healthboxSpriteId_1].oam.affineParam = healthboxSpriteId_2; - gSprites[healthboxSpriteId_2].data5 = healthboxSpriteId_1; + gSprites[healthboxSpriteId_2].data[5] = healthboxSpriteId_1; gSprites[healthboxSpriteId_2].oam.tileNum += 32; gSprites[healthboxSpriteId_2].callback = sub_8072924; @@ -968,14 +968,14 @@ u8 CreateBankHealthboxSprites(u8 bank) CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_1), (void*)(OBJ_VRAM0 + unkSpritePtr->oam.tileNum * 32), 64); - gSprites[healthboxSpriteId_1].data5 = unkSpriteId; - gSprites[healthboxSpriteId_1].data6 = bank; + gSprites[healthboxSpriteId_1].data[5] = unkSpriteId; + gSprites[healthboxSpriteId_1].data[6] = bank; gSprites[healthboxSpriteId_1].invisible = 1; gSprites[healthboxSpriteId_2].invisible = 1; - unkSpritePtr->data5 = healthboxSpriteId_1; - unkSpritePtr->data6 = data6; + unkSpritePtr->data[5] = healthboxSpriteId_1; + unkSpritePtr->data[6] = data6; unkSpritePtr->invisible = 1; return healthboxSpriteId_1; @@ -994,7 +994,7 @@ u8 CreateSafariPlayerHealthboxSprites(void) gSprites[healthboxSpriteId_2].oam.tileNum += 64; gSprites[healthboxSpriteId_1].oam.affineParam = healthboxSpriteId_2; - gSprites[healthboxSpriteId_2].data5 = healthboxSpriteId_1; + gSprites[healthboxSpriteId_2].data[5] = healthboxSpriteId_1; gSprites[healthboxSpriteId_2].callback = sub_8072924; @@ -1008,9 +1008,9 @@ static const u8 *GetHealthboxElementGfxPtr(u8 elementId) static void sub_80728B4(struct Sprite *sprite) { - u8 var = sprite->data5; + u8 var = sprite->data[5]; - switch (sprite->data6) + switch (sprite->data[6]) { case 0: sprite->pos1.x = gSprites[var].pos1.x + 16; @@ -1033,7 +1033,7 @@ static void sub_80728B4(struct Sprite *sprite) static void sub_8072924(struct Sprite *sprite) { - u8 otherSpriteId = sprite->data5; + u8 otherSpriteId = sprite->data[5]; sprite->pos1.x = gSprites[otherSpriteId].pos1.x + 64; sprite->pos1.y = gSprites[otherSpriteId].pos1.y; @@ -1054,14 +1054,14 @@ void SetBattleBarStruct(u8 bank, u8 healthboxSpriteId, s32 maxVal, s32 currVal, void SetHealthboxSpriteInvisible(u8 healthboxSpriteId) { gSprites[healthboxSpriteId].invisible = 1; - gSprites[gSprites[healthboxSpriteId].data5].invisible = 1; + gSprites[gSprites[healthboxSpriteId].data[5]].invisible = 1; gSprites[gSprites[healthboxSpriteId].oam.affineParam].invisible = 1; } void SetHealthboxSpriteVisible(u8 healthboxSpriteId) { gSprites[healthboxSpriteId].invisible = 0; - gSprites[gSprites[healthboxSpriteId].data5].invisible = 0; + gSprites[gSprites[healthboxSpriteId].data[5]].invisible = 0; gSprites[gSprites[healthboxSpriteId].oam.affineParam].invisible = 0; } @@ -1074,7 +1074,7 @@ static void UpdateSpritePos(u8 spriteId, s16 x, s16 y) void DestoryHealthboxSprite(u8 healthboxSpriteId) { DestroySprite(&gSprites[gSprites[healthboxSpriteId].oam.affineParam]); - DestroySprite(&gSprites[gSprites[healthboxSpriteId].data5]); + DestroySprite(&gSprites[gSprites[healthboxSpriteId].data[5]]); DestroySprite(&gSprites[healthboxSpriteId]); } @@ -1091,7 +1091,7 @@ void UpdateOamPriorityInAllHealthboxes(u8 priority) { u8 healthboxSpriteId_1 = gHealthBoxesIds[i]; u8 healthboxSpriteId_2 = gSprites[gHealthBoxesIds[i]].oam.affineParam; - u8 healthboxSpriteId_3 = gSprites[gHealthBoxesIds[i]].data5; + u8 healthboxSpriteId_3 = gSprites[gHealthBoxesIds[i]].data[5]; gSprites[healthboxSpriteId_1].oam.priority = priority; gSprites[healthboxSpriteId_2].oam.priority = priority; @@ -1156,7 +1156,7 @@ static void UpdateLvlInHealthbox(u8 healthboxSpriteId, u8 lvl) windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, xPos, 3, 2, &windowId); spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * 32; - if (GetBankSide(gSprites[healthboxSpriteId].data6) == SIDE_PLAYER) + if (GetBankSide(gSprites[healthboxSpriteId].data[6]) == SIDE_PLAYER) { objVram = (void*)(OBJ_VRAM0); if (!IsDoubleBattle()) @@ -1180,7 +1180,7 @@ void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent) u8 text[32]; void *objVram; - if (GetBankSide(gSprites[healthboxSpriteId].data6) == SIDE_PLAYER && !IsDoubleBattle()) + if (GetBankSide(gSprites[healthboxSpriteId].data[6]) == SIDE_PLAYER && !IsDoubleBattle()) { spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * 32; if (maxOrCurrent != HP_CURRENT) // singles, max @@ -1213,7 +1213,7 @@ void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent) u8 bank; memcpy(text, sUnknown_0832C3C4, sizeof(sUnknown_0832C3C4)); - bank = gSprites[healthboxSpriteId].data6; + bank = gSprites[healthboxSpriteId].data[6]; if (IsDoubleBattle() == TRUE || GetBankSide(bank) == SIDE_OPPONENT) { UpdateHpTextInHealthboxInDoubles(healthboxSpriteId, value, maxOrCurrent); @@ -1223,7 +1223,7 @@ void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent) u32 var; u8 i; - if (GetBankSide(gSprites[healthboxSpriteId].data6) == SIDE_PLAYER) + if (GetBankSide(gSprites[healthboxSpriteId].data[6]) == SIDE_PLAYER) { if (maxOrCurrent == HP_CURRENT) var = 29; @@ -1258,11 +1258,11 @@ static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8 u8 text[32]; void *objVram; - if (GetBankSide(gSprites[healthboxSpriteId].data6) == SIDE_PLAYER) + if (GetBankSide(gSprites[healthboxSpriteId].data[6]) == SIDE_PLAYER) { - if (gBattleSpritesDataPtr->bankData[gSprites[healthboxSpriteId].data6].hpNumbersNoBars) // don't print text if only bars are visible + if (gBattleSpritesDataPtr->bankData[gSprites[healthboxSpriteId].data[6]].hpNumbersNoBars) // don't print text if only bars are visible { - spriteTileNum = gSprites[gSprites[healthboxSpriteId].data5].oam.tileNum * 32; + spriteTileNum = gSprites[gSprites[healthboxSpriteId].data[5]].oam.tileNum * 32; objVram = (void*)(OBJ_VRAM0) + spriteTileNum; if (maxOrCurrent != HP_CURRENT) // doubles, max hp @@ -1292,7 +1292,7 @@ static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8 u8 bank; memcpy(text, sUnknown_0832C3D8, sizeof(sUnknown_0832C3D8)); - bank = gSprites[healthboxSpriteId].data6; + bank = gSprites[healthboxSpriteId].data[6]; if (gBattleSpritesDataPtr->bankData[bank].hpNumbersNoBars) // don't print text if only bars are visible { @@ -1304,7 +1304,7 @@ static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8 if (maxOrCurrent == HP_CURRENT) var = 0; - r7 = gSprites[healthboxSpriteId].data5; + r7 = gSprites[healthboxSpriteId].data[5]; txtPtr = ConvertIntToDecimalStringN(text + 6, value, STR_CONV_MODE_RIGHT_ALIGN, 3); if (!maxOrCurrent) StringCopy(txtPtr, gText_Slash); @@ -1354,7 +1354,7 @@ static void sub_80730D4(u8 healthboxSpriteId, struct Pokemon *mon) u8 i, var, nature, healthboxSpriteId_2; memcpy(text, sUnknown_0832C3C4, sizeof(sUnknown_0832C3C4)); - barFontGfx = &gMonSpritesGfxPtr->barFontGfx[0x520 + (GetBankIdentity(gSprites[healthboxSpriteId].data6) * 384)]; + barFontGfx = &gMonSpritesGfxPtr->barFontGfx[0x520 + (GetBankIdentity(gSprites[healthboxSpriteId].data[6]) * 384)]; var = 5; nature = GetNature(mon); StringCopy(text + 6, gNatureNamePointers[nature]); @@ -1385,7 +1385,7 @@ static void sub_80730D4(u8 healthboxSpriteId, struct Pokemon *mon) barFontGfx += 0x20; } - healthboxSpriteId_2 = gSprites[healthboxSpriteId].data5; + healthboxSpriteId_2 = gSprites[healthboxSpriteId].data[5]; ConvertIntToDecimalStringN(text + 6, gBattleStruct->field_7C, STR_CONV_MODE_RIGHT_ALIGN, 2); ConvertIntToDecimalStringN(text + 9, gBattleStruct->field_7B, STR_CONV_MODE_RIGHT_ALIGN, 2); text[5] = CHAR_SPACE; @@ -1434,7 +1434,7 @@ void SwapHpBarsWithHpText(void) if (noBars == TRUE) // bars to text { - spriteId = gSprites[gHealthBoxesIds[i]].data5; + spriteId = gSprites[gHealthBoxesIds[i]].data[5]; CpuFill32(0, (void*)(OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32), 0x100); UpdateHpTextInHealthboxInDoubles(gHealthBoxesIds[i], GetMonData(&gPlayerParty[gBattlePartyID[i]], MON_DATA_HP), HP_CURRENT); @@ -1457,7 +1457,7 @@ void SwapHpBarsWithHpText(void) } else { - spriteId = gSprites[gHealthBoxesIds[i]].data5; + spriteId = gSprites[gHealthBoxesIds[i]].data[5]; CpuFill32(0, (void *)(OBJ_VRAM0 + gSprites[spriteId].oam.tileNum * 32), 0x100); UpdateHpTextInHealthboxInDoubles(gHealthBoxesIds[i], GetMonData(&gEnemyParty[gBattlePartyID[i]], MON_DATA_HP), HP_CURRENT); @@ -1472,7 +1472,7 @@ void SwapHpBarsWithHpText(void) UpdateHealthboxAttribute(gHealthBoxesIds[i], &gEnemyParty[gBattlePartyID[i]], HEALTHBOX_NICK); } } - gSprites[gHealthBoxesIds[i]].data7 ^= 1; + gSprites[gHealthBoxesIds[i]].data[7] ^= 1; } } } @@ -1524,7 +1524,7 @@ u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 ar barSpriteId = CreateSprite(&sStatusSummaryBarSpriteTemplates[isOpponent], bar_X, bar_Y, 10); SetSubspriteTables(&gSprites[barSpriteId], sStatusSummaryBar_SubspriteTable); gSprites[barSpriteId].pos2.x = bar_pos2_X; - gSprites[barSpriteId].data0 = bar_data0; + gSprites[barSpriteId].data[0] = bar_data0; if (isOpponent) { @@ -1549,22 +1549,22 @@ u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 ar gSprites[ballIconSpritesIds[i]].pos2.y = 0; } - gSprites[ballIconSpritesIds[i]].data0 = barSpriteId; + gSprites[ballIconSpritesIds[i]].data[0] = barSpriteId; if (!isOpponent) { gSprites[ballIconSpritesIds[i]].pos1.x += 10 * i + 24; - gSprites[ballIconSpritesIds[i]].data1 = i * 7 + 10; + gSprites[ballIconSpritesIds[i]].data[1] = i * 7 + 10; gSprites[ballIconSpritesIds[i]].pos2.x = 120; } else { gSprites[ballIconSpritesIds[i]].pos1.x -= 10 * (5 - i) + 24; - gSprites[ballIconSpritesIds[i]].data1 = (6 - i) * 7 + 10; + gSprites[ballIconSpritesIds[i]].data[1] = (6 - i) * 7 + 10; gSprites[ballIconSpritesIds[i]].pos2.x = -120; } - gSprites[ballIconSpritesIds[i]].data2 = isOpponent; + gSprites[ballIconSpritesIds[i]].data[2] = isOpponent; } if (GetBankSide(bank) == SIDE_PLAYER) @@ -1576,7 +1576,7 @@ u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 ar if (partyInfo[i].hp == 0xFFFF) // empty slot or an egg { gSprites[ballIconSpritesIds[i]].oam.tileNum += 1; - gSprites[ballIconSpritesIds[i]].data7 = 1; + gSprites[ballIconSpritesIds[i]].data[7] = 1; } else if (partyInfo[i].hp == 0) // fainted mon { @@ -1595,7 +1595,7 @@ u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 ar if (partyInfo[j].hp == 0xFFFF) // empty slot or an egg { gSprites[ballIconSpritesIds[var]].oam.tileNum += 1; - gSprites[ballIconSpritesIds[var]].data7 = 1; + gSprites[ballIconSpritesIds[var]].data[7] = 1; var--; continue; } @@ -1624,7 +1624,7 @@ u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 ar if (partyInfo[i].hp == 0xFFFF) // empty slot or an egg { gSprites[ballIconSpritesIds[var]].oam.tileNum += 1; - gSprites[ballIconSpritesIds[var]].data7 = 1; + gSprites[ballIconSpritesIds[var]].data[7] = 1; } else if (partyInfo[i].hp == 0) // fainted mon { @@ -1644,7 +1644,7 @@ u8 CreatePartyStatusSummarySprites(u8 bank, struct HpAndStatus *partyInfo, u8 ar if (partyInfo[j].hp == 0xFFFF) // empty slot or an egg { gSprites[ballIconSpritesIds[i]].oam.tileNum += 1; - gSprites[ballIconSpritesIds[i]].data7 = 1; + gSprites[ballIconSpritesIds[i]].data[7] = 1; i++; continue; } @@ -1714,21 +1714,21 @@ void sub_8073C30(u8 taskId) { if (GetBankSide(bank) != SIDE_PLAYER) { - gSprites[sp[5 - i]].data1 = 7 * i; - gSprites[sp[5 - i]].data3 = 0; - gSprites[sp[5 - i]].data4 = 0; + gSprites[sp[5 - i]].data[1] = 7 * i; + gSprites[sp[5 - i]].data[3] = 0; + gSprites[sp[5 - i]].data[4] = 0; gSprites[sp[5 - i]].callback = sub_8074158; } else { - gSprites[sp[i]].data1 = 7 * i; - gSprites[sp[i]].data3 = 0; - gSprites[sp[i]].data4 = 0; + gSprites[sp[i]].data[1] = 7 * i; + gSprites[sp[i]].data[3] = 0; + gSprites[sp[i]].data[4] = 0; gSprites[sp[i]].callback = sub_8074158; } } - gSprites[r10].data0 /= 2; - gSprites[r10].data1 = 0; + gSprites[r10].data[0] /= 2; + gSprites[r10].data[1] = 0; gSprites[r10].callback = sub_8074090; SetSubspriteTables(&gSprites[r10], sUnknown_0832C2CC); gTasks[taskId].func = sub_8073E08; @@ -1831,17 +1831,17 @@ static void sub_8073F98(u8 taskId) static void SpriteCB_StatusSummaryBar(struct Sprite *sprite) { if (sprite->pos2.x != 0) - sprite->pos2.x += sprite->data0; + sprite->pos2.x += sprite->data[0]; } static void sub_8074090(struct Sprite *sprite) { - sprite->data1 += 32; - if (sprite->data0 > 0) - sprite->pos2.x += sprite->data1 >> 4; + sprite->data[1] += 32; + if (sprite->data[0] > 0) + sprite->pos2.x += sprite->data[1] >> 4; else - sprite->pos2.x -= sprite->data1 >> 4; - sprite->data1 &= 0xF; + sprite->pos2.x -= sprite->data[1] >> 4; + sprite->data[1] &= 0xF; } static void SpriteCB_StatusSummaryBallsOnBattleStart(struct Sprite *sprite) @@ -1850,16 +1850,16 @@ static void SpriteCB_StatusSummaryBallsOnBattleStart(struct Sprite *sprite) u16 var2; s8 pan; - if (sprite->data1 > 0) + if (sprite->data[1] > 0) { - sprite->data1--; + sprite->data[1]--; return; } - var1 = sprite->data2; - var2 = sprite->data3; + var1 = sprite->data[2]; + var2 = sprite->data[3]; var2 += 56; - sprite->data3 = var2 & 0xFFF0; + sprite->data[3] = var2 & 0xFFF0; if (var1 != 0) { @@ -1880,7 +1880,7 @@ static void SpriteCB_StatusSummaryBallsOnBattleStart(struct Sprite *sprite) if (var1 != 0) pan = PAN_SIDE_PLAYER; - if (sprite->data7 != 0) + if (sprite->data[7] != 0) PlaySE2WithPanning(SE_TB_KARA, pan); else PlaySE1WithPanning(SE_TB_KON, pan); @@ -1894,15 +1894,15 @@ static void sub_8074158(struct Sprite *sprite) u8 var1; u16 var2; - if (sprite->data1 > 0) + if (sprite->data[1] > 0) { - sprite->data1--; + sprite->data[1]--; return; } - var1 = sprite->data2; - var2 = sprite->data3; + var1 = sprite->data[2]; + var2 = sprite->data[3]; var2 += 56; - sprite->data3 = var2 & 0xFFF0; + sprite->data[3] = var2 & 0xFFF0; if (var1 != 0) sprite->pos2.x += var2 >> 4; else @@ -1917,7 +1917,7 @@ static void sub_8074158(struct Sprite *sprite) static void SpriteCB_StatusSummaryBallsOnSwitchout(struct Sprite *sprite) { - u8 barSpriteId = sprite->data0; + u8 barSpriteId = sprite->data[0]; sprite->pos2.x = gSprites[barSpriteId].pos2.x; sprite->pos2.y = gSprites[barSpriteId].pos2.y; @@ -1964,7 +1964,7 @@ static void UpdateNickInHealthbox(u8 healthboxSpriteId, struct Pokemon *mon) spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum * 32; - if (GetBankSide(gSprites[healthboxSpriteId].data6) == SIDE_PLAYER) + if (GetBankSide(gSprites[healthboxSpriteId].data[6]) == SIDE_PLAYER) { sub_8075198((void*)(0x6010040 + spriteTileNum), windowTileData, 6); ptr = (void*)(OBJ_VRAM0); @@ -1991,13 +1991,13 @@ static void TryAddPokeballIconToHealthbox(u8 healthboxSpriteId, bool8 noStatus) if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) return; - bank = gSprites[healthboxSpriteId].data6; + bank = gSprites[healthboxSpriteId].data[6]; if (GetBankSide(bank) == SIDE_PLAYER) return; if (!GetSetPokedexFlag(SpeciesToNationalPokedexNum(GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES)), FLAG_GET_CAUGHT)) return; - healthboxSpriteId_2 = gSprites[healthboxSpriteId].data5; + healthboxSpriteId_2 = gSprites[healthboxSpriteId].data[5]; if (noStatus) CpuCopy32(GetHealthboxElementGfxPtr(HEALTHBOX_GFX_70), (void*)(OBJ_VRAM0 + (gSprites[healthboxSpriteId_2].oam.tileNum + 8) * 32), 32); @@ -2014,8 +2014,8 @@ static void UpdateStatusIconInHealthbox(u8 healthboxSpriteId) s16 tileNumAdder; u8 statusPalId; - bank = gSprites[healthboxSpriteId].data6; - healthboxSpriteId_2 = gSprites[healthboxSpriteId].data5; + bank = gSprites[healthboxSpriteId].data[6]; + healthboxSpriteId_2 = gSprites[healthboxSpriteId].data[5]; if (GetBankSide(bank) == SIDE_PLAYER) { status = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_STATUS); @@ -2178,12 +2178,12 @@ static void UpdateLeftNoOfBallsTextOnHealthbox(u8 healthboxSpriteId) void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elementId) { s32 maxHp, currHp; - u8 bank = gSprites[healthboxSpriteId].data6; + u8 bank = gSprites[healthboxSpriteId].data[6]; if (elementId == HEALTHBOX_ALL && !IsDoubleBattle()) GetBankSide(bank); // pointless function call - if (GetBankSide(gSprites[healthboxSpriteId].data6) == SIDE_PLAYER) + if (GetBankSide(gSprites[healthboxSpriteId].data[6]) == SIDE_PLAYER) { u8 isDoubles; @@ -2308,7 +2308,7 @@ static void sub_8074B9C(u8 bank, u8 whichBar) } for (i = 0; i < 6; i++) { - u8 healthboxSpriteId_2 = gSprites[gBattleSpritesDataPtr->battleBars[bank].healthboxSpriteId].data5; + u8 healthboxSpriteId_2 = gSprites[gBattleSpritesDataPtr->battleBars[bank].healthboxSpriteId].data[5]; if (i < 2) CpuCopy32(GetHealthboxElementGfxPtr(barElementId) + array[i] * 32, (void*)(OBJ_VRAM0 + (gSprites[healthboxSpriteId_2].oam.tileNum + 2 + i) * 32), 32); diff --git a/src/battle_message.c b/src/battle_message.c index 9c37cf646..cab4bdf42 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -2,16 +2,17 @@ #include "battle.h" #include "battle_message.h" #include "battle_string_ids.h" -#include "moves.h" +#include "constants/moves.h" #include "text.h" #include "string_util.h" -#include "items.h" +#include "constants/items.h" #include "event_data.h" #include "link.h" #include "item.h" #include "window.h" #include "palette.h" #include "battle_controllers.h" +#include "battle_setup.h" extern u16 gLastUsedItem; extern u8 gLastUsedAbility; @@ -54,12 +55,10 @@ extern void sub_81D5554(u8 *txtPtr, u16 trainerId); // pokenav extern void GetEreaderTrainerName(u8 *txtPtr); extern void sub_81A36D0(u8 arg0, u16 trainerId); // battle_frontier_2 extern void sub_81D572C(u8 arg0, u16 trainerId); // pokenav -extern const u8* GetTrainer1LoseText(void); // battle_setup -extern const u8* GetTrainer2LoseText(void); // battle_setup extern void GetFrontierTrainerName(u8 *dst, u16 trainerId); extern s32 GetStringCenterAlignXOffsetWithLetterSpacing(u8 fontId, const u8 *str, s32 totalWidth, s16 letterSpacing); extern u8 GetTextSpeedInRecordedBattle(void); -extern u8 sav2_get_text_speed(void); +extern u8 GetPlayerTextSpeed(void); // this file's functions static void sub_814F8F8(u8 *textPtr); @@ -932,58 +931,237 @@ const u16 gSandStormHailDmgStringIds[] = STRINGID_PKMNBUFFETEDBYSANDSTORM, STRINGID_PKMNPELTEDBYHAIL }; -// todo once battlescripts are dumped -const u16 gTooLazyToSplitThemStringIds[] = +const u16 gSandStormHailEndStringIds[] = { - STRINGID_SANDSTORMSUBSIDED, STRINGID_HAILSTOPPED, STRINGID_RAINCONTINUES, STRINGID_DOWNPOURCONTINUES, - STRINGID_RAINSTOPPED, STRINGID_PKMNPROTECTEDITSELF2, STRINGID_PKMNBRACEDITSELF, - STRINGID_BUTITFAILED, STRINGID_BUTITFAILED, STRINGID_PKMNRAISEDDEF, - STRINGID_PKMNRAISEDDEFALITTLE, STRINGID_PKMNRAISEDSPDEF, STRINGID_PKMNRAISEDSPDEFALITTLE, - STRINGID_PKMNCOVEREDBYVEIL, STRINGID_PKMNSEEDED, STRINGID_PKMNEVADEDATTACK, + STRINGID_SANDSTORMSUBSIDED, STRINGID_HAILSTOPPED +}; + +const u16 gRainContinuesStringIds[] = +{ + STRINGID_RAINCONTINUES, STRINGID_DOWNPOURCONTINUES, STRINGID_RAINSTOPPED +}; + +const u16 gProtectLikeUsedStringIds[] = +{ + STRINGID_PKMNPROTECTEDITSELF2, STRINGID_PKMNBRACEDITSELF, STRINGID_BUTITFAILED +}; + +const u16 gReflectLightScreenSafeguardStringIds[] = +{ + STRINGID_BUTITFAILED, STRINGID_PKMNRAISEDDEF, STRINGID_PKMNRAISEDDEFALITTLE, + STRINGID_PKMNRAISEDSPDEF, STRINGID_PKMNRAISEDSPDEFALITTLE, STRINGID_PKMNCOVEREDBYVEIL +}; + +const u16 gLeechSeedStringIds[] = +{ + STRINGID_PKMNSEEDED, STRINGID_PKMNEVADEDATTACK, STRINGID_ITDOESNTAFFECT, STRINGID_PKMNSAPPEDBYLEECHSEED, STRINGID_ITSUCKEDLIQUIDOOZE, - STRINGID_PKMNWENTTOSLEEP, STRINGID_PKMNSLEPTHEALTHY, STRINGID_PKMNMAKINGUPROAR, - STRINGID_PKMNCALMEDDOWN, STRINGID_PKMNSTOCKPILED, STRINGID_PKMNCANTSTOCKPILE, - STRINGID_PKMNWOKEUP, STRINGID_PKMNWOKEUPINUPROAR, STRINGID_FAILEDTOSWALLOW, - STRINGID_PKMNHPFULL, STRINGID_PKMNCANTSLEEPINUPROAR2, STRINGID_UPROARKEPTPKMNAWAKE, - STRINGID_PKMNSTAYEDAWAKEUSING, STRINGID_PKMNSSTATCHANGED, STRINGID_PKMNSSTATCHANGED2, - STRINGID_STATSWONTINCREASE, STRINGID_EMPTYSTRING3, STRINGID_USINGXTHEYOFZN, - STRINGID_PKMNUSEDXTOGETPUMPED, STRINGID_PKMNSSTATCHANGED3, STRINGID_PKMNSSTATCHANGED4, - STRINGID_STATSWONTDECREASE, STRINGID_EMPTYSTRING3, STRINGID_PKMNWHIPPEDWHIRLWIND, - STRINGID_PKMNTOOKSUNLIGHT, STRINGID_PKMNLOWEREDHEAD, STRINGID_PKMNISGLOWING, - STRINGID_PKMNFLEWHIGH, STRINGID_PKMNDUGHOLE, STRINGID_PKMNHIDUNDERWATER, - STRINGID_PKMNSPRANGUP, STRINGID_PKMNSQUEEZEDBYBIND, STRINGID_PKMNWRAPPEDBY, - STRINGID_PKMNTRAPPEDINVORTEX, STRINGID_PKMNCLAMPED, STRINGID_PKMNTRAPPEDINVORTEX, - STRINGID_PKMNTRAPPEDBYSANDTOMB, STRINGID_PKMNSHROUDEDINMIST, STRINGID_BUTITFAILED, - STRINGID_PKMNGETTINGPUMPED, STRINGID_BUTITFAILED, STRINGID_PKMNTRANSFORMEDINTO, - STRINGID_BUTITFAILED, STRINGID_PKMNMADESUBSTITUTE, STRINGID_TOOWEAKFORSUBSTITUTE, - STRINGID_PKMNWASPOISONED, STRINGID_PKMNPOISONEDBY, STRINGID_PKMNWASPARALYZED, - STRINGID_PKMNWASPARALYZEDBY, STRINGID_PKMNFELLASLEEP, STRINGID_PKMNMADESLEEP, - STRINGID_PKMNWASBURNED, STRINGID_PKMNBURNEDBY, STRINGID_PKMNWASFROZEN, - STRINGID_PKMNFROZENBY, STRINGID_PKMNWASDEFROSTED2, STRINGID_PKMNWASDEFROSTEDBY, - STRINGID_ATTACKMISSED, STRINGID_PKMNUNAFFECTED, STRINGID_PKMNFELLINLOVE, - STRINGID_PKMNSXINFATUATEDY, STRINGID_PKMNENERGYDRAINED, STRINGID_ITSUCKEDLIQUIDOOZE, - STRINGID_ELECTRICITYWEAKENED, STRINGID_FIREWEAKENED, STRINGID_BELLCHIMED, - STRINGID_BELLCHIMED, STRINGID_BELLCHIMED, STRINGID_BELLCHIMED, - STRINGID_SOOTHINGAROMA, STRINGID_PKMNFORESAWATTACK, STRINGID_PKMNCHOSEXASDESTINY, - STRINGID_PKMNBROKEFREE, STRINGID_ITAPPEAREDCAUGHT, STRINGID_AARGHALMOSTHADIT, - STRINGID_SHOOTSOCLOSE, STRINGID_ITISRAINING, STRINGID_ITISRAINING, +}; + +const u16 gRestUsedStringIds[] = +{ + STRINGID_PKMNWENTTOSLEEP, STRINGID_PKMNSLEPTHEALTHY +}; + +const u16 gUproarOverTurnStringIds[] = +{ + STRINGID_PKMNMAKINGUPROAR, STRINGID_PKMNCALMEDDOWN +}; + +const u16 gStockpileUsedStringIds[] = +{ + STRINGID_PKMNSTOCKPILED, STRINGID_PKMNCANTSTOCKPILE, +}; + +const u16 gWokeUpStringIds[] = +{ + STRINGID_PKMNWOKEUP, STRINGID_PKMNWOKEUPINUPROAR +}; + +const u16 gSwallowFailStringIds[] = +{ + STRINGID_FAILEDTOSWALLOW, STRINGID_PKMNHPFULL +}; + +const u16 gUproarAwakeStringIds[] = +{ + STRINGID_PKMNCANTSLEEPINUPROAR2, STRINGID_UPROARKEPTPKMNAWAKE, STRINGID_PKMNSTAYEDAWAKEUSING +}; + +const u16 gStatUpStringIds[] = +{ + STRINGID_PKMNSSTATCHANGED, STRINGID_PKMNSSTATCHANGED2, STRINGID_STATSWONTINCREASE, + STRINGID_EMPTYSTRING3, STRINGID_USINGXTHEYOFZN, STRINGID_PKMNUSEDXTOGETPUMPED +}; + +const u16 gStatDownStringIds[] = +{ + STRINGID_PKMNSSTATCHANGED3, STRINGID_PKMNSSTATCHANGED4, STRINGID_STATSWONTDECREASE, STRINGID_EMPTYSTRING3 +}; + +const u16 gFirstTurnOfTwoStringIds[] = +{ + STRINGID_PKMNWHIPPEDWHIRLWIND, STRINGID_PKMNTOOKSUNLIGHT, STRINGID_PKMNLOWEREDHEAD, STRINGID_PKMNISGLOWING, + STRINGID_PKMNFLEWHIGH, STRINGID_PKMNDUGHOLE, STRINGID_PKMNHIDUNDERWATER, STRINGID_PKMNSPRANGUP +}; + +const u16 gWrappedStringIds[] = +{ + STRINGID_PKMNSQUEEZEDBYBIND, STRINGID_PKMNWRAPPEDBY, STRINGID_PKMNTRAPPEDINVORTEX, + STRINGID_PKMNCLAMPED, STRINGID_PKMNTRAPPEDINVORTEX, STRINGID_PKMNTRAPPEDBYSANDTOMB +}; + +const u16 gMistUsedStringIds[] = +{ + STRINGID_PKMNSHROUDEDINMIST, STRINGID_BUTITFAILED +}; + +const u16 gFocusEnergyUsedStringIds[] = +{ + STRINGID_PKMNGETTINGPUMPED, STRINGID_BUTITFAILED +}; + +const u16 gTransformUsedStringIds[] = +{ + STRINGID_PKMNTRANSFORMEDINTO, STRINGID_BUTITFAILED +}; + +const u16 gSubsituteUsedStringIds[] = +{ + STRINGID_PKMNMADESUBSTITUTE, STRINGID_TOOWEAKFORSUBSTITUTE +}; + +const u16 gGotPoisonedStringIds[] = +{ + STRINGID_PKMNWASPOISONED, STRINGID_PKMNPOISONEDBY +}; + +const u16 gGotParalyzedStringIds[] = +{ + STRINGID_PKMNWASPARALYZED, STRINGID_PKMNWASPARALYZEDBY +}; + +const u16 gFellAsleepStringIds[] = +{ + STRINGID_PKMNFELLASLEEP, STRINGID_PKMNMADESLEEP, +}; + +const u16 gGotBurnedStringIds[] = +{ + STRINGID_PKMNWASBURNED, STRINGID_PKMNBURNEDBY +}; + +const u16 gGotFrozenStringIds[] = +{ + STRINGID_PKMNWASFROZEN, STRINGID_PKMNFROZENBY +}; + +const u16 gGotDefrostedStringIds[] = +{ + STRINGID_PKMNWASDEFROSTED2, STRINGID_PKMNWASDEFROSTEDBY +}; + +const u16 gKOFailedStringIds[] = +{ + STRINGID_ATTACKMISSED, STRINGID_PKMNUNAFFECTED +}; + +const u16 gAttractUsedStringIds[] = +{ + STRINGID_PKMNFELLINLOVE, STRINGID_PKMNSXINFATUATEDY +}; + +const u16 gLeechSeedDrainStringIds[] = +{ + STRINGID_PKMNENERGYDRAINED, STRINGID_ITSUCKEDLIQUIDOOZE +}; + +const u16 gSportsUsedStringIds[] = +{ + STRINGID_ELECTRICITYWEAKENED, STRINGID_FIREWEAKENED +}; + +const u16 gPartyStatusHealStringIds[] = +{ + STRINGID_BELLCHIMED, STRINGID_BELLCHIMED, STRINGID_BELLCHIMED, STRINGID_BELLCHIMED, + // interesting how there are four instances of the same string + STRINGID_SOOTHINGAROMA +}; + +const u16 gFutureMoveUsedStringIds[] = +{ + STRINGID_PKMNFORESAWATTACK, STRINGID_PKMNCHOSEXASDESTINY +}; + +const u16 gBallEscapeStringIds[] = +{ + STRINGID_PKMNBROKEFREE, STRINGID_ITAPPEAREDCAUGHT, STRINGID_AARGHALMOSTHADIT, STRINGID_SHOOTSOCLOSE +}; + +const u16 gWeatherContinuesStringIds[] = +{ STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_ITISRAINING, - STRINGID_SANDSTORMISRAGING, STRINGID_ITISRAINING, STRINGID_ITISRAINING, - STRINGID_ITISRAINING, STRINGID_SUNLIGHTSTRONG, STRINGID_ITISRAINING, - STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_PKMNLOAFING, - STRINGID_PKMNWONTOBEY, STRINGID_PKMNTURNEDAWAY, STRINGID_PKMNPRETENDNOTNOTICE, - STRINGID_PKMNINCAPABLEOFPOWER, STRINGID_CREPTCLOSER, STRINGID_CANTGETCLOSER, - STRINGID_PKMNCURIOUSABOUTX, STRINGID_PKMNENTHRALLEDBYX, STRINGID_PKMNIGNOREDX, + STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_SANDSTORMISRAGING, + STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_ITISRAINING, + STRINGID_SUNLIGHTSTRONG, STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_ITISRAINING +}; + +const u16 gInobedientStringIds[] = +{ + STRINGID_PKMNLOAFING, STRINGID_PKMNWONTOBEY, STRINGID_PKMNTURNEDAWAY, + STRINGID_PKMNPRETENDNOTNOTICE, STRINGID_PKMNINCAPABLEOFPOWER +}; + +const u16 gSafariGetNearStringIds[] = +{ + STRINGID_CREPTCLOSER, STRINGID_CANTGETCLOSER +}; + +const u16 gSafariPokeblockResultStringIds[] = +{ + STRINGID_PKMNCURIOUSABOUTX, STRINGID_PKMNENTHRALLEDBYX, STRINGID_PKMNIGNOREDX +}; + +const u16 gTrainerItemCuredStatusStringIds[] = +{ STRINGID_PKMNSITEMSNAPPEDOUT, STRINGID_PKMNSITEMCUREDPARALYSIS, STRINGID_PKMNSITEMDEFROSTEDIT, - STRINGID_PKMNSITEMHEALEDBURN, STRINGID_PKMNSITEMCUREDPOISON, STRINGID_PKMNSITEMWOKEIT, - STRINGID_PKMNSITEMCUREDPROBLEM, STRINGID_PKMNSITEMNORMALIZEDSTATUS, STRINGID_PKMNSXPREVENTSBURNS, - STRINGID_PKMNSXPREVENTSYSZ, STRINGID_PKMNSXHADNOEFFECTONY, STRINGID_PKMNPREVENTSPARALYSISWITH, - STRINGID_PKMNSXPREVENTSYSZ, STRINGID_PKMNSXHADNOEFFECTONY, STRINGID_PKMNPREVENTSPOISONINGWITH, - STRINGID_PKMNSXPREVENTSYSZ, STRINGID_PKMNSXHADNOEFFECTONY, STRINGID_PKMNOBTAINEDX, - STRINGID_PKMNOBTAINEDX2, STRINGID_PKMNOBTAINEDXYOBTAINEDZ, STRINGID_PKMNRAISEDFIREPOWERWITH, - STRINGID_PKMNSXMADEYINEFFECTIVE, STRINGID_PKMNTRANSFERREDSOMEONESPC, STRINGID_PKMNTRANSFERREDLANETTESPC, - STRINGID_PKMNBOXSOMEONESPCFULL, STRINGID_PKMNBOXLANETTESPCFULL, + STRINGID_PKMNSITEMHEALEDBURN, STRINGID_PKMNSITEMCUREDPOISON, STRINGID_PKMNSITEMWOKEIT +}; + +const u16 gBerryEffectStringIds[] = +{ + STRINGID_PKMNSITEMCUREDPROBLEM, STRINGID_PKMNSITEMNORMALIZEDSTATUS +}; + +const u16 gBRNPreventionStringIds[] = +{ + STRINGID_PKMNSXPREVENTSBURNS, STRINGID_PKMNSXPREVENTSYSZ, STRINGID_PKMNSXHADNOEFFECTONY +}; + +const u16 gPRLZPreventionStringIds[] = +{ + STRINGID_PKMNPREVENTSPARALYSISWITH, STRINGID_PKMNSXPREVENTSYSZ, STRINGID_PKMNSXHADNOEFFECTONY +}; + +const u16 gPSNPreventionStringIds[] = +{ + STRINGID_PKMNPREVENTSPOISONINGWITH, STRINGID_PKMNSXPREVENTSYSZ, STRINGID_PKMNSXHADNOEFFECTONY +}; + +const u16 gItemSwapStringIds[] = +{ + STRINGID_PKMNOBTAINEDX, STRINGID_PKMNOBTAINEDX2, STRINGID_PKMNOBTAINEDXYOBTAINEDZ +}; + +const u16 gFlashFireStringIds[] = +{ + STRINGID_PKMNRAISEDFIREPOWERWITH, STRINGID_PKMNSXMADEYINEFFECTIVE +}; + +const u16 gCaughtMonStringIds[] = +{ + STRINGID_PKMNTRANSFERREDSOMEONESPC, STRINGID_PKMNTRANSFERREDLANETTESPC, STRINGID_PKMNBOXSOMEONESPCFULL, STRINGID_PKMNBOXLANETTESPCFULL, }; const u16 gTrappingMoves[] = @@ -1102,9 +1280,10 @@ const u8 gText_PkmnGettingIntoPosition[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} is const u8 gText_PkmnBeganGrowlingDeeply[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} began growling deeply!"); const u8 gText_PkmnEagerForMore[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} is eager for more!"); -const u16 gUnknown_085CCF0A[] = +const u16 gStringIds_85CCF0A[] = { - 0x016E, 0x016F, 0x0170, 0x0171 + STRINGID_GLINTAPPEARSINEYE, STRINGID_PKMNGETTINGINTOPOSITION, + STRINGID_PKMNBEGANGROWLINGDEEPLY, STRINGID_PKMNEAGERFORMORE }; const u8 gText_RefIfNothingIsDecided[] = _("REFEREE: If nothing is decided in\n3 turns, we will go to judging!"); @@ -1452,9 +1631,9 @@ void BufferStringBattle(u16 stringID) stringPtr = gText_AttackerUsedX; break; case STRINGID_BATTLEEND: // battle end - if (gBattleTextBuff1[0] & BATTLE_OUTCOME_BIT_x80) + if (gBattleTextBuff1[0] & OUTCOME_LINK_BATTLE_RUN) { - gBattleTextBuff1[0] &= ~(BATTLE_OUTCOME_BIT_x80); + gBattleTextBuff1[0] &= ~(OUTCOME_LINK_BATTLE_RUN); if (GetBankSide(gActiveBank) == SIDE_OPPONENT && gBattleTextBuff1[0] != BATTLE_DREW) gBattleTextBuff1[0] ^= (BATTLE_LOST | BATTLE_WON); @@ -1736,11 +1915,11 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) else toCpy = gMoveNames[gStringInfo->currentMove]; break; - case B_TXT_LAST_MOVE: // last used move name - if (gStringInfo->lastMove > LAST_MOVE_INDEX) + case B_TXT_LAST_MOVE: // originally used move name + if (gStringInfo->originallyUsedMove > LAST_MOVE_INDEX) toCpy = gText_UnknownMoveTypes[gBattleStruct->stringMoveType]; else - toCpy = gMoveNames[gStringInfo->lastMove]; + toCpy = gMoveNames[gStringInfo->originallyUsedMove]; break; case B_TXT_LAST_ITEM: // last used item if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) @@ -1888,7 +2067,7 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) } else { - toCpy = GetTrainer1LoseText(); + toCpy = GetTrainerALoseText(); } break; case B_TXT_TRAINER1_WIN_TEXT: // trainerA win text @@ -1985,7 +2164,7 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) } else { - toCpy = GetTrainer2LoseText(); + toCpy = GetTrainerBLoseText(); } break; case B_TXT_TRAINER2_WIN_TEXT: @@ -2118,7 +2297,7 @@ static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst) StringGetEnd10(dst); srcID += 3; break; - case B_BUFF_NEGATIVE_FLAVOUR: // flavour table + case B_BUFF_NEGATIVE_FLAVOR: // flavor table StringAppend(dst, gPokeblockWasTooXStringTable[src[srcID + 1]]); srcID += 2; break; @@ -2266,7 +2445,7 @@ void BattleHandleAddTextPrinter(const u8 *text, u8 arg1) else if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) speed = sRecordedBattleTextSpeeds[GetTextSpeedInRecordedBattle()]; else - speed = sav2_get_text_speed(); + speed = GetPlayerTextSpeed(); gTextFlags.flag_0 = 1; } diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 6409ff56e..656f9f43a 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -1,21 +1,23 @@ #include "global.h" #include "battle.h" -#include "battle_move_effects.h" +#include "constants/battle_move_effects.h" #include "battle_message.h" #include "battle_ai_script_commands.h" -#include "moves.h" -#include "abilities.h" +#include "battle_scripts.h" +#include "constants/moves.h" +#include "constants/abilities.h" #include "item.h" -#include "items.h" -#include "hold_effects.h" +#include "constants/items.h" +#include "constants/hold_effects.h" #include "util.h" #include "pokemon.h" #include "calculate_base_damage.h" -#include "rng.h" +#include "random.h" #include "battle_controllers.h" #include "battle_interface.h" -#include "species.h" -#include "songs.h" +#include "constants/species.h" +#include "constants/songs.h" +#include "constants/trainers.h" #include "text.h" #include "sound.h" #include "pokedex.h" @@ -73,10 +75,10 @@ extern u8 gCurrentActionFuncId; extern u32 gHitMarker; extern u8 gBattleMoveFlags; extern u8 gBattleCommunication[]; -extern u16 gUnknown_02024250[4]; -extern u16 gUnknown_02024258[4]; -extern u16 gUnknown_02024260[4]; -extern u8 gUnknown_02024270[4]; +extern u16 gLastLandedMoves[4]; +extern u16 gLastHitByType[4]; +extern u16 gLastResultingMoves[4]; +extern u8 gLastHitBy[4]; extern u8 gStringBank; extern u16 gDynamicBasePower; extern u16 gLastUsedItem; @@ -98,9 +100,9 @@ extern u8 gCurrentTurnActionNumber; extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200]; extern u16 gLockedMoves[BATTLE_BANKS_COUNT]; extern u16 gPartnerTrainerId; -extern u16 gLastUsedMove; -extern u16 gUnknownMovesUsedByBanks[BATTLE_BANKS_COUNT]; -extern u16 gLastUsedMovesByBanks[BATTLE_BANKS_COUNT]; +extern u16 gChosenMove; +extern u16 gLastPrintedMoves[BATTLE_BANKS_COUNT]; +extern u16 gLastMoves[BATTLE_BANKS_COUNT]; extern u16 gTrainerBattleOpponent_A; extern u16 gTrainerBattleOpponent_B; extern u8 gUnknown_020241E9; @@ -146,88 +148,6 @@ extern u8 sub_813B21C(void); extern u16 get_unknown_box_id(void); extern void sub_80356D0(void); -// BattleScripts -extern const u8 BattleScript_MoveEnd[]; -extern const u8 BattleScript_NoPPForMove[]; -extern const u8 BattleScript_MagicCoatBounce[]; -extern const u8 BattleScript_TookAttack[]; -extern const u8 BattleScript_SnatchedMove[]; -extern const u8 BattleScript_Pausex20[]; -extern const u8 BattleScript_SubstituteFade[]; -extern const u8 BattleScript_HangedOnMsg[]; -extern const u8 BattleScript_OneHitKOMsg[]; -extern const u8 BattleScript_EnduredMsg[]; -extern const u8 BattleScript_PSNPrevention[]; -extern const u8 BattleScript_BRNPrevention[]; -extern const u8 BattleScript_PRLZPrevention[]; -extern const u8 BattleScript_FlinchPrevention[]; -extern const u8 BattleScript_StatUp[]; -extern const u8 BattleScript_StatDown[]; -extern const u8 BattleScript_NoItemSteal[]; -extern const u8 BattleScript_ItemSteal[]; -extern const u8 BattleScript_RapidSpinAway[]; -extern const u8 BattleScript_TargetPRLZHeal[]; -extern const u8 BattleScript_KnockedOff[]; -extern const u8 BattleScript_StickyHoldActivates[]; -extern const u8 BattleScript_AllStatsUp[]; -extern const u8 BattleScript_AtkDefDown[]; -extern const u8 BattleScript_SAtkDown2[]; -extern const u8 BattleScript_LevelUp[]; -extern const u8 BattleScript_WrapFree[]; -extern const u8 BattleScript_LeechSeedFree[]; -extern const u8 BattleScript_SpikesFree[]; -extern const u8 BattleScript_ButItFailed[]; -extern const u8 BattleScript_ObliviousPreventsAttraction[]; -extern const u8 BattleScript_MistProtected[]; -extern const u8 BattleScript_AbilityNoStatLoss[]; -extern const u8 BattleScript_AbilityNoSpecificStatLoss[]; -extern const u8 BattleScript_TrainerBallBlock[]; -extern const u8 BattleScript_WallyBallThrow[]; -extern const u8 BattleScript_SuccessBallThrow[]; -extern const u8 BattleScript_ShakeBallThrow[]; -extern const u8 BattleScript_FaintAttacker[]; -extern const u8 BattleScript_FaintTarget[]; -extern const u8 BattleScript_DestinyBondTakesLife[]; -extern const u8 BattleScript_GrudgeTakesPp[]; -extern const u8 BattleScript_RageIsBuilding[]; -extern const u8 BattleScript_DefrostedViaFireMove[]; -extern const u8 gUnknown_082DB87D[]; -extern const u8 gUnknown_082DAE90[]; -extern const u8 gUnknown_082DAE59[]; -extern const u8 gUnknown_082DAEC7[]; -extern const u8 BattleScript_MoveEffectSleep[]; -extern const u8 BattleScript_MoveEffectPoison[]; -extern const u8 BattleScript_MoveEffectBurn[]; -extern const u8 BattleScript_MoveEffectFreeze[]; -extern const u8 BattleScript_MoveEffectParalysis[]; -extern const u8 BattleScript_MoveEffectToxic[]; -extern const u8 BattleScript_MoveEffectConfusion[]; -extern const u8 BattleScript_MoveEffectUproar[]; -extern const u8 BattleScript_MoveEffectPayDay[]; -extern const u8 BattleScript_MoveEffectWrap[]; -extern const u8 BattleScript_MoveEffectRecoil33[]; -extern const u8 BattleScript_DampStopsExplosion[]; -extern const u8 BattleScript_MistProtected[]; -extern const u8 BattleScript_AbilityNoStatLoss[]; -extern const u8 BattleScript_AbilityNoSpecificStatLoss[]; -extern const u8 BattleScript_ButItFailed[]; -extern const u8 gUnknown_082DADD8[]; -extern const u8 BattleScript_PrintPayDayMoneyString[]; -extern const u8 BattleScript_SturdyPreventsOHKO[]; -extern const u8 BattleScript_ObliviousPreventsAttraction[]; -extern const u8 BattleScript_PauseEffectivenessSoundResultMsgEndMove[]; -extern const u8 BattleScript_CastformChange[]; -extern const u8 BattleScript_TrainerBallBlock[]; -extern const u8 BattleScript_WallyBallThrow[]; -extern const u8 BattleScript_SuccessBallThrow[]; -extern const u8 BattleScript_ShakeBallThrow[]; -extern const u8 BattleScript_PresentDamageTarget[]; -extern const u8 BattleScript_AlreadyAtFullHp[]; -extern const u8 BattleScript_PresentHealTarget[]; -extern const u8 BattleScript_WrapFree[]; -extern const u8 BattleScript_LeechSeedFree[]; -extern const u8 BattleScript_SpikesFree[]; - // strings extern const u8 gText_BattleYesNoChoice[]; @@ -247,7 +167,7 @@ extern const u8 gText_BattleYesNoChoice[]; // this file's functions static bool8 IsTwoTurnsMove(u16 move); -static void DestinyBondFlagUpdate(void); +static void TrySetDestinyBondToHappen(void); static u8 AttacksThisTurn(u8 bank, u16 move); // Note: returns 1 if it's a charging turn, otherwise 2. static void CheckWonderGuardAndLevitate(void); static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8, const u8* BS_ptr); @@ -267,41 +187,41 @@ static void atk01_accuracycheck(void); static void atk02_attackstring(void); static void atk03_ppreduce(void); static void atk04_critcalc(void); -static void atk05_damagecalc1(void); +static void atk05_damagecalc(void); static void atk06_typecalc(void); -static void atk07_dmg_adjustment(void); -static void atk08_dmg_adjustment2(void); +static void atk07_adjustnormaldamage(void); +static void atk08_adjustnormaldamage2(void); static void atk09_attackanimation(void); static void atk0A_waitanimation(void); static void atk0B_healthbarupdate(void); static void atk0C_datahpupdate(void); static void atk0D_critmessage(void); -static void atk0E_effectiveness_sound(void); +static void atk0E_effectivenesssound(void); static void atk0F_resultmessage(void); static void atk10_printstring(void); -static void atk11_printstring_playeronly(void); +static void atk11_printselectionstring(void); static void atk12_waitmessage(void); static void atk13_printfromtable(void); -static void atk14_printfromtable_playeronly(void); +static void atk14_printselectionstringfromtable(void); static void atk15_seteffectwithchance(void); static void atk16_seteffectprimary(void); static void atk17_seteffectsecondary(void); -static void atk18_status_effect_clear(void); -static void atk19_faint_pokemon(void); -static void atk1A_faint_animation(void); -static void atk1B_faint_effects_clear(void); +static void atk18_clearstatusfromeffect(void); +static void atk19_tryfaintmon(void); +static void atk1A_dofaintanimation(void); +static void atk1B_cleareffectsonfaint(void); static void atk1C_jumpifstatus(void); static void atk1D_jumpifstatus2(void); static void atk1E_jumpifability(void); static void atk1F_jumpifsideaffecting(void); static void atk20_jumpifstat(void); -static void atk21_jumpifstatus3(void); +static void atk21_jumpifstatus3condition(void); static void atk22_jumpiftype(void); static void atk23_getexp(void); static void atk24(void); -static void atk25_move_values_cleanup(void); -static void atk26_set_multihit(void); -static void atk27_decrement_multihit(void); +static void atk25_movevaluescleanup(void); +static void atk26_setmultihit(void); +static void atk27_decrementmultihit(void); static void atk28_goto(void); static void atk29_jumpifbyte(void); static void atk2A_jumpifhalfword(void); @@ -312,7 +232,7 @@ static void atk2E_setbyte(void); static void atk2F_addbyte(void); static void atk30_subbyte(void); static void atk31_copyarray(void); -static void atk32_copyarray_withindex(void); +static void atk32_copyarraywithindex(void); static void atk33_orbyte(void); static void atk34_orhalfword(void); static void atk35_orword(void); @@ -326,75 +246,75 @@ static void atk3C_return(void); static void atk3D_end(void); static void atk3E_end2(void); static void atk3F_end3(void); -static void atk40_jump_if_move_affected_by_protect(void); +static void atk40_jumpifaffectedbyprotect(void); static void atk41_call(void); static void atk42_jumpiftype2(void); static void atk43_jumpifabilitypresent(void); -static void atk44_end_selection_script(void); +static void atk44_endselectionscript(void); static void atk45_playanimation(void); static void atk46_playanimation2(void); static void atk47_setgraphicalstatchangevalues(void); static void atk48_playstatchangeanimation(void); static void atk49_moveend(void); static void atk4A_typecalc2(void); -static void atk4B_return_atk_to_ball(void); -static void atk4C_get_switched_mon_data(void); -static void atk4D_switch_data_update(void); -static void atk4E_switchin_anim(void); -static void atk4F_jump_if_cannot_switch(void); +static void atk4B_returnatktoball(void); +static void atk4C_getswitchedmondata(void); +static void atk4D_switchindataupdate(void); +static void atk4E_switchinanim(void); +static void atk4F_jumpifcantswitch(void); static void atk50_openpartyscreen(void); -static void atk51_switch_handle_order(void); -static void atk52_switch_in_effects(void); -static void atk53_trainer_slide(void); -static void atk54_effectiveness_sound(void); -static void atk55_play_fanfare(void); -static void atk56_fainting_cry(void); +static void atk51_switchhandleorder(void); +static void atk52_switchineffects(void); +static void atk53_trainerslidein(void); +static void atk54_playse(void); +static void atk55_fanfare(void); +static void atk56_playfaintcry(void); static void atk57(void); -static void atk58_return_to_ball(void); -static void atk59_learnmove_inbattle(void); +static void atk58_returntoball(void); +static void atk59_handlelearnnewmove(void); static void atk5A_yesnoboxlearnmove(void); static void atk5B_yesnoboxstoplearningmove(void); static void atk5C_hitanimation(void); static void atk5D_getmoneyreward(void); -static void atk5E_8025A70(void); -static void atk5F_8025B24(void); -static void atk60_increment_gamestat(void); -static void atk61_draw_party_status_summary(void); -static void atk62_08025C6C(void); +static void atk5E(void); +static void atk5F(void); +static void atk60_incrementgamestat(void); +static void atk61_drawpartystatussummary(void); +static void atk62(void); static void atk63_jumptorandomattack(void); static void atk64_statusanimation(void); static void atk65_status2animation(void); static void atk66_chosenstatusanimation(void); static void atk67_yesnobox(void); -static void atk68_cancel_everyones_actions(void); -static void atk69_dmg_adjustment3(void); +static void atk68_cancelallactions(void); +static void atk69_adjustsetdamage(void); static void atk6A_removeitem(void); static void atk6B_atknameinbuff1(void); -static void atk6C_draw_lvlupbox(void); -static void atk6D_reset_sentpokes_value(void); -static void atk6E_set_atk_to_player0(void); -static void atk6F_set_visible(void); -static void atk70_record_last_used_ability(void); -static void atk71_buffer_move_to_learn(void); -static void atk72_jump_if_run_attempt_success(void); -static void atk73_hp_thresholds(void); -static void atk74_hp_thresholds2(void); -static void atk75_item_effect_on_opponent(void); +static void atk6C_drawlvlupbox(void); +static void atk6D_resetsentmonsvalue(void); +static void atk6E_setatktoplayer0(void); +static void atk6F_makevisible(void); +static void atk70_recordlastability(void); +static void atk71_buffermovetolearn(void); +static void atk72_jumpifplayerran(void); +static void atk73_hpthresholds(void); +static void atk74_hpthresholds2(void); +static void atk75_useitemonopponent(void); static void atk76_various(void); -static void atk77_set_protect_like(void); +static void atk77_setprotectlike(void); static void atk78_faintifabilitynotdamp(void); static void atk79_setatkhptozero(void); -static void atk7A_jumpwhiletargetvalid(void); -static void atk7B_healhalfHP_if_possible(void); +static void atk7A_jumpifnexttargetvalid(void); +static void atk7B_tryhealhalfhealth(void); static void atk7C_trymirrormove(void); -static void atk7D_set_rain(void); +static void atk7D_setrain(void); static void atk7E_setreflect(void); static void atk7F_setseeded(void); static void atk80_manipulatedamage(void); -static void atk81_setrest(void); +static void atk81_trysetrest(void); static void atk82_jumpifnotfirstturn(void); static void atk83_nop(void); -static void atk84_jump_if_cant_sleep(void); +static void atk84_jumpifcantmakeasleep(void); static void atk85_stockpile(void); static void atk86_stockpiletobasedamage(void); static void atk87_stockpiletohpheal(void); @@ -403,22 +323,22 @@ static void atk89_statbuffchange(void); static void atk8A_normalisebuffs(void); static void atk8B_setbide(void); static void atk8C_confuseifrepeatingattackends(void); -static void atk8D_setmultihit_counter(void); -static void atk8E_init_multihit_string(void); +static void atk8D_setmultihitcounter(void); +static void atk8E_initmultihitstring(void); static void atk8F_forcerandomswitch(void); -static void atk90_conversion_type_change(void); +static void atk90_tryconversiontypechange(void); static void atk91_givepaydaymoney(void); static void atk92_setlightscreen(void); -static void atk93_ko_move(void); +static void atk93_tryKO(void); static void atk94_damagetohalftargethp(void); static void atk95_setsandstorm(void); static void atk96_weatherdamage(void); -static void atk97_try_infatuation(void); -static void atk98_status_icon_update(void); +static void atk97_tryinfatuating(void); +static void atk98_updatestatusicon(void); static void atk99_setmist(void); -static void atk9A_set_focusenergy(void); +static void atk9A_setfocusenergy(void); static void atk9B_transformdataexecution(void); -static void atk9C_set_substitute(void); +static void atk9C_setsubstitute(void); static void atk9D_mimicattackcopy(void); static void atk9E_metronome(void); static void atk9F_dmgtolevel(void); @@ -426,39 +346,39 @@ static void atkA0_psywavedamageeffect(void); static void atkA1_counterdamagecalculator(void); static void atkA2_mirrorcoatdamagecalculator(void); static void atkA3_disablelastusedattack(void); -static void atkA4_setencore(void); +static void atkA4_trysetencore(void); static void atkA5_painsplitdmgcalc(void); static void atkA6_settypetorandomresistance(void); static void atkA7_setalwayshitflag(void); static void atkA8_copymovepermanently(void); -static void atkA9_sleeptalk_choose_move(void); -static void atkAA_set_destinybond(void); -static void atkAB_DestinyBondFlagUpdate(void); +static void atkA9_trychoosesleeptalkmove(void); +static void atkAA_setdestinybond(void); +static void atkAB_trysetdestinybondtohappen(void); static void atkAC_remaininghptopower(void); -static void atkAD_spite_ppreduce(void); -static void atkAE_heal_party_status(void); +static void atkAD_tryspiteppreduce(void); +static void atkAE_healpartystatus(void); static void atkAF_cursetarget(void); -static void atkB0_set_spikes(void); -static void atkB1_set_foresight(void); -static void atkB2_setperishsong(void); +static void atkB0_trysetspikes(void); +static void atkB1_setforesight(void); +static void atkB2_trysetperishsong(void); static void atkB3_rolloutdamagecalculation(void); static void atkB4_jumpifconfusedandstatmaxed(void); static void atkB5_furycuttercalc(void); static void atkB6_happinesstodamagecalculation(void); static void atkB7_presentdamagecalculation(void); -static void atkB8_set_safeguard(void); +static void atkB8_setsafeguard(void); static void atkB9_magnitudedamagecalculation(void); static void atkBA_jumpifnopursuitswitchdmg(void); static void atkBB_setsunny(void); static void atkBC_maxattackhalvehp(void); static void atkBD_copyfoestats(void); static void atkBE_rapidspinfree(void); -static void atkBF_set_defense_curl(void); +static void atkBF_setdefensecurlbit(void); static void atkC0_recoverbasedonsunlight(void); -static void atkC1_hidden_power_calc(void); -static void atkC2_selectnexttarget(void); -static void atkC3_setfutureattack(void); -static void atkC4_beat_up(void); +static void atkC1_hiddenpowercalc(void); +static void atkC2_selectfirstvalidtarget(void); +static void atkC3_trysetfutureattack(void); +static void atkC4_trydobeatup(void); static void atkC5_setsemiinvulnerablebit(void); static void atkC6_clearsemiinvulnerablebit(void); static void atkC7_setminimize(void); @@ -471,46 +391,46 @@ static void atkCD_cureifburnedparalysedorpoisoned(void); static void atkCE_settorment(void); static void atkCF_jumpifnodamage(void); static void atkD0_settaunt(void); -static void atkD1_set_helpinghand(void); -static void atkD2_swap_items(void); -static void atkD3_copy_ability(void); -static void atkD4_wish_effect(void); -static void atkD5_setroots(void); +static void atkD1_trysethelpinghand(void); +static void atkD2_tryswapitems(void); +static void atkD3_trycopyability(void); +static void atkD4_trywish(void); +static void atkD5_trysetroots(void); static void atkD6_doubledamagedealtifdamaged(void); static void atkD7_setyawn(void); static void atkD8_setdamagetohealthdifference(void); static void atkD9_scaledamagebyhealthratio(void); -static void atkDA_abilityswap(void); -static void atkDB_imprisoneffect(void); -static void atkDC_setgrudge(void); +static void atkDA_tryswapabilities(void); +static void atkDB_tryimprision(void); +static void atkDC_trysetgrudge(void); static void atkDD_weightdamagecalculation(void); static void atkDE_asistattackselect(void); -static void atkDF_setmagiccoat(void); -static void atkE0_setstealstatchange(void); -static void atkE1_intimidate_string_loader(void); -static void atkE2_switchout_abilities(void); +static void atkDF_trysetmagiccoat(void); +static void atkE0_trysetsnatch(void); +static void atkE1_trygetintimidatetarget(void); +static void atkE2_switchoutabilities(void); static void atkE3_jumpifhasnohp(void); static void atkE4_getsecretpowereffect(void); static void atkE5_pickup(void); -static void atkE6_castform_change_animation(void); -static void atkE7_castform_data_change(void); +static void atkE6_docastformchangeanimation(void); +static void atkE7_trycastformdatachange(void); static void atkE8_settypebasedhalvers(void); static void atkE9_setweatherballtype(void); -static void atkEA_recycleitem(void); +static void atkEA_tryrecycleitem(void); static void atkEB_settypetoterrain(void); -static void atkEC_pursuit_sth(void); -static void atkED_802B4B4(void); +static void atkEC_pursuitrelated(void); +static void atkEF_snatchsetbanks(void); static void atkEE_removelightscreenreflect(void); -static void atkEF_pokeball_catch_calculation(void); -static void atkF0_give_caught_mon(void); -static void atkF1_set_caught_mon_dex_flags(void); -static void atkF2_display_dex_info(void); -static void atkF3_nickname_caught_poke(void); +static void atkEF_handleballthrow(void); +static void atkF0_givecaughtmon(void); +static void atkF1_trysetcaughtmondexflags(void); +static void atkF2_displaydexinfo(void); +static void atkF3_trygivecaughtmonnick(void); static void atkF4_subattackerhpbydmg(void); static void atkF5_removeattackerstatus1(void); -static void atkF6_action_finished(void); -static void atkF7_turn_finished(void); -static void atkF8_trainer_slide_back(void); +static void atkF6_finishaction(void); +static void atkF7_finishturn(void); +static void atkF8_trainerslideout(void); void (* const gBattleScriptingCommandsTable[])(void) = { @@ -519,41 +439,41 @@ void (* const gBattleScriptingCommandsTable[])(void) = atk02_attackstring, atk03_ppreduce, atk04_critcalc, - atk05_damagecalc1, + atk05_damagecalc, atk06_typecalc, - atk07_dmg_adjustment, - atk08_dmg_adjustment2, + atk07_adjustnormaldamage, + atk08_adjustnormaldamage2, atk09_attackanimation, atk0A_waitanimation, atk0B_healthbarupdate, atk0C_datahpupdate, atk0D_critmessage, - atk0E_effectiveness_sound, + atk0E_effectivenesssound, atk0F_resultmessage, atk10_printstring, - atk11_printstring_playeronly, + atk11_printselectionstring, atk12_waitmessage, atk13_printfromtable, - atk14_printfromtable_playeronly, + atk14_printselectionstringfromtable, atk15_seteffectwithchance, atk16_seteffectprimary, atk17_seteffectsecondary, - atk18_status_effect_clear, - atk19_faint_pokemon, - atk1A_faint_animation, - atk1B_faint_effects_clear, + atk18_clearstatusfromeffect, + atk19_tryfaintmon, + atk1A_dofaintanimation, + atk1B_cleareffectsonfaint, atk1C_jumpifstatus, atk1D_jumpifstatus2, atk1E_jumpifability, atk1F_jumpifsideaffecting, atk20_jumpifstat, - atk21_jumpifstatus3, + atk21_jumpifstatus3condition, atk22_jumpiftype, atk23_getexp, atk24, - atk25_move_values_cleanup, - atk26_set_multihit, - atk27_decrement_multihit, + atk25_movevaluescleanup, + atk26_setmultihit, + atk27_decrementmultihit, atk28_goto, atk29_jumpifbyte, atk2A_jumpifhalfword, @@ -564,7 +484,7 @@ void (* const gBattleScriptingCommandsTable[])(void) = atk2F_addbyte, atk30_subbyte, atk31_copyarray, - atk32_copyarray_withindex, + atk32_copyarraywithindex, atk33_orbyte, atk34_orhalfword, atk35_orword, @@ -578,75 +498,75 @@ void (* const gBattleScriptingCommandsTable[])(void) = atk3D_end, atk3E_end2, atk3F_end3, - atk40_jump_if_move_affected_by_protect, + atk40_jumpifaffectedbyprotect, atk41_call, atk42_jumpiftype2, atk43_jumpifabilitypresent, - atk44_end_selection_script, + atk44_endselectionscript, atk45_playanimation, atk46_playanimation2, atk47_setgraphicalstatchangevalues, atk48_playstatchangeanimation, atk49_moveend, atk4A_typecalc2, - atk4B_return_atk_to_ball, - atk4C_get_switched_mon_data, - atk4D_switch_data_update, - atk4E_switchin_anim, - atk4F_jump_if_cannot_switch, + atk4B_returnatktoball, + atk4C_getswitchedmondata, + atk4D_switchindataupdate, + atk4E_switchinanim, + atk4F_jumpifcantswitch, atk50_openpartyscreen, - atk51_switch_handle_order, - atk52_switch_in_effects, - atk53_trainer_slide, - atk54_effectiveness_sound, - atk55_play_fanfare, - atk56_fainting_cry, + atk51_switchhandleorder, + atk52_switchineffects, + atk53_trainerslidein, + atk54_playse, + atk55_fanfare, + atk56_playfaintcry, atk57, - atk58_return_to_ball, - atk59_learnmove_inbattle, + atk58_returntoball, + atk59_handlelearnnewmove, atk5A_yesnoboxlearnmove, atk5B_yesnoboxstoplearningmove, atk5C_hitanimation, atk5D_getmoneyreward, - atk5E_8025A70, - atk5F_8025B24, - atk60_increment_gamestat, - atk61_draw_party_status_summary, - atk62_08025C6C, + atk5E, + atk5F, + atk60_incrementgamestat, + atk61_drawpartystatussummary, + atk62, atk63_jumptorandomattack, atk64_statusanimation, atk65_status2animation, atk66_chosenstatusanimation, atk67_yesnobox, - atk68_cancel_everyones_actions, - atk69_dmg_adjustment3, + atk68_cancelallactions, + atk69_adjustsetdamage, atk6A_removeitem, atk6B_atknameinbuff1, - atk6C_draw_lvlupbox, - atk6D_reset_sentpokes_value, - atk6E_set_atk_to_player0, - atk6F_set_visible, - atk70_record_last_used_ability, - atk71_buffer_move_to_learn, - atk72_jump_if_run_attempt_success, - atk73_hp_thresholds, - atk74_hp_thresholds2, - atk75_item_effect_on_opponent, + atk6C_drawlvlupbox, + atk6D_resetsentmonsvalue, + atk6E_setatktoplayer0, + atk6F_makevisible, + atk70_recordlastability, + atk71_buffermovetolearn, + atk72_jumpifplayerran, + atk73_hpthresholds, + atk74_hpthresholds2, + atk75_useitemonopponent, atk76_various, - atk77_set_protect_like, + atk77_setprotectlike, atk78_faintifabilitynotdamp, atk79_setatkhptozero, - atk7A_jumpwhiletargetvalid, - atk7B_healhalfHP_if_possible, + atk7A_jumpifnexttargetvalid, + atk7B_tryhealhalfhealth, atk7C_trymirrormove, - atk7D_set_rain, + atk7D_setrain, atk7E_setreflect, atk7F_setseeded, atk80_manipulatedamage, - atk81_setrest, + atk81_trysetrest, atk82_jumpifnotfirstturn, atk83_nop, - atk84_jump_if_cant_sleep, + atk84_jumpifcantmakeasleep, atk85_stockpile, atk86_stockpiletobasedamage, atk87_stockpiletohpheal, @@ -655,22 +575,22 @@ void (* const gBattleScriptingCommandsTable[])(void) = atk8A_normalisebuffs, atk8B_setbide, atk8C_confuseifrepeatingattackends, - atk8D_setmultihit_counter, - atk8E_init_multihit_string, + atk8D_setmultihitcounter, + atk8E_initmultihitstring, atk8F_forcerandomswitch, - atk90_conversion_type_change, + atk90_tryconversiontypechange, atk91_givepaydaymoney, atk92_setlightscreen, - atk93_ko_move, + atk93_tryKO, atk94_damagetohalftargethp, atk95_setsandstorm, atk96_weatherdamage, - atk97_try_infatuation, - atk98_status_icon_update, + atk97_tryinfatuating, + atk98_updatestatusicon, atk99_setmist, - atk9A_set_focusenergy, + atk9A_setfocusenergy, atk9B_transformdataexecution, - atk9C_set_substitute, + atk9C_setsubstitute, atk9D_mimicattackcopy, atk9E_metronome, atk9F_dmgtolevel, @@ -678,39 +598,39 @@ void (* const gBattleScriptingCommandsTable[])(void) = atkA1_counterdamagecalculator, atkA2_mirrorcoatdamagecalculator, atkA3_disablelastusedattack, - atkA4_setencore, + atkA4_trysetencore, atkA5_painsplitdmgcalc, atkA6_settypetorandomresistance, atkA7_setalwayshitflag, atkA8_copymovepermanently, - atkA9_sleeptalk_choose_move, - atkAA_set_destinybond, - atkAB_DestinyBondFlagUpdate, + atkA9_trychoosesleeptalkmove, + atkAA_setdestinybond, + atkAB_trysetdestinybondtohappen, atkAC_remaininghptopower, - atkAD_spite_ppreduce, - atkAE_heal_party_status, + atkAD_tryspiteppreduce, + atkAE_healpartystatus, atkAF_cursetarget, - atkB0_set_spikes, - atkB1_set_foresight, - atkB2_setperishsong, + atkB0_trysetspikes, + atkB1_setforesight, + atkB2_trysetperishsong, atkB3_rolloutdamagecalculation, atkB4_jumpifconfusedandstatmaxed, atkB5_furycuttercalc, atkB6_happinesstodamagecalculation, atkB7_presentdamagecalculation, - atkB8_set_safeguard, + atkB8_setsafeguard, atkB9_magnitudedamagecalculation, atkBA_jumpifnopursuitswitchdmg, atkBB_setsunny, atkBC_maxattackhalvehp, atkBD_copyfoestats, atkBE_rapidspinfree, - atkBF_set_defense_curl, + atkBF_setdefensecurlbit, atkC0_recoverbasedonsunlight, - atkC1_hidden_power_calc, - atkC2_selectnexttarget, - atkC3_setfutureattack, - atkC4_beat_up, + atkC1_hiddenpowercalc, + atkC2_selectfirstvalidtarget, + atkC3_trysetfutureattack, + atkC4_trydobeatup, atkC5_setsemiinvulnerablebit, atkC6_clearsemiinvulnerablebit, atkC7_setminimize, @@ -723,46 +643,46 @@ void (* const gBattleScriptingCommandsTable[])(void) = atkCE_settorment, atkCF_jumpifnodamage, atkD0_settaunt, - atkD1_set_helpinghand, - atkD2_swap_items, - atkD3_copy_ability, - atkD4_wish_effect, - atkD5_setroots, + atkD1_trysethelpinghand, + atkD2_tryswapitems, + atkD3_trycopyability, + atkD4_trywish, + atkD5_trysetroots, atkD6_doubledamagedealtifdamaged, atkD7_setyawn, atkD8_setdamagetohealthdifference, atkD9_scaledamagebyhealthratio, - atkDA_abilityswap, - atkDB_imprisoneffect, - atkDC_setgrudge, + atkDA_tryswapabilities, + atkDB_tryimprision, + atkDC_trysetgrudge, atkDD_weightdamagecalculation, atkDE_asistattackselect, - atkDF_setmagiccoat, - atkE0_setstealstatchange, - atkE1_intimidate_string_loader, - atkE2_switchout_abilities, + atkDF_trysetmagiccoat, + atkE0_trysetsnatch, + atkE1_trygetintimidatetarget, + atkE2_switchoutabilities, atkE3_jumpifhasnohp, atkE4_getsecretpowereffect, atkE5_pickup, - atkE6_castform_change_animation, - atkE7_castform_data_change, + atkE6_docastformchangeanimation, + atkE7_trycastformdatachange, atkE8_settypebasedhalvers, atkE9_setweatherballtype, - atkEA_recycleitem, + atkEA_tryrecycleitem, atkEB_settypetoterrain, - atkEC_pursuit_sth, - atkED_802B4B4, + atkEC_pursuitrelated, + atkEF_snatchsetbanks, atkEE_removelightscreenreflect, - atkEF_pokeball_catch_calculation, - atkF0_give_caught_mon, - atkF1_set_caught_mon_dex_flags, - atkF2_display_dex_info, - atkF3_nickname_caught_poke, + atkEF_handleballthrow, + atkF0_givecaughtmon, + atkF1_trysetcaughtmondexflags, + atkF2_displaydexinfo, + atkF3_trygivecaughtmonnick, atkF4_subattackerhpbydmg, atkF5_removeattackerstatus1, - atkF6_action_finished, - atkF7_turn_finished, - atkF8_trainer_slide_back + atkF6_finishaction, + atkF7_finishturn, + atkF8_trainerslideout }; struct StatFractions @@ -1134,7 +1054,7 @@ static void atk00_attackcanceler(void) if (!(gHitMarker & HITMARKER_OBEYS) && !(gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS)) { - i = IsPokeDisobedient(); // why use the 'i' variable...? + i = IsMonDisobedient(); // why use the 'i' variable...? switch (i) { case 0: @@ -1186,8 +1106,8 @@ static void atk00_attackcanceler(void) { CancelMultiTurnMoves(gBankAttacker); gBattleMoveFlags |= MOVESTATUS_MISSED; - gUnknown_02024250[gBankTarget] = 0; - gUnknown_02024258[gBankTarget] = 0; + gLastLandedMoves[gBankTarget] = 0; + gLastHitByType[gBankTarget] = 0; gBattleCommunication[6] = 1; gBattlescriptCurrInstr++; } @@ -1199,23 +1119,23 @@ static void atk00_attackcanceler(void) static void JumpIfMoveFailed(u8 adder, u16 move) { - const void* BS_ptr = gBattlescriptCurrInstr + adder; + const u8 *BS_ptr = gBattlescriptCurrInstr + adder; if (gBattleMoveFlags & MOVESTATUS_NOEFFECT) { - gUnknown_02024250[gBankTarget] = 0; - gUnknown_02024258[gBankTarget] = 0; + gLastLandedMoves[gBankTarget] = 0; + gLastHitByType[gBankTarget] = 0; BS_ptr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } else { - DestinyBondFlagUpdate(); + TrySetDestinyBondToHappen(); if (AbilityBattleEffects(ABILITYEFFECT_ABSORBING, gBankTarget, 0, 0, move)) return; } gBattlescriptCurrInstr = BS_ptr; } -static void atk40_jump_if_move_affected_by_protect(void) +static void atk40_jumpifaffectedbyprotect(void) { if (TARGET_PROTECT_AFFECTED) { @@ -1476,7 +1396,7 @@ static void atk04_critcalc(void) gBattlescriptCurrInstr++; } -static void atk05_damagecalc1(void) +static void atk05_damagecalc(void) { u16 sideStatus = gSideAffecting[GET_BANK_SIDE(gBankTarget)]; gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankTarget], gCurrentMove, @@ -1565,8 +1485,8 @@ static void atk06_typecalc(void) { gLastUsedAbility = gBattleMons[gBankTarget].ability; gBattleMoveFlags |= (MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED); - gUnknown_02024250[gBankTarget] = 0; - gUnknown_02024258[gBankTarget] = 0; + gLastLandedMoves[gBankTarget] = 0; + gLastHitByType[gBankTarget] = 0; gBattleCommunication[6] = moveType; RecordAbilityBattle(gBankTarget, gLastUsedAbility); } @@ -1601,8 +1521,8 @@ static void atk06_typecalc(void) { gLastUsedAbility = ABILITY_WONDER_GUARD; gBattleMoveFlags |= MOVESTATUS_MISSED; - gUnknown_02024250[gBankTarget] = 0; - gUnknown_02024258[gBankTarget] = 0; + gLastLandedMoves[gBankTarget] = 0; + gLastHitByType[gBankTarget] = 0; gBattleCommunication[6] = 3; RecordAbilityBattle(gBankTarget, gLastUsedAbility); } @@ -1843,7 +1763,7 @@ static void Unused_ApplyRandomDmgMultiplier(void) ApplyRandomDmgMultiplier(); } -static void atk07_dmg_adjustment(void) +static void atk07_adjustnormaldamage(void) { u8 holdEffect, quality; @@ -1891,7 +1811,7 @@ static void atk07_dmg_adjustment(void) gBattlescriptCurrInstr++; } -static void atk08_dmg_adjustment2(void) // The same as 0x7 except it doesn't check for false swipe move effect. +static void atk08_adjustnormaldamage2(void) // The same as 0x7 except it doesn't check for false swipe move effect. { u8 holdEffect, quality; @@ -2172,7 +2092,7 @@ static void atk0D_critmessage(void) } } -static void atk0E_effectiveness_sound(void) +static void atk0E_effectivenesssound(void) { if (gBattleExecBuffer) return; @@ -2183,11 +2103,11 @@ static void atk0E_effectiveness_sound(void) switch (gBattleMoveFlags & (u8)(~(MOVESTATUS_MISSED))) { case MOVESTATUS_SUPEREFFECTIVE: - EmitEffectivenessSound(0, SE_KOUKA_H); + EmitPlaySE(0, SE_KOUKA_H); MarkBufferBankForExecution(gActiveBank); break; case MOVESTATUS_NOTVERYEFFECTIVE: - EmitEffectivenessSound(0, SE_KOUKA_L); + EmitPlaySE(0, SE_KOUKA_L); MarkBufferBankForExecution(gActiveBank); break; case MOVESTATUS_NOTAFFECTED: @@ -2200,17 +2120,17 @@ static void atk0E_effectiveness_sound(void) default: if (gBattleMoveFlags & MOVESTATUS_SUPEREFFECTIVE) { - EmitEffectivenessSound(0, SE_KOUKA_H); + EmitPlaySE(0, SE_KOUKA_H); MarkBufferBankForExecution(gActiveBank); } else if (gBattleMoveFlags & MOVESTATUS_NOTVERYEFFECTIVE) { - EmitEffectivenessSound(0, SE_KOUKA_L); + EmitPlaySE(0, SE_KOUKA_L); MarkBufferBankForExecution(gActiveBank); } else if (!(gBattleMoveFlags & (MOVESTATUS_NOTAFFECTED | MOVESTATUS_FAILED))) { - EmitEffectivenessSound(0, SE_KOUKA_M); + EmitPlaySE(0, SE_KOUKA_M); MarkBufferBankForExecution(gActiveBank); } break; @@ -2319,11 +2239,11 @@ static void atk10_printstring(void) } } -static void atk11_printstring_playeronly(void) +static void atk11_printselectionstring(void) { gActiveBank = gBankAttacker; - EmitPrintStringPlayerOnly(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1)); + EmitPrintSelectionString(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1)); MarkBufferBankForExecution(gActiveBank); gBattlescriptCurrInstr += 3; @@ -2365,7 +2285,7 @@ static void atk13_printfromtable(void) } } -static void atk14_printfromtable_playeronly(void) +static void atk14_printselectionstringfromtable(void) { if (gBattleExecBuffer == 0) { @@ -2373,7 +2293,7 @@ static void atk14_printfromtable_playeronly(void) ptr += gBattleCommunication[MULTISTRING_CHOOSER]; gActiveBank = gBankAttacker; - EmitPrintStringPlayerOnly(0, *ptr); + EmitPrintSelectionString(0, *ptr); MarkBufferBankForExecution(gActiveBank); gBattlescriptCurrInstr += 5; @@ -3121,7 +3041,7 @@ static void atk15_seteffectwithchance(void) } gBattleCommunication[MOVE_EFFECT_BYTE] = 0; - gBattleScripting.field_16 = 0; + gBattleScripting.multihitMoveEffect = 0; } static void atk16_seteffectprimary(void) @@ -3134,7 +3054,7 @@ static void atk17_seteffectsecondary(void) SetMoveEffect(FALSE, 0); } -static void atk18_status_effect_clear(void) +static void atk18_clearstatusfromeffect(void) { gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); @@ -3145,10 +3065,10 @@ static void atk18_status_effect_clear(void) gBattleCommunication[MOVE_EFFECT_BYTE] = 0; gBattlescriptCurrInstr += 2; - gBattleScripting.field_16 = 0; + gBattleScripting.multihitMoveEffect = 0; } -static void atk19_faint_pokemon(void) +static void atk19_tryfaintmon(void) { const u8 *BS_ptr; @@ -3235,7 +3155,7 @@ static void atk19_faint_pokemon(void) } } -static void atk1A_faint_animation(void) +static void atk1A_dofaintanimation(void) { if (gBattleExecBuffer == 0) { @@ -3246,7 +3166,7 @@ static void atk1A_faint_animation(void) } } -static void atk1B_faint_effects_clear(void) +static void atk1B_cleareffectsonfaint(void) { if (gBattleExecBuffer == 0) { @@ -3302,7 +3222,7 @@ static void atk1E_jumpifability(void) gLastUsedAbility = ability; gBattlescriptCurrInstr = jumpPtr; RecordAbilityBattle(bank - 1, gLastUsedAbility); - gBattleScripting.field_15 = bank - 1; + gBattleScripting.bankWithAbility = bank - 1; } else gBattlescriptCurrInstr += 7; @@ -3315,7 +3235,7 @@ static void atk1E_jumpifability(void) gLastUsedAbility = ability; gBattlescriptCurrInstr = jumpPtr; RecordAbilityBattle(bank - 1, gLastUsedAbility); - gBattleScripting.field_15 = bank - 1; + gBattleScripting.bankWithAbility = bank - 1; } else gBattlescriptCurrInstr += 7; @@ -3328,7 +3248,7 @@ static void atk1E_jumpifability(void) gLastUsedAbility = ability; gBattlescriptCurrInstr = jumpPtr; RecordAbilityBattle(bank, gLastUsedAbility); - gBattleScripting.field_15 = bank; + gBattleScripting.bankWithAbility = bank; } else gBattlescriptCurrInstr += 7; @@ -3395,10 +3315,10 @@ static void atk20_jumpifstat(void) gBattlescriptCurrInstr += 9; } -static void atk21_jumpifstatus3(void) +static void atk21_jumpifstatus3condition(void) { u32 flags; - const u8* jumpPtr; + const u8 *jumpPtr; gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); flags = BS2ScriptRead32(gBattlescriptCurrInstr + 2); @@ -4098,19 +4018,19 @@ static void MoveValuesCleanUp(void) gHitMarker &= ~(HITMARKER_SYNCHRONISE_EFFECT); } -static void atk25_move_values_cleanup(void) +static void atk25_movevaluescleanup(void) { MoveValuesCleanUp(); gBattlescriptCurrInstr += 1; } -static void atk26_set_multihit(void) +static void atk26_setmultihit(void) { gMultiHitCounter = gBattlescriptCurrInstr[1]; gBattlescriptCurrInstr += 2; } -static void atk27_decrement_multihit(void) +static void atk27_decrementmultihit(void) { if (--gMultiHitCounter == 0) gBattlescriptCurrInstr += 5; @@ -4320,7 +4240,7 @@ static void atk31_copyarray(void) gBattlescriptCurrInstr += 10; } -static void atk32_copyarray_withindex(void) +static void atk32_copyarraywithindex(void) { u8* dest = BS2ScriptReadPtr(gBattlescriptCurrInstr + 1); const u8* src = BS2ScriptReadPtr(gBattlescriptCurrInstr + 5); @@ -4470,7 +4390,7 @@ static void atk43_jumpifabilitypresent(void) gBattlescriptCurrInstr += 6; } -static void atk44_end_selection_script(void) +static void atk44_endselectionscript(void) { *(gBankAttacker + gBattleStruct->selectionScriptFinished) = TRUE; } @@ -4937,14 +4857,14 @@ static void atk49_moveend(void) u8 holdEffectAtk; u16 *choicedMoveAtk; u8 arg1, arg2; - u16 lastMove; + u16 originallyUsedMove; effect = FALSE; - if (gLastUsedMove == 0xFFFF) - lastMove = 0; + if (gChosenMove == 0xFFFF) + originallyUsedMove = 0; else - lastMove = gLastUsedMove; + originallyUsedMove = gChosenMove; arg1 = gBattlescriptCurrInstr[1]; arg2 = gBattlescriptCurrInstr[2]; @@ -5015,14 +4935,14 @@ static void atk49_moveend(void) break; case 6: // update choice band move if (!(gHitMarker & HITMARKER_OBEYS) || holdEffectAtk != HOLD_EFFECT_CHOICE_BAND - || gLastUsedMove == MOVE_STRUGGLE || (*choicedMoveAtk != 0 && *choicedMoveAtk != 0xFFFF)) + || gChosenMove == MOVE_STRUGGLE || (*choicedMoveAtk != 0 && *choicedMoveAtk != 0xFFFF)) goto LOOP; - if (gLastUsedMove == MOVE_BATON_PASS && !(gBattleMoveFlags & MOVESTATUS_FAILED)) + if (gChosenMove == MOVE_BATON_PASS && !(gBattleMoveFlags & MOVESTATUS_FAILED)) { gBattleScripting.atk49_state++; break; } - *choicedMoveAtk = gLastUsedMove; + *choicedMoveAtk = gChosenMove; LOOP: { for (i = 0; i < 4; i++) @@ -5117,63 +5037,63 @@ static void atk49_moveend(void) } if (gHitMarker & HITMARKER_ATTACKSTRING_PRINTED) { - gUnknownMovesUsedByBanks[gBankAttacker] = gLastUsedMove; + gLastPrintedMoves[gBankAttacker] = gChosenMove; } if (!(gAbsentBankFlags & gBitTable[gBankAttacker]) && !(gBattleStruct->field_91 & gBitTable[gBankAttacker]) - && gBattleMoves[lastMove].effect != EFFECT_BATON_PASS) + && gBattleMoves[originallyUsedMove].effect != EFFECT_BATON_PASS) { if (gHitMarker & HITMARKER_OBEYS) { - gLastUsedMovesByBanks[gBankAttacker] = gLastUsedMove; - gUnknown_02024260[gBankAttacker] = gCurrentMove; + gLastMoves[gBankAttacker] = gChosenMove; + gLastResultingMoves[gBankAttacker] = gCurrentMove; } else { - gLastUsedMovesByBanks[gBankAttacker] = 0xFFFF; - gUnknown_02024260[gBankAttacker] = 0xFFFF; + gLastMoves[gBankAttacker] = 0xFFFF; + gLastResultingMoves[gBankAttacker] = 0xFFFF; } if (!(gHitMarker & HITMARKER_FAINTED(gBankTarget))) - gUnknown_02024270[gBankTarget] = gBankAttacker; + gLastHitBy[gBankTarget] = gBankAttacker; if (gHitMarker & HITMARKER_OBEYS && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) { - if (gLastUsedMove == 0xFFFF) + if (gChosenMove == 0xFFFF) { - gUnknown_02024250[gBankTarget] = gLastUsedMove; + gLastLandedMoves[gBankTarget] = gChosenMove; } else { - gUnknown_02024250[gBankTarget] = gCurrentMove; - GET_MOVE_TYPE(gCurrentMove, gUnknown_02024258[gBankTarget]); + gLastLandedMoves[gBankTarget] = gCurrentMove; + GET_MOVE_TYPE(gCurrentMove, gLastHitByType[gBankTarget]); } } else { - gUnknown_02024250[gBankTarget] = 0xFFFF; + gLastLandedMoves[gBankTarget] = 0xFFFF; } } gBattleScripting.atk49_state++; break; case 15: // mirror move if (!(gAbsentBankFlags & gBitTable[gBankAttacker]) && !(gBattleStruct->field_91 & gBitTable[gBankAttacker]) - && gBattleMoves[lastMove].flags & FLAG_MIRROR_MOVE_AFFECTED && gHitMarker & HITMARKER_OBEYS + && gBattleMoves[originallyUsedMove].flags & FLAG_MIRROR_MOVE_AFFECTED && gHitMarker & HITMARKER_OBEYS && gBankAttacker != gBankTarget && !(gHitMarker & HITMARKER_FAINTED(gBankTarget)) && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) { u8 target, attacker; - *(gBattleStruct->mirrorMoves + gBankTarget * 2 + 0) = gLastUsedMove; - *(gBattleStruct->mirrorMoves + gBankTarget * 2 + 1) = gLastUsedMove >> 8; + *(gBattleStruct->mirrorMoves + gBankTarget * 2 + 0) = gChosenMove; + *(gBattleStruct->mirrorMoves + gBankTarget * 2 + 1) = gChosenMove >> 8; target = gBankTarget; attacker = gBankAttacker; - *(attacker * 2 + target * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = gLastUsedMove; + *(attacker * 2 + target * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 0) = gChosenMove; target = gBankTarget; attacker = gBankAttacker; - *(attacker * 2 + target * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = gLastUsedMove >> 8; + *(attacker * 2 + target * 8 + (u8*)(gBattleStruct->mirrorMoveArrays) + 1) = gChosenMove >> 8; } gBattleScripting.atk49_state++; break; @@ -5190,7 +5110,7 @@ static void atk49_moveend(void) gBattleScripting.atk49_state = 0; MoveValuesCleanUp(); BattleScriptPush(gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]); - gBattlescriptCurrInstr = gUnknown_082DB87D; + gBattlescriptCurrInstr = BattleScript_82DB87D; return; } else @@ -5225,7 +5145,7 @@ static void atk4A_typecalc2(void) { gLastUsedAbility = gBattleMons[gBankTarget].ability; gBattleMoveFlags |= (MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED); - gUnknown_02024250[gBankTarget] = 0; + gLastLandedMoves[gBankTarget] = 0; gBattleCommunication[6] = moveType; RecordAbilityBattle(gBankTarget, gLastUsedAbility); } @@ -5300,7 +5220,7 @@ static void atk4A_typecalc2(void) { gLastUsedAbility = ABILITY_WONDER_GUARD; gBattleMoveFlags |= MOVESTATUS_MISSED; - gUnknown_02024250[gBankTarget] = 0; + gLastLandedMoves[gBankTarget] = 0; gBattleCommunication[6] = 3; RecordAbilityBattle(gBankTarget, gLastUsedAbility); } @@ -5310,7 +5230,7 @@ static void atk4A_typecalc2(void) gBattlescriptCurrInstr++; } -static void atk4B_return_atk_to_ball(void) +static void atk4B_returnatktoball(void) { gActiveBank = gBankAttacker; if (!(gHitMarker & HITMARKER_FAINTED(gActiveBank))) @@ -5321,7 +5241,7 @@ static void atk4B_return_atk_to_ball(void) gBattlescriptCurrInstr++; } -static void atk4C_get_switched_mon_data(void) +static void atk4C_getswitchedmondata(void) { if (gBattleExecBuffer) return; @@ -5336,7 +5256,7 @@ static void atk4C_get_switched_mon_data(void) gBattlescriptCurrInstr += 2; } -static void atk4D_switch_data_update(void) +static void atk4D_switchindataupdate(void) { struct BattlePokemon oldData; s32 i; @@ -5389,7 +5309,7 @@ static void atk4D_switch_data_update(void) gBattlescriptCurrInstr += 2; } -static void atk4E_switchin_anim(void) +static void atk4E_switchinanim(void) { if (gBattleExecBuffer) return; @@ -5415,7 +5335,7 @@ static void atk4E_switchin_anim(void) sub_81A56B4(); } -static void atk4F_jump_if_cannot_switch(void) +static void atk4F_jumpifcantswitch(void) { s32 val = 0; s32 compareVar = 0; @@ -5533,10 +5453,10 @@ static void atk4F_jump_if_cannot_switch(void) { if (GetBankSide(gActiveBank) == SIDE_OPPONENT) { - r7 = GetBankByIdentity(1); + r7 = GetBankByIdentity(IDENTITY_OPPONENT_MON1); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - compareVar = GetBankByIdentity(3); + compareVar = GetBankByIdentity(IDENTITY_OPPONENT_MON2); else compareVar = r7; @@ -5544,10 +5464,10 @@ static void atk4F_jump_if_cannot_switch(void) } else { - r7 = GetBankByIdentity(0); + r7 = GetBankByIdentity(IDENTITY_PLAYER_MON1); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - compareVar = GetBankByIdentity(2); + compareVar = GetBankByIdentity(IDENTITY_PLAYER_MON2); else compareVar = r7; @@ -5869,7 +5789,7 @@ static void atk50_openpartyscreen(void) } } -static void atk51_switch_handle_order(void) +static void atk51_switchhandleorder(void) { s32 i; if (gBattleExecBuffer) @@ -5936,7 +5856,7 @@ static void atk51_switch_handle_order(void) gBattlescriptCurrInstr += 3; } -static void atk52_switch_in_effects(void) +static void atk52_switchineffects(void) { s32 i; @@ -5967,12 +5887,12 @@ static void atk52_switch_in_effects(void) gBattleScripting.bank = gActiveBank; BattleScriptPushCursor(); - if (gBattlescriptCurrInstr[1] == 0) - gBattlescriptCurrInstr = gUnknown_082DAE90; - else if (gBattlescriptCurrInstr[1] == 1) - gBattlescriptCurrInstr = gUnknown_082DAE59; + if (gBattlescriptCurrInstr[1] == BS_GET_TARGET) + gBattlescriptCurrInstr = BattleScript_SpikesOnTarget; + else if (gBattlescriptCurrInstr[1] == BS_GET_ATTACKER) + gBattlescriptCurrInstr = BattleScript_SpikesOnAttacker; else - gBattlescriptCurrInstr = gUnknown_082DAEC7; + gBattlescriptCurrInstr = BattleScript_SpikesOngBank1; } else { @@ -6017,7 +5937,7 @@ static void atk52_switch_in_effects(void) } } -static void atk53_trainer_slide(void) +static void atk53_trainerslidein(void) { gActiveBank = GetBankByIdentity(gBattlescriptCurrInstr[1]); EmitTrainerSlide(0); @@ -6026,16 +5946,16 @@ static void atk53_trainer_slide(void) gBattlescriptCurrInstr += 2; } -static void atk54_effectiveness_sound(void) +static void atk54_playse(void) { gActiveBank = gBankAttacker; - EmitEffectivenessSound(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1)); + EmitPlaySE(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1)); MarkBufferBankForExecution(gActiveBank); gBattlescriptCurrInstr += 3; } -static void atk55_play_fanfare(void) +static void atk55_fanfare(void) { gActiveBank = gBankAttacker; EmitPlayFanfareOrBGM(0, BS2ScriptRead16(gBattlescriptCurrInstr + 1), FALSE); @@ -6044,7 +5964,7 @@ static void atk55_play_fanfare(void) gBattlescriptCurrInstr += 3; } -static void atk56_fainting_cry(void) +static void atk56_playfaintcry(void) { gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); EmitFaintingCry(0); @@ -6055,14 +5975,14 @@ static void atk56_fainting_cry(void) static void atk57(void) { - gActiveBank = GetBankByIdentity(0); + gActiveBank = GetBankByIdentity(IDENTITY_PLAYER_MON1); EmitCmd55(0, gBattleOutcome); MarkBufferBankForExecution(gActiveBank); gBattlescriptCurrInstr += 1; } -static void atk58_return_to_ball(void) +static void atk58_returntoball(void) { gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); EmitReturnMonToBall(0, 1); @@ -6071,10 +5991,10 @@ static void atk58_return_to_ball(void) gBattlescriptCurrInstr += 2; } -static void atk59_learnmove_inbattle(void) +static void atk59_handlelearnnewmove(void) { - const u8* jumpPtr1 = BSScriptReadPtr(gBattlescriptCurrInstr + 1); - const u8* jumpPtr2 = BSScriptReadPtr(gBattlescriptCurrInstr + 5); + const u8 *jumpPtr1 = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + const u8 *jumpPtr2 = BSScriptReadPtr(gBattlescriptCurrInstr + 5); u16 ret = MonTryLearningNewMove(&gPlayerParty[gBattleStruct->expGetterId], gBattlescriptCurrInstr[9]); while (ret == 0xFFFE) @@ -6090,7 +6010,7 @@ static void atk59_learnmove_inbattle(void) } else { - gActiveBank = GetBankByIdentity(0); + gActiveBank = GetBankByIdentity(IDENTITY_PLAYER_MON1); if (gBattlePartyID[gActiveBank] == gBattleStruct->expGetterId && !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED)) @@ -6099,7 +6019,7 @@ static void atk59_learnmove_inbattle(void) } if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - gActiveBank = GetBankByIdentity(2); + gActiveBank = GetBankByIdentity(IDENTITY_PLAYER_MON2); if (gBattlePartyID[gActiveBank] == gBattleStruct->expGetterId && !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED)) { @@ -6317,19 +6237,19 @@ static u32 GetTrainerMoneyToGive(u16 trainerId) lastMonLevel = party[gTrainers[trainerId].partySize - 1].lvl; } break; - case PARTY_FLAG_CUSTOM_MOVES: + case F_TRAINER_PARTY_CUSTOM_MOVESET: { const struct TrainerMonNoItemCustomMoves *party = gTrainers[trainerId].party.NoItemCustomMoves; lastMonLevel = party[gTrainers[trainerId].partySize - 1].lvl; } break; - case PARTY_FLAG_HAS_ITEM: + case F_TRAINER_PARTY_HELD_ITEM: { const struct TrainerMonItemDefaultMoves *party = gTrainers[trainerId].party.ItemDefaultMoves; lastMonLevel = party[gTrainers[trainerId].partySize - 1].lvl; } break; - case PARTY_FLAG_CUSTOM_MOVES | PARTY_FLAG_HAS_ITEM: + case F_TRAINER_PARTY_CUSTOM_MOVESET | F_TRAINER_PARTY_HELD_ITEM: { const struct TrainerMonItemCustomMoves *party = gTrainers[trainerId].party.ItemCustomMoves; lastMonLevel = party[gTrainers[trainerId].partySize - 1].lvl; @@ -6367,7 +6287,7 @@ static void atk5D_getmoneyreward(void) gBattlescriptCurrInstr++; } -static void atk5E_8025A70(void) +static void atk5E(void) { gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); @@ -6394,7 +6314,7 @@ static void atk5E_8025A70(void) } } -static void atk5F_8025B24(void) +static void atk5F(void) { gActiveBank = gBankAttacker; gBankAttacker = gBankTarget; @@ -6408,7 +6328,7 @@ static void atk5F_8025B24(void) gBattlescriptCurrInstr++; } -static void atk60_increment_gamestat(void) +static void atk60_incrementgamestat(void) { if (GetBankSide(gBankAttacker) == SIDE_PLAYER) IncrementGameStat(gBattlescriptCurrInstr[1]); @@ -6416,7 +6336,7 @@ static void atk60_increment_gamestat(void) gBattlescriptCurrInstr += 2; } -static void atk61_draw_party_status_summary(void) +static void atk61_drawpartystatussummary(void) { s32 i; struct Pokemon* party; @@ -6453,7 +6373,7 @@ static void atk61_draw_party_status_summary(void) gBattlescriptCurrInstr += 2; } -static void atk62_08025C6C(void) +static void atk62(void) { gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); EmitCmd49(0); @@ -6464,10 +6384,10 @@ static void atk62_08025C6C(void) static void atk63_jumptorandomattack(void) { - if (gBattlescriptCurrInstr[1] != 0) + if (gBattlescriptCurrInstr[1]) gCurrentMove = gRandomMove; else - gLastUsedMove = gCurrentMove = gRandomMove; + gChosenMove = gCurrentMove = gRandomMove; gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; } @@ -6569,7 +6489,7 @@ static void atk67_yesnobox(void) } } -static void atk68_cancel_everyones_actions(void) +static void atk68_cancelallactions(void) { s32 i; @@ -6579,7 +6499,7 @@ static void atk68_cancel_everyones_actions(void) gBattlescriptCurrInstr++; } -static void atk69_dmg_adjustment3(void) // The same as 0x7, except there's no random damage multiplier. +static void atk69_adjustsetdamage(void) // The same as 0x7, except there's no random damage multiplier. { u8 holdEffect, quality; @@ -6648,7 +6568,7 @@ static void atk6B_atknameinbuff1(void) gBattlescriptCurrInstr++; } -static void atk6C_draw_lvlupbox(void) +static void atk6C_drawlvlupbox(void) { if (gBattleScripting.atk6C_state == 0) { @@ -6863,8 +6783,8 @@ static bool8 sub_804F344(void) return (gBattle_BG2_X != 0x1A0); } -#define sDestroy data0 -#define sSavedLvlUpBoxXPosition data1 +#define sDestroy data[0] +#define sSavedLvlUpBoxXPosition data[1] static void PutMonIconOnLvlUpBox(void) { @@ -6922,19 +6842,19 @@ static bool32 IsMonGettingExpSentOut(void) return FALSE; } -static void atk6D_reset_sentpokes_value(void) +static void atk6D_resetsentmonsvalue(void) { ResetSentPokesToOpponentValue(); gBattlescriptCurrInstr++; } -static void atk6E_set_atk_to_player0(void) +static void atk6E_setatktoplayer0(void) { - gBankAttacker = GetBankByIdentity(0); + gBankAttacker = GetBankByIdentity(IDENTITY_PLAYER_MON1); gBattlescriptCurrInstr++; } -static void atk6F_set_visible(void) +static void atk6F_makevisible(void) { gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); EmitSpriteInvisibility(0, FALSE); @@ -6943,7 +6863,7 @@ static void atk6F_set_visible(void) gBattlescriptCurrInstr += 2; } -static void atk70_record_last_used_ability(void) +static void atk70_recordlastability(void) { gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); RecordAbilityBattle(gActiveBank, gLastUsedAbility); @@ -6955,13 +6875,13 @@ void BufferMoveToLearnIntoBattleTextBuff2(void) PREPARE_MOVE_BUFFER(gBattleTextBuff2, gMoveToLearn); } -static void atk71_buffer_move_to_learn(void) +static void atk71_buffermovetolearn(void) { BufferMoveToLearnIntoBattleTextBuff2(); gBattlescriptCurrInstr++; } -static void atk72_jump_if_run_attempt_success(void) +static void atk72_jumpifplayerran(void) { if (TryRunFromBattle(gBank1)) gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); @@ -6969,7 +6889,7 @@ static void atk72_jump_if_run_attempt_success(void) gBattlescriptCurrInstr += 5; } -static void atk73_hp_thresholds(void) +static void atk73_hpthresholds(void) { u8 opposingBank; s32 result; @@ -6996,7 +6916,7 @@ static void atk73_hp_thresholds(void) gBattlescriptCurrInstr += 2; } -static void atk74_hp_thresholds2(void) +static void atk74_hpthresholds2(void) { u8 opposingBank; s32 result; @@ -7022,7 +6942,7 @@ static void atk74_hp_thresholds2(void) gBattlescriptCurrInstr += 2; } -static void atk75_item_effect_on_opponent(void) +static void atk75_useitemonopponent(void) { gBankInMenu = gBankAttacker; ExecuteTableBasedItemEffect(&gEnemyParty[gBattlePartyID[gBankAttacker]], gLastUsedItem, gBattlePartyID[gBankAttacker], 0, 1); @@ -7044,13 +6964,13 @@ static void atk76_various(void) break; case VARIOUS_SET_MAGIC_COAT_TARGET: gBankAttacker = gBankTarget; - side = GetBankSide(gBankAttacker) ^ 1; + side = GetBankSide(gBankAttacker) ^ BIT_SIDE; if (gSideTimers[side].followmeTimer != 0 && gBattleMons[gSideTimers[side].followmeTarget].hp != 0) gBankTarget = gSideTimers[side].followmeTarget; else gBankTarget = gActiveBank; break; - case VARIOUS_CAN_RUN_FROM_BATTLE: + case VARIOUS_IS_RUNNING_IMPOSSIBLE: gBattleCommunication[0] = IsRunningFromBattleImpossible(); break; case VARIOUS_GET_MOVE_TARGET: @@ -7209,10 +7129,10 @@ static void atk76_various(void) gBattlescriptCurrInstr += 3; } -static void atk77_set_protect_like(void) // protect and endure +static void atk77_setprotectlike(void) // protect and endure { bool8 notLastTurn = TRUE; - u16 lastMove = gUnknown_02024260[gBankAttacker]; + u16 lastMove = gLastResultingMoves[gBankAttacker]; if (lastMove != MOVE_PROTECT && lastMove != MOVE_DETECT && lastMove != MOVE_ENDURE) gDisableStructs[gBankAttacker].protectUses = 0; @@ -7292,9 +7212,9 @@ static void atk79_setatkhptozero(void) gBattlescriptCurrInstr++; } -static void atk7A_jumpwhiletargetvalid(void) // Used by intimidate to loop through all targets. +static void atk7A_jumpifnexttargetvalid(void) { - const u8* jumpPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + const u8 *jumpPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { @@ -7312,10 +7232,12 @@ static void atk7A_jumpwhiletargetvalid(void) // Used by intimidate to loop throu gBattlescriptCurrInstr = jumpPtr; } else + { gBattlescriptCurrInstr += 5; + } } -static void atk7B_healhalfHP_if_possible(void) +static void atk7B_tryhealhalfhealth(void) { const u8* failPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); @@ -7383,7 +7305,7 @@ static void atk7C_trymirrormove(void) } } -static void atk7D_set_rain(void) +static void atk7D_setrain(void) { if (gBattleWeather & WEATHER_RAIN_ANY) { @@ -7464,9 +7386,9 @@ static void atk80_manipulatedamage(void) gBattlescriptCurrInstr += 2; } -static void atk81_setrest(void) +static void atk81_trysetrest(void) { - const u8* failJump = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + const u8 *failJump = BSScriptReadPtr(gBattlescriptCurrInstr + 1); gActiveBank = gBankTarget = gBankAttacker; gBattleMoveDamage = gBattleMons[gBankTarget].maxHP * (-1); @@ -7530,9 +7452,9 @@ bool8 UproarWakeUpCheck(u8 bank) return TRUE; } -static void atk84_jump_if_cant_sleep(void) +static void atk84_jumpifcantmakeasleep(void) { - const u8* jumpPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); + const u8 *jumpPtr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); if (UproarWakeUpCheck(gBankTarget)) { @@ -7636,9 +7558,9 @@ static void atk88_negativedamage(void) gBattlescriptCurrInstr++; } -static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8* BS_ptr) +static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8 *BS_ptr) { - bool8 certain = 0; + bool8 certain = FALSE; bool8 notProtectAffected = FALSE; u32 index; @@ -7746,15 +7668,15 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8* BS_ptr) if (statValue == -2) { gBattleTextBuff2[1] = B_BUFF_STRING; - gBattleTextBuff2[2] = 0xD3; // harshly - gBattleTextBuff2[3] = 0xD3 >> 8; + gBattleTextBuff2[2] = STRINGID_STATHARSHLY; + gBattleTextBuff2[3] = STRINGID_STATHARSHLY >> 8; index = 4; } gBattleTextBuff2[index] = B_BUFF_STRING; index++; - gBattleTextBuff2[index] = 0xD4; // fell + gBattleTextBuff2[index] = STRINGID_STATFELL; index++; - gBattleTextBuff2[index] = 0xD4 >> 8; + gBattleTextBuff2[index] = STRINGID_STATFELL >> 8; index++; gBattleTextBuff2[index] = B_BUFF_EOS; @@ -7773,15 +7695,15 @@ static u8 ChangeStatBuffs(s8 statValue, u8 statId, u8 flags, const u8* BS_ptr) if (statValue == 2) { gBattleTextBuff2[1] = B_BUFF_STRING; - gBattleTextBuff2[2] = 0xD1; // sharply - gBattleTextBuff2[3] = 0xD1 >> 8; + gBattleTextBuff2[2] = STRINGID_STATSHARPLY; + gBattleTextBuff2[3] = STRINGID_STATSHARPLY >> 8; index = 4; } gBattleTextBuff2[index] = B_BUFF_STRING; index++; - gBattleTextBuff2[index] = 0xD2; // rose + gBattleTextBuff2[index] = STRINGID_STATROSE; index++; - gBattleTextBuff2[index] = 0xD2 >> 8; + gBattleTextBuff2[index] = STRINGID_STATROSE >> 8; index++; gBattleTextBuff2[index] = B_BUFF_EOS; @@ -7844,7 +7766,7 @@ static void atk8C_confuseifrepeatingattackends(void) gBattlescriptCurrInstr++; } -static void atk8D_setmultihit_counter(void) +static void atk8D_setmultihitcounter(void) { if (gBattlescriptCurrInstr[1]) { @@ -7862,14 +7784,14 @@ static void atk8D_setmultihit_counter(void) gBattlescriptCurrInstr += 2; } -static void atk8E_init_multihit_string(void) +static void atk8E_initmultihitstring(void) { PREPARE_BYTE_NUMBER_BUFFER(gBattleScripting.multihitString, 1, 0) gBattlescriptCurrInstr++; } -static bool8 sub_8051064(void) +static bool8 TryDoForceSwitchOut(void) { if (gBattleMons[gBankAttacker].level >= gBattleMons[gBankTarget].level) { @@ -7886,7 +7808,7 @@ static bool8 sub_8051064(void) *(gBattleStruct->field_58 + gBankTarget) = gBattlePartyID[gBankTarget]; } - gBattlescriptCurrInstr = gUnknown_082DADD8; + gBattlescriptCurrInstr = BattleScript_SuccessForceOut; return TRUE; } @@ -8014,7 +7936,7 @@ static void atk8F_forcerandomswitch(void) } else { - if (sub_8051064()) + if (TryDoForceSwitchOut()) { do { @@ -8047,11 +7969,11 @@ static void atk8F_forcerandomswitch(void) } else { - sub_8051064(); + TryDoForceSwitchOut(); } } -static void atk90_conversion_type_change(void) // randomly changes user's type to one of its moves' type +static void atk90_tryconversiontypechange(void) // randomly changes user's type to one of its moves' type { u8 validMoves = 0; u8 moveChecked; @@ -8155,7 +8077,7 @@ static void atk92_setlightscreen(void) gBattlescriptCurrInstr++; } -static void atk93_ko_move(void) +static void atk93_tryKO(void) { u8 holdEffect, param; @@ -8319,7 +8241,7 @@ static void atk96_weatherdamage(void) gBattlescriptCurrInstr++; } -static void atk97_try_infatuation(void) +static void atk97_tryinfatuating(void) { struct Pokemon *monAttacker, *monTarget; u16 speciesAttacker, speciesTarget; @@ -8364,7 +8286,7 @@ static void atk97_try_infatuation(void) } } -static void atk98_status_icon_update(void) +static void atk98_updatestatusicon(void) { if (gBattleExecBuffer) return; @@ -8414,7 +8336,7 @@ static void atk99_setmist(void) gBattlescriptCurrInstr++; } -static void atk9A_set_focusenergy(void) +static void atk9A_setfocusenergy(void) { if (gBattleMons[gBankAttacker].status2 & STATUS2_FOCUS_ENERGY) { @@ -8431,7 +8353,7 @@ static void atk9A_set_focusenergy(void) static void atk9B_transformdataexecution(void) { - gLastUsedMove = 0xFFFF; + gChosenMove = 0xFFFF; gBattlescriptCurrInstr++; if (gBattleMons[gBankTarget].status2 & STATUS2_TRANSFORMED || gStatuses3[gBankTarget] & STATUS3_SEMI_INVULNERABLE) @@ -8473,7 +8395,7 @@ static void atk9B_transformdataexecution(void) } } -static void atk9C_set_substitute(void) +static void atk9C_setsubstitute(void) { u32 hp = gBattleMons[gBankAttacker].maxHP / 4; if (gBattleMons[gBankAttacker].maxHP / 4 == 0) @@ -8511,12 +8433,12 @@ static bool8 IsMoveUncopyableByMimic(u16 move) static void atk9D_mimicattackcopy(void) { - gLastUsedMove = 0xFFFF; + gChosenMove = 0xFFFF; - if (IsMoveUncopyableByMimic(gLastUsedMovesByBanks[gBankTarget]) + if (IsMoveUncopyableByMimic(gLastMoves[gBankTarget]) || gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED - || gLastUsedMovesByBanks[gBankTarget] == 0 - || gLastUsedMovesByBanks[gBankTarget] == 0xFFFF) + || gLastMoves[gBankTarget] == 0 + || gLastMoves[gBankTarget] == 0xFFFF) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } @@ -8526,20 +8448,20 @@ static void atk9D_mimicattackcopy(void) for (i = 0; i < 4; i++) { - if (gBattleMons[gBankAttacker].moves[i] == gLastUsedMovesByBanks[gBankTarget]) + if (gBattleMons[gBankAttacker].moves[i] == gLastMoves[gBankTarget]) break; } if (i == 4) { - gBattleMons[gBankAttacker].moves[gCurrMovePos] = gLastUsedMovesByBanks[gBankTarget]; - if (gBattleMoves[gLastUsedMovesByBanks[gBankTarget]].pp < 5) - gBattleMons[gBankAttacker].pp[gCurrMovePos] = gBattleMoves[gLastUsedMovesByBanks[gBankTarget]].pp; + gBattleMons[gBankAttacker].moves[gCurrMovePos] = gLastMoves[gBankTarget]; + if (gBattleMoves[gLastMoves[gBankTarget]].pp < 5) + gBattleMons[gBankAttacker].pp[gCurrMovePos] = gBattleMoves[gLastMoves[gBankTarget]].pp; else gBattleMons[gBankAttacker].pp[gCurrMovePos] = 5; - PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastUsedMovesByBanks[gBankTarget]) + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastMoves[gBankTarget]) gDisableStructs[gBankAttacker].unk18_b |= gBitTable[gCurrMovePos]; gBattlescriptCurrInstr += 5; @@ -8654,7 +8576,7 @@ static void atkA3_disablelastusedattack(void) for (i = 0; i < 4; i++) { - if (gBattleMons[gBankTarget].moves[i] == gLastUsedMovesByBanks[gBankTarget]) + if (gBattleMons[gBankTarget].moves[i] == gLastMoves[gBankTarget]) break; } if (gDisableStructs[gBankTarget].disabledMove == 0 @@ -8673,19 +8595,19 @@ static void atkA3_disablelastusedattack(void) } } -static void atkA4_setencore(void) +static void atkA4_trysetencore(void) { s32 i; for (i = 0; i < 4; i++) { - if (gBattleMons[gBankTarget].moves[i] == gLastUsedMovesByBanks[gBankTarget]) + if (gBattleMons[gBankTarget].moves[i] == gLastMoves[gBankTarget]) break; } - if (gLastUsedMovesByBanks[gBankTarget] == MOVE_STRUGGLE - || gLastUsedMovesByBanks[gBankTarget] == MOVE_ENCORE - || gLastUsedMovesByBanks[gBankTarget] == MOVE_MIRROR_MOVE) + if (gLastMoves[gBankTarget] == MOVE_STRUGGLE + || gLastMoves[gBankTarget] == MOVE_ENCORE + || gLastMoves[gBankTarget] == MOVE_MIRROR_MOVE) { i = 4; } @@ -8731,13 +8653,13 @@ static void atkA5_painsplitdmgcalc(void) static void atkA6_settypetorandomresistance(void) // conversion 2 { - if (gUnknown_02024250[gBankAttacker] == 0 - || gUnknown_02024250[gBankAttacker] == 0xFFFF) + if (gLastLandedMoves[gBankAttacker] == 0 + || gLastLandedMoves[gBankAttacker] == 0xFFFF) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } - else if (IsTwoTurnsMove(gUnknown_02024250[gBankAttacker]) - && gBattleMons[gUnknown_02024270[gBankAttacker]].status2 & STATUS2_MULTIPLETURNS) + else if (IsTwoTurnsMove(gLastLandedMoves[gBankAttacker]) + && gBattleMons[gLastHitBy[gBankAttacker]].status2 & STATUS2_MULTIPLETURNS) { gBattlescriptCurrInstr = BSScriptReadPtr(gBattlescriptCurrInstr + 1); } @@ -8751,7 +8673,7 @@ static void atkA6_settypetorandomresistance(void) // conversion 2 i *= 3; - if (TYPE_EFFECT_ATK_TYPE(i) == gUnknown_02024258[gBankAttacker] + if (TYPE_EFFECT_ATK_TYPE(i) == gLastHitByType[gBankAttacker] && TYPE_EFFECT_MULTIPLIER(i) <= TYPE_MUL_NOT_EFFECTIVE && gBattleMons[gBankAttacker].type1 != TYPE_EFFECT_DEF_TYPE(i) && gBattleMons[gBankAttacker].type2 != TYPE_EFFECT_DEF_TYPE(i)) @@ -8774,7 +8696,7 @@ static void atkA6_settypetorandomresistance(void) // conversion 2 case TYPE_FORESIGHT: break; default: - if (TYPE_EFFECT_ATK_TYPE(j) == gUnknown_02024258[gBankAttacker] + if (TYPE_EFFECT_ATK_TYPE(j) == gLastHitByType[gBankAttacker] && TYPE_EFFECT_MULTIPLIER(j) <= 5 && gBattleMons[gBankAttacker].type1 != TYPE_EFFECT_DEF_TYPE(i) && gBattleMons[gBankAttacker].type2 != TYPE_EFFECT_DEF_TYPE(i)) @@ -8805,13 +8727,13 @@ static void atkA7_setalwayshitflag(void) static void atkA8_copymovepermanently(void) // sketch { - gLastUsedMove = 0xFFFF; + gChosenMove = 0xFFFF; if (!(gBattleMons[gBankAttacker].status2 & STATUS2_TRANSFORMED) - && gUnknownMovesUsedByBanks[gBankTarget] != MOVE_STRUGGLE - && gUnknownMovesUsedByBanks[gBankTarget] != 0 - && gUnknownMovesUsedByBanks[gBankTarget] != 0xFFFF - && gUnknownMovesUsedByBanks[gBankTarget] != MOVE_SKETCH) + && gLastPrintedMoves[gBankTarget] != MOVE_STRUGGLE + && gLastPrintedMoves[gBankTarget] != 0 + && gLastPrintedMoves[gBankTarget] != 0xFFFF + && gLastPrintedMoves[gBankTarget] != MOVE_SKETCH) { s32 i; @@ -8819,7 +8741,7 @@ static void atkA8_copymovepermanently(void) // sketch { if (gBattleMons[gBankAttacker].moves[i] == MOVE_SKETCH) continue; - if (gBattleMons[gBankAttacker].moves[i] == gUnknownMovesUsedByBanks[gBankTarget]) + if (gBattleMons[gBankAttacker].moves[i] == gLastPrintedMoves[gBankTarget]) break; } @@ -8831,8 +8753,8 @@ static void atkA8_copymovepermanently(void) // sketch { struct MovePpInfo movePpData; - gBattleMons[gBankAttacker].moves[gCurrMovePos] = gUnknownMovesUsedByBanks[gBankTarget]; - gBattleMons[gBankAttacker].pp[gCurrMovePos] = gBattleMoves[gUnknownMovesUsedByBanks[gBankTarget]].pp; + gBattleMons[gBankAttacker].moves[gCurrMovePos] = gLastPrintedMoves[gBankTarget]; + gBattleMons[gBankAttacker].pp[gCurrMovePos] = gBattleMoves[gLastPrintedMoves[gBankTarget]].pp; gActiveBank = gBankAttacker; for (i = 0; i < 4; i++) @@ -8845,7 +8767,7 @@ static void atkA8_copymovepermanently(void) // sketch EmitSetMonData(0, REQUEST_MOVES_PP_BATTLE, 0, sizeof(struct MovePpInfo), &movePpData); MarkBufferBankForExecution(gActiveBank); - PREPARE_MOVE_BUFFER(gBattleTextBuff1, gUnknownMovesUsedByBanks[gBankTarget]) + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastPrintedMoves[gBankTarget]) gBattlescriptCurrInstr += 5; } @@ -8862,7 +8784,7 @@ static bool8 IsTwoTurnsMove(u16 move) || gBattleMoves[move].effect == EFFECT_RAZOR_WIND || gBattleMoves[move].effect == EFFECT_SKY_ATTACK || gBattleMoves[move].effect == EFFECT_SOLARBEAM - || gBattleMoves[move].effect == EFFECT_FLY + || gBattleMoves[move].effect == EFFECT_SEMI_INVULNERABLE || gBattleMoves[move].effect == EFFECT_BIDE) return TRUE; else @@ -8889,7 +8811,7 @@ static u8 AttacksThisTurn(u8 bank, u16 move) // Note: returns 1 if it's a chargi || gBattleMoves[move].effect == EFFECT_RAZOR_WIND || gBattleMoves[move].effect == EFFECT_SKY_ATTACK || gBattleMoves[move].effect == EFFECT_SOLARBEAM - || gBattleMoves[move].effect == EFFECT_FLY + || gBattleMoves[move].effect == EFFECT_SEMI_INVULNERABLE || gBattleMoves[move].effect == EFFECT_BIDE) { if ((gHitMarker & HITMARKER_x8000000)) @@ -8898,7 +8820,7 @@ static u8 AttacksThisTurn(u8 bank, u16 move) // Note: returns 1 if it's a chargi return 2; } -static void atkA9_sleeptalk_choose_move(void) +static void atkA9_trychoosesleeptalkmove(void) { s32 i; u8 unusableMovesBits = 0; @@ -8937,13 +8859,13 @@ static void atkA9_sleeptalk_choose_move(void) } } -static void atkAA_set_destinybond(void) +static void atkAA_setdestinybond(void) { gBattleMons[gBankAttacker].status2 |= STATUS2_DESTINY_BOND; gBattlescriptCurrInstr++; } -static void DestinyBondFlagUpdate(void) +static void TrySetDestinyBondToHappen(void) { u8 sideAttacker = GetBankSide(gBankAttacker); u8 sideTarget = GetBankSide(gBankTarget); @@ -8955,9 +8877,9 @@ static void DestinyBondFlagUpdate(void) } } -static void atkAB_DestinyBondFlagUpdate(void) +static void atkAB_trysetdestinybondtohappen(void) { - DestinyBondFlagUpdate(); + TrySetDestinyBondToHappen(); gBattlescriptCurrInstr++; } @@ -8976,16 +8898,16 @@ static void atkAC_remaininghptopower(void) gBattlescriptCurrInstr++; } -static void atkAD_spite_ppreduce(void) +static void atkAD_tryspiteppreduce(void) { - if (gLastUsedMovesByBanks[gBankTarget] != 0 - && gLastUsedMovesByBanks[gBankTarget] != 0xFFFF) + if (gLastMoves[gBankTarget] != 0 + && gLastMoves[gBankTarget] != 0xFFFF) { s32 i; for (i = 0; i < 4; i++) { - if (gLastUsedMovesByBanks[gBankTarget] == gBattleMons[gBankTarget].moves[i]) + if (gLastMoves[gBankTarget] == gBattleMons[gBankTarget].moves[i]) break; } @@ -8995,7 +8917,7 @@ static void atkAD_spite_ppreduce(void) if (gBattleMons[gBankTarget].pp[i] < ppToDeduct) ppToDeduct = gBattleMons[gBankTarget].pp[i]; - PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastUsedMovesByBanks[gBankTarget]) + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gLastMoves[gBankTarget]) ConvertIntToDecimalStringN(gBattleTextBuff2, ppToDeduct, 0, 1); @@ -9027,7 +8949,7 @@ static void atkAD_spite_ppreduce(void) } } -static void atkAE_heal_party_status(void) +static void atkAE_healpartystatus(void) { u32 zero = 0; u8 toHeal = 0; @@ -9103,7 +9025,7 @@ static void atkAE_heal_party_status(void) gBattleMons[gBankAttacker].status1 = 0; gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); - gActiveBank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ 2); + gActiveBank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_MON); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBankFlags & gBitTable[gActiveBank])) { @@ -9140,7 +9062,7 @@ static void atkAF_cursetarget(void) } } -static void atkB0_set_spikes(void) +static void atkB0_trysetspikes(void) { u8 targetSide = GetBankSide(gBankAttacker) ^ BIT_SIDE; @@ -9157,13 +9079,13 @@ static void atkB0_set_spikes(void) } } -static void atkB1_set_foresight(void) +static void atkB1_setforesight(void) { gBattleMons[gBankTarget].status2 |= STATUS2_FORESIGHT; gBattlescriptCurrInstr++; } -static void atkB2_setperishsong(void) +static void atkB2_trysetperishsong(void) { s32 i; s32 notAffectedCount = 0; @@ -9196,7 +9118,7 @@ static void atkB3_rolloutdamagecalculation(void) if (gBattleMoveFlags & MOVESTATUS_NOEFFECT) { CancelMultiTurnMoves(gBankAttacker); - gBattlescriptCurrInstr = BattleScript_PauseEffectivenessSoundResultMsgEndMove; + gBattlescriptCurrInstr = BattleScript_MoveMissedPause; } else { @@ -9240,7 +9162,7 @@ static void atkB5_furycuttercalc(void) if (gBattleMoveFlags & MOVESTATUS_NOEFFECT) { gDisableStructs[gBankAttacker].furyCutterCounter = 0; - gBattlescriptCurrInstr = BattleScript_PauseEffectivenessSoundResultMsgEndMove; + gBattlescriptCurrInstr = BattleScript_MoveMissedPause; } else { @@ -9286,7 +9208,7 @@ static void atkB7_presentdamagecalculation(void) gBattleMoveDamage *= -1; } if (rand < 204) - gBattlescriptCurrInstr = BattleScript_PresentDamageTarget; + gBattlescriptCurrInstr = BattleScript_HitFromCritCalc; else if (gBattleMons[gBankTarget].maxHP == gBattleMons[gBankTarget].hp) gBattlescriptCurrInstr = BattleScript_AlreadyAtFullHp; else @@ -9296,7 +9218,7 @@ static void atkB7_presentdamagecalculation(void) } } -static void atkB8_set_safeguard(void) +static void atkB8_setsafeguard(void) { if (gSideAffecting[GET_BANK_SIDE(gBankAttacker)] & SIDE_STATUS_SAFEGUARD) { @@ -9385,7 +9307,7 @@ static void atkBA_jumpifnopursuitswitchdmg(void) gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON2); } - if (gActionForBanks[gBankTarget] == 0 + if (gActionForBanks[gBankTarget] == ACTION_USE_MOVE && gBankAttacker == *(gBattleStruct->moveTarget + gBankTarget) && !(gBattleMons[gBankTarget].status1 & (STATUS_SLEEP | STATUS_FREEZE)) && gBattleMons[gBankAttacker].hp @@ -9501,7 +9423,7 @@ static void atkBE_rapidspinfree(void) } } -static void atkBF_set_defense_curl(void) +static void atkBF_setdefensecurlbit(void) { gBattleMons[gBankAttacker].status2 |= STATUS2_DEFENSE_CURL; gBattlescriptCurrInstr++; @@ -9533,7 +9455,7 @@ static void atkC0_recoverbasedonsunlight(void) } #ifdef NONMATCHING -static void atkC1_hidden_power_calc(void) +static void atkC1_hiddenpowercalc(void) { u32 powerBits = 0; u32 typeBits = 0; @@ -9564,7 +9486,7 @@ static void atkC1_hidden_power_calc(void) #else __attribute__((naked)) -static void atkC1_hidden_power_calc(void) +static void atkC1_hiddenpowercalc(void) { asm(".syntax unified\n\ push {r4-r7,lr}\n\ @@ -9707,7 +9629,7 @@ _080544F0:\n\ } #endif // NONMATCHING -static void atkC2_selectnexttarget(void) +static void atkC2_selectfirstvalidtarget(void) { for (gBankTarget = 0; gBankTarget < gNoOfAllBanks; gBankTarget++) { @@ -9719,7 +9641,7 @@ static void atkC2_selectnexttarget(void) gBattlescriptCurrInstr++; } -static void atkC3_setfutureattack(void) +static void atkC3_trysetfutureattack(void) { if (gWishFutureKnock.futureSightCounter[gBankTarget] != 0) { @@ -9747,9 +9669,9 @@ static void atkC3_setfutureattack(void) } } -static void atkC4_beat_up(void) +static void atkC4_trydobeatup(void) { - struct Pokemon* party; + struct Pokemon *party; if (GetBankSide(gBankAttacker) == SIDE_PLAYER) party = gPlayerParty; @@ -9950,7 +9872,7 @@ static void atkD0_settaunt(void) } } -static void atkD1_set_helpinghand(void) +static void atkD1_trysethelpinghand(void) { gBankTarget = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_MON); @@ -9968,7 +9890,7 @@ static void atkD1_set_helpinghand(void) } } -static void atkD2_swap_items(void) // trick +static void atkD2_tryswapitems(void) // trick { // opponent can't swap items with player in regular battles if (gBattleTypeFlags & BATTLE_TYPE_x4000000 @@ -10055,7 +9977,7 @@ static void atkD2_swap_items(void) // trick } } -static void atkD3_copy_ability(void) // role play +static void atkD3_trycopyability(void) // role play { if (gBattleMons[gBankTarget].ability != 0 && gBattleMons[gBankTarget].ability != ABILITY_WONDER_GUARD) @@ -10070,7 +9992,7 @@ static void atkD3_copy_ability(void) // role play } } -static void atkD4_wish_effect(void) +static void atkD4_trywish(void) { switch (gBattlescriptCurrInstr[1]) { @@ -10103,7 +10025,7 @@ static void atkD4_wish_effect(void) } } -static void atkD5_setroots(void) // ingrain +static void atkD5_trysetroots(void) // ingrain { if (gStatuses3[gBankAttacker] & STATUS3_ROOTED) { @@ -10168,7 +10090,7 @@ static void atkD9_scaledamagebyhealthratio(void) gBattlescriptCurrInstr++; } -static void atkDA_abilityswap(void) // skill swap +static void atkDA_tryswapabilities(void) // skill swap { if ((gBattleMons[gBankAttacker].ability == 0 && gBattleMons[gBankTarget].ability == 0) @@ -10188,7 +10110,7 @@ static void atkDA_abilityswap(void) // skill swap } } -static void atkDB_imprisoneffect(void) +static void atkDB_tryimprision(void) { if ((gStatuses3[gBankAttacker] & STATUS3_IMPRISONED_OTHERS)) { @@ -10230,7 +10152,7 @@ static void atkDB_imprisoneffect(void) } } -static void atkDC_setgrudge(void) +static void atkDC_trysetgrudge(void) { if (gStatuses3[gBankAttacker] & STATUS3_GRUDGE) { @@ -10313,7 +10235,7 @@ static void atkDE_asistattackselect(void) } } -static void atkDF_setmagiccoat(void) +static void atkDF_trysetmagiccoat(void) { gBankTarget = gBankAttacker; gSpecialStatuses[gBankAttacker].flag20 = 1; @@ -10328,7 +10250,7 @@ static void atkDF_setmagiccoat(void) } } -static void atkE0_setstealstatchange(void) // snatch +static void atkE0_trysetsnatch(void) // snatch { gSpecialStatuses[gBankAttacker].flag20 = 1; if (gCurrentTurnActionNumber == gNoOfAllBanks - 1) // moves last turn @@ -10342,7 +10264,7 @@ static void atkE0_setstealstatchange(void) // snatch } } -static void atkE1_intimidate_string_loader(void) +static void atkE1_trygetintimidatetarget(void) { u8 side; @@ -10365,7 +10287,7 @@ static void atkE1_intimidate_string_loader(void) gBattlescriptCurrInstr += 5; } -static void atkE2_switchout_abilities(void) +static void atkE2_switchoutabilities(void) { gActiveBank = GetBattleBank(gBattlescriptCurrInstr[1]); @@ -10413,7 +10335,7 @@ static void atkE4_getsecretpowereffect(void) case BATTLE_TERRAIN_POND: gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_SPD_MINUS_1; break; - case BATTLE_TERRAIN_ROCK: + case BATTLE_TERRAIN_MOUNTAIN: gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_CONFUSION; break; case BATTLE_TERRAIN_CAVE: @@ -10502,7 +10424,7 @@ static void atkE5_pickup(void) gBattlescriptCurrInstr++; } -static void atkE6_castform_change_animation(void) +static void atkE6_docastformchangeanimation(void) { gActiveBank = gBattleScripting.bank; @@ -10515,7 +10437,7 @@ static void atkE6_castform_change_animation(void) gBattlescriptCurrInstr++; } -static void atkE7_castform_data_change(void) +static void atkE7_trycastformdatachange(void) { u8 form; @@ -10578,7 +10500,7 @@ static void atkE9_setweatherballtype(void) gBattlescriptCurrInstr++; } -static void atkEA_recycleitem(void) +static void atkEA_tryrecycleitem(void) { u16 *usedHeldItem; @@ -10619,7 +10541,7 @@ static void atkEB_settypetoterrain(void) } } -static void atkEC_pursuit_sth(void) +static void atkEC_pursuitrelated(void) { gActiveBank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_MON); @@ -10641,7 +10563,7 @@ static void atkEC_pursuit_sth(void) } } -static void atkED_802B4B4(void) +static void atkEF_snatchsetbanks(void) { gEffectBank = gBankAttacker; @@ -10676,7 +10598,7 @@ static void atkEE_removelightscreenreflect(void) // brick break gBattlescriptCurrInstr++; } -static void atkEF_pokeball_catch_calculation(void) +static void atkEF_handleballthrow(void) { u8 ballMultiplier = 0; @@ -10827,7 +10749,7 @@ static void atkEF_pokeball_catch_calculation(void) } } -static void atkF0_give_caught_mon(void) +static void atkF0_givecaughtmon(void) { if (GiveMonToPlayer(&gEnemyParty[gBattlePartyID[gBankAttacker ^ BIT_SIDE]]) != MON_GIVEN_TO_PARTY) { @@ -10856,7 +10778,7 @@ static void atkF0_give_caught_mon(void) gBattlescriptCurrInstr++; } -static void atkF1_set_caught_mon_dex_flags(void) +static void atkF1_trysetcaughtmondexflags(void) { u16 species = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, NULL); u32 personality = GetMonData(&gEnemyParty[0], MON_DATA_PERSONALITY, NULL); @@ -10872,7 +10794,7 @@ static void atkF1_set_caught_mon_dex_flags(void) } } -static void atkF2_display_dex_info(void) +static void atkF2_displaydexinfo(void) { u16 species = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, NULL); @@ -10991,7 +10913,7 @@ void BattleDestroyYesNoCursorAt(u8 cursorPosition) CopyBgTilemapBufferToVram(0); } -static void atkF3_nickname_caught_poke(void) +static void atkF3_trygivecaughtmonnick(void) { switch (gBattleCommunication[MULTIUSE_STATE]) { @@ -11079,18 +11001,18 @@ static void atkF5_removeattackerstatus1(void) gBattlescriptCurrInstr++; } -static void atkF6_action_finished(void) +static void atkF6_finishaction(void) { gCurrentActionFuncId = ACTION_FINISHED; } -static void atkF7_turn_finished(void) +static void atkF7_finishturn(void) { gCurrentActionFuncId = ACTION_FINISHED; gCurrentTurnActionNumber = gNoOfAllBanks; } -static void atkF8_trainer_slide_back(void) +static void atkF8_trainerslideout(void) { gActiveBank = GetBankByIdentity(gBattlescriptCurrInstr[1]); EmitTrainerSlideBack(0); diff --git a/src/battle_setup.c b/src/battle_setup.c new file mode 100644 index 000000000..3d4f5afcc --- /dev/null +++ b/src/battle_setup.c @@ -0,0 +1,1884 @@ +#include "global.h" +#include "constants/trainers.h" +#include "battle.h" +#include "battle_setup.h" +#include "battle_transition.h" +#include "main.h" +#include "task.h" +#include "pokemon_3.h" +#include "safari_zone.h" +#include "script.h" +#include "constants/game_stat.h" +#include "event_data.h" +#include "constants/species.h" +#include "songs.h" +#include "metatile_behavior.h" +#include "constants/maps.h" +#include "field_player_avatar.h" +#include "fieldmap.h" +#include "random.h" +#include "starter_choose.h" +#include "script_pokemon_80F8.h" +#include "constants/items.h" +#include "palette.h" +#include "window.h" +#include "field_map_obj.h" +#include "event_scripts.h" +#include "trainer_see.h" +#include "field_message_box.h" +#include "sound.h" +#include "strings.h" +#include "secret_base.h" +#include "string_util.h" + +enum +{ + TRAINER_PARAM_LOAD_VAL_8BIT, + TRAINER_PARAM_LOAD_VAL_16BIT, + TRAINER_PARAM_LOAD_VAL_32BIT, + TRAINER_PARAM_CLEAR_VAL_8BIT, + TRAINER_PARAM_CLEAR_VAL_16BIT, + TRAINER_PARAM_CLEAR_VAL_32BIT, + TRAINER_PARAM_LOAD_SCRIPT_RET_ADDR, +}; + +struct TrainerBattleParameter +{ + void *varPtr; + u8 ptrType; +}; + +extern bool8 InBattlePyramid(void); +extern bool8 InBattlePike(void); +extern bool32 InTrainerHill(void); +extern bool32 FieldPoisonEffectIsRunning(void); +extern void overworld_free_bg_tilemaps(void); +extern void prev_quest_postbuffer_cursor_backup_reset(void); +extern void ResetPoisonStepCounter(void); +extern void sub_81BE72C(void); +extern void FreezeMapObjects(void); +extern void sub_808BCF4(void); +extern void sub_80EECC8(void); +extern void c2_exit_to_overworld_1_continue_scripts_restart_music(void); +extern void c2_exit_to_overworld_2_switch(void); +extern void Overworld_ClearSavedMusic(void); +extern void CB2_WhiteOut(void); +extern void sub_80AF6F0(void); +extern void PlayBattleBGM(void); +extern void sub_81DA57C(void); +extern u8 GetSav1Weather(void); +extern u8 Overworld_GetFlashLevel(void); +extern u16 sub_81A9AA8(u8 localId); +extern u16 sub_81D6180(u8 localId); +extern bool8 GetBattlePyramidTrainerFlag(u8 mapObjId); +extern bool8 GetTrainerHillTrainerFlag(u8 mapObjId); +extern bool8 sub_81D5C18(void); +extern void sub_816306C(u8 a0); +extern void sub_8163048(u8 a0); +extern void sub_81A9B04(void); +extern void sub_81D639C(void); +extern void sub_81D6384(void); +extern void sub_81D61E8(void); +extern void sub_80982B8(void); +extern void sub_81A9EDC(u16 a0); +extern void sub_81D572C(u8 a0, u16 arg1); +extern void IncrementGameStat(u8 statId); +extern u32 GetGameStat(u8 statId); + +extern u32 gBattleTypeFlags; +extern u8 gBattleOutcome; +extern void (*gFieldCallback)(void); +extern u8 gApproachingTrainerId; +extern u8 gNoOfApproachingTrainers; +extern u16 gUnknown_03006080; + +// this file's functions +static void DoBattlePikeWildBattle(void); +static void DoSafariBattle(void); +static void DoStandardWildBattle(void); +static void CB2_EndWildBattle(void); +static void CB2_EndScriptedWildBattle(void); +static u8 GetWildBattleTransition(void); +static u8 GetTrainerBattleTransition(void); +static void sub_80B1218(void); +static void sub_80B1234(void); +static void CB2_GiveStarter(void); +static void CB2_StartFirstBattle(void); +static void CB2_EndFirstBattle(void); +static void CB2_EndTrainerBattle(void); +static bool32 IsPlayerDefeated(u32 battleOutcome); +static u16 GetRematchTrainerId(u16 trainerId); +static void RegisterTrainerInMatchCall(void); +static void HandleRematchVarsOnBattleEnd(void); +static const u8 *GetIntroSpeechOfApproachingTrainer(void); +static const u8 *GetTrainerCantBattleSpeech(void); + +// ewram data +EWRAM_DATA static u16 sTrainerBattleMode = 0; +EWRAM_DATA u16 gTrainerBattleOpponent_A = 0; +EWRAM_DATA u16 gTrainerBattleOpponent_B = 0; +EWRAM_DATA u16 gPartnerTrainerId = 0; +EWRAM_DATA static u16 sTrainerMapObjectLocalId = 0; +EWRAM_DATA static u8 *sTrainerAIntroSpeech = NULL; +EWRAM_DATA static u8 *sTrainerBIntroSpeech = NULL; +EWRAM_DATA static u8 *sTrainerADefeatSpeech = NULL; +EWRAM_DATA static u8 *sTrainerBDefeatSpeech = NULL; +EWRAM_DATA static u8 *sTrainerVictorySpeech = NULL; +EWRAM_DATA static u8 *sTrainerCannotBattleSpeech = NULL; +EWRAM_DATA static u8 *sTrainerBattleEndScript = NULL; +EWRAM_DATA static u8 *sTrainerABattleScriptRetAddr = NULL; +EWRAM_DATA static u8 *sTrainerBBattleScriptRetAddr = NULL; +EWRAM_DATA static bool8 sShouldCheckTrainerBScript = FALSE; +EWRAM_DATA static u8 sNoOfPossibleTrainerRetScripts = 0; + +// const rom data + +// The first transition is used if the enemy pokemon are lower level than our pokemon. +// Otherwise, the second transition is used. +static const u8 sBattleTransitionTable_Wild[][2] = +{ + {B_TRANSITION_SLICE, B_TRANSITION_WHITEFADE}, // Normal + {B_TRANSITION_CLOCKWISE_BLACKFADE, B_TRANSITION_GRID_SQUARES}, // Cave + {B_TRANSITION_BLUR, B_TRANSITION_GRID_SQUARES}, // Cave with flash used + {B_TRANSITION_WAVE, B_TRANSITION_RIPPLE}, // Water +}; + +static const u8 sBattleTransitionTable_Trainer[][2] = +{ + {B_TRANSITION_POKEBALLS_TRAIL, B_TRANSITION_SHARDS}, // Normal + {B_TRANSITION_SHUFFLE, B_TRANSITION_BIG_POKEBALL}, // Cave + {B_TRANSITION_BLUR, B_TRANSITION_GRID_SQUARES}, // Cave with flash used + {B_TRANSITION_SWIRL, B_TRANSITION_RIPPLE}, // Water +}; + +static const u8 sUnknown_0854FE98[] = +{ + B_TRANSITION_29, B_TRANSITION_30, B_TRANSITION_31, B_TRANSITION_32, + B_TRANSITION_34, B_TRANSITION_35, B_TRANSITION_36, B_TRANSITION_37, + B_TRANSITION_38, B_TRANSITION_39, B_TRANSITION_40, B_TRANSITION_41 +}; + +static const u8 sUnknown_0854FEA4[] = +{ + B_TRANSITION_31, B_TRANSITION_32, B_TRANSITION_33 +}; + +static const u8 sUnknown_0854FEA7[] = +{ + B_TRANSITION_29, B_TRANSITION_31, B_TRANSITION_32, B_TRANSITION_33 +}; + +static const struct TrainerBattleParameter sOrdinaryBattleParams[] = +{ + {&sTrainerBattleMode, TRAINER_PARAM_LOAD_VAL_8BIT}, + {&gTrainerBattleOpponent_A, TRAINER_PARAM_LOAD_VAL_16BIT}, + {&sTrainerMapObjectLocalId, TRAINER_PARAM_LOAD_VAL_16BIT}, + {&sTrainerAIntroSpeech, TRAINER_PARAM_LOAD_VAL_32BIT}, + {&sTrainerADefeatSpeech, TRAINER_PARAM_LOAD_VAL_32BIT}, + {&sTrainerVictorySpeech, TRAINER_PARAM_CLEAR_VAL_32BIT}, + {&sTrainerCannotBattleSpeech, TRAINER_PARAM_CLEAR_VAL_32BIT}, + {&sTrainerABattleScriptRetAddr, TRAINER_PARAM_CLEAR_VAL_32BIT}, + {&sTrainerBattleEndScript, TRAINER_PARAM_LOAD_SCRIPT_RET_ADDR}, +}; + +static const struct TrainerBattleParameter sContinueScriptBattleParams[] = +{ + {&sTrainerBattleMode, TRAINER_PARAM_LOAD_VAL_8BIT}, + {&gTrainerBattleOpponent_A, TRAINER_PARAM_LOAD_VAL_16BIT}, + {&sTrainerMapObjectLocalId, TRAINER_PARAM_LOAD_VAL_16BIT}, + {&sTrainerAIntroSpeech, TRAINER_PARAM_LOAD_VAL_32BIT}, + {&sTrainerADefeatSpeech, TRAINER_PARAM_LOAD_VAL_32BIT}, + {&sTrainerVictorySpeech, TRAINER_PARAM_CLEAR_VAL_32BIT}, + {&sTrainerCannotBattleSpeech, TRAINER_PARAM_CLEAR_VAL_32BIT}, + {&sTrainerABattleScriptRetAddr, TRAINER_PARAM_LOAD_VAL_32BIT}, + {&sTrainerBattleEndScript, TRAINER_PARAM_LOAD_SCRIPT_RET_ADDR}, +}; + +static const struct TrainerBattleParameter sDoubleBattleParams[] = +{ + {&sTrainerBattleMode, TRAINER_PARAM_LOAD_VAL_8BIT}, + {&gTrainerBattleOpponent_A, TRAINER_PARAM_LOAD_VAL_16BIT}, + {&sTrainerMapObjectLocalId, TRAINER_PARAM_LOAD_VAL_16BIT}, + {&sTrainerAIntroSpeech, TRAINER_PARAM_LOAD_VAL_32BIT}, + {&sTrainerADefeatSpeech, TRAINER_PARAM_LOAD_VAL_32BIT}, + {&sTrainerVictorySpeech, TRAINER_PARAM_CLEAR_VAL_32BIT}, + {&sTrainerCannotBattleSpeech, TRAINER_PARAM_LOAD_VAL_32BIT}, + {&sTrainerABattleScriptRetAddr, TRAINER_PARAM_CLEAR_VAL_32BIT}, + {&sTrainerBattleEndScript, TRAINER_PARAM_LOAD_SCRIPT_RET_ADDR}, +}; + +static const struct TrainerBattleParameter sOrdinaryNoIntroBattleParams[] = +{ + {&sTrainerBattleMode, TRAINER_PARAM_LOAD_VAL_8BIT}, + {&gTrainerBattleOpponent_A, TRAINER_PARAM_LOAD_VAL_16BIT}, + {&sTrainerMapObjectLocalId, TRAINER_PARAM_LOAD_VAL_16BIT}, + {&sTrainerAIntroSpeech, TRAINER_PARAM_CLEAR_VAL_32BIT}, + {&sTrainerADefeatSpeech, TRAINER_PARAM_LOAD_VAL_32BIT}, + {&sTrainerVictorySpeech, TRAINER_PARAM_CLEAR_VAL_32BIT}, + {&sTrainerCannotBattleSpeech, TRAINER_PARAM_CLEAR_VAL_32BIT}, + {&sTrainerABattleScriptRetAddr, TRAINER_PARAM_CLEAR_VAL_32BIT}, + {&sTrainerBattleEndScript, TRAINER_PARAM_LOAD_SCRIPT_RET_ADDR}, +}; + +static const struct TrainerBattleParameter sContinueScriptDoubleBattleParams[] = +{ + {&sTrainerBattleMode, TRAINER_PARAM_LOAD_VAL_8BIT}, + {&gTrainerBattleOpponent_A, TRAINER_PARAM_LOAD_VAL_16BIT}, + {&sTrainerMapObjectLocalId, TRAINER_PARAM_LOAD_VAL_16BIT}, + {&sTrainerAIntroSpeech, TRAINER_PARAM_LOAD_VAL_32BIT}, + {&sTrainerADefeatSpeech, TRAINER_PARAM_LOAD_VAL_32BIT}, + {&sTrainerVictorySpeech, TRAINER_PARAM_CLEAR_VAL_32BIT}, + {&sTrainerCannotBattleSpeech, TRAINER_PARAM_LOAD_VAL_32BIT}, + {&sTrainerABattleScriptRetAddr, TRAINER_PARAM_LOAD_VAL_32BIT}, + {&sTrainerBattleEndScript, TRAINER_PARAM_LOAD_SCRIPT_RET_ADDR}, +}; + +static const struct TrainerBattleParameter sTrainerBOrdinaryBattleParams[] = +{ + {&sTrainerBattleMode, TRAINER_PARAM_LOAD_VAL_8BIT}, + {&gTrainerBattleOpponent_B, TRAINER_PARAM_LOAD_VAL_16BIT}, + {&sTrainerMapObjectLocalId, TRAINER_PARAM_LOAD_VAL_16BIT}, + {&sTrainerBIntroSpeech, TRAINER_PARAM_LOAD_VAL_32BIT}, + {&sTrainerBDefeatSpeech, TRAINER_PARAM_LOAD_VAL_32BIT}, + {&sTrainerVictorySpeech, TRAINER_PARAM_CLEAR_VAL_32BIT}, + {&sTrainerCannotBattleSpeech, TRAINER_PARAM_CLEAR_VAL_32BIT}, + {&sTrainerBBattleScriptRetAddr, TRAINER_PARAM_CLEAR_VAL_32BIT}, + {&sTrainerBattleEndScript, TRAINER_PARAM_LOAD_SCRIPT_RET_ADDR}, +}; + +static const struct TrainerBattleParameter sTrainerBContinueScriptBattleParams[] = +{ + {&sTrainerBattleMode, TRAINER_PARAM_LOAD_VAL_8BIT}, + {&gTrainerBattleOpponent_B, TRAINER_PARAM_LOAD_VAL_16BIT}, + {&sTrainerMapObjectLocalId, TRAINER_PARAM_LOAD_VAL_16BIT}, + {&sTrainerBIntroSpeech, TRAINER_PARAM_LOAD_VAL_32BIT}, + {&sTrainerBDefeatSpeech, TRAINER_PARAM_LOAD_VAL_32BIT}, + {&sTrainerVictorySpeech, TRAINER_PARAM_CLEAR_VAL_32BIT}, + {&sTrainerCannotBattleSpeech, TRAINER_PARAM_CLEAR_VAL_32BIT}, + {&sTrainerBBattleScriptRetAddr, TRAINER_PARAM_LOAD_VAL_32BIT}, + {&sTrainerBattleEndScript, TRAINER_PARAM_LOAD_SCRIPT_RET_ADDR}, +}; + +const struct RematchTrainer gRematchTable[REMATCH_TABLE_ENTRIES] = +{ + {{0x0025, 0x0028, 0x0029, 0x002a, 0x002b}, 0x0000, 0x0021}, + {{0x02e1, 0x032c, 0x032d, 0x032e, 0x032f}, 0x0000, 0x0014}, + {{0x002c, 0x002f, 0x0030, 0x0031, 0x0032}, 0x0000, 0x001a}, + {{0x0039, 0x003c, 0x003d, 0x003e, 0x003f}, 0x0000, 0x0018}, + {{0x0040, 0x0043, 0x0044, 0x0045, 0x0046}, 0x0000, 0x0018}, + {{0x02af, 0x02b0, 0x02b1, 0x02b2, 0x02b3}, 0x0000, 0x0027}, + {{0x02ff, 0x033c, 0x033d, 0x033e, 0x033f}, 0x0000, 0x0024}, + {{0x005e, 0x0065, 0x0066, 0x0067, 0x0068}, 0x0000, 0x001a}, + {{0x004e, 0x0054, 0x0055, 0x0056, 0x0057}, 0x0000, 0x001a}, + {{0x006c, 0x006e, 0x006f, 0x0070, 0x0071}, 0x0018, 0x0014}, + {{0x0072, 0x0078, 0x0079, 0x007a, 0x007b}, 0x0000, 0x0013}, + {{0x0090, 0x034c, 0x034d, 0x034e, 0x034f}, 0x0018, 0x0038}, + {{0x007f, 0x0084, 0x0085, 0x0086, 0x0087}, 0x0000, 0x0024}, + {{0x0088, 0x008b, 0x008c, 0x008d, 0x008e}, 0x0000, 0x0013}, + {{0x008f, 0x0093, 0x0094, 0x0095, 0x0096}, 0x0000, 0x001d}, + {{0x009b, 0x00af, 0x00b0, 0x00b1, 0x00b2}, 0x0000, 0x0016}, + {{0x00b7, 0x00b8, 0x00b9, 0x00ba, 0x00bb}, 0x0000, 0x001e}, + {{0x02a0, 0x0338, 0x0339, 0x033a, 0x033b}, 0x0000, 0x002a}, + {{0x00c3, 0x0340, 0x0341, 0x0342, 0x0343}, 0x0000, 0x0026}, + {{0x00c4, 0x00c5, 0x00c6, 0x00c7, 0x00c8}, 0x0000, 0x0021}, + {{0x00ce, 0x00cf, 0x00d0, 0x00d1, 0x00d2}, 0x0000, 0x001d}, + {{0x00d8, 0x00db, 0x00dc, 0x00dd, 0x00de}, 0x0018, 0x000d}, + {{0x02a9, 0x02aa, 0x02ab, 0x02ac, 0x02ad}, 0x0018, 0x0001}, + {{0x00e2, 0x00e4, 0x00e5, 0x00e6, 0x00e7}, 0x0000, 0x0023}, + {{0x00ee, 0x00ef, 0x00f0, 0x00f1, 0x00f2}, 0x0000, 0x0026}, + {{0x00f9, 0x00fa, 0x00fb, 0x00fc, 0x00fd}, 0x0000, 0x0026}, + {{0x00fe, 0x0101, 0x0102, 0x0103, 0x0104}, 0x0000, 0x0024}, + {{0x0118, 0x011a, 0x011b, 0x011c, 0x011d}, 0x0000, 0x001f}, + {{0x0111, 0x0114, 0x0115, 0x0116, 0x0117}, 0x0000, 0x001f}, + {{0x011f, 0x0120, 0x0121, 0x0122, 0x0123}, 0x0000, 0x0020}, + {{0x012e, 0x012f, 0x0130, 0x0131, 0x0132}, 0x0000, 0x0019}, + {{0x0125, 0x0127, 0x0128, 0x0129, 0x012a}, 0x0000, 0x0012}, + {{0x0133, 0x0134, 0x0135, 0x0136, 0x0137}, 0x0000, 0x001e}, + {{0x0139, 0x013a, 0x013b, 0x013c, 0x013d}, 0x0018, 0x000c}, + {{0x013e, 0x0148, 0x0149, 0x014a, 0x014b}, 0x0000, 0x0011}, + {{0x0153, 0x015a, 0x015b, 0x015c, 0x015d}, 0x0000, 0x0015}, + {{0x0178, 0x017b, 0x017c, 0x017d, 0x017e}, 0x0000, 0x002b}, + {{0x0171, 0x0172, 0x0173, 0x0174, 0x0175}, 0x0000, 0x0020}, + {{0x0166, 0x0168, 0x0169, 0x016a, 0x016b}, 0x0000, 0x0019}, + {{0x016c, 0x016d, 0x016e, 0x016f, 0x0170}, 0x0000, 0x0020}, + {{0x0182, 0x0184, 0x0185, 0x0186, 0x0187}, 0x0000, 0x002b}, + {{0x0161, 0x0162, 0x0163, 0x0164, 0x0165}, 0x0000, 0x0019}, + {{0x0179, 0x0334, 0x0335, 0x0336, 0x0337}, 0x0000, 0x0029}, + {{0x0188, 0x0189, 0x018a, 0x018b, 0x018c}, 0x0018, 0x0001}, + {{0x0196, 0x0199, 0x019a, 0x019b, 0x019c}, 0x0000, 0x0023}, + {{0x01a3, 0x01a5, 0x01a6, 0x01a7, 0x01a8}, 0x0000, 0x001c}, + {{0x01ab, 0x01ae, 0x01af, 0x01b0, 0x01b1}, 0x0000, 0x001e}, + {{0x01b2, 0x01b5, 0x01b6, 0x01b7, 0x01b8}, 0x0000, 0x001c}, + {{0x01c1, 0x01d1, 0x01d2, 0x01d3, 0x01d4}, 0x0000, 0x0027}, + {{0x01da, 0x01dd, 0x01de, 0x01df, 0x01e0}, 0x0018, 0x000d}, + {{0x01e1, 0x01e2, 0x01e7, 0x01e8, 0x01e9}, 0x0000, 0x0012}, + {{0x01ec, 0x01f1, 0x01f2, 0x01f3, 0x01f4}, 0x0000, 0x0028}, + {{0x02e4, 0x0330, 0x0331, 0x0332, 0x0333}, 0x0000, 0x0017}, + {{0x0200, 0x0203, 0x0204, 0x0205, 0x0206}, 0x0000, 0x0019}, + {{0x0221, 0x0224, 0x0225, 0x0226, 0x0227}, 0x0000, 0x0020}, + {{0x021a, 0x021d, 0x021e, 0x021f, 0x0220}, 0x0000, 0x0020}, + {{0x0009, 0x0348, 0x0349, 0x034a, 0x034b}, 0x0018, 0x0011}, + {{0x022f, 0x0232, 0x0233, 0x0234, 0x0235}, 0x0000, 0x0022}, + {{0x0228, 0x022b, 0x022c, 0x022d, 0x022e}, 0x0000, 0x0022}, + {{0x025c, 0x025f, 0x0260, 0x0261, 0x0262}, 0x0000, 0x0013}, + {{0x026d, 0x026e, 0x026f, 0x0270, 0x0271}, 0x0018, 0x000b}, + {{0x0273, 0x027c, 0x027d, 0x027e, 0x027f}, 0x0000, 0x001b}, + {{0x0001, 0x0344, 0x0345, 0x0346, 0x0347}, 0x0018, 0x000c}, + {{0x0282, 0x0283, 0x0284, 0x0285, 0x0286}, 0x0018, 0x003e}, + {{0x0291, 0x0292, 0x0293, 0x0294, 0x0294}, 0x0018, 0x002b}, + {{0x0109, 0x0302, 0x0303, 0x0304, 0x0305}, 0x0000, 0x0003}, + {{0x010a, 0x0306, 0x0307, 0x0308, 0x0309}, 0x0000, 0x000b}, + {{0x010b, 0x030a, 0x030b, 0x030c, 0x030d}, 0x0000, 0x0002}, + {{0x010c, 0x030e, 0x030f, 0x0310, 0x0311}, 0x0000, 0x000c}, + {{0x010d, 0x0312, 0x0313, 0x0314, 0x0315}, 0x0000, 0x0000}, + {{0x010e, 0x0316, 0x0317, 0x0318, 0x0319}, 0x0000, 0x0004}, + {{0x010f, 0x031a, 0x031b, 0x031c, 0x031d}, 0x0000, 0x0006}, + {{0x0110, 0x031e, 0x031f, 0x0320, 0x0321}, 0x0000, 0x0007}, + {{0x0105, 0x0105, 0x0105, 0x0105, 0x0105}, 0x0000, 0x0008}, + {{0x0106, 0x0106, 0x0106, 0x0106, 0x0106}, 0x0000, 0x0008}, + {{0x0107, 0x0107, 0x0107, 0x0107, 0x0107}, 0x0000, 0x0008}, + {{0x0108, 0x0108, 0x0108, 0x0108, 0x0108}, 0x0000, 0x0008}, + {{0x014f, 0x014f, 0x014f, 0x014f, 0x014f}, 0x0000, 0x0008}, +}; + +static const u16 sBadgeFlags[8] = +{ + FLAG_BADGE01_GET, FLAG_BADGE02_GET, FLAG_BADGE03_GET, FLAG_BADGE04_GET, + FLAG_BADGE05_GET, FLAG_BADGE06_GET, FLAG_BADGE07_GET, FLAG_BADGE08_GET, +}; + +#define tState data[0] +#define tTransition data[1] + +static void Task_BattleStart(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + + switch (tState) + { + case 0: + if (!FieldPoisonEffectIsRunning()) // is poison not active? + { + BattleTransition_StartOnField(tTransition); + sub_81BE72C(); + tState++; // go to case 1. + } + break; + case 1: + if (IsBattleTransitionDone() == TRUE) + { + overworld_free_bg_tilemaps(); + SetMainCallback2(CB2_InitBattle); + prev_quest_postbuffer_cursor_backup_reset(); + ResetPoisonStepCounter(); + DestroyTask(taskId); + } + break; + } +} + +static void CreateBattleStartTask(u8 transition, u16 song) +{ + u8 taskId = CreateTask(Task_BattleStart, 1); + + gTasks[taskId].tTransition = transition; + PlayMapChosenOrBattleBGM(song); +} + +#undef tState +#undef tTransition + +void BattleSetup_StartWildBattle(void) +{ + if (GetSafariZoneFlag()) + DoSafariBattle(); + else + DoStandardWildBattle(); +} + +void BattleSetup_StartBattlePikeWildBattle(void) +{ + DoBattlePikeWildBattle(); +} + +static void DoStandardWildBattle(void) +{ + ScriptContext2_Enable(); + FreezeMapObjects(); + sub_808BCF4(); + gMain.savedCallback = CB2_EndWildBattle; + gBattleTypeFlags = 0; + if (InBattlePyramid()) + { + VarSet(VAR_0x400E, 0); + gBattleTypeFlags |= BATTLE_TYPE_PYRAMID; + } + CreateBattleStartTask(GetWildBattleTransition(), 0); + IncrementGameStat(GAME_STAT_TOTAL_BATTLES); + IncrementGameStat(GAME_STAT_WILD_BATTLES); + sub_80EECC8(); + sub_80B1218(); +} + +void BattleSetup_StartRoamerBattle(void) +{ + ScriptContext2_Enable(); + FreezeMapObjects(); + sub_808BCF4(); + gMain.savedCallback = CB2_EndWildBattle; + gBattleTypeFlags = BATTLE_TYPE_ROAMER; + CreateBattleStartTask(GetWildBattleTransition(), 0); + IncrementGameStat(GAME_STAT_TOTAL_BATTLES); + IncrementGameStat(GAME_STAT_WILD_BATTLES); + sub_80EECC8(); + sub_80B1218(); +} + +static void DoSafariBattle(void) +{ + ScriptContext2_Enable(); + FreezeMapObjects(); + sub_808BCF4(); + gMain.savedCallback = CB2_EndSafariBattle; + gBattleTypeFlags = BATTLE_TYPE_SAFARI; + CreateBattleStartTask(GetWildBattleTransition(), 0); +} + +static void DoBattlePikeWildBattle(void) +{ + ScriptContext2_Enable(); + FreezeMapObjects(); + sub_808BCF4(); + gMain.savedCallback = CB2_EndWildBattle; + gBattleTypeFlags = BATTLE_TYPE_PIKE; + CreateBattleStartTask(GetWildBattleTransition(), 0); + IncrementGameStat(GAME_STAT_TOTAL_BATTLES); + IncrementGameStat(GAME_STAT_WILD_BATTLES); + sub_80EECC8(); + sub_80B1218(); +} + +static void DoTrainerBattle(void) +{ + CreateBattleStartTask(GetTrainerBattleTransition(), 0); + IncrementGameStat(GAME_STAT_TOTAL_BATTLES); + IncrementGameStat(GAME_STAT_TRAINER_BATTLES); + sub_80B1234(); +} + +static void sub_80B0828(void) +{ + if (InBattlePyramid()) + CreateBattleStartTask(sub_80B100C(10), 0); + else + CreateBattleStartTask(sub_80B100C(11), 0); + + IncrementGameStat(GAME_STAT_TOTAL_BATTLES); + IncrementGameStat(GAME_STAT_TRAINER_BATTLES); + sub_80B1234(); +} + +// Initiates battle where Wally catches Ralts +void StartWallyTutorialBattle(void) +{ + CreateMaleMon(&gEnemyParty[0], SPECIES_RALTS, 5); + ScriptContext2_Enable(); + gMain.savedCallback = c2_exit_to_overworld_1_continue_scripts_restart_music; + gBattleTypeFlags = BATTLE_TYPE_WALLY_TUTORIAL; + CreateBattleStartTask(B_TRANSITION_SLICE, 0); +} + +void BattleSetup_StartScriptedWildBattle(void) +{ + ScriptContext2_Enable(); + gMain.savedCallback = CB2_EndScriptedWildBattle; + gBattleTypeFlags = 0; + CreateBattleStartTask(GetWildBattleTransition(), 0); + IncrementGameStat(GAME_STAT_TOTAL_BATTLES); + IncrementGameStat(GAME_STAT_WILD_BATTLES); + sub_80EECC8(); + sub_80B1218(); +} + +void BattleSetup_StartLatiBattle(void) +{ + ScriptContext2_Enable(); + gMain.savedCallback = CB2_EndScriptedWildBattle; + gBattleTypeFlags = BATTLE_TYPE_LEGENDARY; + CreateBattleStartTask(GetWildBattleTransition(), 0); + IncrementGameStat(GAME_STAT_TOTAL_BATTLES); + IncrementGameStat(GAME_STAT_WILD_BATTLES); + sub_80EECC8(); + sub_80B1218(); +} + +void BattleSetup_StartLegendaryBattle(void) +{ + ScriptContext2_Enable(); + gMain.savedCallback = CB2_EndScriptedWildBattle; + gBattleTypeFlags = BATTLE_TYPE_LEGENDARY; + + switch (GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, NULL)) + { + default: + case SPECIES_GROUDON: + gBattleTypeFlags |= BATTLE_TYPE_GROUDON; + CreateBattleStartTask(B_TRANSITION_GROUDON, BGM_BATTLE34); + break; + case SPECIES_KYOGRE: + gBattleTypeFlags |= BATTLE_TYPE_KYOGRE; + CreateBattleStartTask(B_TRANSITION_KYOGRE, BGM_BATTLE34); + break; + case SPECIES_RAYQUAZA: + gBattleTypeFlags |= BATTLE_TYPE_RAYQUAZA; + CreateBattleStartTask(B_TRANSITION_RAYQUAZA, BGM_BATTLE_LEGENDARY); + break; + case SPECIES_DEOXYS: + CreateBattleStartTask(B_TRANSITION_BLUR, BGM_FRLG_BATTLE_DEOXYS); + break; + case SPECIES_LUGIA: + case SPECIES_HO_OH: + CreateBattleStartTask(B_TRANSITION_BLUR, BGM_FRLG_BATTLE_LEGENDARY); + break; + case SPECIES_MEW: + CreateBattleStartTask(B_TRANSITION_GRID_SQUARES, BGM_BATTLE_MEW); + break; + } + + IncrementGameStat(GAME_STAT_TOTAL_BATTLES); + IncrementGameStat(GAME_STAT_WILD_BATTLES); + sub_80EECC8(); + sub_80B1218(); +} + +void StartGroudonKyogreBattle(void) +{ + ScriptContext2_Enable(); + gMain.savedCallback = CB2_EndScriptedWildBattle; + gBattleTypeFlags = BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_KYOGRE_GROUDON; + + if (gGameVersion == VERSION_RUBY) + CreateBattleStartTask(B_TRANSITION_SHARDS, BGM_BATTLE34); // GROUDON + else + CreateBattleStartTask(B_TRANSITION_RIPPLE, BGM_BATTLE34); // KYOGRE + + IncrementGameStat(GAME_STAT_TOTAL_BATTLES); + IncrementGameStat(GAME_STAT_WILD_BATTLES); + sub_80EECC8(); + sub_80B1218(); +} + +void StartRegiBattle(void) +{ + u8 transitionId; + u16 species; + + ScriptContext2_Enable(); + gMain.savedCallback = CB2_EndScriptedWildBattle; + gBattleTypeFlags = BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_REGI; + + species = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES); + switch (species) + { + case SPECIES_REGIROCK: + transitionId = B_TRANSITION_REGIROCK; + break; + case SPECIES_REGICE: + transitionId = B_TRANSITION_REGICE; + break; + case SPECIES_REGISTEEL: + transitionId = B_TRANSITION_REGISTEEL; + break; + default: + transitionId = B_TRANSITION_GRID_SQUARES; + break; + } + CreateBattleStartTask(transitionId, BGM_BATTLE36); + + IncrementGameStat(GAME_STAT_TOTAL_BATTLES); + IncrementGameStat(GAME_STAT_WILD_BATTLES); + sub_80EECC8(); + sub_80B1218(); +} + +static void CB2_EndWildBattle(void) +{ + CpuFill16(0, (void*)(BG_PLTT), BG_PLTT_SIZE); + ResetOamRange(0, 128); + + if (IsPlayerDefeated(gBattleOutcome) == TRUE && !InBattlePyramid() && !InBattlePike()) + { + SetMainCallback2(CB2_WhiteOut); + } + else + { + SetMainCallback2(c2_exit_to_overworld_2_switch); + gFieldCallback = sub_80AF6F0; + } +} + +static void CB2_EndScriptedWildBattle(void) +{ + CpuFill16(0, (void*)(BG_PLTT), BG_PLTT_SIZE); + ResetOamRange(0, 128); + + if (IsPlayerDefeated(gBattleOutcome) == TRUE) + { + if (InBattlePyramid()) + SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music); + else + SetMainCallback2(CB2_WhiteOut); + } + else + { + SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music); + } +} + +u8 BattleSetup_GetTerrainId(void) +{ + u16 tileBehavior; + s16 x, y; + + PlayerGetDestCoords(&x, &y); + tileBehavior = MapGridGetMetatileBehaviorAt(x, y); + + if (MetatileBehavior_IsTallGrass(tileBehavior)) + return BATTLE_TERRAIN_GRASS; + if (MetatileBehavior_IsLongGrass(tileBehavior)) + return BATTLE_TERRAIN_LONG_GRASS; + if (MetatileBehavior_IsSandOrDeepSand(tileBehavior)) + return BATTLE_TERRAIN_SAND; + + switch (gMapHeader.mapType) + { + case MAP_TYPE_TOWN: + case MAP_TYPE_CITY: + case MAP_TYPE_ROUTE: + break; + case MAP_TYPE_UNDERGROUND: + if (MetatileBehavior_IsMB_0B(tileBehavior)) + return BATTLE_TERRAIN_BUILDING; + if (MetatileBehavior_IsSurfableWaterOrUnderwater(tileBehavior)) + return BATTLE_TERRAIN_POND; + return BATTLE_TERRAIN_CAVE; + case MAP_TYPE_INDOOR: + case MAP_TYPE_SECRET_BASE: + return BATTLE_TERRAIN_BUILDING; + case MAP_TYPE_UNDERWATER: + return BATTLE_TERRAIN_UNDERWATER; + case MAP_TYPE_6: + if (MetatileBehavior_IsSurfableWaterOrUnderwater(tileBehavior)) + return BATTLE_TERRAIN_WATER; + return BATTLE_TERRAIN_PLAIN; + } + if (MetatileBehavior_IsDeepOrOceanWater(tileBehavior)) + return BATTLE_TERRAIN_WATER; + if (MetatileBehavior_IsSurfableWaterOrUnderwater(tileBehavior)) + return BATTLE_TERRAIN_POND; + if (MetatileBehavior_IsMountain(tileBehavior)) + return BATTLE_TERRAIN_MOUNTAIN; + if (TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING)) + { + if (MetatileBehavior_GetBridgeSth(tileBehavior)) + return BATTLE_TERRAIN_POND; + if (MetatileBehavior_IsBridge(tileBehavior) == TRUE) + return BATTLE_TERRAIN_WATER; + } + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(ROUTE113) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE113)) + return BATTLE_TERRAIN_SAND; + if (GetSav1Weather() == 8) + return BATTLE_TERRAIN_SAND; + + return BATTLE_TERRAIN_PLAIN; +} + +static u8 GetBattleTransitionTypeByMap(void) +{ + u16 tileBehavior; + s16 x, y; + + PlayerGetDestCoords(&x, &y); + tileBehavior = MapGridGetMetatileBehaviorAt(x, y); + if (Overworld_GetFlashLevel()) + return B_TRANSITION_SHUFFLE; + if (!MetatileBehavior_IsSurfableWaterOrUnderwater(tileBehavior)) + { + switch (gMapHeader.mapType) + { + case MAP_TYPE_UNDERGROUND: + return B_TRANSITION_SWIRL; + case MAP_TYPE_UNDERWATER: + return B_TRANSITION_BIG_POKEBALL; + default: + return B_TRANSITION_BLUR; + } + } + return B_TRANSITION_BIG_POKEBALL; +} + +static u16 GetSumOfPlayerPartyLevel(u8 numMons) +{ + u8 sum = 0; + int i; + + for (i = 0; i < PARTY_SIZE; i++) + { + u32 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2); + + if (species != SPECIES_EGG && species != SPECIES_NONE && GetMonData(&gPlayerParty[i], MON_DATA_HP) != 0) + { + sum += GetMonData(&gPlayerParty[i], MON_DATA_LEVEL); + if (--numMons == 0) + break; + } + } + return sum; +} + +static u8 GetSumOfEnemyPartyLevel(u16 opponentId, u8 numMons) +{ + u8 i; + u8 sum; + u32 count = numMons; + + if (gTrainers[opponentId].partySize < count) + count = gTrainers[opponentId].partySize; + + sum = 0; + + switch (gTrainers[opponentId].partyFlags) + { + case 0: + { + const struct TrainerMonNoItemDefaultMoves *party; + party = gTrainers[opponentId].party.NoItemDefaultMoves; + for (i = 0; i < count; i++) + sum += party[i].lvl; + } + break; + case F_TRAINER_PARTY_CUSTOM_MOVESET: + { + const struct TrainerMonNoItemCustomMoves *party; + party = gTrainers[opponentId].party.NoItemCustomMoves; + for (i = 0; i < count; i++) + sum += party[i].lvl; + } + break; + case F_TRAINER_PARTY_HELD_ITEM: + { + const struct TrainerMonItemDefaultMoves *party; + party = gTrainers[opponentId].party.ItemDefaultMoves; + for (i = 0; i < count; i++) + sum += party[i].lvl; + } + break; + case F_TRAINER_PARTY_CUSTOM_MOVESET | F_TRAINER_PARTY_HELD_ITEM: + { + const struct TrainerMonItemCustomMoves *party; + party = gTrainers[opponentId].party.ItemCustomMoves; + for (i = 0; i < count; i++) + sum += party[i].lvl; + } + break; + } + + return sum; +} + +static u8 GetWildBattleTransition(void) +{ + u8 transitionType = GetBattleTransitionTypeByMap(); + u8 enemyLevel = GetMonData(&gEnemyParty[0], MON_DATA_LEVEL); + u8 playerLevel = GetSumOfPlayerPartyLevel(1); + + if (enemyLevel < playerLevel) + { + if (InBattlePyramid()) + return B_TRANSITION_BLUR; + else + return sBattleTransitionTable_Wild[transitionType][0]; + } + else + { + if (InBattlePyramid()) + return B_TRANSITION_GRID_SQUARES; + else + return sBattleTransitionTable_Wild[transitionType][1]; + } +} + +static u8 GetTrainerBattleTransition(void) +{ + u8 minPartyCount; + u8 transitionType; + u8 enemyLevel; + u8 playerLevel; + + if (gTrainerBattleOpponent_A == SECRET_BASE_OPPONENT) + return B_TRANSITION_CHAMPION; + + if (gTrainers[gTrainerBattleOpponent_A].trainerClass == TRAINER_CLASS_ELITE_FOUR) + { + if (gTrainerBattleOpponent_A == TRAINER_SIDNEY) + return B_TRANSITION_SYDNEY; + if (gTrainerBattleOpponent_A == TRAINER_PHOEBE) + return B_TRANSITION_PHOEBE; + if (gTrainerBattleOpponent_A == TRAINER_GLACIA) + return B_TRANSITION_GLACIA; + if (gTrainerBattleOpponent_A == TRAINER_DRAKE) + return B_TRANSITION_DRAKE; + return B_TRANSITION_CHAMPION; + } + + if (gTrainers[gTrainerBattleOpponent_A].trainerClass == TRAINER_CLASS_CHAMPION) + return B_TRANSITION_CHAMPION; + + if (gTrainers[gTrainerBattleOpponent_A].trainerClass == TRAINER_CLASS_TEAM_MAGMA + || gTrainers[gTrainerBattleOpponent_A].trainerClass == TRAINER_CLASS_MAGMA_LEADER + || gTrainers[gTrainerBattleOpponent_A].trainerClass == TRAINER_CLASS_MAGMA_ADMIN) + return B_TRANSITION_MAGMA; + + if (gTrainers[gTrainerBattleOpponent_A].trainerClass == TRAINER_CLASS_TEAM_AQUA + || gTrainers[gTrainerBattleOpponent_A].trainerClass == TRAINER_CLASS_AQUA_LEADER + || gTrainers[gTrainerBattleOpponent_A].trainerClass == TRAINER_CLASS_AQUA_ADMIN) + return B_TRANSITION_AQUA; + + if (gTrainers[gTrainerBattleOpponent_A].doubleBattle == TRUE) + minPartyCount = 2; // double battles always at least have 2 pokemon. + else + minPartyCount = 1; + + transitionType = GetBattleTransitionTypeByMap(); + enemyLevel = GetSumOfEnemyPartyLevel(gTrainerBattleOpponent_A, minPartyCount); + playerLevel = GetSumOfPlayerPartyLevel(minPartyCount); + + if (enemyLevel < playerLevel) + return sBattleTransitionTable_Trainer[transitionType][0]; + else + return sBattleTransitionTable_Trainer[transitionType][1]; +} + +u8 sub_80B100C(s32 arg0) +{ + u16 var; + u8 enemyLevel = GetMonData(&gEnemyParty[0], MON_DATA_LEVEL); + u8 playerLevel = GetSumOfPlayerPartyLevel(1); + + if (enemyLevel < playerLevel) + { + switch (arg0) + { + case 11: + case 12: + case 13: + return B_TRANSITION_POKEBALLS_TRAIL; + case 10: + return sUnknown_0854FEA4[Random() % ARRAY_COUNT(sUnknown_0854FEA4)]; + case 3: + return sUnknown_0854FEA7[Random() % ARRAY_COUNT(sUnknown_0854FEA7)]; + } + + if (VarGet(VAR_0x40CE) != 3) + return sUnknown_0854FE98[Random() % ARRAY_COUNT(sUnknown_0854FE98)]; + } + else + { + switch (arg0) + { + case 11: + case 12: + case 13: + return B_TRANSITION_BIG_POKEBALL; + case 10: + return sUnknown_0854FEA4[Random() % ARRAY_COUNT(sUnknown_0854FEA4)]; + case 3: + return sUnknown_0854FEA7[Random() % ARRAY_COUNT(sUnknown_0854FEA7)]; + } + + if (VarGet(VAR_0x40CE) != 3) + return sUnknown_0854FE98[Random() % ARRAY_COUNT(sUnknown_0854FE98)]; + } + + var = gSaveBlock2Ptr->field_CB4[gSaveBlock2Ptr->battlePyramidWildHeaderId * 2 + 0] + + gSaveBlock2Ptr->field_CB4[gSaveBlock2Ptr->battlePyramidWildHeaderId * 2 + 1]; + + return sUnknown_0854FE98[var % ARRAY_COUNT(sUnknown_0854FE98)]; +} + +void ChooseStarter(void) +{ + SetMainCallback2(CB2_ChooseStarter); + gMain.savedCallback = CB2_GiveStarter; +} + +static void CB2_GiveStarter(void) +{ + u16 starterMon; + + *GetVarPointer(VAR_FIRST_POKE) = gSpecialVar_Result; + starterMon = GetStarterPokemon(gSpecialVar_Result); + ScriptGiveMon(starterMon, 5, 0, 0, 0, 0); + ResetTasks(); + PlayBattleBGM(); + SetMainCallback2(CB2_StartFirstBattle); + BattleTransition_Start(B_TRANSITION_BLUR); +} + +static void CB2_StartFirstBattle(void) +{ + UpdatePaletteFade(); + RunTasks(); + + if (IsBattleTransitionDone() == TRUE) + { + gBattleTypeFlags = BATTLE_TYPE_FIRST_BATTLE; + gMain.savedCallback = CB2_EndFirstBattle; + FreeAllWindowBuffers(); + SetMainCallback2(CB2_InitBattle); + prev_quest_postbuffer_cursor_backup_reset(); + ResetPoisonStepCounter(); + IncrementGameStat(GAME_STAT_TOTAL_BATTLES); + IncrementGameStat(GAME_STAT_WILD_BATTLES); + sub_80EECC8(); + sub_80B1218(); + } +} + +static void CB2_EndFirstBattle(void) +{ + Overworld_ClearSavedMusic(); + SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music); +} + +static void sub_80B1218(void) +{ + if (GetGameStat(GAME_STAT_WILD_BATTLES) % 60 == 0) + sub_81DA57C(); +} + +static void sub_80B1234(void) +{ + if (GetGameStat(GAME_STAT_TRAINER_BATTLES) % 20 == 0) + sub_81DA57C(); +} + +// why not just use the macros? maybe its because they didnt want to uncast const every time? +static u32 TrainerBattleLoadArg32(const u8 *ptr) +{ + return T1_READ_32(ptr); +} + +static u16 TrainerBattleLoadArg16(const u8 *ptr) +{ + return T1_READ_16(ptr); +} + +static u8 TrainerBattleLoadArg8(const u8 *ptr) +{ + return T1_READ_8(ptr); +} + +static u16 GetTrainerAFlag(void) +{ + return FLAG_TRAINER_FLAG_START + gTrainerBattleOpponent_A; +} + +static u16 GetTrainerBFlag(void) +{ + return FLAG_TRAINER_FLAG_START + gTrainerBattleOpponent_B; +} + +static bool32 IsPlayerDefeated(u32 battleOutcome) +{ + switch (battleOutcome) + { + case BATTLE_LOST: + case BATTLE_DREW: + return TRUE; + case BATTLE_WON: + case BATTLE_RAN: + case BATTLE_PLAYER_TELEPORTED: + case BATTLE_POKE_FLED: + case BATTLE_CAUGHT: + return FALSE; + default: + return FALSE; + } +} + +void ResetTrainerOpponentIds(void) +{ + gTrainerBattleOpponent_A = 0; + gTrainerBattleOpponent_B = 0; +} + +static void InitTrainerBattleVariables(void) +{ + sTrainerBattleMode = 0; + if (gApproachingTrainerId == 0) + { + sTrainerAIntroSpeech = NULL; + sTrainerADefeatSpeech = NULL; + sTrainerABattleScriptRetAddr = NULL; + } + else + { + sTrainerBIntroSpeech = NULL; + sTrainerBDefeatSpeech = NULL; + sTrainerBBattleScriptRetAddr = NULL; + } + sTrainerMapObjectLocalId = 0; + sTrainerVictorySpeech = NULL; + sTrainerCannotBattleSpeech = NULL; + sTrainerBattleEndScript = NULL; +} + +static inline void SetU8(void *ptr, u8 value) +{ + *(u8*)(ptr) = value; +} + +static inline void SetU16(void *ptr, u16 value) +{ + *(u16*)(ptr) = value; +} + +static inline void SetU32(void *ptr, u32 value) +{ + *(u32*)(ptr) = value; +} + +static inline void SetPtr(const void *ptr, const void* value) +{ + *(const void**)(ptr) = value; +} + +static void TrainerBattleLoadArgs(const struct TrainerBattleParameter *specs, const u8 *data) +{ + while (1) + { + switch (specs->ptrType) + { + case TRAINER_PARAM_LOAD_VAL_8BIT: + SetU8(specs->varPtr, TrainerBattleLoadArg8(data)); + data += 1; + break; + case TRAINER_PARAM_LOAD_VAL_16BIT: + SetU16(specs->varPtr, TrainerBattleLoadArg16(data)); + data += 2; + break; + case TRAINER_PARAM_LOAD_VAL_32BIT: + SetU32(specs->varPtr, TrainerBattleLoadArg32(data)); + data += 4; + break; + case TRAINER_PARAM_CLEAR_VAL_8BIT: + SetU8(specs->varPtr, 0); + break; + case TRAINER_PARAM_CLEAR_VAL_16BIT: + SetU16(specs->varPtr, 0); + break; + case TRAINER_PARAM_CLEAR_VAL_32BIT: + SetU32(specs->varPtr, 0); + break; + case TRAINER_PARAM_LOAD_SCRIPT_RET_ADDR: + SetPtr(specs->varPtr, data); + return; + } + specs++; + } +} + +void SetMapVarsToTrainer(void) +{ + if (sTrainerMapObjectLocalId != 0) + { + gSpecialVar_LastTalked = sTrainerMapObjectLocalId; + gSelectedMapObject = GetFieldObjectIdByLocalIdAndMap(sTrainerMapObjectLocalId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + } +} + +const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data) +{ + InitTrainerBattleVariables(); + sTrainerBattleMode = TrainerBattleLoadArg8(data); + + switch (sTrainerBattleMode) + { + case 3: + TrainerBattleLoadArgs(sOrdinaryNoIntroBattleParams, data); + return EventScript_2713C2; + case 4: + TrainerBattleLoadArgs(sDoubleBattleParams, data); + SetMapVarsToTrainer(); + return EventScript_TryDoDoubleTrainerBattle; + case 2: + if (gApproachingTrainerId == 0) + { + TrainerBattleLoadArgs(sContinueScriptBattleParams, data); + SetMapVarsToTrainer(); + } + else + { + TrainerBattleLoadArgs(sTrainerBContinueScriptBattleParams, data); + } + return EventScript_271362; + case 1: + TrainerBattleLoadArgs(sContinueScriptBattleParams, data); + SetMapVarsToTrainer(); + return EventScript_271362; + case 6: + case 8: + TrainerBattleLoadArgs(sContinueScriptDoubleBattleParams, data); + SetMapVarsToTrainer(); + return EventScript_TryDoDoubleTrainerBattle; + case 7: + TrainerBattleLoadArgs(sDoubleBattleParams, data); + SetMapVarsToTrainer(); + gTrainerBattleOpponent_A = GetRematchTrainerId(gTrainerBattleOpponent_A); + return EventScript_TryDoDoubleRematchBattle; + case 5: + TrainerBattleLoadArgs(sOrdinaryBattleParams, data); + SetMapVarsToTrainer(); + gTrainerBattleOpponent_A = GetRematchTrainerId(gTrainerBattleOpponent_A); + return EventScript_2713D1; + case 9: + if (gApproachingTrainerId == 0) + { + TrainerBattleLoadArgs(sOrdinaryBattleParams, data); + SetMapVarsToTrainer(); + gTrainerBattleOpponent_A = sub_81A9AA8(gSpecialVar_LastTalked); + } + else + { + TrainerBattleLoadArgs(sTrainerBOrdinaryBattleParams, data); + gTrainerBattleOpponent_B = sub_81A9AA8(gSpecialVar_LastTalked); + } + return EventScript_271362; + case 10: + TrainerBattleLoadArgs(sOrdinaryBattleParams, data); + return NULL; + case 11: + TrainerBattleLoadArgs(sTrainerBOrdinaryBattleParams, data); + return NULL; + case 12: + if (gApproachingTrainerId == 0) + { + TrainerBattleLoadArgs(sOrdinaryBattleParams, data); + SetMapVarsToTrainer(); + gTrainerBattleOpponent_A = sub_81D6180(gSpecialVar_LastTalked); + } + else + { + TrainerBattleLoadArgs(sTrainerBOrdinaryBattleParams, data); + gTrainerBattleOpponent_B = sub_81D6180(gSpecialVar_LastTalked); + } + return EventScript_271362; + default: + if (gApproachingTrainerId == 0) + { + TrainerBattleLoadArgs(sOrdinaryBattleParams, data); + SetMapVarsToTrainer(); + } + else + { + TrainerBattleLoadArgs(sTrainerBOrdinaryBattleParams, data); + } + return EventScript_271362; + } +} + +void ConfigureAndSetUpOneTrainerBattle(u8 trainerMapObjId, const u8 *trainerScript) +{ + gSelectedMapObject = trainerMapObjId; + gSpecialVar_LastTalked = gMapObjects[trainerMapObjId].localId; + BattleSetup_ConfigureTrainerBattle(trainerScript + 1); + ScriptContext1_SetupScript(EventScript_271354); + ScriptContext2_Enable(); +} + +void ConfigureTwoTrainersBattle(u8 trainerMapObjId, const u8 *trainerScript) +{ + gSelectedMapObject = trainerMapObjId; + gSpecialVar_LastTalked = gMapObjects[trainerMapObjId].localId; + BattleSetup_ConfigureTrainerBattle(trainerScript + 1); +} + +void SetUpTwoTrainersBattle(void) +{ + ScriptContext1_SetupScript(EventScript_271354); + ScriptContext2_Enable(); +} + +bool32 GetTrainerFlagFromScriptPointer(const u8 *data) +{ + u32 flag = TrainerBattleLoadArg16(data + 2); + return FlagGet(FLAG_TRAINER_FLAG_START + flag); +} + +void sub_80B16D8(void) +{ + struct MapObject *mapObject = &gMapObjects[gSelectedMapObject]; + + npc_set_running_behaviour_etc(mapObject, npc_running_behaviour_by_direction(mapObject->mapobj_unk_18)); +} + +u8 GetTrainerBattleMode(void) +{ + return sTrainerBattleMode; +} + +bool8 GetTrainerFlag(void) +{ + if (InBattlePyramid()) + return GetBattlePyramidTrainerFlag(gSelectedMapObject); + else if (InTrainerHill()) + return GetTrainerHillTrainerFlag(gSelectedMapObject); + else + return FlagGet(GetTrainerAFlag()); +} + +static void SetBattledTrainersFlags(void) +{ + if (gTrainerBattleOpponent_B != 0) + FlagSet(GetTrainerBFlag()); + FlagSet(GetTrainerAFlag()); +} + +static void SetBattledTrainerFlag(void) +{ + FlagSet(GetTrainerAFlag()); +} + +bool8 HasTrainerBeenFought(u16 trainerId) +{ + return FlagGet(FLAG_TRAINER_FLAG_START + trainerId); +} + +void SetTrainerFlag(u16 trainerId) +{ + FlagSet(FLAG_TRAINER_FLAG_START + trainerId); +} + +void ClearTrainerFlag(u16 trainerId) +{ + FlagClear(FLAG_TRAINER_FLAG_START + trainerId); +} + +void BattleSetup_StartTrainerBattle(void) +{ + if (gNoOfApproachingTrainers == 2) + gBattleTypeFlags = (BATTLE_TYPE_DOUBLE | BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_TRAINER); + else + gBattleTypeFlags = (BATTLE_TYPE_TRAINER); + + if (InBattlePyramid()) + { + VarSet(VAR_0x400E, 0); + gBattleTypeFlags |= BATTLE_TYPE_PYRAMID; + + if (gNoOfApproachingTrainers == 2) + { + sub_816306C(1); + ZeroMonData(&gEnemyParty[1]); + ZeroMonData(&gEnemyParty[2]); + ZeroMonData(&gEnemyParty[4]); + ZeroMonData(&gEnemyParty[5]); + } + else + { + sub_8163048(1); + ZeroMonData(&gEnemyParty[1]); + ZeroMonData(&gEnemyParty[2]); + } + + sub_81A9B04(); + } + else if (sub_81D5C18()) + { + gBattleTypeFlags |= BATTLE_TYPE_x4000000; + + if (gNoOfApproachingTrainers == 2) + sub_81D639C(); + else + sub_81D6384(); + + sub_81D61E8(); + } + + sNoOfPossibleTrainerRetScripts = gNoOfApproachingTrainers; + gNoOfApproachingTrainers = 0; + sShouldCheckTrainerBScript = FALSE; + gUnknown_03006080 = 0; + gMain.savedCallback = CB2_EndTrainerBattle; + + if (InBattlePyramid() || sub_81D5C18()) + sub_80B0828(); + else + DoTrainerBattle(); + + ScriptContext1_Stop(); +} + +static void CB2_EndTrainerBattle(void) +{ + if (gTrainerBattleOpponent_A == SECRET_BASE_OPPONENT) + { + SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music); + } + else if (IsPlayerDefeated(gBattleOutcome) == TRUE) + { + if (InBattlePyramid() || sub_81D5C18()) + SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music); + else + SetMainCallback2(CB2_WhiteOut); + } + else + { + SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music); + if (!InBattlePyramid() && !sub_81D5C18()) + { + RegisterTrainerInMatchCall(); + SetBattledTrainersFlags(); + } + } +} + +static void CB2_EndRematchBattle(void) +{ + if (gTrainerBattleOpponent_A == SECRET_BASE_OPPONENT) + { + SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music); + } + else if (IsPlayerDefeated(gBattleOutcome) == TRUE) + { + SetMainCallback2(CB2_WhiteOut); + } + else + { + SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music); + RegisterTrainerInMatchCall(); + SetBattledTrainersFlags(); + HandleRematchVarsOnBattleEnd(); + } +} + +void BattleSetup_StartRematchBattle(void) +{ + gBattleTypeFlags = BATTLE_TYPE_TRAINER; + gMain.savedCallback = CB2_EndRematchBattle; + DoTrainerBattle(); + ScriptContext1_Stop(); +} + +void ShowTrainerIntroSpeech(void) +{ + if (InBattlePyramid()) + { + if (gNoOfApproachingTrainers == 0 || gNoOfApproachingTrainers == 1) + sub_81A9EDC(sub_81A9AA8(gSpecialVar_LastTalked)); + else + sub_81A9EDC(sub_81A9AA8(gMapObjects[gApproachingTrainers[gApproachingTrainerId].mapObjectId].localId)); + + sub_80982B8(); + } + else if (sub_81D5C18()) + { + if (gNoOfApproachingTrainers == 0 || gNoOfApproachingTrainers == 1) + sub_81D572C(2, sub_81D6180(gSpecialVar_LastTalked)); + else + sub_81D572C(2, sub_81D6180(gMapObjects[gApproachingTrainers[gApproachingTrainerId].mapObjectId].localId)); + + sub_80982B8(); + } + else + { + ShowFieldMessage(GetIntroSpeechOfApproachingTrainer()); + } +} + +const u8 *BattleSetup_GetScriptAddrAfterBattle(void) +{ + if (sTrainerBattleEndScript != NULL) + return sTrainerBattleEndScript; + else + return EventScript_TestSignpostMsg; +} + +const u8 *BattleSetup_GetTrainerPostBattleScript(void) +{ + if (sShouldCheckTrainerBScript) + { + sShouldCheckTrainerBScript = FALSE; + if (sTrainerBBattleScriptRetAddr != NULL) + { + gUnknown_03006080 = 1; + return sTrainerBBattleScriptRetAddr; + } + } + else + { + if (sTrainerABattleScriptRetAddr != NULL) + { + gUnknown_03006080 = 0; + return sTrainerABattleScriptRetAddr; + } + } + + return EventScript_TryGetTrainerScript; +} + +void ShowTrainerCantBattleSpeech(void) +{ + ShowFieldMessage(GetTrainerCantBattleSpeech()); +} + +void SetUpTrainerEncounterMusic(void) +{ + u16 trainerId; + u16 music; + + if (gApproachingTrainerId == 0) + trainerId = gTrainerBattleOpponent_A; + else + trainerId = gTrainerBattleOpponent_B; + + if (sTrainerBattleMode != TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC + && sTrainerBattleMode != TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC) + { + switch (GetTrainerEncounterMusicId(trainerId)) + { + case TRAINER_ENCOUNTER_MUSIC_MALE: + music = BGM_BOYEYE; + break; + case TRAINER_ENCOUNTER_MUSIC_FEMALE: + music = BGM_GIRLEYE; + break; + case TRAINER_ENCOUNTER_MUSIC_GIRL: + music = BGM_SYOUJOEYE; + break; + case TRAINER_ENCOUNTER_MUSIC_INTENSE: + music = BGM_HAGESHII; + break; + case TRAINER_ENCOUNTER_MUSIC_COOL: + music = BGM_KAKKOII; + break; + case TRAINER_ENCOUNTER_MUSIC_AQUA: + music = BGM_AQA_0; + break; + case TRAINER_ENCOUNTER_MUSIC_MAGMA: + music = BGM_MGM0; + break; + case TRAINER_ENCOUNTER_MUSIC_SWIMMER: + music = BGM_SWIMEYE; + break; + case TRAINER_ENCOUNTER_MUSIC_TWINS: + music = BGM_HUTAGO; + break; + case TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR: + music = BGM_SITENNOU; + break; + case TRAINER_ENCOUNTER_MUSIC_HIKER: + music = BGM_YAMA_EYE; + break; + case TRAINER_ENCOUNTER_MUSIC_INTERVIEWER: + music = BGM_INTER_V; + break; + case TRAINER_ENCOUNTER_MUSIC_RICH: + music = BGM_TEST; + break; + default: + music = BGM_AYASII; + } + PlayNewMapMusic(music); + } +} + +static const u8 *ReturnEmptyStringIfNull(const u8 *string) +{ + if (string == NULL) + return gText_EmptyString2; + else + return string; +} + +static const u8 *GetIntroSpeechOfApproachingTrainer(void) +{ + if (gApproachingTrainerId == 0) + return ReturnEmptyStringIfNull(sTrainerAIntroSpeech); + else + return ReturnEmptyStringIfNull(sTrainerBIntroSpeech); +} + +const u8 *GetTrainerALoseText(void) +{ + const u8 *string; + + if (gTrainerBattleOpponent_A == SECRET_BASE_OPPONENT) + string = GetSecretBaseTrainerLoseText(); + else + string = sTrainerADefeatSpeech; + + StringExpandPlaceholders(gStringVar4, ReturnEmptyStringIfNull(string)); + return gStringVar4; +} + +const u8 *GetTrainerBLoseText(void) +{ + StringExpandPlaceholders(gStringVar4, ReturnEmptyStringIfNull(sTrainerBDefeatSpeech)); + return gStringVar4; +} + +const u8 *GetTrainerWonSpeech(void) +{ + return ReturnEmptyStringIfNull(sTrainerVictorySpeech); +} + +static const u8 *GetTrainerCantBattleSpeech(void) +{ + return ReturnEmptyStringIfNull(sTrainerCannotBattleSpeech); +} + +static s32 FirstBattleTrainerIdToRematchTableId(const struct RematchTrainer *table, u16 trainerId) +{ + s32 i; + + for (i = 0; i < REMATCH_TABLE_ENTRIES; i++) + { + if (table[i].trainerIds[0] == trainerId) + return i; + } + + return -1; +} + +static s32 TrainerIdToRematchTableId(const struct RematchTrainer *table, u16 trainerId) +{ + s32 i, j; + + for (i = 0; i < REMATCH_TABLE_ENTRIES; i++) + { + for (j = 0; j < REMATCHES_COUNT; j++) + { + if (table[i].trainerIds[j] == 0) + break; + if (table[i].trainerIds[j] == trainerId) + return i; + } + } + + return -1; +} + +static bool32 sub_80B1D94(s32 rematchTableId) +{ + if (rematchTableId >= REMATCH_ELITE_FOUR_ENTRIES) + return TRUE; + else if (rematchTableId == REMATCH_WALLY_ENTRY) + return (FlagGet(FLAG_0x07E) == FALSE); + else + return FALSE; +} + +static void SetRematchIdForTrainer(const struct RematchTrainer *table, u32 tableId) +{ + s32 i; + + for (i = 1; i < REMATCHES_COUNT; i++) + { + u16 trainerId = table[tableId].trainerIds[i]; + + if (trainerId == 0) + break; + if (!HasTrainerBeenFought(trainerId)) + break; + } + + gSaveBlock1Ptr->trainerRematches[tableId] = i; +} + +static bool32 UpdateRandomTrainerRematches(const struct RematchTrainer *table, u16 mapGroup, u16 mapNum) +{ + s32 i; + bool32 ret = FALSE; + + for (i = 0; i <= REMATCH_WALLY_ENTRY; i++) + { + if (table[i].mapGroup == mapGroup && table[i].mapNum == mapNum && !sub_80B1D94(i)) + { + if (gSaveBlock1Ptr->trainerRematches[i] != 0) + { + // Trainer already wants a rematch. Don't bother updating it + ret = TRUE; + } + else if (FlagGet(FLAG_MATCH_CALL_REGISTERED + i) + && (Random() % 100) <= 30) // 31% chance of getting a rematch + { + SetRematchIdForTrainer(table, i); + ret = TRUE; + } + } + } + + return ret; +} + +void UpdateRematchIfDefeated(s32 rematchTableId) +{ + if (HasTrainerBeenFought(gRematchTable[rematchTableId].trainerIds[0]) == TRUE) + SetRematchIdForTrainer(gRematchTable, rematchTableId); +} + +static bool32 DoesSomeoneWantRematchIn_(const struct RematchTrainer *table, u16 mapGroup, u16 mapNum) +{ + s32 i; + + for (i = 0; i < REMATCH_TABLE_ENTRIES; i++) + { + if (table[i].mapGroup == mapGroup && table[i].mapNum == mapNum && gSaveBlock1Ptr->trainerRematches[i] != 0) + return TRUE; + } + + return FALSE; +} + +static bool32 IsRematchTrainerIn_(const struct RematchTrainer *table, u16 mapGroup, u16 mapNum) +{ + s32 i; + + for (i = 0; i < REMATCH_TABLE_ENTRIES; i++) + { + if (table[i].mapGroup == mapGroup && table[i].mapNum == mapNum) + return TRUE; + } + + return FALSE; +} + +static bool8 IsFirstTrainerIdReadyForRematch(const struct RematchTrainer *table, u16 firstBattleTrainerId) +{ + s32 tableId = FirstBattleTrainerIdToRematchTableId(table, firstBattleTrainerId); + + if (tableId == -1) + return FALSE; + if (tableId >= 100) + return FALSE; + if (gSaveBlock1Ptr->trainerRematches[tableId] == 0) + return FALSE; + + return TRUE; +} + +static bool8 IsTrainerReadyForRematch_(const struct RematchTrainer *table, u16 trainerId) +{ + s32 tableId = TrainerIdToRematchTableId(table, trainerId); + + if (tableId == -1) + return FALSE; + if (tableId >= 100) + return FALSE; + if (gSaveBlock1Ptr->trainerRematches[tableId] == 0) + return FALSE; + + return TRUE; +} + +static u16 GetRematchTrainerIdFromTable(const struct RematchTrainer *table, u16 firstBattleTrainerId) +{ + const struct RematchTrainer *trainerEntry; + s32 i; + s32 tableId = FirstBattleTrainerIdToRematchTableId(table, firstBattleTrainerId); + + if (tableId == -1) + return FALSE; + + trainerEntry = &table[tableId]; + for (i = 1; i < REMATCHES_COUNT; i++) + { + if (trainerEntry->trainerIds[i] == 0) // previous entry was this trainer's last one + return trainerEntry->trainerIds[i - 1]; + if (!HasTrainerBeenFought(trainerEntry->trainerIds[i])) + return trainerEntry->trainerIds[i]; + } + + return trainerEntry->trainerIds[REMATCHES_COUNT - 1]; // already beaten at max stage +} + +static u16 GetLastBeatenRematchTrainerIdFromTable(const struct RematchTrainer *table, u16 firstBattleTrainerId) +{ + const struct RematchTrainer *trainerEntry; + s32 i; + s32 tableId = FirstBattleTrainerIdToRematchTableId(table, firstBattleTrainerId); + + if (tableId == -1) + return FALSE; + + trainerEntry = &table[tableId]; + for (i = 1; i < REMATCHES_COUNT; i++) + { + if (trainerEntry->trainerIds[i] == 0) // previous entry was this trainer's last one + return trainerEntry->trainerIds[i - 1]; + if (!HasTrainerBeenFought(trainerEntry->trainerIds[i])) + return trainerEntry->trainerIds[i - 1]; + } + + return trainerEntry->trainerIds[REMATCHES_COUNT - 1]; // already beaten at max stage +} + +static void ClearTrainerWantRematchState(const struct RematchTrainer *table, u16 firstBattleTrainerId) +{ + s32 tableId = TrainerIdToRematchTableId(table, firstBattleTrainerId); + + if (tableId != -1) + gSaveBlock1Ptr->trainerRematches[tableId] = 0; +} + +static u32 GetTrainerMatchCallFlag(u32 trainerId) +{ + s32 i; + + for (i = 0; i < REMATCH_TABLE_ENTRIES; i++) + { + if (gRematchTable[i].trainerIds[0] == trainerId) + return FLAG_MATCH_CALL_REGISTERED + i; + } + + return 0xFFFF; +} + +static void RegisterTrainerInMatchCall(void) +{ + if (FlagGet(FLAG_HAS_MATCH_CALL)) + { + u32 matchCallFlagId = GetTrainerMatchCallFlag(gTrainerBattleOpponent_A); + if (matchCallFlagId != 0xFFFF) + FlagSet(matchCallFlagId); + } +} + +static bool8 WasSecondRematchWon(const struct RematchTrainer *table, u16 firstBattleTrainerId) +{ + s32 tableId = FirstBattleTrainerIdToRematchTableId(table, firstBattleTrainerId); + + if (tableId == -1) + return FALSE; + if (!HasTrainerBeenFought(table[tableId].trainerIds[1])) + return FALSE; + + return TRUE; +} + +static bool32 HasAtLeastFiveBadges(void) +{ + s32 i, count; + + for (count = 0, i = 0; i < ARRAY_COUNT(sBadgeFlags); i++) + { + if (FlagGet(sBadgeFlags[i]) == TRUE) + { + if (++count >= 5) + return TRUE; + } + } + + return FALSE; +} + +#define STEP_COUNTER_MAX 255 + +void IncrementRematchStepCounter(void) +{ + if (HasAtLeastFiveBadges()) + { + if (gSaveBlock1Ptr->trainerRematchStepCounter >= STEP_COUNTER_MAX) + gSaveBlock1Ptr->trainerRematchStepCounter = STEP_COUNTER_MAX; + else + gSaveBlock1Ptr->trainerRematchStepCounter++; + } +} + +static bool32 IsRematchStepCounterMaxed(void) +{ + if (HasAtLeastFiveBadges() && gSaveBlock1Ptr->trainerRematchStepCounter >= STEP_COUNTER_MAX) + return TRUE; + else + return FALSE; +} + +void TryUpdateRandomTrainerRematches(u16 mapGroup, u16 mapNum) +{ + if (IsRematchStepCounterMaxed() && UpdateRandomTrainerRematches(gRematchTable, mapGroup, mapNum) == TRUE) + gSaveBlock1Ptr->trainerRematchStepCounter = 0; +} + +bool32 DoesSomeoneWantRematchIn(u16 mapGroup, u16 mapNum) +{ + return DoesSomeoneWantRematchIn_(gRematchTable, mapGroup, mapNum); +} + +bool32 IsRematchTrainerIn(u16 mapGroup, u16 mapNum) +{ + return IsRematchTrainerIn_(gRematchTable, mapGroup, mapNum); +} + +static u16 GetRematchTrainerId(u16 trainerId) +{ + return GetRematchTrainerIdFromTable(gRematchTable, trainerId); +} + +u16 GetLastBeatenRematchTrainerId(u16 trainerId) +{ + return GetLastBeatenRematchTrainerIdFromTable(gRematchTable, trainerId); +} + +bool8 ShouldTryRematchBattle(void) +{ + if (IsFirstTrainerIdReadyForRematch(gRematchTable, gTrainerBattleOpponent_A)) + return TRUE; + + return WasSecondRematchWon(gRematchTable, gTrainerBattleOpponent_A); +} + +bool8 IsTrainerReadyForRematch(void) +{ + return IsTrainerReadyForRematch_(gRematchTable, gTrainerBattleOpponent_A); +} + +static void HandleRematchVarsOnBattleEnd(void) +{ + ClearTrainerWantRematchState(gRematchTable, gTrainerBattleOpponent_A); + SetBattledTrainersFlags(); +} + +void ShouldTryGetTrainerScript(void) +{ + if (sNoOfPossibleTrainerRetScripts > 1) + { + sNoOfPossibleTrainerRetScripts = 0; + sShouldCheckTrainerBScript = TRUE; + gSpecialVar_Result = TRUE; + } + else + { + sShouldCheckTrainerBScript = FALSE; + gSpecialVar_Result = FALSE; + } +} + +u16 CountBattledRematchTeams(u16 trainerId) +{ + s32 i; + + if (HasTrainerBeenFought(gRematchTable[trainerId].trainerIds[0]) != TRUE) + return 0; + + for (i = 1; i < REMATCHES_COUNT; i++) + { + if (gRematchTable[trainerId].trainerIds[i] == 0) + break; + if (!HasTrainerBeenFought(gRematchTable[trainerId].trainerIds[i])) + break; + } + + return i; +} diff --git a/src/battle_util.c b/src/battle_util.c index ed3bdef98..1a624641d 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -1,27 +1,30 @@ #include "global.h" #include "battle.h" -#include "abilities.h" -#include "moves.h" -#include "hold_effects.h" +#include "constants/abilities.h" +#include "constants/moves.h" +#include "constants/hold_effects.h" #include "pokemon.h" -#include "species.h" +#include "constants/species.h" #include "item.h" -#include "items.h" +#include "constants/items.h" #include "util.h" -#include "battle_move_effects.h" -#include "rng.h" +#include "constants/battle_move_effects.h" +#include "battle_scripts.h" +#include "random.h" #include "text.h" #include "string_util.h" #include "battle_message.h" +#include "battle_string_ids.h" #include "battle_ai_script_commands.h" #include "battle_controllers.h" #include "event_data.h" #include "calculate_base_damage.h" #include "link.h" +#include "berry.h" extern const u8* gBattlescriptCurrInstr; -extern const u8* gBattlescriptPtrsForSelection[BATTLE_BANKS_COUNT]; -extern const u8* gUnknown_02024230[BATTLE_BANKS_COUNT]; +extern const u8* gSelectionBattleScripts[BATTLE_BANKS_COUNT]; +extern const u8* gPalaceSelectionBattleScripts[BATTLE_BANKS_COUNT]; extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; extern u8 gActiveBank; extern u8 gStringBank; @@ -41,7 +44,7 @@ extern s32 gBattleMoveDamage; extern struct BattleEnigmaBerry gEnigmaBerries[BATTLE_BANKS_COUNT]; extern u8 gBattleBufferB[BATTLE_BANKS_COUNT][0x200]; extern u32 gBattleTypeFlags; -extern u16 gLastUsedMovesByBanks[BATTLE_BANKS_COUNT]; +extern u16 gLastMoves[BATTLE_BANKS_COUNT]; extern u32 gHitMarker; extern u8 gEffectBank; extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; @@ -60,119 +63,6 @@ extern u8 gSentPokesToOpponent[2]; extern const struct BattleMove gBattleMoves[]; -// scripts -extern const u8 gUnknown_082DAE2A[]; -extern const u8 gUnknown_082DAE1F[]; -extern const u8 gUnknown_082DB089[]; -extern const u8 gUnknown_082DB098[]; -extern const u8 gUnknown_082DB0AF[]; -extern const u8 gUnknown_082DB0A0[]; -extern const u8 gUnknown_082DB185[]; -extern const u8 gUnknown_082DB181[]; -extern const u8 gUnknown_082DB812[]; -extern const u8 gUnknown_082DB076[]; -extern const u8 BattleScript_NoMovesLeft[]; -extern const u8 gUnknown_082DACFA[]; -extern const u8 gUnknown_082DAD0B[]; -extern const u8 gUnknown_082DACC9[]; -extern const u8 gUnknown_082DAC47[]; -extern const u8 gUnknown_082DACE0[]; -extern const u8 gUnknown_082DACD2[]; -extern const u8 BattleScript_WishComesTrue[]; -extern const u8 gUnknown_082DACC9[]; -extern const u8 gUnknown_082DAC2C[]; -extern const u8 BattleScript_IngrainTurnHeal[]; -extern const u8 BattleScript_LeechSeedTurnDrain[]; -extern const u8 BattleScript_PoisonTurnDmg[]; -extern const u8 BattleScript_BurnTurnDmg[]; -extern const u8 BattleScript_NightmareTurnDmg[]; -extern const u8 BattleScript_CurseTurnDmg[]; -extern const u8 BattleScript_WrapTurnDmg[]; -extern const u8 BattleScript_WrapEnds[]; -extern const u8 gUnknown_082DB234[]; -extern const u8 gUnknown_082DB2A6[]; -extern const u8 BattleScript_ThrashConfuses[]; -extern const u8 BattleScript_DisabledNoMore[]; -extern const u8 BattleScript_EncoredNoMore[]; -extern const u8 BattleScript_YawnMakesAsleep[]; -extern const u8 gUnknown_082DAFE4[]; -extern const u8 gUnknown_082DB8F3[]; -extern const u8 gUnknown_082DAF05[]; -extern const u8 gUnknown_082DAF20[]; -extern const u8 gUnknown_082DA7C4[]; -extern const u8 gUnknown_082DA7CD[]; -extern const u8 BattleScript_MoveUsedWokeUp[]; -extern const u8 BattleScript_MoveUsedIsAsleep[]; -extern const u8 BattleScript_MoveUsedIsFrozen[]; -extern const u8 BattleScript_MoveUsedUnfroze[]; -extern const u8 BattleScript_MoveUsedLoafingAround[]; -extern const u8 BattleScript_MoveUsedMustRecharge[]; -extern const u8 BattleScript_MoveUsedFlinched[]; -extern const u8 BattleScript_MoveUsedIsDisabled[]; -extern const u8 BattleScript_MoveUsedIsTaunted[]; -extern const u8 BattleScript_MoveUsedIsImprisoned[]; -extern const u8 BattleScript_MoveUsedIsConfused[]; -extern const u8 BattleScript_MoveUsedIsConfusedNoMore[]; -extern const u8 BattleScript_MoveUsedIsParalyzed[]; -extern const u8 BattleScript_MoveUsedIsParalyzedCantAttack[]; -extern const u8 BattleScript_MoveUsedIsInLove[]; -extern const u8 BattleScript_BideStoringEnergy[]; -extern const u8 BattleScript_BideAttack[]; -extern const u8 BattleScript_BideNoEnergyToAttack[]; -extern const u8 gUnknown_082DACE7[]; -extern const u8 BattleScript_DrizzleActivates[]; -extern const u8 BattleScript_SandstreamActivates[]; -extern const u8 BattleScript_DroughtActivates[]; -extern const u8 BattleScript_CastformChange[]; -extern const u8 BattleScript_RainDishActivates[]; -extern const u8 BattleScript_ShedSkinActivates[]; -extern const u8 BattleScript_SpeedBoostActivates[]; -extern const u8 BattleScript_SoundproofProtected[]; -extern const u8 BattleScript_MoveHPDrain[]; -extern const u8 BattleScript_MoveHPDrain_PPLoss[]; -extern const u8 BattleScript_FlashFireBoost[]; -extern const u8 BattleScript_FlashFireBoost_PPLoss[]; -extern const u8 gUnknown_082DB592[]; -extern const u8 gUnknown_082DB591[]; -extern const u8 BattleScript_ColorChangeActivates[]; -extern const u8 BattleScript_RoughSkinActivates[]; -extern const u8 BattleScript_ApplySecondaryEffect[]; -extern const u8 BattleScript_CuteCharmActivates[]; -extern const u8 gUnknown_082DB68C[]; -extern const u8 BattleScript_SynchronizeActivates[]; -extern const u8 gUnknown_082DB4B8[]; -extern const u8 gUnknown_082DB4C1[]; -extern const u8 BattleScript_TraceActivates[]; - -extern const u8 BattleScript_WhiteHerbEnd2[]; -extern const u8 BattleScript_WhiteHerbRet[]; -extern const u8 BattleScript_ItemHealHP_RemoveItem[]; -extern const u8 BattleScript_BerryPPHealEnd2[]; -extern const u8 BattleScript_ItemHealHP_End2[]; -extern const u8 BattleScript_BerryConfuseHealEnd2[]; -extern const u8 BattleScript_BerryStatRaiseEnd2[]; -extern const u8 BattleScript_BerryFocusEnergyEnd2[]; -extern const u8 BattleScript_BerryCurePrlzEnd2[]; -extern const u8 BattleScript_BerryCurePsnEnd2[]; -extern const u8 BattleScript_BerryCureBrnEnd2[]; -extern const u8 BattleScript_BerryCureFrzEnd2[]; -extern const u8 BattleScript_BerryCureSlpEnd2[]; -extern const u8 BattleScript_BerryCureConfusionEnd2[]; -extern const u8 BattleScript_BerryCureChosenStatusEnd2[]; -extern const u8 BattleScript_BerryCureParRet[]; -extern const u8 BattleScript_BerryCurePsnRet[]; -extern const u8 BattleScript_BerryCureBrnRet[]; -extern const u8 BattleScript_BerryCureFrzRet[]; -extern const u8 BattleScript_BerryCureSlpRet[]; -extern const u8 BattleScript_BerryCureConfusionRet[]; -extern const u8 BattleScript_BerryCureChosenStatusRet[]; -extern const u8 BattleScript_ItemHealHP_Ret[]; - -extern const u8 gUnknown_082DB695[]; //disobedient while asleep -extern const u8 gUnknown_082DB6A5[]; //disobedient, uses a random move -extern const u8 gUnknown_082DB6D9[]; //disobedient, went to sleep -extern const u8 gUnknown_082DB6F0[]; //disobedient, hits itself - extern u8 weather_get_current(void); // rom const data @@ -196,13 +86,13 @@ u8 GetBattleBank(u8 caseId) case BS_GET_EFFECT_BANK: ret = gEffectBank; break; - case 7: + case BS_GET_BANK_0: ret = 0; break; case BS_GET_SCRIPTING_BANK: ret = gBattleScripting.bank; break; - case 3: + case BS_GET_gBank1: ret = gBank1; break; case 5: @@ -474,27 +364,27 @@ u8 TrySetCantSelectMoveBattleScript(void) gCurrentMove = move; if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gUnknown_02024230[gActiveBank] = gUnknown_082DAE2A; + gPalaceSelectionBattleScripts[gActiveBank] = BattleScript_SelectingDisabledMoveInPalace; gProtectStructs[gActiveBank].flag_x10 = 1; } else { - gBattlescriptPtrsForSelection[gActiveBank] = gUnknown_082DAE1F; + gSelectionBattleScripts[gActiveBank] = BattleScript_SelectingDisabledMove; limitations = 1; } } - if (move == gLastUsedMovesByBanks[gActiveBank] && move != MOVE_STRUGGLE && (gBattleMons[gActiveBank].status2 & STATUS2_TORMENT)) + if (move == gLastMoves[gActiveBank] && move != MOVE_STRUGGLE && (gBattleMons[gActiveBank].status2 & STATUS2_TORMENT)) { CancelMultiTurnMoves(gActiveBank); if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gUnknown_02024230[gActiveBank] = gUnknown_082DB098; + gPalaceSelectionBattleScripts[gActiveBank] = BattleScript_SelectingTormentedMoveInPalace; gProtectStructs[gActiveBank].flag_x10 = 1; } else { - gBattlescriptPtrsForSelection[gActiveBank] = gUnknown_082DB089; + gSelectionBattleScripts[gActiveBank] = BattleScript_SelectingTormentedMove; limitations++; } } @@ -504,12 +394,12 @@ u8 TrySetCantSelectMoveBattleScript(void) gCurrentMove = move; if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gUnknown_02024230[gActiveBank] = gUnknown_082DB0AF; + gPalaceSelectionBattleScripts[gActiveBank] = BattleScript_SelectingNotAllowedMoveTauntInPalace; gProtectStructs[gActiveBank].flag_x10 = 1; } else { - gBattlescriptPtrsForSelection[gActiveBank] = gUnknown_082DB0A0; + gSelectionBattleScripts[gActiveBank] = BattleScript_SelectingNotAllowedMoveTaunt; limitations++; } } @@ -519,12 +409,12 @@ u8 TrySetCantSelectMoveBattleScript(void) gCurrentMove = move; if (gBattleTypeFlags & BATTLE_TYPE_PALACE) { - gUnknown_02024230[gActiveBank] = gUnknown_082DB185; + gPalaceSelectionBattleScripts[gActiveBank] = BattleScript_SelectingImprisionedMoveInPalace; gProtectStructs[gActiveBank].flag_x10 = 1; } else { - gBattlescriptPtrsForSelection[gActiveBank] = gUnknown_082DB181; + gSelectionBattleScripts[gActiveBank] = BattleScript_SelectingImprisionedMove; limitations++; } } @@ -546,7 +436,7 @@ u8 TrySetCantSelectMoveBattleScript(void) } else { - gBattlescriptPtrsForSelection[gActiveBank] = gUnknown_082DB812; + gSelectionBattleScripts[gActiveBank] = BattleScript_SelectingNotAllowedMoveChoiceItem; limitations++; } } @@ -559,7 +449,7 @@ u8 TrySetCantSelectMoveBattleScript(void) } else { - gBattlescriptPtrsForSelection[gActiveBank] = gUnknown_082DB076; + gSelectionBattleScripts[gActiveBank] = BattleScript_SelectingMoveWithNoPP; limitations++; } } @@ -570,7 +460,7 @@ u8 TrySetCantSelectMoveBattleScript(void) u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check) { u8 holdEffect; - u16* choicedMove = &gBattleStruct->choicedMove[bank]; + u16 *choicedMove = &gBattleStruct->choicedMove[bank]; s32 i; if (gBattleMons[bank].item == ITEM_ENIGMA_BERRY) @@ -588,7 +478,7 @@ u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check) unusableMoves |= gBitTable[i]; if (gBattleMons[bank].moves[i] == gDisableStructs[bank].disabledMove && check & MOVE_LIMITATION_DISABLED) unusableMoves |= gBitTable[i]; - if (gBattleMons[bank].moves[i] == gLastUsedMovesByBanks[bank] && check & MOVE_LIMITATION_TORMENTED && gBattleMons[bank].status2 & STATUS2_TORMENT) + if (gBattleMons[bank].moves[i] == gLastMoves[bank] && check & MOVE_LIMITATION_TORMENTED && gBattleMons[bank].status2 & STATUS2_TORMENT) unusableMoves |= gBitTable[i]; if (gDisableStructs[bank].tauntTimer1 && check & MOVE_LIMITATION_TAUNT && gBattleMoves[gBattleMons[bank].moves[i]].power == 0) unusableMoves |= gBitTable[i]; @@ -610,7 +500,7 @@ bool8 AreAllMovesUnusable(void) if (unusable == 0xF) // all moves are unusable { gProtectStructs[gActiveBank].onlyStruggle = 1; - gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_NoMovesLeft; + gSelectionBattleScripts[gActiveBank] = BattleScript_NoMovesLeft; } else { @@ -694,12 +584,8 @@ u8 UpdateTurnCounters(void) if (--gSideTimers[sideBank].reflectTimer == 0) { gSideAffecting[sideBank] &= ~SIDE_STATUS_REFLECT; - BattleScriptExecute(gUnknown_082DACFA); - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = MOVE_REFLECT; - gBattleTextBuff1[3] = MOVE_REFLECT >> 8; - gBattleTextBuff1[4] = EOS; + BattleScriptExecute(BattleScript_SideStatusWoreOff); + PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_REFLECT); effect++; } } @@ -723,13 +609,9 @@ u8 UpdateTurnCounters(void) if (--gSideTimers[sideBank].lightscreenTimer == 0) { gSideAffecting[sideBank] &= ~SIDE_STATUS_LIGHTSCREEN; - BattleScriptExecute(gUnknown_082DACFA); + BattleScriptExecute(BattleScript_SideStatusWoreOff); gBattleCommunication[MULTISTRING_CHOOSER] = sideBank; - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = MOVE_LIGHT_SCREEN; - gBattleTextBuff1[3] = MOVE_LIGHT_SCREEN >> 8; - gBattleTextBuff1[4] = EOS; + PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_LIGHT_SCREEN); effect++; } } @@ -752,13 +634,9 @@ u8 UpdateTurnCounters(void) && --gSideTimers[sideBank].mistTimer == 0) { gSideAffecting[sideBank] &= ~SIDE_STATUS_MIST; - BattleScriptExecute(gUnknown_082DACFA); + BattleScriptExecute(BattleScript_SideStatusWoreOff); gBattleCommunication[MULTISTRING_CHOOSER] = sideBank; - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = MOVE_MIST; - gBattleTextBuff1[3] = MOVE_MIST >> 8; - gBattleTextBuff1[4] = EOS; + PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_MIST); effect++; } gBattleStruct->turnSideTracker++; @@ -781,7 +659,7 @@ u8 UpdateTurnCounters(void) if (--gSideTimers[sideBank].safeguardTimer == 0) { gSideAffecting[sideBank] &= ~SIDE_STATUS_SAFEGUARD; - BattleScriptExecute(gUnknown_082DAD0B); + BattleScriptExecute(BattleScript_SafeguardEnds); effect++; } } @@ -833,10 +711,15 @@ u8 UpdateTurnCounters(void) gBattleCommunication[MULTISTRING_CHOOSER] = 0; } else if (gBattleWeather & WEATHER_RAIN_DOWNPOUR) + { gBattleCommunication[MULTISTRING_CHOOSER] = 1; + } else + { gBattleCommunication[MULTISTRING_CHOOSER] = 0; - BattleScriptExecute(gUnknown_082DAC2C); + } + + BattleScriptExecute(BattleScript_RainContinuesOrEnds); effect++; } gBattleStruct->turncountersTracker++; @@ -847,12 +730,14 @@ u8 UpdateTurnCounters(void) if (!(gBattleWeather & WEATHER_SANDSTORM_PERMANENT) && --gWishFutureKnock.weatherDuration == 0) { gBattleWeather &= ~WEATHER_SANDSTORM_TEMPORARY; - gBattlescriptCurrInstr = gUnknown_082DACC9; + gBattlescriptCurrInstr = BattleScript_SandStormHailEnds; } else - gBattlescriptCurrInstr = gUnknown_082DAC47; + { + gBattlescriptCurrInstr = BattleScript_DamagingWeatherContinues; + } - gBattleScripting.animArg1 = 0xC; + gBattleScripting.animArg1 = B_ANIM_SANDSTORM_CONTINUES; gBattleCommunication[MULTISTRING_CHOOSER] = 0; BattleScriptExecute(gBattlescriptCurrInstr); effect++; @@ -865,10 +750,12 @@ u8 UpdateTurnCounters(void) if (!(gBattleWeather & WEATHER_SUN_PERMANENT) && --gWishFutureKnock.weatherDuration == 0) { gBattleWeather &= ~WEATHER_SUN_TEMPORARY; - gBattlescriptCurrInstr = gUnknown_082DACE0; + gBattlescriptCurrInstr = BattleScript_SunlightFaded; } else - gBattlescriptCurrInstr = gUnknown_082DACD2; + { + gBattlescriptCurrInstr = BattleScript_SunlightContinues; + } BattleScriptExecute(gBattlescriptCurrInstr); effect++; @@ -881,12 +768,14 @@ u8 UpdateTurnCounters(void) if (--gWishFutureKnock.weatherDuration == 0) { gBattleWeather &= ~WEATHER_HAIL; - gBattlescriptCurrInstr = gUnknown_082DACC9; + gBattlescriptCurrInstr = BattleScript_SandStormHailEnds; } else - gBattlescriptCurrInstr = gUnknown_082DAC47; + { + gBattlescriptCurrInstr = BattleScript_DamagingWeatherContinues; + } - gBattleScripting.animArg1 = 0xD; + gBattleScripting.animArg1 = B_ANIM_HAIL_CONTINUES; gBattleCommunication[MULTISTRING_CHOOSER] = 1; BattleScriptExecute(gBattlescriptCurrInstr); effect++; @@ -981,7 +870,7 @@ u8 TurnBasedEffects(void) gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 16; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - if ((gBattleMons[gActiveBank].status1 & 0xF00) != 0xF00) //not 16 turns + if ((gBattleMons[gActiveBank].status1 & 0xF00) != 0xF00) // not 16 turns gBattleMons[gActiveBank].status1 += 0x100; gBattleMoveDamage *= (gBattleMons[gActiveBank].status1 & 0xF00) >> 8; BattleScriptExecute(BattleScript_PoisonTurnDmg); @@ -1040,8 +929,8 @@ u8 TurnBasedEffects(void) // This is the only way I could get this array access to match. gBattleScripting.animArg1 = *(gBattleStruct->wrappedMove + gActiveBank * 2 + 0); gBattleScripting.animArg2 = *(gBattleStruct->wrappedMove + gActiveBank * 2 + 1); - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 2; + gBattleTextBuff1[0] = B_BUFF_PLACEHOLDER_BEGIN; + gBattleTextBuff1[1] = B_BUFF_MOVE; gBattleTextBuff1[2] = *(gBattleStruct->wrappedMove + gActiveBank * 2 + 0); gBattleTextBuff1[3] = *(gBattleStruct->wrappedMove + gActiveBank * 2 + 1); gBattleTextBuff1[4] = EOS; @@ -1052,8 +941,8 @@ u8 TurnBasedEffects(void) } else // broke free { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 2; + gBattleTextBuff1[0] = B_BUFF_PLACEHOLDER_BEGIN; + gBattleTextBuff1[1] = B_BUFF_MOVE; gBattleTextBuff1[2] = *(gBattleStruct->wrappedMove + gActiveBank * 2 + 0); gBattleTextBuff1[3] = *(gBattleStruct->wrappedMove + gActiveBank * 2 + 1); gBattleTextBuff1[4] = EOS; @@ -1075,7 +964,7 @@ u8 TurnBasedEffects(void) gBattleMons[gBankAttacker].status1 &= ~(STATUS_SLEEP); gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); gBattleCommunication[MULTISTRING_CHOOSER] = 1; - BattleScriptExecute(gUnknown_082DB234); + BattleScriptExecute(BattleScript_MonWokeUpInUproar); gActiveBank = gBankAttacker; EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); MarkBufferBankForExecution(gActiveBank); @@ -1106,7 +995,7 @@ u8 TurnBasedEffects(void) gBattleCommunication[MULTISTRING_CHOOSER] = 1; CancelMultiTurnMoves(gActiveBank); } - BattleScriptExecute(gUnknown_082DB2A6); + BattleScriptExecute(BattleScript_PrintUproarOverTurns); effect = 1; } } @@ -1125,7 +1014,7 @@ u8 TurnBasedEffects(void) gBattleMons[gActiveBank].status2 &= ~(STATUS2_MULTIPLETURNS); if (!(gBattleMons[gActiveBank].status2 & STATUS2_CONFUSION)) { - gBattleCommunication[MOVE_EFFECT_BYTE] = 0x47; + gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_CONFUSION | MOVE_EFFECT_AFFECTS_USER; SetMoveEffect(1, 0); if (gBattleMons[gActiveBank].status2 & STATUS2_CONFUSION) BattleScriptExecute(BattleScript_ThrashConfuses); @@ -1224,23 +1113,23 @@ u8 TurnBasedEffects(void) return 0; } -bool8 sub_8041364(void) +bool8 HandleWishPerishSongOnTurnEnd(void) { gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_x20); - switch (gBattleStruct->field_1A0) + switch (gBattleStruct->wishPerishSongState) { case 0: - while (gBattleStruct->field_1A1 < gNoOfAllBanks) + while (gBattleStruct->wishPerishSongBank < gNoOfAllBanks) { - gActiveBank = gBattleStruct->field_1A1; + gActiveBank = gBattleStruct->wishPerishSongBank; if (gAbsentBankFlags & gBitTable[gActiveBank]) { - gBattleStruct->field_1A1++; + gBattleStruct->wishPerishSongBank++; continue; } - gBattleStruct->field_1A1++; + gBattleStruct->wishPerishSongBank++; if (gWishFutureKnock.futureSightCounter[gActiveBank] != 0 && --gWishFutureKnock.futureSightCounter[gActiveBank] == 0 && gBattleMons[gActiveBank].hp != 0) @@ -1250,70 +1139,62 @@ bool8 sub_8041364(void) else gBattleCommunication[MULTISTRING_CHOOSER] = 1; - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = gWishFutureKnock.futureSightMove[gActiveBank]; - gBattleTextBuff1[3] = gWishFutureKnock.futureSightMove[gActiveBank] >> 8; - gBattleTextBuff1[4] = EOS; + PREPARE_MOVE_BUFFER(gBattleTextBuff1, gWishFutureKnock.futureSightMove[gActiveBank]); + gBankTarget = gActiveBank; gBankAttacker = gWishFutureKnock.futureSightAttacker[gActiveBank]; gBattleMoveDamage = gWishFutureKnock.futureSightDmg[gActiveBank]; gSpecialStatuses[gBankTarget].moveturnLostHP = 0xFFFF; - BattleScriptExecute(gUnknown_082DAFE4); + BattleScriptExecute(BattleScript_MonTookFutureAttack); if (gWishFutureKnock.futureSightCounter[gActiveBank] == 0 - && gWishFutureKnock.futureSightCounter[gActiveBank ^ 2] == 0) + && gWishFutureKnock.futureSightCounter[gActiveBank ^ BIT_MON] == 0) { - gSideAffecting[GetBankIdentity(gBankTarget) & 1] &= ~SIDE_STATUS_FUTUREATTACK; + gSideAffecting[GET_BANK_SIDE(gBankTarget)] &= ~(SIDE_STATUS_FUTUREATTACK); } - return 1; + return TRUE; } } // Why do I have to keep doing this to match? { - u8* var = &gBattleStruct->field_1A0; - *var = 1; - gBattleStruct->field_1A1 = 0; + u8 *state = &gBattleStruct->wishPerishSongState; + *state = 1; + gBattleStruct->wishPerishSongBank = 0; } // fall through case 1: - while (gBattleStruct->field_1A1 < gNoOfAllBanks) + while (gBattleStruct->wishPerishSongBank < gNoOfAllBanks) { - gActiveBank = gBankAttacker = gBanksByTurnOrder[gBattleStruct->field_1A1]; + gActiveBank = gBankAttacker = gBanksByTurnOrder[gBattleStruct->wishPerishSongBank]; if (gAbsentBankFlags & gBitTable[gActiveBank]) { - gBattleStruct->field_1A1++; + gBattleStruct->wishPerishSongBank++; continue; } - gBattleStruct->field_1A1++; + gBattleStruct->wishPerishSongBank++; if (gStatuses3[gActiveBank] & STATUS3_PERISH_SONG) { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 1; - gBattleTextBuff1[2] = 1; - gBattleTextBuff1[3] = 1; - gBattleTextBuff1[4] = gDisableStructs[gActiveBank].perishSongTimer1; - gBattleTextBuff1[5] = EOS; + PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff1, 1, gDisableStructs[gActiveBank].perishSongTimer1); if (gDisableStructs[gActiveBank].perishSongTimer1 == 0) { gStatuses3[gActiveBank] &= ~STATUS3_PERISH_SONG; gBattleMoveDamage = gBattleMons[gActiveBank].hp; - gBattlescriptCurrInstr = gUnknown_082DAF05; + gBattlescriptCurrInstr = BattleScript_PerishSongTakesLife; } else { gDisableStructs[gActiveBank].perishSongTimer1--; - gBattlescriptCurrInstr = gUnknown_082DAF20; + gBattlescriptCurrInstr = BattleScript_PerishSongCountGoesDown; } BattleScriptExecute(gBattlescriptCurrInstr); - return 1; + return TRUE; } } // Hm... { - u8* var = &gBattleStruct->field_1A0; - *var = 2; - gBattleStruct->field_1A1 = 0; + u8 *state = &gBattleStruct->wishPerishSongState; + *state = 2; + gBattleStruct->wishPerishSongBank = 0; } // fall through case 2: @@ -1326,33 +1207,33 @@ bool8 sub_8041364(void) for (i = 0; i < 2; i++) CancelMultiTurnMoves(i); - gBattlescriptCurrInstr = gUnknown_082DB8F3; - BattleScriptExecute(gUnknown_082DB8F3); - gBattleStruct->field_1A0++; - return 1; + gBattlescriptCurrInstr = BattleScript_82DB8F3; + BattleScriptExecute(BattleScript_82DB8F3); + gBattleStruct->wishPerishSongState++; + return TRUE; } break; } gHitMarker &= ~(HITMARKER_GRUDGE | HITMARKER_x20); - return 0; + return FALSE; } -#define sub_8041728_MAX_CASE 7 +#define FAINTED_ACTIONS_MAX_CASE 7 -bool8 sub_8041728(void) +bool8 HandleFaintedMonActions(void) { if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) return FALSE; do { int i; - switch (gBattleStruct->field_4D) + switch (gBattleStruct->faintedActionsState) { case 0: - gBattleStruct->field_4E = 0; - gBattleStruct->field_4D++; + gBattleStruct->faintedActionsBank = 0; + gBattleStruct->faintedActionsState++; for (i = 0; i < gNoOfAllBanks; i++) { if (gAbsentBankFlags & gBitTable[i] && !sub_80423F4(i, 6, 6)) @@ -1362,58 +1243,58 @@ bool8 sub_8041728(void) case 1: do { - gBank1 = gBankTarget = gBattleStruct->field_4E; - if (gBattleMons[gBattleStruct->field_4E].hp == 0 - && !(gBattleStruct->field_DF & gBitTable[gBattlePartyID[gBattleStruct->field_4E]]) - && !(gAbsentBankFlags & gBitTable[gBattleStruct->field_4E])) + gBank1 = gBankTarget = gBattleStruct->faintedActionsBank; + if (gBattleMons[gBattleStruct->faintedActionsBank].hp == 0 + && !(gBattleStruct->field_DF & gBitTable[gBattlePartyID[gBattleStruct->faintedActionsBank]]) + && !(gAbsentBankFlags & gBitTable[gBattleStruct->faintedActionsBank])) { - BattleScriptExecute(gUnknown_082DA7C4); - gBattleStruct->field_4D = 2; + BattleScriptExecute(BattleScript_GiveExp); + gBattleStruct->faintedActionsState = 2; return TRUE; } - } while (++gBattleStruct->field_4E != gNoOfAllBanks); - gBattleStruct->field_4D = 3; + } while (++gBattleStruct->faintedActionsBank != gNoOfAllBanks); + gBattleStruct->faintedActionsState = 3; break; case 2: sub_803F9EC(gBank1); - if (++gBattleStruct->field_4E == gNoOfAllBanks) - gBattleStruct->field_4D = 3; + if (++gBattleStruct->faintedActionsBank == gNoOfAllBanks) + gBattleStruct->faintedActionsState = 3; else - gBattleStruct->field_4D = 1; + gBattleStruct->faintedActionsState = 1; break; case 3: - gBattleStruct->field_4E = 0; - gBattleStruct->field_4D++; + gBattleStruct->faintedActionsBank = 0; + gBattleStruct->faintedActionsState++; // fall through case 4: do { - gBank1 = gBankTarget = gBattleStruct->field_4E; - if (gBattleMons[gBattleStruct->field_4E].hp == 0 - && !(gAbsentBankFlags & gBitTable[gBattleStruct->field_4E])) + gBank1 = gBankTarget = gBattleStruct->faintedActionsBank; + if (gBattleMons[gBattleStruct->faintedActionsBank].hp == 0 + && !(gAbsentBankFlags & gBitTable[gBattleStruct->faintedActionsBank])) { - BattleScriptExecute(gUnknown_082DA7CD); - gBattleStruct->field_4D = 5; + BattleScriptExecute(BattleScript_HandleFaintedMon); + gBattleStruct->faintedActionsState = 5; return TRUE; } - } while (++gBattleStruct->field_4E != gNoOfAllBanks); - gBattleStruct->field_4D = 6; + } while (++gBattleStruct->faintedActionsBank != gNoOfAllBanks); + gBattleStruct->faintedActionsState = 6; break; case 5: - if (++gBattleStruct->field_4E == gNoOfAllBanks) - gBattleStruct->field_4D = 6; + if (++gBattleStruct->faintedActionsBank == gNoOfAllBanks) + gBattleStruct->faintedActionsState = 6; else - gBattleStruct->field_4D = 4; + gBattleStruct->faintedActionsState = 4; break; case 6: if (AbilityBattleEffects(ABILITYEFFECT_INTIMIDATE1, 0, 0, 0, 0) || AbilityBattleEffects(ABILITYEFFECT_TRACE, 0, 0, 0, 0) || ItemBattleEffects(1, 0, 1) || AbilityBattleEffects(ABILITYEFFECT_FORECAST, 0, 0, 0, 0)) return TRUE; - gBattleStruct->field_4D++; + gBattleStruct->faintedActionsState++; break; - case 7: + case FAINTED_ACTIONS_MAX_CASE: break; } - } while (gBattleStruct->field_4D != sub_8041728_MAX_CASE); + } while (gBattleStruct->faintedActionsState != FAINTED_ACTIONS_MAX_CASE); return FALSE; } @@ -1432,7 +1313,7 @@ void TryClearRageStatuses(void) u8 AtkCanceller_UnableToUseMove(void) { u8 effect = 0; - s32* bideDmg = &gBattleScripting.bideDmg; + s32 *bideDmg = &gBattleScripting.bideDmg; do { switch (gBattleStruct->atkCancellerTracker) @@ -1683,7 +1564,7 @@ u8 AtkCanceller_UnableToUseMove(void) } gBattleStruct->atkCancellerTracker++; break; - case 14: // last case + case ATKCANCELLER_MAX_CASE: break; } @@ -1785,14 +1666,14 @@ bool8 sub_80423F4(u8 bank, u8 r1, u8 r2) { if (GetBankSide(bank) == SIDE_OPPONENT) { - r7 = GetBankByIdentity(1); - r6 = GetBankByIdentity(3); + r7 = GetBankByIdentity(IDENTITY_OPPONENT_MON1); + r6 = GetBankByIdentity(IDENTITY_OPPONENT_MON2); party = gEnemyParty; } else { - r7 = GetBankByIdentity(0); - r6 = GetBankByIdentity(2); + r7 = GetBankByIdentity(IDENTITY_PLAYER_MON1); + r6 = GetBankByIdentity(IDENTITY_PLAYER_MON2); party = gPlayerParty; } if (r1 == 6) @@ -1910,10 +1791,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) else move = gCurrentMove; - if (gBattleStruct->dynamicMoveType) - moveType = gBattleStruct->dynamicMoveType & 0x3F; - else - moveType = gBattleMoves[move].type; + GET_MOVE_TYPE(move, moveType); switch (caseID) { @@ -1961,7 +1839,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (effect) { gBattleCommunication[MULTISTRING_CHOOSER] = weather_get_current(); - BattleScriptPushCursorAndCallback(gUnknown_082DACE7); + BattleScriptPushCursorAndCallback(BattleScript_OverworldWeatherStarts); } break; case ABILITY_DRIZZLE: @@ -2167,9 +2045,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (gBattleMons[bank].maxHP == gBattleMons[bank].hp) { if ((gProtectStructs[gBankAttacker].notFirstStrike)) - gBattlescriptCurrInstr = gUnknown_082DB592; + gBattlescriptCurrInstr = BattleScript_MonMadeMoveUseless; else - gBattlescriptCurrInstr = gUnknown_082DB591; + gBattlescriptCurrInstr = BattleScript_MonMadeMoveUseless_PPLoss; } else { @@ -2307,86 +2185,84 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_IMMUNITY: // 5 + for (bank = 0; bank < gNoOfAllBanks; bank++) { - for (bank = 0; bank < gNoOfAllBanks; bank++) + switch (gBattleMons[bank].ability) { - switch (gBattleMons[bank].ability) + case ABILITY_IMMUNITY: + if (gBattleMons[bank].status1 & (STATUS_POISON | STATUS_TOXIC_POISON | STATUS_TOXIC_COUNTER)) { - case ABILITY_IMMUNITY: - if (gBattleMons[bank].status1 & (STATUS_POISON | STATUS_TOXIC_POISON | STATUS_TOXIC_COUNTER)) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn); - effect = 1; - } - break; - case ABILITY_OWN_TEMPO: - if (gBattleMons[bank].status2 & STATUS2_CONFUSION) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_ConfusionJpn); - effect = 2; - } - break; - case ABILITY_LIMBER: - if (gBattleMons[bank].status1 & STATUS_PARALYSIS) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn); - effect = 1; - } - break; - case ABILITY_INSOMNIA: - case ABILITY_VITAL_SPIRIT: - if (gBattleMons[bank].status1 & STATUS_SLEEP) - { - gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); - StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); - effect = 1; - } - break; - case ABILITY_WATER_VEIL: - if (gBattleMons[bank].status1 & STATUS_BURN) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn); - effect = 1; - } + StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn); + effect = 1; + } + break; + case ABILITY_OWN_TEMPO: + if (gBattleMons[bank].status2 & STATUS2_CONFUSION) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_ConfusionJpn); + effect = 2; + } + break; + case ABILITY_LIMBER: + if (gBattleMons[bank].status1 & STATUS_PARALYSIS) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn); + effect = 1; + } + break; + case ABILITY_INSOMNIA: + case ABILITY_VITAL_SPIRIT: + if (gBattleMons[bank].status1 & STATUS_SLEEP) + { + gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); + StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); + effect = 1; + } + break; + case ABILITY_WATER_VEIL: + if (gBattleMons[bank].status1 & STATUS_BURN) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn); + effect = 1; + } + break; + case ABILITY_MAGMA_ARMOR: + if (gBattleMons[bank].status1 & STATUS_FREEZE) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn); + effect = 1; + } + break; + case ABILITY_OBLIVIOUS: + if (gBattleMons[bank].status2 & STATUS2_INFATUATION) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn); + effect = 3; + } + break; + } + if (effect) + { + switch (effect) + { + case 1: // status cleared + gBattleMons[bank].status1 = 0; break; - case ABILITY_MAGMA_ARMOR: - if (gBattleMons[bank].status1 & STATUS_FREEZE) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn); - effect = 1; - } + case 2: // get rid of confusion + gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION); break; - case ABILITY_OBLIVIOUS: - if (gBattleMons[bank].status2 & STATUS2_INFATUATION) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn); - effect = 3; - } + case 3: // get rid of infatuation + gBattleMons[bank].status2 &= ~(STATUS2_INFATUATION); break; } - if (effect) - { - switch (effect) - { - case 1: // status cleared - gBattleMons[bank].status1 = 0; - break; - case 2: // get rid of confusion - gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION); - break; - case 3: // get rid of infatuation - gBattleMons[bank].status2 &= ~(STATUS2_INFATUATION); - break; - } - BattleScriptPushCursor(); - gBattlescriptCurrInstr = gUnknown_082DB68C; - gBattleScripting.bank = bank; - gActiveBank = bank; - EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); - MarkBufferBankForExecution(gActiveBank); - return effect; - } + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_AbilityCuredStatus; + gBattleScripting.bank = bank; + gActiveBank = bank; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); + MarkBufferBankForExecution(gActiveBank); + return effect; } } break; @@ -2445,7 +2321,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) { gLastUsedAbility = ABILITY_INTIMIDATE; gStatuses3[i] &= ~(STATUS3_INTIMIDATE_POKES); - BattleScriptPushCursorAndCallback(gUnknown_082DB4B8); + BattleScriptPushCursorAndCallback(BattleScript_82DB4B8); gBattleStruct->intimidateBank = i; effect++; break; @@ -2517,7 +2393,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) gLastUsedAbility = ABILITY_INTIMIDATE; gStatuses3[i] &= ~(STATUS3_INTIMIDATE_POKES); BattleScriptPushCursor(); - gBattlescriptCurrInstr = gUnknown_082DB4C1; + gBattlescriptCurrInstr = BattleScript_82DB4C1; gBattleStruct->intimidateBank = i; effect++; break; @@ -2636,7 +2512,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) return effect; } -void BattleScriptExecute(const u8* BS_ptr) +void BattleScriptExecute(const u8 *BS_ptr) { gBattlescriptCurrInstr = BS_ptr; BATTLE_CALLBACKS_STACK->function[BATTLE_CALLBACKS_STACK->size++] = gBattleMainFunc; @@ -2644,7 +2520,7 @@ void BattleScriptExecute(const u8* BS_ptr) gCurrentActionFuncId = 0; } -void BattleScriptPushCursorAndCallback(const u8* BS_ptr) +void BattleScriptPushCursorAndCallback(const u8 *BS_ptr) { BattleScriptPushCursor(); gBattlescriptCurrInstr = BS_ptr; @@ -2662,15 +2538,6 @@ enum ITEM_STATS_CHANGE, // 5 }; -enum -{ - FLAVOR_SPICY, // 0 - FLAVOR_DRY, // 1 - FLAVOR_SWEET, // 2 - FLAVOR_BITTER, // 3 - FLAVOR_SOUR, // 4 -}; - u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) { int i = 0; @@ -2727,7 +2594,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) gBattleStruct->moneyMultiplier = 2; break; case HOLD_EFFECT_RESTORE_STATS: - for (i = 0; i < 8; i++) + for (i = 0; i < BATTLE_STATS_NO; i++) { if (gBattleMons[bank].statStages[i] < 6) { @@ -2764,19 +2631,19 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) case HOLD_EFFECT_RESTORE_PP: if (!moveTurn) { - struct Pokemon* poke; + struct Pokemon *mon; u8 ppBonuses; u16 move; if (GetBankSide(bank) == SIDE_PLAYER) - poke = &gPlayerParty[gBattlePartyID[bank]]; + mon = &gPlayerParty[gBattlePartyID[bank]]; else - poke = &gEnemyParty[gBattlePartyID[bank]]; + mon = &gEnemyParty[gBattlePartyID[bank]]; for (i = 0; i < 4; i++) { - move = GetMonData(poke, MON_DATA_MOVE1 + i); - changedPP = GetMonData(poke, MON_DATA_PP1 + i); - ppBonuses = GetMonData(poke, MON_DATA_PP_BONUSES); + move = GetMonData(mon, MON_DATA_MOVE1 + i); + changedPP = GetMonData(mon, MON_DATA_PP1 + i); + ppBonuses = GetMonData(mon, MON_DATA_PP_BONUSES); if (move && changedPP == 0) break; } @@ -2787,11 +2654,9 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) changedPP = maxPP; else changedPP = changedPP + bankQuality; - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = move; - gBattleTextBuff1[3] = move >> 8; - gBattleTextBuff1[4] = 0xFF; + + PREPARE_MOVE_BUFFER(gBattleTextBuff1, move); + BattleScriptExecute(BattleScript_BerryPPHealEnd2); EmitSetMonData(0, i + REQUEST_PPMOVE1_BATTLE, 0, 1, &changedPP); MarkBufferBankForExecution(gActiveBank); @@ -2800,7 +2665,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) } break; case HOLD_EFFECT_RESTORE_STATS: - for (i = 0; i < 8; i++) + for (i = 0; i < BATTLE_STATS_NO; i++) { if (gBattleMons[bank].statStages[i] < 6) { @@ -2834,17 +2699,15 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) case HOLD_EFFECT_CONFUSE_SPICY: if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / 2 && !moveTurn) { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 8; - gBattleTextBuff1[2] = FLAVOR_SPICY; - gBattleTextBuff1[3] = EOS; + PREPARE_FLAVOR_BUFFER(gBattleTextBuff1, FLAVOR_SPICY); + gBattleMoveDamage = gBattleMons[bank].maxHP / bankQuality; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; if (gBattleMons[bank].hp + gBattleMoveDamage > gBattleMons[bank].maxHP) gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp; gBattleMoveDamage *= -1; - if (GetFlavourRelationByPersonality(gBattleMons[bank].personality, FLAVOR_SPICY) < 0) + if (GetFlavorRelationByPersonality(gBattleMons[bank].personality, FLAVOR_SPICY) < 0) BattleScriptExecute(BattleScript_BerryConfuseHealEnd2); else BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem); @@ -2854,17 +2717,15 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) case HOLD_EFFECT_CONFUSE_DRY: if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / 2 && !moveTurn) { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 8; - gBattleTextBuff1[2] = FLAVOR_DRY; - gBattleTextBuff1[3] = EOS; + PREPARE_FLAVOR_BUFFER(gBattleTextBuff1, FLAVOR_DRY); + gBattleMoveDamage = gBattleMons[bank].maxHP / bankQuality; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; if (gBattleMons[bank].hp + gBattleMoveDamage > gBattleMons[bank].maxHP) gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp; gBattleMoveDamage *= -1; - if (GetFlavourRelationByPersonality(gBattleMons[bank].personality, FLAVOR_DRY) < 0) + if (GetFlavorRelationByPersonality(gBattleMons[bank].personality, FLAVOR_DRY) < 0) BattleScriptExecute(BattleScript_BerryConfuseHealEnd2); else BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem); @@ -2874,17 +2735,15 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) case HOLD_EFFECT_CONFUSE_SWEET: if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / 2 && !moveTurn) { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 8; - gBattleTextBuff1[2] = FLAVOR_SWEET; - gBattleTextBuff1[3] = EOS; + PREPARE_FLAVOR_BUFFER(gBattleTextBuff1, FLAVOR_SWEET); + gBattleMoveDamage = gBattleMons[bank].maxHP / bankQuality; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; if (gBattleMons[bank].hp + gBattleMoveDamage > gBattleMons[bank].maxHP) gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp; gBattleMoveDamage *= -1; - if (GetFlavourRelationByPersonality(gBattleMons[bank].personality, FLAVOR_SWEET) < 0) + if (GetFlavorRelationByPersonality(gBattleMons[bank].personality, FLAVOR_SWEET) < 0) BattleScriptExecute(BattleScript_BerryConfuseHealEnd2); else BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem); @@ -2894,17 +2753,15 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) case HOLD_EFFECT_CONFUSE_BITTER: if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / 2 && !moveTurn) { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 8; - gBattleTextBuff1[2] = FLAVOR_BITTER; - gBattleTextBuff1[3] = EOS; + PREPARE_FLAVOR_BUFFER(gBattleTextBuff1, FLAVOR_BITTER); + gBattleMoveDamage = gBattleMons[bank].maxHP / bankQuality; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; if (gBattleMons[bank].hp + gBattleMoveDamage > gBattleMons[bank].maxHP) gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp; gBattleMoveDamage *= -1; - if (GetFlavourRelationByPersonality(gBattleMons[bank].personality, FLAVOR_BITTER) < 0) + if (GetFlavorRelationByPersonality(gBattleMons[bank].personality, FLAVOR_BITTER) < 0) BattleScriptExecute(BattleScript_BerryConfuseHealEnd2); else BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem); @@ -2914,17 +2771,15 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) case HOLD_EFFECT_CONFUSE_SOUR: if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / 2 && !moveTurn) { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 8; - gBattleTextBuff1[2] = FLAVOR_SOUR; - gBattleTextBuff1[3] = EOS; + PREPARE_FLAVOR_BUFFER(gBattleTextBuff1, FLAVOR_SOUR); + gBattleMoveDamage = gBattleMons[bank].maxHP / bankQuality; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; if (gBattleMons[bank].hp + gBattleMoveDamage > gBattleMons[bank].maxHP) gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp; gBattleMoveDamage *= -1; - if (GetFlavourRelationByPersonality(gBattleMons[bank].personality, FLAVOR_SOUR) < 0) + if (GetFlavorRelationByPersonality(gBattleMons[bank].personality, FLAVOR_SOUR) < 0) BattleScriptExecute(BattleScript_BerryConfuseHealEnd2); else BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem); @@ -2935,19 +2790,11 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) case HOLD_EFFECT_ATTACK_UP: if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality && !moveTurn && gBattleMons[bank].statStages[STAT_STAGE_ATK] < 0xC) { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 5; - gBattleTextBuff1[2] = STAT_STAGE_ATK; - gBattleTextBuff1[3] = EOS; - - gBattleTextBuff2[0] = 0xFD; - gBattleTextBuff2[1] = 0; - gBattleTextBuff2[2] = 0xD2; - gBattleTextBuff2[3] = 0xD2 >> 8; - gBattleTextBuff2[4] = EOS; + PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_STAGE_ATK); + PREPARE_STRING_BUFFER(gBattleTextBuff2, STRINGID_STATROSE); gEffectBank = bank; - gBattleScripting.statChanger = 0x10 + STAT_STAGE_ATK; + SET_STATCHANGER(STAT_STAGE_ATK, 1, FALSE); gBattleScripting.animArg1 = 0xE + STAT_STAGE_ATK; gBattleScripting.animArg2 = 0; BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); @@ -2957,13 +2804,10 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) case HOLD_EFFECT_DEFENSE_UP: if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality && !moveTurn && gBattleMons[bank].statStages[STAT_STAGE_DEF] < 0xC) { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 5; - gBattleTextBuff1[2] = STAT_STAGE_DEF; - gBattleTextBuff1[3] = EOS; + PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_STAGE_DEF); gEffectBank = bank; - gBattleScripting.statChanger = 0x10 + STAT_STAGE_DEF; + SET_STATCHANGER(STAT_STAGE_DEF, 1, FALSE); gBattleScripting.animArg1 = 0xE + STAT_STAGE_DEF; gBattleScripting.animArg2 = 0; BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); @@ -2973,13 +2817,10 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) case HOLD_EFFECT_SPEED_UP: if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality && !moveTurn && gBattleMons[bank].statStages[STAT_STAGE_SPEED] < 0xC) { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 5; - gBattleTextBuff1[2] = STAT_STAGE_SPEED; - gBattleTextBuff1[3] = EOS; + PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_STAGE_SPEED); gEffectBank = bank; - gBattleScripting.statChanger = 0x10 + STAT_STAGE_SPEED; + SET_STATCHANGER(STAT_STAGE_SPEED, 1, FALSE); gBattleScripting.animArg1 = 0xE + STAT_STAGE_SPEED; gBattleScripting.animArg2 = 0; BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); @@ -2989,13 +2830,10 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) case HOLD_EFFECT_SP_ATTACK_UP: if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality && !moveTurn && gBattleMons[bank].statStages[STAT_STAGE_SPATK] < 0xC) { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 5; - gBattleTextBuff1[2] = STAT_STAGE_SPATK; - gBattleTextBuff1[3] = EOS; + PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_STAGE_SPATK); gEffectBank = bank; - gBattleScripting.statChanger = 0x10 + STAT_STAGE_SPATK; + SET_STATCHANGER(STAT_STAGE_SPATK, 1, FALSE); gBattleScripting.animArg1 = 0xE + STAT_STAGE_SPATK; gBattleScripting.animArg2 = 0; BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); @@ -3005,13 +2843,10 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) case HOLD_EFFECT_SP_DEFENSE_UP: if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality && !moveTurn && gBattleMons[bank].statStages[STAT_STAGE_SPDEF] < 0xC) { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 5; - gBattleTextBuff1[2] = STAT_STAGE_SPDEF; - gBattleTextBuff1[3] = EOS; + PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_STAGE_SPDEF); gEffectBank = bank; - gBattleScripting.statChanger = 0x10 + STAT_STAGE_SPDEF; + SET_STATCHANGER(STAT_STAGE_SPDEF, 1, FALSE); gBattleScripting.animArg1 = 0xE + STAT_STAGE_SPDEF; gBattleScripting.animArg2 = 0; BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); @@ -3041,22 +2876,19 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) i = Random() % 5; } while (gBattleMons[bank].statStages[STAT_STAGE_ATK + i] == 0xC); - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 5; - gBattleTextBuff1[2] = i + 1; - gBattleTextBuff1[3] = EOS; - - gBattleTextBuff2[0] = 0xFD; - gBattleTextBuff2[1] = 0; - gBattleTextBuff2[2] = 0xD1; - gBattleTextBuff2[3] = 0xD1 >> 8; - gBattleTextBuff2[4] = 0; - gBattleTextBuff2[5] = 0xD2; - gBattleTextBuff2[6] = 0xD2 >> 8; + PREPARE_STAT_BUFFER(gBattleTextBuff1, i + 1); + + gBattleTextBuff2[0] = B_BUFF_PLACEHOLDER_BEGIN; + gBattleTextBuff2[1] = B_BUFF_STRING; + gBattleTextBuff2[2] = STRINGID_STATSHARPLY; + gBattleTextBuff2[3] = STRINGID_STATSHARPLY >> 8; + gBattleTextBuff2[4] = B_BUFF_STRING; + gBattleTextBuff2[5] = STRINGID_STATROSE; + gBattleTextBuff2[6] = STRINGID_STATROSE >> 8; gBattleTextBuff2[7] = EOS; gEffectBank = bank; - gBattleScripting.statChanger = 0x21 + i; + SET_STATCHANGER(i + 1, 2, FALSE); gBattleScripting.animArg1 = 0x21 + i + 6; gBattleScripting.animArg2 = 0; BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); @@ -3309,7 +3141,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) } break; case HOLD_EFFECT_RESTORE_STATS: - for (i = 0; i < 8; i++) + for (i = 0; i < BATTLE_STATS_NO; i++) { if (gBattleMons[bank].statStages[i] < 6) { @@ -3350,7 +3182,7 @@ u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) && gBattleMoves[gCurrentMove].flags & FLAG_KINGSROCK_AFFECTED && gBattleMons[gBankTarget].hp) { - gBattleCommunication[MOVE_EFFECT_BYTE] = 8; + gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_FLINCH; BattleScriptPushCursor(); SetMoveEffect(0, 0); BattleScriptPop(); @@ -3411,7 +3243,7 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) switch (moveTarget) { case MOVE_TARGET_SELECTED: - side = GetBankSide(gBankAttacker) ^ 1; + side = GetBankSide(gBankAttacker) ^ BIT_SIDE; if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) targetBank = gSideTimers[side].followmeTarget; else @@ -3425,7 +3257,7 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) && AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIDE, gBankAttacker, ABILITY_LIGHTNING_ROD, 0, 0) && gBattleMons[targetBank].ability != ABILITY_LIGHTNING_ROD) { - targetBank ^= 2; + targetBank ^= BIT_MON; RecordAbilityBattle(targetBank, gBattleMons[targetBank].ability); gSpecialStatuses[targetBank].lightningRodRedirected = 1; } @@ -3435,12 +3267,12 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) case MOVE_TARGET_BOTH: case MOVE_TARGET_FOES_AND_ALLY: case MOVE_TARGET_OPPONENTS_FIELD: - targetBank = GetBankByIdentity((GetBankIdentity(gBankAttacker) & 1) ^ 1); + targetBank = GetBankByIdentity((GetBankIdentity(gBankAttacker) & BIT_SIDE) ^ BIT_SIDE); if (gAbsentBankFlags & gBitTable[targetBank]) - targetBank ^= 2; + targetBank ^= BIT_MON; break; case MOVE_TARGET_RANDOM: - side = GetBankSide(gBankAttacker) ^ 1; + side = GetBankSide(gBankAttacker) ^ BIT_SIDE; if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) targetBank = gSideTimers[side].followmeTarget; else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && moveTarget & MOVE_TARGET_RANDOM) @@ -3448,22 +3280,22 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) if (GetBankSide(gBankAttacker) == SIDE_PLAYER) { if (Random() & 1) - targetBank = GetBankByIdentity(1); + targetBank = GetBankByIdentity(IDENTITY_OPPONENT_MON1); else - targetBank = GetBankByIdentity(3); + targetBank = GetBankByIdentity(IDENTITY_OPPONENT_MON2); } else { if (Random() & 1) - targetBank = GetBankByIdentity(0); + targetBank = GetBankByIdentity(IDENTITY_PLAYER_MON1); else - targetBank = GetBankByIdentity(2); + targetBank = GetBankByIdentity(IDENTITY_PLAYER_MON2); } if (gAbsentBankFlags & gBitTable[targetBank]) - targetBank ^= 2; + targetBank ^= BIT_MON; } else - targetBank = GetBankByIdentity((GetBankIdentity(gBankAttacker) & 1) ^ 1); + targetBank = GetBankByIdentity((GetBankIdentity(gBankAttacker) & BIT_SIDE) ^ BIT_SIDE); break; case MOVE_TARGET_USER: case MOVE_TARGET_x10: @@ -3471,11 +3303,7 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) break; } - #ifndef NONMATCHING - MEME_ACCESS_U8(BattleStruct, gBattleStruct, gBankAttacker, moveTarget, targetBank); - #else - gBattleStruct->moveTarget[gBankAttacker] = targetBank; - #endif // NONMATCHING + *(gBattleStruct->moveTarget + gBankAttacker) = targetBank; return targetBank; } @@ -3490,7 +3318,7 @@ static bool32 HasObedientBitSet(u8 bank) return GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_OBEDIENCE, NULL); } -u8 IsPokeDisobedient(void) +u8 IsMonDisobedient(void) { s32 rnd; s32 calc; @@ -3536,7 +3364,7 @@ u8 IsPokeDisobedient(void) gBattleMons[gBankAttacker].status2 &= ~(STATUS2_RAGE); if (gBattleMons[gBankAttacker].status1 & STATUS_SLEEP && (gCurrentMove == MOVE_SNORE || gCurrentMove == MOVE_SLEEP_TALK)) { - gBattlescriptCurrInstr = gUnknown_082DB695; + gBattlescriptCurrInstr = BattleScript_82DB695; return 1; } @@ -3559,7 +3387,7 @@ u8 IsPokeDisobedient(void) } while (gBitTable[gCurrMovePos] & calc); gRandomMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; - gBattlescriptCurrInstr = gUnknown_082DB6A5; + gBattlescriptCurrInstr = BattleScript_IgnoresAndUsesRandomMove; gBankTarget = GetMoveTarget(gRandomMove, 0); gHitMarker |= HITMARKER_x200000; return 2; @@ -3581,7 +3409,7 @@ u8 IsPokeDisobedient(void) } if (i == gNoOfAllBanks) { - gBattlescriptCurrInstr = gUnknown_082DB6D9; + gBattlescriptCurrInstr = BattleScript_IgnoresAndFallsAsleep; return 1; } } @@ -3590,7 +3418,7 @@ u8 IsPokeDisobedient(void) { gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankAttacker], MOVE_POUND, 0, 40, 0, gBankAttacker, gBankAttacker); gBankTarget = gBankAttacker; - gBattlescriptCurrInstr = gUnknown_082DB6F0; + gBattlescriptCurrInstr = BattleScript_82DB6F0; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; return 2; } diff --git a/src/battle_util2.c b/src/battle_util2.c index e119c85d7..538c1c641 100644 --- a/src/battle_util2.c +++ b/src/battle_util2.c @@ -4,21 +4,17 @@ #include "malloc.h" #include "pokemon.h" #include "event_data.h" -#include "abilities.h" -#include "rng.h" +#include "constants/abilities.h" +#include "random.h" +#include "battle_scripts.h" extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; extern u8 gUnknown_0203CF00[]; -extern const u8* gBattlescriptCurrInstr; +extern const u8 *gBattlescriptCurrInstr; extern u8 gBattleCommunication[]; extern u8 gActiveBank; -extern const u8 BattleScript_MoveUsedWokeUp[]; -extern const u8 BattleScript_MoveUsedIsFrozen[]; -extern const u8 BattleScript_MoveUsedUnfroze[]; -extern const u8 BattleScript_MoveUsedIsAsleep[]; - extern void sub_81D55D0(void); extern void sub_81D5694(void); extern u8 pokemon_order_func(u8); diff --git a/src/berry.c b/src/berry.c index 6d1fd17a1..74b7090c0 100644 --- a/src/berry.c +++ b/src/berry.c @@ -2,9 +2,9 @@ #include "berry.h" #include "main.h" #include "item.h" -#include "items.h" +#include "constants/items.h" #include "text.h" -#include "rng.h" +#include "random.h" #include "event_data.h" #include "fieldmap.h" @@ -18,12 +18,6 @@ extern u16 gSpecialVar_ItemId; extern const u8 BerryTreeScript[]; -#define BERRY_NAME_LENGTH 6 - -#define FIRST_BERRY ITEM_CHERI_BERRY -#define LAST_BERRY ITEM_ENIGMA_BERRY - - static const u8 sBerryDescriptionPart1_Cheri[] = _("Blooms with delicate pretty flowers."); static const u8 sBerryDescriptionPart2_Cheri[] = _("The bright red BERRY is very spicy."); static const u8 sBerryDescriptionPart1_Chesto[] = _("The BERRY’s thick skin and fruit are"); @@ -1062,28 +1056,28 @@ u8 GetStageByBerryTreeId(u8 id) u8 ItemIdToBerryType(u16 item) { - u16 berry = item - FIRST_BERRY; + u16 berry = item - FIRST_BERRY_INDEX; - if (berry > LAST_BERRY - FIRST_BERRY) + if (berry > LAST_BERRY_INDEX - FIRST_BERRY_INDEX) return 1; else - return item - FIRST_BERRY + 1; + return ITEM_TO_BERRY(item); } u16 BerryTypeToItemId(u16 berry) { u16 item = berry - 1; - if (item > LAST_BERRY - FIRST_BERRY) - return FIRST_BERRY; + if (item > LAST_BERRY_INDEX - FIRST_BERRY_INDEX) + return FIRST_BERRY_INDEX; else - return berry + FIRST_BERRY - 1; + return berry + FIRST_BERRY_INDEX - 1; } void GetBerryNameByBerryType(u8 berry, u8 *string) { - memcpy(string, GetBerryInfo(berry)->name, BERRY_NAME_LENGTH); - string[BERRY_NAME_LENGTH] = EOS; + memcpy(string, GetBerryInfo(berry)->name, BERRY_NAME_COUNT - 1); + string[BERRY_NAME_COUNT - 1] = EOS; } void GetBerryCountStringByBerryType(u8 berry, u8* dest, u32 berryCount) diff --git a/src/berry_blender.c b/src/berry_blender.c index 8e5a51845..b1e8712a6 100644 --- a/src/berry_blender.c +++ b/src/berry_blender.c @@ -1,17 +1,140 @@ #include "global.h" +#include "constants/game_stat.h" +#include "overworld.h" +#include "berry_blender.h" #include "bg.h" #include "window.h" #include "task.h" #include "sprite.h" +#include "sound.h" +#include "constants/songs.h" +#include "m4a.h" +#include "bg.h" +#include "palette.h" +#include "decompress.h" +#include "malloc.h" +#include "gpu_regs.h" +#include "text.h" +#include "event_data.h" +#include "main.h" +#include "link.h" +#include "new_menu_helpers.h" +#include "item_menu_icons.h" +#include "berry.h" +#include "item.h" +#include "constants/items.h" +#include "string_util.h" +#include "international_string_util.h" +#include "random.h" +#include "menu.h" +#include "pokeblock.h" +#include "trig.h" +#include "tv.h" + +#define BLENDER_SCORE_BEST 0 +#define BLENDER_SCORE_GOOD 1 +#define BLENDER_SCORE_MISS 2 + +#define BLENDER_MAX_PLAYERS 4 +#define BLENDER_SCORES_NO 3 + +enum +{ + PLAY_AGAIN_OK, + DONT_PLAY_AGAIN, + CANT_PLAY_NO_BERRIES, + CANT_PLAY_NO_PKBLCK_SPACE +}; -// Static type declarations +struct BlenderBerry +{ + u16 itemId; + u8 name[BERRY_NAME_COUNT]; + u8 flavors[FLAVOR_COUNT]; + u8 smoothness; +}; -// Static RAM declarations -IWRAM_DATA void *berry_blender_c_unused_03000de4; -IWRAM_DATA s16 gUnknown_03000DE8[8]; -IWRAM_DATA s16 gUnknown_03000DF8[6]; -IWRAM_DATA s16 gUnknown_03000E04; -IWRAM_DATA s16 gUnknown_03000E06; +struct TimeAndRPM +{ + u32 time; + u16 max_RPM; +}; + +struct BlenderGameBlock +{ + struct TimeAndRPM timeRPM; + u16 scores[BLENDER_MAX_PLAYERS][BLENDER_SCORES_NO]; +}; + +struct TvBlenderStruct +{ + u8 name[11]; + u8 pokeblockFlavor; + u8 pokeblockColor; + u8 pokeblockSheen; +}; + +struct BerryBlenderData +{ + u8 mainState; + u8 loadGfxState; + u8 unused_02[0x42]; + u16 field_44; + u8 scoreIconIds[BLENDER_SCORES_NO]; + u16 arrowPos; + s16 field_4C; + u16 max_RPM; + u8 syncArrowSpriteIds[BLENDER_MAX_PLAYERS]; + u8 syncArrowSprite2Ids[BLENDER_MAX_PLAYERS]; + u8 unused_57[0xB]; + u8 gameEndState; + u16 field_64[BLENDER_MAX_PLAYERS]; + u16 field_6C; + u16 field_6E; + u16 playAgainState; + u8 field_72; + u16 chosenItemId[BLENDER_MAX_PLAYERS]; + u8 playersNo; + u8 unused_7D[0x10]; + u16 field_8E[BLENDER_MAX_PLAYERS]; + u16 field_96[BLENDER_MAX_PLAYERS]; + u8 yesNoAnswer; + u8 stringVar[100]; + u32 gameFrameTime; + s32 framesToWait; + u32 field_10C; + u8 unused_110[4]; + u8 field_114; + u16 field_116; + u16 field_118; + u16 field_11A; + u16 bg_X; + u16 bg_Y; + u8 field_120[3]; + u8 field_123; + u16 scores[BLENDER_MAX_PLAYERS][BLENDER_SCORES_NO]; + u8 playerPlaces[BLENDER_MAX_PLAYERS]; + struct BgAffineSrcData bgAffineSrc; + u16 field_154; + struct BlenderBerry blendedBerries[BLENDER_MAX_PLAYERS]; + struct TimeAndRPM smallBlock; + u32 field_1A0; + u8 field_1A4; + struct TvBlenderStruct tvBlender; + u8 tilemapBuffers[2][0x800]; + s16 textState; + void *tilesBuffer; + struct BlenderGameBlock gameBlock; +}; + +extern struct MusicPlayerInfo gMPlay_SE2; +extern struct MusicPlayerInfo gMPlay_BGM; +extern u16 gSpecialVar_ItemId; +extern u8 gInGameOpponentsNo; +extern u8 gUnknown_020322D5; +extern u8 gResultsWindowId; + +extern const u8 * const gPokeblockNames[]; // graphics extern const u8 gBerryBlenderArrowTiles[]; @@ -21,20 +144,92 @@ extern const u8 gBerryBlenderParticlesTiles[]; extern const u8 gBerryBlenderCountdownNumbersTiles[]; extern const u16 gBerryBlenderMiscPalette[]; extern const u16 gBerryBlenderArrowPalette[]; - -void sub_8080EA4(u8 taskId); -void sub_8080FD0(u8 taskId); -void sub_80810F8(u8 taskId); -void sub_80833F8(struct Sprite *sprite); -void sub_8082F68(struct Sprite *sprite); -void sub_8083010(struct Sprite *sprite); -void sub_80830C0(struct Sprite *sprite); - -// .rodata -// TODO: make those static once the file is decompiled -const u16 sBlenderCenterPal[] = INCBIN_U16("graphics/berry_blender/center.gbapal"); -const u8 sBlenderCenterMap[] = INCBIN_U8("graphics/berry_blender/center_map.bin"); -const u16 sBlenderOuterPal[] = INCBIN_U16("graphics/berry_blender/outer.gbapal"); +extern const u8 sBlenderCenterGfx[]; +extern const u8 gUnknown_08D91DB8[]; +extern const u8 gUnknown_08D927EC[]; + +// text +extern const u8 gText_SavingDontTurnOff2[]; +extern const u8 gText_Space[]; +extern const u8 gText_BlenderMaxSpeedRecord[]; +extern const u8 gText_234Players[]; + +extern void sub_81978B0(u16); +extern void sub_800A418(void); +extern u8 sub_800A9D8(void); +extern bool8 sub_800A4D8(u8); +extern void sub_8197DF8(u8 windowId, bool8 copyToVram); +extern void sub_809882C(u8, u16, u8); +extern void copy_textbox_border_tile_patterns_to_vram(u8, u16, u8); +extern void sub_81AABF0(void (*callback)(void)); +extern void sub_800B4C0(void); +extern void sub_8009F8C(void); +extern void c2_exit_to_overworld_1_continue_scripts_restart_music(void); +extern void sub_8153430(void); +extern bool8 sub_8153474(void); +extern void sub_80EECEC(void); + +// this file's functions +static void BerryBlender_SetBackgroundsPos(void); +static void sub_8080EA4(u8 taskId); +static void sub_8080FD0(u8 taskId); +static void sub_80810F8(u8 taskId); +static void sub_8081224(u8 taskId); +static void sub_8083F3C(u8 taskId); +static void sub_80833F8(struct Sprite *sprite); +static void sub_8082F68(struct Sprite *sprite); +static void sub_8083010(struct Sprite *sprite); +static void sub_80830C0(struct Sprite *sprite); +static void sub_8082F9C(struct Sprite *sprite); +static void Blender_SetPlayerNamesLocal(u8 opponentsNum); +static void sub_807FAC8(void); +static void sub_8082D28(void); +static bool32 Blender_PrintText(s16 *textState, const u8 *string, s32 textSpeed); +static void sub_807FFA4(void); +static void sub_8080018(void); +static void sub_80808D4(void); +static void Blender_DummiedOutFunc(s16 a0, s16 a1); +static void sub_8081898(void); +static void sub_8082CB4(struct BgAffineSrcData *bgAffineSrc); +static bool8 sub_8083380(void); +static void sub_808074C(void); +static void Blender_PrintPlayerNames(void); +static void sub_8080588(void); +static void Blender_SetBankBerryData(u8 bank, u16 itemId); +static void Blender_AddTextPrinter(u8 windowId, const u8 *string, u8 x, u8 y, s32 speed, s32 caseId); +static void sub_8080DF8(void); +static void sub_8082E84(void); +static void sub_80832BC(s16* a0, u16 a1); +static void sub_8083140(u16 a0, u16 a2); +static void sub_8083230(u16 a0); +static void sub_808330C(void); +static void sub_8082AD4(void); +static void CB2_HandleBlenderEndGame(void); +static bool8 Blender_PrintBlendingRanking(void); +static bool8 Blender_PrintBlendingResults(void); +static void CB2_HandlePlayerPlayAgainChoice(void); +static void CB2_HandlePlayerLinkPlayAgainChoice(void); +static void sub_8083170(u16 a0, u16 a1); +static void Blender_PrintMadePokeblockString(struct Pokeblock *pokeblock, u8 *dst); +static bool32 TryAddContestLinkTvShow(struct Pokeblock *pokeblock, struct TvBlenderStruct *a1); + +// ewram +EWRAM_DATA static struct BerryBlenderData *sBerryBlenderData = NULL; +EWRAM_DATA static s32 sUnknown_020322A8[5] = {0}; +EWRAM_DATA static s32 sUnknown_020322BC[5] = {0}; +EWRAM_DATA static u32 sUnknown_020322D0 = 0; + +// iwram +IWRAM_DATA static s16 sUnknown_03000DE8[8]; +IWRAM_DATA static s16 sUnknown_03000DF8[6]; +IWRAM_DATA static s16 sUnknown_03000E04; +IWRAM_DATA static s16 sUnknown_03000E06; + +// rom + +static const u16 sBlenderCenterPal[] = INCBIN_U16("graphics/berry_blender/center.gbapal"); +static const u8 sBlenderCenterMap[] = INCBIN_U8("graphics/berry_blender/center_map.bin"); +static const u16 sBlenderOuterPal[] = INCBIN_U16("graphics/berry_blender/outer.gbapal"); // unreferenced pals? static const u16 sUnknownPal_0[] = INCBIN_U16("graphics/unknown/unknown_339514.gbapal"); @@ -47,9 +242,9 @@ static const u8 sUnusedText_Space[] = _(" "); static const u8 sUnusedText_Terminating[] = _("Terminating."); static const u8 sUnusedText_LinkPartnerNotFound[] = _("Link partner(s) not found.\nPlease try again.\p"); -const u8 gText_BerryBlenderStart[] = _("Starting up the BERRY BLENDER.\pPlease select a BERRY from your BAG\nto put in the BERRY BLENDER.\p"); -const u8 gText_NewParagraph[] = _("\p"); -const u8 gText_WasMade[] = _(" was made!"); +static const u8 sText_BerryBlenderStart[] = _("Starting up the BERRY BLENDER.\pPlease select a BERRY from your BAG\nto put in the BERRY BLENDER.\p"); +static const u8 sText_NewParagraph[] = _("\p"); +static const u8 sText_WasMade[] = _(" was made!"); static const u8 sText_Mister[] = _("MISTER"); static const u8 sText_Laddie[] = _("LADDIE"); static const u8 sText_Lassie[] = _("LASSIE"); @@ -57,7 +252,7 @@ static const u8 sText_Master[] = _("MASTER"); static const u8 sText_Dude[] = _("DUDE"); static const u8 sText_Miss[] = _("MISS"); -const u8* const sBlenderOpponentsNames[] = +static const u8* const sBlenderOpponentsNames[] = { sText_Mister, sText_Laddie, @@ -67,31 +262,41 @@ const u8* const sBlenderOpponentsNames[] = sText_Miss }; +enum +{ + BLENDER_MISTER, + BLENDER_LADDIE, + BLENDER_LASSIE, + BLENDER_MASTER, + BLENDER_DUDE, + BLENDER_MISS +}; + static const u8 sText_PressAToStart[] = _("Press the A Button to start."); static const u8 sText_PleaseWaitAWhile[] = _("Please wait a while."); -const u8 sText_CommunicationStandby[] = _("Communication standby…"); -const u8 sText_WouldLikeToBlendAnotherBerry[] = _("Would you like to blend another BERRY?"); -const u8 sText_RunOutOfBerriesForBlending[] = _("You’ve run out of BERRIES for\nblending in the BERRY BLENDER.\p"); -const u8 sText_YourPokeblockCaseIsFull[] = _("Your {POKEBLOCK} CASE is full.\p"); -const u8 sText_HasNoBerriesToPut[] = _(" has no BERRIES to put in\nthe BERRY BLENDER."); -const u8 sText_ApostropheSPokeblockCaseIsFull[] = _("’s {POKEBLOCK} CASE is full.\p"); -const u8 sText_BlendingResults[] = _("RESULTS OF BLENDING"); +static const u8 sText_CommunicationStandby[] = _("Communication standby…"); +static const u8 sText_WouldLikeToBlendAnotherBerry[] = _("Would you like to blend another BERRY?"); +static const u8 sText_RunOutOfBerriesForBlending[] = _("You’ve run out of BERRIES for\nblending in the BERRY BLENDER.\p"); +static const u8 sText_YourPokeblockCaseIsFull[] = _("Your {POKEBLOCK} CASE is full.\p"); +static const u8 sText_HasNoBerriesToPut[] = _(" has no BERRIES to put in\nthe BERRY BLENDER."); +static const u8 sText_ApostropheSPokeblockCaseIsFull[] = _("’s {POKEBLOCK} CASE is full.\p"); +static const u8 sText_BlendingResults[] = _("RESULTS OF BLENDING"); static const u8 sText_BerryUsed[] = _("BERRY USED"); -const u8 sText_SpaceBerry[] = _(" BERRY"); -const u8 sText_Time[] = _("Time:"); -const u8 sText_Min[] = _(" min. "); -const u8 sText_Sec[] = _(" sec."); -const u8 sText_MaximumSpeed[] = _("MAXIMUM SPEED"); -const u8 sText_RPM[] = _(" RPM"); -const u8 sText_Dot[] = _("."); -const u8 sText_NewLine[] = _("\n"); +static const u8 sText_SpaceBerry[] = _(" BERRY"); +static const u8 sText_Time[] = _("Time:"); +static const u8 sText_Min[] = _(" min. "); +static const u8 sText_Sec[] = _(" sec."); +static const u8 sText_MaximumSpeed[] = _("MAXIMUM SPEED"); +static const u8 sText_RPM[] = _(" RPM"); +static const u8 sText_Dot[] = _("."); +static const u8 sText_NewLine[] = _("\n"); static const u8 sText_Space[] = _(" "); -const u8 sText_Ranking[] = _("RANKING"); -const u8 sText_TheLevelIs[] = _("The level is "); -const u8 sText_TheFeelIs[] = _(", and the feel is "); -const u8 sText_Dot2[] = _("."); +static const u8 sText_Ranking[] = _("RANKING"); +static const u8 sText_TheLevelIs[] = _("The level is "); +static const u8 sText_TheFeelIs[] = _(", and the feel is "); +static const u8 sText_Dot2[] = _("."); -const struct BgTemplate gUnknown_08339974[3] = +static const struct BgTemplate sBerryBlenderBgTemplates[3] = { { .bg = 0, @@ -122,7 +327,7 @@ const struct BgTemplate gUnknown_08339974[3] = } }; -const struct WindowTemplate gUnknown_08339980[] = +static const struct WindowTemplate sBerryBlender_WindowTemplates[] = { {0, 1, 6, 7, 2, 0xE, 0x28}, {0, 0x16, 6, 7, 2, 0xE, 0x36}, @@ -133,31 +338,31 @@ const struct WindowTemplate gUnknown_08339980[] = DUMMY_WIN_TEMPLATE }; -const struct WindowTemplate gUnknown_083399B8 = +static const struct WindowTemplate sBlender_YesNoWindowTemplate = { 0, 0x15, 9, 5, 4, 0xE, 0xCC }; -const s8 gUnknown_083399C0[][2] = +static const s8 sUnknown_083399C0[][2] = { {-1, -1}, {1, -1}, {-1, 1}, {1, 1} }; -const u8 sBlenderSyncArrowsPos[][2] = +static const u8 sBlenderSyncArrowsPos[BLENDER_MAX_PLAYERS][2] = { {72, 32}, {168, 32}, {72, 128}, {168, 128} }; -const u8 gUnknown_083399D0[3][4] = +static const u8 sUnknown_083399D0[3][4] = { {-1, 0, 1, -1}, {-1, 0, 1, 2}, {0, 1, 2, 3} }; -const u16 gUnknown_083399DC[] = {0, 0xC000, 0x4000, 0x8000}; -const u8 gUnknown_083399E4[] = {1, 1, 0}; -const u8 gUnknown_083399E7[] = {32, 224, 96, 160, 0}; +static const u16 sUnknown_083399DC[] = {0, 0xC000, 0x4000, 0x8000}; +static const u8 sUnknown_083399E4[] = {1, 1, 0}; +static const u8 sUnknown_083399E7[] = {32, 224, 96, 160, 0}; -const TaskFunc gUnknown_083399EC[] = +static const TaskFunc sUnknown_083399EC[] = { sub_8080EA4, sub_8080FD0, sub_80810F8 }; @@ -279,22 +484,22 @@ static const union AnimCmd *const sSpriteAnimTable_82163AC[] = sSpriteAnim_82163A4 }; -const struct SpriteSheet sSpriteSheet_BlenderArrow = +static const struct SpriteSheet sSpriteSheet_BlenderArrow = { gBerryBlenderArrowTiles, 0x800, 46545 }; -const struct SpritePalette sSpritePal_BlenderMisc = +static const struct SpritePalette sSpritePal_BlenderMisc = { gBerryBlenderMiscPalette, 46546 }; -const struct SpritePalette sSpritePal_BlenderArrow = +static const struct SpritePalette sSpritePal_BlenderArrow = { gBerryBlenderArrowPalette, 12312 }; -const struct SpriteTemplate sBlenderSyncArrow_SpriteTemplate = +static const struct SpriteTemplate sBlenderSyncArrow_SpriteTemplate = { .tileTag = 46545, .paletteTag = 12312, @@ -358,12 +563,12 @@ static const union AnimCmd *const sSpriteAnimTable_8216444[] = sSpriteAnim_821643C, }; -const struct SpriteSheet gUnknown_08339B38 = +static const struct SpriteSheet sUnknown_08339B38 = { gBerryBlenderMarubatsuTiles, 0x200, 48888 }; -const struct SpriteTemplate gUnknown_08339B40 = +static const struct SpriteTemplate sUnknown_08339B40 = { .tileTag = 48888, .paletteTag = 46546, @@ -445,12 +650,12 @@ static const union AnimCmd *const sSpriteAnimTable_82164E0[] = sSpriteAnim_82164D8, }; -const struct SpriteSheet gUnknown_08339BD8 = +static const struct SpriteSheet sUnknown_08339BD8 = { gBerryBlenderParticlesTiles, 0xE0, 23456 }; -const struct SpriteTemplate gUnknown_08339BE0 = +static const struct SpriteTemplate sUnknown_08339BE0 = { .tileTag = 23456, .paletteTag = 46546, @@ -503,12 +708,12 @@ static const union AnimCmd *const sSpriteAnimTable_8216534[] = sSpriteAnim_821652C, }; -const struct SpriteSheet gUnknown_08339C24 = +static const struct SpriteSheet sUnknown_08339C24 = { gBerryBlenderCountdownNumbersTiles, 0x600, 12345 }; -const struct SpriteTemplate gUnknown_08339C2C = +static const struct SpriteTemplate sUnknown_08339C2C = { .tileTag = 12345, .paletteTag = 46546, @@ -547,12 +752,12 @@ static const union AnimCmd *const sSpriteAnimTable_8216570[] = sSpriteAnim_8216568, }; -const struct SpriteSheet gUnknown_08339C58 = +static const struct SpriteSheet sUnknown_08339C58 = { gBerryBlenderStartTiles, 0x400, 12346 }; -const struct SpriteTemplate gUnknown_08339C60 = +static const struct SpriteTemplate sUnknown_08339C60 = { .tileTag = 12346, .paletteTag = 46546, @@ -563,7 +768,7 @@ const struct SpriteTemplate gUnknown_08339C60 = .callback = sub_80830C0 }; -const s16 gUnknown_08339C78[][5] = +static const s16 sUnknown_08339C78[][5] = { {-10, 20, 10, 2, 1}, {250, 20, 10, -2, 1}, @@ -571,18 +776,18 @@ const s16 gUnknown_08339C78[][5] = {250, 140, 10, -2, -1}, }; -const u8 gUnknown_08339CA0[][3] = +static const u8 sOpponentBerrySets[][3] = { {4, 3, 2}, {0, 4, 3}, {1, 0, 4}, {2, 1, 0}, {3, 2, 1}, {0, 2, 3}, {1, 3, 4}, {2, 4, 0}, {3, 0, 1}, {4, 1, 2}, }; -const u8 gUnknown_08339CBE[] = {30, 31, 32, 33, 34}; +static const u8 sSpecialOpponentBerrySets[] = {30, 31, 32, 33, 34}; -const u8 gUnknown_08339CC3[] = {1, 1, 2, 3, 4}; +static const u8 sUnknown_08339CC3[] = {1, 1, 2, 3, 4}; -const u8 gUnknown_08339CC8[] = {0x1C, 0x16, 0x13, 0x1A, 0x19, 0x0E, 0x0D, 0x0B, 0x07, 0x15}; +static const u8 sUnknown_08339CC8[] = {0x1C, 0x16, 0x13, 0x1A, 0x19, 0x0E, 0x0D, 0x0B, 0x07, 0x15}; -static const u8 gUnknown_08339CD2[] = +static const u8 sUnknown_08339CD2[] = { 0xfe, 0x02, 0x02, 0xce, 0xd0, 0x37, 0x44, 0x07, 0x1f, 0x0c, 0x10, 0x00, 0xff, 0xfe, 0x91, 0x72, 0xce, 0xd0, 0x37, 0x44, 0x07, 0x1f, @@ -592,6 +797,2835 @@ static const u8 gUnknown_08339CD2[] = 0x05, 0x03, 0x03, 0x03, 0x02, 0x02, 0x03, 0x03, 0x03, 0x03, 0x02 }; -const struct WindowTemplate gUnknown_08339D14[] = {0, 6, 4, 0x12, 0xB, 0xF, 8}; +static const struct WindowTemplate sBlenderRecordWindowTemplate = {0, 6, 4, 0x12, 0xB, 0xF, 8}; + +// code + +static void Blender_ControlHitPitch(void) +{ + m4aMPlayPitchControl(&gMPlay_SE2, 0xFFFF, 2 * (sBerryBlenderData->field_4C - 128)); +} + +static void VBlankCB0_BerryBlender(void) +{ + BerryBlender_SetBackgroundsPos(); + SetBgAffine(2, sBerryBlenderData->bgAffineSrc.texX, sBerryBlenderData->bgAffineSrc.texY, + sBerryBlenderData->bgAffineSrc.scrX, sBerryBlenderData->bgAffineSrc.scrY, + sBerryBlenderData->bgAffineSrc.sx, sBerryBlenderData->bgAffineSrc.sy, + sBerryBlenderData->bgAffineSrc.alpha); + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +static bool8 LoadBerryBlenderGfx(void) +{ + switch (sBerryBlenderData->loadGfxState) + { + case 0: + sBerryBlenderData->tilesBuffer = AllocZeroed(sub_8034974(sBlenderCenterGfx) + 100); + LZDecompressWram(sBlenderCenterGfx, sBerryBlenderData->tilesBuffer); + sBerryBlenderData->loadGfxState++; + break; + case 1: + CopyToBgTilemapBuffer(2, sBlenderCenterMap, 0x400, 0); + CopyBgTilemapBufferToVram(2); + LoadPalette(sBlenderCenterPal, 0, 0x100); + sBerryBlenderData->loadGfxState++; + break; + case 2: + LoadBgTiles(2, sBerryBlenderData->tilesBuffer, sub_8034974(sBlenderCenterGfx), 0); + sBerryBlenderData->loadGfxState++; + break; + case 3: + LZDecompressWram(gUnknown_08D91DB8, sBerryBlenderData->tilesBuffer); + sBerryBlenderData->loadGfxState++; + break; + case 4: + LoadBgTiles(1, sBerryBlenderData->tilesBuffer, sub_8034974(gUnknown_08D91DB8), 0); + sBerryBlenderData->loadGfxState++; + break; + case 5: + LZDecompressWram(gUnknown_08D927EC, sBerryBlenderData->tilesBuffer); + sBerryBlenderData->loadGfxState++; + break; + case 6: + CopyToBgTilemapBuffer(1, sBerryBlenderData->tilesBuffer, sub_8034974(gUnknown_08D927EC), 0); + CopyBgTilemapBufferToVram(1); + sBerryBlenderData->loadGfxState++; + break; + case 7: + LoadPalette(sBlenderOuterPal, 0x80, 0x20); + sBerryBlenderData->loadGfxState++; + break; + case 8: + LoadSpriteSheet(&sSpriteSheet_BlenderArrow); + LoadSpriteSheet(&sUnknown_08339BD8); + LoadSpriteSheet(&sUnknown_08339B38); + sBerryBlenderData->loadGfxState++; + break; + case 9: + LoadSpriteSheet(&sUnknown_08339C24); + LoadSpriteSheet(&sUnknown_08339C58); + LoadSpritePalette(&sSpritePal_BlenderArrow); + LoadSpritePalette(&sSpritePal_BlenderMisc); + Free(sBerryBlenderData->tilesBuffer); + sBerryBlenderData->loadGfxState = 0; + return TRUE; + } + + return FALSE; +} + +static void sub_807F9D0(void) +{ + FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x1E, 0x14); + CopyBgTilemapBufferToVram(0); + ShowBg(0); + ShowBg(1); + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); +} + +static void InitBerryBlenderWindows(void) +{ + if (InitWindows(sBerryBlender_WindowTemplates)) + { + s32 i; + + DeactivateAllTextPrinters(); + for (i = 0; i < 5; i++) + FillWindowPixelBuffer(i, 0); + + FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x1E, 0x14); + sub_81978B0(0xE0); + } +} + +void DoBerryBlending(void) +{ + if (sBerryBlenderData == NULL) + sBerryBlenderData = AllocZeroed(sizeof(*sBerryBlenderData)); + + sBerryBlenderData->gameEndState = 0; + sBerryBlenderData->mainState = 0; + sBerryBlenderData->gameEndState = 0; + + Blender_SetPlayerNamesLocal(gSpecialVar_0x8004); + SetMainCallback2(sub_807FAC8); +} + +static void sub_807FAC8(void) +{ + s32 i; + + switch (sBerryBlenderData->mainState) + { + case 0: + SetGpuReg(REG_OFFSET_DISPCNT, 0); + ResetSpriteData(); + FreeAllSpritePalettes(); + SetVBlankCallback(NULL); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(1, sBerryBlenderBgTemplates, ARRAY_COUNT(sBerryBlenderBgTemplates)); + SetBgTilemapBuffer(1, sBerryBlenderData->tilemapBuffers[0]); + SetBgTilemapBuffer(2, sBerryBlenderData->tilemapBuffers[1]); + sub_809882C(0, 1, 0xD0); + copy_textbox_border_tile_patterns_to_vram(0, 0x14, 0xF0); + InitBerryBlenderWindows(); + + sBerryBlenderData->mainState++; + sBerryBlenderData->field_118 = 0; + sBerryBlenderData->field_116 = 0; + sBerryBlenderData->field_11A = 0x50; + sBerryBlenderData->bg_X = 0; + sBerryBlenderData->bg_Y = 0; + sBerryBlenderData->loadGfxState = 0; + + sub_8082D28(); + break; + case 1: + if (LoadBerryBlenderGfx()) + { + for (i = 0; i < BLENDER_MAX_PLAYERS; i++) + { + sBerryBlenderData->syncArrowSpriteIds[i] = CreateSprite(&sBlenderSyncArrow_SpriteTemplate, sBlenderSyncArrowsPos[i][0], sBlenderSyncArrowsPos[i][1], 1); + StartSpriteAnim(&gSprites[sBerryBlenderData->syncArrowSpriteIds[i]], i + 8); + } + if (gReceivedRemoteLinkPlayers != 0 && gLinkVSyncDisabled) + { + sub_800E0E8(); + sub_800DFB4(0, 0); + } + SetVBlankCallback(VBlankCB0_BerryBlender); + sBerryBlenderData->mainState++; + } + break; + case 2: + BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); + sub_8082D28(); + sBerryBlenderData->mainState++; + break; + case 3: + sub_807F9D0(); + if (!gPaletteFade.active) + sBerryBlenderData->mainState++; + break; + case 4: + if (Blender_PrintText(&sBerryBlenderData->textState, sText_BerryBlenderStart, GetPlayerTextSpeed())) + sBerryBlenderData->mainState++; + break; + case 5: + BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); + sBerryBlenderData->mainState++; + break; + case 6: + if (!gPaletteFade.active) + { + FreeAllWindowBuffers(); + UnsetBgTilemapBuffer(2); + UnsetBgTilemapBuffer(1); + SetVBlankCallback(NULL); + sub_81AABF0(sub_807FFA4); + + sBerryBlenderData->mainState = 0; + } + break; + } + + AnimateSprites(); + BuildOamBuffer(); + RunTextPrinters(); + UpdatePaletteFade(); +} + +static void sub_807FD08(struct Sprite* sprite) +{ + sprite->data[1] += sprite->data[6]; + sprite->data[2] -= sprite->data[4]; + sprite->data[2] += sprite->data[7]; + sprite->data[0] += sprite->data[7]; + sprite->data[4]--; + + if (sprite->data[0] < sprite->data[2]) + { + sprite->data[3] = sprite->data[4] = sprite->data[3] - 1; + + if (++sprite->data[5] > 3) + DestroySprite(sprite); + else + PlaySE(SE_TB_KARA); + } + sprite->pos1.x = sprite->data[1]; + sprite->pos1.y = sprite->data[2]; +} + +static void sub_807FD64(struct Sprite* sprite, s16 a2, s16 a3, s16 a4, s16 a5, s16 a6) +{ + sprite->data[0] = a3; + sprite->data[1] = a2; + sprite->data[2] = a3; + sprite->data[3] = a4; + sprite->data[4] = 10; + sprite->data[5] = 0; + sprite->data[6] = a5; + sprite->data[7] = a6; + sprite->callback = sub_807FD08; +} + +static void sub_807FD90(u16 a0, u8 a1) +{ + u8 spriteId = sub_80D511C(a0 + 123, 0, 80, a1 & 1); + sub_807FD64(&gSprites[spriteId], sUnknown_08339C78[a1][0], sUnknown_08339C78[a1][1], sUnknown_08339C78[a1][2], sUnknown_08339C78[a1][3], sUnknown_08339C78[a1][4]); +} + +static void Blender_CopyBerryData(struct BlenderBerry* berry, u16 itemId) +{ + const struct Berry *berryInfo = GetBerryInfo(ITEM_TO_BERRY(itemId)); + + berry->itemId = itemId; + StringCopy(berry->name, berryInfo->name); + berry->flavors[FLAVOR_SPICY] = berryInfo->spicy; + berry->flavors[FLAVOR_DRY] = berryInfo->dry; + berry->flavors[FLAVOR_SWEET] = berryInfo->sweet; + berry->flavors[FLAVOR_BITTER] = berryInfo->bitter; + berry->flavors[FLAVOR_SOUR] = berryInfo->sour; + berry->smoothness = berryInfo->smoothness; +} + +static void Blender_SetPlayerNamesLocal(u8 opponentsNum) +{ + switch (opponentsNum) + { + case 0: + gInGameOpponentsNo = 0; + break; + case 1: + gInGameOpponentsNo = 1; + sBerryBlenderData->playersNo = 2; + StringCopy(gLinkPlayers[0].name, gSaveBlock2Ptr->playerName); + + if (!FlagGet(FLAG_0x340)) + StringCopy(gLinkPlayers[1].name, sBlenderOpponentsNames[BLENDER_MASTER]); + else + StringCopy(gLinkPlayers[1].name, sBlenderOpponentsNames[BLENDER_MISTER]); + + gLinkPlayers[0].language = GAME_LANGUAGE; + gLinkPlayers[1].language = GAME_LANGUAGE; + break; + case 2: + gInGameOpponentsNo = 2; + sBerryBlenderData->playersNo = 3; + StringCopy(gLinkPlayers[0].name, gSaveBlock2Ptr->playerName); + StringCopy(gLinkPlayers[1].name, sBlenderOpponentsNames[BLENDER_DUDE]); + StringCopy(gLinkPlayers[2].name, sBlenderOpponentsNames[BLENDER_LASSIE]); + + gLinkPlayers[0].language = GAME_LANGUAGE; + gLinkPlayers[1].language = GAME_LANGUAGE; + gLinkPlayers[2].language = GAME_LANGUAGE; + break; + case 3: + gInGameOpponentsNo = 3; + sBerryBlenderData->playersNo = 4; + StringCopy(gLinkPlayers[0].name, gSaveBlock2Ptr->playerName); + StringCopy(gLinkPlayers[1].name, sBlenderOpponentsNames[BLENDER_MISS]); + StringCopy(gLinkPlayers[2].name, sBlenderOpponentsNames[BLENDER_LADDIE]); + StringCopy(gLinkPlayers[3].name, sBlenderOpponentsNames[BLENDER_LASSIE]); + + gLinkPlayers[0].language = GAME_LANGUAGE; + gLinkPlayers[1].language = GAME_LANGUAGE; + gLinkPlayers[2].language = GAME_LANGUAGE; + gLinkPlayers[3].language = GAME_LANGUAGE; + break; + } +} + +static void sub_807FFA4(void) +{ + s32 i; + + SetGpuReg(REG_OFFSET_DISPCNT, 0); + if (sBerryBlenderData == NULL) + sBerryBlenderData = AllocZeroed(sizeof(*sBerryBlenderData)); + + sBerryBlenderData->mainState = 0; + sBerryBlenderData->field_10C = 0; + + for (i = 0; i < BLENDER_MAX_PLAYERS; i++) + sBerryBlenderData->chosenItemId[i] = ITEM_NONE; + + Blender_SetPlayerNamesLocal(gSpecialVar_0x8004); + + if (gSpecialVar_0x8004 == 0) + SetMainCallback2(sub_8080018); + else + SetMainCallback2(sub_80808D4); +} + +static void sub_8080018(void) +{ + s32 i, j; + + switch (sBerryBlenderData->mainState) + { + case 0: + sub_8080588(); + gLinkType = 0x4422; + sBerryBlenderData->field_72 = 0; + for (i = 0; i < BLENDER_MAX_PLAYERS; i++) + { + sBerryBlenderData->field_64[i] = 0; + for (j = 0; j < 3; j++) + { + sBerryBlenderData->scores[i][j] = 0; + } + } + sBerryBlenderData->playAgainState = 0; + sBerryBlenderData->max_RPM = 0; + sBerryBlenderData->loadGfxState = 0; + sBerryBlenderData->mainState++; + break; + case 1: + if (LoadBerryBlenderGfx()) + { + sBerryBlenderData->mainState++; + sub_8082D28(); + } + break; + case 2: + for (i = 0; i < BLENDER_MAX_PLAYERS; i++) + { + sBerryBlenderData->syncArrowSprite2Ids[i] = CreateSprite(&sBlenderSyncArrow_SpriteTemplate, sBlenderSyncArrowsPos[i][0], sBlenderSyncArrowsPos[i][1], 1); + StartSpriteAnim(&gSprites[sBerryBlenderData->syncArrowSprite2Ids[i]], i + 8); + } + if (gReceivedRemoteLinkPlayers != 0 && gLinkVSyncDisabled) + { + sub_800E0E8(); + sub_800DFB4(0, 0); + } + sBerryBlenderData->mainState++; + break; + case 3: + BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); + sBerryBlenderData->mainState++; + break; + case 4: + sub_807F9D0(); + if (!gPaletteFade.active) + { + sBerryBlenderData->mainState++; + } + break; + case 5: + Blender_PrintText(&sBerryBlenderData->textState, sText_CommunicationStandby, 0); + sBerryBlenderData->mainState = 8; + sBerryBlenderData->framesToWait = 0; + break; + case 8: + sBerryBlenderData->mainState++; + sBerryBlenderData->field_114 = 0; + Blender_CopyBerryData(&sBerryBlenderData->blendedBerries[0], gSpecialVar_ItemId); + memcpy(gBlockSendBuffer, &sBerryBlenderData->blendedBerries[0], sizeof(struct BlenderBerry)); + sub_800ADF8(); + sBerryBlenderData->framesToWait = 0; + break; + case 9: + if (sub_800A520()) + { + ResetBlockReceivedFlags(); + if (GetMultiplayerId() == 0) + sub_800A4D8(4); + sBerryBlenderData->mainState++; + } + break; + case 10: + if (++sBerryBlenderData->framesToWait > 20) + { + sub_8197DF8(4, TRUE); + if (GetBlockReceivedStatus() == sub_800A9D8()) + { + for (i = 0; i < GetLinkPlayerCount(); i++) + { + memcpy(&sBerryBlenderData->blendedBerries[i], &gBlockRecvBuffer[i][0], sizeof(struct BlenderBerry)); + sBerryBlenderData->chosenItemId[i] = sBerryBlenderData->blendedBerries[i].itemId; + } + + ResetBlockReceivedFlags(); + sBerryBlenderData->mainState++; + } + } + break; + case 11: + sBerryBlenderData->playersNo = GetLinkPlayerCount(); + + for (i = 0; i < BLENDER_MAX_PLAYERS; i++) + { + if (sBerryBlenderData->field_114 == sUnknown_083399D0[sBerryBlenderData->playersNo - 2][i]) + { + sub_807FD90(sBerryBlenderData->chosenItemId[sBerryBlenderData->field_114], i); + break; + } + } + + sBerryBlenderData->framesToWait = 0; + sBerryBlenderData->mainState++; + sBerryBlenderData->field_114++; + break; + case 12: + if (++sBerryBlenderData->framesToWait > 60) + { + if (sBerryBlenderData->field_114 >= sBerryBlenderData->playersNo) + { + sBerryBlenderData->mainState++; + sBerryBlenderData->arrowPos = sUnknown_083399DC[sUnknown_083399E4[sBerryBlenderData->playersNo - 2]] - 22528; + } + else + { + sBerryBlenderData->mainState--; + } + sBerryBlenderData->framesToWait = 0; + } + break; + case 13: + if (sub_800A520()) + { + sBerryBlenderData->mainState++; + sub_8082CB4(&sBerryBlenderData->bgAffineSrc); + PlaySE(SE_RU_HYUU); + ShowBg(2); + } + break; + case 14: + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG2_ON); + sBerryBlenderData->arrowPos += 0x200; + sBerryBlenderData->field_11A += 4; + if (sBerryBlenderData->field_11A > 0xFF) + { + SetGpuRegBits(REG_OFFSET_BG2CNT, 2); + sBerryBlenderData->mainState++; + sBerryBlenderData->field_11A = 0x100; + sBerryBlenderData->arrowPos = sUnknown_083399DC[sUnknown_083399E4[sBerryBlenderData->playersNo - 2]]; + sBerryBlenderData->framesToWait = 0; + PlaySE(SE_TRACK_DOOR); + sub_808074C(); + Blender_PrintPlayerNames(); + } + sub_8082CB4(&sBerryBlenderData->bgAffineSrc); + break; + case 15: + if (sub_8083380()) + { + sBerryBlenderData->framesToWait = 0; + sBerryBlenderData->mainState++; + } + sub_8082CB4(&sBerryBlenderData->bgAffineSrc); + break; + case 16: + CreateSprite(&sUnknown_08339C2C, 120, -16, 3); + sBerryBlenderData->mainState++; + break; + case 18: + sBerryBlenderData->mainState++; + break; + case 19: + sub_800ADF8(); + sBerryBlenderData->mainState++; + break; + case 20: + if (sub_800A520()) + { + sub_800A418(); + sBerryBlenderData->mainState++; + } + break; + case 21: + sBerryBlenderData->field_4C = 128; + sBerryBlenderData->gameFrameTime = 0; + SetMainCallback2(sub_8081898); + if (GetCurrentMapMusic() != BGM_CYCLING) + { + sBerryBlenderData->field_154 = GetCurrentMapMusic(); + } + PlayBGM(BGM_CYCLING); + break; + } + + Blender_DummiedOutFunc(sBerryBlenderData->bg_X, sBerryBlenderData->bg_Y); + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + RunTextPrinters(); + UpdatePaletteFade(); +} + +static void sub_8080588(void) +{ + SetGpuReg(REG_OFFSET_DISPCNT, 0); + + ResetSpriteData(); + FreeAllSpritePalettes(); + ResetTasks(); + + SetVBlankCallback(VBlankCB0_BerryBlender); + + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(1, sBerryBlenderBgTemplates, ARRAY_COUNT(sBerryBlenderBgTemplates)); + + SetBgTilemapBuffer(1, sBerryBlenderData->tilemapBuffers[0]); + SetBgTilemapBuffer(2, sBerryBlenderData->tilemapBuffers[1]); + + sub_809882C(0, 1, 0xD0); + copy_textbox_border_tile_patterns_to_vram(0, 0x14, 0xF0); + InitBerryBlenderWindows(); + + sBerryBlenderData->field_44 = 0; + sBerryBlenderData->field_4C = 0; + sBerryBlenderData->arrowPos = 0; + sBerryBlenderData->max_RPM = 0; + sBerryBlenderData->bg_X = 0; + sBerryBlenderData->bg_Y = 0; +} + +static u8 sub_8080624(u16 arrowPos, u8 playerId) +{ + u32 var1 = (arrowPos / 0x100) + 0x18; + u8 arrID = sBerryBlenderData->field_96[playerId]; + u32 var2 = sUnknown_083399E7[arrID]; + + if (var1 >= var2 && var1 < var2 + 0x30) + { + if (var1 >= var2 + 20 && var1 < var2 + 28) + return 2; + else + return 1; + } + + return 0; +} + +static void Blender_SetOpponentsBerryData(u16 playerBerryItemId, u8 playersNum, struct BlenderBerry* playerBerry) +{ + u16 opponentSetId = 0; + u16 opponentBerryId; + u16 var; + u16 i; + + if (playerBerryItemId == ITEM_ENIGMA_BERRY) + { + for (i = 0; i < FLAVOR_COUNT; i++) + { + if (playerBerry->flavors[opponentSetId] > playerBerry->flavors[i]) + opponentSetId = i; + } + opponentSetId += 5; + } + else + { + opponentSetId = playerBerryItemId - FIRST_BERRY_INDEX; + if (opponentSetId >= 5) + opponentSetId = (opponentSetId % 5) + 5; + } + for (i = 0; i < playersNum - 1; i++) + { + opponentBerryId = sOpponentBerrySets[opponentSetId][i]; + var = playerBerryItemId - 163; + if (!FlagGet(0x340) && gSpecialVar_0x8004 == 1) + { + opponentSetId %= 5; + opponentBerryId = sSpecialOpponentBerrySets[opponentSetId]; + if (var <= 4) + opponentBerryId -= 5; + } + Blender_SetBankBerryData(i + 1, opponentBerryId + FIRST_BERRY_INDEX); + } +} + +static void sub_808074C(void) +{ + s32 i, j; + + for (i = 0; i < BLENDER_MAX_PLAYERS; i++) + { + sBerryBlenderData->field_96[i] = 0xFF; + sBerryBlenderData->field_8E[i] = sUnknown_083399D0[sBerryBlenderData->playersNo - 2][i]; + } + for (j = 0; j < BLENDER_MAX_PLAYERS; j++) + { + for (i = 0; i < BLENDER_MAX_PLAYERS; i++) + { + if (sBerryBlenderData->field_8E[i] == j) + sBerryBlenderData->field_96[j] = i; + } + } +} + +static void Blender_PrintPlayerNames(void) +{ + s32 i, xPos; + u32 multiplayerId = 0; + u8 text[20]; + + if (gReceivedRemoteLinkPlayers) + multiplayerId = GetMultiplayerId(); + + for (i = 0; i < BLENDER_MAX_PLAYERS; i++) + { + if (sBerryBlenderData->field_8E[i] != 0xFF) + { + sBerryBlenderData->syncArrowSpriteIds[sBerryBlenderData->field_8E[i]] = sBerryBlenderData->syncArrowSprite2Ids[i]; + StartSpriteAnim(&gSprites[sBerryBlenderData->syncArrowSpriteIds[sBerryBlenderData->field_8E[i]]], i); + + text[0] = EOS; + StringCopy(text, gLinkPlayers[sBerryBlenderData->field_8E[i]].name); + xPos = GetStringCenterAlignXOffset(1, text, 0x38); + + if (multiplayerId == sBerryBlenderData->field_8E[i]) + Blender_AddTextPrinter(i, text, xPos, 1, 0, 2); + else + Blender_AddTextPrinter(i, text, xPos, 1, 0, 1); + + PutWindowTilemap(i); + CopyWindowToVram(i, 3); + } + } +} + +static void sub_80808D4(void) +{ + s32 i, j; + + switch (sBerryBlenderData->mainState) + { + case 0: + sub_800B4C0(); + sub_8080588(); + Blender_SetBankBerryData(0, gSpecialVar_ItemId); + Blender_CopyBerryData(&sBerryBlenderData->blendedBerries[0], gSpecialVar_ItemId); + Blender_SetOpponentsBerryData(gSpecialVar_ItemId, sBerryBlenderData->playersNo, &sBerryBlenderData->blendedBerries[0]); + + for (i = 0; i < BLENDER_MAX_PLAYERS; i++) + { + sBerryBlenderData->field_64[i] = 0; + for (j = 0; j < 3; j++) + { + sBerryBlenderData->scores[i][j] = 0; + } + } + + sBerryBlenderData->playAgainState = 0; + sBerryBlenderData->loadGfxState = 0; + gLinkType = 0x4422; + sBerryBlenderData->mainState++; + break; + case 1: + if (LoadBerryBlenderGfx()) + { + sBerryBlenderData->mainState++; + sub_8082D28(); + } + break; + case 2: + for (i = 0; i < BLENDER_MAX_PLAYERS; i++) + { + sBerryBlenderData->syncArrowSprite2Ids[i] = CreateSprite(&sBlenderSyncArrow_SpriteTemplate, sBlenderSyncArrowsPos[i][0], sBlenderSyncArrowsPos[i][1], 1); + StartSpriteAnim(&gSprites[sBerryBlenderData->syncArrowSprite2Ids[i]], i + 8); + } + sBerryBlenderData->mainState++; + break; + case 3: + BeginNormalPaletteFade(-1, 0, 0x10, 0, 0); + sBerryBlenderData->mainState++; + sBerryBlenderData->framesToWait = 0; + break; + case 4: + if (++sBerryBlenderData->framesToWait == 2) + sub_807F9D0(); + if (!gPaletteFade.active) + sBerryBlenderData->mainState = 8; + break; + case 8: + sBerryBlenderData->mainState = 11; + sBerryBlenderData->field_114 = 0; + break; + case 11: + for (i = 0; i < BLENDER_MAX_PLAYERS; i++) + { + u32 var = sUnknown_083399D0[sBerryBlenderData->playersNo - 2][i]; + if (sBerryBlenderData->field_114 == var) + { + sub_807FD90(sBerryBlenderData->chosenItemId[sBerryBlenderData->field_114], i); + break; + } + } + sBerryBlenderData->framesToWait = 0; + sBerryBlenderData->mainState++; + sBerryBlenderData->field_114++; + break; + case 12: + if (++sBerryBlenderData->framesToWait > 60) + { + if (sBerryBlenderData->field_114 >= sBerryBlenderData->playersNo) + { + sBerryBlenderData->arrowPos = sUnknown_083399DC[sUnknown_083399E4[sBerryBlenderData->playersNo - 2]] - 22528; + sBerryBlenderData->mainState++; + } + else + { + sBerryBlenderData->mainState--; + } + sBerryBlenderData->framesToWait = 0; + } + break; + case 13: + sBerryBlenderData->mainState++; + sub_808074C(); + PlaySE(SE_RU_HYUU); + sub_8082CB4(&sBerryBlenderData->bgAffineSrc); + ShowBg(2); + break; + case 14: + SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_BG2_ON); + sBerryBlenderData->arrowPos += 0x200; + sBerryBlenderData->field_11A += 4; + if (sBerryBlenderData->field_11A > 0xFF) + { + sBerryBlenderData->mainState++; + sBerryBlenderData->field_11A = 0x100; + sBerryBlenderData->arrowPos = sUnknown_083399DC[sUnknown_083399E4[sBerryBlenderData->playersNo - 2]]; + SetGpuRegBits(REG_OFFSET_BG2CNT, 2); + sBerryBlenderData->framesToWait = 0; + PlaySE(SE_TRACK_DOOR); + Blender_PrintPlayerNames(); + } + sub_8082CB4(&sBerryBlenderData->bgAffineSrc); + break; + case 15: + if (sub_8083380()) + { + sBerryBlenderData->mainState++; + } + sub_8082CB4(&sBerryBlenderData->bgAffineSrc); + break; + case 16: + CreateSprite(&sUnknown_08339C2C, 120, -16, 3); + sBerryBlenderData->mainState++; + break; + case 18: + sBerryBlenderData->mainState++; + break; + case 19: + sBerryBlenderData->mainState++; + break; + case 20: + sBerryBlenderData->mainState++; + break; + case 21: + sub_8080DF8(); + sBerryBlenderData->field_4C = 0x80; + sBerryBlenderData->gameFrameTime = 0; + sBerryBlenderData->field_123 = 0; + sBerryBlenderData->field_72 = 0; + SetMainCallback2(sub_8081898); + + if (gSpecialVar_0x8004 == 1) + { + if (!FlagGet(FLAG_0x340)) + sBerryBlenderData->field_120[0] = CreateTask(sub_8081224, 10); + else + sBerryBlenderData->field_120[0] = CreateTask(sUnknown_083399EC[0], 10); + } + + if (gSpecialVar_0x8004 > 1) + { + for (i = 0; i < gSpecialVar_0x8004; i++) + sBerryBlenderData->field_120[i] = CreateTask(sUnknown_083399EC[i], 10 + i); + } + + if (GetCurrentMapMusic() != BGM_CYCLING) + sBerryBlenderData->field_154 = GetCurrentMapMusic(); + + PlayBGM(BGM_CYCLING); + PlaySE(SE_MOTER); + Blender_ControlHitPitch(); + break; + } + + Blender_DummiedOutFunc(sBerryBlenderData->bg_X, sBerryBlenderData->bg_Y); + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + RunTextPrinters(); + UpdatePaletteFade(); +} + +static void sub_8080DF8(void) +{ + s32 i; + for (i = 0; i < 4; i++) + { + gSendCmd[0] = 0; + gSendCmd[2] = 0; + gRecvCmds[i][0] = 0; + gRecvCmds[i][2] = 0; + } +} + +static void sub_8080E20(u8 taskId) +{ + if(++gTasks[taskId].data[0] > gTasks[taskId].data[1]) + { + gRecvCmds[gTasks[taskId].data[2]][2] = 0x2345; + DestroyTask(taskId); + } +} + +static void sub_8080E6C(u8 a0, u8 a1) +{ + u8 taskId = CreateTask(sub_8080E20, 80); + gTasks[taskId].data[1] = a1; + gTasks[taskId].data[2] = a0; +} + +static void sub_8080EA4(u8 taskId) +{ + if (sub_8080624(sBerryBlenderData->arrowPos, 1) == 2) + { + if (gTasks[taskId].data[0] == 0) + { + if (sBerryBlenderData->field_123 == 0) + { + u8 rand = Random() / 655; + if (sBerryBlenderData->field_4C < 500) + { + if (rand > 75) + gRecvCmds[1][2] = 0x4523; + else + gRecvCmds[1][2] = 0x5432; + + gRecvCmds[1][2] = 0x5432; + } + else if (sBerryBlenderData->field_4C < 1500) + { + if (rand > 80) + { + gRecvCmds[1][2] = 0x4523; + } + else + { + u8 value = rand - 21; + if (value < 60) + gRecvCmds[1][2] = 0x5432; + else if (rand < 10) + sub_8080E6C(1, 5); + } + } + else if (rand <= 90) + { + u8 value = rand - 71; + if (value < 20) + gRecvCmds[1][2] = 0x5432; + else if (rand < 30) + sub_8080E6C(1, 5); + } + else + { + gRecvCmds[1][2] = 0x4523; + } + } + else + { + gRecvCmds[1][2] = 0x4523; + } + + gTasks[taskId].data[0] = 1; + } + } + else + { + gTasks[taskId].data[0] = 0; + } +} + +static void sub_8080FD0(u8 taskId) +{ + u32 var1 = (sBerryBlenderData->arrowPos + 0x1800) & 0xFFFF; + u32 var2 = sBerryBlenderData->field_96[2] & 0xFF; + if ((var1 >> 8) > sUnknown_083399E7[var2] + 20 && (var1 >> 8) < sUnknown_083399E7[var2] + 40) + { + if (gTasks[taskId].data[0] == 0) + { + if (sBerryBlenderData->field_123 == 0) + { + u8 rand = Random() / 655; + if (sBerryBlenderData->field_4C < 500) + { + if (rand > 66) + gRecvCmds[2][2] = 0x4523; + else + gRecvCmds[2][2] = 0x5432; + } + else + { + u8 value; + if (rand > 65) + gRecvCmds[2][2] = 0x4523; + value = rand - 41; + if (value < 25) + gRecvCmds[2][2] = 0x5432; + if (rand < 10) + sub_8080E6C(2, 5); + } + + gTasks[taskId].data[0] = 1; + } + else + { + gRecvCmds[2][2] = 0x4523; + gTasks[taskId].data[0] = 1; + } + } + } + else + { + gTasks[taskId].data[0] = 0; + } +} + +static void sub_80810F8(u8 taskId) +{ + u32 var1, var2; + + var1 = (sBerryBlenderData->arrowPos + 0x1800) & 0xFFFF; + var2 = sBerryBlenderData->field_96[3] & 0xFF; + if ((var1 >> 8) > sUnknown_083399E7[var2] + 20 && (var1 >> 8) < sUnknown_083399E7[var2] + 40) + { + if (gTasks[taskId].data[0] == 0) + { + if (sBerryBlenderData->field_123 == 0) + { + u8 rand = (Random() / 655); + if (sBerryBlenderData->field_4C < 500) + { + if (rand > 88) + gRecvCmds[3][2] = 0x4523; + else + gRecvCmds[3][2] = 0x5432; + } + else + { + if (rand > 60) + { + gRecvCmds[3][2] = 0x4523; + } + else + { + s8 value = rand - 56; // makes me wonder what the original code was + u8 value2 = value; + if (value2 < 5) + gRecvCmds[3][2] = 0x5432; + } + if (rand < 5) + sub_8080E6C(3, 5); + } + gTasks[taskId].data[0] = 1; + } + else + { + gRecvCmds[3][2] = 0x4523; + gTasks[taskId].data[0] = 1; + } + } + } + else + { + gTasks[taskId].data[0] = 0; + } +} + +static void sub_8081224(u8 taskId) +{ + if (sub_8080624(sBerryBlenderData->arrowPos, 1) == 2) + { + if (gTasks[taskId].data[0] == 0) + { + gRecvCmds[1][2] = 0x4523; + gTasks[taskId].data[0] = 1; + } + } + else + { + gTasks[taskId].data[0] = 0; + } +} + +static void sub_8081288(u16 a0, u8 a1) +{ + u8 spriteId; + + spriteId = CreateSprite(&sUnknown_08339B40, + sBlenderSyncArrowsPos[a1][0] - (10 * sUnknown_083399C0[a1][0]), + sBlenderSyncArrowsPos[a1][1] - (10 * sUnknown_083399C0[a1][1]), + 1); + if (a0 == 0x4523) + { + StartSpriteAnim(&gSprites[spriteId], 2); + gSprites[spriteId].callback = sub_8082F9C; + PlaySE(SE_RU_GASHIN); + } + else if (a0 == 0x5432) + { + StartSpriteAnim(&gSprites[spriteId], 0); + PlaySE(SE_SEIKAI); + } + else if (a0 == 0x2345) + { + StartSpriteAnim(&gSprites[spriteId], 1); + PlaySE(SE_HAZURE); + } + sub_8082E84(); +} + +static void sub_8081370(u16 a0) +{ + Blender_ControlHitPitch(); + switch (a0) + { + case 0x4523: + if (sBerryBlenderData->field_4C < 1500) + sBerryBlenderData->field_4C += (0x180 / sUnknown_08339CC3[sBerryBlenderData->playersNo]); + else + { + sBerryBlenderData->field_4C += (128 / sUnknown_08339CC3[sBerryBlenderData->playersNo]); + sub_80832BC(&sBerryBlenderData->bg_X, (sBerryBlenderData->field_4C / 100) - 10); + sub_80832BC(&sBerryBlenderData->bg_Y, (sBerryBlenderData->field_4C / 100) - 10); + } + break; + case 0x5432: + if (sBerryBlenderData->field_4C < 1500) + sBerryBlenderData->field_4C += (0x100 / sUnknown_08339CC3[sBerryBlenderData->playersNo]); + break; + case 0x2345: + sBerryBlenderData->field_4C -= (0x100 / sUnknown_08339CC3[sBerryBlenderData->playersNo]); + if (sBerryBlenderData->field_4C < 0x80) + sBerryBlenderData->field_4C = 0x80; + break; + } +} + +static bool32 sub_80814B0(u16 arg0, u16 arg1, u16 arg2) +{ + if (gReceivedRemoteLinkPlayers != 0 && gLinkVSyncDisabled) + { + if ((arg0 & 0xFF00) == arg2) + return TRUE; + } + else + { + if (arg0 == arg1) + return TRUE; + } + + return FALSE; +} + +static void sub_80814F4(void) +{ + s32 i; + + if (gSpecialVar_0x8004 != 0) + { + if (gSendCmd[2] != 0) + { + gRecvCmds[0][2] = gSendCmd[2]; + gRecvCmds[0][0] = 0x4444; + gSendCmd[2] = 0; + } + for (i = 1; i < 4; i++) + { + if (gRecvCmds[i][2] != 0) + gRecvCmds[i][0] = 0x4444; + } + } + for (i = 0; i < sBerryBlenderData->playersNo; i++) + { + if (sub_80814B0(gRecvCmds[i][0], 0x4444, 0x4400)) + { + u32 var = sBerryBlenderData->field_96[i]; + if (gRecvCmds[i][2] == 0x4523) + { + sub_8081370(0x4523); + sBerryBlenderData->field_116 += (sBerryBlenderData->field_4C / 55); + if (sBerryBlenderData->field_116 >= 1000) + sBerryBlenderData->field_116 = 1000; + sub_8081288(0x4523, var); + sBerryBlenderData->scores[i][BLENDER_SCORE_BEST]++; + } + else if (gRecvCmds[i][2] == 0x5432) + { + sub_8081370(0x5432); + sBerryBlenderData->field_116 += (sBerryBlenderData->field_4C / 70); + sub_8081288(0x5432, var); + sBerryBlenderData->scores[i][BLENDER_SCORE_GOOD]++; + } + else if (gRecvCmds[i][2] == 0x2345) + { + sub_8081288(0x2345, var); + sub_8081370(0x2345); + if (sBerryBlenderData->scores[i][BLENDER_SCORE_MISS] < 999) + sBerryBlenderData->scores[i][BLENDER_SCORE_MISS]++; + } + if (gRecvCmds[i][2] == 0x2345 || gRecvCmds[2][i] == 0x4523 || gRecvCmds[2][i] == 0x5432) // could be a bug, 2 and i are reversed + { + if (sBerryBlenderData->field_4C > 1500) + m4aMPlayTempoControl(&gMPlay_BGM, ((sBerryBlenderData->field_4C - 750) / 20) + 256); + else + m4aMPlayTempoControl(&gMPlay_BGM, 0x100); + } + } + } + if (gSpecialVar_0x8004 != 0) + { + for (i = 0; i < sBerryBlenderData->playersNo; i++) + { + gRecvCmds[i][0] = 0; + gRecvCmds[i][2] = 0; + } + } +} + +static void sub_8081744(void) +{ + u8 var2; + bool8 A_pressed = FALSE; + u8 playerId = 0; + + if (gReceivedRemoteLinkPlayers != 0) + playerId = GetMultiplayerId(); + + var2 = sBerryBlenderData->field_96[playerId]; + + if (sBerryBlenderData->gameEndState == 0) + { + if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_L_EQUALS_A && gMain.newKeys & A_BUTTON) + { + if ((gMain.heldKeysRaw & (A_BUTTON | L_BUTTON)) != (A_BUTTON | L_BUTTON)) + A_pressed = TRUE; + } + else if (gMain.newKeys & A_BUTTON) + { + A_pressed = TRUE; + } + + if (A_pressed) + { + u8 var3; + StartSpriteAnim(&gSprites[sBerryBlenderData->syncArrowSpriteIds[sBerryBlenderData->field_8E[var2]]], var2 + 4); + var3 = sub_8080624(sBerryBlenderData->arrowPos, playerId); + + if (var3 == 2) + gSendCmd[2] = 0x4523; + else if (var3 == 1) + gSendCmd[2] = 0x5432; + else + gSendCmd[2] = 0x2345; + } + } + if (++sBerryBlenderData->field_72 > 5) + { + if (sBerryBlenderData->field_4C > 128) + sBerryBlenderData->field_4C--; + sBerryBlenderData->field_72 = 0; + } + if (gUnknown_020322D5 && gMain.newKeys & L_BUTTON) + sBerryBlenderData->field_123 ^= 1; +} + +static void sub_8081898(void) +{ + sub_8082D28(); + + if (sBerryBlenderData->gameFrameTime < (99 * 60 * 60) + (59 * 60)) // game time can't be longer than 99 minutes and 59 seconds, can't print 3 digits + sBerryBlenderData->gameFrameTime++; + + sub_8081744(); + SetLinkDebugValues((u16)(sBerryBlenderData->field_4C), sBerryBlenderData->field_116); + sub_80814F4(); + sub_8083140(sBerryBlenderData->field_116, 1000); + sub_8083230(sBerryBlenderData->field_4C); + sub_808330C(); + sub_8082AD4(); + if (sBerryBlenderData->gameEndState == 0 && sBerryBlenderData->field_118 >= 1000) + { + sBerryBlenderData->field_116 = 1000; + sBerryBlenderData->gameEndState = 1; + SetMainCallback2(CB2_HandleBlenderEndGame); + } + + Blender_DummiedOutFunc(sBerryBlenderData->bg_X, sBerryBlenderData->bg_Y); + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + RunTextPrinters(); + UpdatePaletteFade(); +} + +static void Blender_DummiedOutFunc(s16 a0, s16 a1) +{ + +} + +static bool8 sub_8081964(struct BlenderBerry* berries, u8 index1, u8 index2) +{ + if (berries[index1].itemId != berries[index2].itemId + || (StringCompare(berries[index1].name, berries[index2].name) == 0 + && (berries[index1].flavors[FLAVOR_SPICY] == berries[index2].flavors[FLAVOR_SPICY] + && berries[index1].flavors[FLAVOR_DRY] == berries[index2].flavors[FLAVOR_DRY] + && berries[index1].flavors[FLAVOR_SWEET] == berries[index2].flavors[FLAVOR_SWEET] + && berries[index1].flavors[FLAVOR_BITTER] == berries[index2].flavors[FLAVOR_BITTER] + && berries[index1].flavors[FLAVOR_SOUR] == berries[index2].flavors[FLAVOR_SOUR] + && berries[index1].smoothness == berries[index2].smoothness))) + return TRUE; + else + return FALSE; +} + +static u32 Blender_GetPokeblockColor(struct BlenderBerry* berries, s16* a1, u8 playersNo, u8 a3) +{ + s16 vars[6]; + s32 i; + s32 r6; + u8 r2; + + for (i = 0; i < 6; i++) + vars[i] = a1[i]; + + r6 = 0; + for (i = 0; i < 5; i++) + { + if (vars[i] == 0) + r6++; + } + if (r6 == 5 || a3 > 3) + return 12; + for (i = 0; i < playersNo; i++) + { + for (r6 = 0; r6 < playersNo; r6++) + { + if (berries[i].itemId == berries[r6].itemId && i != r6 + && (berries[i].itemId != ITEM_ENIGMA_BERRY || sub_8081964(berries, i, r6))) + return 12; + } + } + r2 = 0; + for (r2 = 0, i = 0; i < 5; i++) + { + if (vars[i] > 0) + r2++; + } + if (r2 > 3) + return 13; + if (r2 == 3) + return 11; + for (i = 0; i < 5; i++) + { + if (vars[i] > 50) + return 14; + } + if (r2 == 1 && vars[0] > 0) + return 1; + if (r2 == 1 && vars[1] > 0) + return 2; + if (r2 == 1 && vars[2] > 0) + return 3; + if (r2 == 1 && vars[3] > 0) + return 4; + if (r2 == 1 && vars[4] > 0) + return 5; + if (r2 == 2) + { + s32 var = 0; + for (i = 0; i < 5; i++) + { + if (vars[i] > 0) + sUnknown_03000DF8[var++] = i; + } + if (vars[sUnknown_03000DF8[0]] >= vars[sUnknown_03000DF8[1]]) + { + if (sUnknown_03000DF8[0] == 0) + return (sUnknown_03000DF8[1] << 16) | 6; + if (sUnknown_03000DF8[0] == 1) + return (sUnknown_03000DF8[1] << 16) | 7; + if (sUnknown_03000DF8[0] == 2) + return (sUnknown_03000DF8[1] << 16) | 8; + if (sUnknown_03000DF8[0] == 3) + return (sUnknown_03000DF8[1] << 16) | 9; + if (sUnknown_03000DF8[0] == 4) + return (sUnknown_03000DF8[1] << 16) | 10; + } + else + { + if (sUnknown_03000DF8[1] == 0) + return (sUnknown_03000DF8[0] << 16) | 6; + if (sUnknown_03000DF8[1] == 1) + return (sUnknown_03000DF8[0] << 16) | 7; + if (sUnknown_03000DF8[1] == 2) + return (sUnknown_03000DF8[0] << 16) | 8; + if (sUnknown_03000DF8[1] == 3) + return (sUnknown_03000DF8[0] << 16) | 9; + if (sUnknown_03000DF8[1] == 4) + return (sUnknown_03000DF8[0] << 16) | 10; + } + } + return 0; +} + +static void sub_8081BB0(s16 value) +{ + sUnknown_03000E04 = value; +} + +static s16 sub_8081BBC(void) +{ + return sUnknown_03000E04; +} + +static void sub_8081BC8(s16 value) +{ + sUnknown_03000E06 = value; +} + +static s16 sub_8081BD4(void) +{ + return sUnknown_03000E06; +} + +static void Blender_CalculatePokeblock(struct BlenderBerry *berries, struct Pokeblock *pokeblock, u8 playersNo, u8 *flavors, u16 maxRPM) +{ + s32 i, j; + s32 multiuseVar, var2; + u8 var3; + + for (i = 0; i < 6; i++) + sUnknown_03000DE8[i] = 0; + + for (i = 0; i < playersNo; i++) + { + for (j = 0; j < 6; j++) + sUnknown_03000DE8[j] += berries[i].flavors[j]; + } + + multiuseVar = sUnknown_03000DE8[0]; + sUnknown_03000DE8[0] -= sUnknown_03000DE8[1]; + sUnknown_03000DE8[1] -= sUnknown_03000DE8[2]; + sUnknown_03000DE8[2] -= sUnknown_03000DE8[3]; + sUnknown_03000DE8[3] -= sUnknown_03000DE8[4]; + sUnknown_03000DE8[4] -= multiuseVar; + + multiuseVar = 0; + for (i = 0; i < 5; i++) + { + if (sUnknown_03000DE8[i] < 0) + { + sUnknown_03000DE8[i] = 0; + multiuseVar++; + } + } + var3 = multiuseVar; + for (i = 0; i < 5; i++) + { + if (sUnknown_03000DE8[i] > 0) + { + if (sUnknown_03000DE8[i] < multiuseVar) + sUnknown_03000DE8[i] = 0; + else + sUnknown_03000DE8[i] -= multiuseVar; + } + } + for (i = 0; i < 5; i++) + { + sUnknown_020322A8[i] = sUnknown_03000DE8[i]; + } + + multiuseVar = maxRPM / 333 + 100; + sUnknown_020322D0 = multiuseVar; + + for (i = 0; i < 5; i++) + { + s32 r4; + s32 r5 = sUnknown_03000DE8[i]; + r5 = (r5 * multiuseVar) / 10; + r4 = r5 % 10; + r5 /= 10; + if (r4 > 4) + r5++; + sUnknown_03000DE8[i] = r5; + } + for (i = 0; i < 5; i++) + { + sUnknown_020322BC[i] = sUnknown_03000DE8[i]; + } + + pokeblock->color = Blender_GetPokeblockColor(berries, &sUnknown_03000DE8[0], playersNo, var3); + sUnknown_03000DE8[5] = (sUnknown_03000DE8[5] / playersNo) - playersNo; + + if (sUnknown_03000DE8[5] < 0) + sUnknown_03000DE8[5] = 0; + + if (pokeblock->color == 12) + { + multiuseVar = Random() % 10; + for (i = 0; i < 5; i++) + { + if ((sUnknown_08339CC8[multiuseVar] >> i) & 1) + sUnknown_03000DE8[i] = 2; + else + sUnknown_03000DE8[i] = 0; + } + } + + for (i = 0; i < 6; i++) + { + if (sUnknown_03000DE8[i] > 255) + sUnknown_03000DE8[i] = 255; + } + + pokeblock->spicy = sUnknown_03000DE8[0]; + pokeblock->dry = sUnknown_03000DE8[1]; + pokeblock->sweet = sUnknown_03000DE8[2]; + pokeblock->bitter = sUnknown_03000DE8[3]; + pokeblock->sour = sUnknown_03000DE8[4]; + pokeblock->feel = sUnknown_03000DE8[5]; + + for (i = 0; i < 6; i++) + { + flavors[i] = sUnknown_03000DE8[i]; + } +} + +static void BlenderDebug_CalculatePokeblock(struct BlenderBerry* berries, struct Pokeblock* pokeblock, u8 playersNo, u8* flavors, u16 a4) +{ + Blender_CalculatePokeblock(berries, pokeblock, playersNo, flavors, a4); +} + +static void sub_8081E20(void) +{ + u32 frames = (u16)(sBerryBlenderData->gameFrameTime); + u16 max_RPM = sBerryBlenderData->max_RPM; + s16 var = 0; + + if (frames < 900) + var = 5; + else if ((u16)(frames - 900) < 600) + var = 4; + else if ((u16)(frames - 1500) < 600) + var = 3; + else if ((u16)(frames - 2100) < 900) + var = 2; + else if ((u16)(frames - 3300) < 300) + var = 1; + + sub_8081BC8(var); + + var = 0; + if (max_RPM <= 64) + { + if (max_RPM >= 50 && max_RPM < 100) + var = -1; + else if (max_RPM >= 100 && max_RPM < 150) + var = -2; + else if (max_RPM >= 150 && max_RPM < 200) + var = -3; + else if (max_RPM >= 200 && max_RPM < 250) + var = -4; + else if (max_RPM >= 250 && max_RPM < 300) + var = -5; + else if (max_RPM >= 350 && max_RPM < 400) + var = -6; + else if (max_RPM >= 400 && max_RPM < 450) + var = -7; + else if (max_RPM >= 500 && max_RPM < 550) + var = -8; + else if (max_RPM >= 550 && max_RPM < 600) + var = -9; + else if (max_RPM >= 600) + var = -10; + } + + sub_8081BB0(var); +} + +static void sub_8081F94(u16 *a0) +{ + if (gReceivedRemoteLinkPlayers != 0 && gLinkVSyncDisabled) + *a0 = 0x2F00; + else + *a0 = 0x2FFF; +} + +static void CB2_HandleBlenderEndGame(void) +{ + u8 i, j; + + if (sBerryBlenderData->gameEndState < 3) + sub_8082D28(); + + GetMultiplayerId(); // unused return value + + switch (sBerryBlenderData->gameEndState) + { + case 1: + m4aMPlayTempoControl(&gMPlay_BGM, 256); + for (i = 0; i < gSpecialVar_0x8004; i++) + { + DestroyTask(sBerryBlenderData->field_120[i]); + } + sBerryBlenderData->gameEndState++; + break; + case 2: + sBerryBlenderData->field_4C -= 32; + if (sBerryBlenderData->field_4C <= 0) + { + sub_8009F8C(); + sBerryBlenderData->field_4C = 0; + + if (gReceivedRemoteLinkPlayers != 0) + sBerryBlenderData->gameEndState++; + else + sBerryBlenderData->gameEndState = 5; + + sBerryBlenderData->mainState = 0; + m4aMPlayStop(&gMPlay_SE2); + } + Blender_ControlHitPitch(); + break; + case 3: + if (GetMultiplayerId() != 0) + { + sBerryBlenderData->gameEndState++; + } + else if (sub_800A520()) + { + if (gReceivedRemoteLinkPlayers != 0 && gLinkVSyncDisabled) + { + sBerryBlenderData->gameBlock.timeRPM.time = sBerryBlenderData->gameFrameTime; + sBerryBlenderData->gameBlock.timeRPM.max_RPM = sBerryBlenderData->max_RPM; + + for (i = 0; i < BLENDER_MAX_PLAYERS; i++) + { + for (j = 0; j < BLENDER_SCORES_NO; j++) + sBerryBlenderData->gameBlock.scores[i][j] = sBerryBlenderData->scores[i][j]; + } + + if (SendBlock(0, &sBerryBlenderData->gameBlock, sizeof(sBerryBlenderData->gameBlock))) + sBerryBlenderData->gameEndState++; + } + else + { + sBerryBlenderData->smallBlock.time = sBerryBlenderData->gameFrameTime; + sBerryBlenderData->smallBlock.max_RPM = sBerryBlenderData->max_RPM; + if (SendBlock(0, &sBerryBlenderData->smallBlock, sizeof(sBerryBlenderData->smallBlock) + 32)) + sBerryBlenderData->gameEndState++; + } + } + break; + case 4: + if (GetBlockReceivedStatus()) + { + ResetBlockReceivedFlags(); + sBerryBlenderData->gameEndState++; + + if (gReceivedRemoteLinkPlayers != 0 && gLinkVSyncDisabled) + { + struct BlenderGameBlock *receivedBlock = (struct BlenderGameBlock*)(&gBlockRecvBuffer); + + sBerryBlenderData->max_RPM = receivedBlock->timeRPM.max_RPM; + sBerryBlenderData->gameFrameTime = receivedBlock->timeRPM.time; + + for (i = 0; i < BLENDER_MAX_PLAYERS; i++) + { + for (j = 0; j < BLENDER_SCORES_NO; j++) + sBerryBlenderData->scores[i][j] = receivedBlock->scores[i][j]; + } + } + else + { + struct TimeAndRPM *receivedBlock = (struct TimeAndRPM*)(&gBlockRecvBuffer); + + sBerryBlenderData->max_RPM = receivedBlock->max_RPM; + sBerryBlenderData->gameFrameTime = receivedBlock->time; + } + } + break; + case 5: + if (Blender_PrintBlendingRanking()) + sBerryBlenderData->gameEndState++; + break; + case 6: + if (Blender_PrintBlendingResults()) + { + if (gInGameOpponentsNo == 0) + IncrementGameStat(GAME_STAT_POKEBLOCKS_WITH_FRIENDS); + else + IncrementGameStat(GAME_STAT_POKEBLOCKS); + + sBerryBlenderData->gameEndState++; + } + break; + case 7: + if (Blender_PrintText(&sBerryBlenderData->textState, sText_WouldLikeToBlendAnotherBerry, GetPlayerTextSpeed())) + sBerryBlenderData->gameEndState++; + break; + case 9: + sBerryBlenderData->yesNoAnswer = 0; + CreateYesNoMenu(&sBlender_YesNoWindowTemplate, 1, 0xD, 0); + sBerryBlenderData->gameEndState++; + break; + case 10: + switch (ProcessMenuInputNoWrap_()) + { + case 1: + case -1: + sBerryBlenderData->yesNoAnswer = 1; + sBerryBlenderData->gameEndState++; + for (i = 0; i <BLENDER_MAX_PLAYERS; i++) + { + if (sBerryBlenderData->field_8E[i] != 0xFF) + { + PutWindowTilemap(i); + CopyWindowToVram(i, 3); + } + } + break; + case 0: + sBerryBlenderData->yesNoAnswer = 0; + sBerryBlenderData->gameEndState++; + for (i = 0; i <BLENDER_MAX_PLAYERS; i++) + { + if (sBerryBlenderData->field_8E[i] != 0xFF) + { + PutWindowTilemap(i); + CopyWindowToVram(i, 3); + } + } + break; + } + break; + case 11: + sub_8081F94(&gSendCmd[0]); + if (sBerryBlenderData->yesNoAnswer == 0) + { + if (IsBagPocketNonEmpty(BAG_BERRIES) == FALSE) // no berries + { + sBerryBlenderData->playAgainState = CANT_PLAY_NO_BERRIES; + gSendCmd[1] = 0x9999; + } + else if (GetFirstFreePokeblockSlot() == -1) // no space for pokeblocks + { + sBerryBlenderData->playAgainState = CANT_PLAY_NO_PKBLCK_SPACE; + gSendCmd[1] = 0xAAAA; + } + else + { + sBerryBlenderData->playAgainState = PLAY_AGAIN_OK; + gSendCmd[1] = 0x7779; + } + sBerryBlenderData->gameEndState++; + } + else + { + sBerryBlenderData->playAgainState = DONT_PLAY_AGAIN; + gSendCmd[1] = 0x8888; + sBerryBlenderData->gameEndState++; + } + break; + case 12: + if (gInGameOpponentsNo) + { + SetMainCallback2(CB2_HandlePlayerPlayAgainChoice); + sBerryBlenderData->gameEndState = 0; + sBerryBlenderData->mainState = 0; + } + else + { + sBerryBlenderData->gameEndState++; + } + break; + case 8: + sBerryBlenderData->gameEndState++; + break; + case 13: + if (Blender_PrintText(&sBerryBlenderData->textState, sText_CommunicationStandby, GetPlayerTextSpeed())) + { + SetMainCallback2(CB2_HandlePlayerLinkPlayAgainChoice); + sBerryBlenderData->gameEndState = 0; + sBerryBlenderData->mainState = 0; + } + break; + } + + sub_808330C(); + sub_8083230(sBerryBlenderData->field_4C); + sub_8082AD4(); + Blender_DummiedOutFunc(sBerryBlenderData->bg_X, sBerryBlenderData->bg_Y); + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + RunTextPrinters(); + UpdatePaletteFade(); +} + +static bool8 LinkPlayAgainHandleSaving(void) +{ + switch (sBerryBlenderData->field_1A0) + { + case 0: + sub_800ADF8(); + sBerryBlenderData->field_1A0 = 1; + sBerryBlenderData->framesToWait = 0; + break; + case 1: + if (sub_800A520()) + { + sBerryBlenderData->field_1A0++; + gSoftResetDisabled = TRUE; + } + break; + case 2: + sub_8153430(); + sBerryBlenderData->field_1A0++; + sBerryBlenderData->framesToWait = 0; + break; + case 3: + if (++sBerryBlenderData->framesToWait == 10) + { + sub_800ADF8(); + sBerryBlenderData->field_1A0++; + } + break; + case 4: + if (sub_800A520()) + { + if (sub_8153474()) + { + sBerryBlenderData->field_1A0 = 5; + } + else + { + sBerryBlenderData->framesToWait = 0; + sBerryBlenderData->field_1A0 = 3; + } + } + break; + case 5: + sBerryBlenderData->field_1A0++; + sBerryBlenderData->framesToWait = 0; + break; + case 6: + if (++sBerryBlenderData->framesToWait > 5) + { + gSoftResetDisabled = FALSE; + return TRUE; + } + break; + } + + return FALSE; +} + +static void CB2_HandlePlayerLinkPlayAgainChoice(void) +{ + switch (sBerryBlenderData->gameEndState) + { + case 0: + if (sBerryBlenderData->field_64[0] == 0x2222) + { + sBerryBlenderData->gameEndState = 5; + } + else if (sBerryBlenderData->field_64[0] == 0x1111) + { + if (sBerryBlenderData->field_6C == 0x9999) + sBerryBlenderData->gameEndState = 2; + else if (sBerryBlenderData->field_6C == 0xAAAA) + sBerryBlenderData->gameEndState = 1; + else + sBerryBlenderData->gameEndState = 5; + } + break; + case 1: + sBerryBlenderData->gameEndState = 3; + StringCopy(gStringVar4, gLinkPlayers[sBerryBlenderData->field_6E].name); + StringAppend(gStringVar4, sText_ApostropheSPokeblockCaseIsFull); + break; + case 2: + sBerryBlenderData->gameEndState++; + StringCopy(gStringVar4, gLinkPlayers[sBerryBlenderData->field_6E].name); + StringAppend(gStringVar4, sText_HasNoBerriesToPut); + break; + case 3: + if (Blender_PrintText(&sBerryBlenderData->textState, gStringVar4, GetPlayerTextSpeed())) + { + sBerryBlenderData->framesToWait = 0; + sBerryBlenderData->gameEndState++; + } + break; + case 4: + if (++sBerryBlenderData->framesToWait > 60) + sBerryBlenderData->gameEndState = 5; + break; + case 5: + Blender_PrintText(&sBerryBlenderData->textState, gText_SavingDontTurnOff2, 0); + sub_800ADF8(); + sBerryBlenderData->gameEndState++; + break; + case 6: + if (sub_800A520()) + { + sBerryBlenderData->framesToWait = 0; + sBerryBlenderData->gameEndState++; + sBerryBlenderData->field_1A0 = 0; + } + break; + case 7: + if (LinkPlayAgainHandleSaving()) + { + PlaySE(SE_SAVE); + sBerryBlenderData->gameEndState++; + } + break; + case 8: + sBerryBlenderData->gameEndState++; + sub_800ADF8(); + break; + case 9: + if (sub_800A520()) + { + BeginNormalPaletteFade(-1, 0, 0, 0x10, 0); + sBerryBlenderData->gameEndState++; + } + break; + case 10: + if (!gPaletteFade.active) + { + if (sBerryBlenderData->field_64[0] == 0x2222) + { + FreeAllWindowBuffers(); + UnsetBgTilemapBuffer(2); + UnsetBgTilemapBuffer(1); + FREE_AND_SET_NULL(sBerryBlenderData); + SetMainCallback2(DoBerryBlending); + } + else + { + sBerryBlenderData->framesToWait = 0; + sBerryBlenderData->gameEndState++; + } + } + break; + case 11: + if (++sBerryBlenderData->framesToWait > 30) + { + sub_800AC34(); + sBerryBlenderData->gameEndState++; + } + break; + case 12: + if (gReceivedRemoteLinkPlayers == 0) + { + FREE_AND_SET_NULL(sBerryBlenderData); + SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music); + } + break; + } + + sub_8082AD4(); + Blender_DummiedOutFunc(sBerryBlenderData->bg_X, sBerryBlenderData->bg_Y); + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + RunTextPrinters(); + UpdatePaletteFade(); +} + +static void CB2_HandlePlayerPlayAgainChoice(void) +{ + switch (sBerryBlenderData->gameEndState) + { + case 0: + if (sBerryBlenderData->playAgainState == PLAY_AGAIN_OK || sBerryBlenderData->playAgainState == DONT_PLAY_AGAIN) + sBerryBlenderData->gameEndState = 9; + if (sBerryBlenderData->playAgainState == CANT_PLAY_NO_BERRIES) + sBerryBlenderData->gameEndState = 2; + if (sBerryBlenderData->playAgainState == CANT_PLAY_NO_PKBLCK_SPACE) + sBerryBlenderData->gameEndState = 1; + break; + case 1: + sBerryBlenderData->gameEndState = 3; + sBerryBlenderData->textState = 0; + StringCopy(gStringVar4, sText_YourPokeblockCaseIsFull); + break; + case 2: + sBerryBlenderData->gameEndState++; + sBerryBlenderData->textState = 0; + StringCopy(gStringVar4, sText_RunOutOfBerriesForBlending); + break; + case 3: + if (Blender_PrintText(&sBerryBlenderData->textState, gStringVar4, GetPlayerTextSpeed())) + sBerryBlenderData->gameEndState = 9; + break; + case 9: + BeginFastPaletteFade(3); + sBerryBlenderData->gameEndState++; + break; + case 10: + if (!gPaletteFade.active) + { + if (sBerryBlenderData->playAgainState == PLAY_AGAIN_OK) + SetMainCallback2(DoBerryBlending); + else + SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music); + + FreeAllWindowBuffers(); + UnsetBgTilemapBuffer(2); + UnsetBgTilemapBuffer(1); + FREE_AND_SET_NULL(sBerryBlenderData); + } + break; + } + + sub_8082AD4(); + Blender_DummiedOutFunc(sBerryBlenderData->bg_X, sBerryBlenderData->bg_Y); + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + RunTextPrinters(); + UpdatePaletteFade(); +} + +static void sub_8082AD4(void) +{ + if (gReceivedRemoteLinkPlayers) + { + if (sub_80814B0(gRecvCmds[0][0], 0x2FFF, 0x2F00)) + { + if (gRecvCmds[0][1] == 0x1111) + { + switch (gRecvCmds[0][2]) + { + case 0x8888: + sBerryBlenderData->field_6C = 0x8888; + sBerryBlenderData->field_6E = gRecvCmds[0][3]; + break; + case 0x9999: + sBerryBlenderData->field_6C = 0x9999; + sBerryBlenderData->field_6E = gRecvCmds[0][3]; + break; + case 0xAAAA: + sBerryBlenderData->field_6C = 0xAAAA; + sBerryBlenderData->field_6E = gRecvCmds[0][3]; + break; + } + + sBerryBlenderData->field_64[0] = 0x1111; + } + else if (gRecvCmds[0][1] == 0x2222) + { + sBerryBlenderData->field_64[0] = 0x2222; + } + } + if (GetMultiplayerId() == 0 && sBerryBlenderData->field_64[0] != 0x1111 && sBerryBlenderData->field_64[0] != 0x2222) + { + u8 i; + for (i = 0; i < GetLinkPlayerCount(); i++) + { + if (sub_80814B0(gRecvCmds[i][0], 0x2FFF, 0x2F00)) + { + switch (gRecvCmds[i][1]) + { + case 0x8888: + sBerryBlenderData->field_64[i] = 0x8888; + break; + case 0x7779: + sBerryBlenderData->field_64[i] = 0x7779; + break; + case 0x9999: + sBerryBlenderData->field_64[i] = 0x9999; + break; + case 0xAAAA: + sBerryBlenderData->field_64[i] = 0xAAAA; + break; + } + } + } + for (i = 0; i < GetLinkPlayerCount(); i++) + { + if (sBerryBlenderData->field_64[i] == 0) + break; + } + if (i == GetLinkPlayerCount()) + { + for (i = 0; i < GetLinkPlayerCount(); i++) + { + if (sBerryBlenderData->field_64[i] != 0x7779) + break; + } + sub_8081F94(&gSendCmd[0]); + if (i == GetLinkPlayerCount()) + { + gSendCmd[1] = 0x2222; + } + else + { + gSendCmd[1] = 0x1111; + gSendCmd[2] = sBerryBlenderData->field_64[i]; + gSendCmd[3] = i; + } + } + } + } +} + +static void sub_8082CB4(struct BgAffineSrcData *dest) +{ + struct BgAffineSrcData affineSrc; + + affineSrc.texX = 0x7800; + affineSrc.texY = 0x5000; + affineSrc.scrX = 0x78 - sBerryBlenderData->bg_X; + affineSrc.scrY = 0x50 - sBerryBlenderData->bg_Y; + affineSrc.sx = sBerryBlenderData->field_11A; + affineSrc.sy = sBerryBlenderData->field_11A; + affineSrc.alpha = sBerryBlenderData->arrowPos; + + *dest = affineSrc; +} + +u16 GetBlenderArrowPosition(void) +{ + return sBerryBlenderData->arrowPos; +} + +static void sub_8082D28(void) +{ + u8 playerId = 0; + + if (gReceivedRemoteLinkPlayers != 0) + playerId = GetMultiplayerId(); + + if (gLinkVSyncDisabled && gReceivedRemoteLinkPlayers != 0) + { + if (playerId == 0) + { + sBerryBlenderData->arrowPos += sBerryBlenderData->field_4C; + gSendCmd[5] = sBerryBlenderData->field_116; + gSendCmd[6] = sBerryBlenderData->arrowPos; + sub_8082CB4(&sBerryBlenderData->bgAffineSrc); + } + else + { + if ((gRecvCmds[0][0] & 0xFF00) == 0x4400) + { + sBerryBlenderData->field_116 = gRecvCmds[0][5]; + sBerryBlenderData->arrowPos = gRecvCmds[0][6]; + sub_8082CB4(&sBerryBlenderData->bgAffineSrc); + } + } + } + else + { + sBerryBlenderData->arrowPos += sBerryBlenderData->field_4C; + sub_8082CB4(&sBerryBlenderData->bgAffineSrc); + } +} + +static void BerryBlender_SetBackgroundsPos(void) +{ + SetGpuReg(REG_OFFSET_BG1HOFS, sBerryBlenderData->bg_X); + SetGpuReg(REG_OFFSET_BG1VOFS, sBerryBlenderData->bg_Y); + + SetGpuReg(REG_OFFSET_BG0HOFS, sBerryBlenderData->bg_X); + SetGpuReg(REG_OFFSET_BG0VOFS, sBerryBlenderData->bg_Y); +} + +static void sub_8082E3C(struct Sprite* sprite) +{ + sprite->data[2] += sprite->data[0]; + sprite->data[3] += sprite->data[1]; + sprite->pos2.x = sprite->data[2] / 8; + sprite->pos2.y = sprite->data[3] / 8; + + if (sprite->animEnded) + DestroySprite(sprite); +} + +static void sub_8082E84(void) +{ + s32 limit = (Random() % 2) + 1; + s32 i; + + for (i = 0; i < limit; i++) + { + u16 rand; + s32 x, y; + u8 spriteId; + + rand = sBerryBlenderData->arrowPos + (Random() % 20); + + x = gSineTable[(rand & 0xFF) + 64] / 4; + y = gSineTable[(rand & 0xFF)] / 4; + + spriteId = CreateSprite(&sUnknown_08339BE0, x + 120, y + 80, 1); + gSprites[spriteId].data[0] = 16 - (Random() % 32); + gSprites[spriteId].data[1] = 16 - (Random() % 32); + + gSprites[spriteId].callback = sub_8082E3C; + } +} + +static void sub_8082F68(struct Sprite* sprite) +{ + sprite->data[0]++; + sprite->pos2.y = -(sprite->data[0] / 3); + + if (sprite->animEnded) + DestroySprite(sprite); +} + +static void sub_8082F9C(struct Sprite* sprite) +{ + sprite->data[0]++; + sprite->pos2.y = -(sprite->data[0] * 2); + + if (sprite->pos2.y < -12) + sprite->pos2.y = -12; + if (sprite->animEnded) + DestroySprite(sprite); +} + +static void Blender_SetBankBerryData(u8 bank, u16 itemId) +{ + sBerryBlenderData->chosenItemId[bank] = itemId; + Blender_CopyBerryData(&sBerryBlenderData->blendedBerries[bank], itemId); +} + +static void sub_8083010(struct Sprite* sprite) +{ + switch (sprite->data[0]) + { + case 0: + sprite->data[1] += 8; + if (sprite->data[1] > 88) + { + sprite->data[1] = 88; + sprite->data[0]++; + PlaySE(SE_KON); + } + break; + case 1: + sprite->data[2] += 1; + if (sprite->data[2] > 20) + { + sprite->data[0]++; + sprite->data[2] = 0; + } + break; + case 2: + sprite->data[1] += 4; + if (sprite->data[1] > 176) + { + if (++sprite->data[3] == 3) + { + DestroySprite(sprite); + CreateSprite(&sUnknown_08339C60, 120, -20, 2); + } + else + { + sprite->data[0] = 0; + sprite->data[1] = -16; + StartSpriteAnim(sprite, sprite->data[3]); + } + } + break; + } + + sprite->pos2.y = sprite->data[1]; +} + +static void sub_80830C0(struct Sprite* sprite) +{ + switch (sprite->data[0]) + { + case 0: + sprite->data[1] += 8; + if (sprite->data[1] > 92) + { + sprite->data[1] = 92; + sprite->data[0]++; + PlaySE(SE_PIN); + } + break; + case 1: + sprite->data[2] += 1; + if (sprite->data[2] > 20) + sprite->data[0]++; + break; + case 2: + sprite->data[1] += 4; + if (sprite->data[1] > 176) + { + sBerryBlenderData->mainState++; + DestroySprite(sprite); + } + break; + } + + sprite->pos2.y = sprite->data[1]; +} + +static void sub_8083140(u16 a0, u16 a1) +{ + if (sBerryBlenderData->field_118 < a0) + { + sBerryBlenderData->field_118 += 2; + sub_8083170(sBerryBlenderData->field_118, a1); + } +} + +static void sub_8083170(u16 a0, u16 a1) +{ + s32 var1, var2, var3, var4; + u16 *vram; + + vram = (u16*)(VRAM + 0x6000); + var1 = (a0 * 64) / a1; + var2 = var1 / 8; + for (var4 = 0; var4 < var2; var4++) + { + vram[11 + var4] = 0x80E9; + vram[43 + var4] = 0x80F9; + } + var3 = var1 % 8; + if (var3 != 0) + { + vram[11 + var4] = var3 + 0x80E1; + vram[43 + var4] = var3 + 0x80F1; + var4++; + } + for (; var4 < 8; var4++) + { + vram[11 + var4] = 0x80E1; + vram[43 + var4] = 0x80F1; + } +} + +static u32 sub_8083210(u16 a0) +{ + return 0x57E40 * a0 / 0x10000; +} + +static void sub_8083230(u16 a0) +{ + u8 i; + u8 palAdders[5]; + + u32 var = sub_8083210(a0); + if (sBerryBlenderData->max_RPM < var) + sBerryBlenderData->max_RPM = var; + for (i = 0; i < 5; i++) + { + palAdders[i] = var % 10; + var /= 10; + } + *((u16*)(VRAM + 0x6458)) = palAdders[4] + 0x8072; + *((u16*)(VRAM + 0x645A)) = palAdders[3] + 0x8072; + *((u16*)(VRAM + 0x645C)) = palAdders[2] + 0x8072; + *((u16*)(VRAM + 0x6460)) = palAdders[1] + 0x8072; + *((u16*)(VRAM + 0x6462)) = palAdders[0] + 0x8072; +} + +static void sub_80832BC(s16* a0, u16 a1) +{ + if (*a0 == 0) + *a0 = (Random() % a1) - (a1 / 2); +} + +static void sub_80832E8(s16* a0) +{ + if (*a0 < 0) + (*a0)++; + if (*a0 > 0) + (*a0)--; +} + +static void sub_808330C(void) +{ + sub_80832E8(&sBerryBlenderData->bg_X); + sub_80832E8(&sBerryBlenderData->bg_Y); +} + +static void sub_8083334(s16* a0, u16 a1) +{ + s32 var; + + if (a1 < 10) + var = 16; + else + var = 8; + + if (*a0 == 0) + { + *a0 = (Random() % var) - (var / 2); + } + else + { + if (*a0 < 0) + (*a0)++; + if (*a0 > 0) + (*a0)--; + } +} + +static bool8 sub_8083380(void) +{ + if (sBerryBlenderData->framesToWait == 0) + { + sBerryBlenderData->bg_X = 0; + sBerryBlenderData->bg_Y = 0; + } + + sBerryBlenderData->framesToWait++; + sub_8083334(&sBerryBlenderData->bg_X, sBerryBlenderData->framesToWait); + sub_8083334(&sBerryBlenderData->bg_Y, sBerryBlenderData->framesToWait); + + if (sBerryBlenderData->framesToWait == 20) + { + sBerryBlenderData->bg_X = 0; + sBerryBlenderData->bg_Y = 0; + return TRUE; + } + + return FALSE; +} + +static void sub_80833F8(struct Sprite* sprite) +{ + sprite->pos2.x = -(sBerryBlenderData->bg_X); + sprite->pos2.y = -(sBerryBlenderData->bg_Y); +} + +static void TryUpdateBerryBlenderRecord(void) +{ + if (gSaveBlock1Ptr->berryBlenderRecords[sBerryBlenderData->playersNo - 2] < sBerryBlenderData->max_RPM) + gSaveBlock1Ptr->berryBlenderRecords[sBerryBlenderData->playersNo - 2] = sBerryBlenderData->max_RPM; +} + +static bool8 Blender_PrintBlendingResults(void) +{ + u16 i; + s32 xPos, yPos; + + struct Pokeblock pokeblock; + u8 flavors[6]; + u8 text[40]; + u16 berryIds[4]; // unused + + switch (sBerryBlenderData->mainState) + { + case 0: + sBerryBlenderData->mainState++; + sBerryBlenderData->framesToWait = 17; + break; + case 1: + sBerryBlenderData->framesToWait -= 10; + if (sBerryBlenderData->framesToWait < 0) + { + sBerryBlenderData->framesToWait = 0; + sBerryBlenderData->mainState++; + } + break; + case 2: + if (++sBerryBlenderData->framesToWait > 20) + { + for (i = 0; i < BLENDER_SCORES_NO; i++) + DestroySprite(&gSprites[sBerryBlenderData->scoreIconIds[i]]); + + sBerryBlenderData->framesToWait = 0; + sBerryBlenderData->mainState++; + } + break; + case 3: + { + u16 minutes, seconds; + u8 *txtPtr; + + xPos = GetStringCenterAlignXOffset(1, sText_BlendingResults, 0xA8); + Blender_AddTextPrinter(5, sText_BlendingResults, xPos, 1, TEXT_SPEED_FF, 0); + + if (sBerryBlenderData->playersNo == 4) + yPos = 17; + else + yPos = 21; + + for (i = 0; i < sBerryBlenderData->playersNo; yPos += 16, i++) + { + u8 place = sBerryBlenderData->playerPlaces[i]; + + ConvertIntToDecimalStringN(sBerryBlenderData->stringVar, i + 1, STR_CONV_MODE_LEFT_ALIGN, 1); + StringAppend(sBerryBlenderData->stringVar, sText_Dot); + StringAppend(sBerryBlenderData->stringVar, gText_Space); + StringAppend(sBerryBlenderData->stringVar, gLinkPlayers[place].name); + Blender_AddTextPrinter(5, sBerryBlenderData->stringVar, 8, yPos, TEXT_SPEED_FF, 3); + + StringCopy(sBerryBlenderData->stringVar, sBerryBlenderData->blendedBerries[place].name); + ConvertInternationalString(sBerryBlenderData->stringVar, gLinkPlayers[place].language); + StringAppend(sBerryBlenderData->stringVar, sText_SpaceBerry); + Blender_AddTextPrinter(5, sBerryBlenderData->stringVar, 0x54, yPos, TEXT_SPEED_FF, 3); + } + + Blender_AddTextPrinter(5, sText_MaximumSpeed, 0, 0x51, TEXT_SPEED_FF, 3); + ConvertIntToDecimalStringN(sBerryBlenderData->stringVar, sBerryBlenderData->max_RPM / 100, STR_CONV_MODE_RIGHT_ALIGN, 3); + StringAppend(sBerryBlenderData->stringVar, sText_Dot); + + ConvertIntToDecimalStringN(text, sBerryBlenderData->max_RPM % 100, STR_CONV_MODE_LEADING_ZEROS, 2); + StringAppend(sBerryBlenderData->stringVar, text); + StringAppend(sBerryBlenderData->stringVar, sText_RPM); + + xPos = GetStringRightAlignXOffset(1, sBerryBlenderData->stringVar, 0xA8); + Blender_AddTextPrinter(5, sBerryBlenderData->stringVar, xPos, 0x51, TEXT_SPEED_FF, 3); + Blender_AddTextPrinter(5, sText_Time, 0, 0x61, TEXT_SPEED_FF, 3); + + seconds = (sBerryBlenderData->gameFrameTime / 60) % 60; + minutes = (sBerryBlenderData->gameFrameTime / (60 * 60)); + + ConvertIntToDecimalStringN(sBerryBlenderData->stringVar, minutes, STR_CONV_MODE_LEADING_ZEROS, 2); + txtPtr = StringAppend(sBerryBlenderData->stringVar, sText_Min); + + ConvertIntToDecimalStringN(txtPtr, seconds, STR_CONV_MODE_LEADING_ZEROS, 2); + StringAppend(sBerryBlenderData->stringVar, sText_Sec); + + xPos = GetStringRightAlignXOffset(1, sBerryBlenderData->stringVar, 0xA8); + Blender_AddTextPrinter(5, sBerryBlenderData->stringVar, xPos, 0x61, TEXT_SPEED_FF, 3); + + sBerryBlenderData->framesToWait = 0; + sBerryBlenderData->mainState++; + + CopyWindowToVram(5, 2); + } + break; + case 4: + if (gMain.newKeys & A_BUTTON) + sBerryBlenderData->mainState++; + break; + case 5: + sub_8198070(5, 1); + + for (i = 0; i < BLENDER_MAX_PLAYERS; i++) + { + if (sBerryBlenderData->chosenItemId[i] != 0) + berryIds[i] = sBerryBlenderData->chosenItemId[i] - FIRST_BERRY_INDEX; + if (sBerryBlenderData->field_8E[i] != 0xFF) + { + PutWindowTilemap(i); + CopyWindowToVram(i, 3); + } + } + + sub_8081E20(); + + Blender_CalculatePokeblock(sBerryBlenderData->blendedBerries, &pokeblock, sBerryBlenderData->playersNo, flavors, sBerryBlenderData->max_RPM); + Blender_PrintMadePokeblockString(&pokeblock, sBerryBlenderData->stringVar); + TryAddContestLinkTvShow(&pokeblock, &sBerryBlenderData->tvBlender); + + CreateTask(sub_8083F3C, 6); + sub_80EECEC(); + + RemoveBagItem(gSpecialVar_ItemId, 1); + AddPokeblock(&pokeblock); + + sBerryBlenderData->textState = 0; + sBerryBlenderData->mainState++; + break; + case 6: + if (Blender_PrintText(&sBerryBlenderData->textState, sBerryBlenderData->stringVar, GetPlayerTextSpeed())) + { + TryUpdateBerryBlenderRecord(); + return TRUE; + } + break; + } + + return FALSE; +} + +static void Blender_PrintMadePokeblockString(struct Pokeblock *pokeblock, u8 *dst) +{ + u8 text[12]; + u8 flavorLvl, feel; + + dst[0] = EOS; + StringCopy(dst, gPokeblockNames[pokeblock->color]); + StringAppend(dst, sText_WasMade); + StringAppend(dst, sText_NewLine); + + flavorLvl = GetHighestPokeblocksFlavorLevel(pokeblock); + feel = GetPokeblocksFeel(pokeblock); + + StringAppend(dst, sText_TheLevelIs); + ConvertIntToDecimalStringN(text, flavorLvl, STR_CONV_MODE_LEFT_ALIGN, 3); + StringAppend(dst, text); + + StringAppend(dst, sText_TheFeelIs); + ConvertIntToDecimalStringN(text, feel, STR_CONV_MODE_LEFT_ALIGN, 3); + StringAppend(dst, text); + + StringAppend(dst, sText_Dot2); + StringAppend(dst, sText_NewParagraph); +} + +static void Blender_SortBasedOnPoints(u8 *places, u8 playersNum, u32 *scores) +{ + s32 i, j; + + for (i = 0; i < playersNum; i++) + { + for (j = 0; j < playersNum; j++) + { + if (scores[places[i]] > scores[places[j]]) + { + u8 temp = places[i]; + places[i] = places[j]; + places[j] = temp; + } + } + } +} + +static void Blender_SortScores(void) +{ + u8 playerId; + u8 i; + u8 places[BLENDER_MAX_PLAYERS]; + u32 points[BLENDER_MAX_PLAYERS]; + + for (i = 0; i < sBerryBlenderData->playersNo; i++) + places[i] = i; + for (i = 0; i < sBerryBlenderData->playersNo; i++) + { + points[i] = 1000000 * sBerryBlenderData->scores[i][BLENDER_SCORE_BEST]; + points[i] += 1000 * sBerryBlenderData->scores[i][BLENDER_SCORE_GOOD]; + points[i] += 1000 - sBerryBlenderData->scores[i][BLENDER_SCORE_MISS]; + } + Blender_SortBasedOnPoints(places, sBerryBlenderData->playersNo, points); + for (i = 0; i < sBerryBlenderData->playersNo; i++) + sBerryBlenderData->playerPlaces[i] = places[i]; + + if (gReceivedRemoteLinkPlayers == 0) + playerId = 0; + else + playerId = GetMultiplayerId(); + + for (i = 0; i < sBerryBlenderData->playersNo; i++) + { + if (sBerryBlenderData->playerPlaces[i] == playerId) + sBerryBlenderData->field_1A4 = i; + } +} + +static bool8 Blender_PrintBlendingRanking(void) +{ + u16 i; + s32 xPos, yPos; + + switch (sBerryBlenderData->mainState) + { + case 0: + sBerryBlenderData->mainState++; + sBerryBlenderData->framesToWait = 255; + break; + case 1: + sBerryBlenderData->framesToWait -= 10; + if (sBerryBlenderData->framesToWait < 0) + { + sBerryBlenderData->framesToWait = 0; + sBerryBlenderData->mainState++; + } + break; + case 2: + if (++sBerryBlenderData->framesToWait > 20) + { + sBerryBlenderData->framesToWait = 0; + sBerryBlenderData->mainState++; + } + break; + case 3: + SetWindowBorderStyle(5, 0, 1, 0xD); + xPos = GetStringCenterAlignXOffset(1, sText_Ranking, 0xA8); + Blender_AddTextPrinter(5, sText_Ranking, xPos, 1, TEXT_SPEED_FF, 0); + + sBerryBlenderData->scoreIconIds[BLENDER_SCORE_BEST] = CreateSprite(&sUnknown_08339B40, 128, 52, 0); + StartSpriteAnim(&gSprites[sBerryBlenderData->scoreIconIds[BLENDER_SCORE_BEST]], 3); + gSprites[sBerryBlenderData->scoreIconIds[BLENDER_SCORE_BEST]].callback = SpriteCallbackDummy; + + sBerryBlenderData->scoreIconIds[BLENDER_SCORE_GOOD] = CreateSprite(&sUnknown_08339B40, 160, 52, 0); + gSprites[sBerryBlenderData->scoreIconIds[BLENDER_SCORE_GOOD]].callback = SpriteCallbackDummy; + + sBerryBlenderData->scoreIconIds[BLENDER_SCORE_MISS] = CreateSprite(&sUnknown_08339B40, 192, 52, 0); + StartSpriteAnim(&gSprites[sBerryBlenderData->scoreIconIds[BLENDER_SCORE_MISS]], 1); + gSprites[sBerryBlenderData->scoreIconIds[BLENDER_SCORE_MISS]].callback = SpriteCallbackDummy; + + Blender_SortScores(); + + for (yPos = 0x29, i = 0; i < sBerryBlenderData->playersNo; yPos += 0x10, i++) + { + u8 place = sBerryBlenderData->playerPlaces[i]; + + ConvertIntToDecimalStringN(sBerryBlenderData->stringVar, i + 1, STR_CONV_MODE_LEFT_ALIGN, 1); + StringAppend(sBerryBlenderData->stringVar, sText_Dot); + StringAppend(sBerryBlenderData->stringVar, gText_Space); + StringAppend(sBerryBlenderData->stringVar, gLinkPlayers[place].name); + Blender_AddTextPrinter(5, sBerryBlenderData->stringVar, 0, yPos, TEXT_SPEED_FF, 3); + + ConvertIntToDecimalStringN(sBerryBlenderData->stringVar, sBerryBlenderData->scores[place][BLENDER_SCORE_BEST], STR_CONV_MODE_RIGHT_ALIGN, 3); + Blender_AddTextPrinter(5, sBerryBlenderData->stringVar, 0x4E, yPos, TEXT_SPEED_FF, 3); + + ConvertIntToDecimalStringN(sBerryBlenderData->stringVar, sBerryBlenderData->scores[place][BLENDER_SCORE_GOOD], STR_CONV_MODE_RIGHT_ALIGN, 3); + Blender_AddTextPrinter(5, sBerryBlenderData->stringVar, 0x6E, yPos, TEXT_SPEED_FF, 3); + + ConvertIntToDecimalStringN(sBerryBlenderData->stringVar, sBerryBlenderData->scores[place][BLENDER_SCORE_MISS], STR_CONV_MODE_RIGHT_ALIGN, 3); + Blender_AddTextPrinter(5, sBerryBlenderData->stringVar, 0x8E, yPos, TEXT_SPEED_FF, 3); + } + + PutWindowTilemap(5); + CopyWindowToVram(5, 3); + + sBerryBlenderData->framesToWait = 0; + sBerryBlenderData->mainState++; + break; + case 4: + if (++sBerryBlenderData->framesToWait > 20) + sBerryBlenderData->mainState++; + break; + case 5: + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + sBerryBlenderData->mainState++; + } + break; + case 6: + sBerryBlenderData->mainState = 0; + return TRUE; + } + + return FALSE; +} + +void ShowBerryBlenderRecordWindow(void) +{ + s32 i; + s32 xPos, yPos; + struct WindowTemplate winTemplate; + u8 text[32]; + + winTemplate = sBlenderRecordWindowTemplate; + gResultsWindowId = AddWindow(&winTemplate); + sub_81973FC(gResultsWindowId, 0); + FillWindowPixelBuffer(gResultsWindowId, 0x11); + + xPos = GetStringCenterAlignXOffset(1, gText_BlenderMaxSpeedRecord, 0x90); + PrintTextOnWindow(gResultsWindowId, 1, gText_BlenderMaxSpeedRecord, xPos, 1, 0, NULL); + PrintTextOnWindow(gResultsWindowId, 1, gText_234Players, 4, 0x29, 0, NULL); + + for (i = 0, yPos = 0x29; i < BLENDER_SCORES_NO; i++) + { + u8 *txtPtr; + u32 record; + + record = gSaveBlock1Ptr->berryBlenderRecords[i]; + + txtPtr = ConvertIntToDecimalStringN(text, record / 100, STR_CONV_MODE_RIGHT_ALIGN, 3); + txtPtr = StringAppend(txtPtr, sText_Dot); + txtPtr = ConvertIntToDecimalStringN(txtPtr, record % 100, STR_CONV_MODE_LEADING_ZEROS, 2); + txtPtr = StringAppend(txtPtr, sText_RPM); + + xPos = GetStringRightAlignXOffset(1, text, 0x8C); + PrintTextOnWindow(gResultsWindowId, 1, text, xPos, yPos + (i * 16), 0, NULL); + } + + PutWindowTilemap(gResultsWindowId); + CopyWindowToVram(gResultsWindowId, 3); +} + +static void sub_8083F3C(u8 taskId) +{ + if (gTasks[taskId].data[0] == 0) + { + PlayFanfare(BGM_FANFA1); + gTasks[taskId].data[0]++; + } + if (IsFanfareTaskInactive()) + { + PlayBGM(sBerryBlenderData->field_154); + DestroyTask(taskId); + } +} + +static bool32 TryAddContestLinkTvShow(struct Pokeblock *pokeblock, struct TvBlenderStruct *tvBlender) +{ + u8 flavorLevel = GetHighestPokeblocksFlavorLevel(pokeblock); + u16 sheen = (flavorLevel * 10) / GetPokeblocksFeel(pokeblock); + + tvBlender->pokeblockSheen = sheen; + tvBlender->pokeblockColor = pokeblock->color; + tvBlender->name[0] = EOS; + + if (gReceivedRemoteLinkPlayers != 0) + { + if (sBerryBlenderData->field_1A4 == 0 && sheen > 20) + { + StringCopy(tvBlender->name, gLinkPlayers[sBerryBlenderData->playerPlaces[sBerryBlenderData->playersNo - 1]].name); + tvBlender->pokeblockFlavor = GetPokeblocksFlavor(pokeblock); + if (Put3CheersForPokeblocksOnTheAir(tvBlender->name, tvBlender->pokeblockFlavor, + tvBlender->pokeblockColor, tvBlender->pokeblockSheen, + gLinkPlayers[sBerryBlenderData->playerPlaces[sBerryBlenderData->playersNo - 1]].language)) + { + return TRUE; + } + + return FALSE; + } + else if (sBerryBlenderData->field_1A4 == sBerryBlenderData->playersNo - 1 && sheen <= 20) + { + StringCopy(tvBlender->name, gLinkPlayers[sBerryBlenderData->playerPlaces[0]].name); + tvBlender->pokeblockFlavor = GetPokeblocksFlavor(pokeblock); + if (Put3CheersForPokeblocksOnTheAir(tvBlender->name, tvBlender->pokeblockFlavor, + tvBlender->pokeblockColor, tvBlender->pokeblockSheen, + gLinkPlayers[sBerryBlenderData->playerPlaces[0]].language)) + { + return TRUE; + } + + return FALSE; + } + } + + return FALSE; +} + +static void Blender_AddTextPrinter(u8 windowId, const u8 *string, u8 x, u8 y, s32 speed, s32 caseId) +{ + struct TextColor txtColor; + u32 letterSpacing = 0; + + switch (caseId) + { + case 0: + case 3: + txtColor.fgColor = 1; + txtColor.bgColor = 2; + txtColor.shadowColor = 3; + break; + case 1: + txtColor.fgColor = 0; + txtColor.bgColor = 2; + txtColor.shadowColor = 3; + break; + case 2: + txtColor.fgColor = 0; + txtColor.bgColor = 4; + txtColor.shadowColor = 5; + break; + } + + if (caseId != 3) + { + FillWindowPixelBuffer(windowId, txtColor.fgColor | (txtColor.fgColor << 4)); + } + + AddTextPrinterParametrized2(windowId, 1, x, y, letterSpacing, 1, &txtColor, speed, string); +} + +static bool32 Blender_PrintText(s16 *textState, const u8 *string, s32 textSpeed) +{ + switch (*textState) + { + case 0: + sub_8197B1C(4, FALSE, 0x14, 0xF); + Blender_AddTextPrinter(4, string, 0, 1, textSpeed, 0); + PutWindowTilemap(4); + CopyWindowToVram(4, 3); + (*textState)++; + break; + case 1: + if (!IsTextPrinterActive(4)) + { + *textState = 0; + return TRUE; + } + break; + } -// .text + return FALSE; +} diff --git a/src/berry_fix_program.c b/src/berry_fix_program.c index eca20af9d..bba39c3eb 100644 --- a/src/berry_fix_program.c +++ b/src/berry_fix_program.c @@ -1,5 +1,3 @@ - -// Includes #include "global.h" #include "gpu_regs.h" #include "multiboot.h" @@ -10,6 +8,7 @@ #include "task.h" #include "unknown_task.h" #include "window.h" +#include "text.h" #include "menu.h" #include "m4a.h" diff --git a/src/braille_puzzles.c b/src/braille_puzzles.c index 85b2bc509..d6924de9f 100755 --- a/src/braille_puzzles.c +++ b/src/braille_puzzles.c @@ -1,12 +1,12 @@ #include "global.h" #include "event_data.h" -#include "songs.h" +#include "constants/songs.h" #include "sound.h" #include "script.h" -#include "species.h" +#include "constants/species.h" #include "task.h" #include "field_effect.h" -#include "flags.h" +#include "constants/flags.h" extern void MapGridSetMetatileIdAt(s32 x, s32 y, u16 metatileId); // fieldmap extern void DrawWholeMapView(); // field_camera diff --git a/src/calculate_base_damage.c b/src/calculate_base_damage.c index 89770b17a..d30599607 100644 --- a/src/calculate_base_damage.c +++ b/src/calculate_base_damage.c @@ -1,14 +1,14 @@ #include "global.h" -#include "abilities.h" +#include "constants/abilities.h" #include "battle.h" -#include "hold_effects.h" +#include "constants/hold_effects.h" #include "event_data.h" #include "item.h" -#include "items.h" +#include "constants/items.h" #include "pokemon.h" -#include "species.h" -#include "moves.h" -#include "battle_move_effects.h" +#include "constants/species.h" +#include "constants/moves.h" +#include "constants/battle_move_effects.h" extern u32 gBattleTypeFlags; extern struct BattlePokemon gBattleMons[4]; diff --git a/src/clear_save_data_screen.c b/src/clear_save_data_screen.c index 3192e0e11..6d6a1545b 100755 --- a/src/clear_save_data_screen.c +++ b/src/clear_save_data_screen.c @@ -1,7 +1,7 @@ #include "global.h" #include "task.h" -#include "menu.h" #include "text.h" +#include "menu.h" #include "sound.h" #include "main.h" #include "save.h" @@ -9,7 +9,7 @@ #include "gpu_regs.h" #include "bg.h" #include "text_window.h" -#include "songs.h" +#include "constants/songs.h" extern u8 gText_ClearAllSaveData[]; extern u8 gText_ClearingData[]; @@ -88,7 +88,7 @@ static void Task_DoClearSaveDataScreenYesNo(u8 taskId) static void Task_ClearSaveDataScreenYesNoChoice(u8 taskId) { - switch(sub_8198C58()) + switch(ProcessMenuInputNoWrap_()) { case 0: FillWindowPixelBuffer(0, 17); diff --git a/src/clock.c b/src/clock.c new file mode 100644 index 000000000..7cea30166 --- /dev/null +++ b/src/clock.c @@ -0,0 +1,93 @@ +#include "global.h" +#include "rom6.h" +#include "event_data.h" +#include "rtc.h" +#include "lottery_corner.h" +#include "dewford_trend.h" +#include "tv.h" +#include "field_screen.h" +#include "berry.h" +#include "main.h" +#include "overworld.h" +#include "wallclock.h" + +// static types + +// static declarations + +static void UpdatePerDay(struct Time *localTime); +static void UpdatePerMinute(struct Time *localTime); + +// rodata + +// text + +static void InitTimeBasedEvents(void) +{ + FlagSet(FLAG_SYS_CLOCK_SET); + RtcCalcLocalTime(); + gSaveBlock2Ptr->lastBerryTreeUpdate = gLocalTime; + VarSet(VAR_DAYS, gLocalTime.days); +} + +void DoTimeBasedEvents(void) +{ + if (FlagGet(FLAG_SYS_CLOCK_SET) && !sub_813B9C0()) + { + RtcCalcLocalTime(); + UpdatePerDay(&gLocalTime); + UpdatePerMinute(&gLocalTime); + } +} + +static void UpdatePerDay(struct Time *localTime) +{ + u16 *days = GetVarPointer(VAR_DAYS); + u16 daysSince; + + if (*days != localTime->days && *days <= localTime->days) + { + daysSince = localTime->days - *days; + ClearUpperFlags(); + UpdateDewfordTrendPerDay(daysSince); + UpdateTVShowsPerDay(daysSince); + UpdateWeatherPerDay(daysSince); + UpdatePartyPokerusTime(daysSince); + UpdateMirageRnd(daysSince); + UpdateBirchState(daysSince); + UpdateFrontierManiac(daysSince); + UpdateFrontierGambler(daysSince); + SetShoalItemFlag(daysSince); + SetRandomLotteryNumber(daysSince); + *days = localTime->days; + } +} + +static void UpdatePerMinute(struct Time *localTime) +{ + struct Time difference; + int minutes; + + CalcTimeDifference(&difference, &gSaveBlock2Ptr->lastBerryTreeUpdate, localTime); + minutes = 24 * 60 * difference.days + 60 * difference.hours + difference.minutes; + if (minutes != 0) + { + if (minutes >= 0) + { + BerryTreeTimeUpdate(minutes); + gSaveBlock2Ptr->lastBerryTreeUpdate = *localTime; + } + } +} + +static void ReturnFromStartWallClock(void) +{ + InitTimeBasedEvents(); + SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music); +} + +void StartWallClock(void) +{ + SetMainCallback2(Cb2_StartWallClock); + gMain.savedCallback = ReturnFromStartWallClock; +} diff --git a/src/coins.c b/src/coins.c index e1694b29c..50c31cac0 100644 --- a/src/coins.c +++ b/src/coins.c @@ -2,8 +2,9 @@ #include "coins.h" #include "text.h" #include "window.h" -#include "text_window.h" +#include "strings.h" #include "string_util.h" +#include "new_menu_helpers.h" #include "menu.h" #include "international_string_util.h" @@ -11,10 +12,6 @@ EWRAM_DATA u8 sCoinsWindowId = 0; -extern void sub_819746C(u8 windowId, bool8 copyToVram); - -extern const u8 gText_Coins[]; - void PrintCoinsString(u32 coinAmount) { u32 xAlign; @@ -53,7 +50,6 @@ void SetCoins(u16 coinAmount) gSaveBlock1Ptr->coins = coinAmount ^ gSaveBlock2Ptr->encryptionKey; } -/* Can't match it lol bool8 GiveCoins(u16 toAdd) { u16 newAmount; @@ -67,10 +63,22 @@ bool8 GiveCoins(u16 toAdd) } else { - newAmount = ownedCoins + toAdd; - if (newAmount > MAX_COINS) - newAmount = MAX_COINS; + ownedCoins += toAdd; + if (ownedCoins > MAX_COINS) + ownedCoins = MAX_COINS; + newAmount = ownedCoins; } SetCoins(newAmount); return TRUE; -}*/ +} + +bool8 TakeCoins(u16 toSub) +{ + u16 ownedCoins = GetCoins(); + if (ownedCoins >= toSub) + { + SetCoins(ownedCoins - toSub); + return TRUE; + } + return FALSE; +} diff --git a/src/daycare.c b/src/daycare.c index 8dd45863a..ce9952531 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -2,14 +2,14 @@ #include "pokemon.h" #include "daycare.h" #include "string_util.h" -#include "species.h" -#include "items.h" +#include "constants/species.h" +#include "constants/items.h" #include "mail.h" #include "pokemon_storage_system.h" #include "event_data.h" -#include "rng.h" +#include "random.h" #include "main.h" -#include "moves.h" +#include "constants/moves.h" #include "egg_hatch.h" #include "text.h" #include "menu.h" diff --git a/src/decompress.c b/src/decompress.c index 9210799ec..8e8827194 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -1,6 +1,6 @@ #include "global.h" #include "decompress.h" -#include "species.h" +#include "constants/species.h" #include "text.h" #include "malloc.h" #include "pokemon.h" @@ -459,10 +459,9 @@ _08034964:\n\ .syntax divided"); } -u32 sub_8034974(void* ptr) +u32 sub_8034974(const u8 *ptr) { - u8* ptr_ = (u8*)(ptr); - return (ptr_[3] << 16) | (ptr_[2] << 8) | (ptr_[1]); + return (ptr[3] << 16) | (ptr[2] << 8) | (ptr[1]); } bool8 LoadCompressedObjectPicUsingHeap(const struct CompressedSpriteSheet* src) diff --git a/src/decoration.c b/src/decoration.c index adcdc583b..987e628c5 100644 --- a/src/decoration.c +++ b/src/decoration.c @@ -1,13 +1,15 @@ #include "global.h" +#include "constants/decorations.h" #include "decompress.h" #include "malloc.h" +#include "text.h" #include "string_util.h" #include "international_string_util.h" #include "script.h" #include "task.h" #include "main.h" #include "palette.h" -#include "songs.h" +#include "constants/songs.h" #include "overworld.h" #include "fieldmap.h" #include "metatile_behavior.h" @@ -31,7 +33,7 @@ #include "tilesets.h" #include "item_icon.h" #include "trader.h" -#include "map_object_constants.h" +#include "constants/map_objects.h" #include "decoration_inventory.h" #include "decoration.h" #include "graphics.h" @@ -1301,7 +1303,7 @@ void sub_8128060(u8 taskId) void ConfigureCameraObjectForPlacingDecoration(struct PlaceDecorationGraphicsDataBuffer *data, u8 decor) { - sDecor_CameraSpriteObjectIdx1 = gSprites[gUnknown_03005DD0.unk4].data0; + sDecor_CameraSpriteObjectIdx1 = gSprites[gUnknown_03005DD0.unk4].data[0]; gUnknown_03005DD0.unk4 = gpu_pal_decompress_alloc_tag_and_upload(data, decor); gSprites[gUnknown_03005DD0.unk4].oam.priority = 1; gSprites[gUnknown_03005DD0.unk4].callback = sub_81292D0; @@ -1382,8 +1384,8 @@ void sub_812826C(u8 taskId) void sub_81283BC(u8 taskId) { gTasks[taskId].data[10] = 0; - gSprites[sDecor_CameraSpriteObjectIdx1].data7 = 1; - gSprites[sDecor_CameraSpriteObjectIdx2].data7 = 1; + gSprites[sDecor_CameraSpriteObjectIdx1].data[7] = 1; + gSprites[sDecor_CameraSpriteObjectIdx2].data[7] = 1; sub_8128DE0(); sub_8128950(taskId); } @@ -1391,8 +1393,8 @@ void sub_81283BC(u8 taskId) void sub_8128414(u8 taskId) { gTasks[taskId].data[10] = 0; - gSprites[sDecor_CameraSpriteObjectIdx1].data7 = 1; - gSprites[sDecor_CameraSpriteObjectIdx2].data7 = 1; + gSprites[sDecor_CameraSpriteObjectIdx1].data[7] = 1; + gSprites[sDecor_CameraSpriteObjectIdx2].data[7] = 1; sub_8128DE0(); StringExpandPlaceholders(gStringVar4, gText_CancelDecorating); DisplayItemMessageOnField(taskId, gStringVar4, sub_8128B80); @@ -1768,8 +1770,8 @@ bool8 sub_8128DB4(void) void sub_8128DE0(void) { sDecorationLastDirectionMoved = 0; - gSprites[sDecor_CameraSpriteObjectIdx1].data2 = 0; - gSprites[sDecor_CameraSpriteObjectIdx1].data3 = 0; + gSprites[sDecor_CameraSpriteObjectIdx1].data[2] = 0; + gSprites[sDecor_CameraSpriteObjectIdx1].data[3] = 0; } void sub_8128E18(u8 taskId) @@ -1777,7 +1779,7 @@ void sub_8128E18(u8 taskId) s16 *data; data = gTasks[taskId].data; - if (!gSprites[sDecor_CameraSpriteObjectIdx1].data4) + if (!gSprites[sDecor_CameraSpriteObjectIdx1].data[4]) { if (data[10] == 1) { @@ -1791,29 +1793,29 @@ void sub_8128E18(u8 taskId) if ((gMain.heldKeys & 0x0F0) == DPAD_UP) { sDecorationLastDirectionMoved = DIR_SOUTH; - gSprites[sDecor_CameraSpriteObjectIdx1].data2 = 0; - gSprites[sDecor_CameraSpriteObjectIdx1].data3 = -2; + gSprites[sDecor_CameraSpriteObjectIdx1].data[2] = 0; + gSprites[sDecor_CameraSpriteObjectIdx1].data[3] = -2; data[1]--; } if ((gMain.heldKeys & 0x0F0) == DPAD_DOWN) { sDecorationLastDirectionMoved = DIR_NORTH; - gSprites[sDecor_CameraSpriteObjectIdx1].data2 = 0; - gSprites[sDecor_CameraSpriteObjectIdx1].data3 = 2; + gSprites[sDecor_CameraSpriteObjectIdx1].data[2] = 0; + gSprites[sDecor_CameraSpriteObjectIdx1].data[3] = 2; data[1]++; } if ((gMain.heldKeys & 0x0F0) == DPAD_LEFT) { sDecorationLastDirectionMoved = DIR_WEST; - gSprites[sDecor_CameraSpriteObjectIdx1].data2 = -2; - gSprites[sDecor_CameraSpriteObjectIdx1].data3 = 0; + gSprites[sDecor_CameraSpriteObjectIdx1].data[2] = -2; + gSprites[sDecor_CameraSpriteObjectIdx1].data[3] = 0; data[0]--; } if ((gMain.heldKeys & 0x0F0) == DPAD_RIGHT) { sDecorationLastDirectionMoved = DIR_EAST; - gSprites[sDecor_CameraSpriteObjectIdx1].data2 = 2; - gSprites[sDecor_CameraSpriteObjectIdx1].data3 = 0; + gSprites[sDecor_CameraSpriteObjectIdx1].data[2] = 2; + gSprites[sDecor_CameraSpriteObjectIdx1].data[3] = 0; data[0]++; } if (!sub_8128DB4() || !sub_8128D10(taskId)) @@ -1823,8 +1825,8 @@ void sub_8128E18(u8 taskId) } if (sDecorationLastDirectionMoved) { - gSprites[sDecor_CameraSpriteObjectIdx1].data4++; - gSprites[sDecor_CameraSpriteObjectIdx1].data4 &= 7; + gSprites[sDecor_CameraSpriteObjectIdx1].data[4]++; + gSprites[sDecor_CameraSpriteObjectIdx1].data[4] &= 7; } if (!data[10]) { @@ -1842,7 +1844,7 @@ void sub_8128E18(u8 taskId) void sub_8128FD8(u8 taskId) { sub_8197434(0, 1); - gSprites[sDecor_CameraSpriteObjectIdx1].data7 = 0; + gSprites[sDecor_CameraSpriteObjectIdx1].data[7] = 0; gTasks[taskId].data[10] = 0; gTasks[taskId].func = sub_8128E18; } @@ -1953,20 +1955,20 @@ void SetDecorSelectionBoxOamAttributes(u8 decorShape) void sub_81292D0(struct Sprite *sprite) { - sprite->data2 = 0; - sprite->data3 = 0; - sprite->data4 = 0; - sprite->data5 = 0; - sprite->data6 = 0; - sprite->data7 = 0; + sprite->data[2] = 0; + sprite->data[3] = 0; + sprite->data[4] = 0; + sprite->data[5] = 0; + sprite->data[6] = 0; + sprite->data[7] = 0; sprite->callback = sub_81292E8; } void sub_81292E8(struct Sprite *sprite) { - if (sprite->data7 == 0) + if (sprite->data[7] == 0) { - if (sprite->data6 < 15) + if (sprite->data[6] < 15) { sprite->invisible = FALSE; } @@ -1974,8 +1976,8 @@ void sub_81292E8(struct Sprite *sprite) { sprite->invisible = TRUE; } - sprite->data6 ++; - sprite->data6 &= 0x1F; + sprite->data[6] ++; + sprite->data[6] &= 0x1F; } else { @@ -2247,7 +2249,7 @@ bool8 sub_81299AC(u8 taskId) void SetUpPuttingAwayDecorationPlayerAvatar(void) { player_get_direction_lower_nybble(); - sDecor_CameraSpriteObjectIdx1 = gSprites[gUnknown_03005DD0.unk4].data0; + sDecor_CameraSpriteObjectIdx1 = gSprites[gUnknown_03005DD0.unk4].data[0]; sub_812A39C(); gUnknown_03005DD0.unk4 = CreateSprite(&gUnknown_085A7404, 0x78, 0x50, 0); if (gSaveBlock2Ptr->playerGender == MALE) @@ -2298,7 +2300,7 @@ void sub_8129ABC(u8 taskId) void sub_8129B34(u8 taskId) { sub_8197434(0, 1); - gSprites[sDecor_CameraSpriteObjectIdx1].data7 = 0; + gSprites[sDecor_CameraSpriteObjectIdx1].data[7] = 0; gSprites[sDecor_CameraSpriteObjectIdx1].invisible = FALSE; gSprites[sDecor_CameraSpriteObjectIdx1].callback = sub_812A36C; gSprites[sDecor_CameraSpriteObjectIdx2].pos1.x = 0x88; @@ -2718,9 +2720,9 @@ void sub_812A334(void) void sub_812A36C(struct Sprite *sprite) { - sprite->data0 ++; - sprite->data0 &= 0x1F; - if (sprite->data0 > 15) + sprite->data[0] ++; + sprite->data[0] &= 0x1F; + if (sprite->data[0] > 15) { sprite->invisible = TRUE; } diff --git a/src/decoration_inventory.c b/src/decoration_inventory.c index 03ab6c00c..308320206 100644 --- a/src/decoration_inventory.c +++ b/src/decoration_inventory.c @@ -1,6 +1,7 @@ // Includes #include "global.h" +#include "constants/decorations.h" #include "decoration.h" #include "decoration_inventory.h" diff --git a/src/egg_hatch.c b/src/egg_hatch.c index a3f7c2ab0..a31eb0520 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -2,7 +2,7 @@ #include "pokemon.h" #include "egg_hatch.h" #include "pokedex.h" -#include "items.h" +#include "constants/items.h" #include "script.h" #include "decompress.h" #include "task.h" @@ -10,20 +10,20 @@ #include "main.h" #include "event_data.h" #include "sound.h" -#include "songs.h" +#include "constants/songs.h" #include "text.h" #include "text_window.h" #include "string_util.h" #include "menu.h" #include "trig.h" -#include "rng.h" +#include "random.h" #include "malloc.h" #include "dma3.h" #include "gpu_regs.h" #include "bg.h" #include "m4a.h" #include "window.h" -#include "abilities.h" +#include "constants/abilities.h" #include "daycare.h" #include "battle.h" // to get rid of later @@ -57,10 +57,8 @@ extern const u32 gUnknown_08331F60[]; // tilemap gameboy circle extern const u8 gText_HatchedFromEgg[]; extern const u8 gText_NickHatchPrompt[]; -extern u8* GetMonNick(struct Pokemon* mon, u8* dst); -extern u8* GetBoxMonNick(struct BoxPokemon* boxMon, u8* dst); extern u8 sav1_map_get_name(void); -extern s8 sub_8198C58(void); +extern s8 ProcessMenuInputNoWrap_(void); extern void TVShowConvertInternationalString(u8* str1, u8* str2, u8); extern void sub_806A068(u16, u8); extern void fade_screen(u8, u8); @@ -75,7 +73,6 @@ extern void play_some_sound(void); extern void copy_decompressed_tile_data_to_vram_autofree(u8 bg_id, const void* src, u16 size, u16 offset, u8 mode); extern void CreateYesNoMenu(const struct WindowTemplate*, u16, u8, u8); extern void DoNamingScreen(u8, const u8*, u16, u8, u32, MainCallback); -extern void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, struct TextColor* colors, s8 speed, u8 *str); extern u16 sub_80D22D0(void); extern u8 CountPartyAliveNonEggMonsExcept(u8); @@ -672,7 +669,7 @@ static void CB2_EggHatch_1(void) } break; case 10: - switch (sub_8198C58()) + switch (ProcessMenuInputNoWrap_()) { case 0: GetMonNick(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar3); @@ -712,16 +709,16 @@ static void CB2_EggHatch_1(void) static void SpriteCB_Egg_0(struct Sprite* sprite) { - if (++sprite->data0 > 20) + if (++sprite->data[0] > 20) { sprite->callback = SpriteCB_Egg_1; - sprite->data0 = 0; + sprite->data[0] = 0; } else { - sprite->data1 = (sprite->data1 + 20) & 0xFF; - sprite->pos2.x = Sin(sprite->data1, 1); - if (sprite->data0 == 15) + sprite->data[1] = (sprite->data[1] + 20) & 0xFF; + sprite->pos2.x = Sin(sprite->data[1], 1); + if (sprite->data[0] == 15) { PlaySE(SE_BOWA); StartSpriteAnim(sprite, 1); @@ -732,19 +729,19 @@ static void SpriteCB_Egg_0(struct Sprite* sprite) static void SpriteCB_Egg_1(struct Sprite* sprite) { - if (++sprite->data2 > 30) + if (++sprite->data[2] > 30) { - if (++sprite->data0 > 20) + if (++sprite->data[0] > 20) { sprite->callback = SpriteCB_Egg_2; - sprite->data0 = 0; - sprite->data2 = 0; + sprite->data[0] = 0; + sprite->data[2] = 0; } else { - sprite->data1 = (sprite->data1 + 20) & 0xFF; - sprite->pos2.x = Sin(sprite->data1, 2); - if (sprite->data0 == 15) + sprite->data[1] = (sprite->data[1] + 20) & 0xFF; + sprite->pos2.x = Sin(sprite->data[1], 2); + if (sprite->data[0] == 15) { PlaySE(SE_BOWA); StartSpriteAnim(sprite, 2); @@ -755,30 +752,30 @@ static void SpriteCB_Egg_1(struct Sprite* sprite) static void SpriteCB_Egg_2(struct Sprite* sprite) { - if (++sprite->data2 > 30) + if (++sprite->data[2] > 30) { - if (++sprite->data0 > 38) + if (++sprite->data[0] > 38) { u16 species; sprite->callback = SpriteCB_Egg_3; - sprite->data0 = 0; + sprite->data[0] = 0; species = GetMonData(&gPlayerParty[sEggHatchData->eggPartyID], MON_DATA_SPECIES); gSprites[sEggHatchData->pokeSpriteID].pos2.x = 0; gSprites[sEggHatchData->pokeSpriteID].pos2.y = 0; } else { - sprite->data1 = (sprite->data1 + 20) & 0xFF; - sprite->pos2.x = Sin(sprite->data1, 2); - if (sprite->data0 == 15) + sprite->data[1] = (sprite->data[1] + 20) & 0xFF; + sprite->pos2.x = Sin(sprite->data[1], 2); + if (sprite->data[0] == 15) { PlaySE(SE_BOWA); StartSpriteAnim(sprite, 2); CreateRandomEggShardSprite(); CreateRandomEggShardSprite(); } - if (sprite->data0 == 30) + if (sprite->data[0] == 30) PlaySE(SE_BOWA); } } @@ -786,60 +783,60 @@ static void SpriteCB_Egg_2(struct Sprite* sprite) static void SpriteCB_Egg_3(struct Sprite* sprite) { - if (++sprite->data0 > 50) + if (++sprite->data[0] > 50) { sprite->callback = SpriteCB_Egg_4; - sprite->data0 = 0; + sprite->data[0] = 0; } } static void SpriteCB_Egg_4(struct Sprite* sprite) { s16 i; - if (sprite->data0 == 0) + if (sprite->data[0] == 0) BeginNormalPaletteFade(-1, -1, 0, 0x10, 0xFFFF); - if (sprite->data0 < 4u) + if (sprite->data[0] < 4u) { for (i = 0; i <= 3; i++) CreateRandomEggShardSprite(); } - sprite->data0++; + sprite->data[0]++; if (!gPaletteFade.active) { PlaySE(SE_TAMAGO); sprite->invisible = 1; sprite->callback = SpriteCB_Egg_5; - sprite->data0 = 0; + sprite->data[0] = 0; } } static void SpriteCB_Egg_5(struct Sprite* sprite) { - if (sprite->data0 == 0) + if (sprite->data[0] == 0) { gSprites[sEggHatchData->pokeSpriteID].invisible = 0; StartSpriteAffineAnim(&gSprites[sEggHatchData->pokeSpriteID], 1); } - if (sprite->data0 == 8) + if (sprite->data[0] == 8) BeginNormalPaletteFade(-1, -1, 0x10, 0, 0xFFFF); - if (sprite->data0 <= 9) + if (sprite->data[0] <= 9) gSprites[sEggHatchData->pokeSpriteID].pos1.y -= 1; - if (sprite->data0 > 40) + if (sprite->data[0] > 40) sprite->callback = SpriteCallbackDummy; - sprite->data0++; + sprite->data[0]++; } static void SpriteCB_EggShard(struct Sprite* sprite) { - sprite->data4 += sprite->data1; - sprite->data5 += sprite->data2; + sprite->data[4] += sprite->data[1]; + sprite->data[5] += sprite->data[2]; - sprite->pos2.x = sprite->data4 / 256; - sprite->pos2.y = sprite->data5 / 256; + sprite->pos2.x = sprite->data[4] / 256; + sprite->pos2.y = sprite->data[5] / 256; - sprite->data2 += sprite->data3; + sprite->data[2] += sprite->data[3]; - if (sprite->pos1.y + sprite->pos2.y > sprite->pos1.y + 20 && sprite->data2 > 0) + if (sprite->pos1.y + sprite->pos2.y > sprite->pos1.y + 20 && sprite->data[2] > 0) DestroySprite(sprite); } @@ -857,9 +854,9 @@ static void CreateRandomEggShardSprite(void) static void CreateEggShardSprite(u8 x, u8 y, s16 data1, s16 data2, s16 data3, u8 spriteAnimIndex) { u8 spriteID = CreateSprite(&sSpriteTemplate_EggShard, x, y, 4); - gSprites[spriteID].data1 = data1; - gSprites[spriteID].data2 = data2; - gSprites[spriteID].data3 = data3; + gSprites[spriteID].data[1] = data1; + gSprites[spriteID].data[2] = data2; + gSprites[spriteID].data[3] = data3; StartSpriteAnim(&gSprites[spriteID], spriteAnimIndex); } diff --git a/src/event_data.c b/src/event_data.c index e3742a147..9f1432f17 100644 --- a/src/event_data.c +++ b/src/event_data.c @@ -44,7 +44,7 @@ void ClearTempFieldEventData(void) FlagClear(FLAG_SYS_ENC_DOWN_ITEM); FlagClear(FLAG_SYS_USE_STRENGTH); FlagClear(FLAG_SYS_CTRL_OBJ_DELETE); - FlagClear(FLAG_SYS_UNKNOWN_880); + FlagClear(FLAG_0x880); } // probably had different flag splits at one point. diff --git a/src/evolution_graphics.c b/src/evolution_graphics.c index eca5d4bdc..8d02eef91 100644 --- a/src/evolution_graphics.c +++ b/src/evolution_graphics.c @@ -2,11 +2,11 @@ #include "evolution_graphics.h" #include "sprite.h" #include "trig.h" -#include "rng.h" +#include "random.h" #include "decompress.h" #include "task.h" #include "sound.h" -#include "songs.h" +#include "constants/songs.h" #include "palette.h" // this file's functions @@ -112,18 +112,18 @@ static void SpriteCB_PreEvoSparkleSet1(struct Sprite* sprite) { u8 matrixNum; - sprite->pos1.y = 88 - (sprite->data7 * sprite->data7) / 80; - sprite->pos2.y = Sin((u8)(sprite->data6), sprite->data5) / 4; - sprite->pos2.x = Cos((u8)(sprite->data6), sprite->data5); - sprite->data6 += 4; - if (sprite->data7 & 1) - sprite->data5--; - sprite->data7++; + sprite->pos1.y = 88 - (sprite->data[7] * sprite->data[7]) / 80; + sprite->pos2.y = Sin((u8)(sprite->data[6]), sprite->data[5]) / 4; + sprite->pos2.x = Cos((u8)(sprite->data[6]), sprite->data[5]); + sprite->data[6] += 4; + if (sprite->data[7] & 1) + sprite->data[5]--; + sprite->data[7]++; if (sprite->pos2.y > 0) sprite->subpriority = 1; else sprite->subpriority = 20; - matrixNum = sprite->data5 / 4 + 20; + matrixNum = sprite->data[5] / 4 + 20; if (matrixNum > 31) matrixNum = 31; sprite->oam.matrixNum = matrixNum; @@ -137,9 +137,9 @@ static void CreatePreEvoSparkleSet1(u8 arg0) u8 spriteID = CreateSprite(&sEvoSparkleSpriteTemplate, 120, 88, 0); if (spriteID != MAX_SPRITES) { - gSprites[spriteID].data5 = 48; - gSprites[spriteID].data6 = arg0; - gSprites[spriteID].data7 = 0; + gSprites[spriteID].data[5] = 48; + gSprites[spriteID].data[6] = arg0; + gSprites[spriteID].data[7] = 0; gSprites[spriteID].oam.affineMode = 1; gSprites[spriteID].oam.matrixNum = 31; gSprites[spriteID].callback = SpriteCB_PreEvoSparkleSet1; @@ -150,11 +150,11 @@ static void SpriteCB_PreEvoSparkleSet2(struct Sprite* sprite) { if (sprite->pos1.y < 88) { - sprite->pos1.y = 8 + (sprite->data7 * sprite->data7) / 5; - sprite->pos2.y = Sin((u8)(sprite->data6), sprite->data5) / 4; - sprite->pos2.x = Cos((u8)(sprite->data6), sprite->data5); - sprite->data5 = 8 + Sin((u8)(sprite->data7 * 4), 40); - sprite->data7++; + sprite->pos1.y = 8 + (sprite->data[7] * sprite->data[7]) / 5; + sprite->pos2.y = Sin((u8)(sprite->data[6]), sprite->data[5]) / 4; + sprite->pos2.x = Cos((u8)(sprite->data[6]), sprite->data[5]); + sprite->data[5] = 8 + Sin((u8)(sprite->data[7] * 4), 40); + sprite->data[7]++; } else DestroySprite(sprite); @@ -165,9 +165,9 @@ static void CreatePreEvoSparkleSet2(u8 arg0) u8 spriteID = CreateSprite(&sEvoSparkleSpriteTemplate, 120, 8, 0); if (spriteID != MAX_SPRITES) { - gSprites[spriteID].data5 = 8; - gSprites[spriteID].data6 = arg0; - gSprites[spriteID].data7 = 0; + gSprites[spriteID].data[5] = 8; + gSprites[spriteID].data[6] = arg0; + gSprites[spriteID].data[7] = 0; gSprites[spriteID].oam.affineMode = 1; gSprites[spriteID].oam.matrixNum = 25; gSprites[spriteID].subpriority = 1; @@ -177,12 +177,12 @@ static void CreatePreEvoSparkleSet2(u8 arg0) static void SpriteCB_PostEvoSparkleSet1(struct Sprite* sprite) { - if (sprite->data5 > 8) + if (sprite->data[5] > 8) { - sprite->pos2.y = Sin((u8)(sprite->data6), sprite->data5); - sprite->pos2.x = Cos((u8)(sprite->data6), sprite->data5); - sprite->data5 -= sprite->data3; - sprite->data6 += 4; + sprite->pos2.y = Sin((u8)(sprite->data[6]), sprite->data[5]); + sprite->pos2.x = Cos((u8)(sprite->data[6]), sprite->data[5]); + sprite->data[5] -= sprite->data[3]; + sprite->data[6] += 4; } else DestroySprite(sprite); @@ -193,10 +193,10 @@ static void CreatePostEvoSparkleSet1(u8 arg0, u8 arg1) u8 spriteID = CreateSprite(&sEvoSparkleSpriteTemplate, 120, 56, 0); if (spriteID != MAX_SPRITES) { - gSprites[spriteID].data3 = arg1; - gSprites[spriteID].data5 = 120; - gSprites[spriteID].data6 = arg0; - gSprites[spriteID].data7 = 0; + gSprites[spriteID].data[3] = arg1; + gSprites[spriteID].data[5] = 120; + gSprites[spriteID].data[6] = arg0; + gSprites[spriteID].data[7] = 0; gSprites[spriteID].oam.affineMode = 1; gSprites[spriteID].oam.matrixNum = 31; gSprites[spriteID].subpriority = 1; @@ -206,29 +206,29 @@ static void CreatePostEvoSparkleSet1(u8 arg0, u8 arg1) static void SpriteCB_PostEvoSparkleSet2(struct Sprite* sprite) { - if (!(sprite->data7 & 3)) + if (!(sprite->data[7] & 3)) sprite->pos1.y++; - if (sprite->data6 < 128) + if (sprite->data[6] < 128) { u8 matrixNum; - sprite->pos2.y = -Sin((u8)(sprite->data6), sprite->data5); - sprite->pos1.x = 120 + (sprite->data3 * sprite->data7) / 3; - sprite->data6++; - matrixNum = 31 - (sprite->data6 * 12 / 128); - if (sprite->data6 > 64) + sprite->pos2.y = -Sin((u8)(sprite->data[6]), sprite->data[5]); + sprite->pos1.x = 120 + (sprite->data[3] * sprite->data[7]) / 3; + sprite->data[6]++; + matrixNum = 31 - (sprite->data[6] * 12 / 128); + if (sprite->data[6] > 64) sprite->subpriority = 1; else { sprite->invisible = 0; sprite->subpriority = 20; - if (sprite->data6 > 112 && sprite->data6 & 1) + if (sprite->data[6] > 112 && sprite->data[6] & 1) sprite->invisible = 1; } if (matrixNum < 20) matrixNum = 20; sprite->oam.matrixNum = matrixNum; - sprite->data7++; + sprite->data[7]++; } else DestroySprite(sprite); @@ -239,9 +239,9 @@ static void CreatePostEvoSparkleSet2(u8 arg0) u8 spriteID = CreateSprite(&sEvoSparkleSpriteTemplate, 120, 56, 0); if (spriteID != MAX_SPRITES) { - gSprites[spriteID].data3 = 3 - (Random() % 7); - gSprites[spriteID].data5 = 48 + (Random() & 0x3F); - gSprites[spriteID].data7 = 0; + gSprites[spriteID].data[3] = 3 - (Random() % 7); + gSprites[spriteID].data[5] = 48 + (Random() & 0x3F); + gSprites[spriteID].data[7] = 0; gSprites[spriteID].oam.affineMode = 1; gSprites[spriteID].oam.matrixNum = 31; gSprites[spriteID].subpriority = 20; diff --git a/src/evolution_scene.c b/src/evolution_scene.c index 68731a14a..2b88fec3a 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -16,11 +16,12 @@ #include "m4a.h" #include "menu.h" #include "pokedex.h" -#include "species.h" +#include "constants/species.h" #include "sound.h" -#include "songs.h" +#include "constants/songs.h" #include "overworld.h" #include "battle_message.h" +#include "battle_string_ids.h" #include "gpu_regs.h" #include "bg.h" #include "link.h" @@ -51,6 +52,7 @@ extern u8 gBattleTerrain; extern struct SpriteTemplate gUnknown_0202499C; extern bool8 gAffineAnimsDisabled; extern u16 gMoveToLearn; +extern const u8 gSpeciesNames[][11]; extern u8 gBattleCommunication[]; #define sEvoCursorPos gBattleCommunication[1] // when learning a new move @@ -771,7 +773,7 @@ static void Task_EvolutionScene(u8 taskID) { BufferMoveToLearnIntoBattleTextBuff2(); PlayFanfare(BGM_FANFA1); - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[3]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNLEARNEDMOVE - BATTLESTRINGS_ID_ADDER]); BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); gTasks[taskID].tLearnsFirstMove = 0x40; // re-used as a counter gTasks[taskID].tState++; @@ -788,7 +790,7 @@ static void Task_EvolutionScene(u8 taskID) if (!IsTextPrinterActive(0) && !IsSEPlaying()) { BufferMoveToLearnIntoBattleTextBuff2(); - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[4]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE1 - BATTLESTRINGS_ID_ADDER]); BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); gTasks[taskID].tLearnMoveState++; } @@ -796,7 +798,7 @@ static void Task_EvolutionScene(u8 taskID) case 1: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[5]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE2 - BATTLESTRINGS_ID_ADDER]); BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); gTasks[taskID].tLearnMoveState++; } @@ -804,7 +806,7 @@ static void Task_EvolutionScene(u8 taskID) case 2: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[6]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE3 - BATTLESTRINGS_ID_ADDER]); BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); gTasks[taskID].tData7 = 5; gTasks[taskID].tData8 = 10; @@ -881,7 +883,7 @@ static void Task_EvolutionScene(u8 taskID) u16 move = GetMonData(mon, var + MON_DATA_MOVE1); if (IsHMMove2(move)) { - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[307]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_HMMOVESCANTBEFORGOTTEN - BATTLESTRINGS_ID_ADDER]); BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); gTasks[taskID].tLearnMoveState = 12; } @@ -897,14 +899,14 @@ static void Task_EvolutionScene(u8 taskID) } break; case 7: - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[207]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_123POOF - BATTLESTRINGS_ID_ADDER]); BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); gTasks[taskID].tLearnMoveState++; break; case 8: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[7]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNFORGOTMOVE - BATTLESTRINGS_ID_ADDER]); BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); gTasks[taskID].tLearnMoveState++; } @@ -912,20 +914,20 @@ static void Task_EvolutionScene(u8 taskID) case 9: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[208]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_ANDELLIPSIS - BATTLESTRINGS_ID_ADDER]); BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); gTasks[taskID].tState = 20; } break; case 10: - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[8]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_STOPLEARNINGMOVE - BATTLESTRINGS_ID_ADDER]); BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); gTasks[taskID].tData7 = 11; gTasks[taskID].tData8 = 0; gTasks[taskID].tLearnMoveState = 3; break; case 11: - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[9]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_DIDNOTLEARNMOVE - BATTLESTRINGS_ID_ADDER]); BattleHandleAddTextPrinter(gDisplayedStringBattle, 0); gTasks[taskID].tState = 15; break; @@ -1116,7 +1118,7 @@ static void Task_TradeEvolutionScene(u8 taskID) { BufferMoveToLearnIntoBattleTextBuff2(); PlayFanfare(BGM_FANFA1); - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[3]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNLEARNEDMOVE - BATTLESTRINGS_ID_ADDER]); sub_807F1A8(0, gDisplayedStringBattle, 1); gTasks[taskID].tLearnsFirstMove = 0x40; // re-used as a counter gTasks[taskID].tState++; @@ -1133,7 +1135,7 @@ static void Task_TradeEvolutionScene(u8 taskID) if (!IsTextPrinterActive(0) && !IsSEPlaying()) { BufferMoveToLearnIntoBattleTextBuff2(); - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[4]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE1 - BATTLESTRINGS_ID_ADDER]); sub_807F1A8(0, gDisplayedStringBattle, 1); gTasks[taskID].tLearnMoveState++; } @@ -1141,7 +1143,7 @@ static void Task_TradeEvolutionScene(u8 taskID) case 1: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[5]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE2 - BATTLESTRINGS_ID_ADDER]); sub_807F1A8(0, gDisplayedStringBattle, 1); gTasks[taskID].tLearnMoveState++; } @@ -1149,7 +1151,7 @@ static void Task_TradeEvolutionScene(u8 taskID) case 2: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[6]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE3 - BATTLESTRINGS_ID_ADDER]); sub_807F1A8(0, gDisplayedStringBattle, 1); gTasks[taskID].tData7 = 5; gTasks[taskID].tData8 = 9; @@ -1166,11 +1168,11 @@ static void Task_TradeEvolutionScene(u8 taskID) } break; case 4: - switch (sub_8198C58()) + switch (ProcessMenuInputNoWrap_()) { case 0: sEvoCursorPos = 0; - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[292]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_EMPTYSTRING3 - BATTLESTRINGS_ID_ADDER]); sub_807F1A8(0, gDisplayedStringBattle, 1); gTasks[taskID].tLearnMoveState = gTasks[taskID].tData7; if (gTasks[taskID].tLearnMoveState == 5) @@ -1179,7 +1181,7 @@ static void Task_TradeEvolutionScene(u8 taskID) case 1: case -1: sEvoCursorPos = 1; - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[292]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_EMPTYSTRING3 - BATTLESTRINGS_ID_ADDER]); sub_807F1A8(0, gDisplayedStringBattle, 1); gTasks[taskID].tLearnMoveState = gTasks[taskID].tData8; break; @@ -1215,7 +1217,7 @@ static void Task_TradeEvolutionScene(u8 taskID) u16 move = GetMonData(mon, var + MON_DATA_MOVE1); if (IsHMMove2(move)) { - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[307]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_HMMOVESCANTBEFORGOTTEN - BATTLESTRINGS_ID_ADDER]); sub_807F1A8(0, gDisplayedStringBattle, 1); gTasks[taskID].tLearnMoveState = 11; } @@ -1225,7 +1227,7 @@ static void Task_TradeEvolutionScene(u8 taskID) RemoveMonPPBonus(mon, var); SetMonMoveSlot(mon, gMoveToLearn, var); - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[207]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_123POOF - BATTLESTRINGS_ID_ADDER]); sub_807F1A8(0, gDisplayedStringBattle, 1); gTasks[taskID].tLearnMoveState++; } @@ -1235,7 +1237,7 @@ static void Task_TradeEvolutionScene(u8 taskID) case 7: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[7]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNFORGOTMOVE - BATTLESTRINGS_ID_ADDER]); sub_807F1A8(0, gDisplayedStringBattle, 1); gTasks[taskID].tLearnMoveState++; } @@ -1243,20 +1245,20 @@ static void Task_TradeEvolutionScene(u8 taskID) case 8: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[208]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_ANDELLIPSIS - BATTLESTRINGS_ID_ADDER]); sub_807F1A8(0, gDisplayedStringBattle, 1); gTasks[taskID].tState = 18; } break; case 9: - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[8]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_STOPLEARNINGMOVE - BATTLESTRINGS_ID_ADDER]); sub_807F1A8(0, gDisplayedStringBattle, 1); gTasks[taskID].tData7 = 10; gTasks[taskID].tData8 = 0; gTasks[taskID].tLearnMoveState = 3; break; case 10: - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[9]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_DIDNOTLEARNMOVE - BATTLESTRINGS_ID_ADDER]); sub_807F1A8(0, gDisplayedStringBattle, 1); gTasks[taskID].tState = 13; break; diff --git a/src/field_map_obj.c b/src/field_map_obj.c index dfdeb63a3..6a99890a4 100755 --- a/src/field_map_obj.c +++ b/src/field_map_obj.c @@ -4,7 +4,7 @@ #include "malloc.h" #include "sprite.h" #include "overworld.h" -#include "rng.h" +#include "random.h" #include "event_scripts.h" #include "berry.h" #include "palette.h" @@ -30,7 +30,7 @@ bool8 FieldObjectCB2_##name(struct MapObject *, struct Sprite *);\ void FieldObjectCB_##name(struct Sprite *sprite)\ {\ - FieldObjectStep(&gMapObjects[sprite->data0], sprite, FieldObjectCB2_##name);\ + FieldObjectStep(&gMapObjects[sprite->data[0]], sprite, FieldObjectCB2_##name);\ }\ bool8 FieldObjectCB2_##name(struct MapObject *mapObject, struct Sprite *sprite)\ {\ @@ -42,11 +42,11 @@ extern bool8 (*const (table)[])(struct MapObject *, struct Sprite *);\ bool8 FieldObjectCB2_##name(struct MapObject *, struct Sprite *);\ void FieldObjectCB_##name(struct Sprite *sprite)\ {\ - FieldObjectStep(&gMapObjects[sprite->data0], sprite, FieldObjectCB2_##name);\ + FieldObjectStep(&gMapObjects[sprite->data[0]], sprite, FieldObjectCB2_##name);\ }\ bool8 FieldObjectCB2_##name(struct MapObject *mapObject, struct Sprite *sprite)\ {\ - return (table)[sprite->data1](mapObject, sprite);\ + return (table)[sprite->data[1]](mapObject, sprite);\ } #define field_object_path(idx, table, sub, path, catch, coord)\ @@ -655,7 +655,7 @@ static u8 SpawnFieldObjectInternal(struct MapObjectTemplate *mapObjectTemplate, sprite->pos1.y += 16 + sprite->centerToCornerVecY; sprite->oam.paletteNum = paletteSlot; sprite->coordOffsetEnabled = TRUE; - sprite->data0 = mapObjectId; + sprite->data[0] = mapObjectId; mapObject->spriteId = spriteId; mapObject->mapobj_bit_12 = graphicsInfo->inanimate; if (!mapObject->mapobj_bit_12) @@ -813,8 +813,8 @@ u8 sprite_new(u8 graphicsId, u8 a1, s16 x, s16 y, u8 z, u8 direction) sprite->oam.paletteNum -= 16; } sprite->coordOffsetEnabled = TRUE; - sprite->data0 = a1; - sprite->data1 = z; + sprite->data[0] = a1; + sprite->data[1] = z; if (graphicsInfo->paletteSlot == 10) { npc_load_two_palettes__and_record(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot); @@ -1003,7 +1003,7 @@ static void sub_808E1B8(u8 mapObjectId, s16 x, s16 y) } sprite->oam.paletteNum = paletteSlot; sprite->coordOffsetEnabled = TRUE; - sprite->data0 = mapObjectId; + sprite->data[0] = mapObjectId; mapObject->spriteId = spriteId; if (!mapObject->mapobj_bit_12 && mapObject->animPattern != 0x0b) { @@ -1463,7 +1463,7 @@ u8 AddCameraObject(u8 linkedSpriteId) spriteId = CreateSprite(&gUnknown_084975D4, 0, 0, 4); gSprites[spriteId].invisible = TRUE; - gSprites[spriteId].data0 = linkedSpriteId; + gSprites[spriteId].data[0] = linkedSpriteId; return spriteId; } @@ -1472,15 +1472,15 @@ void ObjectCB_CameraObject(struct Sprite *sprite) void (*callbacks[ARRAY_COUNT(gUnknown_084975EC)])(struct Sprite *); memcpy(callbacks, gUnknown_084975EC, sizeof gUnknown_084975EC); - callbacks[sprite->data1](sprite); + callbacks[sprite->data[1]](sprite); } /*static*/ void CameraObject_0(struct Sprite *sprite) { - sprite->pos1.x = gSprites[sprite->data0].pos1.x; - sprite->pos1.y = gSprites[sprite->data0].pos1.y; + sprite->pos1.x = gSprites[sprite->data[0]].pos1.x; + sprite->pos1.y = gSprites[sprite->data[0]].pos1.y; sprite->invisible = TRUE; - sprite->data1 = 1; + sprite->data[1] = 1; CameraObject_1(sprite); } @@ -1489,20 +1489,20 @@ void ObjectCB_CameraObject(struct Sprite *sprite) s16 x; s16 y; - y = gSprites[sprite->data0].pos1.y; - x = gSprites[sprite->data0].pos1.x; - sprite->data2 = x - sprite->pos1.x; - sprite->data3 = y - sprite->pos1.y; + y = gSprites[sprite->data[0]].pos1.y; + x = gSprites[sprite->data[0]].pos1.x; + sprite->data[2] = x - sprite->pos1.x; + sprite->data[3] = y - sprite->pos1.y; sprite->pos1.x = x; sprite->pos1.y = y; } /*static*/ void CameraObject_2(struct Sprite *sprite) { - sprite->pos1.x = gSprites[sprite->data0].pos1.x; - sprite->pos1.y = gSprites[sprite->data0].pos1.y; - sprite->data2 = 0; - sprite->data3 = 0; + sprite->pos1.x = gSprites[sprite->data[0]].pos1.x; + sprite->pos1.y = gSprites[sprite->data[0]].pos1.y; + sprite->data[2] = 0; + sprite->data[3] = 0; } static struct Sprite *FindCameraObject(void) @@ -1526,7 +1526,7 @@ void CameraObjectReset1(void) cameraObject = FindCameraObject(); if (cameraObject != NULL) { - cameraObject->data1 = 0; + cameraObject->data[1] = 0; cameraObject->callback(cameraObject); } } @@ -1538,7 +1538,7 @@ void CameraObjectSetFollowedObjectId(u8 objectId) cameraObject = FindCameraObject(); if (cameraObject != NULL) { - cameraObject->data0 = objectId; + cameraObject->data[0] = objectId; CameraObjectReset1(); } } @@ -1552,12 +1552,12 @@ u8 CameraObjectGetFollowedObjectId(void) { return MAX_SPRITES; } - return cameraObject->data0; + return cameraObject->data[0]; } void CameraObjectReset2(void) { - FindCameraObject()->data1 = 2; + FindCameraObject()->data[1] = 2; } u8 CopySprite(struct Sprite *sprite, s16 x, s16 y, u8 subpriority) @@ -1818,14 +1818,14 @@ field_object_step(GoRandomDirections, gUnknown_0850D6F4) bool8 sub_808F44C(struct MapObject *mapObject, struct Sprite *sprite) { npc_reset(mapObject, sprite); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } bool8 sub_808F460(struct MapObject *mapObject, struct Sprite *sprite) { FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); - sprite->data1 = 2; + sprite->data[1] = 2; return TRUE; } @@ -1836,7 +1836,7 @@ bool8 sub_808F48C(struct MapObject *mapObject, struct Sprite *sprite) return FALSE; } SetFieldObjectStepTimer(sprite, gUnknown_0850D6DC[Random() & 0x03]); - sprite->data1 = 3; + sprite->data[1] = 3; return TRUE; } @@ -1844,7 +1844,7 @@ bool8 sub_808F4C8(struct MapObject *mapObject, struct Sprite *sprite) { if (RunFieldObjectStepTimer(sprite)) { - sprite->data1 = 4; + sprite->data[1] = 4; return TRUE; } return FALSE; @@ -1858,10 +1858,10 @@ bool8 sub_808F4E8(struct MapObject *mapObject, struct Sprite *sprite) memcpy(directions, gUnknown_0850D710, sizeof directions); chosenDirection = directions[Random() & 0x03]; FieldObjectSetDirection(mapObject, chosenDirection); - sprite->data1 = 5; + sprite->data[1] = 5; if (npc_block_way__next_tile(mapObject, chosenDirection)) { - sprite->data1 = 1; + sprite->data[1] = 1; } return TRUE; } @@ -1870,7 +1870,7 @@ bool8 sub_808F534(struct MapObject *mapObject, struct Sprite *sprite) { FieldObjectSetRegularAnim(mapObject, sprite, GetGoSpeed0AnimId(mapObject->placeholder18)); mapObject->mapobj_bit_1 = TRUE; - sprite->data1 = 6; + sprite->data[1] = 6; return TRUE; } @@ -1879,7 +1879,7 @@ bool8 sub_808F564(struct MapObject *mapObject, struct Sprite *sprite) if (FieldObjectExecRegularAnim(mapObject, sprite)) { mapObject->mapobj_bit_1 = FALSE; - sprite->data1 = 1; + sprite->data[1] = 1; } return FALSE; } @@ -2140,14 +2140,14 @@ field_object_step(LookRandomDirections, gUnknown_0850D740) bool8 sub_808F988(struct MapObject *mapObject, struct Sprite *sprite) { npc_reset(mapObject, sprite); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } bool8 sub_808F99C(struct MapObject *mapObject, struct Sprite *sprite) { FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); - sprite->data1 = 2; + sprite->data[1] = 2; return TRUE; } @@ -2157,7 +2157,7 @@ bool8 sub_808F9C8(struct MapObject *mapObject, struct Sprite *sprite) { SetFieldObjectStepTimer(sprite, gUnknown_0850D6DC[Random() & 0x03]); mapObject->mapobj_bit_1 = FALSE; - sprite->data1 = 3; + sprite->data[1] = 3; } return FALSE; } @@ -2166,7 +2166,7 @@ bool8 sub_808FA0C(struct MapObject *mapObject, struct Sprite *sprite) { if (RunFieldObjectStepTimer(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject)) { - sprite->data1 = 4; + sprite->data[1] = 4; return TRUE; } return FALSE; @@ -2184,7 +2184,7 @@ bool8 sub_808FA3C(struct MapObject *mapObject, struct Sprite *sprite) direction = directions[Random() & 0x03]; } FieldObjectSetDirection(mapObject, direction); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } @@ -2193,14 +2193,14 @@ field_object_step(RandomlyGoNorthOrSouth, gUnknown_0850D754) bool8 sub_808FAC8(struct MapObject *mapObject, struct Sprite *sprite) { npc_reset(mapObject, sprite); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } bool8 sub_808FADC(struct MapObject *mapObject, struct Sprite *sprite) { FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); - sprite->data1 = 2; + sprite->data[1] = 2; return TRUE; } @@ -2211,7 +2211,7 @@ bool8 sub_808FB08(struct MapObject *mapObject, struct Sprite *sprite) return FALSE; } SetFieldObjectStepTimer(sprite, gUnknown_0850D6DC[Random() & 0x03]); - sprite->data1 = 3; + sprite->data[1] = 3; return TRUE; } @@ -2219,7 +2219,7 @@ bool8 sub_808FB44(struct MapObject *mapObject, struct Sprite *sprite) { if (RunFieldObjectStepTimer(sprite)) { - sprite->data1 = 4; + sprite->data[1] = 4; return TRUE; } return FALSE; @@ -2233,10 +2233,10 @@ bool8 sub_808FB64(struct MapObject *mapObject, struct Sprite *sprite) memcpy(directions, gUnknown_0850D770, sizeof directions); direction = directions[Random() & 0x01]; FieldObjectSetDirection(mapObject, direction); - sprite->data1 = 5; + sprite->data[1] = 5; if (npc_block_way__next_tile(mapObject, direction)) { - sprite->data1 = 1; + sprite->data[1] = 1; } return TRUE; } @@ -2245,7 +2245,7 @@ bool8 sub_808FBB0(struct MapObject *mapObject, struct Sprite *sprite) { FieldObjectSetRegularAnim(mapObject, sprite, GetGoSpeed0AnimId(mapObject->placeholder18)); mapObject->mapobj_bit_1 = TRUE; - sprite->data1 = 6; + sprite->data[1] = 6; return TRUE; } @@ -2254,7 +2254,7 @@ bool8 sub_808FBE0(struct MapObject *mapObject, struct Sprite *sprite) if (FieldObjectExecRegularAnim(mapObject, sprite)) { mapObject->mapobj_bit_1 = FALSE; - sprite->data1 = 1; + sprite->data[1] = 1; } return FALSE; } @@ -2264,14 +2264,14 @@ field_object_step(RandomlyGoEastOrWest, gUnknown_0850D774) bool8 sub_808FC4C(struct MapObject *mapObject, struct Sprite *sprite) { npc_reset(mapObject, sprite); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } bool8 sub_808FC60(struct MapObject *mapObject, struct Sprite *sprite) { FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); - sprite->data1 = 2; + sprite->data[1] = 2; return TRUE; } @@ -2282,7 +2282,7 @@ bool8 sub_808FC8C(struct MapObject *mapObject, struct Sprite *sprite) return FALSE; } SetFieldObjectStepTimer(sprite, gUnknown_0850D6DC[Random() & 0x03]); - sprite->data1 = 3; + sprite->data[1] = 3; return TRUE; } @@ -2290,7 +2290,7 @@ bool8 sub_808FCC8(struct MapObject *mapObject, struct Sprite *sprite) { if (RunFieldObjectStepTimer(sprite)) { - sprite->data1 = 4; + sprite->data[1] = 4; return TRUE; } return FALSE; @@ -2304,10 +2304,10 @@ bool8 sub_808FCE8(struct MapObject *mapObject, struct Sprite *sprite) memcpy(directions, gUnknown_0850D790, sizeof directions); direction = directions[Random() & 0x01]; FieldObjectSetDirection(mapObject, direction); - sprite->data1 = 5; + sprite->data[1] = 5; if (npc_block_way__next_tile(mapObject, direction)) { - sprite->data1 = 1; + sprite->data[1] = 1; } return TRUE; } @@ -2316,7 +2316,7 @@ bool8 sub_808FD34(struct MapObject *mapObject, struct Sprite *sprite) { FieldObjectSetRegularAnim(mapObject, sprite, GetGoSpeed0AnimId(mapObject->placeholder18)); mapObject->mapobj_bit_1 = TRUE; - sprite->data1 = 6; + sprite->data[1] = 6; return TRUE; } @@ -2325,7 +2325,7 @@ bool8 sub_808FD64(struct MapObject *mapObject, struct Sprite *sprite) if (FieldObjectExecRegularAnim(mapObject, sprite)) { mapObject->mapobj_bit_1 = FALSE; - sprite->data1 = 1; + sprite->data[1] = 1; } return FALSE; } @@ -2336,7 +2336,7 @@ bool8 sub_808FDD0(struct MapObject *mapObject, struct Sprite *sprite) { npc_reset(mapObject, sprite); FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } @@ -2344,7 +2344,7 @@ bool8 sub_808FDFC(struct MapObject *mapObject, struct Sprite *sprite) { if (FieldObjectExecRegularAnim(mapObject, sprite)) { - sprite->data1 = 2; + sprite->data[1] = 2; return TRUE; } return FALSE; @@ -2362,17 +2362,17 @@ void FieldObjectCB_BerryTree(struct Sprite *sprite) { struct MapObject *mapObject; - mapObject = &gMapObjects[sprite->data0]; - if (!(sprite->data7 & 0x0001)) + mapObject = &gMapObjects[sprite->data[0]]; + if (!(sprite->data[7] & 0x0001)) { get_berry_tree_graphics(mapObject, sprite); - sprite->data7 |= 0x0001; + sprite->data[7] |= 0x0001; } FieldObjectStep(mapObject, sprite, FieldObjectCB2_BerryTree); } static bool8 FieldObjectCB2_BerryTree(struct MapObject *mapObject, struct Sprite *sprite) { - return gUnknown_0850D7A0[sprite->data1](mapObject, sprite); + return gUnknown_0850D7A0[sprite->data[1]](mapObject, sprite); } bool8 do_berry_tree_growth_sparkle_1 (struct MapObject *mapObject, struct Sprite *sprite) @@ -2385,7 +2385,7 @@ bool8 do_berry_tree_growth_sparkle_1 (struct MapObject *mapObject, struct Sprite berryStage = GetStageByBerryTreeId(mapObject->trainerRange_berryTreeId); if (berryStage == 0) { - if (!(sprite->data7 & 0x0004) && sprite->animNum == 4) + if (!(sprite->data[7] & 0x0004) && sprite->animNum == 4) { gFieldEffectArguments[0] = mapObject->coords2.x; gFieldEffectArguments[1] = mapObject->coords2.y; @@ -2401,12 +2401,12 @@ bool8 do_berry_tree_growth_sparkle_1 (struct MapObject *mapObject, struct Sprite berryStage --; if (sprite->animNum != berryStage) { - sprite->data1 = 2; + sprite->data[1] = 2; return TRUE; } get_berry_tree_graphics(mapObject, sprite); FieldObjectSetRegularAnim(mapObject, sprite, 0x39); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } @@ -2414,7 +2414,7 @@ bool8 sub_808FF48 (struct MapObject *mapObject, struct Sprite *sprite) { if (FieldObjectExecRegularAnim(mapObject, sprite)) { - sprite->data1 = 0; + sprite->data[1] = 0; return TRUE; } return FALSE; @@ -2423,9 +2423,9 @@ bool8 sub_808FF48 (struct MapObject *mapObject, struct Sprite *sprite) bool8 do_berry_tree_growth_sparkle_2 (struct MapObject *mapObject, struct Sprite *sprite) { mapObject->mapobj_bit_1 = TRUE; - sprite->data1 = 3; - sprite->data2 = 0; - sprite->data7 |= 0x0002; + sprite->data[1] = 3; + sprite->data[2] = 0; + sprite->data[7] |= 0x0002; gFieldEffectArguments[0] = mapObject->coords2.x; gFieldEffectArguments[1] = mapObject->coords2.y; gFieldEffectArguments[2] = sprite->subpriority - 1; @@ -2436,14 +2436,14 @@ bool8 do_berry_tree_growth_sparkle_2 (struct MapObject *mapObject, struct Sprite bool8 sub_808FFB4 (struct MapObject *mapObject, struct Sprite *sprite) { - sprite->data2 ++; - mapObject->mapobj_bit_13 = (sprite->data2 & 0x02) >> 1; + sprite->data[2] ++; + mapObject->mapobj_bit_13 = (sprite->data[2] & 0x02) >> 1; sprite->animPaused = TRUE; - if (sprite->data2 > 64) + if (sprite->data[2] > 64) { get_berry_tree_graphics(mapObject, sprite); - sprite->data1 = 4; - sprite->data2 = 0; + sprite->data[1] = 4; + sprite->data[2] = 0; return TRUE; } return FALSE; @@ -2451,13 +2451,13 @@ bool8 sub_808FFB4 (struct MapObject *mapObject, struct Sprite *sprite) bool8 sub_8090004 (struct MapObject *mapObject, struct Sprite *sprite) { - sprite->data2 ++; - mapObject->mapobj_bit_13 = (sprite->data2 & 0x02) >> 1; + sprite->data[2] ++; + mapObject->mapobj_bit_13 = (sprite->data[2] & 0x02) >> 1; sprite->animPaused = TRUE; - if (sprite->data2 > 64) + if (sprite->data[2] > 64) { - sprite->data1 = 0; - sprite->data7 &= ~0x0002; + sprite->data[1] = 0; + sprite->data[7] &= ~0x0002; return TRUE; } return FALSE; @@ -2468,14 +2468,14 @@ field_object_step(RandomlyLookNorthOrSouth, gUnknown_0850D7B4) bool8 sub_8090094 (struct MapObject *mapObject, struct Sprite *sprite) { npc_reset(mapObject, sprite); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } bool8 sub_80900A8 (struct MapObject *mapObject, struct Sprite *sprite) { FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); - sprite->data1 = 2; + sprite->data[1] = 2; return TRUE; } @@ -2485,7 +2485,7 @@ bool8 sub_80900D4 (struct MapObject *mapObject, struct Sprite *sprite) { SetFieldObjectStepTimer(sprite, gUnknown_0850D6DC[Random() & 0x03]); mapObject->mapobj_bit_1 = FALSE; - sprite->data1 = 3; + sprite->data[1] = 3; } return FALSE; } @@ -2494,7 +2494,7 @@ bool8 sub_8090118 (struct MapObject *mapObject, struct Sprite *sprite) { if (RunFieldObjectStepTimer(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject)) { - sprite->data1 = 4; + sprite->data[1] = 4; return TRUE; } return FALSE; @@ -2512,7 +2512,7 @@ bool8 sub_8090148 (struct MapObject *mapObject, struct Sprite *sprite) direction = directions[Random() & 0x01]; } FieldObjectSetDirection(mapObject, direction); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } @@ -2521,14 +2521,14 @@ field_object_step(RandomlyLookEastOrWest, gUnknown_0850D7C8) bool8 sub_80901D4 (struct MapObject *mapObject, struct Sprite *sprite) { npc_reset(mapObject, sprite); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } bool8 sub_80901E8 (struct MapObject *mapObject, struct Sprite *sprite) { FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); - sprite->data1 = 2; + sprite->data[1] = 2; return TRUE; } @@ -2538,7 +2538,7 @@ bool8 sub_8090214 (struct MapObject *mapObject, struct Sprite *sprite) { SetFieldObjectStepTimer(sprite, gUnknown_0850D6DC[Random() & 0x03]); mapObject->mapobj_bit_1 = FALSE; - sprite->data1 = 3; + sprite->data[1] = 3; } return FALSE; } @@ -2547,7 +2547,7 @@ bool8 sub_8090258 (struct MapObject *mapObject, struct Sprite *sprite) { if (RunFieldObjectStepTimer(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject)) { - sprite->data1 = 4; + sprite->data[1] = 4; return TRUE; } return FALSE; @@ -2565,7 +2565,7 @@ bool8 sub_8090288 (struct MapObject *mapObject, struct Sprite *sprite) direction = directions[Random() & 0x01]; } FieldObjectSetDirection(mapObject, direction); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } @@ -2574,14 +2574,14 @@ field_object_step(RandomlyLookNorthOrWest, gUnknown_0850D7DC) bool8 sub_8090314 (struct MapObject *mapObject, struct Sprite *sprite) { npc_reset(mapObject, sprite); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } bool8 sub_8090328 (struct MapObject *mapObject, struct Sprite *sprite) { FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); - sprite->data1 = 2; + sprite->data[1] = 2; return TRUE; } @@ -2591,7 +2591,7 @@ bool8 sub_8090354 (struct MapObject *mapObject, struct Sprite *sprite) { SetFieldObjectStepTimer(sprite, gUnknown_0850D6EC[Random() & 0x03]); mapObject->mapobj_bit_1 = FALSE; - sprite->data1 = 3; + sprite->data[1] = 3; } return FALSE; } @@ -2600,7 +2600,7 @@ bool8 sub_8090398 (struct MapObject *mapObject, struct Sprite *sprite) { if (RunFieldObjectStepTimer(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject)) { - sprite->data1 = 4; + sprite->data[1] = 4; return TRUE; } return FALSE; @@ -2618,7 +2618,7 @@ bool8 sub_80903C8 (struct MapObject *mapObject, struct Sprite *sprite) direction = directions[Random() & 0x01]; } FieldObjectSetDirection(mapObject, direction); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } @@ -2627,14 +2627,14 @@ field_object_step(RandomlyLookNorthOrEast, gUnknown_0850D7F4) bool8 sub_8090454 (struct MapObject *mapObject, struct Sprite *sprite) { npc_reset(mapObject, sprite); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } bool8 sub_8090468 (struct MapObject *mapObject, struct Sprite *sprite) { FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); - sprite->data1 = 2; + sprite->data[1] = 2; return TRUE; } @@ -2644,7 +2644,7 @@ bool8 sub_8090494 (struct MapObject *mapObject, struct Sprite *sprite) { SetFieldObjectStepTimer(sprite, gUnknown_0850D6EC[Random() & 0x03]); mapObject->mapobj_bit_1 = FALSE; - sprite->data1 = 3; + sprite->data[1] = 3; } return FALSE; } @@ -2653,7 +2653,7 @@ bool8 sub_80904D8 (struct MapObject *mapObject, struct Sprite *sprite) { if (RunFieldObjectStepTimer(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject)) { - sprite->data1 = 4; + sprite->data[1] = 4; return TRUE; } return FALSE; @@ -2671,7 +2671,7 @@ bool8 sub_8090508 (struct MapObject *mapObject, struct Sprite *sprite) direction = directions[Random() & 0x01]; } FieldObjectSetDirection(mapObject, direction); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } @@ -2680,14 +2680,14 @@ field_object_step(RandomlyLookSouthOrWest, gUnknown_0850D80C) bool8 sub_8090594 (struct MapObject *mapObject, struct Sprite *sprite) { npc_reset(mapObject, sprite); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } bool8 sub_80905A8 (struct MapObject *mapObject, struct Sprite *sprite) { FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); - sprite->data1 = 2; + sprite->data[1] = 2; return TRUE; } @@ -2697,7 +2697,7 @@ bool8 sub_80905D4 (struct MapObject *mapObject, struct Sprite *sprite) { SetFieldObjectStepTimer(sprite, gUnknown_0850D6EC[Random() & 0x03]); mapObject->mapobj_bit_1 = FALSE; - sprite->data1 = 3; + sprite->data[1] = 3; } return FALSE; } @@ -2706,7 +2706,7 @@ bool8 sub_8090618 (struct MapObject *mapObject, struct Sprite *sprite) { if (RunFieldObjectStepTimer(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject)) { - sprite->data1 = 4; + sprite->data[1] = 4; return TRUE; } return FALSE; @@ -2724,7 +2724,7 @@ bool8 sub_8090648 (struct MapObject *mapObject, struct Sprite *sprite) direction = directions[Random() & 0x01]; } FieldObjectSetDirection(mapObject, direction); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } @@ -2733,14 +2733,14 @@ field_object_step(RandomlyLookSouthOrEast, gUnknown_0850D824) bool8 sub_80906D4 (struct MapObject *mapObject, struct Sprite *sprite) { npc_reset(mapObject, sprite); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } bool8 sub_80906E8 (struct MapObject *mapObject, struct Sprite *sprite) { FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); - sprite->data1 = 2; + sprite->data[1] = 2; return TRUE; } @@ -2750,7 +2750,7 @@ bool8 sub_8090714 (struct MapObject *mapObject, struct Sprite *sprite) { SetFieldObjectStepTimer(sprite, gUnknown_0850D6EC[Random() & 0x03]); mapObject->mapobj_bit_1 = FALSE; - sprite->data1 = 3; + sprite->data[1] = 3; } return FALSE; } @@ -2759,7 +2759,7 @@ bool8 sub_8090758 (struct MapObject *mapObject, struct Sprite *sprite) { if (RunFieldObjectStepTimer(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject)) { - sprite->data1 = 4; + sprite->data[1] = 4; return TRUE; } return FALSE; @@ -2777,7 +2777,7 @@ bool8 sub_8090788 (struct MapObject *mapObject, struct Sprite *sprite) direction = directions[Random() & 0x01]; } FieldObjectSetDirection(mapObject, direction); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } @@ -2786,14 +2786,14 @@ field_object_step(RandomlyLookNorthOrSouthOrWest, gUnknown_0850D83C) bool8 sub_8090814 (struct MapObject *mapObject, struct Sprite *sprite) { npc_reset(mapObject, sprite); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } bool8 sub_8090828 (struct MapObject *mapObject, struct Sprite *sprite) { FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); - sprite->data1 = 2; + sprite->data[1] = 2; return TRUE; } @@ -2803,7 +2803,7 @@ bool8 sub_8090854 (struct MapObject *mapObject, struct Sprite *sprite) { SetFieldObjectStepTimer(sprite, gUnknown_0850D6EC[Random() & 0x03]); mapObject->mapobj_bit_1 = FALSE; - sprite->data1 = 3; + sprite->data[1] = 3; } return FALSE; } @@ -2812,7 +2812,7 @@ bool8 sub_8090898 (struct MapObject *mapObject, struct Sprite *sprite) { if (RunFieldObjectStepTimer(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject)) { - sprite->data1 = 4; + sprite->data[1] = 4; return TRUE; } return FALSE; @@ -2830,7 +2830,7 @@ bool8 sub_80908C8 (struct MapObject *mapObject, struct Sprite *sprite) direction = directions[Random() & 0x03]; } FieldObjectSetDirection(mapObject, direction); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } @@ -2839,14 +2839,14 @@ field_object_step(RandomlyLookNorthOrSouthOrEast, gUnknown_0850D854) bool8 sub_8090954 (struct MapObject *mapObject, struct Sprite *sprite) { npc_reset(mapObject, sprite); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } bool8 sub_8090968 (struct MapObject *mapObject, struct Sprite *sprite) { FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); - sprite->data1 = 2; + sprite->data[1] = 2; return TRUE; } @@ -2856,7 +2856,7 @@ bool8 sub_8090994 (struct MapObject *mapObject, struct Sprite *sprite) { SetFieldObjectStepTimer(sprite, gUnknown_0850D6EC[Random() & 0x03]); mapObject->mapobj_bit_1 = FALSE; - sprite->data1 = 3; + sprite->data[1] = 3; } return FALSE; } @@ -2865,7 +2865,7 @@ bool8 sub_80909D8 (struct MapObject *mapObject, struct Sprite *sprite) { if (RunFieldObjectStepTimer(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject)) { - sprite->data1 = 4; + sprite->data[1] = 4; return TRUE; } return FALSE; @@ -2883,7 +2883,7 @@ bool8 sub_8090A08 (struct MapObject *mapObject, struct Sprite *sprite) direction = directions[Random() & 0x03]; } FieldObjectSetDirection(mapObject, direction); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } @@ -2892,14 +2892,14 @@ field_object_step(RandomlyLookNorthOrEastOrWest, gUnknown_0850D86C) bool8 sub_8090A94 (struct MapObject *mapObject, struct Sprite *sprite) { npc_reset(mapObject, sprite); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } bool8 sub_8090AA8 (struct MapObject *mapObject, struct Sprite *sprite) { FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); - sprite->data1 = 2; + sprite->data[1] = 2; return TRUE; } @@ -2909,7 +2909,7 @@ bool8 sub_8090AD4 (struct MapObject *mapObject, struct Sprite *sprite) { SetFieldObjectStepTimer(sprite, gUnknown_0850D6EC[Random() & 0x03]); mapObject->mapobj_bit_1 = FALSE; - sprite->data1 = 3; + sprite->data[1] = 3; } return FALSE; } @@ -2918,7 +2918,7 @@ bool8 sub_8090B18 (struct MapObject *mapObject, struct Sprite *sprite) { if (RunFieldObjectStepTimer(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject)) { - sprite->data1 = 4; + sprite->data[1] = 4; return TRUE; } return FALSE; @@ -2936,7 +2936,7 @@ bool8 sub_8090B48 (struct MapObject *mapObject, struct Sprite *sprite) direction = directions[Random() & 0x03]; } FieldObjectSetDirection(mapObject, direction); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } @@ -2945,14 +2945,14 @@ field_object_step(RandomlyLookSouthOrEastOrWest, gUnknown_0850D884) bool8 sub_8090BD4 (struct MapObject *mapObject, struct Sprite *sprite) { npc_reset(mapObject, sprite); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } bool8 sub_8090BE8 (struct MapObject *mapObject, struct Sprite *sprite) { FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); - sprite->data1 = 2; + sprite->data[1] = 2; return TRUE; } @@ -2962,7 +2962,7 @@ bool8 sub_8090C14 (struct MapObject *mapObject, struct Sprite *sprite) { SetFieldObjectStepTimer(sprite, gUnknown_0850D6EC[Random() & 0x03]); mapObject->mapobj_bit_1 = FALSE; - sprite->data1 = 3; + sprite->data[1] = 3; } return FALSE; } @@ -2971,7 +2971,7 @@ bool8 sub_8090C58 (struct MapObject *mapObject, struct Sprite *sprite) { if (RunFieldObjectStepTimer(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject)) { - sprite->data1 = 4; + sprite->data[1] = 4; return TRUE; } return FALSE; @@ -2989,7 +2989,7 @@ bool8 sub_8090C88 (struct MapObject *mapObject, struct Sprite *sprite) direction = directions[Random() & 0x03]; } FieldObjectSetDirection(mapObject, direction); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } @@ -2999,7 +2999,7 @@ bool8 sub_8090D14 (struct MapObject *mapObject, struct Sprite *sprite) { npc_reset(mapObject, sprite); FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } @@ -3008,7 +3008,7 @@ bool8 sub_8090D40 (struct MapObject *mapObject, struct Sprite *sprite) if (FieldObjectExecRegularAnim(mapObject, sprite)) { SetFieldObjectStepTimer(sprite, 48); - sprite->data1 = 2; + sprite->data[1] = 2; } return FALSE; } @@ -3017,7 +3017,7 @@ bool8 sub_8090D64 (struct MapObject *mapObject, struct Sprite *sprite) { if (RunFieldObjectStepTimer(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject)) { - sprite->data1 = 3; + sprite->data[1] = 3; } return FALSE; } @@ -3034,7 +3034,7 @@ bool8 sub_8090D90 (struct MapObject *mapObject, struct Sprite *sprite) direction = directions[mapObject->mapobj_unk_18]; } FieldObjectSetDirection(mapObject, direction); - sprite->data1 = 0; + sprite->data[1] = 0; return TRUE; } @@ -3044,7 +3044,7 @@ bool8 sub_8090E18 (struct MapObject *mapObject, struct Sprite *sprite) { npc_reset(mapObject, sprite); FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } @@ -3053,7 +3053,7 @@ bool8 sub_8090E44 (struct MapObject *mapObject, struct Sprite *sprite) if (FieldObjectExecRegularAnim(mapObject, sprite)) { SetFieldObjectStepTimer(sprite, 48); - sprite->data1 = 2; + sprite->data[1] = 2; } return FALSE; } @@ -3062,7 +3062,7 @@ bool8 sub_8090E68 (struct MapObject *mapObject, struct Sprite *sprite) { if (RunFieldObjectStepTimer(sprite) || FieldObjectIsTrainerAndCloseToPlayer(mapObject)) { - sprite->data1 = 3; + sprite->data[1] = 3; } return FALSE; } @@ -3079,7 +3079,7 @@ bool8 sub_8090E94 (struct MapObject *mapObject, struct Sprite *sprite) direction = directions[mapObject->mapobj_unk_18]; } FieldObjectSetDirection(mapObject, direction); - sprite->data1 = 0; + sprite->data[1] = 0; return TRUE; } @@ -3088,7 +3088,7 @@ field_object_step(AlternatelyGoInOppositeDirections, gUnknown_0850D8CC) bool8 sub_8090F1C (struct MapObject *mapObject, struct Sprite *sprite) { npc_reset(mapObject, sprite); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } @@ -3102,7 +3102,7 @@ bool8 sub_8090F30 (struct MapObject *mapObject, struct Sprite *sprite) direction = GetOppositeDirection(direction); } FieldObjectSetDirection(mapObject, direction); - sprite->data1 = 2; + sprite->data[1] = 2; return TRUE; } @@ -3131,7 +3131,7 @@ bool8 sub_8090F68 (struct MapObject *mapObject, struct Sprite *sprite) } FieldObjectSetRegularAnim(mapObject, sprite, animId); mapObject->mapobj_bit_1 = TRUE; - sprite->data1 = 3; + sprite->data[1] = 3; return TRUE; } @@ -3140,7 +3140,7 @@ bool8 sub_8091020 (struct MapObject *mapObject, struct Sprite *sprite) if (FieldObjectExecRegularAnim(mapObject, sprite)) { mapObject->mapobj_bit_1 = FALSE; - sprite->data1 = 1; + sprite->data[1] = 1; } return FALSE; } @@ -3148,7 +3148,7 @@ bool8 sub_8091020 (struct MapObject *mapObject, struct Sprite *sprite) bool8 sub_8091048(struct MapObject *mapObject, struct Sprite *sprite) { npc_reset(mapObject, sprite); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } @@ -3177,7 +3177,7 @@ bool8 MoveFieldObjectInNextDirectionInSequence(struct MapObject *mapObject, stru } FieldObjectSetRegularAnim(mapObject, sprite, animId); mapObject->mapobj_bit_1 = TRUE; - sprite->data1 = 2; + sprite->data[1] = 2; return TRUE; } @@ -3186,7 +3186,7 @@ bool8 sub_8091110(struct MapObject *mapObject, struct Sprite *sprite) if (FieldObjectExecRegularAnim(mapObject, sprite)) { mapObject->mapobj_bit_1 = FALSE; - sprite->data1 = 1; + sprite->data[1] = 1; } return FALSE; } @@ -3225,7 +3225,7 @@ bool8 mss_npc_reset_oampriv3_1_unk2_unk3(struct MapObject *mapObject, struct Spr { mapObject->mapobj_unk_21 = player_get_direction_lower_nybble(); } - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } @@ -3243,7 +3243,7 @@ bool8 sub_8091F20(struct MapObject *mapObject, struct Sprite *sprite) if (FieldObjectExecRegularAnim(mapObject, sprite)) { mapObject->mapobj_bit_1 = FALSE; - sprite->data1 = 1; + sprite->data[1] = 1; } return FALSE; } @@ -3257,7 +3257,7 @@ bool8 sub_8091F4C(struct MapObject *mapObject, struct Sprite *sprite, u8 playerD { FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(state_to_direction(gUnknown_085055CD[mapObject->animPattern], mapObject->mapobj_unk_21, playerDirection))); mapObject->mapobj_bit_1 = TRUE; - sprite->data1 = 2; + sprite->data[1] = 2; return TRUE; } @@ -3278,7 +3278,7 @@ bool8 sub_8091F94(struct MapObject *mapObject, struct Sprite *sprite, u8 playerD FieldObjectMoveDestCoords(mapObject, direction, &x, &y); FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(direction)); mapObject->mapobj_bit_1 = TRUE; - sprite->data1 = 2; + sprite->data[1] = 2; return TRUE; } } @@ -3293,7 +3293,7 @@ bool8 sub_8091F94(struct MapObject *mapObject, struct Sprite *sprite, u8 playerD FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(direction)); } mapObject->mapobj_bit_1 = TRUE; - sprite->data1 = 2; + sprite->data[1] = 2; return TRUE; } @@ -3312,7 +3312,7 @@ bool8 sub_80920A4(struct MapObject *mapObject, struct Sprite *sprite, u8 playerD FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(direction)); } mapObject->mapobj_bit_1 = TRUE; - sprite->data1 = 2; + sprite->data[1] = 2; return TRUE; } @@ -3331,7 +3331,7 @@ bool8 sub_809215C(struct MapObject *mapObject, struct Sprite *sprite, u8 playerD FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(direction)); } mapObject->mapobj_bit_1 = TRUE; - sprite->data1 = 2; + sprite->data[1] = 2; return TRUE; } @@ -3350,7 +3350,7 @@ bool8 sub_8092214(struct MapObject *mapObject, struct Sprite *sprite, u8 playerD FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(direction)); } mapObject->mapobj_bit_1 = TRUE; - sprite->data1 = 2; + sprite->data[1] = 2; return TRUE; } @@ -3362,7 +3362,7 @@ bool8 cph_IM_DIFFERENT(struct MapObject *mapObject, struct Sprite *sprite, u8 pl direction = state_to_direction(gUnknown_085055CD[mapObject->animPattern], mapObject->mapobj_unk_21, direction); FieldObjectSetRegularAnim(mapObject, sprite, sub_80934BC(direction)); mapObject->mapobj_bit_1 = TRUE; - sprite->data1 = 2; + sprite->data[1] = 2; return TRUE; } @@ -3381,7 +3381,7 @@ bool8 sub_8092314(struct MapObject *mapObject, struct Sprite *sprite, u8 playerD FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(direction)); } mapObject->mapobj_bit_1 = TRUE; - sprite->data1 = 2; + sprite->data[1] = 2; return TRUE; } @@ -3402,7 +3402,7 @@ bool8 oac_hopping(struct MapObject *mapObject, struct Sprite *sprite, u8 playerD FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(direction)); } mapObject->mapobj_bit_1 = TRUE; - sprite->data1 = 2; + sprite->data[1] = 2; return TRUE; } @@ -3423,15 +3423,15 @@ void FieldObjectCB_TreeDisguise(struct Sprite *sprite) { struct MapObject *mapObject; - mapObject = &gMapObjects[sprite->data0]; - if (mapObject->mapobj_unk_21 == 0 || (mapObject->mapobj_unk_21 == 1 && !sprite->data7)) + mapObject = &gMapObjects[sprite->data[0]]; + if (mapObject->mapobj_unk_21 == 0 || (mapObject->mapobj_unk_21 == 1 && !sprite->data[7])) { FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]); mapObject->mapobj_unk_1A = FieldEffectStart(FLDEFF_TREE_DISGUISE); mapObject->mapobj_unk_21 = 1; - sprite->data7 ++; + sprite->data[7] ++; } - FieldObjectStep(&gMapObjects[sprite->data0], sprite, sub_80925AC); + FieldObjectStep(&gMapObjects[sprite->data[0]], sprite, sub_80925AC); } bool8 sub_80925AC(struct MapObject *mapObject, struct Sprite *sprite) @@ -3444,15 +3444,15 @@ void FieldObjectCB_MountainDisguise(struct Sprite *sprite) { struct MapObject *mapObject; - mapObject = &gMapObjects[sprite->data0]; - if (mapObject->mapobj_unk_21 == 0 || (mapObject->mapobj_unk_21 == 1 && !sprite->data7)) + mapObject = &gMapObjects[sprite->data[0]]; + if (mapObject->mapobj_unk_21 == 0 || (mapObject->mapobj_unk_21 == 1 && !sprite->data[7])) { FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]); mapObject->mapobj_unk_1A = FieldEffectStart(FLDEFF_MOUNTAIN_DISGUISE); mapObject->mapobj_unk_21 = 1; - sprite->data7 ++; + sprite->data[7] ++; } - FieldObjectStep(&gMapObjects[sprite->data0], sprite, sub_80925AC); + FieldObjectStep(&gMapObjects[sprite->data[0]], sprite, sub_80925AC); } extern bool8 (*const gUnknown_0850DA9C[])(struct MapObject *, struct Sprite *); @@ -3460,19 +3460,19 @@ bool8 sub_809268C(struct MapObject *, struct Sprite *); void FieldObjectCB_Hidden1(struct Sprite *sprite) { - if (!sprite->data7) + if (!sprite->data[7]) { - gMapObjects[sprite->data0].mapobj_bit_26 = TRUE; + gMapObjects[sprite->data[0]].mapobj_bit_26 = TRUE; sprite->subspriteMode = 2; sprite->oam.priority = 3; - sprite->data7 ++; + sprite->data[7] ++; } - FieldObjectStep(&gMapObjects[sprite->data0], sprite, sub_809268C); + FieldObjectStep(&gMapObjects[sprite->data[0]], sprite, sub_809268C); } bool8 sub_809268C(struct MapObject *mapObject, struct Sprite *sprite) { - return gUnknown_0850DA9C[sprite->data1](mapObject, sprite); + return gUnknown_0850DA9C[sprite->data[1]](mapObject, sprite); } bool8 sub_80926AC (struct MapObject *mapObject, struct Sprite *sprite) @@ -3484,7 +3484,7 @@ bool8 sub_80926B8 (struct MapObject *mapObject, struct Sprite *sprite) { if (FieldObjectExecRegularAnim(mapObject, sprite)) { - sprite->data1 = 0; + sprite->data[1] = 0; } return FALSE; } @@ -3495,7 +3495,7 @@ bool8 sub_8092718(struct MapObject *mapObject, struct Sprite *sprite) { npc_reset(mapObject, sprite); FieldObjectSetRegularAnim(mapObject, sprite, GetStepInPlaceDelay16AnimId(mapObject->mapobj_unk_18)); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } @@ -3505,7 +3505,7 @@ bool8 sub_8092788(struct MapObject *mapObject, struct Sprite *sprite) { npc_reset(mapObject, sprite); FieldObjectSetRegularAnim(mapObject, sprite, GetStepInPlaceDelay32AnimId(mapObject->mapobj_unk_18)); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } @@ -3515,7 +3515,7 @@ bool8 sub_80927F8(struct MapObject *mapObject, struct Sprite *sprite) { npc_reset(mapObject, sprite); FieldObjectSetRegularAnim(mapObject, sprite, GetStepInPlaceDelay8AnimId(mapObject->mapobj_unk_18)); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } @@ -3525,7 +3525,7 @@ bool8 sub_8092868(struct MapObject *mapObject, struct Sprite *sprite) { npc_reset(mapObject, sprite); FieldObjectSetRegularAnim(mapObject, sprite, GetStepInPlaceDelay4AnimId(mapObject->mapobj_unk_18)); - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } @@ -3536,14 +3536,14 @@ bool8 sub_80928D8(struct MapObject *mapObject, struct Sprite *sprite) npc_reset(mapObject, sprite); FieldObjectSetRegularAnim(mapObject, sprite, GetFaceDirectionAnimId(mapObject->mapobj_unk_18)); mapObject->mapobj_bit_13 = TRUE; - sprite->data1 = 1; + sprite->data[1] = 1; return TRUE; } bool8 sub_809290C(struct MapObject *mapObject, struct Sprite *sprite) { if (FieldObjectExecRegularAnim(mapObject, sprite)) { - sprite->data1 = 2; + sprite->data[1] = 2; return TRUE; } return FALSE; @@ -3561,7 +3561,7 @@ void npc_reset(struct MapObject *mapObject, struct Sprite *sprite) mapObject->mapobj_bit_6 = FALSE; mapObject->mapobj_bit_7 = FALSE; mapObject->mapobj_unk_1C = 0xFF; - sprite->data1 = 0; + sprite->data[1] = 0; } #define dirn2anim(name, table)\ @@ -3680,7 +3680,7 @@ void npc_set_running_behaviour_etc(struct MapObject *mapObject, u8 animPattern) mapObject->mapobj_unk_21 = 0; mapObject->animId = 0; gSprites[mapObject->spriteId].callback = gUnknown_08505438[animPattern]; - gSprites[mapObject->spriteId].data1 = 0; + gSprites[mapObject->spriteId].data[1] = 0; } dirn2anim(npc_running_behaviour_by_direction, gUnknown_0850DB53) @@ -3811,7 +3811,7 @@ bool8 sub_8092E9C(u8 localId, u8 mapNum, u8 mapGroup) { u8 mapObjectId; - if (!TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &mapObjectId) && gSprites[gMapObjects[mapObjectId].spriteId].data7 & 0x02) + if (!TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &mapObjectId) && gSprites[gMapObjects[mapObjectId].spriteId].data[7] & 0x02) { return TRUE; } @@ -3824,7 +3824,7 @@ void sub_8092EF0(u8 localId, u8 mapNum, u8 mapGroup) if (!TryGetFieldObjectIdByLocalIdAndMap(localId, mapNum, mapGroup, &mapObjectId)) { - gSprites[gMapObjects[mapObjectId].spriteId].data7 |= 0x04; + gSprites[gMapObjects[mapObjectId].spriteId].data[7] |= 0x04; } } @@ -3975,7 +3975,7 @@ bool8 FieldObjectSetSpecialAnim(struct MapObject *mapObject, u8 specialAnimId) mapObject->mapobj_unk_1C = specialAnimId; mapObject->mapobj_bit_6 = TRUE; mapObject->mapobj_bit_7 = FALSE; - gSprites[mapObject->spriteId].data2 = 0; + gSprites[mapObject->spriteId].data[2] = 0; return FALSE; } @@ -3998,8 +3998,8 @@ void FieldObjectClearAnim(struct MapObject *mapObject) mapObject->mapobj_unk_1C = 0xFF; mapObject->mapobj_bit_6 = FALSE; mapObject->mapobj_bit_7 = FALSE; - gSprites[mapObject->spriteId].data1 = 0; - gSprites[mapObject->spriteId].data2 = 0; + gSprites[mapObject->spriteId].data[1] = 0; + gSprites[mapObject->spriteId].data[2] = 0; } u8 FieldObjectCheckIfSpecialAnimFinishedOrInactive(struct MapObject *mapObject) @@ -4137,7 +4137,7 @@ static u32 state_to_direction(u8 a0, u32 a1, u32 a2) static void FieldObjectExecSpecialAnim(struct MapObject *mapObject, struct Sprite *sprite) { - if (gUnknown_0850DC50[mapObject->mapobj_unk_1C][sprite->data2](mapObject, sprite)) + if (gUnknown_0850DC50[mapObject->mapobj_unk_1C][sprite->data[2]](mapObject, sprite)) { mapObject->mapobj_bit_7 = TRUE; } @@ -4145,10 +4145,10 @@ static void FieldObjectExecSpecialAnim(struct MapObject *mapObject, struct Sprit bool8 FieldObjectExecRegularAnim(struct MapObject *mapObject, struct Sprite *sprite) { - if (gUnknown_0850DC50[mapObject->mapobj_unk_1C][sprite->data2](mapObject, sprite)) + if (gUnknown_0850DC50[mapObject->mapobj_unk_1C][sprite->data[2]](mapObject, sprite)) { mapObject->mapobj_unk_1C = 0xFF; - sprite->data2 = 0; + sprite->data[2] = 0; return TRUE; } return FALSE; @@ -4157,7 +4157,7 @@ bool8 FieldObjectExecRegularAnim(struct MapObject *mapObject, struct Sprite *spr void FieldObjectSetRegularAnim(struct MapObject *mapObject, struct Sprite *sprite, u8 animId) { mapObject->mapobj_unk_1C = animId; - sprite->data2 = 0; + sprite->data[2] = 0; } // file boundary? @@ -4168,7 +4168,7 @@ void an_look_any(struct MapObject *mapObject, struct Sprite *sprite, u8 directio npc_coords_shift_still(mapObject); obj_npc_animation_step(mapObject, sprite, get_go_image_anim_num(mapObject->mapobj_unk_18)); sprite->animPaused = TRUE; - sprite->data2 = 1; + sprite->data[2] = 1; } bool8 sub_8093950(struct MapObject *mapObject, struct Sprite *sprite) @@ -4212,7 +4212,7 @@ void npc_apply_direction(struct MapObject *mapObject, struct Sprite *sprite, u8 sprite->animPaused = TRUE; } mapObject->mapobj_bit_2 = TRUE; - sprite->data2 = 1; + sprite->data[2] = 1; } void do_go_anim(struct MapObject *mapObject, struct Sprite *sprite, u8 direction, u8 speed) @@ -4255,7 +4255,7 @@ void sub_8093AF0(struct MapObject *mapObject, struct Sprite *sprite, u8 directio sub_80976DC(sprite, direction); sprite->animPaused = FALSE; mapObject->mapobj_bit_2 = TRUE; - sprite->data2 = 1; + sprite->data[2] = 1; } void sub_8093B60(struct MapObject *mapObject, struct Sprite *sprite, u8 direction) @@ -4287,7 +4287,7 @@ bool8 name##_2(struct MapObject *mapObject, struct Sprite *sprite)\ {\ if (fn2(mapObject, sprite))\ {\ - sprite->data2 = 2;\ + sprite->data[2] = 2;\ return TRUE;\ }\ return FALSE;\ @@ -4323,7 +4323,7 @@ void sub_8093FC4(struct MapObject *mapObject, struct Sprite *sprite, u8 directio sub_8092F88(direction, &x, &y, displacements[speed], displacements[speed]); npc_coords_shift(mapObject, mapObject->coords2.x + x, mapObject->coords2.y + y); sub_809783C(sprite, direction, speed, a5); - sprite->data2 = 1; + sprite->data[2] = 1; sprite->animPaused = 0; mapObject->mapobj_bit_2 = 1; mapObject->mapobj_bit_4 = 1; @@ -4345,11 +4345,11 @@ u8 sub_80940C4(struct MapObject *mapObject, struct Sprite *sprite, u8 callback(s memcpy(displacements, gUnknown_0850DFC2, sizeof gUnknown_0850DFC2); result = callback(sprite); - if (result == 1 && displacements[sprite->data4] != 0) + if (result == 1 && displacements[sprite->data[4]] != 0) { x = 0; y = 0; - sub_8092F88(mapObject->placeholder18, &x, &y, displacements[sprite->data4], displacements[sprite->data4]); + sub_8092F88(mapObject->placeholder18, &x, &y, displacements[sprite->data[4]], displacements[sprite->data[4]]); npc_coords_shift(mapObject, mapObject->coords2.x + x, mapObject->coords2.y + y); mapObject->mapobj_bit_2 = TRUE; mapObject->mapobj_bit_4 = TRUE; @@ -4418,7 +4418,7 @@ bool8 name##_2(struct MapObject *mapObject, struct Sprite *sprite)\ if (fn2(mapObject, sprite))\ {\ mapObject->mapobj_bit_22 = FALSE;\ - sprite->data2 = 2;\ + sprite->data[2] = 2;\ return TRUE;\ }\ return FALSE;\ @@ -4431,15 +4431,15 @@ maybe_shadow_1_macro(sub_8094338, maybe_shadow_1, sub_80941B0, DIR_EAST, 2, 0) void sub_8094390(struct Sprite *sprite, u16 duration) { - sprite->data2 = 1; - sprite->data3 = duration; + sprite->data[2] = 1; + sprite->data[3] = duration; } bool8 sub_8094398(struct MapObject *mapObject, struct Sprite *sprite) { - if (-- sprite->data3 == 0) + if (-- sprite->data[3] == 0) { - sprite->data2 = 2; + sprite->data[2] = 2; return TRUE; } return FALSE; @@ -4468,15 +4468,15 @@ void sub_8094554(struct MapObject *mapObject, struct Sprite *sprite, u8 directio FieldObjectSetDirection(mapObject, direction); npc_apply_anim_looping(mapObject, sprite, animNum); sprite->animPaused = FALSE; - sprite->data2 = 1; - sprite->data3 = duration; + sprite->data[2] = 1; + sprite->data[3] = duration; } bool8 sub_809459C(struct MapObject *mapObject, struct Sprite *sprite) { - if (-- sprite->data3 == 0) + if (-- sprite->data[3] == 0) { - sprite->data2 = 2; + sprite->data[2] = 2; sprite->animPaused = TRUE; return TRUE; } @@ -4485,7 +4485,7 @@ bool8 sub_809459C(struct MapObject *mapObject, struct Sprite *sprite) bool8 sub_80945C4(struct MapObject *mapObject, struct Sprite *sprite) { - if (sprite->data3 & 1) + if (sprite->data[3] & 1) { sprite->animDelayCounter ++; } @@ -4539,7 +4539,7 @@ void npc_set_direction_and_anim__an_proceed(struct MapObject *mapObject, struct { obj_anim_image_set_and_seek(sprite, animNum, 0); FieldObjectSetDirection(mapObject, direction); - sprite->data2 = 1; + sprite->data[2] = 1; } bool8 sub_8094DAC(struct MapObject *mapObject, struct Sprite *sprite) @@ -4552,7 +4552,7 @@ bool8 sub_8094DC4(struct MapObject *mapObject, struct Sprite *sprite) { if (sub_80979BC(sprite)) { - sprite->data2 = 2; + sprite->data[2] = 2; return TRUE; } return FALSE; @@ -4575,7 +4575,7 @@ bool8 name##_2(struct MapObject *mapObject, struct Sprite *sprite)\ {\ if (sub_80941C8(mapObject, sprite))\ {\ - sprite->data2 = 2;\ + sprite->data[2] = 2;\ mapObject->mapobj_bit_5 = FALSE;\ return TRUE;\ }\ @@ -4595,7 +4595,7 @@ bool8 sub_8094F38(struct MapObject *mapObject, struct Sprite *sprite) { an_look_any(mapObject, sprite, sub_8092AF8(mapObject->coords2.x, mapObject->coords2.y, gMapObjects[mapObjectId].coords2.x, gMapObjects[mapObjectId].coords2.y)); } - sprite->data2 = 1; + sprite->data[2] = 1; return TRUE; } @@ -4607,21 +4607,21 @@ bool8 sub_8094F94(struct MapObject *mapObject, struct Sprite *sprite) { an_look_any(mapObject, sprite, GetOppositeDirection(sub_8092AF8(mapObject->coords2.x, mapObject->coords2.y, gMapObjects[mapObjectId].coords2.x, gMapObjects[mapObjectId].coords2.y))); } - sprite->data2 = 1; + sprite->data[2] = 1; return TRUE; } bool8 sub_8094FF8(struct MapObject *mapObject, struct Sprite *sprite) { mapObject->mapobj_bit_9 = TRUE; - sprite->data2 = 1; + sprite->data[2] = 1; return TRUE; } bool8 sub_8095008(struct MapObject *mapObject, struct Sprite *sprite) { mapObject->mapobj_bit_9 = FALSE; - sprite->data2 = 1; + sprite->data[2] = 1; return TRUE; } @@ -4653,42 +4653,42 @@ bool8 sub_8095450(struct MapObject *mapObject, struct Sprite *sprite) bool8 sub_8095460(struct MapObject *mapObject, struct Sprite *sprite) { mapObject->mapobj_bit_25 = FALSE; - sprite->data2 = 1; + sprite->data[2] = 1; return TRUE; } bool8 sub_8095470(struct MapObject *mapObject, struct Sprite *sprite) { mapObject->mapobj_bit_25 = TRUE; - sprite->data2 = 1; + sprite->data[2] = 1; return TRUE; } bool8 sub_8095480(struct MapObject *mapObject, struct Sprite *sprite) { mapObject->mapobj_bit_12 = TRUE; - sprite->data2 = 1; + sprite->data[2] = 1; return TRUE; } bool8 sub_8095490(struct MapObject *mapObject, struct Sprite *sprite) { mapObject->mapobj_bit_12 = GetFieldObjectGraphicsInfo(mapObject->graphicsId)->inanimate; - sprite->data2 = 1; + sprite->data[2] = 1; return TRUE; } bool8 sub_80954BC(struct MapObject *mapObject, struct Sprite *sprite) { mapObject->mapobj_bit_13 = TRUE; - sprite->data2 = 1; + sprite->data[2] = 1; return TRUE; } bool8 sub_80954CC(struct MapObject *mapObject, struct Sprite *sprite) { mapObject->mapobj_bit_13 = FALSE; - sprite->data2 = 1; + sprite->data[2] = 1; return TRUE; } @@ -4696,7 +4696,7 @@ bool8 do_exclamation_mark_bubble_1(struct MapObject *mapObject, struct Sprite *s { FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]); FieldEffectStart(FLDEFF_EXCLAMATION_MARK_ICON_1); - sprite->data2 = 1; + sprite->data[2] = 1; return TRUE; } @@ -4704,7 +4704,7 @@ bool8 do_exclamation_mark_bubble_2(struct MapObject *mapObject, struct Sprite *s { FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]); FieldEffectStart(FLDEFF_EXCLAMATION_MARK_ICON_2); - sprite->data2 = 1; + sprite->data[2] = 1; return TRUE; } @@ -4712,7 +4712,7 @@ bool8 do_heart_bubble(struct MapObject *mapObject, struct Sprite *sprite) { FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]); FieldEffectStart(FLDEFF_HEART_ICON); - sprite->data2 = 1; + sprite->data[2] = 1; return TRUE; } @@ -4725,11 +4725,11 @@ bool8 sub_8095548(struct MapObject *mapObject, struct Sprite *sprite) } if (mapObject->animPattern != 0x39 && mapObject->animPattern != 0x3A) { - sprite->data2 = 2; + sprite->data[2] = 2; return TRUE; } sub_8155D78(mapObject); - sprite->data2 = 1; + sprite->data[2] = 1; return sub_809558C(mapObject, sprite); } @@ -4737,7 +4737,7 @@ bool8 sub_809558C(struct MapObject *mapObject, struct Sprite *sprite) { if (sub_8155DA0(mapObject)) { - sprite->data2 = 2; + sprite->data[2] = 2; return TRUE; } return FALSE; @@ -4746,7 +4746,7 @@ bool8 sub_809558C(struct MapObject *mapObject, struct Sprite *sprite) bool8 sub_80955AC(struct MapObject *mapObject, struct Sprite *sprite) { obj_anim_image_set_and_seek(sprite, 1, 0); - sprite->data2 = 1; + sprite->data[2] = 1; return FALSE; } @@ -4755,7 +4755,7 @@ bool8 sub_80955C8(struct MapObject *mapObject, struct Sprite *sprite) if (sub_80979BC(sprite)) { SetFieldObjectStepTimer(sprite, 32); - sprite->data2 = 2; + sprite->data[2] = 2; } return FALSE; } @@ -4766,7 +4766,7 @@ bool8 sub_80955EC(struct MapObject *mapObject, struct Sprite *sprite) if (RunFieldObjectStepTimer(sprite)) { mapObject->mapobj_bit_13 = TRUE; - sprite->data2 = 3; + sprite->data[2] = 3; } return FALSE; } @@ -4774,7 +4774,7 @@ bool8 sub_80955EC(struct MapObject *mapObject, struct Sprite *sprite) bool8 sub_8095628(struct MapObject *mapObject, struct Sprite *sprite) { obj_anim_image_set_and_seek(sprite, 1, 0); - sprite->data2 = 1; + sprite->data[2] = 1; return FALSE; } @@ -4783,7 +4783,7 @@ bool8 sub_8095644(struct MapObject *mapObject, struct Sprite *sprite) if (sub_80979BC(sprite)) { SetFieldObjectStepTimer(sprite, 32); - sprite->data2 = 2; + sprite->data[2] = 2; } return FALSE; } @@ -4794,7 +4794,7 @@ bool8 sub_8095668(struct MapObject *mapObject, struct Sprite *sprite) if (RunFieldObjectStepTimer(sprite)) { mapObject->mapobj_bit_13 = TRUE; - sprite->data2 = 3; + sprite->data[2] = 3; } return FALSE; } @@ -4802,14 +4802,14 @@ bool8 sub_8095668(struct MapObject *mapObject, struct Sprite *sprite) bool8 sub_80956A4(struct MapObject *mapObject, struct Sprite *sprite) { mapObject->mapobj_bit_26 = TRUE; - sprite->data2 = 1; + sprite->data[2] = 1; return TRUE; } bool8 sub_80956B4(struct MapObject *mapObject, struct Sprite *sprite) { mapObject->mapobj_bit_26 = FALSE; - sprite->data2 = 1; + sprite->data[2] = 1; return TRUE; } @@ -4856,7 +4856,7 @@ bool8 name##_2(struct MapObject *mapObject, struct Sprite *sprite)\ if (fn2(mapObject, sprite))\ {\ sprite->affineAnimPaused = TRUE;\ - sprite->data2 = 2;\ + sprite->data[2] = 2;\ return TRUE;\ }\ return FALSE;\ @@ -4873,7 +4873,7 @@ static void sub_80958C0(struct MapObject *mapObject, struct Sprite *sprite, u8 d npc_coords_shift_still(mapObject); obj_npc_animation_step(mapObject, sprite, sub_80929FC(direction)); sprite->animPaused = TRUE; - sprite->data2 = 1; + sprite->data[2] = 1; } bool8 sub_8095900(struct MapObject *mapObject, struct Sprite *sprite) @@ -4941,7 +4941,7 @@ bool8 sub_8095B0C(struct MapObject *mapObject, struct Sprite *sprite) bool8 sub_8095B44(struct MapObject *mapObject, struct Sprite *sprite) { sub_8095AF0(mapObject, sprite); - sprite->data2 = 1; + sprite->data[2] = 1; return sub_8095B64(mapObject, sprite); } @@ -4949,7 +4949,7 @@ bool8 sub_8095B64(struct MapObject *mapObject, struct Sprite *sprite) { if (sub_8095B0C(mapObject, sprite)) { - sprite->data2 = 2; + sprite->data[2] = 2; return TRUE; } return FALSE; @@ -5017,7 +5017,7 @@ an_walk_any_2_macro(sub_8096428, sub_8096330, npc_obj_ministep_stop_on_arrival, bool8 sub_8096468(struct MapObject *mapObject, struct Sprite *sprite) { sub_8097FA4(mapObject); - sprite->data2 = 1; + sprite->data[2] = 1; return TRUE; } @@ -5025,7 +5025,7 @@ bool8 sub_809647C(struct MapObject *mapObject, struct Sprite *sprite) { sub_8098044(mapObject->mapobj_unk_1B); sprite->pos2.y = 0; - sprite->data2 = 1; + sprite->data[2] = 1; return TRUE; } @@ -5034,7 +5034,7 @@ bool8 sub_8096494(struct MapObject *mapObject, struct Sprite *sprite) if (sprite->pos2.y == 0) { sub_8098044(mapObject->mapobj_unk_1B); - sprite->data2 = 1; + sprite->data[2] = 1; return TRUE; } return FALSE; diff --git a/src/field_poison.c b/src/field_poison.c new file mode 100644 index 000000000..b83788210 --- /dev/null +++ b/src/field_poison.c @@ -0,0 +1,148 @@ +#include "global.h" +#include "string_util.h" +#include "party_menu.h" +#include "constants/species.h" +#include "task.h" +#include "field_message_box.h" +#include "strings.h" +#include "rom_818CFC8.h" +#include "battle_frontier_2.h" +#include "pokenav.h" +#include "event_data.h" +#include "script.h" +#include "battle.h" +#include "fldeff_80F9BCC.h" +#include "field_poison.h" + +static bool32 sub_80F9568(struct Pokemon *pokemon) +{ + u16 species = GetMonData(pokemon, MON_DATA_SPECIES2); + if (species == SPECIES_NONE || species == SPECIES_EGG) + { + return FALSE; + } + return TRUE; +} + +static bool32 sub_80F958C(void) +{ + int i; + struct Pokemon *pokemon; + + for (pokemon = gPlayerParty, i = 0; i < PARTY_SIZE; i++, pokemon++) + { + if (sub_80F9568(pokemon) && GetMonData(pokemon, MON_DATA_HP) != 0) + { + return FALSE; + } + } + return TRUE; +} + +static void sub_80F95C0(u8 partyIdx) +{ + struct Pokemon *pokemon = gPlayerParty + partyIdx; + unsigned int status = STATUS_NONE; + AdjustFriendship(pokemon, 0x07); + SetMonData(pokemon, MON_DATA_STATUS, &status); + GetMonData(pokemon, MON_DATA_NICKNAME, gStringVar1); + StringGetEnd10(gStringVar1); +} + +static bool32 sub_80F960C(u8 partyIdx) +{ + struct Pokemon *pokemon = gPlayerParty + partyIdx; + if (sub_80F9568(pokemon) && GetMonData(pokemon, MON_DATA_HP) == 0 && pokemon_ailments_get_primary(GetMonData(pokemon, MON_DATA_STATUS)) == AILMENT_PSN) + { + return TRUE; + } + return FALSE; +} + +static void sub_80F9654(u8 taskId) +{ + s16 *data = gTasks[taskId].data; + switch (data[0]) + { + case 0: + for (; data[1] < PARTY_SIZE; data[1]++) + { + if (sub_80F960C(data[1])) + { + sub_80F95C0(data[1]); + ShowFieldMessage(gText_PkmnFainted3); + data[0]++; + return; + } + } + data[0] = 2; + break; + case 1: + if (IsFieldMessageBoxHidden()) + { + data[0]--; + } + break; + case 2: + if (sub_80F958C()) + { + if (InBattlePyramid() | InBattlePike() || sub_81D5C18()) + { + gSpecialVar_Result = 2; + } + else + { + gSpecialVar_Result = 1; + } + } + else + { + gSpecialVar_Result = 0; + } + EnableBothScriptContexts(); + DestroyTask(taskId); + break; + } +} + +void sub_80F972C(void) +{ + CreateTask(sub_80F9654, 80); + ScriptContext1_Stop(); +} + +unsigned int overworld_poison(void) +{ + int i; + unsigned int hp; + struct Pokemon *pokemon = gPlayerParty; + unsigned int numPoisoned = 0; + unsigned int numFainted = 0; + for (i = 0; i < PARTY_SIZE; i++) + { + if (GetMonData(pokemon, MON_DATA_SANITY_BIT2) && pokemon_ailments_get_primary(GetMonData(pokemon, MON_DATA_STATUS)) == AILMENT_PSN) + { + hp = GetMonData(pokemon, MON_DATA_HP); + if (hp == 0 || --hp == 0) + { + numFainted++; + } + SetMonData(pokemon, MON_DATA_HP, &hp); + numPoisoned++; + } + pokemon++; + } + if (numFainted != 0 || numPoisoned != 0) + { + overworld_poison_effect(); + } + if (numFainted != 0) + { + return FLDPSN_FNT; + } + if (numPoisoned != 0) + { + return FLDPSN_PSN; + } + return FLDPSN_NONE; +} diff --git a/src/field_special_scene.c b/src/field_special_scene.c index f92f342eb..d46ddeaa6 100755 --- a/src/field_special_scene.c +++ b/src/field_special_scene.c @@ -2,11 +2,11 @@ #include "task.h" #include "sprite.h" #include "field_map_obj.h" -#include "songs.h" +#include "constants/songs.h" #include "sound.h" #include "palette.h" #include "script.h" -#include "vars.h" +#include "constants/vars.h" #include "event_data.h" #include "main.h" diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c index bc7177bd7..52babe346 100644 --- a/src/hall_of_fame.c +++ b/src/hall_of_fame.c @@ -9,21 +9,22 @@ #include "gpu_regs.h" #include "main.h" #include "sound.h" -#include "songs.h" +#include "constants/songs.h" #include "decompress.h" #include "save.h" #include "window.h" #include "bg.h" -#include "species.h" -#include "game_stat.h" +#include "constants/species.h" +#include "constants/game_stat.h" #include "blend_palette.h" #include "string_util.h" #include "m4a.h" #include "international_string_util.h" #include "unknown_task.h" #include "trig.h" -#include "rng.h" +#include "random.h" #include "event_data.h" +#include "overworld.h" struct HallofFameMon { @@ -57,6 +58,7 @@ extern struct MusicPlayerInfo gMPlay_BGM; extern MainCallback gGameContinueCallback; extern u32 gDamagedSaveSectors; extern u8 gReservedSpritePaletteCount; +extern const u8 gSpeciesNames[][11]; #define HALL_OF_FAME_MAX_TEAMS 50 @@ -580,9 +582,9 @@ static void Task_Hof_SetMonDisplayTask(u8 taskId) gTasks[taskId].func = Task_Hof_DisplayMon; } -#define tDestinationX data1 -#define tDestinationY data2 -#define tSpecies data7 +#define tDestinationX data[1] +#define tDestinationY data[2] +#define tSpecies data[7] static void Task_Hof_DisplayMon(u8 taskId) { @@ -613,7 +615,7 @@ static void Task_Hof_DisplayMon(u8 taskId) spriteId = sub_818D3E4(currMon->species, currMon->tid, currMon->personality, 1, xPos, yPos, currMonId, 0xFFFF); gSprites[spriteId].tDestinationX = field4; gSprites[spriteId].tDestinationY = field6; - gSprites[spriteId].data0 = 0; + gSprites[spriteId].data[0] = 0; gSprites[spriteId].tSpecies = currMon->species; gSprites[spriteId].callback = SpriteCB_GetOnScreenAndAnimate; gTasks[taskId].tMonSpriteId(currMonId) = spriteId; @@ -1404,13 +1406,13 @@ static void sub_81751A4(struct Sprite* sprite) u8 tableID; sprite->pos2.y++; - sprite->pos2.y += sprite->data1; + sprite->pos2.y += sprite->data[1]; - tableID = sprite->data0; + tableID = sprite->data[0]; rand = (Random() % 4) + 8; sprite->pos2.x = rand * gSineTable[tableID] / 256; - sprite->data0 += 4; + sprite->data[0] += 4; } } @@ -1428,9 +1430,9 @@ static bool8 sub_81751FC(void) StartSpriteAnim(sprite, Random() % 17); if (Random() & 3) - sprite->data1 = 0; + sprite->data[1] = 0; else - sprite->data1 = 1; + sprite->data[1] = 1; return FALSE; } diff --git a/src/heal_location.c b/src/heal_location.c index efc534170..aa90fe1ae 100644 --- a/src/heal_location.c +++ b/src/heal_location.c @@ -1,10 +1,10 @@ // Includes #include "global.h" -#include "map_constants.h" +#include "constants/maps.h" #include "heal_location.h" -#define HEAL_LOCATION(map, x, y) {MAP_GROUP_##map, MAP_ID_##map, x, y} +#define HEAL_LOCATION(map, x, y) {MAP_GROUP(map), MAP_NUM(map), x, y} // Static type declarations diff --git a/src/international_string_util.c b/src/international_string_util.c index 81985d614..89b4a7a69 100644 --- a/src/international_string_util.c +++ b/src/international_string_util.c @@ -1,6 +1,6 @@ #include "global.h" -#include "international_string_util.h" #include "text.h" +#include "international_string_util.h" extern s32 convert_pixel_width_to_tile_width(s32 a0); // script menu diff --git a/src/item.c b/src/item.c index 32347623e..931027e25 100644 --- a/src/item.c +++ b/src/item.c @@ -1,11 +1,11 @@ #include "global.h" #include "item.h" -#include "items.h" +#include "constants/items.h" #include "string_util.h" #include "text.h" #include "event_data.h" -extern void ApplyNewEncyprtionKeyToHword(u16* hword, u32 newKey); +extern void ApplyNewEncryptionKeyToHword(u16* hword, u32 newKey); extern bool8 InBattlePyramid(void); extern const u8 gText_PokeBalls[]; @@ -45,19 +45,19 @@ void SetBagItemId(u16* slot, u16 newItemId) *slot = newItemId; } -void ApplyNewEncyprtionKeyToBagItems(u32 newKey) +void ApplyNewEncryptionKeyToBagItems(u32 newKey) { u32 pocket, item; for (pocket = 0; pocket < 5; pocket++) { for (item = 0; item < gBagPockets[pocket].capacity; item++) - ApplyNewEncyprtionKeyToHword(&(gBagPockets[pocket].itemSlots[item].quantity), newKey); + ApplyNewEncryptionKeyToHword(&(gBagPockets[pocket].itemSlots[item].quantity), newKey); } } -void ApplyNewEncyprtionKeyToBagItems_(u32 newKey) // really GF? +void ApplyNewEncryptionKeyToBagItems_(u32 newKey) // really GF? { - ApplyNewEncyprtionKeyToBagItems(newKey); + ApplyNewEncryptionKeyToBagItems(newKey); } // TODO: move those max values to defines diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 62171e475..95270974a 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -8,10 +8,10 @@ #include "rom6.h" #include "event_data.h" #include "script.h" -#include "rng.h" +#include "random.h" #include "string_util.h" #include "item.h" -#include "items.h" +#include "constants/items.h" #include "item_menu.h" #include "text.h" #include "easy_chat.h" diff --git a/src/load_save.c b/src/load_save.c index 68d978e3d..e0106c0a8 100644 --- a/src/load_save.c +++ b/src/load_save.c @@ -3,19 +3,34 @@ #include "load_save.h" #include "main.h" #include "pokemon.h" -#include "rng.h" -#include "malloc.h" +#include "random.h" extern void* gUnknown_0203CF5C; extern bool16 IdentifyFlash(void); extern void SetBagItemsPointers(void); extern void SetDecorationInventoriesPointers(void); +extern void ApplyNewEncryptionKeyToGameStats(u32 key); +extern void ApplyNewEncryptionKeyToBagItems(u32 newKey); +extern void ApplyNewEncryptionKeyToBagItems_(u32 key); +extern void ApplyNewEncryptionKeyToBerryPowder(u32 key); +extern void sub_8084FAC(int unused); -void ApplyNewEncyprtionKeyToAllEncryptedData(u32 encryptionKey); +// this is probably wrong or misleading due to it being used in ResetHeap... +extern void InitHeap(void *pointer, u32 size); #define SAVEBLOCK_MOVE_RANGE 128 +struct LoadedSaveData +{ + /*0x0000*/ struct ItemSlot items[30]; + /*0x0078*/ struct ItemSlot keyItems[30]; + /*0x00F0*/ struct ItemSlot pokeBalls[16]; + /*0x0130*/ struct ItemSlot TMsHMs[64]; + /*0x0230*/ struct ItemSlot berries[46]; + /*0x02E8*/ struct MailStruct mail[MAIL_COUNT]; +}; + EWRAM_DATA struct SaveBlock2 gSaveblock2 = {0}; EWRAM_DATA u8 gSaveblock2_DMA[SAVEBLOCK_MOVE_RANGE] = {0}; @@ -25,6 +40,11 @@ EWRAM_DATA u8 gSaveblock1_DMA[SAVEBLOCK_MOVE_RANGE] = {0}; EWRAM_DATA struct PokemonStorage gPokemonStorage = {0}; EWRAM_DATA u8 gSaveblock3_DMA[SAVEBLOCK_MOVE_RANGE] = {0}; +EWRAM_DATA struct LoadedSaveData gLoadedSaveData = {0}; +EWRAM_DATA u32 gLastEncryptionKey = {0}; + +void ApplyNewEncryptionKeyToAllEncryptedData(u32 encryptionKey); + void CheckForFlashMemory(void) { if (!IdentifyFlash()) @@ -60,18 +80,45 @@ void SetSaveBlocksPointers(u16 offset) SetDecorationInventoriesPointers(); } +// stuff i used to try and match MoveSaveBlocks_ResetHeap struct SaveBlocksInOne { struct SaveBlock2 sav2; struct SaveBlock1 sav1; struct PokemonStorage sav3; }; + +extern struct SaveBlocksInOne gHeap; + +#define ewram_addr 0x02000000 // oh no... +#define ewram_addr2 0x02000f2c +#define ewram_addr3 0x02004cb4 + +#define eSaveBlockCopy (*(struct SaveBlocksInOne *)(ewram_addr + 0x0)) +#define eSaveBlock2Copy (*(struct SaveBlock2 *)((void*)(ewram_addr + 0x0))) +#define eSaveBlock1Copy (*(struct SaveBlock1 *)((void*)(ewram_addr + sizeof(struct SaveBlock2)))) +#define eSaveBlock3Copy (*(struct PokemonStorage *)((void*)(ewram_addr + sizeof(struct SaveBlock2) + sizeof(struct SaveBlock1)))) + +#ifdef NONMATCHING // this is one devil of a motherfucker /* + The reason MoveSaveBlocks_ResetHeap mismatches is due to incorrect memcpys. Various + things have been tried, such as: direct struct copys, ewram casts, use of defining + the addresses manually, using memcpy anyway, delayed allocation of pointers at + the start of function, as seen above and below. Scope declaration has been used to try and + reproduce the correct macro thought to be used, but nothing has worked. It is worth + noting that at this point that the compiler will delay the allocation of the save block + pointers at the beginningto be allocated later: which might matter for matching this. + Due to loading shared ewram heap areas directly, it is very likely emerald used ewram + defines for this function, but there is no known example of a matching define. + In addition, dead code might be present in the form of a runtime variable used + to fix the address of the save blocks. This has been tested and is shown to affect + the registers as well. +*/ void MoveSaveBlocks_ResetHeap(void) { void *vblankCB, *hblankCB; u32 encryptionKey; - struct SaveBlocksInOne* copiedSavs; + struct SaveBlock1 **sav1Copy = &gSaveBlock1Ptr; // r10; // save interrupt functions and turn them off vblankCB = gMain.vblankCallback; @@ -80,24 +127,22 @@ void MoveSaveBlocks_ResetHeap(void) gMain.hblankCallback = NULL; gUnknown_0203CF5C = NULL; - copiedSavs = (void*)(gHeap); - - // copy saveblocks' content - copiedSavs->sav2 = *gSaveBlock2Ptr; - copiedSavs->sav1 = *gSaveBlock1Ptr; - copiedSavs->sav3 = *gPokemonStoragePtr; + // backup the saves. + eSaveBlock1Copy = **sav1Copy; + eSaveBlock2Copy = *gSaveBlock2Ptr; + eSaveBlock3Copy = *gPokemonStoragePtr; // change saveblocks' pointers // argument is a sum of the individual trainerId bytes - SetSaveBlocksPointers(copiedSavs->sav2.playerTrainerId[0] + copiedSavs->sav2.playerTrainerId[1] + copiedSavs->sav2.playerTrainerId[2] + copiedSavs->sav2.playerTrainerId[3]); + SetSaveBlocksPointers(eSaveBlock2Copy.playerTrainerId[0] + eSaveBlock2Copy.playerTrainerId[1] + eSaveBlock2Copy.playerTrainerId[2] + eSaveBlock2Copy.playerTrainerId[3]); // restore saveblock data since the pointers changed - *gSaveBlock2Ptr = copiedSavs->sav2; - *gSaveBlock1Ptr = copiedSavs->sav1; - *gPokemonStoragePtr = copiedSavs->sav3; + **sav1Copy = eSaveBlock1Copy; + *gSaveBlock2Ptr = eSaveBlock2Copy; + *gPokemonStoragePtr = eSaveBlock3Copy; // heap was destroyed in the copying process, so reset it - InitHeap(gHeap, sizeof(gHeap)); + InitHeap((void*)(0x02000000), 0x1C000); // restore interrupt functions gMain.hblankCallback = hblankCB; @@ -105,6 +150,266 @@ void MoveSaveBlocks_ResetHeap(void) // create a new encryption key encryptionKey = (Random() << 0x10) + (Random()); - ApplyNewEncyprtionKeyToAllEncryptedData(encryptionKey); + ApplyNewEncryptionKeyToAllEncryptedData(encryptionKey); gSaveBlock2Ptr->encryptionKey = encryptionKey; -}*/ +} +#else +__attribute__((naked)) +void MoveSaveBlocks_ResetHeap(void) +{ + 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, 0x8\n\ + ldr r5, =gMain\n\ + ldr r0, [r5, 0xC]\n\ + str r0, [sp]\n\ + ldr r1, [r5, 0x10]\n\ + str r1, [sp, 0x4]\n\ + movs r0, 0\n\ + str r0, [r5, 0xC]\n\ + str r0, [r5, 0x10]\n\ + ldr r1, =gUnknown_0203CF5C\n\ + str r0, [r1]\n\ + ldr r4, =0x02000000\n\ + ldr r0, =gSaveBlock2Ptr\n\ + ldr r1, [r0]\n\ + ldr r6, =0x00000f2c\n\ + adds r0, r4, 0\n\ + adds r2, r6, 0\n\ + bl memcpy\n\ + ldr r1, =gSaveBlock1Ptr\n\ + mov r10, r1\n\ + ldr r1, [r1]\n\ + ldr r7, =0x00003d88\n\ + ldr r0, =0x02000f2c\n\ + adds r2, r7, 0\n\ + bl memcpy\n\ + ldr r0, =gPokemonStoragePtr\n\ + mov r8, r0\n\ + ldr r1, [r0]\n\ + ldr r0, =0x000083d0\n\ + mov r9, r0\n\ + ldr r0, =0x02004cb4\n\ + mov r2, r9\n\ + bl memcpy\n\ + ldrb r1, [r4, 0xA]\n\ + ldrb r0, [r4, 0xB]\n\ + adds r1, r0\n\ + ldrb r0, [r4, 0xC]\n\ + adds r1, r0\n\ + ldrb r0, [r4, 0xD]\n\ + adds r0, r1\n\ + bl SetSaveBlocksPointers\n\ + ldr r1, =gSaveBlock2Ptr\n\ + ldr r0, [r1]\n\ + adds r1, r4, 0\n\ + adds r2, r6, 0\n\ + bl memcpy\n\ + mov r1, r10\n\ + ldr r0, [r1]\n\ + ldr r1, =0x02000f2c\n\ + adds r2, r7, 0\n\ + bl memcpy\n\ + mov r1, r8\n\ + ldr r0, [r1]\n\ + ldr r1, =0x02004cb4\n\ + mov r2, r9\n\ + bl memcpy\n\ + movs r1, 0xE0\n\ + lsls r1, 9\n\ + adds r0, r4, 0\n\ + bl InitHeap\n\ + ldr r0, [sp, 0x4]\n\ + str r0, [r5, 0x10]\n\ + ldr r1, [sp]\n\ + str r1, [r5, 0xC]\n\ + bl Random\n\ + adds r4, r0, 0\n\ + bl Random\n\ + lsls r4, 16\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + adds r4, r0\n\ + adds r0, r4, 0\n\ + bl ApplyNewEncryptionKeyToAllEncryptedData\n\ + ldr r1, =gSaveBlock2Ptr\n\ + ldr r0, [r1]\n\ + adds r0, 0xAC\n\ + str r4, [r0]\n\ + add sp, 0x8\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\ + .pool\n\ + .syntax divided\n"); +} +#endif + +u8 sav2_x1_query_bit1(void) +{ + return gSaveBlock2Ptr->specialSaveWarp & 1; +} + +void sav2_x9_clear_bit1(void) +{ + gSaveBlock2Ptr->specialSaveWarp &= ~1; +} + +void sub_8076D48(void) +{ + gSaveBlock2Ptr->specialSaveWarp |= 1; +} + +void sub_8076D5C(void) +{ + sub_8084FAC(0); + gSaveBlock2Ptr->specialSaveWarp |= 1; +} + +void sav2_gender2_inplace_and_xFE(void) +{ + gSaveBlock2Ptr->specialSaveWarp &= ~1; +} + +void copy_player_party_to_sav1(void) // SavePlayerParty +{ + int i; + + gSaveBlock1Ptr->playerPartyCount = gPlayerPartyCount; + + for (i = 0; i < 6; i++) + gSaveBlock1Ptr->playerParty[i] = gPlayerParty[i]; +} + +void copy_player_party_from_sav1(void) // LoadPlayerParty +{ + int i; + + gPlayerPartyCount = gSaveBlock1Ptr->playerPartyCount; + + for (i = 0; i < 6; i++) + gPlayerParty[i] = gSaveBlock1Ptr->playerParty[i]; +} + +void save_serialize_npcs(void) // SaveMapObjects +{ + int i; + + for (i = 0; i < 16; i++) + gSaveBlock1Ptr->mapObjects[i] = gMapObjects[i]; +} + +void save_deserialize_npcs(void) // LoadMapObjects +{ + int i; + + for (i = 0; i < 16; i++) + gMapObjects[i] = gSaveBlock1Ptr->mapObjects[i]; +} + +void SaveSerializedGame(void) +{ + copy_player_party_to_sav1(); + save_serialize_npcs(); +} + +void LoadSerializedGame(void) +{ + copy_player_party_from_sav1(); + save_deserialize_npcs(); +} + +void copy_bags_and_unk_data_from_save_blocks(void) +{ + int i; + + // load player items. + for (i = 0; i < 30; i++) + gLoadedSaveData.items[i] = gSaveBlock1Ptr->bagPocket_Items[i]; + + // load player key items. + for (i = 0; i < 30; i++) + gLoadedSaveData.keyItems[i] = gSaveBlock1Ptr->bagPocket_KeyItems[i]; + + // load player pokeballs. + for (i = 0; i < 16; i++) + gLoadedSaveData.pokeBalls[i] = gSaveBlock1Ptr->bagPocket_PokeBalls[i]; + + // load player TMs and HMs. + for (i = 0; i < 64; i++) + gLoadedSaveData.TMsHMs[i] = gSaveBlock1Ptr->bagPocket_TMHM[i]; + + // load player berries. + for (i = 0; i < 46; i++) + gLoadedSaveData.berries[i] = gSaveBlock1Ptr->bagPocket_Berries[i]; + + // load mail. + for (i = 0; i < 16; i++) + gLoadedSaveData.mail[i] = gSaveBlock1Ptr->mail[i]; + + gLastEncryptionKey = gSaveBlock2Ptr->encryptionKey; +} + +void copy_bags_and_unk_data_to_save_blocks(void) +{ + int i; + u32 encryptionKeyBackup; + + // save player items. + for (i = 0; i < 30; i++) + gSaveBlock1Ptr->bagPocket_Items[i] = gLoadedSaveData.items[i]; + + // save player key items. + for (i = 0; i < 30; i++) + gSaveBlock1Ptr->bagPocket_KeyItems[i] = gLoadedSaveData.keyItems[i]; + + // save player pokeballs. + for (i = 0; i < 16; i++) + gSaveBlock1Ptr->bagPocket_PokeBalls[i] = gLoadedSaveData.pokeBalls[i]; + + // save player TMs and HMs. + for (i = 0; i < 64; i++) + gSaveBlock1Ptr->bagPocket_TMHM[i] = gLoadedSaveData.TMsHMs[i]; + + // save player berries. + for (i = 0; i < 46; i++) + gSaveBlock1Ptr->bagPocket_Berries[i] = gLoadedSaveData.berries[i]; + + // save mail. + for (i = 0; i < 16; i++) + gSaveBlock1Ptr->mail[i] = gLoadedSaveData.mail[i]; + + encryptionKeyBackup = gSaveBlock2Ptr->encryptionKey; + gSaveBlock2Ptr->encryptionKey = gLastEncryptionKey; + ApplyNewEncryptionKeyToBagItems(encryptionKeyBackup); + gSaveBlock2Ptr->encryptionKey = encryptionKeyBackup; // updated twice? +} + +void ApplyNewEncryptionKeyToHword(u16 *hWord, u32 newKey) +{ + *hWord ^= gSaveBlock2Ptr->encryptionKey; + *hWord ^= newKey; +} + +void ApplyNewEncryptionKeyToWord(u32 *word, u32 newKey) +{ + *word ^= gSaveBlock2Ptr->encryptionKey; + *word ^= newKey; +} + +void ApplyNewEncryptionKeyToAllEncryptedData(u32 encryptionKey) +{ + ApplyNewEncryptionKeyToGameStats(encryptionKey); + ApplyNewEncryptionKeyToBagItems_(encryptionKey); + ApplyNewEncryptionKeyToBerryPowder(encryptionKey); + ApplyNewEncryptionKeyToWord(&gSaveBlock1Ptr->money, encryptionKey); + ApplyNewEncryptionKeyToHword(&gSaveBlock1Ptr->coins, encryptionKey); +} diff --git a/src/lottery_corner.c b/src/lottery_corner.c index 211b78f19..2ded9c943 100644 --- a/src/lottery_corner.c +++ b/src/lottery_corner.c @@ -2,9 +2,9 @@ #include "lottery_corner.h" #include "event_data.h" #include "pokemon.h" -#include "items.h" -#include "rng.h" -#include "species.h" +#include "constants/items.h" +#include "random.h" +#include "constants/species.h" #include "string_util.h" #include "text.h" diff --git a/src/m4a_4.c b/src/m4a_4.c index 99195ec00..e645fbef5 100644 --- a/src/m4a_4.c +++ b/src/m4a_4.c @@ -45,7 +45,7 @@ void m4aMPlayVolumeControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 mplayInfo->ident = ID_NUMBER; } -void m4aMPlayPitchControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 pitch) +void m4aMPlayPitchControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s16 pitch) { s32 i; u32 bit; @@ -66,7 +66,7 @@ void m4aMPlayPitchControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 { if (track->flags & MPT_FLG_EXIST) { - track->keyShiftX = (s16)pitch >> 8; + track->keyShiftX = pitch >> 8; track->pitX = pitch; track->flags |= MPT_FLG_PITCHG; } diff --git a/src/mail.c b/src/mail.c index 1ceb1be1a..ec7ff2ce2 100644 --- a/src/mail.c +++ b/src/mail.c @@ -1,14 +1,14 @@ - -// Includes #include "global.h" +#include "mail.h" +#include "constants/items.h" #include "main.h" #include "overworld.h" #include "task.h" #include "unknown_task.h" #include "palette.h" +#include "text.h" #include "menu.h" #include "menu_helpers.h" -#include "text.h" #include "text_window.h" #include "string_util.h" #include "international_string_util.h" @@ -16,11 +16,46 @@ #include "gpu_regs.h" #include "bg.h" #include "pokemon_icon.h" -#include "species.h" +#include "constants/species.h" #include "malloc.h" #include "easy_chat.h" -#include "mail_data.h" -#include "mail.h" + +extern const u16 gUnknown_08DBE818[]; +extern const u16 gUnknown_08DBE838[]; +extern const u16 gUnknown_08DBE858[]; +extern const u16 gUnknown_08DBE878[]; +extern const u16 gUnknown_08DBE898[]; +extern const u16 gUnknown_08DBE8B8[]; +extern const u16 gUnknown_08DBE8D8[]; +extern const u16 gUnknown_08DBE8F8[]; +extern const u16 gUnknown_08DBE918[]; +extern const u16 gUnknown_08DBE938[]; +extern const u16 gUnknown_08DBE958[]; +extern const u16 gUnknown_08DBE978[]; +extern const u8 gUnknown_08DBE998[]; +extern const u8 gUnknown_08DBFBA4[]; +extern const u8 gUnknown_08DBEB38[]; +extern const u8 gUnknown_08DBFC7C[]; +extern const u8 gUnknown_08DBEC74[]; +extern const u8 gUnknown_08DBFD5C[]; +extern const u8 gUnknown_08DBEE84[]; +extern const u8 gUnknown_08DBFE68[]; +extern const u8 gUnknown_08DBEF5C[]; +extern const u8 gUnknown_08DBFF44[]; +extern const u8 gUnknown_08DBF154[]; +extern const u8 gUnknown_08DC0034[]; +extern const u8 gUnknown_08DBF2D4[]; +extern const u8 gUnknown_08DC0114[]; +extern const u8 gUnknown_08DBF37C[]; +extern const u8 gUnknown_08DC01F4[]; +extern const u8 gUnknown_08DBF50C[]; +extern const u8 gUnknown_08DC0300[]; +extern const u8 gUnknown_08DBF64C[]; +extern const u8 gUnknown_08DC03F0[]; +extern const u8 gUnknown_08DBF7B4[]; +extern const u8 gUnknown_08DC04E8[]; +extern const u8 gUnknown_08DBF904[]; +extern const u8 gUnknown_08DC0600[]; // Static type declarations @@ -52,9 +87,7 @@ struct MailGraphics u16 color12; }; -// Static RAM declarations - -static EWRAM_DATA struct +struct MailRead { /*0x0000*/ u8 strbuf[8][64]; /*0x0200*/ u8 playerName[12]; @@ -73,22 +106,26 @@ static EWRAM_DATA struct /*0x0228*/ const struct MailLayout *layout; /*0x022c*/ u8 bg1TilemapBuffer[0x1000]; /*0x122c*/ u8 bg2TilemapBuffer[0x1000]; -} *gUnknown_0203A134 = NULL; +}; + +// Static RAM declarations + +static EWRAM_DATA struct MailRead *sMailRead = NULL; // Static ROM declarations -void sub_81219F0(void); -void sub_8121A1C(void); -void sub_8121B1C(void); -void sub_8121C50(void); -void sub_8121C64(void); -void sub_8121C98(void); -void sub_8121CC0(void); -void sub_8121D00(void); +static void CB2_InitMailRead(void); +static void sub_8121A1C(void); +static void sub_8121B1C(void); +static void VBlankCB_MailRead(void); +static void CB2_MailRead(void); +static void CB2_WaitForPaletteExitOnKeyPress(void); +static void CB2_ExitOnKeyPress(void); +static void CB2_ExitMailReadFreeVars(void); // .rodata -const struct BgTemplate gUnknown_0859F290[] = { +static const struct BgTemplate sUnknown_0859F290[] = { { .bg = 0, .charBaseIndex = 2, @@ -107,7 +144,7 @@ const struct BgTemplate gUnknown_0859F290[] = { } }; -const struct WindowTemplate gUnknown_0859F29C[] = { +static const struct WindowTemplate sUnknown_0859F29C[] = { { .priority = 0, .tilemapLeft = 2, @@ -120,55 +157,18 @@ const struct WindowTemplate gUnknown_0859F29C[] = { DUMMY_WIN_TEMPLATE }; -const u8 gUnknown_0859F2AC[] = { +static const u8 sUnknown_0859F2AC[] = { 0, 10, 11 }; -const u16 gUnknown_0859F2B0[][2] = { +static const u16 sUnknown_0859F2B0[][2] = { { 0x6ACD, 0x51A5 }, { 0x45FC, 0x38D4 } }; -extern const u16 gUnknown_08DBE818[]; -extern const u16 gUnknown_08DBE838[]; -extern const u16 gUnknown_08DBE858[]; -extern const u16 gUnknown_08DBE878[]; -extern const u16 gUnknown_08DBE898[]; -extern const u16 gUnknown_08DBE8B8[]; -extern const u16 gUnknown_08DBE8D8[]; -extern const u16 gUnknown_08DBE8F8[]; -extern const u16 gUnknown_08DBE918[]; -extern const u16 gUnknown_08DBE938[]; -extern const u16 gUnknown_08DBE958[]; -extern const u16 gUnknown_08DBE978[]; -extern const u8 gUnknown_08DBE998[]; -extern const u8 gUnknown_08DBFBA4[]; -extern const u8 gUnknown_08DBEB38[]; -extern const u8 gUnknown_08DBFC7C[]; -extern const u8 gUnknown_08DBEC74[]; -extern const u8 gUnknown_08DBFD5C[]; -extern const u8 gUnknown_08DBEE84[]; -extern const u8 gUnknown_08DBFE68[]; -extern const u8 gUnknown_08DBEF5C[]; -extern const u8 gUnknown_08DBFF44[]; -extern const u8 gUnknown_08DBF154[]; -extern const u8 gUnknown_08DC0034[]; -extern const u8 gUnknown_08DBF2D4[]; -extern const u8 gUnknown_08DC0114[]; -extern const u8 gUnknown_08DBF37C[]; -extern const u8 gUnknown_08DC01F4[]; -extern const u8 gUnknown_08DBF50C[]; -extern const u8 gUnknown_08DC0300[]; -extern const u8 gUnknown_08DBF64C[]; -extern const u8 gUnknown_08DC03F0[]; -extern const u8 gUnknown_08DBF7B4[]; -extern const u8 gUnknown_08DC04E8[]; -extern const u8 gUnknown_08DBF904[]; -extern const u8 gUnknown_08DC0600[]; - -const struct MailGraphics gUnknown_0859F2B8[] = { +static const struct MailGraphics sUnknown_0859F2B8[] = { { gUnknown_08DBE818, gUnknown_08DBE998, gUnknown_08DBFBA4, 0x02c0, 0x0000, 0x294a, 0x6739 }, { @@ -196,13 +196,13 @@ const struct MailGraphics gUnknown_0859F2B8[] = { } }; -const struct UnkMailStruct Unknown_0859F3A8[] = { +static const struct UnkMailStruct Unknown_0859F3A8[] = { { .numEasyChatWords = 3, .lineHeight = 16 }, { .numEasyChatWords = 3, .lineHeight = 16 }, { .numEasyChatWords = 3, .lineHeight = 16 } }; -const struct MailLayout gUnknown_0859F3B4[] = { +static const struct MailLayout sUnknown_0859F3B4[] = { { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 }, { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 }, { 0x03, 0x00, 0x00, 0x02, 0x04, Unknown_0859F3A8 }, @@ -217,7 +217,7 @@ const struct MailLayout gUnknown_0859F3B4[] = { { 0x03, 0x00, 0x00, 0x02, 0x00, Unknown_0859F3A8 } }; -const struct UnkMailStruct Unknown_0859F444[] = { +static const struct UnkMailStruct Unknown_0859F444[] = { { .numEasyChatWords = 2, .lineHeight = 16 }, { .numEasyChatWords = 2, .lineHeight = 16 }, { .numEasyChatWords = 2, .lineHeight = 16 }, @@ -225,7 +225,7 @@ const struct UnkMailStruct Unknown_0859F444[] = { { .numEasyChatWords = 1, .lineHeight = 16 } }; -const struct MailLayout gUnknown_0859F458[] = { +static const struct MailLayout sUnknown_0859F458[] = { { 0x05, 0x07, 0x58, 0x0b, 0x1e, Unknown_0859F444 }, { 0x05, 0x0a, 0x60, 0x09, 0x1e, Unknown_0859F444 }, { 0x05, 0x0c, 0x68, 0x05, 0x1e, Unknown_0859F444 }, @@ -242,23 +242,23 @@ const struct MailLayout gUnknown_0859F458[] = { // What the heck are these meant to be? Call them u16 for now. -const u16 Unknown_0859F4E8[] = { +static const u16 Unknown_0859F4E8[] = { 0x00, 0x4000, 0x00, 0x00 }; -const u16 Unknown_0859F4F0[] = { +static const u16 Unknown_0859F4F0[] = { 0x00, 0x00, -1, 0x00 }; -const u16 Unknown_0859F4F8[] = { +static const u16 Unknown_0859F4F8[] = { 0x04, 0x00, -1, 0x00 }; -const u16 Unknown_0859F500[] = { +static const u16 Unknown_0859F500[] = { 0x00, 0x40, -1, 0x00 }; -const u16 *const gUnknown_0859F508[] = { +static const u16 *const sUnknown_0859F508[] = { Unknown_0859F4F0, Unknown_0859F4F8, Unknown_0859F500 @@ -266,60 +266,62 @@ const u16 *const gUnknown_0859F508[] = { // .text -void sub_8121478(struct MailStruct *mail, MainCallback callback, bool8 flag) { +void ReadMail(struct MailStruct *mail, void (*callback)(void), bool8 flag) +{ u16 buffer[2]; u16 species; - gUnknown_0203A134 = calloc(1, sizeof(*gUnknown_0203A134)); - gUnknown_0203A134->language = LANGUAGE_ENGLISH; - gUnknown_0203A134->playerIsSender = TRUE; - gUnknown_0203A134->parserSingle = CopyEasyChatWord; - gUnknown_0203A134->parserMultiple = ConvertEasyChatWordsToString; - if (mail->itemId >= ITEM_ORANGE_MAIL && mail->itemId <= ITEM_RETRO_MAIL) { - gUnknown_0203A134->mailType = mail->itemId - ITEM_ORANGE_MAIL; + sMailRead = calloc(1, sizeof(*sMailRead)); + sMailRead->language = LANGUAGE_ENGLISH; + sMailRead->playerIsSender = TRUE; + sMailRead->parserSingle = CopyEasyChatWord; + sMailRead->parserMultiple = ConvertEasyChatWordsToString; + if (IS_ITEM_MAIL(mail->itemId)) + { + sMailRead->mailType = mail->itemId - ITEM_ORANGE_MAIL; } else { - gUnknown_0203A134->mailType = 0; + sMailRead->mailType = 0; flag = FALSE; } - switch (gUnknown_0203A134->playerIsSender) + switch (sMailRead->playerIsSender) { case FALSE: default: - gUnknown_0203A134->layout = &gUnknown_0859F3B4[gUnknown_0203A134->mailType]; + sMailRead->layout = &sUnknown_0859F3B4[sMailRead->mailType]; break; case TRUE: - gUnknown_0203A134->layout = &gUnknown_0859F458[gUnknown_0203A134->mailType]; + sMailRead->layout = &sUnknown_0859F458[sMailRead->mailType]; break; } - species = sub_80D45E8(mail->species, buffer); + species = MailSpeciesToSpecies(mail->species, buffer); if (species >= SPECIES_BULBASAUR && species < NUM_SPECIES) { - switch (gUnknown_0203A134->mailType) + switch (sMailRead->mailType) { default: - gUnknown_0203A134->animsActive = 0; + sMailRead->animsActive = 0; break; case ITEM_BEAD_MAIL - ITEM_ORANGE_MAIL: - gUnknown_0203A134->animsActive = 1; + sMailRead->animsActive = 1; break; case ITEM_DREAM_MAIL - ITEM_ORANGE_MAIL: - gUnknown_0203A134->animsActive = 2; + sMailRead->animsActive = 2; break; } } else { - gUnknown_0203A134->animsActive = 0; + sMailRead->animsActive = 0; } - gUnknown_0203A134->mail = mail; - gUnknown_0203A134->callback = callback; - gUnknown_0203A134->flag = flag; - SetMainCallback2(sub_81219F0); + sMailRead->mail = mail; + sMailRead->callback = callback; + sMailRead->flag = flag; + SetMainCallback2(CB2_InitMailRead); } -bool8 sub_81215EC(void) +static bool8 MailReadBuildGraphics(void) { u16 icon; @@ -353,21 +355,21 @@ bool8 sub_81215EC(void) SetGpuReg(REG_OFFSET_BG2HOFS, 0x0000); SetGpuReg(REG_OFFSET_BG3HOFS, 0x0000); SetGpuReg(REG_OFFSET_BG3VOFS, 0x0000); - SetGpuReg(REG_OFFSET_BLDCNT, 0x0000); + SetGpuReg(REG_OFFSET_BLDCNT, 0x0000); SetGpuReg(REG_OFFSET_BLDALPHA, 0x0000); break; case 6: ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gUnknown_0859F290, 3); - SetBgTilemapBuffer(1, gUnknown_0203A134->bg1TilemapBuffer); - SetBgTilemapBuffer(2, gUnknown_0203A134->bg2TilemapBuffer); + InitBgsFromTemplates(0, sUnknown_0859F290, 3); + SetBgTilemapBuffer(1, sMailRead->bg1TilemapBuffer); + SetBgTilemapBuffer(2, sMailRead->bg2TilemapBuffer); break; case 7: - InitWindows(gUnknown_0859F29C); + InitWindows(sUnknown_0859F29C); DeactivateAllTextPrinters(); break; case 8: - decompress_and_copy_tile_data_to_vram(1, gUnknown_0859F2B8[gUnknown_0203A134->mailType].tiles, 0, 0, 0); + decompress_and_copy_tile_data_to_vram(1, sUnknown_0859F2B8[sMailRead->mailType].tiles, 0, 0, 0); break; case 9: if (free_temp_tile_data_buffers_if_possible()) @@ -378,7 +380,7 @@ bool8 sub_81215EC(void) case 10: FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); FillBgTilemapBufferRect_Palette0(2, 1, 0, 0, 30, 20); - CopyToBgTilemapBuffer(1, gUnknown_0859F2B8[gUnknown_0203A134->mailType].tileMap, 0, 0); + CopyToBgTilemapBuffer(1, sUnknown_0859F2B8[sMailRead->mailType].tileMap, 0, 0); break; case 11: CopyBgTilemapBufferToVram(0); @@ -387,24 +389,24 @@ bool8 sub_81215EC(void) break; case 12: LoadPalette(GetOverworldTextboxPalettePtr(), 240, 32); - gPlttBufferUnfaded[250] = gUnknown_0859F2B8[gUnknown_0203A134->mailType].color10; - gPlttBufferFaded[250] = gUnknown_0859F2B8[gUnknown_0203A134->mailType].color10; - gPlttBufferUnfaded[251] = gUnknown_0859F2B8[gUnknown_0203A134->mailType].color12; - gPlttBufferFaded[251] = gUnknown_0859F2B8[gUnknown_0203A134->mailType].color12; - LoadPalette(gUnknown_0859F2B8[gUnknown_0203A134->mailType].palette, 0, 32); - gPlttBufferUnfaded[10] = gUnknown_0859F2B0[gSaveBlock2Ptr->playerGender][0]; - gPlttBufferFaded[10] = gUnknown_0859F2B0[gSaveBlock2Ptr->playerGender][0]; - gPlttBufferUnfaded[11] = gUnknown_0859F2B0[gSaveBlock2Ptr->playerGender][1]; - gPlttBufferFaded[11] = gUnknown_0859F2B0[gSaveBlock2Ptr->playerGender][1]; + gPlttBufferUnfaded[250] = sUnknown_0859F2B8[sMailRead->mailType].color10; + gPlttBufferFaded[250] = sUnknown_0859F2B8[sMailRead->mailType].color10; + gPlttBufferUnfaded[251] = sUnknown_0859F2B8[sMailRead->mailType].color12; + gPlttBufferFaded[251] = sUnknown_0859F2B8[sMailRead->mailType].color12; + LoadPalette(sUnknown_0859F2B8[sMailRead->mailType].palette, 0, 32); + gPlttBufferUnfaded[10] = sUnknown_0859F2B0[gSaveBlock2Ptr->playerGender][0]; + gPlttBufferFaded[10] = sUnknown_0859F2B0[gSaveBlock2Ptr->playerGender][0]; + gPlttBufferUnfaded[11] = sUnknown_0859F2B0[gSaveBlock2Ptr->playerGender][1]; + gPlttBufferFaded[11] = sUnknown_0859F2B0[gSaveBlock2Ptr->playerGender][1]; break; case 13: - if (gUnknown_0203A134->flag) + if (sMailRead->flag) { sub_8121A1C(); } break; case 14: - if (gUnknown_0203A134->flag) + if (sMailRead->flag) { sub_8121B1C(); RunTextPrinters(); @@ -417,20 +419,20 @@ bool8 sub_81215EC(void) } break; case 16: - SetVBlankCallback(sub_8121C50); + SetVBlankCallback(VBlankCB_MailRead); gPaletteFade.bufferTransferDisabled = TRUE; break; case 17: - icon = sub_80D2E84(gUnknown_0203A134->mail->species); - switch (gUnknown_0203A134->animsActive) + icon = sub_80D2E84(sMailRead->mail->species); + switch (sMailRead->animsActive) { case 1: sub_80D2F68(icon); - gUnknown_0203A134->monIconSprite = sub_80D2D78(icon, SpriteCallbackDummy, 0x60, 0x80, 0, 0); + sMailRead->monIconSprite = sub_80D2D78(icon, SpriteCallbackDummy, 0x60, 0x80, 0, 0); break; case 2: sub_80D2F68(icon); - gUnknown_0203A134->monIconSprite = sub_80D2D78(icon, SpriteCallbackDummy, 0x28, 0x80, 0, 0); + sMailRead->monIconSprite = sub_80D2D78(icon, SpriteCallbackDummy, 0x28, 0x80, 0, 0); break; } break; @@ -441,53 +443,53 @@ bool8 sub_81215EC(void) ShowBg(2); BeginNormalPaletteFade(-1, 0, 16, 0, 0); gPaletteFade.bufferTransferDisabled = FALSE; - gUnknown_0203A134->callback2 = sub_8121C98; + sMailRead->callback2 = CB2_WaitForPaletteExitOnKeyPress; return TRUE; default: return FALSE; } - gMain.state ++; + gMain.state++; return FALSE; } -void sub_81219F0(void) +static void CB2_InitMailRead(void) { do { - if (sub_81215EC() == TRUE) + if (MailReadBuildGraphics() == TRUE) { - SetMainCallback2(sub_8121C64); + SetMainCallback2(CB2_MailRead); break; } } while (sub_81221AC() != TRUE); } -void sub_8121A1C(void) +static void sub_8121A1C(void) { u16 i; u8 total; u8 *ptr; total = 0; - for (i = 0; i < gUnknown_0203A134->layout->numSubStructs; i ++) + for (i = 0; i < sMailRead->layout->numSubStructs; i ++) { - ConvertEasyChatWordsToString(gUnknown_0203A134->strbuf[i], &gUnknown_0203A134->mail->words[total], gUnknown_0203A134->layout->var8[i].numEasyChatWords, 1); - total += gUnknown_0203A134->layout->var8[i].numEasyChatWords; + ConvertEasyChatWordsToString(sMailRead->strbuf[i], &sMailRead->mail->words[total], sMailRead->layout->var8[i].numEasyChatWords, 1); + total += sMailRead->layout->var8[i].numEasyChatWords; } - ptr = StringCopy(gUnknown_0203A134->playerName, gUnknown_0203A134->mail->playerName); - if (!gUnknown_0203A134->playerIsSender) + ptr = StringCopy(sMailRead->playerName, sMailRead->mail->playerName); + if (!sMailRead->playerIsSender) { StringCopy(ptr, gText_FromSpace); - gUnknown_0203A134->signatureWidth = gUnknown_0203A134->layout->signatureWidth - (StringLength(gUnknown_0203A134->playerName) * 8 - 0x60); + sMailRead->signatureWidth = sMailRead->layout->signatureWidth - (StringLength(sMailRead->playerName) * 8 - 0x60); } else { - sub_81DB52C(gUnknown_0203A134->playerName); - gUnknown_0203A134->signatureWidth = gUnknown_0203A134->layout->signatureWidth; + sub_81DB52C(sMailRead->playerName); + sMailRead->signatureWidth = sMailRead->layout->signatureWidth; } } -void sub_8121B1C(void) +static void sub_8121B1C(void) { u16 i; u8 strbuf[0x20]; @@ -501,77 +503,76 @@ void sub_8121B1C(void) PutWindowTilemap(1); FillWindowPixelBuffer(0, 0); FillWindowPixelBuffer(1, 0); - for (i = 0; i < gUnknown_0203A134->layout->numSubStructs; i ++) + for (i = 0; i < sMailRead->layout->numSubStructs; i ++) { - if (gUnknown_0203A134->strbuf[i][0] == EOS || gUnknown_0203A134->strbuf[i][0] == CHAR_SPACE) + if (sMailRead->strbuf[i][0] == EOS || sMailRead->strbuf[i][0] == CHAR_SPACE) { continue; } - box_print(0, 1, gUnknown_0203A134->layout->var8[i].xOffset + gUnknown_0203A134->layout->wordsYPos, y + gUnknown_0203A134->layout->wordsXPos, gUnknown_0859F2AC, 0, gUnknown_0203A134->strbuf[i]); - y += gUnknown_0203A134->layout->var8[i].lineHeight; + box_print(0, 1, sMailRead->layout->var8[i].xOffset + sMailRead->layout->wordsYPos, y + sMailRead->layout->wordsXPos, sUnknown_0859F2AC, 0, sMailRead->strbuf[i]); + y += sMailRead->layout->var8[i].lineHeight; } bufptr = StringCopy(strbuf, gText_FromSpace); - StringCopy(bufptr, gUnknown_0203A134->playerName); - box_x = GetStringCenterAlignXOffset(1, strbuf, gUnknown_0203A134->signatureWidth) + 0x68; - box_y = gUnknown_0203A134->layout->signatureYPos + 0x58; - box_print(0, 1, box_x, box_y, gUnknown_0859F2AC, 0, strbuf); + StringCopy(bufptr, sMailRead->playerName); + box_x = GetStringCenterAlignXOffset(1, strbuf, sMailRead->signatureWidth) + 0x68; + box_y = sMailRead->layout->signatureYPos + 0x58; + box_print(0, 1, box_x, box_y, sUnknown_0859F2AC, 0, strbuf); CopyWindowToVram(0, 3); CopyWindowToVram(1, 3); } -void sub_8121C50(void) +static void VBlankCB_MailRead(void) { LoadOam(); ProcessSpriteCopyRequests(); TransferPlttBuffer(); } -void sub_8121C64(void) +static void CB2_MailRead(void) { - if (gUnknown_0203A134->animsActive != 0) + if (sMailRead->animsActive != 0) { AnimateSprites(); BuildOamBuffer(); } - gUnknown_0203A134->callback2(); + sMailRead->callback2(); } -void sub_8121C98(void) +static void CB2_WaitForPaletteExitOnKeyPress(void) { if (!UpdatePaletteFade()) { - gUnknown_0203A134->callback2 = sub_8121CC0; + sMailRead->callback2 = CB2_ExitOnKeyPress; } } -void sub_8121CC0(void) +static void CB2_ExitOnKeyPress(void) { if (gMain.newKeys & (A_BUTTON | B_BUTTON)) { BeginNormalPaletteFade(-1, 0, 0, 16, 0); - gUnknown_0203A134->callback2 = sub_8121D00; + sMailRead->callback2 = CB2_ExitMailReadFreeVars; } } -void sub_8121D00(void) +static void CB2_ExitMailReadFreeVars(void) { if (!UpdatePaletteFade()) { - SetMainCallback2(gUnknown_0203A134->callback); - switch (gUnknown_0203A134->animsActive) + SetMainCallback2(sMailRead->callback); + switch (sMailRead->animsActive) { case 1: case 2: - sub_80D2FF0(sub_80D2E84(gUnknown_0203A134->mail->species)); - sub_80D2EF8(&gSprites[gUnknown_0203A134->monIconSprite]); + sub_80D2FF0(sub_80D2E84(sMailRead->mail->species)); + sub_80D2EF8(&gSprites[sMailRead->monIconSprite]); } - memset(gUnknown_0203A134, 0, sizeof(*gUnknown_0203A134)); + memset(sMailRead, 0, sizeof(*sMailRead)); ResetPaletteFade(); UnsetBgTilemapBuffer(0); UnsetBgTilemapBuffer(1); ResetBgsAndClearDma3BusyFlags(0); FreeAllWindowBuffers(); - free(gUnknown_0203A134); - gUnknown_0203A134 = NULL; + FREE_AND_SET_NULL(sMailRead); } } diff --git a/src/mail_data.c b/src/mail_data.c new file mode 100644 index 000000000..ebb49febf --- /dev/null +++ b/src/mail_data.c @@ -0,0 +1,203 @@ +#include "global.h" +#include "mail.h" +#include "constants/items.h" +#include "pokemon.h" +#include "pokemon_icon.h" +#include "constants/species.h" +#include "text.h" +#include "international_string_util.h" + +void ClearMailData(void) +{ + u8 i; + + for (i = 0; i < MAIL_COUNT; i++) + ClearMailStruct(&gSaveBlock1Ptr->mail[i]); +} + +void ClearMailStruct(struct MailStruct *mail) +{ + s32 i; + + for (i = 0; i < MAIL_WORDS_COUNT; i++) + mail->words[i] = 0xFFFF; + + for (i = 0; i < PLAYER_NAME_LENGTH; i++) + mail->playerName[i] = EOS; + + for (i = 0; i < 4; i++) + mail->trainerId[i] = 0; + + mail->species = SPECIES_BULBASAUR; + mail->itemId = ITEM_NONE; +} + +bool8 MonHasMail(struct Pokemon *mon) +{ + u16 heldItem = GetMonData(mon, MON_DATA_HELD_ITEM); + if (ItemIsMail(heldItem) && GetMonData(mon, MON_DATA_MAIL) != 0xFF) + return TRUE; + else + return FALSE; +} + +u8 GiveMailToMon(struct Pokemon *mon, u16 itemId) +{ + u8 heldItem[2]; + u8 id, i; + u16 species; + u32 personality; + + heldItem[0] = itemId; + heldItem[1] = itemId >> 8; + + for (id = 0; id < PARTY_SIZE; id++) + { + if (gSaveBlock1Ptr->mail[id].itemId == 0) + { + for (i = 0; i < MAIL_WORDS_COUNT; i++) + gSaveBlock1Ptr->mail[id].words[i] = 0xFFFF; + + for (i = 0; i < PLAYER_NAME_LENGTH - 1; i++) + gSaveBlock1Ptr->mail[id].playerName[i] = gSaveBlock2Ptr->playerName[i]; + gSaveBlock1Ptr->mail[id].playerName[i] = EOS; + PadNameString(gSaveBlock1Ptr->mail[id].playerName, CHAR_SPACE); + + for (i = 0; i < 4; i++) + gSaveBlock1Ptr->mail[id].trainerId[i] = gSaveBlock2Ptr->playerTrainerId[i]; + + species = GetBoxMonData(&mon->box, MON_DATA_SPECIES); + personality = GetBoxMonData(&mon->box, MON_DATA_PERSONALITY); + gSaveBlock1Ptr->mail[id].species = SpeciesToMailSpecies(species, personality); + gSaveBlock1Ptr->mail[id].itemId = itemId; + SetMonData(mon, MON_DATA_MAIL, &id); + SetMonData(mon, MON_DATA_HELD_ITEM, heldItem); + return id; + } + } + + return 0xFF; +} + +u16 SpeciesToMailSpecies(u16 species, u32 personality) +{ + if (species == SPECIES_UNOWN) + { + u32 species = GetUnownLetterByPersonality(personality) + 30000; + return species; + } + + return species; +} + +u16 MailSpeciesToSpecies(u16 mailSpecies, u16 *buffer) +{ + u16 result; + + if (mailSpecies >= 30000 && mailSpecies < (30000 + UNOWN_FORM_COUNT)) + { + result = SPECIES_UNOWN; + *buffer = mailSpecies - 30000; + } + else + { + result = mailSpecies; + } + + return result; +} + +u8 GiveMailToMon2(struct Pokemon *mon, struct MailStruct *mail) +{ + u8 heldItem[2]; + u16 itemId = mail->itemId; + u8 mailId = GiveMailToMon(mon, itemId); + + if (mailId == 0xFF) + return 0xFF; + + gSaveBlock1Ptr->mail[mailId] = *mail; + + SetMonData(mon, MON_DATA_MAIL, &mailId); + + heldItem[0] = itemId; + heldItem[1] = itemId >> 8; + + SetMonData(mon, MON_DATA_HELD_ITEM, heldItem); + + return mailId; +} + +static bool32 DummyMailFunc(void) +{ + return FALSE; +} + +void TakeMailFromMon(struct Pokemon *mon) +{ + u8 heldItem[2]; + u8 mailId; + + if (MonHasMail(mon)) + { + mailId = GetMonData(mon, MON_DATA_MAIL); + gSaveBlock1Ptr->mail[mailId].itemId = ITEM_NONE; + mailId = 0xFF; + heldItem[0] = ITEM_NONE; + heldItem[1] = ITEM_NONE << 8; + SetMonData(mon, MON_DATA_MAIL, &mailId); + SetMonData(mon, MON_DATA_HELD_ITEM, heldItem); + } +} + +void ClearMailItemId(u8 mailId) +{ + gSaveBlock1Ptr->mail[mailId].itemId = ITEM_NONE; +} + +u8 TakeMailFromMon2(struct Pokemon *mon) +{ + u8 i; + u8 newHeldItem[2]; + u8 newMailId; + + newHeldItem[0] = ITEM_NONE; + newHeldItem[1] = ITEM_NONE << 8; + newMailId = 0xFF; + + for (i = PARTY_SIZE; i < MAIL_COUNT; i++) + { + if (gSaveBlock1Ptr->mail[i].itemId == ITEM_NONE) + { + memcpy(&gSaveBlock1Ptr->mail[i], &gSaveBlock1Ptr->mail[GetMonData(mon, MON_DATA_MAIL)], sizeof(struct MailStruct)); + gSaveBlock1Ptr->mail[GetMonData(mon, MON_DATA_MAIL)].itemId = ITEM_NONE; + SetMonData(mon, MON_DATA_MAIL, &newMailId); + SetMonData(mon, MON_DATA_HELD_ITEM, newHeldItem); + return i; + } + } + + return 0xFF; +} + +bool8 ItemIsMail(u16 itemId) +{ + switch (itemId) + { + case ITEM_ORANGE_MAIL: + case ITEM_HARBOR_MAIL: + case ITEM_GLITTER_MAIL: + case ITEM_MECH_MAIL: + case ITEM_WOOD_MAIL: + case ITEM_WAVE_MAIL: + case ITEM_BEAD_MAIL: + case ITEM_SHADOW_MAIL: + case ITEM_TROPIC_MAIL: + case ITEM_DREAM_MAIL: + case ITEM_FAB_MAIL: + case ITEM_RETRO_MAIL: + return TRUE; + default: + return FALSE; + } +} diff --git a/src/main.c b/src/main.c index 665a4dd84..07ce07f1c 100644 --- a/src/main.c +++ b/src/main.c @@ -2,7 +2,7 @@ #include "main.h" #include "m4a.h" #include "rtc.h" -#include "rng.h" +#include "random.h" #include "dma3.h" #include "gba/flash_internal.h" #include "battle.h" diff --git a/src/new_game.c b/src/new_game.c index 75e80dc8e..12873fec9 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -1,6 +1,6 @@ #include "global.h" #include "new_game.h" -#include "rng.h" +#include "random.h" #include "pokemon.h" #include "roamer.h" #include "pokemon_size_record.h" diff --git a/src/rom4.c b/src/overworld.c index c538595f2..c538595f2 100644 --- a/src/rom4.c +++ b/src/overworld.c diff --git a/src/pokeball.c b/src/pokeball.c new file mode 100644 index 000000000..127ba8e9d --- /dev/null +++ b/src/pokeball.c @@ -0,0 +1,1282 @@ +#include "global.h" +#include "pokemon.h" +#include "sprite.h" +#include "pokeball.h" +#include "battle.h" +#include "battle_anim.h" +#include "task.h" +#include "sound.h" +#include "constants/songs.h" +#include "trig.h" +#include "main.h" +#include "m4a.h" +#include "decompress.h" +#include "constants/species.h" +#include "util.h" +#include "graphics.h" + +extern bool8 gDoingBattleAnim; +extern u8 gActiveBank; +extern u8 gBankTarget; +extern u16 gBattlePartyID[]; +extern u8 gBankSpriteIds[]; +extern u8 gHealthBoxesIds[]; +extern struct MusicPlayerInfo gMPlay_BGM; + +// this file's functions +static void Task_DoPokeballSendOutAnim(u8 taskId); +static void SpriteCB_TestBallThrow(struct Sprite *sprite); +static void SpriteCB_PlayerMonSendOut_1(struct Sprite *sprite); +static void SpriteCB_PlayerMonSendOut_2(struct Sprite *sprite); +static void SpriteCB_OpponentMonSendOut(struct Sprite *sprite); +static void sub_80756D4(struct Sprite *sprite); +static void sub_80756E0(struct Sprite *sprite); +static void sub_807574C(struct Sprite *sprite); +static void sub_80757E4(struct Sprite *sprite); +static void sub_8075838(struct Sprite *sprite); +static void sub_8075930(struct Sprite *sprite); +static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite); +static void SpriteCB_ReleaseMon2FromBall(struct Sprite *sprite); +static void sub_8075970(struct Sprite *sprite); +static void HandleBallAnimEnd(struct Sprite *sprite); +static void sub_8075FB4(struct Sprite *sprite); +static void sub_80760F8(struct Sprite *sprite); +static void sub_8076524(struct Sprite *sprite); +static void sub_80765E0(struct Sprite *sprite); +static void sub_80767D4(struct Sprite *sprite); +static void sub_807687C(struct Sprite *sprite); +static void sub_80768F0(struct Sprite *sprite); +static void sub_80769A8(struct Sprite *sprite); +static void sub_80769CC(struct Sprite *sprite); +static void SpriteCB_HitAnimHealthoxEffect(struct Sprite *sprite); +static u16 GetBankPokeballItemId(u8 bank); + +// rom const data + +#define GFX_TAG_POKEBALL 55000 +#define GFX_TAG_GREATBALL 55001 +#define GFX_TAG_SAFARIBALL 55002 +#define GFX_TAG_ULTRABALL 55003 +#define GFX_TAG_MASTERBALL 55004 +#define GFX_TAG_NETBALL 55005 +#define GFX_TAG_DIVEBALL 55006 +#define GFX_TAG_NESTBALL 55007 +#define GFX_TAG_REPEATBALL 55008 +#define GFX_TAG_TIMERBALL 55009 +#define GFX_TAG_LUXURYBALL 55010 +#define GFX_TAG_PREMIERBALL 55011 + +const struct CompressedSpriteSheet gBallSpriteSheets[POKEBALL_COUNT] = +{ + {gInterfaceGfx_PokeBall, 384, GFX_TAG_POKEBALL}, + {gInterfaceGfx_GreatBall, 384, GFX_TAG_GREATBALL}, + {gInterfaceGfx_SafariBall, 384, GFX_TAG_SAFARIBALL}, + {gInterfaceGfx_UltraBall, 384, GFX_TAG_ULTRABALL}, + {gInterfaceGfx_MasterBall, 384, GFX_TAG_MASTERBALL}, + {gInterfaceGfx_NetBall, 384, GFX_TAG_NETBALL}, + {gInterfaceGfx_DiveBall, 384, GFX_TAG_DIVEBALL}, + {gInterfaceGfx_NestBall, 384, GFX_TAG_NESTBALL}, + {gInterfaceGfx_RepeatBall, 384, GFX_TAG_REPEATBALL}, + {gInterfaceGfx_TimerBall, 384, GFX_TAG_TIMERBALL}, + {gInterfaceGfx_LuxuryBall, 384, GFX_TAG_LUXURYBALL}, + {gInterfaceGfx_PremierBall, 384, GFX_TAG_PREMIERBALL}, +}; + +const struct CompressedSpritePalette gBallSpritePalettes[POKEBALL_COUNT] = +{ + {gInterfacePal_PokeBall, GFX_TAG_POKEBALL}, + {gInterfacePal_GreatBall, GFX_TAG_GREATBALL}, + {gInterfacePal_SafariBall, GFX_TAG_SAFARIBALL}, + {gInterfacePal_UltraBall, GFX_TAG_ULTRABALL}, + {gInterfacePal_MasterBall, GFX_TAG_MASTERBALL}, + {gInterfacePal_NetBall, GFX_TAG_NETBALL}, + {gInterfacePal_DiveBall, GFX_TAG_DIVEBALL}, + {gInterfacePal_NestBall, GFX_TAG_NESTBALL}, + {gInterfacePal_RepeatBall, GFX_TAG_REPEATBALL}, + {gInterfacePal_TimerBall, GFX_TAG_TIMERBALL}, + {gInterfacePal_LuxuryBall, GFX_TAG_LUXURYBALL}, + {gInterfacePal_PremierBall, GFX_TAG_PREMIERBALL}, +}; + +static const struct OamData sBallOamData = +{ + .y = 0, + .affineMode = 3, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 2, + .paletteNum = 0, + .affineParam = 0, +}; + +static const union AnimCmd sBallAnimSeq3[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd sBallAnimSeq5[] = +{ + ANIMCMD_FRAME(4, 1), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd sBallAnimSeq4[] = +{ + ANIMCMD_FRAME(8, 5), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd sBallAnimSeq6[] = +{ + ANIMCMD_FRAME(12, 1), + ANIMCMD_JUMP(0), +}; + +static const union AnimCmd sBallAnimSeq0[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +static const union AnimCmd sBallAnimSeq1[] = +{ + ANIMCMD_FRAME(4, 5), + ANIMCMD_FRAME(8, 5), + ANIMCMD_END, +}; + +static const union AnimCmd sBallAnimSeq2[] = +{ + ANIMCMD_FRAME(4, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +static const union AnimCmd *const sBallAnimSequences[] = +{ + sBallAnimSeq0, + sBallAnimSeq1, + sBallAnimSeq2, + + // unused? + sBallAnimSeq3, + sBallAnimSeq4, + sBallAnimSeq5, + sBallAnimSeq6, +}; + +static const union AffineAnimCmd sBallAffineAnimSeq0[] = +{ + AFFINEANIMCMD_FRAME(0, 0, 0, 1), + AFFINEANIMCMD_JUMP(0), +}; + +static const union AffineAnimCmd sBallAffineAnimSeq1[] = +{ + AFFINEANIMCMD_FRAME(0, 0, -3, 1), + AFFINEANIMCMD_JUMP(0), +}; + +static const union AffineAnimCmd sBallAffineAnimSeq2[] = +{ + AFFINEANIMCMD_FRAME(0, 0, 3, 1), + AFFINEANIMCMD_JUMP(0), +}; + +static const union AffineAnimCmd sBallAffineAnimSeq3[] = +{ + AFFINEANIMCMD_FRAME(256, 256, 0, 0), + AFFINEANIMCMD_END, +}; + +static const union AffineAnimCmd sBallAffineAnimSeq4[] = +{ + AFFINEANIMCMD_FRAME(0, 0, 25, 1), + AFFINEANIMCMD_JUMP(0), +}; + +static const union AffineAnimCmd *const sBallAffineAnimSequences[] = +{ + sBallAffineAnimSeq0, + sBallAffineAnimSeq1, + sBallAffineAnimSeq2, + sBallAffineAnimSeq3, + sBallAffineAnimSeq4, +}; + +const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] = +{ + { + .tileTag = GFX_TAG_POKEBALL, + .paletteTag = GFX_TAG_POKEBALL, + .oam = &sBallOamData, + .anims = sBallAnimSequences, + .images = NULL, + .affineAnims = sBallAffineAnimSequences, + .callback = SpriteCB_TestBallThrow, + }, + { + .tileTag = GFX_TAG_GREATBALL, + .paletteTag = GFX_TAG_GREATBALL, + .oam = &sBallOamData, + .anims = sBallAnimSequences, + .images = NULL, + .affineAnims = sBallAffineAnimSequences, + .callback = SpriteCB_TestBallThrow, + }, + { + .tileTag = GFX_TAG_SAFARIBALL, + .paletteTag = GFX_TAG_SAFARIBALL, + .oam = &sBallOamData, + .anims = sBallAnimSequences, + .images = NULL, + .affineAnims = sBallAffineAnimSequences, + .callback = SpriteCB_TestBallThrow, + }, + { + .tileTag = GFX_TAG_ULTRABALL, + .paletteTag = GFX_TAG_ULTRABALL, + .oam = &sBallOamData, + .anims = sBallAnimSequences, + .images = NULL, + .affineAnims = sBallAffineAnimSequences, + .callback = SpriteCB_TestBallThrow, + }, + { + .tileTag = GFX_TAG_MASTERBALL, + .paletteTag = GFX_TAG_MASTERBALL, + .oam = &sBallOamData, + .anims = sBallAnimSequences, + .images = NULL, + .affineAnims = sBallAffineAnimSequences, + .callback = SpriteCB_TestBallThrow, + }, + { + .tileTag = GFX_TAG_NETBALL, + .paletteTag = GFX_TAG_NETBALL, + .oam = &sBallOamData, + .anims = sBallAnimSequences, + .images = NULL, + .affineAnims = sBallAffineAnimSequences, + .callback = SpriteCB_TestBallThrow, + }, + { + .tileTag = GFX_TAG_DIVEBALL, + .paletteTag = GFX_TAG_DIVEBALL, + .oam = &sBallOamData, + .anims = sBallAnimSequences, + .images = NULL, + .affineAnims = sBallAffineAnimSequences, + .callback = SpriteCB_TestBallThrow, + }, + { + .tileTag = GFX_TAG_NESTBALL, + .paletteTag = GFX_TAG_NESTBALL, + .oam = &sBallOamData, + .anims = sBallAnimSequences, + .images = NULL, + .affineAnims = sBallAffineAnimSequences, + .callback = SpriteCB_TestBallThrow, + }, + { + .tileTag = GFX_TAG_REPEATBALL, + .paletteTag = GFX_TAG_REPEATBALL, + .oam = &sBallOamData, + .anims = sBallAnimSequences, + .images = NULL, + .affineAnims = sBallAffineAnimSequences, + .callback = SpriteCB_TestBallThrow, + }, + { + .tileTag = GFX_TAG_TIMERBALL, + .paletteTag = GFX_TAG_TIMERBALL, + .oam = &sBallOamData, + .anims = sBallAnimSequences, + .images = NULL, + .affineAnims = sBallAffineAnimSequences, + .callback = SpriteCB_TestBallThrow, + }, + { + .tileTag = GFX_TAG_LUXURYBALL, + .paletteTag = GFX_TAG_LUXURYBALL, + .oam = &sBallOamData, + .anims = sBallAnimSequences, + .images = NULL, + .affineAnims = sBallAffineAnimSequences, + .callback = SpriteCB_TestBallThrow, + }, + { + .tileTag = GFX_TAG_PREMIERBALL, + .paletteTag = GFX_TAG_PREMIERBALL, + .oam = &sBallOamData, + .anims = sBallAnimSequences, + .images = NULL, + .affineAnims = sBallAffineAnimSequences, + .callback = SpriteCB_TestBallThrow, + }, +}; + +#define tFrames data[0] +#define tPan data[1] +#define tThrowId data[2] +#define tBank data[3] +#define tOpponentBank data[4] + +u8 DoPokeballSendOutAnimation(s16 pan, u8 kindOfThrow) +{ + u8 taskId; + + gDoingBattleAnim = TRUE; + gBattleSpritesDataPtr->healthBoxesData[gActiveBank].ballAnimActive = 1; + + taskId = CreateTask(Task_DoPokeballSendOutAnim, 5); + gTasks[taskId].tPan = pan; + gTasks[taskId].tThrowId = kindOfThrow; + gTasks[taskId].tBank = gActiveBank; + + return 0; +} + +#define sBank data[6] + +static void Task_DoPokeballSendOutAnim(u8 taskId) +{ + u16 throwCaseId; + u8 bank; + u16 itemId, ballId; + u8 ballSpriteId; + bool8 notSendOut = FALSE; + + if (gTasks[taskId].tFrames == 0) + { + gTasks[taskId].tFrames++; + return; + } + + throwCaseId = gTasks[taskId].tThrowId; + bank = gTasks[taskId].tBank; + + if (GetBankSide(bank) != SIDE_PLAYER) + itemId = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_POKEBALL); + else + itemId = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_POKEBALL); + + ballId = ItemIdToBallId(itemId); + LoadBallGfx(ballId); + ballSpriteId = CreateSprite(&gBallSpriteTemplates[ballId], 32, 80, 29); + gSprites[ballSpriteId].data[0] = 0x80; + gSprites[ballSpriteId].data[1] = 0; + gSprites[ballSpriteId].data[7] = throwCaseId; + + switch (throwCaseId) + { + case POKEBALL_PLAYER_SENDOUT: + gBankTarget = bank; + gSprites[ballSpriteId].pos1.x = 24; + gSprites[ballSpriteId].pos1.y = 68; + gSprites[ballSpriteId].callback = SpriteCB_PlayerMonSendOut_1; + break; + case POKEBALL_OPPONENT_SENDOUT: + gSprites[ballSpriteId].pos1.x = GetBankPosition(bank, BANK_X_POS); + gSprites[ballSpriteId].pos1.y = GetBankPosition(bank, BANK_Y_POS) + 24; + gBankTarget = bank; + gSprites[ballSpriteId].data[0] = 0; + gSprites[ballSpriteId].callback = SpriteCB_OpponentMonSendOut; + break; + default: + gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON1); + notSendOut = TRUE; + break; + } + + gSprites[ballSpriteId].sBank = gBankTarget; + if (!notSendOut) + { + DestroyTask(taskId); + return; + } + + // this will perform an unused ball throw animation + gSprites[ballSpriteId].data[0] = 0x22; + gSprites[ballSpriteId].data[2] = GetBankPosition(gBankTarget, BANK_X_POS); + gSprites[ballSpriteId].data[4] = GetBankPosition(gBankTarget, BANK_Y_POS) - 16; + gSprites[ballSpriteId].data[5] = -40; + sub_80A68D4(&gSprites[ballSpriteId]); + gSprites[ballSpriteId].oam.affineParam = taskId; + gTasks[taskId].tOpponentBank = gBankTarget; + gTasks[taskId].func = TaskDummy; + PlaySE(SE_NAGERU); +} + +static void SpriteCB_TestBallThrow(struct Sprite *sprite) +{ + if (AnimateBallThrow(sprite)) + { + u16 ballId; + u8 taskId = sprite->oam.affineParam; + u8 opponentBank = gTasks[taskId].tOpponentBank; + u8 noOfShakes = gTasks[taskId].tThrowId; + + StartSpriteAnim(sprite, 1); + sprite->affineAnimPaused = 1; + sprite->pos1.x += sprite->pos2.x; + sprite->pos1.y += sprite->pos2.y; + sprite->pos2.x = 0; + sprite->pos2.y = 0; + sprite->data[5] = 0; + ballId = ItemIdToBallId(GetBankPokeballItemId(opponentBank)); + LaunchBallStarsTask(sprite->pos1.x, sprite->pos1.y - 5, 1, 0x1C, ballId); + sprite->data[0] = LaunchBallFadeMonTask(FALSE, opponentBank, 14, ballId); + sprite->sBank = opponentBank; + sprite->data[7] = noOfShakes; + DestroyTask(taskId); + sprite->callback = sub_80756D4; + } +} + +#undef tFrames +#undef tPan +#undef tThrowId +#undef tBank +#undef tOpponentBank + +static void sub_80756D4(struct Sprite *sprite) +{ + sprite->callback = sub_80756E0; +} + +static void sub_80756E0(struct Sprite *sprite) +{ + if (++sprite->data[5] == 10) + { + sprite->data[5] = 0; + sprite->callback = sub_807574C; + StartSpriteAffineAnim(&gSprites[gBankSpriteIds[sprite->sBank]], 2); + AnimateSprite(&gSprites[gBankSpriteIds[sprite->sBank]]); + gSprites[gBankSpriteIds[sprite->sBank]].data[1] = 0; + } +} + +static void sub_807574C(struct Sprite *sprite) +{ + sprite->data[5]++; + if (sprite->data[5] == 11) + PlaySE(SE_SUIKOMU); + if (gSprites[gBankSpriteIds[sprite->sBank]].affineAnimEnded) + { + StartSpriteAnim(sprite, 2); + gSprites[gBankSpriteIds[sprite->sBank]].invisible = TRUE; + sprite->data[5] = 0; + sprite->callback = sub_80757E4; + } + else + { + gSprites[gBankSpriteIds[sprite->sBank]].data[1] += 0x60; + gSprites[gBankSpriteIds[sprite->sBank]].pos2.y = -gSprites[gBankSpriteIds[sprite->sBank]].data[1] >> 8; + } +} + +static void sub_80757E4(struct Sprite *sprite) +{ + if (sprite->animEnded) + { + sprite->data[5]++; + if (sprite->data[5] == 1) + { + sprite->data[3] = 0; + sprite->data[4] = 32; + sprite->data[5] = 0; + sprite->pos1.y += Cos(0, 32); + sprite->pos2.y = -Cos(0, sprite->data[4]); + sprite->callback = sub_8075838; + } + } +} + +static void sub_8075838(struct Sprite *sprite) +{ + bool8 r5 = FALSE; + + switch (sprite->data[3] & 0xFF) + { + case 0: + sprite->pos2.y = -Cos(sprite->data[5], sprite->data[4]); + sprite->data[5] += 4 + (sprite->data[3] >> 8); + if (sprite->data[5] >= 64) + { + sprite->data[4] -= 10; + sprite->data[3] += 0x101; + if (sprite->data[3] >> 8 == 4) + r5 = TRUE; + switch (sprite->data[3] >> 8) + { + case 1: + PlaySE(SE_KON); + break; + case 2: + PlaySE(SE_KON2); + break; + case 3: + PlaySE(SE_KON3); + break; + default: + PlaySE(SE_KON4); + break; + } + } + break; + case 1: + sprite->pos2.y = -Cos(sprite->data[5], sprite->data[4]); + sprite->data[5] -= 4 + (sprite->data[3] >> 8); + if (sprite->data[5] <= 0) + { + sprite->data[5] = 0; + sprite->data[3] &= 0xFF00; + } + break; + } + if (r5) + { + sprite->data[3] = 0; + sprite->pos1.y += Cos(64, 32); + sprite->pos2.y = 0; + if (sprite->data[7] == 0) + { + sprite->callback = SpriteCB_ReleaseMonFromBall; + } + else + { + sprite->callback = sub_8075930; + sprite->data[4] = 1; + sprite->data[5] = 0; + } + } +} + +static void sub_8075930(struct Sprite *sprite) +{ + sprite->data[3]++; + if (sprite->data[3] == 31) + { + sprite->data[3] = 0; + sprite->affineAnimPaused = TRUE; + StartSpriteAffineAnim(sprite, 1); + sprite->callback = sub_8075970; + PlaySE(SE_BOWA); + } +} + +static void sub_8075970(struct Sprite *sprite) +{ + switch (sprite->data[3] & 0xFF) + { + case 0: + case 2: + sprite->pos2.x += sprite->data[4]; + sprite->data[5] += sprite->data[4]; + sprite->affineAnimPaused = FALSE; + if (sprite->data[5] > 3 || sprite->data[5] < -3) + { + sprite->data[3]++; + sprite->data[5] = 0; + } + break; + case 1: + sprite->data[5]++; + if (sprite->data[5] == 1) + { + sprite->data[5] = 0; + sprite->data[4] = -sprite->data[4]; + sprite->data[3]++; + sprite->affineAnimPaused = FALSE; + if (sprite->data[4] < 0) + ChangeSpriteAffineAnim(sprite, 2); + else + ChangeSpriteAffineAnim(sprite, 1); + } + else + { + sprite->affineAnimPaused = TRUE; + } + break; + case 3: + sprite->data[3] += 0x100; + if (sprite->data[3] >> 8 == sprite->data[7]) + { + sprite->callback = SpriteCB_ReleaseMonFromBall; + } + else + { + if (sprite->data[7] == 4 && sprite->data[3] >> 8 == 3) + { + sprite->callback = sub_8075FB4; + sprite->affineAnimPaused = TRUE; + } + else + { + sprite->data[3]++; + sprite->affineAnimPaused = TRUE; + } + } + break; + case 4: + default: + sprite->data[5]++; + if (sprite->data[5] == 31) + { + sprite->data[5] = 0; + sprite->data[3] &= 0xFF00; + StartSpriteAffineAnim(sprite, 3); + if (sprite->data[4] < 0) + StartSpriteAffineAnim(sprite, 2); + else + StartSpriteAffineAnim(sprite, 1); + PlaySE(SE_BOWA); + } + break; + } +} + +#define tCryTaskSpecies data[0] +#define tCryTaskPan data[1] +#define tCryTaskWantedCry data[2] +#define tCryTaskBank data[3] +#define tCryTaskMonSpriteId data[4] +#define tCryTaskMonPtr1 data[5] +#define tCryTaskMonPtr2 data[6] +#define tCryTaskFrames data[10] +#define tCryTaskState data[15] + +static void Task_PlayCryWhenReleasedFromBall(u8 taskId) +{ + u8 wantedCry = gTasks[taskId].tCryTaskWantedCry; + s8 pan = gTasks[taskId].tCryTaskPan; + u16 species = gTasks[taskId].tCryTaskSpecies; + u8 bank = gTasks[taskId].tCryTaskBank; + u8 monSpriteId = gTasks[taskId].tCryTaskMonSpriteId; + struct Pokemon *mon = (void*)(u32)((gTasks[taskId].tCryTaskMonPtr1 << 0x10) | (u16)(gTasks[taskId].tCryTaskMonPtr2)); + + switch (gTasks[taskId].tCryTaskState) + { + case 0: + default: + if (gSprites[monSpriteId].affineAnimEnded) + gTasks[taskId].tCryTaskState = wantedCry + 1; + break; + case 1: + if (ShouldPlayNormalPokeCry(mon) == TRUE) + PlayCry3(species, pan, 0); + else + PlayCry3(species, pan, 11); + gBattleSpritesDataPtr->healthBoxesData[bank].field_1_x40 = 0; + DestroyTask(taskId); + break; + case 2: + StopCryAndClearCrySongs(); + gTasks[taskId].tCryTaskFrames = 3; + gTasks[taskId].tCryTaskState = 20; + break; + case 20: + if (gTasks[taskId].tCryTaskFrames == 0) + { + if (ShouldPlayNormalPokeCry(mon) == TRUE) + PlayCry4(species, pan, 1); + else + PlayCry4(species, pan, 12); + + gBattleSpritesDataPtr->healthBoxesData[bank].field_1_x40 = 0; + DestroyTask(taskId); + } + else + { + gTasks[taskId].tCryTaskFrames--; + } + break; + case 3: + gTasks[taskId].tCryTaskFrames = 6; + gTasks[taskId].tCryTaskState = 30; + break; + case 30: + if (gTasks[taskId].tCryTaskFrames != 0) + { + gTasks[taskId].tCryTaskFrames--; + break; + } + gTasks[taskId].tCryTaskState++; + // fall through + case 31: + if (!IsCryPlayingOrClearCrySongs()) + { + StopCryAndClearCrySongs(); + gTasks[taskId].tCryTaskFrames = 3; + gTasks[taskId].tCryTaskState++; + } + break; + case 32: + if (gTasks[taskId].tCryTaskFrames != 0) + { + gTasks[taskId].tCryTaskFrames--; + break; + } + if (ShouldPlayNormalPokeCry(mon) == TRUE) + PlayCry4(species, pan, 0); + else + PlayCry4(species, pan, 11); + + gBattleSpritesDataPtr->healthBoxesData[bank].field_1_x40 = 0; + DestroyTask(taskId); + break; + } +} + +static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite) +{ + u8 bank = sprite->sBank; + u32 ballId; + + StartSpriteAnim(sprite, 1); + ballId = ItemIdToBallId(GetBankPokeballItemId(bank)); + LaunchBallStarsTask(sprite->pos1.x, sprite->pos1.y - 5, 1, 0x1C, ballId); + sprite->data[0] = LaunchBallFadeMonTask(1, sprite->sBank, 14, ballId); + sprite->callback = HandleBallAnimEnd; + + if (gMain.inBattle) + { + struct Pokemon *mon; + u16 species; + s8 pan; + u16 wantedCryCase; + u8 taskId; + + if (GetBankSide(bank) != SIDE_PLAYER) + { + mon = &gEnemyParty[gBattlePartyID[bank]]; + pan = 25; + } + else + { + mon = &gPlayerParty[gBattlePartyID[bank]]; + pan = -25; + } + + species = GetMonData(mon, MON_DATA_SPECIES); + if ((bank == GetBankByIdentity(IDENTITY_PLAYER_MON1) || bank == GetBankByIdentity(IDENTITY_OPPONENT_MON1)) + && IsDoubleBattle() && gBattleSpritesDataPtr->animationData->field_9_x1) + { + if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK) + { + if (IsBGMPlaying()) + m4aMPlayStop(&gMPlay_BGM); + } + else + { + m4aMPlayVolumeControl(&gMPlay_BGM, 0xFFFF, 128); + } + } + + if (!IsDoubleBattle() || !gBattleSpritesDataPtr->animationData->field_9_x1) + wantedCryCase = 0; + else if (bank == GetBankByIdentity(IDENTITY_PLAYER_MON1) || bank == GetBankByIdentity(IDENTITY_OPPONENT_MON1)) + wantedCryCase = 1; + else + wantedCryCase = 2; + + gBattleSpritesDataPtr->healthBoxesData[bank].field_1_x40 = 1; + + taskId = CreateTask(Task_PlayCryWhenReleasedFromBall, 3); + gTasks[taskId].tCryTaskSpecies = species; + gTasks[taskId].tCryTaskPan = pan; + gTasks[taskId].tCryTaskWantedCry = wantedCryCase; + gTasks[taskId].tCryTaskBank = bank; + gTasks[taskId].tCryTaskMonSpriteId = gBankSpriteIds[sprite->sBank]; + gTasks[taskId].tCryTaskMonPtr1 = (u32)(mon) >> 0x10; + gTasks[taskId].tCryTaskMonPtr2 = (u32)(mon); + gTasks[taskId].tCryTaskState = 0; + } + + StartSpriteAffineAnim(&gSprites[gBankSpriteIds[sprite->sBank]], 1); + + if (GetBankSide(sprite->sBank) == SIDE_OPPONENT) + gSprites[gBankSpriteIds[sprite->sBank]].callback = sub_8039B58; + else + gSprites[gBankSpriteIds[sprite->sBank]].callback = sub_8039E44; + + AnimateSprite(&gSprites[gBankSpriteIds[sprite->sBank]]); + gSprites[gBankSpriteIds[sprite->sBank]].data[1] = 0x1000; +} + +#undef tCryTaskSpecies +#undef tCryTaskPan +#undef tCryTaskWantedCry +#undef tCryTaskBank +#undef tCryTaskMonSpriteId +#undef tCryTaskMonPtr1 +#undef tCryTaskMonPtr2 +#undef tCryTaskFrames +#undef tCryTaskState + +static void sub_8075FB4(struct Sprite *sprite) +{ + sprite->animPaused = TRUE; + sprite->callback = sub_80760F8; + sprite->data[3] = 0; + sprite->data[4] = 0; + sprite->data[5] = 0; +} + +static void HandleBallAnimEnd(struct Sprite *sprite) +{ + bool8 affineAnimEnded = FALSE; + u8 bank = sprite->sBank; + + gSprites[gBankSpriteIds[bank]].invisible = FALSE; + if (sprite->animEnded) + sprite->invisible = TRUE; + if (gSprites[gBankSpriteIds[bank]].affineAnimEnded) + { + StartSpriteAffineAnim(&gSprites[gBankSpriteIds[bank]], 0); + affineAnimEnded = TRUE; + } + else + { + gSprites[gBankSpriteIds[bank]].data[1] -= 288; + gSprites[gBankSpriteIds[bank]].pos2.y = gSprites[gBankSpriteIds[bank]].data[1] >> 8; + } + if (sprite->animEnded && affineAnimEnded) + { + s32 i, doneBanks; + + gSprites[gBankSpriteIds[bank]].pos2.y = 0; + gDoingBattleAnim = FALSE; + gBattleSpritesDataPtr->healthBoxesData[bank].ballAnimActive = 0; + FreeSpriteOamMatrix(sprite); + DestroySprite(sprite); + + for (doneBanks = 0, i = 0; i < BATTLE_BANKS_COUNT; i++) + { + if (gBattleSpritesDataPtr->healthBoxesData[i].ballAnimActive == 0) + doneBanks++; + } + if (doneBanks == BATTLE_BANKS_COUNT) + { + for (i = 0; i < POKEBALL_COUNT; i++) + FreeBallGfx(i); + } + } +} + +static void sub_80760F8(struct Sprite *sprite) +{ + u8 bank = sprite->sBank; + + sprite->data[4]++; + if (sprite->data[4] == 40) + { + return; + } + else if (sprite->data[4] == 95) + { + gDoingBattleAnim = FALSE; + m4aMPlayAllStop(); + PlaySE(BGM_FANFA5); + } + else if (sprite->data[4] == 315) + { + FreeOamMatrix(gSprites[gBankSpriteIds[sprite->sBank]].oam.matrixNum); + DestroySprite(&gSprites[gBankSpriteIds[sprite->sBank]]); + DestroySpriteAndFreeResources(sprite); + if (gMain.inBattle) + gBattleSpritesDataPtr->healthBoxesData[bank].ballAnimActive = 0; + } +} + +static void SpriteCB_PlayerMonSendOut_1(struct Sprite *sprite) +{ + sprite->data[0] = 25; + sprite->data[2] = GetBankPosition(sprite->sBank, 2); + sprite->data[4] = GetBankPosition(sprite->sBank, 3) + 24; + sprite->data[5] = -30; + sprite->oam.affineParam = sprite->sBank; + sub_80A68D4(sprite); + sprite->callback = SpriteCB_PlayerMonSendOut_2; +} + +#define HIBYTE(x) (((x) >> 8) & 0xFF) + +static void SpriteCB_PlayerMonSendOut_2(struct Sprite *sprite) +{ + u32 r6; + u32 r7; + + if (HIBYTE(sprite->data[7]) >= 35 && HIBYTE(sprite->data[7]) < 80) + { + s16 r4; + + if ((sprite->oam.affineParam & 0xFF00) == 0) + { + r6 = sprite->data[1] & 1; + r7 = sprite->data[2] & 1; + sprite->data[1] = ((sprite->data[1] / 3) & ~1) | r6; + sprite->data[2] = ((sprite->data[2] / 3) & ~1) | r7; + StartSpriteAffineAnim(sprite, 4); + } + r4 = sprite->data[0]; + sub_80A6F3C(sprite); + sprite->data[7] += sprite->sBank / 3; + sprite->pos2.y += Sin(HIBYTE(sprite->data[7]), sprite->data[5]); + sprite->oam.affineParam += 0x100; + if ((sprite->oam.affineParam >> 8) % 3 != 0) + sprite->data[0] = r4; + else + sprite->data[0] = r4 - 1; + if (HIBYTE(sprite->data[7]) >= 80) + { + r6 = sprite->data[1] & 1; + r7 = sprite->data[2] & 1; + sprite->data[1] = ((sprite->data[1] * 3) & ~1) | r6; + sprite->data[2] = ((sprite->data[2] * 3) & ~1) | r7; + } + } + else + { + if (AnimateBallThrow(sprite)) + { + sprite->pos1.x += sprite->pos2.x; + sprite->pos1.y += sprite->pos2.y; + sprite->pos2.y = 0; + sprite->pos2.x = 0; + sprite->sBank = sprite->oam.affineParam & 0xFF; + sprite->data[0] = 0; + + if (IsDoubleBattle() && gBattleSpritesDataPtr->animationData->field_9_x1 + && sprite->sBank == GetBankByIdentity(IDENTITY_PLAYER_MON2)) + sprite->callback = SpriteCB_ReleaseMon2FromBall; + else + sprite->callback = SpriteCB_ReleaseMonFromBall; + + StartSpriteAffineAnim(sprite, 0); + } + } +} + +static void SpriteCB_ReleaseMon2FromBall(struct Sprite *sprite) +{ + if (sprite->data[0]++ > 24) + { + sprite->data[0] = 0; + sprite->callback = SpriteCB_ReleaseMonFromBall; + } +} + +static void SpriteCB_OpponentMonSendOut(struct Sprite *sprite) +{ + sprite->data[0]++; + if (sprite->data[0] > 15) + { + sprite->data[0] = 0; + if (IsDoubleBattle() && gBattleSpritesDataPtr->animationData->field_9_x1 + && sprite->sBank == GetBankByIdentity(IDENTITY_OPPONENT_MON2)) + sprite->callback = SpriteCB_ReleaseMon2FromBall; + else + sprite->callback = SpriteCB_ReleaseMonFromBall; + } +} + +#undef sBank + +static u8 LaunchBallStarsTaskForPokeball(u8 x, u8 y, u8 kindOfStars, u8 d) +{ + return LaunchBallStarsTask(x, y, kindOfStars, d, BALL_POKE); +} + +static u8 LaunchBallFadeMonTaskForPokeball(bool8 unFadeLater, u8 bank, u32 arg2) +{ + return LaunchBallFadeMonTask(unFadeLater, bank, arg2, BALL_POKE); +} + +void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 bank, u8 x, u8 y, u8 oamPriority, u8 subpriortiy, u8 g, u32 h, u16 species) +{ + u8 spriteId; + + LoadCompressedObjectPicUsingHeap(&gBallSpriteSheets[0]); + LoadCompressedObjectPaletteUsingHeap(&gBallSpritePalettes[0]); + spriteId = CreateSprite(&gBallSpriteTemplates[0], x, y, subpriortiy); + + gSprites[spriteId].data[0] = monSpriteId; + gSprites[spriteId].data[5] = gSprites[monSpriteId].pos1.x; + gSprites[spriteId].data[6] = gSprites[monSpriteId].pos1.y; + + gSprites[monSpriteId].pos1.x = x; + gSprites[monSpriteId].pos1.y = y; + gSprites[monSpriteId].data[7] = species; + + gSprites[spriteId].data[1] = g; + gSprites[spriteId].data[2] = bank; + gSprites[spriteId].data[3] = h; + gSprites[spriteId].data[4] = h >> 0x10; + gSprites[spriteId].oam.priority = oamPriority; + gSprites[spriteId].callback = sub_8076524; + + gSprites[monSpriteId].invisible = TRUE; +} + +static void sub_8076524(struct Sprite *sprite) +{ + if (sprite->data[1] == 0) + { + u8 r5; + u8 r7 = sprite->data[0]; + u8 bank = sprite->data[2]; + u32 r4 = (u16)sprite->data[3] | ((u16)sprite->data[4] << 16); + + if (sprite->subpriority != 0) + r5 = sprite->subpriority - 1; + else + r5 = 0; + + StartSpriteAnim(sprite, 1); + LaunchBallStarsTaskForPokeball(sprite->pos1.x, sprite->pos1.y - 5, sprite->oam.priority, r5); + sprite->data[1] = LaunchBallFadeMonTaskForPokeball(1, bank, r4); + sprite->callback = sub_80765E0; + gSprites[r7].invisible = FALSE; + StartSpriteAffineAnim(&gSprites[r7], 1); + AnimateSprite(&gSprites[r7]); + gSprites[r7].data[1] = 0x1000; + sprite->data[7] = 0; + } + else + { + sprite->data[1]--; + } +} + +static void sub_80765E0(struct Sprite *sprite) +{ + bool8 r12 = FALSE; + bool8 r6 = FALSE; + u8 monSpriteId = sprite->data[0]; + u16 var1; + u16 var2; + + if (sprite->animEnded) + sprite->invisible = TRUE; + if (gSprites[monSpriteId].affineAnimEnded) + { + StartSpriteAffineAnim(&gSprites[monSpriteId], 0); + r12 = TRUE; + } + var1 = (sprite->data[5] - sprite->pos1.x) * sprite->data[7] / 128 + sprite->pos1.x; + var2 = (sprite->data[6] - sprite->pos1.y) * sprite->data[7] / 128 + sprite->pos1.y; + gSprites[monSpriteId].pos1.x = var1; + gSprites[monSpriteId].pos1.y = var2; + if (sprite->data[7] < 128) + { + s16 sine = -(gSineTable[(u8)sprite->data[7]] / 8); + + sprite->data[7] += 4; + gSprites[monSpriteId].pos2.x = sine; + gSprites[monSpriteId].pos2.y = sine; + } + else + { + gSprites[monSpriteId].pos1.x = sprite->data[5]; + gSprites[monSpriteId].pos1.y = sprite->data[6]; + gSprites[monSpriteId].pos2.x = 0; + gSprites[monSpriteId].pos2.y = 0; + r6 = TRUE; + } + if (sprite->animEnded && r12 && r6) + { + if (gSprites[monSpriteId].data[7] == SPECIES_EGG) + DoMonFrontSpriteAnimation(&gSprites[monSpriteId], gSprites[monSpriteId].data[7], TRUE, 0); + else + DoMonFrontSpriteAnimation(&gSprites[monSpriteId], gSprites[monSpriteId].data[7], FALSE, 0); + + DestroySpriteAndFreeResources(sprite); + } +} + +u8 sub_807671C(u8 a, u8 b, u8 x, u8 y, u8 oamPriority, u8 subPriority, u8 g, u32 h) +{ + u8 spriteId; + + LoadCompressedObjectPicUsingHeap(&gBallSpriteSheets[0]); + LoadCompressedObjectPaletteUsingHeap(&gBallSpritePalettes[0]); + spriteId = CreateSprite(&gBallSpriteTemplates[0], x, y, subPriority); + gSprites[spriteId].data[0] = a; + gSprites[spriteId].data[1] = g; + gSprites[spriteId].data[2] = b; + gSprites[spriteId].data[3] = h; + gSprites[spriteId].data[4] = h >> 16; + gSprites[spriteId].oam.priority = oamPriority; + gSprites[spriteId].callback = sub_80767D4; + return spriteId; +} + +static void sub_80767D4(struct Sprite *sprite) +{ + if (sprite->data[1] == 0) + { + u8 r6; + u8 r7 = sprite->data[0]; + u8 r8 = sprite->data[2]; + u32 r5 = (u16)sprite->data[3] | ((u16)sprite->data[4] << 16); + + if (sprite->subpriority != 0) + r6 = sprite->subpriority - 1; + else + r6 = 0; + + StartSpriteAnim(sprite, 1); + LaunchBallStarsTaskForPokeball(sprite->pos1.x, sprite->pos1.y - 5, sprite->oam.priority, r6); + sprite->data[1] = LaunchBallFadeMonTaskForPokeball(1, r8, r5); + sprite->callback = sub_807687C; + StartSpriteAffineAnim(&gSprites[r7], 2); + AnimateSprite(&gSprites[r7]); + gSprites[r7].data[1] = 0; + } + else + { + sprite->data[1]--; + } +} + +static void sub_807687C(struct Sprite *sprite) +{ + u8 r1; + + sprite->data[5]++; + if (sprite->data[5] == 11) + PlaySE(SE_SUIKOMU); + r1 = sprite->data[0]; + if (gSprites[r1].affineAnimEnded) + { + StartSpriteAnim(sprite, 2); + gSprites[r1].invisible = TRUE; + sprite->data[5] = 0; + sprite->callback = sub_80768F0; + } + else + { + gSprites[r1].data[1] += 96; + gSprites[r1].pos2.y = -gSprites[r1].data[1] >> 8; + } +} + +static void sub_80768F0(struct Sprite *sprite) +{ + if (sprite->animEnded) + sprite->callback = SpriteCallbackDummy; +} + +static void DestroySpriteAndFreeResources_(struct Sprite *sprite) +{ + DestroySpriteAndFreeResources(sprite); +} + +void sub_8076918(u8 bank) +{ + struct Sprite *healthboxSprite = &gSprites[gHealthBoxesIds[bank]]; + + healthboxSprite->data[0] = 5; + healthboxSprite->data[1] = 0; + healthboxSprite->pos2.x = 0x73; + healthboxSprite->pos2.y = 0; + healthboxSprite->callback = sub_80769CC; + if (GetBankSide(bank) != SIDE_PLAYER) + { + healthboxSprite->data[0] = -healthboxSprite->data[0]; + healthboxSprite->data[1] = -healthboxSprite->data[1]; + healthboxSprite->pos2.x = -healthboxSprite->pos2.x; + healthboxSprite->pos2.y = -healthboxSprite->pos2.y; + } + gSprites[healthboxSprite->data[5]].callback(&gSprites[healthboxSprite->data[5]]); + if (GetBankIdentity(bank) == IDENTITY_PLAYER_MON2) + healthboxSprite->callback = sub_80769A8; +} + +static void sub_80769A8(struct Sprite *sprite) +{ + sprite->data[1]++; + if (sprite->data[1] == 20) + { + sprite->data[1] = 0; + sprite->callback = sub_80769CC; + } +} + +static void sub_80769CC(struct Sprite *sprite) +{ + sprite->pos2.x -= sprite->data[0]; + sprite->pos2.y -= sprite->data[1]; + if (sprite->pos2.x == 0 && sprite->pos2.y == 0) + sprite->callback = SpriteCallbackDummy; +} + +void DoHitAnimHealthboxEffect(u8 bank) +{ + u8 spriteId; + + spriteId = CreateInvisibleSpriteWithCallback(SpriteCB_HitAnimHealthoxEffect); + gSprites[spriteId].data[0] = 1; + gSprites[spriteId].data[1] = gHealthBoxesIds[bank]; + gSprites[spriteId].callback = SpriteCB_HitAnimHealthoxEffect; +} + +static void SpriteCB_HitAnimHealthoxEffect(struct Sprite *sprite) +{ + u8 r1 = sprite->data[1]; + + gSprites[r1].pos2.y = sprite->data[0]; + sprite->data[0] = -sprite->data[0]; + sprite->data[2]++; + if (sprite->data[2] == 21) + { + gSprites[r1].pos2.x = 0; + gSprites[r1].pos2.y = 0; + DestroySprite(sprite); + } +} + +void LoadBallGfx(u8 ballId) +{ + u16 var; + + if (GetSpriteTileStartByTag(gBallSpriteSheets[ballId].tag) == 0xFFFF) + { + LoadCompressedObjectPicUsingHeap(&gBallSpriteSheets[ballId]); + LoadCompressedObjectPaletteUsingHeap(&gBallSpritePalettes[ballId]); + } + switch (ballId) + { + case BALL_DIVE: + case BALL_LUXURY: + case BALL_PREMIER: + break; + default: + var = GetSpriteTileStartByTag(gBallSpriteSheets[ballId].tag); + LZDecompressVram(gOpenPokeballGfx, (void *)(VRAM + 0x10100 + var * 32)); + break; + } +} + +void FreeBallGfx(u8 ballId) +{ + FreeSpriteTilesByTag(gBallSpriteSheets[ballId].tag); + FreeSpritePaletteByTag(gBallSpritePalettes[ballId].tag); +} + +static u16 GetBankPokeballItemId(u8 bank) +{ + if (GetBankSide(bank) == SIDE_PLAYER) + return GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_POKEBALL); + else + return GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_POKEBALL); +} diff --git a/src/pokemon_1.c b/src/pokemon_1.c index f56ade967..98a35454f 100644 --- a/src/pokemon_1.c +++ b/src/pokemon_1.c @@ -1,8 +1,8 @@ #include "global.h" #include "pokemon.h" -#include "rng.h" +#include "random.h" #include "main.h" -#include "items.h" +#include "constants/items.h" #include "string_util.h" #include "text.h" diff --git a/src/pokemon_2.c b/src/pokemon_2.c index 7014be492..db176e025 100644 --- a/src/pokemon_2.c +++ b/src/pokemon_2.c @@ -2,9 +2,9 @@ #include "pokemon.h" #include "battle.h" #include "event_data.h" -#include "rng.h" +#include "random.h" #include "sprite.h" -#include "species.h" +#include "constants/species.h" #include "text.h" #include "string_util.h" @@ -1155,7 +1155,7 @@ u8 GetMonsStateToDoubles_2(void) s32 aliveCount = 0; s32 i; - for (i = 0; i < 6; i++) + for (i = 0; i < PARTY_SIZE; i++) { u32 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2, NULL); if (species != SPECIES_EGG && species != SPECIES_NONE diff --git a/src/pokemon_3.c b/src/pokemon_3.c index 01dfc954a..d58b024a8 100644 --- a/src/pokemon_3.c +++ b/src/pokemon_3.c @@ -1,25 +1,24 @@ #include "global.h" #include "pokemon.h" #include "main.h" -#include "items.h" +#include "constants/items.h" #include "string_util.h" #include "battle_message.h" #include "rtc.h" #include "item.h" #include "battle.h" -#include "species.h" +#include "constants/species.h" #include "link.h" -#include "hold_effects.h" -#include "rng.h" -#include "trainer_classes.h" -#include "trainer_ids.h" -#include "songs.h" +#include "constants/hold_effects.h" +#include "random.h" +#include "constants/trainers.h" +#include "constants/songs.h" #include "sound.h" #include "m4a.h" #include "task.h" #include "sprite.h" #include "text.h" -#include "abilities.h" +#include "constants/abilities.h" #include "pokemon_animation.h" #include "pokedex.h" @@ -692,9 +691,9 @@ void AdjustFriendship(struct Pokemon *mon, u8 event) if ((event != 5 || !(Random() & 1)) && (event != 3 || ((gBattleTypeFlags & BATTLE_TYPE_TRAINER) - && (gTrainers[gTrainerBattleOpponent_A].trainerClass == CLASS_ELITE_FOUR - || gTrainers[gTrainerBattleOpponent_A].trainerClass == CLASS_LEADER - || gTrainers[gTrainerBattleOpponent_A].trainerClass == CLASS_CHAMPION)))) + && (gTrainers[gTrainerBattleOpponent_A].trainerClass == TRAINER_CLASS_ELITE_FOUR + || gTrainers[gTrainerBattleOpponent_A].trainerClass == TRAINER_CLASS_LEADER + || gTrainers[gTrainerBattleOpponent_A].trainerClass == TRAINER_CLASS_CHAMPION)))) { s8 mod = gUnknown_08329ECE[event][friendshipLevel]; if (mod > 0 && holdEffect == HOLD_EFFECT_HAPPINESS_UP) @@ -1146,55 +1145,57 @@ void ClearBattleMonForms(void) u16 GetBattleBGM(void) { if (gBattleTypeFlags & BATTLE_TYPE_KYOGRE_GROUDON) - return 0x1E0; + return BGM_BATTLE34; if (gBattleTypeFlags & BATTLE_TYPE_REGI) - return 0x1DF; + return BGM_BATTLE36; if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) - return 0x1DC; + return BGM_BATTLE20; if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { u8 trainerClass; + if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) trainerClass = GetFrontierOpponentClass(gTrainerBattleOpponent_A); else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) - trainerClass = CLASS_EXPERT; + trainerClass = TRAINER_CLASS_EXPERT; else trainerClass = gTrainers[gTrainerBattleOpponent_A].trainerClass; + switch (trainerClass) { - case CLASS_AQUA_LEADER: - case CLASS_MAGMA_LEADER: - return 0x1E3; - case CLASS_TEAM_AQUA: - case CLASS_TEAM_MAGMA: - case CLASS_AQUA_ADMIN: - case CLASS_MAGMA_ADMIN: - return 0x1DB; - case CLASS_LEADER: - return 0x1DD; - case CLASS_CHAMPION: - return 0x1DE; - case CLASS_PKMN_TRAINER_RIVAL: + case TRAINER_CLASS_AQUA_LEADER: + case TRAINER_CLASS_MAGMA_LEADER: + return BGM_BATTLE30; + case TRAINER_CLASS_TEAM_AQUA: + case TRAINER_CLASS_TEAM_MAGMA: + case TRAINER_CLASS_AQUA_ADMIN: + case TRAINER_CLASS_MAGMA_ADMIN: + return BGM_BATTLE31; + case TRAINER_CLASS_LEADER: + return BGM_BATTLE32; + case TRAINER_CLASS_CHAMPION: + return BGM_BATTLE33; + case TRAINER_CLASS_PKMN_TRAINER_3: if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) - return 0x1E1; + return BGM_BATTLE35; if (!StringCompare(gTrainers[gTrainerBattleOpponent_A].trainerName, gText_BattleWallyName)) - return 0x1DC; - return 0x1E1; - case CLASS_ELITE_FOUR: - return 0x1E2; - case CLASS_SALON_MAIDEN: - case CLASS_DOME_ACE: - case CLASS_PALACE_MAVEN: - case CLASS_ARENA_TYCOON: - case CLASS_FACTORY_HEAD: - case CLASS_PIKE_QUEEN: - case CLASS_PYRAMID_KING: - return 0x1D7; + return BGM_BATTLE20; + return BGM_BATTLE35; + case TRAINER_CLASS_ELITE_FOUR: + return BGM_BATTLE38; + case TRAINER_CLASS_SALON_MAIDEN: + case TRAINER_CLASS_DOME_ACE: + case TRAINER_CLASS_PALACE_MAVEN: + case TRAINER_CLASS_ARENA_TYCOON: + case TRAINER_CLASS_FACTORY_HEAD: + case TRAINER_CLASS_PIKE_QUEEN: + case TRAINER_CLASS_PYRAMID_KING: + return BGM_BATTLE_FRONTIER_BRAIN; default: - return 0x1DC; + return BGM_BATTLE20; } } - return 0x1DA; + return BGM_BATTLE27; } void PlayBattleBGM(void) @@ -1297,13 +1298,13 @@ bool8 IsPokeSpriteNotFlipped(u16 species) return gBaseStats[species].noFlip; } -s8 GetMonFlavourRelation(struct Pokemon *mon, u8 a2) +s8 GetMonFlavorRelation(struct Pokemon *mon, u8 a2) { u8 nature = GetNature(mon); return gPokeblockFlavorCompatibilityTable[nature * 5 + a2]; } -s8 GetFlavourRelationByPersonality(u32 personality, u8 a2) +s8 GetFlavorRelationByPersonality(u32 personality, u8 a2) { u8 nature = GetNatureFromPersonality(personality); return gPokeblockFlavorCompatibilityTable[nature * 5 + a2]; @@ -1396,7 +1397,7 @@ static s32 GetWildMonTableIdInAlteringCave(u16 species) void SetWildMonHeldItem(void) { - if (!(gBattleTypeFlags & (BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_TRAINER | BATTLE_TYPE_PYRAMID | BATTLE_TYPE_x100000))) + if (!(gBattleTypeFlags & (BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_TRAINER | BATTLE_TYPE_PYRAMID | BATTLE_TYPE_PIKE))) { u16 rnd = Random() % 100; u16 species = GetMonData(&gEnemyParty[0], MON_DATA_SPECIES, 0); @@ -1462,12 +1463,14 @@ bool8 IsShinyOtIdPersonality(u32 otId, u32 personality) return retVal; } -const u8* GetTrainerPartnerName(void) +const u8 *GetTrainerPartnerName(void) { if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) { if (gPartnerTrainerId == STEVEN_PARTNER_ID) - return gTrainers[TRAINER_ID_STEVEN].trainerName; + { + return gTrainers[TRAINER_STEVEN].trainerName; + } else { GetFrontierTrainerName(gStringVar1, gPartnerTrainerId); @@ -1682,14 +1685,14 @@ void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality) } } -const u8* GetTrainerClassNameFromId(u16 trainerId) +const u8 *GetTrainerClassNameFromId(u16 trainerId) { if (trainerId > NO_OF_TRAINERS) trainerId = 0; return gTrainerClassNames[gTrainers[trainerId].trainerClass]; } -const u8* GetTrainerNameFromId(u16 trainerId) +const u8 *GetTrainerNameFromId(u16 trainerId) { if (trainerId > NO_OF_TRAINERS) trainerId = 0; diff --git a/src/pokemon_size_record.c b/src/pokemon_size_record.c index ec0103bc7..fe3b3e8dd 100644 --- a/src/pokemon_size_record.c +++ b/src/pokemon_size_record.c @@ -1,7 +1,7 @@ #include "global.h" #include "pokemon_size_record.h" #include "event_data.h" -#include "species.h" +#include "constants/species.h" #include "string_util.h" #include "text.h" #include "pokemon.h" diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index f82a52d38..bdf4427c7 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -1,7 +1,7 @@ #include "global.h" #include "pokemon_storage_system.h" #include "pokemon.h" -#include "species.h" +#include "constants/species.h" #include "event_data.h" #include "string_util.h" #include "text.h" diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index d09cbc407..b00979945 100755 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -3,18 +3,19 @@ #include "bg.h" #include "decompress.h" #include "item.h" -#include "items.h" +#include "constants/items.h" #include "link.h" #include "m4a.h" #include "main.h" #include "malloc.h" -#include "moves.h" +#include "constants/moves.h" #include "palette.h" #include "pokemon.h" -#include "songs.h" +#include "constants/songs.h" #include "sound.h" -#include "species.h" +#include "constants/species.h" #include "sprite.h" +#include "unk_text_util.h" #include "string_util.h" #include "task.h" #include "text.h" @@ -166,9 +167,7 @@ extern s32 GetStringCenterAlignXOffset(u8 fontId, u8 *str, s32 totalWidth); extern s32 GetStringRightAlignXOffset(u8 fontId, u8 *str, s32 totalWidth); extern bool8 sub_81A6BF4(); extern bool8 sub_81B9E94(); -extern void sub_81AFBF0(); -extern u8 sub_81AFC0C(u8 a, u8 *b); -extern void sub_81AFC28(u8 *a, u8 *b); +extern void UnkTextUtil_Reset(); extern void sub_8124610(u8 *a, u8 b); extern int GetPlayerIDAsU32(); extern u8 GetCurrentPpToMaxPpState(u8 a, u8 b); @@ -938,7 +937,7 @@ void sub_81C0704(u8 taskId) gUnknown_0203CF1C->unk40D3 = sub_81C45F4(&gUnknown_0203CF1C->currentMon, &data[1]); if (gUnknown_0203CF1C->unk40D3 == 0xFF) return; - gSprites[gUnknown_0203CF1C->unk40D3].data2 = 1; + gSprites[gUnknown_0203CF1C->unk40D3].data[2] = 1; sub_81C0E24(); data[1] = 0; break; @@ -953,7 +952,7 @@ void sub_81C0704(u8 taskId) sub_81C2524(); break; case 12: - gSprites[gUnknown_0203CF1C->unk40D3].data2 = 0; + gSprites[gUnknown_0203CF1C->unk40D3].data[2] = 0; break; default: if (sub_81221EC() == 0 && FuncIsActiveTask(sub_81C20F0) == 0) @@ -2993,12 +2992,12 @@ void sub_81C307C() { struct PokeSummary *sum = &gUnknown_0203CF1C->summary; u8 *text; - sub_81AFBF0(); - sub_81AFC0C(0, gUnknown_0861CE74); - sub_81AFC0C(1, gUnknown_0861CE7B); + UnkTextUtil_Reset(); + UnkTextUtil_SetPtrI(0, gUnknown_0861CE74); + UnkTextUtil_SetPtrI(1, gUnknown_0861CE7B); sub_81C31C0(); if (sub_81A6BF4() == TRUE || sub_81B9E94() == TRUE || sub_81C3304() == TRUE) - sub_81AFC28(gStringVar4, gText_XNature); + UnkTextUtil_StringExpandPlaceholders(gStringVar4, gText_XNature); else { u8 *alloced1 = Alloc(32); @@ -3007,7 +3006,7 @@ void sub_81C307C() if (sum->metLocation <= 0xD4) { sub_8124610(alloced2, sum->metLocation); - sub_81AFC0C(4, alloced2); + UnkTextUtil_SetPtrI(4, alloced2); } if (sub_81C3220() == 1) { @@ -3022,7 +3021,7 @@ void sub_81C307C() text = (sum->metLocation > 0xD4) ? gText_XNatureObtainedInTrade : gText_XNatureProbablyMetAt; else text = gText_XNatureObtainedInTrade; - sub_81AFC28(gStringVar4, text); + UnkTextUtil_StringExpandPlaceholders(gStringVar4, text); Free(alloced1); Free(alloced2); } @@ -3036,8 +3035,8 @@ void sub_81C3194() void sub_81C31C0() { struct UnkSummaryStruct *sumStruct = gUnknown_0203CF1C; - sub_81AFC0C(2, gNatureNamePointers[sumStruct->summary.nature]); - sub_81AFC0C(5, gText_EmptyString5); + UnkTextUtil_SetPtrI(2, gNatureNamePointers[sumStruct->summary.nature]); + UnkTextUtil_SetPtrI(5, gText_EmptyString5); } void sub_81C31F0(u8 *a) @@ -3046,7 +3045,7 @@ void sub_81C31F0(u8 *a) if (level == 0) level = 5; ConvertIntToDecimalStringN(a, level, 0, 3); - sub_81AFC0C(3, a); + UnkTextUtil_SetPtrI(3, a); } u8 sub_81C3220() @@ -3301,12 +3300,12 @@ void sub_81C3710() ConvertIntToDecimalStringN(alloced2, gUnknown_0203CF1C->summary.maxHP, 1, 3); ConvertIntToDecimalStringN(alloced3, gUnknown_0203CF1C->summary.atk, 1, 7); ConvertIntToDecimalStringN(alloced4, gUnknown_0203CF1C->summary.def, 1, 7); - sub_81AFBF0(); - sub_81AFC0C(0, alloced1); - sub_81AFC0C(1, alloced2); - sub_81AFC0C(2, alloced3); - sub_81AFC0C(3, alloced4); - sub_81AFC28(gStringVar4, gUnknown_0861CE82); + UnkTextUtil_Reset(); + UnkTextUtil_SetPtrI(0, alloced1); + UnkTextUtil_SetPtrI(1, alloced2); + UnkTextUtil_SetPtrI(2, alloced3); + UnkTextUtil_SetPtrI(3, alloced4); + UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_0861CE82); Free(alloced1); Free(alloced2); Free(alloced3); @@ -3323,11 +3322,11 @@ void sub_81C3808() ConvertIntToDecimalStringN(gStringVar1, gUnknown_0203CF1C->summary.spatk, 1, 3); ConvertIntToDecimalStringN(gStringVar2, gUnknown_0203CF1C->summary.spdef, 1, 3); ConvertIntToDecimalStringN(gStringVar3, gUnknown_0203CF1C->summary.speed, 1, 3); - sub_81AFBF0(); - sub_81AFC0C(0, gStringVar1); - sub_81AFC0C(1, gStringVar2); - sub_81AFC0C(2, gStringVar3); - sub_81AFC28(gStringVar4, gUnknown_0861CE8E); + UnkTextUtil_Reset(); + UnkTextUtil_SetPtrI(0, gStringVar1); + UnkTextUtil_SetPtrI(1, gStringVar2); + UnkTextUtil_SetPtrI(2, gStringVar3); + UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_0861CE8E); } void sub_81C3890() @@ -3436,10 +3435,10 @@ void sub_81C3B08(u8 a) sub_81C25A4(r8, gMoveNames[move], 0, (a<<4) + 1, 0, 1); ConvertIntToDecimalStringN(gStringVar1, r10->summary.pp[a], 1, 2); ConvertIntToDecimalStringN(gStringVar2, r6, 1, 2); - sub_81AFBF0(); - sub_81AFC0C(0, gStringVar1); - sub_81AFC0C(1, gStringVar2); - sub_81AFC28(gStringVar4, gUnknown_0861CE97); + UnkTextUtil_Reset(); + UnkTextUtil_SetPtrI(0, gStringVar1); + UnkTextUtil_SetPtrI(1, gStringVar2); + UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_0861CE97); text = gStringVar4; r5 = GetCurrentPpToMaxPpState(r10->summary.pp[a], r6) + 9; offset = GetStringRightAlignXOffset(1, text, 0x2C); @@ -3531,17 +3530,17 @@ void sub_81C3B08(u8 a) movs r2, 0x1\n\ movs r3, 0x2\n\ bl ConvertIntToDecimalStringN\n\ - bl sub_81AFBF0\n\ + bl UnkTextUtil_Reset\n\ movs r0, 0\n\ mov r1, r8\n\ - bl sub_81AFC0C\n\ + bl UnkTextUtil_SetPtrI\n\ movs r0, 0x1\n\ adds r1, r4, 0\n\ - bl sub_81AFC0C\n\ + bl UnkTextUtil_SetPtrI\n\ ldr r4, =gStringVar4\n\ ldr r1, =gUnknown_0861CE97\n\ adds r0, r4, 0\n\ - bl sub_81AFC28\n\ + bl UnkTextUtil_StringExpandPlaceholders\n\ adds r7, r4, 0\n\ ldrb r0, [r5]\n\ adds r1, r6, 0\n\ diff --git a/src/rng.c b/src/random.c index ddd149018..f2f0ede58 100644 --- a/src/rng.c +++ b/src/random.c @@ -1,5 +1,5 @@ #include "global.h" -#include "rng.h" +#include "random.h" // The number 1103515245 comes from the example implementation of rand and srand // in the ISO C standard. diff --git a/src/recorded_battle.c b/src/recorded_battle.c index e843ff7cb..c88229c61 100644 --- a/src/recorded_battle.c +++ b/src/recorded_battle.c @@ -3,7 +3,7 @@ #include "recorded_battle.h" #include "main.h" #include "pokemon.h" -#include "rng.h" +#include "random.h" #include "event_data.h" #include "link.h" #include "string_util.h" @@ -19,7 +19,7 @@ | BATTLE_TYPE_WALLY_TUTORIAL | BATTLE_TYPE_ROAMER | BATTLE_TYPE_EREADER_TRAINER \ | BATTLE_TYPE_KYOGRE_GROUDON | BATTLE_TYPE_LEGENDARY | BATTLE_TYPE_REGI \ | BATTLE_TYPE_RECORDED | BATTLE_TYPE_x4000000 | BATTLE_TYPE_SECRET_BASE \ - | BATTLE_TYPE_GROUDON | BATTLE_TYPE_KYORGE | BATTLE_TYPE_RAYQUAZA)) + | BATTLE_TYPE_GROUDON | BATTLE_TYPE_KYOGRE | BATTLE_TYPE_RAYQUAZA)) extern u32 gBattleTypeFlags; extern u16 gTrainerBattleOpponent_A; diff --git a/src/region_map.c b/src/region_map.c index da96475c0..b7fc625ca 100644 --- a/src/region_map.c +++ b/src/region_map.c @@ -1,25 +1,23 @@ - -// Includes #include "global.h" #include "main.h" +#include "text.h" #include "menu.h" #include "malloc.h" #include "gpu_regs.h" #include "palette.h" #include "party_menu.h" #include "trig.h" -#include "map_constants.h" +#include "constants/maps.h" #include "overworld.h" -#include "flags.h" +#include "constants/flags.h" #include "event_data.h" #include "rom6.h" #include "secret_base.h" #include "string_util.h" #include "international_string_util.h" #include "strings.h" -#include "text.h" #include "text_window.h" -#include "songs.h" +#include "constants/songs.h" #include "m4a.h" #include "field_effect.h" #include "region_map.h" @@ -244,56 +242,56 @@ static const u16 Unknown_085A1D48[] = INCBIN_U16("graphics/pokenav/fly_target_ic static const u8 gUnknown_085A1D68[] = INCBIN_U8("graphics/pokenav/fly_target_icons.4bpp.lz"); static const u8 gUnknown_085A1E3C[][3] = { - {MAP_GROUP_LITTLEROOT_TOWN, MAP_ID_LITTLEROOT_TOWN, 1}, - {MAP_GROUP_OLDALE_TOWN, MAP_ID_OLDALE_TOWN, 14}, - {MAP_GROUP_DEWFORD_TOWN, MAP_ID_DEWFORD_TOWN, 15}, - {MAP_GROUP_LAVARIDGE_TOWN, MAP_ID_LAVARIDGE_TOWN, 16}, - {MAP_GROUP_FALLARBOR_TOWN, MAP_ID_FALLARBOR_TOWN, 17}, - {MAP_GROUP_VERDANTURF_TOWN, MAP_ID_VERDANTURF_TOWN, 18}, - {MAP_GROUP_PACIFIDLOG_TOWN, MAP_ID_PACIFIDLOG_TOWN, 19}, - {MAP_GROUP_PETALBURG_CITY, MAP_ID_PETALBURG_CITY, 3}, - {MAP_GROUP_SLATEPORT_CITY, MAP_ID_SLATEPORT_CITY, 4}, - {MAP_GROUP_MAUVILLE_CITY, MAP_ID_MAUVILLE_CITY, 5}, - {MAP_GROUP_RUSTBORO_CITY, MAP_ID_RUSTBORO_CITY, 6}, - {MAP_GROUP_FORTREE_CITY, MAP_ID_FORTREE_CITY, 7}, - {MAP_GROUP_LILYCOVE_CITY, MAP_ID_LILYCOVE_CITY, 8}, - {MAP_GROUP_MOSSDEEP_CITY, MAP_ID_MOSSDEEP_CITY, 9}, - {MAP_GROUP_SOOTOPOLIS_CITY, MAP_ID_SOOTOPOLIS_CITY, 10}, - {MAP_GROUP_EVER_GRANDE_CITY, MAP_ID_EVER_GRANDE_CITY, 11}, - {MAP_GROUP_ROUTE101, MAP_ID_ROUTE101, 0}, - {MAP_GROUP_ROUTE102, MAP_ID_ROUTE102, 0}, - {MAP_GROUP_ROUTE103, MAP_ID_ROUTE103, 0}, - {MAP_GROUP_ROUTE104, MAP_ID_ROUTE104, 0}, - {MAP_GROUP_ROUTE105, MAP_ID_ROUTE105, 0}, - {MAP_GROUP_ROUTE106, MAP_ID_ROUTE106, 0}, - {MAP_GROUP_ROUTE107, MAP_ID_ROUTE107, 0}, - {MAP_GROUP_ROUTE108, MAP_ID_ROUTE108, 0}, - {MAP_GROUP_ROUTE109, MAP_ID_ROUTE109, 0}, - {MAP_GROUP_ROUTE110, MAP_ID_ROUTE110, 0}, - {MAP_GROUP_ROUTE111, MAP_ID_ROUTE111, 0}, - {MAP_GROUP_ROUTE112, MAP_ID_ROUTE112, 0}, - {MAP_GROUP_ROUTE113, MAP_ID_ROUTE113, 0}, - {MAP_GROUP_ROUTE114, MAP_ID_ROUTE114, 0}, - {MAP_GROUP_ROUTE115, MAP_ID_ROUTE115, 0}, - {MAP_GROUP_ROUTE116, MAP_ID_ROUTE116, 0}, - {MAP_GROUP_ROUTE117, MAP_ID_ROUTE117, 0}, - {MAP_GROUP_ROUTE118, MAP_ID_ROUTE118, 0}, - {MAP_GROUP_ROUTE119, MAP_ID_ROUTE119, 0}, - {MAP_GROUP_ROUTE120, MAP_ID_ROUTE120, 0}, - {MAP_GROUP_ROUTE121, MAP_ID_ROUTE121, 0}, - {MAP_GROUP_ROUTE122, MAP_ID_ROUTE122, 0}, - {MAP_GROUP_ROUTE123, MAP_ID_ROUTE123, 0}, - {MAP_GROUP_ROUTE124, MAP_ID_ROUTE124, 0}, - {MAP_GROUP_ROUTE125, MAP_ID_ROUTE125, 0}, - {MAP_GROUP_ROUTE126, MAP_ID_ROUTE126, 0}, - {MAP_GROUP_ROUTE127, MAP_ID_ROUTE127, 0}, - {MAP_GROUP_ROUTE128, MAP_ID_ROUTE128, 0}, - {MAP_GROUP_ROUTE129, MAP_ID_ROUTE129, 0}, - {MAP_GROUP_ROUTE130, MAP_ID_ROUTE130, 0}, - {MAP_GROUP_ROUTE131, MAP_ID_ROUTE131, 0}, - {MAP_GROUP_ROUTE132, MAP_ID_ROUTE132, 0}, - {MAP_GROUP_ROUTE133, MAP_ID_ROUTE133, 0}, - {MAP_GROUP_ROUTE134, MAP_ID_ROUTE134, 0} + {MAP_GROUP(LITTLEROOT_TOWN), MAP_NUM(LITTLEROOT_TOWN), 1}, + {MAP_GROUP(OLDALE_TOWN), MAP_NUM(OLDALE_TOWN), 14}, + {MAP_GROUP(DEWFORD_TOWN), MAP_NUM(DEWFORD_TOWN), 15}, + {MAP_GROUP(LAVARIDGE_TOWN), MAP_NUM(LAVARIDGE_TOWN), 16}, + {MAP_GROUP(FALLARBOR_TOWN), MAP_NUM(FALLARBOR_TOWN), 17}, + {MAP_GROUP(VERDANTURF_TOWN), MAP_NUM(VERDANTURF_TOWN), 18}, + {MAP_GROUP(PACIFIDLOG_TOWN), MAP_NUM(PACIFIDLOG_TOWN), 19}, + {MAP_GROUP(PETALBURG_CITY), MAP_NUM(PETALBURG_CITY), 3}, + {MAP_GROUP(SLATEPORT_CITY), MAP_NUM(SLATEPORT_CITY), 4}, + {MAP_GROUP(MAUVILLE_CITY), MAP_NUM(MAUVILLE_CITY), 5}, + {MAP_GROUP(RUSTBORO_CITY), MAP_NUM(RUSTBORO_CITY), 6}, + {MAP_GROUP(FORTREE_CITY), MAP_NUM(FORTREE_CITY), 7}, + {MAP_GROUP(LILYCOVE_CITY), MAP_NUM(LILYCOVE_CITY), 8}, + {MAP_GROUP(MOSSDEEP_CITY), MAP_NUM(MOSSDEEP_CITY), 9}, + {MAP_GROUP(SOOTOPOLIS_CITY), MAP_NUM(SOOTOPOLIS_CITY), 10}, + {MAP_GROUP(EVER_GRANDE_CITY), MAP_NUM(EVER_GRANDE_CITY), 11}, + {MAP_GROUP(ROUTE101), MAP_NUM(ROUTE101), 0}, + {MAP_GROUP(ROUTE102), MAP_NUM(ROUTE102), 0}, + {MAP_GROUP(ROUTE103), MAP_NUM(ROUTE103), 0}, + {MAP_GROUP(ROUTE104), MAP_NUM(ROUTE104), 0}, + {MAP_GROUP(ROUTE105), MAP_NUM(ROUTE105), 0}, + {MAP_GROUP(ROUTE106), MAP_NUM(ROUTE106), 0}, + {MAP_GROUP(ROUTE107), MAP_NUM(ROUTE107), 0}, + {MAP_GROUP(ROUTE108), MAP_NUM(ROUTE108), 0}, + {MAP_GROUP(ROUTE109), MAP_NUM(ROUTE109), 0}, + {MAP_GROUP(ROUTE110), MAP_NUM(ROUTE110), 0}, + {MAP_GROUP(ROUTE111), MAP_NUM(ROUTE111), 0}, + {MAP_GROUP(ROUTE112), MAP_NUM(ROUTE112), 0}, + {MAP_GROUP(ROUTE113), MAP_NUM(ROUTE113), 0}, + {MAP_GROUP(ROUTE114), MAP_NUM(ROUTE114), 0}, + {MAP_GROUP(ROUTE115), MAP_NUM(ROUTE115), 0}, + {MAP_GROUP(ROUTE116), MAP_NUM(ROUTE116), 0}, + {MAP_GROUP(ROUTE117), MAP_NUM(ROUTE117), 0}, + {MAP_GROUP(ROUTE118), MAP_NUM(ROUTE118), 0}, + {MAP_GROUP(ROUTE119), MAP_NUM(ROUTE119), 0}, + {MAP_GROUP(ROUTE120), MAP_NUM(ROUTE120), 0}, + {MAP_GROUP(ROUTE121), MAP_NUM(ROUTE121), 0}, + {MAP_GROUP(ROUTE122), MAP_NUM(ROUTE122), 0}, + {MAP_GROUP(ROUTE123), MAP_NUM(ROUTE123), 0}, + {MAP_GROUP(ROUTE124), MAP_NUM(ROUTE124), 0}, + {MAP_GROUP(ROUTE125), MAP_NUM(ROUTE125), 0}, + {MAP_GROUP(ROUTE126), MAP_NUM(ROUTE126), 0}, + {MAP_GROUP(ROUTE127), MAP_NUM(ROUTE127), 0}, + {MAP_GROUP(ROUTE128), MAP_NUM(ROUTE128), 0}, + {MAP_GROUP(ROUTE129), MAP_NUM(ROUTE129), 0}, + {MAP_GROUP(ROUTE130), MAP_NUM(ROUTE130), 0}, + {MAP_GROUP(ROUTE131), MAP_NUM(ROUTE131), 0}, + {MAP_GROUP(ROUTE132), MAP_NUM(ROUTE132), 0}, + {MAP_GROUP(ROUTE133), MAP_NUM(ROUTE133), 0}, + {MAP_GROUP(ROUTE134), MAP_NUM(ROUTE134), 0} }; static const u8 *const gUnknown_085A1ED4[] = { @@ -873,10 +871,10 @@ static void RegionMap_InitializeStateBasedOnPlayerLocation(void) u16 xOnMap; struct WarpData *storedWarp; - if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP_SS_TIDAL_CORRIDOR - && (gSaveBlock1Ptr->location.mapNum == MAP_ID_SS_TIDAL_CORRIDOR - || gSaveBlock1Ptr->location.mapNum == MAP_ID_SS_TIDAL_LOWER_DECK - || gSaveBlock1Ptr->location.mapNum == MAP_ID_SS_TIDAL_ROOMS)) + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SS_TIDAL_CORRIDOR) + && (gSaveBlock1Ptr->location.mapNum == MAP_NUM(SS_TIDAL_CORRIDOR) + || gSaveBlock1Ptr->location.mapNum == MAP_NUM(SS_TIDAL_LOWER_DECK) + || gSaveBlock1Ptr->location.mapNum == MAP_NUM(SS_TIDAL_ROOMS))) { RegionMap_InitializeStateBasedOnSSTidalLocation(); return; @@ -1334,9 +1332,9 @@ void CreateRegionMapCursor(u16 tileTag, u16 paletteTag) gRegionMap->cursorSprite->pos1.x = 8 * gRegionMap->cursorPosX + 4; gRegionMap->cursorSprite->pos1.y = 8 * gRegionMap->cursorPosY + 4; } - gRegionMap->cursorSprite->data1 = 2; - gRegionMap->cursorSprite->data2 = (IndexOfSpritePaletteTag(paletteTag) << 4) + 0x101; - gRegionMap->cursorSprite->data3 = TRUE; + gRegionMap->cursorSprite->data[1] = 2; + gRegionMap->cursorSprite->data[2] = (IndexOfSpritePaletteTag(paletteTag) << 4) + 0x101; + gRegionMap->cursorSprite->data[3] = TRUE; } } @@ -1352,12 +1350,12 @@ static void FreeRegionMapCursorSprite(void) void sub_8124268(void) { - gRegionMap->cursorSprite->data3 = TRUE; + gRegionMap->cursorSprite->data[3] = TRUE; } void sub_8124278(void) { - gRegionMap->cursorSprite->data3 = FALSE; + gRegionMap->cursorSprite->data[3] = FALSE; } void CreateRegionMapPlayerIcon(u16 tileTag, u16 paletteTag) @@ -1431,17 +1429,17 @@ static void RegionMapPlayerIconSpriteCallback_Zoomed(struct Sprite *sprite) { sprite->pos2.x = -2 * gRegionMap->scrollX; sprite->pos2.y = -2 * gRegionMap->scrollY; - sprite->data0 = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY; - sprite->data1 = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX; - if (sprite->data0 < -8 || sprite->data0 > 0xa8 || sprite->data1 < -8 || sprite->data1 > 0xf8) + sprite->data[0] = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY; + sprite->data[1] = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX; + if (sprite->data[0] < -8 || sprite->data[0] > 0xa8 || sprite->data[1] < -8 || sprite->data[1] > 0xf8) { - sprite->data2 = FALSE; + sprite->data[2] = FALSE; } else { - sprite->data2 = TRUE; + sprite->data[2] = TRUE; } - if (sprite->data2 == TRUE) + if (sprite->data[2] == TRUE) { RegionMapPlayerIconSpriteCallback(sprite); } @@ -1460,9 +1458,9 @@ static void RegionMapPlayerIconSpriteCallback(struct Sprite *sprite) { if (gRegionMap->blinkPlayerIcon) { - if (++sprite->data7 > 16) + if (++sprite->data[7] > 16) { - sprite->data7 = 0; + sprite->data[7] = 0; sprite->invisible = sprite->invisible ? FALSE : TRUE; } } @@ -1792,7 +1790,7 @@ static void sub_8124AD4(void) shape += 3; } StartSpriteAnim(&gSprites[spriteId], shape); - gSprites[spriteId].data0 = i; + gSprites[spriteId].data[0] = i; } canFlyFlag++; } @@ -1822,7 +1820,7 @@ static void sub_8124BE4(void) gSprites[spriteId].oam.size = 1; gSprites[spriteId].callback = sub_8124CBC; StartSpriteAnim(&gSprites[spriteId], 6); - gSprites[spriteId].data0 = mapSecId; + gSprites[spriteId].data[0] = mapSecId; } } } @@ -1830,17 +1828,17 @@ static void sub_8124BE4(void) static void sub_8124CBC(struct Sprite *sprite) { - if (gUnknown_0203A148->regionMap.mapSecId == sprite->data0) + if (gUnknown_0203A148->regionMap.mapSecId == sprite->data[0]) { - if (++sprite->data1 > 16) + if (++sprite->data[1] > 16) { - sprite->data1 = 0; + sprite->data[1] = 0; sprite->invisible = sprite->invisible ? FALSE : TRUE; } } else { - sprite->data1 = 16; + sprite->data[1] = 16; sprite->invisible = FALSE; } } diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c index 3177a8946..a034ca089 100644 --- a/src/reshow_battle_screen.c +++ b/src/reshow_battle_screen.c @@ -10,7 +10,7 @@ #include "battle_controllers.h" #include "link.h" #include "sprite.h" -#include "species.h" +#include "constants/species.h" #include "battle_interface.h" extern u16 gBattle_BG0_X; @@ -42,7 +42,7 @@ extern u8 GetBankSpriteDefault_Y(u8 bank); extern u8 sub_80A82E4(u8 bank); extern void sub_806A068(u16 species, u8 bankIdentity); extern void sub_806A12C(u16 backPicId, u8 bankIdentity); -extern u8 sub_80A5C6C(u8 bank, u8 caseId); +extern u8 GetBankPosition(u8 bank, u8 caseId); // this file's functions static void CB2_ReshowBattleScreenAfterMenu(void); @@ -260,11 +260,11 @@ static void CreateBankSprite(u8 bank) return; sub_806A068(GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES), GetBankIdentity(bank)); - gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, sub_80A5C6C(bank, 2), posY, sub_80A82E4(bank)); + gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, GetBankPosition(bank, 2), posY, sub_80A82E4(bank)); gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gBankSpriteIds[bank]].data0 = bank; - gSprites[gBankSpriteIds[bank]].data2 = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES); + gSprites[gBankSpriteIds[bank]].data[0] = bank; + gSprites[gBankSpriteIds[bank]].data[2] = GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_SPECIES); StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); if (gBattleSpritesDataPtr->bankData[bank].transformSpecies == SPECIES_CASTFORM) @@ -278,7 +278,7 @@ static void CreateBankSprite(u8 bank) sub_80A82E4(0)); gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gBankSpriteIds[bank]].data0 = bank; + gSprites[gBankSpriteIds[bank]].data[0] = bank; } else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0) { @@ -288,7 +288,7 @@ static void CreateBankSprite(u8 bank) sub_80A82E4(0)); gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gBankSpriteIds[bank]].data0 = bank; + gSprites[gBankSpriteIds[bank]].data[0] = bank; } else { @@ -296,11 +296,11 @@ static void CreateBankSprite(u8 bank) return; sub_806A068(GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES), GetBankIdentity(bank)); - gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, sub_80A5C6C(bank, 2), posY, sub_80A82E4(bank)); + gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, GetBankPosition(bank, 2), posY, sub_80A82E4(bank)); gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; - gSprites[gBankSpriteIds[bank]].data0 = bank; - gSprites[gBankSpriteIds[bank]].data2 = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES); + gSprites[gBankSpriteIds[bank]].data[0] = bank; + gSprites[gBankSpriteIds[bank]].data[2] = GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_SPECIES); StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); if (gBattleSpritesDataPtr->bankData[bank].transformSpecies == SPECIES_CASTFORM) diff --git a/src/roamer.c b/src/roamer.c index cbe1b6312..fbd25bfad 100644 --- a/src/roamer.c +++ b/src/roamer.c @@ -1,8 +1,8 @@ #include "global.h" #include "roamer.h" #include "pokemon.h" -#include "rng.h" -#include "species.h" +#include "random.h" +#include "constants/species.h" #include "event_data.h" enum diff --git a/src/safari_zone.c b/src/safari_zone.c index d3d40af28..f1d59907d 100644 --- a/src/safari_zone.c +++ b/src/safari_zone.c @@ -1,7 +1,7 @@ #include "global.h" #include "safari_zone.h" #include "event_data.h" -#include "game_stat.h" +#include "constants/game_stat.h" #include "main.h" #include "battle.h" #include "string_util.h" @@ -105,7 +105,7 @@ void SafariZoneRetirePrompt(void) ScriptContext1_SetupScript(EventScript_2A4B6F); } -void sub_80FC190(void) +void CB2_EndSafariBattle(void) { sSafariZoneFleedMons += gBattleResults.field_1F; if (gBattleOutcome == BATTLE_CAUGHT) diff --git a/src/save.c b/src/save.c index 528c67145..023ca6870 100644 --- a/src/save.c +++ b/src/save.c @@ -1,7 +1,7 @@ #include "global.h" #include "gba/flash_internal.h" #include "save.h" -#include "game_stat.h" +#include "constants/game_stat.h" #include "task.h" extern struct SaveSectionLocation gRamSaveSectionLocations[0xE]; diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c index 3f49b89e6..ef01f0293 100755 --- a/src/save_failed_screen.c +++ b/src/save_failed_screen.c @@ -13,8 +13,6 @@ #define MSG_WIN_TOP 12 #define CLOCK_WIN_TOP (MSG_WIN_TOP - 4) -extern void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, struct TextColor *color, s8 speed, u8 *str); - extern void (*gGameContinueCallback)(void); extern u32 gDamagedSaveSectors; diff --git a/src/save_location.c b/src/save_location.c index 61a5fd30d..262aaf40c 100755 --- a/src/save_location.c +++ b/src/save_location.c @@ -1,9 +1,6 @@ #include "global.h" #include "save_location.h" -#include "map_constants.h" - -// used to make the list defines a little less ugly. -#define MAP(name) ((MAP_GROUP_##name << 8) + (MAP_ID_##name)) +#include "constants/maps.h" // specialSaveWarp flags #define POKECENTER_SAVEWARP (1 << 1) @@ -29,44 +26,44 @@ static bool32 IsCurMapInLocationList(const u16 *list) // TODO: Not require a packed u16 array for these lists static const u16 sSaveLocationPokeCenterList[] = { - MAP(OLDALE_TOWN_POKEMON_CENTER_1F), - MAP(OLDALE_TOWN_POKEMON_CENTER_2F), - MAP(DEWFORD_TOWN_POKEMON_CENTER_1F), - MAP(DEWFORD_TOWN_POKEMON_CENTER_2F), - MAP(LAVARIDGE_TOWN_POKEMON_CENTER_1F), - MAP(LAVARIDGE_TOWN_POKEMON_CENTER_2F), - MAP(FALLARBOR_TOWN_POKEMON_CENTER_1F), - MAP(FALLARBOR_TOWN_POKEMON_CENTER_2F), - MAP(VERDANTURF_TOWN_POKEMON_CENTER_1F), - MAP(VERDANTURF_TOWN_POKEMON_CENTER_2F), - MAP(PACIFIDLOG_TOWN_POKEMON_CENTER_1F), - MAP(PACIFIDLOG_TOWN_POKEMON_CENTER_2F), - MAP(PETALBURG_CITY_POKEMON_CENTER_1F), - MAP(PETALBURG_CITY_POKEMON_CENTER_2F), - MAP(SLATEPORT_CITY_POKEMON_CENTER_1F), - MAP(SLATEPORT_CITY_POKEMON_CENTER_2F), - MAP(MAUVILLE_CITY_POKEMON_CENTER_1F), - MAP(MAUVILLE_CITY_POKEMON_CENTER_2F), - MAP(RUSTBORO_CITY_POKEMON_CENTER_1F), - MAP(RUSTBORO_CITY_POKEMON_CENTER_2F), - MAP(FORTREE_CITY_POKEMON_CENTER_1F), - MAP(FORTREE_CITY_POKEMON_CENTER_2F), - MAP(LILYCOVE_CITY_POKEMON_CENTER_1F), - MAP(LILYCOVE_CITY_POKEMON_CENTER_2F), - MAP(MOSSDEEP_CITY_POKEMON_CENTER_1F), - MAP(MOSSDEEP_CITY_POKEMON_CENTER_2F), - MAP(SOOTOPOLIS_CITY_POKEMON_CENTER_1F), - MAP(SOOTOPOLIS_CITY_POKEMON_CENTER_2F), - MAP(EVER_GRANDE_CITY_POKEMON_CENTER_1F), - MAP(EVER_GRANDE_CITY_POKEMON_CENTER_2F), - MAP(EVER_GRANDE_CITY_POKEMON_LEAGUE_1F), - MAP(EVER_GRANDE_CITY_POKEMON_LEAGUE_2F), - MAP(BATTLE_FRONTIER_POKEMON_CENTER_1F), - MAP(BATTLE_FRONTIER_POKEMON_CENTER_2F), - MAP(SINGLE_BATTLE_COLOSSEUM), - MAP(TRADE_CENTER), - MAP(RECORD_CORNER), - MAP(DOUBLE_BATTLE_COLOSSEUM), + MAP_OLDALE_TOWN_POKEMON_CENTER_1F, + MAP_OLDALE_TOWN_POKEMON_CENTER_2F, + MAP_DEWFORD_TOWN_POKEMON_CENTER_1F, + MAP_DEWFORD_TOWN_POKEMON_CENTER_2F, + MAP_LAVARIDGE_TOWN_POKEMON_CENTER_1F, + MAP_LAVARIDGE_TOWN_POKEMON_CENTER_2F, + MAP_FALLARBOR_TOWN_POKEMON_CENTER_1F, + MAP_FALLARBOR_TOWN_POKEMON_CENTER_2F, + MAP_VERDANTURF_TOWN_POKEMON_CENTER_1F, + MAP_VERDANTURF_TOWN_POKEMON_CENTER_2F, + MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_1F, + MAP_PACIFIDLOG_TOWN_POKEMON_CENTER_2F, + MAP_PETALBURG_CITY_POKEMON_CENTER_1F, + MAP_PETALBURG_CITY_POKEMON_CENTER_2F, + MAP_SLATEPORT_CITY_POKEMON_CENTER_1F, + MAP_SLATEPORT_CITY_POKEMON_CENTER_2F, + MAP_MAUVILLE_CITY_POKEMON_CENTER_1F, + MAP_MAUVILLE_CITY_POKEMON_CENTER_2F, + MAP_RUSTBORO_CITY_POKEMON_CENTER_1F, + MAP_RUSTBORO_CITY_POKEMON_CENTER_2F, + MAP_FORTREE_CITY_POKEMON_CENTER_1F, + MAP_FORTREE_CITY_POKEMON_CENTER_2F, + MAP_LILYCOVE_CITY_POKEMON_CENTER_1F, + MAP_LILYCOVE_CITY_POKEMON_CENTER_2F, + MAP_MOSSDEEP_CITY_POKEMON_CENTER_1F, + MAP_MOSSDEEP_CITY_POKEMON_CENTER_2F, + MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_1F, + MAP_SOOTOPOLIS_CITY_POKEMON_CENTER_2F, + MAP_EVER_GRANDE_CITY_POKEMON_CENTER_1F, + MAP_EVER_GRANDE_CITY_POKEMON_CENTER_2F, + MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_1F, + MAP_EVER_GRANDE_CITY_POKEMON_LEAGUE_2F, + MAP_BATTLE_FRONTIER_POKEMON_CENTER_1F, + MAP_BATTLE_FRONTIER_POKEMON_CENTER_2F, + MAP_SINGLE_BATTLE_COLOSSEUM, + MAP_TRADE_CENTER, + MAP_RECORD_CORNER, + MAP_DOUBLE_BATTLE_COLOSSEUM, 0xFFFF, }; @@ -77,7 +74,7 @@ static bool32 IsCurMapPokeCenter(void) static const u16 sSaveLocationReloadLocList[] = // there's only 1 location, and it's presumed its for the save reload feature for battle tower { - MAP(BATTLE_TOWER_LOBBY), + MAP_BATTLE_FRONTIER_BATTLE_TOWER_LOBBY, 0xFFFF, }; diff --git a/src/scrcmd.c b/src/scrcmd.c index 183b9bab5..1b10501fc 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -34,7 +34,7 @@ #include "party_menu.h" #include "pokemon_3.h" #include "pokemon_storage_system.h" -#include "rng.h" +#include "random.h" #include "overworld.h" #include "rtc.h" #include "script.h" @@ -656,7 +656,7 @@ bool8 ScrCmd_fadescreenspeed(struct ScriptContext *ctx) bool8 ScrCmd_fadescreenswapbuffers(struct ScriptContext *ctx) { u8 mode = ScriptReadByte(ctx); - + switch (mode) { case 1: @@ -1445,7 +1445,7 @@ bool8 ScrCmd_drawboxtext(struct ScriptContext *ctx) u8 top = ScriptReadByte(ctx); u8 multichoiceId = ScriptReadByte(ctx); u8 ignoreBPress = ScriptReadByte(ctx); - + /*if (Multichoice(left, top, multichoiceId, ignoreBPress) == TRUE) { ScriptContext1_Stop(); @@ -1501,31 +1501,31 @@ bool8 ScrCmd_braillemessage(struct ScriptContext *ctx) u8 y; StringExpandPlaceholders(gStringVar4, ptr + 6); - + width = GetStringWidth(6, gStringVar4, -1) / 8; - + if (width > 0x1C) width = 0x1C; - + for (i = 0, height = 4; gStringVar4[i] != 0xFF;) { if (gStringVar4[i++] == 0xFE) height += 3; } - + if (height > 0x12) height = 0x12; - + x = width + 2; temp1 = (0x1E - x) / 2; x = temp1 + 1; temp1 = ((x - temp1 - 1) * 8 + 3); - + y = height + 2; temp2 = (0x14 - y) / 2; y = temp2 + 2; temp2 = ((y - temp2 - 1) * 8); - + sub_8198A50(&template1, 0, x, y, width, height, 0xF, 0x1); template2 = template1; gUnknown_03000F30 = AddWindow(&template2); @@ -1924,7 +1924,7 @@ bool8 ScrCmd_hidemoneybox(struct ScriptContext *ctx) { /*u8 x = ScriptReadByte(ctx); u8 y = ScriptReadByte(ctx);*/ - + HideMoneyBox(); return FALSE; } @@ -1979,13 +1979,13 @@ bool8 ScrCmd_dotrainerbattle(struct ScriptContext *ctx) return TRUE; } -bool8 ScrCmd_ontrainerbattleend(struct ScriptContext *ctx) +bool8 ScrCmd_gotopostbattlescript(struct ScriptContext *ctx) { ctx->scriptPtr = BattleSetup_GetScriptAddrAfterBattle(); return FALSE; } -bool8 ScrCmd_ontrainerbattleendgoto(struct ScriptContext *ctx) +bool8 ScrCmd_gotobeatenscript(struct ScriptContext *ctx) { ctx->scriptPtr = BattleSetup_GetTrainerPostBattleScript(); return FALSE; @@ -1995,7 +1995,7 @@ bool8 ScrCmd_checktrainerflag(struct ScriptContext *ctx) { u16 index = VarGet(ScriptReadHalfword(ctx)); - ctx->comparisonResult = HasTrainerAlreadyBeenFought(index); + ctx->comparisonResult = HasTrainerBeenFought(index); return FALSE; } @@ -2003,7 +2003,7 @@ bool8 ScrCmd_settrainerflag(struct ScriptContext *ctx) { u16 index = VarGet(ScriptReadHalfword(ctx)); - trainer_flag_set(index); + SetTrainerFlag(index); return FALSE; } @@ -2011,7 +2011,7 @@ bool8 ScrCmd_cleartrainerflag(struct ScriptContext *ctx) { u16 index = VarGet(ScriptReadHalfword(ctx)); - trainer_flag_clear(index); + ClearTrainerFlag(index); return FALSE; } @@ -2374,7 +2374,7 @@ bool8 ScrCmd_checkmonobedience(struct ScriptContext *ctx) bool8 ScrCmd_cmdCF(struct ScriptContext *ctx) { const u8* v1 = sub_8099244(); - + if (v1) { ((u8*)gUnknown_020375C0) = ctx->scriptPtr; diff --git a/src/secret_base.c b/src/secret_base.c index de2b7221a..cc320e5d7 100644 --- a/src/secret_base.c +++ b/src/secret_base.c @@ -1,6 +1,7 @@ // Includes #include "global.h" +#include "constants/decorations.h" #include "malloc.h" #include "task.h" #include "palette.h" @@ -10,8 +11,8 @@ #include "menu_helpers.h" #include "new_menu_helpers.h" #include "menu_indicators.h" -#include "map_constants.h" -#include "songs.h" +#include "constants/maps.h" +#include "constants/songs.h" #include "sound.h" #include "overworld.h" #include "fieldmap.h" @@ -89,30 +90,30 @@ const struct { }; const u8 gUnknown_0858CFE8[] = { - MAP_ID_SECRET_BASE_RED_CAVE1, 0x00, 0x01, 0x03, - MAP_ID_SECRET_BASE_RED_CAVE2, 0x00, 0x05, 0x09, - MAP_ID_SECRET_BASE_RED_CAVE3, 0x00, 0x01, 0x03, - MAP_ID_SECRET_BASE_RED_CAVE4, 0x00, 0x07, 0x0d, - MAP_ID_SECRET_BASE_BROWN_CAVE1, 0x00, 0x02, 0x03, - MAP_ID_SECRET_BASE_BROWN_CAVE2, 0x00, 0x09, 0x02, - MAP_ID_SECRET_BASE_BROWN_CAVE3, 0x00, 0x0d, 0x04, - MAP_ID_SECRET_BASE_BROWN_CAVE4, 0x00, 0x01, 0x02, - MAP_ID_SECRET_BASE_BLUE_CAVE1, 0x00, 0x01, 0x03, - MAP_ID_SECRET_BASE_BLUE_CAVE2, 0x00, 0x01, 0x02, - MAP_ID_SECRET_BASE_BLUE_CAVE3, 0x00, 0x03, 0x0f, - MAP_ID_SECRET_BASE_BLUE_CAVE4, 0x00, 0x03, 0x0e, - MAP_ID_SECRET_BASE_YELLOW_CAVE1, 0x00, 0x09, 0x03, - MAP_ID_SECRET_BASE_YELLOW_CAVE2, 0x00, 0x08, 0x07, - MAP_ID_SECRET_BASE_YELLOW_CAVE3, 0x00, 0x03, 0x06, - MAP_ID_SECRET_BASE_YELLOW_CAVE4, 0x00, 0x05, 0x09, - MAP_ID_SECRET_BASE_TREE1, 0x00, 0x02, 0x03, - MAP_ID_SECRET_BASE_TREE2, 0x00, 0x05, 0x06, - MAP_ID_SECRET_BASE_TREE3, 0x00, 0x0f, 0x03, - MAP_ID_SECRET_BASE_TREE4, 0x00, 0x04, 0x0a, - MAP_ID_SECRET_BASE_SHRUB1, 0x00, 0x03, 0x03, - MAP_ID_SECRET_BASE_SHRUB2, 0x00, 0x01, 0x02, - MAP_ID_SECRET_BASE_SHRUB3, 0x00, 0x07, 0x08, - MAP_ID_SECRET_BASE_SHRUB4, 0x00, 0x09, 0x06 + MAP_NUM(SECRET_BASE_RED_CAVE1), 0x00, 0x01, 0x03, + MAP_NUM(SECRET_BASE_RED_CAVE2), 0x00, 0x05, 0x09, + MAP_NUM(SECRET_BASE_RED_CAVE3), 0x00, 0x01, 0x03, + MAP_NUM(SECRET_BASE_RED_CAVE4), 0x00, 0x07, 0x0d, + MAP_NUM(SECRET_BASE_BROWN_CAVE1), 0x00, 0x02, 0x03, + MAP_NUM(SECRET_BASE_BROWN_CAVE2), 0x00, 0x09, 0x02, + MAP_NUM(SECRET_BASE_BROWN_CAVE3), 0x00, 0x0d, 0x04, + MAP_NUM(SECRET_BASE_BROWN_CAVE4), 0x00, 0x01, 0x02, + MAP_NUM(SECRET_BASE_BLUE_CAVE1), 0x00, 0x01, 0x03, + MAP_NUM(SECRET_BASE_BLUE_CAVE2), 0x00, 0x01, 0x02, + MAP_NUM(SECRET_BASE_BLUE_CAVE3), 0x00, 0x03, 0x0f, + MAP_NUM(SECRET_BASE_BLUE_CAVE4), 0x00, 0x03, 0x0e, + MAP_NUM(SECRET_BASE_YELLOW_CAVE1), 0x00, 0x09, 0x03, + MAP_NUM(SECRET_BASE_YELLOW_CAVE2), 0x00, 0x08, 0x07, + MAP_NUM(SECRET_BASE_YELLOW_CAVE3), 0x00, 0x03, 0x06, + MAP_NUM(SECRET_BASE_YELLOW_CAVE4), 0x00, 0x05, 0x09, + MAP_NUM(SECRET_BASE_TREE1), 0x00, 0x02, 0x03, + MAP_NUM(SECRET_BASE_TREE2), 0x00, 0x05, 0x06, + MAP_NUM(SECRET_BASE_TREE3), 0x00, 0x0f, 0x03, + MAP_NUM(SECRET_BASE_TREE4), 0x00, 0x04, 0x0a, + MAP_NUM(SECRET_BASE_SHRUB1), 0x00, 0x03, 0x03, + MAP_NUM(SECRET_BASE_SHRUB2), 0x00, 0x01, 0x02, + MAP_NUM(SECRET_BASE_SHRUB3), 0x00, 0x07, 0x08, + MAP_NUM(SECRET_BASE_SHRUB4), 0x00, 0x09, 0x06 }; const struct MenuAction gUnknown_0858D048[] = { @@ -360,7 +361,7 @@ void sub_80E8F9C(void) s8 idx; idx = sCurSecretBaseId / 10 * 4; - warp1_set_2(MAP_GROUP_SECRET_BASE_RED_CAVE1, gUnknown_0858CFE8[idx], gUnknown_0858CFE8[idx + 1]); + warp1_set_2(MAP_GROUP(SECRET_BASE_RED_CAVE1), gUnknown_0858CFE8[idx], gUnknown_0858CFE8[idx + 1]); } void sub_80E8FD0(u8 taskId) @@ -455,7 +456,7 @@ void sub_80E91F8(void) bool8 CurrentMapIsSecretBase(void) { - if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP_SECRET_BASE_RED_CAVE1 && (u8)gSaveBlock1Ptr->location.mapNum <= MAP_ID_SECRET_BASE_SHRUB4) + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SECRET_BASE_RED_CAVE1) && (u8)gSaveBlock1Ptr->location.mapNum <= MAP_NUM(SECRET_BASE_SHRUB4)) { return TRUE; } @@ -1282,7 +1283,7 @@ u8 sub_80EA20C(u8 secretBaseRecordId) return (gSaveBlock1Ptr->secretBases[secretBaseRecordId].trainerId[0] % 5) + (gSaveBlock1Ptr->secretBases[secretBaseRecordId].gender * 5); } -const u8 *sub_80EA250(void) +const u8 *GetSecretBaseTrainerLoseText(void) { u8 param; diff --git a/src/sound.c b/src/sound.c index a95511ece..086fede67 100644 --- a/src/sound.c +++ b/src/sound.c @@ -5,7 +5,7 @@ #include "m4a.h" #include "main.h" #include "pokemon.h" -#include "songs.h" +#include "constants/songs.h" #include "task.h" struct Fanfare diff --git a/src/sprite.c b/src/sprite.c index daa019019..9db61d2e9 100644 --- a/src/sprite.c +++ b/src/sprite.c @@ -168,14 +168,7 @@ static const struct Sprite sDummySprite = .animPaused = 0, .affineAnimPaused = 0, .animLoopCounter = 0, - .data0 = 0, - .data1 = 0, - .data2 = 0, - .data3 = 0, - .data4 = 0, - .data5 = 0, - .data6 = 0, - .data7 = 0, + .data = {0, 0, 0, 0, 0, 0, 0}, .inUse = 0, .coordOffsetEnabled = 0, .invisible = 0, @@ -1075,7 +1068,7 @@ void BeginAffineAnim(struct Sprite *sprite) ApplyAffineAnimFrame(matrixNum, &frameCmd); sAffineAnimStates[matrixNum].delayCounter = frameCmd.duration; if (sprite->flags_f) - obj_update_pos2(sprite, sprite->data6, sprite->data7); + obj_update_pos2(sprite, sprite->data[6], sprite->data[7]); } } @@ -1101,7 +1094,7 @@ void ContinueAffineAnim(struct Sprite *sprite) sAffineAnimCmdFuncs[funcIndex](matrixNum, sprite); } if (sprite->flags_f) - obj_update_pos2(sprite, sprite->data6, sprite->data7); + obj_update_pos2(sprite, sprite->data[6], sprite->data[7]); } } @@ -1197,8 +1190,8 @@ u8 GetSpriteMatrixNum(struct Sprite *sprite) void sub_8007E18(struct Sprite* sprite, s16 a2, s16 a3) { - sprite->data6 = a2; - sprite->data7 = a3; + sprite->data[6] = a2; + sprite->data[7] = a3; sprite->flags_f = 1; } diff --git a/src/starter_choose.c b/src/starter_choose.c index 8cf3cfefa..2d78af8fb 100644 --- a/src/starter_choose.c +++ b/src/starter_choose.c @@ -12,7 +12,7 @@ #include "decompress.h" #include "menu.h" #include "sound.h" -#include "songs.h" +#include "constants/songs.h" #include "event_data.h" #include "pokedex.h" #include "data2.h" @@ -170,20 +170,20 @@ void CB2_ChooseStarter(void) // Create hand sprite spriteId = CreateSprite(&sSpriteTemplate_Hand, 120, 56, 2); - gSprites[spriteId].data0 = taskId; + gSprites[spriteId].data[0] = taskId; // Create three Pokeball sprites spriteId = CreateSprite(&sSpriteTemplate_PokeBall, sPokeballCoords[0][0], sPokeballCoords[0][1], 2); - gSprites[spriteId].data0 = taskId; - gSprites[spriteId].data1 = 0; + gSprites[spriteId].data[0] = taskId; + gSprites[spriteId].data[1] = 0; spriteId = CreateSprite(&sSpriteTemplate_PokeBall, sPokeballCoords[1][0], sPokeballCoords[1][1], 2); - gSprites[spriteId].data0 = taskId; - gSprites[spriteId].data1 = 1; + gSprites[spriteId].data[0] = taskId; + gSprites[spriteId].data[1] = 1; spriteId = CreateSprite(&sSpriteTemplate_PokeBall, sPokeballCoords[2][0], sPokeballCoords[2][1], 2); - gSprites[spriteId].data0 = taskId; - gSprites[spriteId].data1 = 2; + gSprites[spriteId].data[0] = taskId; + gSprites[spriteId].data[1] = 2; sStarterChooseWindowId = 0xFF; } @@ -265,7 +265,7 @@ static void Task_StarterChoose5(u8 taskId) { u8 spriteId; - switch (sub_8198C58()) + switch (ProcessMenuInputNoWrap_()) { case 0: // YES // Return the starter choice and exit. @@ -363,15 +363,15 @@ static u8 CreatePokemonFrontSprite(u16 species, u8 x, u8 y) static void sub_81346DC(struct Sprite *sprite) { - sprite->pos1.x = gUnknown_085B1E28[gTasks[sprite->data0].tStarterSelection][0]; - sprite->pos1.y = gUnknown_085B1E28[gTasks[sprite->data0].tStarterSelection][1]; - sprite->pos2.y = Sin(sprite->data1, 8); - sprite->data1 = (u8)(sprite->data1) + 4; + sprite->pos1.x = gUnknown_085B1E28[gTasks[sprite->data[0]].tStarterSelection][0]; + sprite->pos1.y = gUnknown_085B1E28[gTasks[sprite->data[0]].tStarterSelection][1]; + sprite->pos2.y = Sin(sprite->data[1], 8); + sprite->data[1] = (u8)(sprite->data[1]) + 4; } static void sub_813473C(struct Sprite *sprite) { - if (gTasks[sprite->data0].tStarterSelection == sprite->data1) + if (gTasks[sprite->data[0]].tStarterSelection == sprite->data[1]) StartSpriteAnimIfDifferent(sprite, 1); else StartSpriteAnimIfDifferent(sprite, 0); diff --git a/src/text.c b/src/text.c index 8108a6867..a13ed162d 100644 --- a/src/text.c +++ b/src/text.c @@ -13,7 +13,7 @@ extern void CopyWindowToVram(u8 windowId, u8 mode); extern u16 Font6Func(struct TextPrinter *textPrinter); extern u32 GetGlyphWidthFont6(u16 glyphId, bool32 isJapanese); extern void PlaySE(u16 songNum); -extern u8* sub_81AFC74(u8 a1); +extern u8* UnkTextUtil_GetPtrI(u8 a1); EWRAM_DATA struct TextPrinter gTempTextPrinter = {0}; EWRAM_DATA struct TextPrinter gTextPrinters[NUM_TEXT_PRINTERS] = {0}; @@ -190,7 +190,7 @@ bool16 AddTextPrinter(struct TextSubPrinter *textSubPrinter, u8 speed, void (*ca gTempTextPrinter.japanese = 0; GenerateFontHalfRowLookupTable(textSubPrinter->fontColor_h, textSubPrinter->bgColor, textSubPrinter->shadowColor); - if (speed != 0xFF && speed != 0x0) + if (speed != TEXT_SPEED_FF && speed != 0x0) { --gTempTextPrinter.text_speed; gTextPrinters[textSubPrinter->windowId] = gTempTextPrinter; @@ -204,7 +204,7 @@ bool16 AddTextPrinter(struct TextSubPrinter *textSubPrinter, u8 speed, void (*ca break; } - if (speed != 0xFF) + if (speed != TEXT_SPEED_FF) CopyWindowToVram(gTempTextPrinter.subPrinter.windowId, 2); gTextPrinters[textSubPrinter->windowId].sub_union.sub.active = 0; } @@ -2932,7 +2932,7 @@ u32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing) } case 0xF7: if (bufferPointer == NULL) - bufferPointer = sub_81AFC74(*++str); + bufferPointer = UnkTextUtil_GetPtrI(*++str); while (*bufferPointer != 0xFF) { glyphWidth = func(*bufferPointer++, isJapanese); diff --git a/src/trainer_see.c b/src/trainer_see.c new file mode 100644 index 000000000..b30f27347 --- /dev/null +++ b/src/trainer_see.c @@ -0,0 +1,68 @@ +#include "global.h" +#include "trainer_see.h" +#include "battle_setup.h" + +extern u8 gApproachingTrainerId; +extern u8 gNoOfApproachingTrainers; +extern u8 gUnknown_030060AC; +extern u16 gUnknown_03006080; + +// this file's functions +u8 CheckIfTrainerWantsBattle(u8 mapObjectId); + +bool8 CheckForTrainersWantingBattle(void) +{ + u8 i; + + gNoOfApproachingTrainers = 0; + gApproachingTrainerId = 0; + + for (i = 0; i < MAP_OBJECTS_COUNT; i++) + { + u8 retVal; + + if (!gMapObjects[i].active) + continue; + if (gMapObjects[i].trainerType != 1 && gMapObjects[i].trainerType != 3) + continue; + + retVal = CheckIfTrainerWantsBattle(i); + if (retVal == 2) + break; // two trainers have been found + + if (retVal == 0) // no trainers + continue; + + if (gNoOfApproachingTrainers > 1) + break; + if (GetMonsStateToDoubles_2() != 0) // one trainer found and cant have a double battle + break; + } + + if (gNoOfApproachingTrainers == 1) + { + ResetTrainerOpponentIds(); + ConfigureAndSetUpOneTrainerBattle(gApproachingTrainers[gNoOfApproachingTrainers - 1].mapObjectId, + gApproachingTrainers[gNoOfApproachingTrainers - 1].trainerScriptPtr); + gUnknown_030060AC = 1; + return TRUE; + } + else if (gNoOfApproachingTrainers == 2) + { + ResetTrainerOpponentIds(); + for (i = 0; i < gNoOfApproachingTrainers; i++, gApproachingTrainerId++) + { + ConfigureTwoTrainersBattle(gApproachingTrainers[i].mapObjectId, + gApproachingTrainers[i].trainerScriptPtr); + } + SetUpTwoTrainersBattle(); + gApproachingTrainerId = 0; + gUnknown_030060AC = 1; + return TRUE; + } + else + { + gUnknown_030060AC = 0; + return FALSE; + } +} @@ -3,8 +3,8 @@ #include "global.h" #include "rtc.h" #include "overworld.h" -#include "map_constants.h" -#include "rng.h" +#include "constants/maps.h" +#include "random.h" #include "event_data.h" #include "fieldmap.h" #include "field_camera.h" @@ -14,12 +14,12 @@ #include "pokemon_storage_system.h" #include "field_message_box.h" #include "easy_chat.h" -#include "species.h" -#include "moves.h" +#include "constants/species.h" +#include "constants/moves.h" #include "battle.h" #include "battle_tower.h" #include "contest.h" -#include "items.h" +#include "constants/items.h" #include "item.h" #include "link.h" #include "main.h" @@ -38,6 +38,9 @@ #include "secret_base.h" #include "tv.h" +extern const u8 gSpeciesNames[][11]; +extern const u8 gMoveNames[][13]; + // Static type declarations #define rbernoulli(num, den) TV_BernoulliTrial(0xFFFF * (num) / (den)) @@ -832,7 +835,7 @@ void UpdateTVScreensOnMap(int width, int height) case 2: break; default: - if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP_LILYCOVE_CITY_COVE_LILY_MOTEL_1F && gSaveBlock1Ptr->location.mapNum == MAP_ID_LILYCOVE_CITY_COVE_LILY_MOTEL_1F) + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(LILYCOVE_CITY_COVE_LILY_MOTEL_1F) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(LILYCOVE_CITY_COVE_LILY_MOTEL_1F)) { SetTVMetatilesOnMap(width, height, 0x3); } @@ -1575,7 +1578,9 @@ void SaveRecordedItemPurchasesForTVShow(void) TVShow *show; u8 i; - if (!(gSaveBlock1Ptr->location.mapGroup == MAP_GROUP_TRAINER_HILL_LOBBY && gSaveBlock1Ptr->location.mapNum == MAP_ID_TRAINER_HILL_LOBBY) && !(gSaveBlock1Ptr->location.mapGroup == MAP_GROUP_BATTLE_FRONTIER_MART && gSaveBlock1Ptr->location.mapNum == MAP_ID_BATTLE_FRONTIER_MART) && !rbernoulli(1, 3)) + if (!(gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(TRAINER_HILL_ENTRANCE) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(TRAINER_HILL_ENTRANCE)) + && !(gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(BATTLE_FRONTIER_MART) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(BATTLE_FRONTIER_MART)) + && !rbernoulli(1, 3)) { sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_SMART_SHOPPER, FALSE) != TRUE) @@ -1788,7 +1793,7 @@ void EndMassOutbreak(void) gSaveBlock1Ptr->outbreakDaysLeft = 0; } -void sub_80ED888(u16 days) +void UpdateTVShowsPerDay(u16 days) { sub_80ED8B4(days); @@ -2959,13 +2964,13 @@ bool8 IsPriceDiscounted(u8 newsKind) switch (newsKind) { case POKENEWS_SLATEPORT: - if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP_SLATEPORT_CITY && gSaveBlock1Ptr->location.mapNum == MAP_ID_SLATEPORT_CITY && gSpecialVar_LastTalked == 25) + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(SLATEPORT_CITY) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(SLATEPORT_CITY) && gSpecialVar_LastTalked == 25) { return TRUE; } return FALSE; case POKENEWS_LILYCOVE: - if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP && gSaveBlock1Ptr->location.mapNum == MAP_ID_LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP) + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP) && gSaveBlock1Ptr->location.mapNum == MAP_NUM(LILYCOVE_CITY_DEPARTMENT_STORE_ROOFTOP)) { return TRUE; } @@ -3694,20 +3699,20 @@ u32 GetPlayerIDAsU32(void) u8 CheckForBigMovieOrEmergencyNewsOnTV(void) { - if (gSaveBlock1Ptr->location.mapGroup != MAP_GROUP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F) + if (gSaveBlock1Ptr->location.mapGroup != MAP_GROUP(LITTLEROOT_TOWN_BRENDANS_HOUSE_1F)) { return 0; } if (gSaveBlock2Ptr->playerGender == MALE) { - if (gSaveBlock1Ptr->location.mapNum != MAP_ID_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F) + if (gSaveBlock1Ptr->location.mapNum != MAP_NUM(LITTLEROOT_TOWN_BRENDANS_HOUSE_1F)) { return 0; } } else { - if (gSaveBlock1Ptr->location.mapNum != MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_1F) + if (gSaveBlock1Ptr->location.mapNum != MAP_NUM(LITTLEROOT_TOWN_MAYS_HOUSE_1F)) { return 0; } @@ -3725,11 +3730,11 @@ u8 CheckForBigMovieOrEmergencyNewsOnTV(void) void GetMomOrDadStringForTVMessage(void) { - if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F) + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(LITTLEROOT_TOWN_BRENDANS_HOUSE_1F)) { if (gSaveBlock2Ptr->playerGender == MALE) { - if (gSaveBlock1Ptr->location.mapNum == MAP_ID_LITTLEROOT_TOWN_BRENDANS_HOUSE_1F) + if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(LITTLEROOT_TOWN_BRENDANS_HOUSE_1F)) { StringCopy(gStringVar1, gText_Mom); VarSet(VAR_0x4003, 1); @@ -3737,7 +3742,7 @@ void GetMomOrDadStringForTVMessage(void) } else { - if (gSaveBlock1Ptr->location.mapNum == MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_1F) + if (gSaveBlock1Ptr->location.mapNum == MAP_NUM(LITTLEROOT_TOWN_MAYS_HOUSE_1F)) { StringCopy(gStringVar1, gText_Mom); VarSet(VAR_0x4003, 1); diff --git a/src/unk_81BAD84.c b/src/unk_81BAD84.c new file mode 100644 index 000000000..9ba98dd87 --- /dev/null +++ b/src/unk_81BAD84.c @@ -0,0 +1,47 @@ +#include "global.h" +#include "graphics.h" + +const struct { + const u8 *gfx; + const u8 *tileMap; + const u16 *pltt; +} gUnknown_08617128[] = { + { + gUnknown_08DD87C0, + gUnknown_08DD8EE0, + gUnknown_08DD8780 + }, { + gUnknown_08DD90E0, + gUnknown_08DD9718, + gUnknown_08DD9080 + }, { + gUnknown_08DD98B4, + gUnknown_08DD9E58, + gUnknown_08DD9874 + }, { + gUnknown_08DDA02C, + gUnknown_08DDA63C, + gUnknown_08DD9FEC + }, { + gUnknown_08DDA840, + gUnknown_08DDAE40, + gUnknown_08DDA800 + }, { + gUnknown_08DDB020, + gUnknown_08DDB2C4, + gUnknown_08DDAFE0 + } +}; + +void sub_81BAD84(u32 idx) +{ + REG_DISPCNT = 0x0000; + REG_BG0HOFS = 0x0000; + REG_BG0VOFS = 0x0000; + REG_BLDCNT = 0x0000; + LZ77UnCompVram(gUnknown_08617128[idx].gfx, (void *)BG_CHAR_ADDR(0)); + LZ77UnCompVram(gUnknown_08617128[idx].tileMap, (void *)BG_SCREEN_ADDR(31)); + CpuCopy16(gUnknown_08617128[idx].pltt, (void *)PLTT, 0x200); + REG_BG0CNT = 0x1f00; + REG_DISPCNT = DISPCNT_BG0_ON; +} diff --git a/src/unk_text_util.c b/src/unk_text_util.c new file mode 100644 index 000000000..2773522b2 --- /dev/null +++ b/src/unk_text_util.c @@ -0,0 +1,56 @@ +#include "global.h" +#include "text.h" +#include "unk_text_util.h" +#include "string_util.h" + +static EWRAM_DATA const u8 *sStringPointers[8] = {}; + +void UnkTextUtil_Reset(void) +{ + const u8 **ptr; + u8 *fillval; + const u8 **ptr2; + + ptr = sStringPointers; + fillval = NULL; + ptr2 = ptr + (ARRAY_COUNT(sStringPointers) - 1); + do + { + *ptr2-- = fillval; + } while ((int)ptr2 >= (int)ptr); +} + +void UnkTextUtil_SetPtrI(u8 idx, const u8 *ptr) +{ + if (idx < ARRAY_COUNT(sStringPointers)) + { + sStringPointers[idx] = ptr; + } +} + +u8 *UnkTextUtil_StringExpandPlaceholders(u8 *dest, const u8 *src) +{ + while (*src != EOS) + { + if (*src != CHAR_SPECIAL_F7) + { + *dest++ = *src++; + } + else + { + src++; + if (sStringPointers[*src] != NULL) + { + dest = StringCopy(dest, sStringPointers[*src]); + } + src++; + } + } + *dest = EOS; + return dest; +} + +const u8 *UnkTextUtil_GetPtrI(u8 idx) +{ + return sStringPointers[idx]; +} diff --git a/src/wallclock.c b/src/wallclock.c new file mode 100644 index 000000000..892ef3f05 --- /dev/null +++ b/src/wallclock.c @@ -0,0 +1,1057 @@ +#include "global.h" +#include "main.h" +#include "palette.h" +#include "gpu_regs.h" +#include "bg.h" +#include "rtc.h" +#include "clock.h" +#include "wallclock.h" +#include "event_data.h" +#include "graphics.h" +#include "text.h" +#include "window.h" +#include "text_window.h" +#include "menu.h" +#include "unknown_task.h" +#include "task.h" +#include "strings.h" +#include "sound.h" +#include "songs.h" +#include "trig.h" +#include "decompress.h" + +// static types + +#define tMinuteHandAngle data[0] +#define tHourHandAngle data[1] +#define tHours data[2] +#define tMinutes data[3] +#define tMvmtDir data[4] +#define tPeriod data[5] +#define tMvmtSpeed data[6] + +#define TAG_GFX_WALL_CLOCK_HAND 0x1000 +#define TAG_PAL_WALL_CLOCK_HAND 0x1000 + +// static declarations + +static void WallClockMainCallback(void); +static void Task_SetClock1(u8 taskId); +static void Task_SetClock2(u8 taskId); +static void Task_SetClock3(u8 taskId); +static void Task_SetClock4(u8 taskId); +static void Task_SetClock5(u8 taskId); +static void Task_SetClock6(u8 taskId); +static void Task_ViewClock1(u8 taskId); +static void Task_ViewClock2(u8 taskId); +static void Task_ViewClock3(u8 taskId); +static void Task_ViewClock4(u8 taskId); +static u16 CalcNewMinHandAngle(u16 a0, u8 command, u8 a2); +static bool32 AdvanceClock(u8 taskId, u8 command); +static void UpdateClockPeriod(u8 taskId, u8 command); +static void InitClockWithRtc(u8 taskId); +static void SpriteCB_MinuteHand(struct Sprite *sprite); +static void SpriteCB_HourHand(struct Sprite *sprite); +static void SpriteCB_AMIndicator(struct Sprite *sprite); +static void SpriteCB_PMIndicator(struct Sprite *sprite); + +// rodata + +static const u8 gUnknown_085B1F58[] = INCBIN_U8("graphics/wallclock/graphics_85b1f58.4bpp.lz"); +static const u16 gUnknown_085B21D4[] = INCBIN_U16("graphics/wallclock/palette_85b21d4.gbapal"); +static const struct WindowTemplate gUnknown_085B21DC[] = { + { 0x00, 0x03, 0x11, 0x18, 0x02, 0x0e, 0x200 }, + { 0x02, 0x18, 0x10, 0x06, 0x02, 0x0c, 0x230 }, + DUMMY_WIN_TEMPLATE +}; +static const struct WindowTemplate gUnknown_085B21F4 = { + 0x00, 0x18, 0x09, 0x05, 0x04, 0x0e, 0x23c +}; +static const struct BgTemplate gUnknown_085B21FC[] = { + { + .bg = 0, + .charBaseIndex = 2, + .mapBaseIndex = 31, + .priority = 0 + }, + { + .bg = 2, + .charBaseIndex = 1, + .mapBaseIndex = 8, + .priority = 1 + }, + { + .bg = 3, + .charBaseIndex = 0, + .mapBaseIndex = 7, + .priority = 2 + } +}; +static const struct CompressedSpriteSheet gUnknown_085B2208 = { + gUnknown_085B1F58, 0x2000, TAG_GFX_WALL_CLOCK_HAND +}; +static const u32 filler_85B2210[2] = {}; +static const struct SpritePalette gUnknown_085B2218[] = { + { gUnknown_08DCC01C, TAG_PAL_WALL_CLOCK_HAND }, + { gUnknown_08DCC03C, 0x1001 }, + {} +}; +static const struct OamData Unknown_085B2230 = { + .y = 0xa0, + .size = 3, + .priority = 1 +}; +static const union AnimCmd Unknown_085B2238[] = { + ANIMCMD_FRAME(0, 30), + ANIMCMD_END +}; +static const union AnimCmd Unknown_085B2240[] = { + ANIMCMD_FRAME(64, 30), + ANIMCMD_END +}; +static const union AnimCmd *const gUnknown_085B2248[] = { + Unknown_085B2238 +}; +static const union AnimCmd *const gUnknown_085B224C[] = { + Unknown_085B2240 +}; +static const struct SpriteTemplate gUnknown_085B2250 = { + TAG_GFX_WALL_CLOCK_HAND, + TAG_PAL_WALL_CLOCK_HAND, + &Unknown_085B2230, + gUnknown_085B2248, + NULL, + gDummySpriteAffineAnimTable, + SpriteCB_MinuteHand +}; +static const struct SpriteTemplate gUnknown_085B2268 = { + TAG_GFX_WALL_CLOCK_HAND, + TAG_PAL_WALL_CLOCK_HAND, + &Unknown_085B2230, + gUnknown_085B224C, + NULL, + gDummySpriteAffineAnimTable, + SpriteCB_HourHand +}; +static const struct OamData Unknown_085B2280 = { + .y = 0xa0, + .size = 1, + .priority = 3 +}; +static const union AnimCmd Unknown_085B2288[] = { + ANIMCMD_FRAME(0x84, 30), + ANIMCMD_END +}; +static const union AnimCmd Unknown_085B2290[] = { + ANIMCMD_FRAME(0x80, 30), + ANIMCMD_END +}; +static const union AnimCmd *const gUnknown_085B2298[] = { + Unknown_085B2288 +}; +static const union AnimCmd *const gUnknown_085B229C[] = { + Unknown_085B2290 +}; +static const struct SpriteTemplate gUnknown_085B22A0 = { + TAG_GFX_WALL_CLOCK_HAND, + TAG_PAL_WALL_CLOCK_HAND, + &Unknown_085B2280, + gUnknown_085B2298, + NULL, + gDummySpriteAffineAnimTable, + SpriteCB_AMIndicator +}; +static const struct SpriteTemplate gUnknown_085B22B8 = { + TAG_GFX_WALL_CLOCK_HAND, + TAG_PAL_WALL_CLOCK_HAND, + &Unknown_085B2280, + gUnknown_085B229C, + NULL, + gDummySpriteAffineAnimTable, + SpriteCB_PMIndicator +}; +static const s8 sClockHandCoords[][2] = { + { 0x00, -0x18}, + { 0x01, -0x19}, + { 0x01, -0x19}, + { 0x02, -0x19}, + { 0x02, -0x19}, + { 0x02, -0x19}, + { 0x03, -0x18}, + { 0x03, -0x19}, + { 0x04, -0x19}, + { 0x04, -0x19}, + { 0x04, -0x19}, + { 0x05, -0x19}, + { 0x05, -0x19}, + { 0x06, -0x18}, + { 0x06, -0x18}, + { 0x06, -0x18}, + { 0x07, -0x18}, + { 0x07, -0x18}, + { 0x07, -0x18}, + { 0x08, -0x18}, + { 0x08, -0x18}, + { 0x09, -0x18}, + { 0x09, -0x18}, + { 0x0a, -0x17}, + { 0x0a, -0x17}, + { 0x0b, -0x16}, + { 0x0b, -0x16}, + { 0x0b, -0x16}, + { 0x0c, -0x16}, + { 0x0c, -0x15}, + { 0x0d, -0x15}, + { 0x0d, -0x15}, + { 0x0d, -0x15}, + { 0x0e, -0x15}, + { 0x0e, -0x15}, + { 0x0e, -0x14}, + { 0x0e, -0x14}, + { 0x0f, -0x14}, + { 0x0f, -0x13}, + { 0x10, -0x13}, + { 0x10, -0x13}, + { 0x10, -0x13}, + { 0x10, -0x12}, + { 0x10, -0x12}, + { 0x11, -0x12}, + { 0x11, -0x11}, + { 0x11, -0x11}, + { 0x12, -0x11}, + { 0x12, -0x11}, + { 0x12, -0x10}, + { 0x12, -0x10}, + { 0x13, -0x10}, + { 0x13, -0x0f}, + { 0x13, -0x0f}, + { 0x14, -0x0f}, + { 0x14, -0x0e}, + { 0x14, -0x0e}, + { 0x14, -0x0d}, + { 0x14, -0x0d}, + { 0x15, -0x0d}, + { 0x15, -0x0d}, + { 0x15, -0x0c}, + { 0x16, -0x0c}, + { 0x16, -0x0c}, + { 0x16, -0x0b}, + { 0x16, -0x0b}, + { 0x16, -0x0a}, + { 0x17, -0x0a}, + { 0x17, -0x09}, + { 0x17, -0x09}, + { 0x17, -0x09}, + { 0x17, -0x09}, + { 0x17, -0x08}, + { 0x17, -0x08}, + { 0x17, -0x07}, + { 0x17, -0x07}, + { 0x17, -0x06}, + { 0x18, -0x06}, + { 0x18, -0x06}, + { 0x19, -0x05}, + { 0x19, -0x05}, + { 0x18, -0x04}, + { 0x19, -0x04}, + { 0x18, -0x03}, + { 0x19, -0x03}, + { 0x19, -0x03}, + { 0x19, -0x02}, + { 0x19, -0x02}, + { 0x18, -0x01}, + { 0x19, -0x01}, + { 0x18, 0x00}, + { 0x18, 0x00}, + { 0x18, 0x00}, + { 0x18, 0x01}, + { 0x18, 0x01}, + { 0x19, 0x02}, + { 0x18, 0x02}, + { 0x19, 0x02}, + { 0x18, 0x03}, + { 0x18, 0x03}, + { 0x19, 0x04}, + { 0x18, 0x04}, + { 0x18, 0x05}, + { 0x18, 0x05}, + { 0x18, 0x05}, + { 0x18, 0x06}, + { 0x17, 0x06}, + { 0x17, 0x06}, + { 0x17, 0x07}, + { 0x17, 0x08}, + { 0x17, 0x08}, + { 0x17, 0x08}, + { 0x17, 0x09}, + { 0x17, 0x09}, + { 0x17, 0x0a}, + { 0x16, 0x0a}, + { 0x16, 0x0a}, + { 0x16, 0x0b}, + { 0x16, 0x0b}, + { 0x16, 0x0b}, + { 0x16, 0x0c}, + { 0x15, 0x0c}, + { 0x15, 0x0c}, + { 0x15, 0x0d}, + { 0x14, 0x0d}, + { 0x14, 0x0d}, + { 0x13, 0x0d}, + { 0x13, 0x0d}, + { 0x13, 0x0e}, + { 0x13, 0x0e}, + { 0x13, 0x0f}, + { 0x13, 0x0f}, + { 0x12, 0x0f}, + { 0x12, 0x10}, + { 0x11, 0x10}, + { 0x11, 0x10}, + { 0x11, 0x11}, + { 0x11, 0x11}, + { 0x10, 0x11}, + { 0x10, 0x12}, + { 0x10, 0x12}, + { 0x0f, 0x12}, + { 0x0e, 0x12}, + { 0x0f, 0x13}, + { 0x0e, 0x13}, + { 0x0e, 0x13}, + { 0x0d, 0x13}, + { 0x0d, 0x14}, + { 0x0d, 0x14}, + { 0x0d, 0x14}, + { 0x0c, 0x14}, + { 0x0c, 0x14}, + { 0x0c, 0x15}, + { 0x0b, 0x15}, + { 0x0b, 0x15}, + { 0x0b, 0x15}, + { 0x0a, 0x15}, + { 0x0a, 0x16}, + { 0x0a, 0x16}, + { 0x09, 0x16}, + { 0x09, 0x16}, + { 0x08, 0x16}, + { 0x07, 0x16}, + { 0x07, 0x17}, + { 0x07, 0x17}, + { 0x06, 0x17}, + { 0x06, 0x17}, + { 0x05, 0x17}, + { 0x05, 0x17}, + { 0x05, 0x18}, + { 0x04, 0x18}, + { 0x04, 0x18}, + { 0x04, 0x18}, + { 0x03, 0x18}, + { 0x02, 0x18}, + { 0x02, 0x18}, + { 0x01, 0x18}, + { 0x01, 0x18}, + { 0x00, 0x18}, + { 0x00, 0x18}, + {-0x01, 0x17}, + { 0x00, 0x18}, + { 0x00, 0x18}, + {-0x01, 0x18}, + {-0x01, 0x18}, + {-0x02, 0x18}, + {-0x02, 0x18}, + {-0x03, 0x18}, + {-0x03, 0x18}, + {-0x04, 0x18}, + {-0x04, 0x18}, + {-0x05, 0x18}, + {-0x05, 0x17}, + {-0x05, 0x17}, + {-0x06, 0x17}, + {-0x06, 0x17}, + {-0x07, 0x17}, + {-0x07, 0x17}, + {-0x07, 0x17}, + {-0x08, 0x17}, + {-0x08, 0x16}, + {-0x09, 0x16}, + {-0x09, 0x16}, + {-0x0a, 0x16}, + {-0x0a, 0x16}, + {-0x0a, 0x15}, + {-0x0b, 0x15}, + {-0x0b, 0x15}, + {-0x0b, 0x15}, + {-0x0b, 0x14}, + {-0x0c, 0x14}, + {-0x0c, 0x14}, + {-0x0d, 0x14}, + {-0x0d, 0x14}, + {-0x0d, 0x13}, + {-0x0e, 0x13}, + {-0x0e, 0x13}, + {-0x0e, 0x13}, + {-0x0e, 0x12}, + {-0x0f, 0x12}, + {-0x0f, 0x12}, + {-0x0f, 0x11}, + {-0x10, 0x11}, + {-0x10, 0x11}, + {-0x11, 0x11}, + {-0x11, 0x10}, + {-0x11, 0x10}, + {-0x12, 0x10}, + {-0x11, 0x0f}, + {-0x12, 0x0f}, + {-0x12, 0x0f}, + {-0x13, 0x0f}, + {-0x13, 0x0e}, + {-0x13, 0x0e}, + {-0x13, 0x0d}, + {-0x13, 0x0d}, + {-0x14, 0x0d}, + {-0x14, 0x0c}, + {-0x14, 0x0c}, + {-0x15, 0x0c}, + {-0x15, 0x0c}, + {-0x15, 0x0b}, + {-0x15, 0x0b}, + {-0x15, 0x0a}, + {-0x15, 0x0a}, + {-0x15, 0x09}, + {-0x16, 0x09}, + {-0x16, 0x09}, + {-0x16, 0x08}, + {-0x16, 0x08}, + {-0x16, 0x07}, + {-0x17, 0x07}, + {-0x17, 0x07}, + {-0x17, 0x06}, + {-0x17, 0x06}, + {-0x17, 0x05}, + {-0x18, 0x05}, + {-0x17, 0x04}, + {-0x17, 0x04}, + {-0x18, 0x04}, + {-0x18, 0x04}, + {-0x18, 0x03}, + {-0x18, 0x03}, + {-0x18, 0x02}, + {-0x18, 0x02}, + {-0x18, 0x01}, + {-0x18, 0x01}, + {-0x18, 0x01}, + {-0x18, 0x00}, + {-0x19, 0x00}, + {-0x18, -0x01}, + {-0x19, -0x01}, + {-0x18, -0x01}, + {-0x18, -0x02}, + {-0x18, -0x02}, + {-0x18, -0x03}, + {-0x18, -0x03}, + {-0x18, -0x04}, + {-0x18, -0x04}, + {-0x18, -0x04}, + {-0x18, -0x05}, + {-0x18, -0x05}, + {-0x18, -0x06}, + {-0x18, -0x06}, + {-0x17, -0x06}, + {-0x17, -0x07}, + {-0x17, -0x07}, + {-0x17, -0x08}, + {-0x17, -0x08}, + {-0x17, -0x09}, + {-0x17, -0x09}, + {-0x16, -0x09}, + {-0x16, -0x09}, + {-0x16, -0x0a}, + {-0x16, -0x0a}, + {-0x15, -0x0a}, + {-0x15, -0x0b}, + {-0x16, -0x0b}, + {-0x16, -0x0c}, + {-0x15, -0x0c}, + {-0x15, -0x0d}, + {-0x15, -0x0d}, + {-0x14, -0x0d}, + {-0x15, -0x0e}, + {-0x14, -0x0e}, + {-0x14, -0x0e}, + {-0x13, -0x0e}, + {-0x13, -0x0f}, + {-0x13, -0x0f}, + {-0x12, -0x10}, + {-0x12, -0x10}, + {-0x12, -0x10}, + {-0x12, -0x11}, + {-0x12, -0x11}, + {-0x11, -0x11}, + {-0x11, -0x12}, + {-0x11, -0x12}, + {-0x10, -0x12}, + {-0x10, -0x12}, + {-0x10, -0x13}, + {-0x10, -0x13}, + {-0x0f, -0x13}, + {-0x0f, -0x13}, + {-0x0f, -0x14}, + {-0x0e, -0x14}, + {-0x0e, -0x14}, + {-0x0e, -0x15}, + {-0x0d, -0x15}, + {-0x0d, -0x15}, + {-0x0d, -0x15}, + {-0x0c, -0x15}, + {-0x0c, -0x16}, + {-0x0b, -0x16}, + {-0x0b, -0x16}, + {-0x0b, -0x16}, + {-0x0a, -0x16}, + {-0x0a, -0x16}, + {-0x09, -0x16}, + {-0x09, -0x17}, + {-0x09, -0x17}, + {-0x08, -0x17}, + {-0x08, -0x17}, + {-0x07, -0x17}, + {-0x07, -0x17}, + {-0x07, -0x18}, + {-0x06, -0x18}, + {-0x06, -0x18}, + {-0x05, -0x18}, + {-0x05, -0x18}, + {-0x04, -0x18}, + {-0x04, -0x18}, + {-0x04, -0x18}, + {-0x04, -0x19}, + {-0x03, -0x19}, + {-0x02, -0x19}, + {-0x02, -0x18}, + {-0x02, -0x18}, + {-0x01, -0x19}, + {-0x01, -0x19}, + { 0x00, -0x19} +}; + +// text + +static void WallClockVblankCallback(void) +{ + LoadOam(); + ProcessSpriteCopyRequests(); + TransferPlttBuffer(); +} + +static void LoadWallClockGraphics(void) +{ + SetVBlankCallback(NULL); + SetGpuReg(REG_OFFSET_DISPCNT, 0x0000); + SetGpuReg(REG_OFFSET_BG3CNT, 0x0000); + SetGpuReg(REG_OFFSET_BG2CNT, 0x0000); + SetGpuReg(REG_OFFSET_BG1CNT, 0x0000); + SetGpuReg(REG_OFFSET_BG0CNT, 0x0000); + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + ChangeBgX(2, 0, 0); + ChangeBgY(2, 0, 0); + ChangeBgX(3, 0, 0); + ChangeBgY(3, 0, 0); + DmaFillLarge16(3, 0, (void *)VRAM, VRAM_SIZE, 0x1000); + DmaClear32(3, (void *)OAM, OAM_SIZE); + DmaClear16(3, (void *)PLTT, PLTT_SIZE); + LZ77UnCompVram(gUnknown_08DCC05C, (void *)VRAM); + if (gSpecialVar_0x8004 == 0) + { + LoadPalette(gUnknown_08DCC01C, 0x00, 0x20); + } + else + { + LoadPalette(gUnknown_08DCC03C, 0x00, 0x20); + } + LoadPalette(GetOverworldTextboxPalettePtr(), 0xe0, 0x20); + LoadPalette(gUnknown_085B21D4, 0xc0, 0x08); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_085B21FC, 3); + InitWindows(gUnknown_085B21DC); + DeactivateAllTextPrinters(); + sub_809882C(0, 0x250, 0xd0); + clear_scheduled_bg_copies_to_vram(); + remove_some_task(); + ResetTasks(); + ResetSpriteData(); + ResetPaletteFade(); + FreeAllSpritePalettes(); + LoadCompressedObjectPic(&gUnknown_085B2208); + LoadSpritePalettes(gUnknown_085B2218); +} + +static void WallClockInit(void) +{ + BeginNormalPaletteFade(-1, 0, 16, 0, 0); + EnableInterrupts(INTR_FLAG_VBLANK); + SetVBlankCallback(WallClockVblankCallback); + SetMainCallback2(WallClockMainCallback); + SetGpuReg(REG_OFFSET_BLDCNT, 0x0000); + SetGpuReg(REG_OFFSET_BLDALPHA, 0x0000); + SetGpuReg(REG_OFFSET_BLDY, 0x0000); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON); + ShowBg(0); + ShowBg(2); + ShowBg(3); +} + +void Cb2_StartWallClock(void) +{ + u8 taskId; + u8 spriteId; + + LoadWallClockGraphics(); + LZ77UnCompVram(gUnknown_08DCC648, (u16 *)BG_SCREEN_ADDR(7)); + + taskId = CreateTask(Task_SetClock1, 0); + gTasks[taskId].tHours = 10; + gTasks[taskId].tMinutes = 0; + gTasks[taskId].tMvmtDir = 0; + gTasks[taskId].tPeriod = 0; + gTasks[taskId].tMvmtSpeed = 0; + gTasks[taskId].tMinuteHandAngle = 0; + gTasks[taskId].tHourHandAngle = 300; + + spriteId = CreateSprite(&gUnknown_085B2250, 0x78, 0x50, 1); + gSprites[spriteId].data[0] = taskId; + gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + gSprites[spriteId].oam.matrixNum = 0; + + spriteId = CreateSprite(&gUnknown_085B2268, 0x78, 0x50, 0); + gSprites[spriteId].data[0] = taskId; + gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + gSprites[spriteId].oam.matrixNum = 1; + + spriteId = CreateSprite(&gUnknown_085B22A0, 0x78, 0x50, 2); + gSprites[spriteId].data[0] = taskId; + gSprites[spriteId].data[1] = 45; + + spriteId = CreateSprite(&gUnknown_085B22B8, 0x78, 0x50, 2); + gSprites[spriteId].data[0] = taskId; + gSprites[spriteId].data[1] = 90; + + WallClockInit(); + + PrintTextOnWindow(1, 1, gText_Confirm3, 0, 1, 0, NULL); + PutWindowTilemap(1); + schedule_bg_copy_tilemap_to_vram(2); +} + +void Cb2_ViewWallClock(void) +{ + u8 taskId; + u8 spriteId; + u8 angle1; + u8 angle2; + + LoadWallClockGraphics(); + LZ77UnCompVram(gUnknown_08DCC908, (u16 *)BG_SCREEN_ADDR(7)); + + taskId = CreateTask(Task_ViewClock1, 0); + InitClockWithRtc(taskId); + if (gTasks[taskId].tPeriod == 0) + { + angle1 = 45; + angle2 = 90; + } + else + { + angle1 = 90; + angle2 = 135; + } + + spriteId = CreateSprite(&gUnknown_085B2250, 0x78, 0x50, 1); + gSprites[spriteId].data[0] = taskId; + gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + gSprites[spriteId].oam.matrixNum = 0; + + spriteId = CreateSprite(&gUnknown_085B2268, 0x78, 0x50, 0); + gSprites[spriteId].data[0] = taskId; + gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL; + gSprites[spriteId].oam.matrixNum = 1; + + spriteId = CreateSprite(&gUnknown_085B22A0, 0x78, 0x50, 2); + gSprites[spriteId].data[0] = taskId; + gSprites[spriteId].data[1] = angle1; + + spriteId = CreateSprite(&gUnknown_085B22B8, 0x78, 0x50, 2); + gSprites[spriteId].data[0] = taskId; + gSprites[spriteId].data[1] = angle2; + + WallClockInit(); + + PrintTextOnWindow(1, 1, gText_Cancel4, 0, 1, 0, NULL); + PutWindowTilemap(1); + schedule_bg_copy_tilemap_to_vram(2); +} + +static void WallClockMainCallback(void) +{ + RunTasks(); + AnimateSprites(); + BuildOamBuffer(); + do_scheduled_bg_tilemap_copies_to_vram(); + UpdatePaletteFade(); +} + +static void Task_SetClock1(u8 taskId) +{ + if (!gPaletteFade.active) + { + gTasks[taskId].func = Task_SetClock2; + } +} + +static void Task_SetClock2(u8 taskId) +{ + if (gTasks[taskId].tMinuteHandAngle % 6) + { + gTasks[taskId].tMinuteHandAngle = CalcNewMinHandAngle(gTasks[taskId].tMinuteHandAngle, gTasks[taskId].tMvmtDir, gTasks[taskId].tMvmtSpeed); + } + else + { + gTasks[taskId].tMinuteHandAngle = gTasks[taskId].tMinutes * 6; + gTasks[taskId].tHourHandAngle = (gTasks[taskId].tHours % 12) * 30 + (gTasks[taskId].tMinutes / 10) * 5; + if (gMain.newKeys & A_BUTTON) + { + gTasks[taskId].func = Task_SetClock3; + } + else + { + gTasks[taskId].tMvmtDir = 0; + if (gMain.heldKeys & DPAD_LEFT) + { + gTasks[taskId].tMvmtDir = 1; + } + if (gMain.heldKeys & DPAD_RIGHT) + { + gTasks[taskId].tMvmtDir = 2; + } + if (gTasks[taskId].tMvmtDir != 0) + { + if (gTasks[taskId].tMvmtSpeed < 0xFF) + { + gTasks[taskId].tMvmtSpeed++; + } + gTasks[taskId].tMinuteHandAngle = CalcNewMinHandAngle(gTasks[taskId].tMinuteHandAngle, gTasks[taskId].tMvmtDir, gTasks[taskId].tMvmtSpeed); + AdvanceClock(taskId, gTasks[taskId].tMvmtDir); + } + else + { + gTasks[taskId].tMvmtSpeed = 0; + } + } + } +} + +static void Task_SetClock3(u8 taskId) +{ + SetWindowBorderStyle(0, FALSE, 0x250, 0x0d); + PrintTextOnWindow(0, 1, gText_IsThisTheCorrectTime, 0, 1, 0, NULL); + PutWindowTilemap(0); + schedule_bg_copy_tilemap_to_vram(0); + CreateYesNoMenu(&gUnknown_085B21F4, 0x250, 0x0d, 1); + gTasks[taskId].func = Task_SetClock4; +} + +static void Task_SetClock4(u8 taskId) +{ + switch (ProcessMenuInputNoWrap_()) + { + case 0: + PlaySE(SE_SELECT); + gTasks[taskId].func = Task_SetClock5; + break; + case 1: + case -1: + PlaySE(SE_SELECT); + sub_8198070(0, FALSE); + ClearWindowTilemap(0); + gTasks[taskId].func = Task_SetClock2; + break; + } +} + +static void Task_SetClock5(u8 taskId) +{ + RtcInitLocalTimeOffset(gTasks[taskId].tHours, gTasks[taskId].tMinutes); + BeginNormalPaletteFade(-1, 0, 0, 16, 0); + gTasks[taskId].func = Task_SetClock6; +} + +static void Task_SetClock6(u8 taskId) +{ + if (!gPaletteFade.active) + { + FreeAllWindowBuffers(); + SetMainCallback2(gMain.savedCallback); + } +} + +static void Task_ViewClock1(u8 taskId) +{ + if (!gPaletteFade.active) + { + gTasks[taskId].func = Task_ViewClock2; + } +} + +static void Task_ViewClock2(u8 taskId) +{ + InitClockWithRtc(taskId); + if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + { + gTasks[taskId].func = Task_ViewClock3; + } +} + +static void Task_ViewClock3(u8 taskId) +{ + BeginNormalPaletteFade(-1, 0, 0, 16, 0); + gTasks[taskId].func = Task_ViewClock4; +} + +static void Task_ViewClock4(u8 taskId) +{ + if (!gPaletteFade.active) + { + SetMainCallback2(gMain.savedCallback); + } +} + +static u8 CalcMinHandDelta(u16 a0) +{ + if (a0 > 60) + { + return 6; + } + if (a0 > 30) + { + return 3; + } + if (a0 > 10) + { + return 2; + } + return 1; +} + +static u16 CalcNewMinHandAngle(u16 a0, u8 command, u8 a2) +{ + u8 r1 = CalcMinHandDelta(a2); + switch (command) + { + case 1: + if (a0) a0 -= r1; + else a0 = 360 - r1; + break; + case 2: + if (a0 < 360 - r1) a0 += r1; + else a0 = 0; + break; + } + return a0; +} + +static bool32 AdvanceClock(u8 taskId, u8 command) +{ + switch (command) + { + case 1: + if (gTasks[taskId].tMinutes > 0) + { + gTasks[taskId].tMinutes--; + } + else + { + gTasks[taskId].tMinutes = 59; + if (gTasks[taskId].tHours > 0) + { + gTasks[taskId].tHours--; + } + else + { + gTasks[taskId].tHours = 23; + } + UpdateClockPeriod(taskId, command); + } + break; + case 2: + if (gTasks[taskId].tMinutes < 59) + { + gTasks[taskId].tMinutes++; + } + else + { + gTasks[taskId].tMinutes = 0; + if (gTasks[taskId].tHours < 23) + { + gTasks[taskId].tHours++; + } + else + { + gTasks[taskId].tHours = 0; + } + UpdateClockPeriod(taskId, command); + } + break; + } + return FALSE; +} + +static void UpdateClockPeriod(u8 taskId, u8 command) +{ + u8 hours = gTasks[taskId].tHours; + switch (command) + { + case 1: + switch (hours) + { + case 11: + gTasks[taskId].tPeriod = FALSE; + break; + case 23: + gTasks[taskId].tPeriod = TRUE; + break; + } + break; + case 2: + switch (hours) + { + case 0: + gTasks[taskId].tPeriod = FALSE; + break; + case 12: + gTasks[taskId].tPeriod = TRUE; + break; + } + break; + } +} + +static void InitClockWithRtc(u8 taskId) +{ + RtcCalcLocalTime(); + gTasks[taskId].tHours = gLocalTime.hours; + gTasks[taskId].tMinutes = gLocalTime.minutes; + gTasks[taskId].tMinuteHandAngle = gTasks[taskId].tMinutes * 6; + gTasks[taskId].tHourHandAngle = (gTasks[taskId].tHours % 12) * 30 + (gTasks[taskId].tMinutes / 10) * 5; + if (gLocalTime.hours < 12) + { + gTasks[taskId].tPeriod = FALSE; + } + else + { + gTasks[taskId].tPeriod = TRUE; + } +} + +static void SpriteCB_MinuteHand(struct Sprite *sprite) +{ + u16 angle = gTasks[sprite->data[0]].tMinuteHandAngle; + s16 sin = Sin2(angle) / 16; + s16 cos = Cos2(angle) / 16; + u16 xhat; + u16 yhat; + + SetOamMatrix(0, cos, sin, -sin, cos); + xhat = sClockHandCoords[angle][0]; + yhat = sClockHandCoords[angle][1]; + + if (xhat > 0x80) + { + xhat |= 0xff00; + } + if (yhat > 0x80) + { + yhat |= 0xff00; + } + sprite->pos2.x = xhat; + sprite->pos2.y = yhat; +} + +static void SpriteCB_HourHand(struct Sprite *sprite) +{ + u16 angle = gTasks[sprite->data[0]].tHourHandAngle; + s16 sin = Sin2(angle) / 16; + s16 cos = Cos2(angle) / 16; + u16 xhat; + u16 yhat; + + SetOamMatrix(1, cos, sin, -sin, cos); + xhat = sClockHandCoords[angle][0]; + yhat = sClockHandCoords[angle][1]; + if (xhat > 0x80) + { + xhat |= 0xff00; + } + if (yhat > 0x80) + { + yhat |= 0xff00; + } + sprite->pos2.x = xhat; + sprite->pos2.y = yhat; +} + +static void SpriteCB_AMIndicator(struct Sprite *sprite) +{ + if (gTasks[sprite->data[0]].tPeriod) + { + if (sprite->data[1] >= 60 && sprite->data[1] < 90) + { + sprite->data[1] += 5; + } + if (sprite->data[1] < 60) + { + sprite->data[1]++; + } + } + else + { + if (sprite->data[1] >= 46 && sprite->data[1] < 76) + { + sprite->data[1] -= 5; + } + if (sprite->data[1] > 75) + { + sprite->data[1]--; + } + } + sprite->pos2.x = Cos2(sprite->data[1]) * 30 / 0x1000; + sprite->pos2.y = Sin2(sprite->data[1]) * 30 / 0x1000; +} + +static void SpriteCB_PMIndicator(struct Sprite *sprite) +{ + if (gTasks[sprite->data[0]].tPeriod) + { + if (sprite->data[1] >= 105 && sprite->data[1] < 135) + { + sprite->data[1] += 5; + } + if (sprite->data[1] < 105) + { + sprite->data[1]++; + } + } + else + { + if (sprite->data[1] >= 91 && sprite->data[1] < 121) + { + sprite->data[1] -= 5; + } + if (sprite->data[1] > 120) + { + sprite->data[1]--; + } + } + sprite->pos2.x = Cos2(sprite->data[1]) * 30 / 0x1000; + sprite->pos2.y = Sin2(sprite->data[1]) * 30 / 0x1000; +} diff --git a/src/wild_encounter.c b/src/wild_encounter.c index ce1e02e5e..705c4416c 100644 --- a/src/wild_encounter.c +++ b/src/wild_encounter.c @@ -1,23 +1,24 @@ #include "global.h" #include "wild_encounter.h" #include "pokemon.h" -#include "species.h" +#include "constants/species.h" #include "metatile_behavior.h" #include "fieldmap.h" -#include "rng.h" -#include "map_constants.h" +#include "random.h" +#include "constants/maps.h" #include "field_player_avatar.h" -#include "abilities.h" +#include "constants/abilities.h" #include "event_data.h" #include "safari_zone.h" +#include "overworld.h" #include "pokeblock.h" #include "battle_setup.h" #include "roamer.h" -#include "game_stat.h" +#include "constants/game_stat.h" #include "tv.h" #include "link.h" #include "script.h" -#include "items.h" +#include "constants/items.h" extern const u8 EventScript_RepelWoreOff[]; @@ -84,8 +85,8 @@ static bool8 CheckFeebas(void) u8 route119Section = 0; u16 waterTileNum; - if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP_ROUTE119 - && gSaveBlock1Ptr->location.mapNum == MAP_ID_ROUTE119) + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(ROUTE119) + && gSaveBlock1Ptr->location.mapNum == MAP_NUM(ROUTE119)) { GetXYCoordsOneStepInFrontOfPlayer(&x, &y); x -= 7; @@ -283,8 +284,8 @@ static u16 GetCurrentMapWildMonHeaderId(void) if (gWildMonHeaders[i].mapGroup == gSaveBlock1Ptr->location.mapGroup && gWildMonHeaders[i].mapNum == gSaveBlock1Ptr->location.mapNum) { - if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP_ALTERING_CAVE && - gSaveBlock1Ptr->location.mapNum == MAP_ID_ALTERING_CAVE) + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(ALTERING_CAVE) && + gSaveBlock1Ptr->location.mapNum == MAP_NUM(ALTERING_CAVE)) { u16 alteringCaveId = VarGet(VAR_ALTERING_CAVE_WILD_SET); if (alteringCaveId > 8) @@ -513,8 +514,8 @@ static bool8 DoGlobalWildEncounterDiceRoll(void) static bool8 AreLegendariesInSootopolisPreventingEncounters(void) { - if (gSaveBlock1Ptr->location.mapGroup != MAP_GROUP_SOOTOPOLIS_CITY - || gSaveBlock1Ptr->location.mapNum != MAP_ID_SOOTOPOLIS_CITY) + if (gSaveBlock1Ptr->location.mapGroup != MAP_GROUP(SOOTOPOLIS_CITY) + || gSaveBlock1Ptr->location.mapNum != MAP_NUM(SOOTOPOLIS_CITY)) { return FALSE; } diff --git a/sym_bss.txt b/sym_bss.txt index e2f03b8f3..a4d3c2d82 100644 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -2,32 +2,32 @@ .include "src/malloc.o" .include "src/dma3_manager.o" .include "src/gpu_regs.o" - .include "src/bg.o" + .include "src/bg.o" .include "src/text.o" .include "src/sprite.o" - .include "src/link.o" - .include "src/rtc.o" - .include "src/main_menu.o" - .include "src/battle_1.o" - .include "src/egg_hatch.o" - .include "src/berry_blender.o" - .include "src/play_time.o" - .include "src/rom4.o" - .include "src/field_camera.o" - .include "src/script.o" - .include "src/scrcmd.o" - .include "src/tileset_anims.o" - .include "src/palette.o" - .include "src/sound.o" - .include "src/field_screen.o" - .include "src/field_effect.o" - .include "src/pokemon_storage_system.o" - .include "src/fldeff_cut.o" - .include "src/script_menu.o" - .include "src/record_mixing.o" - .include "src/tv.o" - - .space 1 @ TODO: define this u32 in mauville_old_man + .include "src/link.o" + .include "src/rtc.o" + .include "src/main_menu.o" + .include "src/battle_1.o" + .include "src/egg_hatch.o" + .include "src/berry_blender.o" + .include "src/play_time.o" + .include "src/overworld.o" + .include "src/field_camera.o" + .include "src/script.o" + .include "src/scrcmd.o" + .include "src/tileset_anims.o" + .include "src/palette.o" + .include "src/sound.o" + .include "src/field_screen.o" + .include "src/field_effect.o" + .include "src/pokemon_storage_system.o" + .include "src/fldeff_cut.o" + .include "src/script_menu.o" + .include "src/record_mixing.o" + .include "src/tv.o" + + .space 1 @ TODO: define this u32 in mauville_old_man gUnknown_03001178: @ 3001178 .space 0x4 @@ -54,9 +54,9 @@ gUnknown_030011F6: @ 30011F6 gUnknown_030011F7: @ 30011F7 .space 0x1 - .include "src/starter_choose.o" - - .align 0x2 + .include "src/starter_choose.o" + + .align 0x2 gUnknown_030011FC: @ 30011FC .space 0x2 @@ -138,7 +138,7 @@ gUnknown_03001298: @ 3001298 gUnknown_030012A8: @ 30012A8 .space 0x10 - .include "src/berry_fix_program.o" + .include "src/berry_fix_program.o" gUnknown_030012BC: @ 30012BC .space 0x4 diff --git a/sym_common.txt b/sym_common.txt index 1a199dbb3..646db3bb7 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -75,7 +75,7 @@ gUnknown_0300307C: @ 300307C gUnknown_03003084: @ 3003084 .space 0xC -gUnknown_03003090: @ 3003090 +gRecvCmds: @ 3003090 .space 0x2 gUnknown_03003092: @ 3003092 @@ -111,7 +111,7 @@ gLinkVSyncDisabled: @ 30030FC gUnknown_03003100: @ 3003100 .space 0x10 -gUnknown_03003110: @ 3003110 +gSendCmd: @ 3003110 .space 0x10 gUnknown_03003120: @ 3003120 @@ -248,7 +248,7 @@ gSaveBlock2Ptr: @ 3005D90 gPokemonStoragePtr: @ 3005D94 .space 0x4 -gUnknown_03005D98: @ 3005D98 +gInGameOpponentsNo: @ 3005D98 .space 0x4 gUnknown_03005D9C: @ 3005D9C @@ -302,10 +302,10 @@ gUnknown_03006080: @ 3006080 gUnknown_03006084: @ 3006084 .space 0xC -gUnknown_03006090: @ 3006090 +gApproachingTrainers: @ 3006090 .space 0x18 -gUnknown_030060A8: @ 30060A8 +gNoOfApproachingTrainers: @ 30060A8 .space 0x4 gUnknown_030060AC: @ 30060AC diff --git a/sym_ewram.txt b/sym_ewram.txt index cfe686a7c..31ecf2085 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -34,13 +34,13 @@ gUnknown_020223C0: @ 20223C0 gBlockRecvBuffer: @ 20223C4 .space 0x500 -gUnknown_020228C4: @ 20228C4 gBlockSendBuffer +gBlockSendBuffer: @ 20228C4 gBlockSendBuffer .space 0x100 gUnknown_020229C4: @ 20229C4 .space 0x2 -gUnknown_020229C6: @ 20229C6 +gLinkType: @ 20229C6 .space 0x2 gUnknown_020229C8: @ 20229C8 @@ -312,7 +312,7 @@ gUnknown_020241E9: @ 20241E9 gCurrentMove: @ 20241EA .space 0x2 -gLastUsedMove: @ 20241EC +gChosenMove: @ 20241EC .space 0x2 gRandomMove: @ 20241EE @@ -363,31 +363,31 @@ gBattlescriptCurrInstr: @ 2024214 gActionForBanks: @ 202421C .space 0x4 -gBattlescriptPtrsForSelection: @ 2024220 +gSelectionBattleScripts: @ 2024220 .space 0x10 -gUnknown_02024230: @ 2024230 +gPalaceSelectionBattleScripts: @ 2024230 .space 0x10 -gUnknownMovesUsedByBanks: @ 2024240 +gLastPrintedMoves: @ 2024240 .space 0x8 -gLastUsedMovesByBanks: @ 2024248 +gLastMoves: @ 2024248 .space 0x8 -gUnknown_02024250: @ 2024250 +gLastLandedMoves: @ 2024250 .space 0x8 -gUnknown_02024258: @ 2024258 +gLastHitByType: @ 2024258 .space 0x8 -gUnknown_02024260: @ 2024260 +gLastResultingMoves: @ 2024260 .space 0x8 gLockedMoves: @ 2024268 .space 0x8 -gUnknown_02024270: @ 2024270 +gLastHitBy: @ 2024270 .space 0x4 gChosenMovesByBanks: @ 2024274 @@ -543,16 +543,10 @@ gUnknown_0202499C: @ 202499C gUnknown_020249B4: @ 20249B4 .space 0x8 - .include "src/rng.o" + .include "src/random.o" .include "src/daycare.o" .include "src/load_save.o" -gUnknown_02031C58: @ 2031C58 - .space 0x528 - -gUnknown_02032180: @ 2032180 - .space 0x4 - gUnknown_02032184: @ 2032184 .space 0x4 @@ -570,18 +564,8 @@ gUnknown_0203229C: @ 203229C gUnknown_020322A0: @ 20322A0 .space 0x4 - -gUnknown_020322A4: @ 20322A4 - .space 0x4 - -gUnknown_020322A8: @ 20322A8 - .space 0x14 - -gUnknown_020322BC: @ 20322BC - .space 0x14 - -gUnknown_020322D0: @ 20322D0 - .space 0x4 + + .include "src/berry_blender.o" gDifferentSaveFile: @ 20322D4 .space 0x1 @@ -722,55 +706,11 @@ gUnknown_02038BC4: @ 2038BC4 gUnknown_02038BC6: @ 2038BC6 .space 0x2 -gUnknown_02038BC8: @ 2038BC8 - .space 0x2 - -gTrainerBattleOpponent_A: @ 2038BCA - .space 0x2 - -gTrainerBattleOpponent_B: @ 2038BCC - .space 0x2 - -gPartnerTrainerId: @ 2038BCE - .space 0x2 - -gUnknown_02038BD0: @ 2038BD0 - .space 0x4 - -gUnknown_02038BD4: @ 2038BD4 - .space 0x4 - -gUnknown_02038BD8: @ 2038BD8 - .space 0x4 - -gUnknown_02038BDC: @ 2038BDC - .space 0x4 - -gUnknown_02038BE0: @ 2038BE0 - .space 0x4 - -gUnknown_02038BE4: @ 2038BE4 - .space 0x4 - -gUnknown_02038BE8: @ 2038BE8 - .space 0x4 + .include "src/battle_setup.o" -gUnknown_02038BEC: @ 2038BEC - .space 0x4 - -gUnknown_02038BF0: @ 2038BF0 - .space 0x4 - -gUnknown_02038BF4: @ 2038BF4 - .space 0x4 - -gUnknown_02038BF8: @ 2038BF8 - .space 0x1 - -gUnknown_02038BF9: @ 2038BF9 - .space 0x3 +.align 2 -gUnknown_02038BFC: @ 2038BFC +gApproachingTrainerId: @ 2038BFC .space 0x4 .include "src/wild_encounter.o" @@ -1238,7 +1178,7 @@ gUnknown_0203AB6F: @ 203AB6F gUnknown_0203AB70: @ 203AB70 .space 0x4 -gUnknown_0203AB74: @ 203AB74 +gResultsWindowId: @ 203AB74 .space 0x4 gUnknown_0203AB78: @ 203AB78 @@ -1545,8 +1485,7 @@ gUnknown_0203CE84: @ 203CE84 gUnknown_0203CE8C: @ 203CE8C .space 0x10 -gUnknown_0203CE9C: @ 203CE9C - .space 0x20 + .include "src/unk_text_util.o" gUnknown_0203CEBC: @ 203CEBC .space 0x4 |