From 8982501b7860b97cd659262cbb14f375ca07b54a Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Sun, 1 Oct 2017 13:03:51 -0500 Subject: Extract baseroms from reset_rtc_screen --- asm/reset_rtc_screen.s | 4 +- data/reset_rtc_screen.s | 75 ++++++++++++++++++++++---- graphics/misc/reset_rtc_screen_arrow.pal | 7 +++ graphics/misc/reset_rtc_screen_downarrow.png | Bin 0 -> 113 bytes graphics/misc/reset_rtc_screen_rightarrow.png | Bin 0 -> 110 bytes 5 files changed, 74 insertions(+), 12 deletions(-) create mode 100644 graphics/misc/reset_rtc_screen_arrow.pal create mode 100644 graphics/misc/reset_rtc_screen_downarrow.png create mode 100644 graphics/misc/reset_rtc_screen_rightarrow.png diff --git a/asm/reset_rtc_screen.s b/asm/reset_rtc_screen.s index ac2c1181c..1f5ef83d8 100644 --- a/asm/reset_rtc_screen.s +++ b/asm/reset_rtc_screen.s @@ -291,7 +291,7 @@ sub_809EB04: @ 809EB04 lsrs r5, 24 ldr r0, =gUnknown_085104C4 bl LoadSpritePalette - ldr r0, =gUnknown_085104F0 + ldr r0, =gSpriteTemplate_85104F0 mov r8, r0 movs r1, 0x35 movs r2, 0x44 @@ -655,7 +655,7 @@ sub_809EDE8: @ 809EDE8 lsls r0, r4, 1 adds r0, r4 lsls r0, 2 - ldr r1, =gUnknown_0851041C + ldr r1, =gUnknown_08510420 - 0x4 adds r2, r0, r1 ldr r1, =gMain ldrh r3, [r1, 0x2E] diff --git a/data/reset_rtc_screen.s b/data/reset_rtc_screen.s index 2ed5f746c..f08f30e90 100644 --- a/data/reset_rtc_screen.s +++ b/data/reset_rtc_screen.s @@ -4,20 +4,75 @@ .section .rodata .align 2, 0 -gUnknown_08510404:: @ 8510404 - .incbin "baserom.gba", 0x510404, 0x4 +gUnknown_08510404:: @ 8510404 struct BgTemplate + .4byte 0x000001f0 + .align 2 gUnknown_08510408:: @ 8510408 - .incbin "baserom.gba", 0x510408, 0x14 - -gUnknown_0851041C:: @ 851041C - .incbin "baserom.gba", 0x51041c, 0x4 + window_template 0x00, 0x01, 0x01, 0x13, 0x09, 0x0f, 0x0155 + window_template 0x00, 0x02, 0x0f, 0x1b, 0x04, 0x0f, 0x00e9 + window_template 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 + .align 2 gUnknown_08510420:: @ 8510420 - .incbin "baserom.gba", 0x510420, 0xa4 + window_template 0x00, 0x04, 0x09, 0x15, 0x02, 0x0f, 0x00bf + + .align 2 +gUnknown_08510428:: @ 8510428 + .byte 3, 0, 1, 0, 15, 39, 0, 2, 0, 0, 0, 0 + .byte 4, 0, 0, 0, 23, 0, 1, 3, 0, 0, 0, 0 + .byte 5, 0, 0, 0, 59, 0, 2, 4, 0, 0, 0, 0 + .byte 6, 0, 0, 0, 59, 0, 3, 5, 0, 0, 0, 0 + .byte 7, 0, 0, 0, 0, 0, 4, 0, 6, 0, 0, 0 + + .align 2 +gOamData_08510464:: @ 8510464 + .2byte 0x0000 + .2byte 0x0000 + .2byte 0x0000 + + .align 2 +gResetRtcScreen_DownArrowGfx:: @ 851046C + .incbin "graphics/misc/reset_rtc_screen_downarrow.4bpp" + + .align 2 +gResetRtcScreen_RightArrowGfx:: @ 851048C + .incbin "graphics/misc/reset_rtc_screen_rightarrow.4bpp" + + .align 2 +gResetRtcScreen_ArrowPal: @ 85104AC + .incbin "graphics/misc/reset_rtc_screen_arrow.gbapal" + .align 2 +gSpriteImageTable_85104B4:: @ 85104B4 + obj_frame_tiles gResetRtcScreen_DownArrowGfx, 0x20 + obj_frame_tiles gResetRtcScreen_RightArrowGfx, 0x20 + + .align 2 gUnknown_085104C4:: @ 85104C4 - .incbin "baserom.gba", 0x5104c4, 0x2c + obj_pal gResetRtcScreen_ArrowPal, 0x1000 + + .align 2 +gSpriteAnim_85104CC:: @ 85104CC + obj_image_anim_frame 0, 30 + obj_image_anim_jump 0 + + .align 2 +gSpriteAnim_85104D4: @ 85104D4 + obj_image_anim_frame 0, 30, OBJ_IMAGE_ANIM_V_FLIP + obj_image_anim_jump 0 + + .align 2 +gSpriteAnim_85104DC:: @ 85104DC + obj_image_anim_frame 1, 30 + obj_image_anim_jump 0 + + .align 2 +gSpriteAnimTable_85104E4:: @ 85104E4 + .4byte gSpriteAnim_85104CC + .4byte gSpriteAnim_85104D4 + .4byte gSpriteAnim_85104DC -gUnknown_085104F0:: @ 85104F0 - .incbin "baserom.gba", 0x5104f0, 0x18 + .align 2 +gSpriteTemplate_85104F0:: @ 85104F0 + spr_template 0xFFFF, 0x1000, gOamData_08510464, gSpriteAnimTable_85104E4, gSpriteImageTable_85104B4, gDummySpriteAffineAnimTable, SpriteCallbackDummy diff --git a/graphics/misc/reset_rtc_screen_arrow.pal b/graphics/misc/reset_rtc_screen_arrow.pal new file mode 100644 index 000000000..b2e8a5f5f --- /dev/null +++ b/graphics/misc/reset_rtc_screen_arrow.pal @@ -0,0 +1,7 @@ +JASC-PAL +0100 +4 +0 0 0 +255 0 0 +74 74 74 +0 0 0 diff --git a/graphics/misc/reset_rtc_screen_downarrow.png b/graphics/misc/reset_rtc_screen_downarrow.png new file mode 100644 index 000000000..8f7b3480d Binary files /dev/null and b/graphics/misc/reset_rtc_screen_downarrow.png differ diff --git a/graphics/misc/reset_rtc_screen_rightarrow.png b/graphics/misc/reset_rtc_screen_rightarrow.png new file mode 100644 index 000000000..785b3c1db Binary files /dev/null and b/graphics/misc/reset_rtc_screen_rightarrow.png differ -- cgit v1.2.3 From ba758afc1486b6cfb262d2fa96bbe9efd6c1720c Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Sun, 1 Oct 2017 14:48:29 -0500 Subject: Extract baseroms from and combine fldeff_emotion and trainer_see Also extract from bike --- asm/fldeff_emotion.s | 328 ---------------------------------- asm/trainer_see.s | 328 +++++++++++++++++++++++++++++++++- data/bike.s | 47 ++++- data/cable_club.s | 9 +- data/fldeff_emotion.s | 11 -- data/strings.s | 8 +- data/trainer_see.s | 83 ++++++++- graphics/misc/emotion_exclamation.png | Bin 0 -> 108 bytes graphics/misc/emotion_heart.png | Bin 0 -> 126 bytes graphics/misc/emotion_question.png | Bin 0 -> 117 bytes ld_script.txt | 2 - 11 files changed, 452 insertions(+), 364 deletions(-) delete mode 100644 asm/fldeff_emotion.s delete mode 100644 data/fldeff_emotion.s create mode 100644 graphics/misc/emotion_exclamation.png create mode 100644 graphics/misc/emotion_heart.png create mode 100644 graphics/misc/emotion_question.png diff --git a/asm/fldeff_emotion.s b/asm/fldeff_emotion.s deleted file mode 100644 index 37096a438..000000000 --- a/asm/fldeff_emotion.s +++ /dev/null @@ -1,328 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start oei_exclamation_mark -oei_exclamation_mark: @ 80B4620 - push {lr} - ldr r0, =gUnknown_085507B4 - movs r1, 0 - movs r2, 0 - movs r3, 0x53 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080B4648 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - movs r1, 0 - movs r2, 0 - bl sub_80B46D8 -_080B4648: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end oei_exclamation_mark - - thumb_func_start sub_80B4658 -sub_80B4658: @ 80B4658 - push {lr} - ldr r0, =gUnknown_085507B4 - movs r1, 0 - movs r2, 0 - movs r3, 0x52 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080B4680 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - movs r1, 0x21 - movs r2, 0x1 - bl sub_80B46D8 -_080B4680: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B4658 - - thumb_func_start sub_80B4690 -sub_80B4690: @ 80B4690 - push {r4,lr} - ldr r0, =gUnknown_085507CC - movs r1, 0 - movs r2, 0 - movs r3, 0x52 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080B46C6 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, =gSprites - adds r4, r0 - adds r0, r4, 0 - movs r1, 0x2E - movs r2, 0 - bl sub_80B46D8 - ldrb r1, [r4, 0x5] - movs r0, 0xF - ands r0, r1 - movs r1, 0x20 - orrs r0, r1 - strb r0, [r4, 0x5] -_080B46C6: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B4690 - - thumb_func_start sub_80B46D8 -@ void sub_80B46D8(struct obj *object, s16 a2, u8 a3) -sub_80B46D8: @ 80B46D8 - push {r4,lr} - lsls r2, 24 - lsrs r2, 24 - ldrb r4, [r0, 0x5] - movs r3, 0xD - negs r3, r3 - ands r3, r4 - movs r4, 0x4 - orrs r3, r4 - strb r3, [r0, 0x5] - movs r3, 0x3E - adds r3, r0 - mov r12, r3 - ldrb r3, [r3] - movs r4, 0x2 - orrs r3, r4 - mov r4, r12 - strb r3, [r4] - ldr r4, =gFieldEffectSpawnParams - ldr r3, [r4] - strh r3, [r0, 0x2E] - ldr r3, [r4, 0x4] - strh r3, [r0, 0x30] - ldr r3, [r4, 0x8] - strh r3, [r0, 0x32] - ldr r3, =0x0000fffb - strh r3, [r0, 0x34] - strh r1, [r0, 0x3C] - adds r1, r2, 0 - bl StartSpriteAnim - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B46D8 - - thumb_func_start objc_exclamation_mark_probably -objc_exclamation_mark_probably: @ 80B4724 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x30] - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r4, 0x32] - lsls r2, 24 - lsrs r2, 24 - mov r3, sp - bl TryGetFieldObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _080B4756 - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080B4764 -_080B4756: - ldrh r1, [r4, 0x3C] - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldEffectStop - b _080B47B2 -_080B4764: - ldr r2, =gMapObjects - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, =gSprites - adds r1, r0 - ldrh r3, [r4, 0x34] - ldrh r0, [r4, 0x36] - adds r2, r3, r0 - strh r2, [r4, 0x36] - ldrh r0, [r1, 0x20] - strh r0, [r4, 0x20] - ldrh r0, [r1, 0x22] - subs r0, 0x10 - strh r0, [r4, 0x22] - ldrh r0, [r1, 0x24] - strh r0, [r4, 0x24] - ldrh r0, [r1, 0x26] - adds r0, r2 - strh r0, [r4, 0x26] - lsls r2, 16 - asrs r2, 16 - cmp r2, 0 - beq _080B47B0 - adds r0, r3, 0x1 - strh r0, [r4, 0x34] - b _080B47B2 - .pool -_080B47B0: - strh r2, [r4, 0x34] -_080B47B2: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end objc_exclamation_mark_probably - - thumb_func_start sub_80B47BC -sub_80B47BC: @ 80B47BC - push {lr} - ldr r0, =gUnknown_02038BFC - ldrb r0, [r0] - cmp r0, 0 - beq _080B47D4 - ldr r0, =gUnknown_03006090 - ldrb r0, [r0, 0xC] - b _080B47D8 - .pool -_080B47D4: - ldr r0, =gUnknown_03006090 - ldrb r0, [r0] -_080B47D8: - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B47BC - - thumb_func_start sub_80B47E0 -sub_80B47E0: @ 80B47E0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _080B47EE - movs r0, 0 - b _080B4800 -_080B47EE: - cmp r0, 0 - beq _080B47FC - ldr r0, =gUnknown_03006090 - ldrb r0, [r0, 0xC] - b _080B4800 - .pool -_080B47FC: - ldr r0, =gUnknown_03006090 - ldrb r0, [r0] -_080B4800: - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B47E0 - - thumb_func_start sub_80B4808 -sub_80B4808: @ 80B4808 - push {lr} - ldr r0, =gUnknown_030060AC - ldrb r0, [r0] - cmp r0, 0x1 - bne _080B4870 - ldr r2, =gUnknown_03006090 - ldr r0, =gUnknown_03006080 - ldrh 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 - ldr r1, =gMapObjects - adds r0, r1 - ldrb r0, [r0, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetOppositeDirection - lsls r0, 24 - lsrs r0, 24 - bl GetFaceDirectionAnimId - ldr r3, =gUnknown_03006084 - strb r0, [r3] - movs r0, 0xFE - strb r0, [r3, 0x1] - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - movs r0, 0xFF - bl exec_movement - b _080B489E - .pool -_080B4870: - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r0, r1 - ldrb r0, [r0, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetFaceDirectionAnimId - ldr r3, =gUnknown_03006084 - strb r0, [r3] - movs r0, 0xFE - strb r0, [r3, 0x1] - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - movs r0, 0xFF - bl exec_movement -_080B489E: - movs r0, 0xFF - bl sub_809BE48 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B4808 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/trainer_see.s b/asm/trainer_see.s index d57ad1815..d638498ee 100644 --- a/asm/trainer_see.s +++ b/asm/trainer_see.s @@ -267,7 +267,7 @@ CheckIfTrainerCanApproachPlayer: @ 80B3DF0 mov r8, r4 cmp r0, 0x1 bne _080B3E50 - ldr r1, =gUnknown_0855072C + ldr r1, =gIsTrainerInRange ldrb r0, [r7, 0x18] lsls r0, 28 lsrs r0, 26 @@ -300,7 +300,7 @@ _080B3E4C: _080B3E50: movs r5, 0 _080B3E52: - ldr r0, =gUnknown_0855072C + ldr r0, =gIsTrainerInRange lsls r4, r5, 2 adds r4, r0 ldrb r1, [r7, 0x1D] @@ -702,7 +702,7 @@ c3_8081EDC: @ 80B4118 b _080B416C .pool _080B4150: - ldr r7, =gUnknown_0855073C + ldr r7, =gTrainerSeeFuncList _080B4152: movs r1, 0x8 ldrsh r0, [r4, r1] @@ -1186,7 +1186,7 @@ sub_80B44C8: @ 80B44C8 adds r0, 0x1 strh r0, [r4, 0x16] _080B44FA: - ldr r1, =gUnknown_0855076C + ldr r1, =gTrainerSeeFuncList2 movs r2, 0x8 ldrsh r0, [r4, r2] lsls r0, 2 @@ -1322,4 +1322,324 @@ _080B4616: .pool thumb_func_end sub_80B45D0 + thumb_func_start oei_exclamation_mark +oei_exclamation_mark: @ 80B4620 + push {lr} + ldr r0, =gSpriteTemplate_85507B4 + movs r1, 0 + movs r2, 0 + movs r3, 0x53 + bl CreateSpriteAtEnd + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080B4648 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + movs r1, 0 + movs r2, 0 + bl sub_80B46D8 +_080B4648: + movs r0, 0 + pop {r1} + bx r1 + .pool + thumb_func_end oei_exclamation_mark + + thumb_func_start sub_80B4658 +sub_80B4658: @ 80B4658 + push {lr} + ldr r0, =gSpriteTemplate_85507B4 + movs r1, 0 + movs r2, 0 + movs r3, 0x52 + bl CreateSpriteAtEnd + lsls r0, 24 + lsrs r1, r0, 24 + cmp r1, 0x40 + beq _080B4680 + lsls r0, r1, 4 + adds r0, r1 + lsls r0, 2 + ldr r1, =gSprites + adds r0, r1 + movs r1, 0x21 + movs r2, 0x1 + bl sub_80B46D8 +_080B4680: + movs r0, 0 + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B4658 + + thumb_func_start sub_80B4690 +sub_80B4690: @ 80B4690 + push {r4,lr} + ldr r0, =gSpriteTemplate_85507CC + movs r1, 0 + movs r2, 0 + movs r3, 0x52 + bl CreateSpriteAtEnd + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x40 + beq _080B46C6 + lsls r4, r0, 4 + adds r4, r0 + lsls r4, 2 + ldr r0, =gSprites + adds r4, r0 + adds r0, r4, 0 + movs r1, 0x2E + movs r2, 0 + bl sub_80B46D8 + ldrb r1, [r4, 0x5] + movs r0, 0xF + ands r0, r1 + movs r1, 0x20 + orrs r0, r1 + strb r0, [r4, 0x5] +_080B46C6: + movs r0, 0 + pop {r4} + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B4690 + + thumb_func_start sub_80B46D8 +@ void sub_80B46D8(struct obj *object, s16 a2, u8 a3) +sub_80B46D8: @ 80B46D8 + push {r4,lr} + lsls r2, 24 + lsrs r2, 24 + ldrb r4, [r0, 0x5] + movs r3, 0xD + negs r3, r3 + ands r3, r4 + movs r4, 0x4 + orrs r3, r4 + strb r3, [r0, 0x5] + movs r3, 0x3E + adds r3, r0 + mov r12, r3 + ldrb r3, [r3] + movs r4, 0x2 + orrs r3, r4 + mov r4, r12 + strb r3, [r4] + ldr r4, =gFieldEffectSpawnParams + ldr r3, [r4] + strh r3, [r0, 0x2E] + ldr r3, [r4, 0x4] + strh r3, [r0, 0x30] + ldr r3, [r4, 0x8] + strh r3, [r0, 0x32] + ldr r3, =0x0000fffb + strh r3, [r0, 0x34] + strh r1, [r0, 0x3C] + adds r1, r2, 0 + bl StartSpriteAnim + pop {r4} + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B46D8 + + thumb_func_start objc_exclamation_mark_probably +objc_exclamation_mark_probably: @ 80B4724 + push {r4,lr} + sub sp, 0x4 + adds r4, r0, 0 + ldrh r0, [r4, 0x2E] + lsls r0, 24 + lsrs r0, 24 + ldrh r1, [r4, 0x30] + lsls r1, 24 + lsrs r1, 24 + ldrh r2, [r4, 0x32] + lsls r2, 24 + lsrs r2, 24 + mov r3, sp + bl TryGetFieldObjectIdByLocalIdAndMap + lsls r0, 24 + cmp r0, 0 + bne _080B4756 + adds r0, r4, 0 + adds r0, 0x3F + ldrb r1, [r0] + movs r0, 0x10 + ands r0, r1 + cmp r0, 0 + beq _080B4764 +_080B4756: + ldrh r1, [r4, 0x3C] + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl FieldEffectStop + b _080B47B2 +_080B4764: + ldr r2, =gMapObjects + mov r0, sp + ldrb r1, [r0] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x4] + lsls r1, r0, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, =gSprites + adds r1, r0 + ldrh r3, [r4, 0x34] + ldrh r0, [r4, 0x36] + adds r2, r3, r0 + strh r2, [r4, 0x36] + ldrh r0, [r1, 0x20] + strh r0, [r4, 0x20] + ldrh r0, [r1, 0x22] + subs r0, 0x10 + strh r0, [r4, 0x22] + ldrh r0, [r1, 0x24] + strh r0, [r4, 0x24] + ldrh r0, [r1, 0x26] + adds r0, r2 + strh r0, [r4, 0x26] + lsls r2, 16 + asrs r2, 16 + cmp r2, 0 + beq _080B47B0 + adds r0, r3, 0x1 + strh r0, [r4, 0x34] + b _080B47B2 + .pool +_080B47B0: + strh r2, [r4, 0x34] +_080B47B2: + add sp, 0x4 + pop {r4} + pop {r0} + bx r0 + thumb_func_end objc_exclamation_mark_probably + + thumb_func_start sub_80B47BC +sub_80B47BC: @ 80B47BC + push {lr} + ldr r0, =gUnknown_02038BFC + ldrb r0, [r0] + cmp r0, 0 + beq _080B47D4 + ldr r0, =gUnknown_03006090 + ldrb r0, [r0, 0xC] + b _080B47D8 + .pool +_080B47D4: + ldr r0, =gUnknown_03006090 + ldrb r0, [r0] +_080B47D8: + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B47BC + + thumb_func_start sub_80B47E0 +sub_80B47E0: @ 80B47E0 + push {lr} + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bls _080B47EE + movs r0, 0 + b _080B4800 +_080B47EE: + cmp r0, 0 + beq _080B47FC + ldr r0, =gUnknown_03006090 + ldrb r0, [r0, 0xC] + b _080B4800 + .pool +_080B47FC: + ldr r0, =gUnknown_03006090 + ldrb r0, [r0] +_080B4800: + pop {r1} + bx r1 + .pool + thumb_func_end sub_80B47E0 + + thumb_func_start sub_80B4808 +sub_80B4808: @ 80B4808 + push {lr} + ldr r0, =gUnknown_030060AC + ldrb r0, [r0] + cmp r0, 0x1 + bne _080B4870 + ldr r2, =gUnknown_03006090 + ldr r0, =gUnknown_03006080 + ldrh 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 + ldr r1, =gMapObjects + adds r0, r1 + ldrb r0, [r0, 0x18] + lsls r0, 28 + lsrs r0, 28 + bl GetOppositeDirection + lsls r0, 24 + lsrs r0, 24 + bl GetFaceDirectionAnimId + ldr r3, =gUnknown_03006084 + strb r0, [r3] + movs r0, 0xFE + strb r0, [r3, 0x1] + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldrb r1, [r0, 0x5] + ldrb r2, [r0, 0x4] + movs r0, 0xFF + bl exec_movement + b _080B489E + .pool +_080B4870: + ldr r0, =gPlayerAvatar + ldrb r1, [r0, 0x5] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 2 + ldr r1, =gMapObjects + adds r0, r1 + ldrb r0, [r0, 0x18] + lsls r0, 28 + lsrs r0, 28 + bl GetFaceDirectionAnimId + ldr r3, =gUnknown_03006084 + strb r0, [r3] + movs r0, 0xFE + strb r0, [r3, 0x1] + ldr r0, =gSaveBlock1Ptr + ldr r0, [r0] + ldrb r1, [r0, 0x5] + ldrb r2, [r0, 0x4] + movs r0, 0xFF + bl exec_movement +_080B489E: + movs r0, 0xFF + bl sub_809BE48 + pop {r0} + bx r0 + .pool + thumb_func_end sub_80B4808 + .align 2, 0 @ Don't pad with nop. diff --git a/data/bike.s b/data/bike.s index 26bcc8745..ffb33e52b 100644 --- a/data/bike.s +++ b/data/bike.s @@ -5,19 +5,54 @@ .align 2, 0 gUnknown_0859744C:: @ 859744C - .incbin "baserom.gba", 0x59744c, 0x10 + .4byte sub_8119224 + .4byte sub_8119238 + .4byte sub_8119280 + .4byte sub_8119344 + .align 2 gUnknown_0859745C:: @ 859745C - .incbin "baserom.gba", 0x59745c, 0xc + .4byte PlayerGoSpeed0 + .4byte PlayerGoSpeed1 + .4byte PlayerGoSpeed3 + .align 2 gUnknown_08597468:: @ 8597468 - .incbin "baserom.gba", 0x597468, 0x34 + .4byte sub_81197E4 + .4byte sub_81197F4 + .4byte sub_8119830 + .4byte sub_81198C0 + .4byte sub_81198FC + .4byte sub_8119938 + .4byte sub_8119974 + .4byte sub_81199B0 + .4byte sub_8119A24 + .4byte sub_8119A94 + .4byte sub_8119AA4 + .4byte sub_8119B34 + .4byte sub_8119BC4 + .align 2 gUnknown_0859749C:: @ 859749C - .incbin "baserom.gba", 0x59749c, 0x1c + .4byte CheckMovementInputAcroBikeNormal + .4byte CheckMovementInputAcroBikeChangingDirection + .4byte CheckMovementInputAcroBikeStandingWheelie + .4byte CheckMovementInputAcroBikeBunnyHop + .4byte CheckMovementInputAcroBikeMovingWheelie + .4byte CheckMovementInputAcroBikeUnknownMode5 + .4byte CheckMovementInputAcroBikeUnknownMode6 + .align 2 gUnknown_085974B8:: @ 85974B8 - .incbin "baserom.gba", 0x5974b8, 0x8 + .2byte 0x0001, 0x0002, 0x0004 + .align 1 +gUnknown_085974BE:: @ 85974BE + .2byte 0x0004 + + .align 2 gUnknown_085974C0:: @ 85974C0 - .incbin "baserom.gba", 0x5974c0, 0x70 + .4byte 0x00000001, 0x00000002, 0x0000000f, 0x0000000f, gUnknown_085974BE, gUnknown_085974BE, 0x00000001 + .4byte 0x00000002, 0x00000002, 0x0000000f, 0x0000000f, gUnknown_085974BE, gUnknown_085974BE, 0x00000002 + .4byte 0x00000003, 0x00000002, 0x0000000f, 0x0000000f, gUnknown_085974BE, gUnknown_085974BE, 0x00000003 + .4byte 0x00000004, 0x00000002, 0x0000000f, 0x0000000f, gUnknown_085974BE, gUnknown_085974BE, 0x00000004 diff --git a/data/cable_club.s b/data/cable_club.s index 4961cb1cc..f62b0b90a 100644 --- a/data/cable_club.s +++ b/data/cable_club.s @@ -4,8 +4,13 @@ .section .rodata .align 2, 0 + .align 2 gUnknown_08550594:: @ 8550594 - .incbin "baserom.gba", 0x550594, 0x8 + window_template 0x00, 0x10, 0x0b, 0x0b, 0x02, 0x0f, 0x0125 + .align 2 gUnknown_0855059C:: @ 855059C - .incbin "baserom.gba", 0x55059c, 0x190 + .4byte gText_BronzeCard + .4byte gText_CopperCard + .4byte gText_SilverCard + .4byte gText_GoldCard diff --git a/data/fldeff_emotion.s b/data/fldeff_emotion.s deleted file mode 100644 index f2c90d637..000000000 --- a/data/fldeff_emotion.s +++ /dev/null @@ -1,11 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2, 0 - -gUnknown_085507B4:: @ 85507B4 - .incbin "baserom.gba", 0x5507b4, 0x18 - -gUnknown_085507CC:: @ 85507CC - .incbin "baserom.gba", 0x5507cc, 0x18 diff --git a/data/strings.s b/data/strings.s index 5fb8ca902..78e936b13 100644 --- a/data/strings.s +++ b/data/strings.s @@ -4452,16 +4452,16 @@ gText_ButtonTypeLEqualsA:: @ 85EE65D gText_XPLink:: @ 85EE667 .string "{STR_VAR_1}P LINK$" -gUnknown_085EE670:: @ 85EE670 +gText_BronzeCard:: @ 85EE670 .string "BRONZE$" -gUnknown_085EE677:: @ 85EE677 +gText_CopperCard:: @ 85EE677 .string "COPPER$" -gUnknown_085EE67E:: @ 85EE67E +gText_SilverCard:: @ 85EE67E .string "SILVER$" -gUnknown_085EE685:: @ 85EE685 +gText_GoldCard:: @ 85EE685 .string "GOLD$" gText_Day:: @ 85EE68A diff --git a/data/trainer_see.s b/data/trainer_see.s index 7480cb290..79c1a9f98 100644 --- a/data/trainer_see.s +++ b/data/trainer_see.s @@ -2,13 +2,82 @@ .include "constants/constants.inc" .section .rodata - .align 2, 0 -gUnknown_0855072C:: @ 855072C - .incbin "baserom.gba", 0x55072c, 0x10 + .align 2 +gEmotion_ExclamationMarkGfx:: @ 85505AC + .incbin "graphics/misc/emotion_exclamation.4bpp" -gUnknown_0855073C:: @ 855073C - .incbin "baserom.gba", 0x55073c, 0x30 + .align 2 +gEmotion_QuestionMarkGfx:: @ 855062C + .incbin "graphics/misc/emotion_question.4bpp" -gUnknown_0855076C:: @ 855076C - .incbin "baserom.gba", 0x55076c, 0x48 + .align 2 +gEmotion_HeartGfx:: @ 85506AC + .incbin "graphics/misc/emotion_heart.4bpp" + + .align 2 +gIsTrainerInRange:: @ 855072C + .4byte IsTrainerInRangeSouth + .4byte IsTrainerInRangeNorth + .4byte IsTrainerInRangeWest + .4byte IsTrainerInRangeEast + + .align 2 +gTrainerSeeFuncList:: @ 855073C + .4byte sub_80B4178 + .4byte sub_80B417C + .4byte sub_80B41C0 + .4byte sub_80B4200 + .4byte sub_80B425C + .4byte sub_80B4318 + .4byte sub_80B435C + .4byte sub_80B4390 + .4byte sub_80B43AC + .4byte sub_80B43E0 + .4byte sub_80B4438 + .4byte sub_80B44AC + + .align 2 +gTrainerSeeFuncList2:: @ 855076C + .4byte sub_80B43AC + .4byte sub_80B43E0 + .4byte sub_80B4438 + .4byte sub_80B44AC + + .align 2 +gOamData_855077C:: @ 855077C + .2byte 0x0000 + .2byte 0x4000 + .2byte 0x0400 + + .align 2 +gSpriteImageTable_8550784:: @ 8550784 + obj_tiles gEmotion_ExclamationMarkGfx, 0x0080, 0x0000 + obj_tiles gEmotion_QuestionMarkGfx, 0x0080, 0x0000 + + .align 2 +gSpriteImageTable_8550794:: @ 8550794 + obj_tiles gEmotion_HeartGfx, 0x0080, 0x0000 + + .align 2 +gSpriteAnim_855079C:: @ 855079C + obj_image_anim_frame 0, 60 + obj_image_anim_end + + .align 2 +gSpriteAnim_85507A4:: @ 85507A4 + obj_image_anim_frame 1, 60 + obj_image_anim_end + + .align 2 +gSpriteAnimTable_85507AC:: @ 85507AC + .4byte gSpriteAnim_855079C + .4byte gSpriteAnim_85507A4 + + .align 2 +gSpriteTemplate_85507B4:: @ 85507B4 + spr_template 0xffff, 0xffff, gOamData_855077C, gSpriteAnimTable_85507AC, gSpriteImageTable_8550784, gDummySpriteAffineAnimTable, objc_exclamation_mark_probably + + .align 2 +gSpriteTemplate_85507CC:: @ 85507CC + spr_template 0xffff, 0x1004, gOamData_855077C, gSpriteAnimTable_85507AC, gSpriteImageTable_8550794, gDummySpriteAffineAnimTable, objc_exclamation_mark_probably diff --git a/graphics/misc/emotion_exclamation.png b/graphics/misc/emotion_exclamation.png new file mode 100644 index 000000000..595566d2f Binary files /dev/null and b/graphics/misc/emotion_exclamation.png differ diff --git a/graphics/misc/emotion_heart.png b/graphics/misc/emotion_heart.png new file mode 100644 index 000000000..9995984b4 Binary files /dev/null and b/graphics/misc/emotion_heart.png differ diff --git a/graphics/misc/emotion_question.png b/graphics/misc/emotion_question.png new file mode 100644 index 000000000..7376fd058 Binary files /dev/null and b/graphics/misc/emotion_question.png differ diff --git a/ld_script.txt b/ld_script.txt index c2f8af595..e0fc0d0c9 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -123,7 +123,6 @@ SECTIONS { asm/battle_setup.o(.text); asm/cable_club.o(.text); asm/trainer_see.o(.text); - asm/fldeff_emotion.o(.text); asm/wild_encounter.o(.text); asm/field_effect.o(.text); asm/unknown_task.o(.text); @@ -365,7 +364,6 @@ SECTIONS { data/battle_setup.o(.rodata); data/cable_club.o(.rodata); data/trainer_see.o(.rodata); - data/fldeff_emotion.o(.rodata); data/wild_encounter.o(.rodata); data/field_effect.o(.rodata); data/option_menu.o(.rodata); -- cgit v1.2.3 From cfc70c980630525d660156c4e732ae10d9f57729 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Wed, 4 Oct 2017 02:38:25 -0500 Subject: Extract baseroms from miscellaneous files Had to leave some unfinished due to complexity at the moment --- asm/battle_1.s | 10 +- asm/battle_7.s | 4 +- asm/battle_controller_linkopponent.s | 4 +- asm/battle_controller_linkpartner.s | 2 +- asm/battle_controller_opponent.s | 4 +- asm/battle_controller_player.s | 8 +- asm/battle_controller_player_partner.s | 4 +- asm/battle_controller_recorded_opponent.s | 2 +- asm/battle_controller_recorded_player.s | 4 +- asm/battle_controller_safari.s | 2 +- asm/battle_controller_wally.s | 4 +- asm/main_menu.s | 14 +- asm/reshow_battle_screen.s | 4 +- asm/rom_80A5C6C.s | 4 +- data/battle_1.s | 12 + data/battle_anims.s | 742 +++- data/battle_message.s | 14 + data/data2b.s | 4921 ++++++++++++++++++++++++++- data/enemy_mon_elevation.inc | 415 +++ data/fanfares.s | 20 +- data/graphics.s | 118 +- data/graphics/trainers/back_pic_coords.inc | 10 + data/graphics/trainers/front_pic_coords.inc | 95 + data/main_menu.s | 141 + data/reset_rtc_screen.s | 2 +- data/strings.s | 84 +- data/title_screen.s | 11 +- data/trainer_money.inc | 59 + data/trainer_see.s | 6 +- data/type_effectiveness.inc | 119 + graphics/birch_speech/bg0.pal | 19 + graphics/birch_speech/bg1.pal | 19 + graphics/birch_speech/bg2.pal | 11 + graphics/birch_speech/map.bin | Bin 0 -> 1280 bytes graphics/birch_speech/shadow.png | Bin 0 -> 433 bytes graphics/link/minigame_digits.pal | 19 + graphics/link/minigame_digits.png | Bin 0 -> 264 bytes graphics/link/minigame_digits2.png | Bin 0 -> 296 bytes graphics/misc/main_menu_bg.pal | 19 + graphics/misc/main_menu_text.pal | 19 + graphics/title_screen/unk_853EF78.pal | 115 + ld_script.txt | 2 + src/util.c | 2 +- 43 files changed, 6817 insertions(+), 247 deletions(-) create mode 100644 data/battle_1.s create mode 100644 data/enemy_mon_elevation.inc create mode 100644 data/graphics/trainers/back_pic_coords.inc create mode 100644 data/graphics/trainers/front_pic_coords.inc create mode 100644 data/main_menu.s create mode 100644 data/trainer_money.inc create mode 100644 data/type_effectiveness.inc create mode 100644 graphics/birch_speech/bg0.pal create mode 100644 graphics/birch_speech/bg1.pal create mode 100644 graphics/birch_speech/bg2.pal create mode 100644 graphics/birch_speech/map.bin create mode 100644 graphics/birch_speech/shadow.png create mode 100644 graphics/link/minigame_digits.pal create mode 100644 graphics/link/minigame_digits.png create mode 100644 graphics/link/minigame_digits2.png create mode 100644 graphics/misc/main_menu_bg.pal create mode 100644 graphics/misc/main_menu_text.pal create mode 100644 graphics/title_screen/unk_853EF78.pal diff --git a/asm/battle_1.s b/asm/battle_1.s index 636bafbea..d57f91d37 100644 --- a/asm/battle_1.s +++ b/asm/battle_1.s @@ -1547,7 +1547,7 @@ _080358E0: .4byte _08035A40 .4byte _08035A70 _08035904: - ldr r4, =gUnknown_0831ABA8 + ldr r4, =gBattleTerrainTable ldr r5, =gBattleTerrain ldrb r1, [r5] lsls r0, r1, 2 @@ -2632,7 +2632,7 @@ _08036350: lsls r0, 24 cmp r0, 0 bne _0803639C - ldr r4, =gUnknown_0831ABA8 + ldr r4, =gBattleTerrainTable ldr r5, =gBattleTerrain ldrb r1, [r5] lsls r0, r1, 2 @@ -2778,7 +2778,7 @@ _080364A8: .4byte _08036510 .4byte _08036518 _080364CC: - ldr r2, =gUnknown_0831ABA8 + ldr r2, =gBattleTerrainTable ldr r0, =gBattleTerrain ldrb r1, [r0] lsls r0, r1, 2 @@ -2888,7 +2888,7 @@ _080365B4: .4byte _0803661C .4byte _08036624 _080365D8: - ldr r2, =gUnknown_0831ABA8 + ldr r2, =gBattleTerrainTable ldr r0, =gBattleTerrain ldrb r1, [r0] lsls r0, r1, 2 @@ -3003,7 +3003,7 @@ _080366C8: .4byte _08036738 .4byte _08036740 _080366EC: - ldr r2, =gUnknown_0831ABA8 + ldr r2, =gBattleTerrainTable ldr r0, =gBattleTerrain ldrb r1, [r0] lsls r0, r1, 2 diff --git a/asm/battle_7.s b/asm/battle_7.s index 011559819..0b5ca514f 100644 --- a/asm/battle_7.s +++ b/asm/battle_7.s @@ -3365,7 +3365,7 @@ _0805EDE4: adds r4, r1, 0 cmp r0, 0 beq _0805EE06 - ldr r0, =gUnknown_08305DCC + ldr r0, =gEnemyMonElevation ldrh r1, [r3, 0x2] adds r1, r0 ldrb r0, [r1] @@ -3441,7 +3441,7 @@ sub_805EE54: @ 805EE54 beq _0805EE7E adds r5, r0, 0 _0805EE7E: - ldr r0, =gUnknown_08305DCC + ldr r0, =gEnemyMonElevation adds r0, r5, r0 ldrb r0, [r0] cmp r0, 0 diff --git a/asm/battle_controller_linkopponent.s b/asm/battle_controller_linkopponent.s index 5a762a174..8ea32eca0 100644 --- a/asm/battle_controller_linkopponent.s +++ b/asm/battle_controller_linkopponent.s @@ -4283,7 +4283,7 @@ _0806694C: bl sub_806A12C ldr r6, =gUnknown_0202499C mov r9, r7 - ldr r1, =gUnknown_083054E0 + ldr r1, =gTrainerFrontPicCoords mov r2, r8 lsls r0, r2, 2 adds r0, r1 @@ -4411,7 +4411,7 @@ _08066A76: mov r0, r8 bl sub_806A12C ldr r0, =gUnknown_0202499C - ldr r2, =gUnknown_083054E0 + ldr r2, =gTrainerFrontPicCoords mov r3, r8 lsls r1, r3, 2 adds r1, r2 diff --git a/asm/battle_controller_linkpartner.s b/asm/battle_controller_linkpartner.s index 3a1b21ed7..504ba6b5c 100644 --- a/asm/battle_controller_linkpartner.s +++ b/asm/battle_controller_linkpartner.s @@ -3706,7 +3706,7 @@ _0814D002: bl sub_806A12C ldr r6, =gUnknown_0202499C mov r8, r7 - ldr r0, =gUnknown_08305D2C + ldr r0, =gTrainerBackPicCoords lsls r4, 2 adds r4, r0 ldrb r0, [r4] diff --git a/asm/battle_controller_opponent.s b/asm/battle_controller_opponent.s index 69d4776d4..0910fc8e2 100644 --- a/asm/battle_controller_opponent.s +++ b/asm/battle_controller_opponent.s @@ -4339,7 +4339,7 @@ _080617CA: bl sub_806A12C ldr r6, =gUnknown_0202499C mov r9, r7 - ldr r1, =gUnknown_083054E0 + ldr r1, =gTrainerFrontPicCoords mov r2, r8 lsls r0, r2, 2 adds r0, r1 @@ -4564,7 +4564,7 @@ _080619DE: mov r0, r8 bl sub_806A12C ldr r0, =gUnknown_0202499C - ldr r2, =gUnknown_083054E0 + ldr r2, =gTrainerFrontPicCoords mov r3, r8 lsls r1, r3, 2 adds r1, r2 diff --git a/asm/battle_controller_player.s b/asm/battle_controller_player.s index 5f7e1b954..d3b29ffe8 100644 --- a/asm/battle_controller_player.s +++ b/asm/battle_controller_player.s @@ -7371,11 +7371,11 @@ _0805B5E0: beq _0805B618 movs r0, 0x5A mov r9, r0 - ldr r1, =gUnknown_083054E0 + ldr r1, =gTrainerFrontPicCoords b _0805B642 .pool _0805B618: - ldr r1, =gUnknown_08305D2C + ldr r1, =gTrainerBackPicCoords lsls r0, r4, 2 adds r0, r1 ldrb r1, [r0] @@ -7392,7 +7392,7 @@ _0805B618: _0805B63C: movs r0, 0x50 mov r9, r0 - ldr r1, =gUnknown_08305D2C + ldr r1, =gTrainerBackPicCoords _0805B642: lsls r0, r4, 2 adds r0, r1 @@ -7733,7 +7733,7 @@ _0805B926: adds r0, r4, 0 bl sub_806A12C ldr r0, =gUnknown_0202499C - ldr r1, =gUnknown_08305D2C + ldr r1, =gTrainerBackPicCoords lsls r4, 2 adds r4, r1 ldrb r1, [r4] diff --git a/asm/battle_controller_player_partner.s b/asm/battle_controller_player_partner.s index 784eacab1..32e3ac5d1 100644 --- a/asm/battle_controller_player_partner.s +++ b/asm/battle_controller_player_partner.s @@ -4182,7 +4182,7 @@ sub_81BD37C: @ 81BD37C movs r4, 0x7 movs r0, 0x5A mov r9, r0 - ldr r0, =gUnknown_08305D2C + ldr r0, =gTrainerBackPicCoords ldrb r1, [r0, 0x1C] b _081BD3BE .pool @@ -4193,7 +4193,7 @@ _081BD3A8: lsrs r4, r0, 24 movs r0, 0x20 mov r9, r0 - ldr r1, =gUnknown_083054E0 + ldr r1, =gTrainerFrontPicCoords lsls r0, r4, 2 adds r0, r1 ldrb r1, [r0] diff --git a/asm/battle_controller_recorded_opponent.s b/asm/battle_controller_recorded_opponent.s index 90928e7d4..cde1bc128 100644 --- a/asm/battle_controller_recorded_opponent.s +++ b/asm/battle_controller_recorded_opponent.s @@ -4096,7 +4096,7 @@ _0818892C: bl sub_806A12C ldr r6, =gUnknown_0202499C mov r9, r7 - ldr r1, =gUnknown_083054E0 + ldr r1, =gTrainerFrontPicCoords mov r2, r8 lsls r0, r2, 2 adds r0, r1 diff --git a/asm/battle_controller_recorded_player.s b/asm/battle_controller_recorded_player.s index 534f34068..f24cf8c4a 100644 --- a/asm/battle_controller_recorded_player.s +++ b/asm/battle_controller_recorded_player.s @@ -4033,14 +4033,14 @@ _0818BD72: beq _0818BD9C movs r0, 0x5A mov r9, r0 - ldr r1, =gUnknown_083054E0 + ldr r1, =gTrainerFrontPicCoords b _0818BD9E .pool _0818BD98: movs r0, 0x50 mov r9, r0 _0818BD9C: - ldr r1, =gUnknown_08305D2C + ldr r1, =gTrainerBackPicCoords _0818BD9E: lsls r0, r4, 2 adds r0, r1 diff --git a/asm/battle_controller_safari.s b/asm/battle_controller_safari.s index cc149ea4f..a8187d642 100644 --- a/asm/battle_controller_safari.s +++ b/asm/battle_controller_safari.s @@ -580,7 +580,7 @@ sub_8159800: @ 8159800 adds r0, r6, 0 bl sub_806A12C ldr r0, =gUnknown_0202499C - ldr r2, =gUnknown_08305D2C + ldr r2, =gTrainerBackPicCoords ldr r1, [r4] ldrb r1, [r1, 0x8] lsls r1, 2 diff --git a/asm/battle_controller_wally.s b/asm/battle_controller_wally.s index eab717466..9f3b4ce56 100644 --- a/asm/battle_controller_wally.s +++ b/asm/battle_controller_wally.s @@ -3039,7 +3039,7 @@ sub_8169EC8: @ 8169EC8 movs r0, 0x6 bl sub_806A12C ldr r0, =gUnknown_0202499C - ldr r1, =gUnknown_08305D2C + ldr r1, =gTrainerBackPicCoords ldrb r1, [r1, 0x18] movs r2, 0x8 subs r2, r1 @@ -3124,7 +3124,7 @@ dp01t_07_6_: @ 8169F94 movs r0, 0x6 bl sub_806A12C ldr r0, =gUnknown_0202499C - ldr r1, =gUnknown_08305D2C + ldr r1, =gTrainerBackPicCoords ldrb r1, [r1, 0x18] movs r2, 0x8 subs r2, r1 diff --git a/asm/main_menu.s b/asm/main_menu.s index 40466ae1b..6194f0487 100644 --- a/asm/main_menu.s +++ b/asm/main_menu.s @@ -119,11 +119,11 @@ InitMainMenu: @ 802F6F4 str r0, [r1, 0x8] ldr r0, [r1, 0x8] bl ResetPaletteFade - ldr r0, =gUnknown_082FF0A0 + ldr r0, =gMainMenuBgPal movs r1, 0 movs r2, 0x20 bl LoadPalette - ldr r0, =gUnknown_082FF0C0 + ldr r0, =gMainMenuTextPal movs r1, 0xF0 movs r2, 0x20 bl LoadPalette @@ -1914,7 +1914,7 @@ task_new_game_prof_birch_speech_1: @ 80307B0 movs r0, 0x54 movs r1, 0 bl SetGpuReg - ldr r0, =gUnknown_082FED3C + ldr r0, =gBirchIntroShadowGfx movs r1, 0xC0 lsls r1, 19 bl LZ77UnCompVram @@ -3679,7 +3679,7 @@ new_game_prof_birch_speech_part2_start: @ 8031678 str r0, [r1, 0x8] ldr r0, [r1, 0x8] bl ResetPaletteFade - ldr r0, =gUnknown_082FED3C + ldr r0, =gBirchIntroShadowGfx adds r1, r4, 0 bl LZ77UnCompVram ldr r0, =gUnknown_082FEEF0 @@ -3689,7 +3689,7 @@ new_game_prof_birch_speech_part2_start: @ 8031678 movs r1, 0 movs r2, 0x40 bl LoadPalette - ldr r0, =gUnknown_082FF01A + ldr r0, =gUnknown_082FF018+2 movs r1, 0x1 movs r2, 0x10 bl LoadPalette @@ -4459,11 +4459,11 @@ set_default_player_name: @ 8031DC4 adds r5, r1, 0 cmp r0, 0 bne _08031DE4 - ldr r1, =gUnknown_082FF128 + ldr r1, =gMalePresetNames b _08031DE6 .pool _08031DE4: - ldr r1, =gUnknown_082FF178 + ldr r1, =gFemalePresetNames _08031DE6: lsls r0, r2, 2 adds r0, r1 diff --git a/asm/reshow_battle_screen.s b/asm/reshow_battle_screen.s index 42ba43ec0..2066c37ed 100644 --- a/asm/reshow_battle_screen.s +++ b/asm/reshow_battle_screen.s @@ -618,7 +618,7 @@ _080A986C: adds r0, r4, 0 bl sub_806A12C ldr r6, =gUnknown_0202499C - ldr r1, =gUnknown_08305D2C + ldr r1, =gTrainerBackPicCoords ldr r0, [r5] ldrb r0, [r0, 0x8] lsls r0, 2 @@ -656,7 +656,7 @@ _080A98D0: movs r0, 0x6 bl sub_806A12C ldr r5, =gUnknown_0202499C - ldr r0, =gUnknown_08305D2C + ldr r0, =gTrainerBackPicCoords ldrb r0, [r0, 0x18] movs r4, 0x8 subs r4, r0 diff --git a/asm/rom_80A5C6C.s b/asm/rom_80A5C6C.s index 267045179..0f6f5a623 100644 --- a/asm/rom_80A5C6C.s +++ b/asm/rom_80A5C6C.s @@ -419,11 +419,11 @@ _080A5FE8: lsls r0, 1 cmp r4, r0 bls _080A5FF8 - ldr r0, =gUnknown_08305DCC + ldr r0, =gEnemyMonElevation b _080A5FFC .pool _080A5FF8: - ldr r0, =gUnknown_08305DCC + ldr r0, =gEnemyMonElevation adds r0, r7, r0 _080A5FFC: ldrb r5, [r0] diff --git a/data/battle_1.s b/data/battle_1.s new file mode 100644 index 000000000..37f68bfd6 --- /dev/null +++ b/data/battle_1.s @@ -0,0 +1,12 @@ + + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + + .align 2 +gUnknown_082FF1C8:: @ 82FF1C8 + .byte 0x01, 0x04, 0x10, 0x40 + .byte 0x02, 0x04, 0x08, 0x20 + .byte 0x02, 0x04, 0x08, 0x20 + .byte 0x00, 0x00, 0x00, 0x00 diff --git a/data/battle_anims.s b/data/battle_anims.s index 6b48bcd2a..471394fe8 100644 --- a/data/battle_anims.s +++ b/data/battle_anims.s @@ -4,6 +4,8 @@ .section .rodata .align 2, 0 + @ only partially done because this file terrifies me + gUnknown_08524904:: @ 8524904 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00 @@ -291,62 +293,740 @@ gUnknown_08524B34:: @ 8524B34 gUnknown_08524B3C:: @ 8524B3C .byte 0x00, 0x87, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 + .align 2 gUnknown_08524B44:: @ 8524B44 - .incbin "baserom.gba", 0x524b44, 0x1d0 - + obj_tiles 0x08c02538, 0x0200, 0x2710 + obj_tiles 0x08c1c6e0, 0x0300, 0x2711 + obj_tiles 0x08c20784, 0x0200, 0x2712 + obj_tiles 0x08c025e8, 0x0100, 0x2713 + obj_tiles 0x08c0265c, 0x0200, 0x2714 + obj_tiles 0x08c0270c, 0x0400, 0x2715 + obj_tiles 0x08c027e0, 0x0180, 0x2716 + obj_tiles 0x08c029cc, 0x0800, 0x2717 + obj_tiles 0x08c02b68, 0x0020, 0x2718 + obj_tiles 0x08c02fa4, 0x0400, 0x2719 + obj_tiles 0x08c02bc4, 0x1200, 0x271a + obj_tiles 0x08c032ac, 0x0180, 0x271b + obj_tiles 0x08c0334c, 0x0080, 0x271c + obj_tiles 0x08c03438, 0x0080, 0x271d + obj_tiles 0x08c1fbd4, 0x0280, 0x271e + obj_tiles 0x08c03484, 0x0080, 0x271f + obj_tiles 0x08c03518, 0x0100, 0x2720 + obj_tiles 0x08c03598, 0x0020, 0x2721 + obj_tiles 0x08c24d7c, 0x0080, 0x2722 + obj_tiles 0x08c035f8, 0x0400, 0x2723 + obj_tiles 0x08c036b8, 0x0200, 0x2724 + obj_tiles 0x08c03a28, 0x0a00, 0x2725 + obj_tiles 0x08c03a28, 0x0a00, 0x2726 + obj_tiles 0x08c037d4, 0x0380, 0x2727 + obj_tiles 0x08c03ea0, 0x0300, 0x2728 + obj_tiles 0x08c03db0, 0x0a00, 0x2729 + obj_tiles 0x08c04494, 0x0a00, 0x272a + obj_tiles 0x08c0481c, 0x0a00, 0x272b + obj_tiles 0x08c04b40, 0x0a00, 0x272c + obj_tiles 0x08c04e90, 0x0a00, 0x272d + obj_tiles 0x08c05170, 0x0a00, 0x272e + obj_tiles 0x08c03f80, 0x0e00, 0x272f + obj_tiles 0x08c043a8, 0x0380, 0x2730 + obj_tiles 0x08c0557c, 0x1000, 0x2731 + obj_tiles 0x08c05eec, 0x0800, 0x2732 + obj_tiles 0x08c062b8, 0x0a00, 0x2733 + obj_tiles 0x08c06678, 0x0800, 0x2734 + obj_tiles 0x08c06a4c, 0x0a00, 0x2735 + obj_tiles 0x08c07964, 0x0a00, 0x2736 + obj_tiles 0x08c07b88, 0x0a00, 0x2737 + obj_tiles 0x08c07e84, 0x0a00, 0x2738 + obj_tiles 0x08c08090, 0x0a00, 0x2739 + obj_tiles 0x08c082c4, 0x0a00, 0x273a + obj_tiles 0x08c085bc, 0x0a00, 0x273b + obj_tiles 0x08c08a0c, 0x0a00, 0x273c + obj_tiles 0x08c08ca0, 0x0a00, 0x273d + obj_tiles 0x08c09604, 0x1000, 0x273e + obj_tiles 0x08c09604, 0x1000, 0x273f + obj_tiles 0x08c09cf0, 0x1000, 0x2740 + obj_tiles 0x08c09cf0, 0x1000, 0x2741 + obj_tiles 0x08c09ffc, 0x0200, 0x2742 + obj_tiles 0x08c0a09c, 0x0200, 0x2743 + obj_tiles 0x08c0a148, 0x0200, 0x2744 + obj_tiles 0x08c2e830, 0x0800, 0x2745 + obj_tiles 0x08c0a3a8, 0x0080, 0x2746 + obj_tiles 0x08c0a8bc, 0x0200, 0x2747 + obj_tiles 0x08c0a3ec, 0x1000, 0x2748 + obj_tiles 0x08c0a980, 0x0180, 0x2749 + + .align 2 gUnknown_08524D14:: @ 8524D14 - .incbin "baserom.gba", 0x524d14, 0x270 - + obj_tiles 0x08c0aa2c, 0x0c00, 0x274a + obj_tiles 0x08c0aebc, 0x0100, 0x274b + obj_tiles 0x08c0af38, 0x0040, 0x274c + obj_tiles 0x08c0af7c, 0x0180, 0x274d + obj_tiles 0x08c0b04c, 0x0800, 0x274e + obj_tiles 0x08c0b444, 0x0480, 0x274f + obj_tiles 0x08c23104, 0x0200, 0x2750 + obj_tiles 0x08c0b6bc, 0x0200, 0x2751 + obj_tiles 0x08c0b7f0, 0x0100, 0x2752 + obj_tiles 0x08c0b6bc, 0x0200, 0x2753 + obj_tiles 0x08c0b6bc, 0x0200, 0x2754 + obj_tiles 0x08c0b6bc, 0x0200, 0x2755 + obj_tiles 0x08c0b864, 0x0200, 0x2756 + obj_tiles 0x08c0b90c, 0x0a00, 0x2757 + obj_tiles 0x08c0bb38, 0x0300, 0x2758 + obj_tiles 0x08c0bc20, 0x0180, 0x2759 + obj_tiles 0x08c1b29c, 0x00a0, 0x275a + obj_tiles 0x08c0bd5c, 0x0700, 0x275b + obj_tiles 0x08c14cec, 0x0400, 0x275c + obj_tiles 0x08c14f50, 0x0200, 0x275d + obj_tiles 0x08c0bffc, 0x0300, 0x275e + obj_tiles 0x08c0c1bc, 0x0c00, 0x275f + obj_tiles 0x08c0c5ec, 0x0a00, 0x2760 + obj_tiles 0x08c0c974, 0x0080, 0x2761 + obj_tiles 0x08c0cb90, 0x0040, 0x2762 + obj_tiles 0x08c0ce18, 0x0e00, 0x2763 + obj_tiles 0x08c0d2bc, 0x0e00, 0x2764 + obj_tiles 0x08c0d680, 0x0280, 0x2765 + obj_tiles 0x08c0d738, 0x0200, 0x2766 + obj_tiles 0x08c24cfc, 0x0080, 0x2767 + obj_tiles 0x08c0d8a8, 0x00c0, 0x2768 + obj_tiles 0x08c0d8f8, 0x0a00, 0x2769 + obj_tiles 0x08c0db6c, 0x0200, 0x276a + obj_tiles 0x08c0dbfc, 0x0180, 0x276b + obj_tiles 0x08c0dd30, 0x0080, 0x276c + obj_tiles 0x08c0ddac, 0x1000, 0x276d + obj_tiles 0x08c0e47c, 0x0a00, 0x276e + obj_tiles 0x08c0e620, 0x0180, 0x276f + obj_tiles 0x08c0e6d0, 0x0380, 0x2770 + obj_tiles 0x08c0e840, 0x0c00, 0x2771 + obj_tiles 0x08c0ea20, 0x0200, 0x2772 + obj_tiles 0x08c27cec, 0x0200, 0x2773 + obj_tiles 0x08c0eb58, 0x0200, 0x2774 + obj_tiles 0x08c0ec58, 0x0200, 0x2775 + obj_tiles 0x08c0ed88, 0x0400, 0x2776 + obj_tiles 0x08c0ef20, 0x0080, 0x2777 + obj_tiles 0x08c0ef8c, 0x0400, 0x2778 + obj_tiles 0x08c0f174, 0x0c00, 0x2779 + obj_tiles 0x08c0f720, 0x0200, 0x277a + obj_tiles 0x08c0f810, 0x1000, 0x277b + obj_tiles 0x08c0fbe4, 0x0a00, 0x277c + obj_tiles 0x08c0ff68, 0x0020, 0x277d + obj_tiles 0x08c0ffb8, 0x0e00, 0x277e + obj_tiles 0x08c1039c, 0x0080, 0x277f + obj_tiles 0x08c10404, 0x0a00, 0x2780 + obj_tiles 0x08c10754, 0x0400, 0x2781 + obj_tiles 0x08c109e8, 0x0200, 0x2782 + obj_tiles 0x08c115e4, 0x0700, 0x2783 + obj_tiles 0x08c12e88, 0x0800, 0x2784 + obj_tiles 0x08c1315c, 0x0a00, 0x2785 + obj_tiles 0x08c133b4, 0x0600, 0x2786 + obj_tiles 0x08c13568, 0x0800, 0x2787 + obj_tiles 0x08c13820, 0x0200, 0x2788 + obj_tiles 0x08c1393c, 0x0040, 0x2789 + obj_tiles 0x08c1398c, 0x0180, 0x278a + obj_tiles 0x08c13aa4, 0x0600, 0x278b + obj_tiles 0x08c13be0, 0x0600, 0x278c + obj_tiles 0x08c13ea0, 0x0200, 0x278d + obj_tiles 0x08c13fb4, 0x0080, 0x278e + obj_tiles 0x08c1403c, 0x0200, 0x278f + obj_tiles 0x08c14200, 0x0800, 0x2790 + obj_tiles 0x08c1448c, 0x0080, 0x2791 + obj_tiles 0x08c144f0, 0x0a00, 0x2792 + obj_tiles 0x08c148e8, 0x0280, 0x2793 + obj_tiles 0x08c14a58, 0x0280, 0x2794 + obj_tiles 0x08c14b78, 0x0100, 0x2795 + obj_tiles 0x08c14c1c, 0x0200, 0x2796 + obj_tiles 0x08c1a3a0, 0x0200, 0x2797 + + .align 2 gUnknown_08524F84:: @ 8524F84 - .incbin "baserom.gba", 0x524f84, 0x308 - + obj_tiles 0x08c1a540, 0x0020, 0x2798 + obj_tiles 0x08c1a58c, 0x0a00, 0x2799 + obj_tiles 0x08c1ab40, 0x0800, 0x279a + obj_tiles 0x08c1a790, 0x0800, 0x279b + obj_tiles 0x08c1ac8c, 0x00c0, 0x279c + obj_tiles 0x08c1ad2c, 0x01c0, 0x279d + obj_tiles 0x08c1ae54, 0x0100, 0x279e + obj_tiles 0x08c2cbac, 0x0800, 0x279f + obj_tiles 0x08c1bc64, 0x0200, 0x27a0 + obj_tiles 0x08c1a9a0, 0x0800, 0x27a1 + obj_tiles 0x08c02478, 0x0180, 0x27a2 + obj_tiles 0x08c1af6c, 0x0180, 0x27a3 + obj_tiles 0x08c1b178, 0x0200, 0x27a4 + obj_tiles 0x08c1b0a8, 0x0200, 0x27a5 + obj_tiles 0x08c1b328, 0x0180, 0x27a6 + obj_tiles 0x08c1b418, 0x0400, 0x27a7 + obj_tiles 0x08c033cc, 0x0080, 0x27a8 + obj_tiles 0x08c1b510, 0x0100, 0x27a9 + obj_tiles 0x08c1b594, 0x0100, 0x27aa + obj_tiles 0x08c1b660, 0x0140, 0x27ab + obj_tiles 0x08c1b748, 0x0800, 0x27ac + obj_tiles 0x08c1b988, 0x0200, 0x27ad + obj_tiles 0x08c1ba04, 0x0100, 0x27ae + obj_tiles 0x08c1baf0, 0x00a0, 0x27af + obj_tiles 0x08c1bb94, 0x0100, 0x27b0 + obj_tiles 0x08c0297c, 0x0080, 0x27b1 + obj_tiles 0x08c1be40, 0x0300, 0x27b2 + obj_tiles 0x08c1bee4, 0x0100, 0x27b3 + obj_tiles 0x08c1bee4, 0x0100, 0x27b4 + obj_tiles 0x08c1bee4, 0x0100, 0x27b5 + obj_tiles 0x08c1bfa4, 0x0800, 0x27b6 + obj_tiles 0x08c1bfa4, 0x0800, 0x27b7 + obj_tiles 0x08c1bfa4, 0x0800, 0x27b8 + obj_tiles 0x08c1bfa4, 0x0800, 0x27b9 + obj_tiles 0x08c1bfa4, 0x0800, 0x27ba + obj_tiles 0x08c1c350, 0x0080, 0x27bb + obj_tiles 0x08c1bc64, 0x0200, 0x27bc + obj_tiles 0x08c1c7bc, 0x0200, 0x27bd + obj_tiles 0x08c1d5fc, 0x0200, 0x27be + obj_tiles 0x08c1d6c4, 0x0080, 0x27bf + obj_tiles 0x08c1d750, 0x0200, 0x27c0 + obj_tiles 0x08c1d8d0, 0x0500, 0x27c1 + obj_tiles 0x08c1d9ac, 0x0800, 0x27c2 + obj_tiles 0x08c1db64, 0x0400, 0x27c3 + obj_tiles 0x08c1dc40, 0x0020, 0x27c4 + obj_tiles 0x08c1dc58, 0x0800, 0x27c5 + obj_tiles 0x08c1dfe8, 0x0100, 0x27c6 + obj_tiles 0x08c1e0b4, 0x0800, 0x27c7 + obj_tiles 0x08c1e354, 0x0400, 0x27c8 + obj_tiles 0x08c1e4d0, 0x0a00, 0x27c9 + obj_tiles 0x08c1edd8, 0x1000, 0x27ca + obj_tiles 0x08c1ebc8, 0x0800, 0x27cb + obj_tiles 0x08d966c0, 0x0400, 0x27cc + obj_tiles 0x08c20198, 0x0200, 0x27cd + obj_tiles 0x08c1fc84, 0x0800, 0x27ce + obj_tiles 0x08c1ff04, 0x0800, 0x27cf + obj_tiles 0x08c2023c, 0x0800, 0x27d0 + obj_tiles 0x08c204e4, 0x0200, 0x27d1 + obj_tiles 0x08c20c4c, 0x0800, 0x27d2 + obj_tiles 0x08c20fac, 0x0200, 0x27d3 + obj_tiles 0x08c20890, 0x0800, 0x27d4 + obj_tiles 0x08c21084, 0x0200, 0x27d5 + obj_tiles 0x08c2121c, 0x0800, 0x27d6 + obj_tiles 0x08c21634, 0x0400, 0x27d7 + obj_tiles 0x08c21718, 0x0200, 0x27d8 + obj_tiles 0x08c21874, 0x0a80, 0x27d9 + obj_tiles 0x08c220a8, 0x0600, 0x27da + obj_tiles 0x08c22234, 0x0800, 0x27db + obj_tiles 0x08c21f0c, 0x0200, 0x27dc + obj_tiles 0x08c226a4, 0x0600, 0x27dd + obj_tiles 0x08c22404, 0x0800, 0x27de + obj_tiles 0x08c228fc, 0x0180, 0x27df + obj_tiles 0x08c229ec, 0x0800, 0x27e0 + obj_tiles 0x08c22ddc, 0x0800, 0x27e1 + obj_tiles 0x08c23218, 0x0080, 0x27e2 + obj_tiles 0x08c242b0, 0x0080, 0x27e3 + obj_tiles 0x08c2407c, 0x0800, 0x27e4 + obj_tiles 0x08c24300, 0x0800, 0x27e5 + obj_tiles 0x08c24590, 0x0600, 0x27e6 + obj_tiles 0x08c24820, 0x0600, 0x27e7 + obj_tiles 0x08c23218, 0x0080, 0x27e8 + obj_tiles 0x08c23ff4, 0x0080, 0x27e9 + obj_tiles 0x08c24c50, 0x0180, 0x27ea + obj_tiles 0x08c23218, 0x0080, 0x27eb + obj_tiles 0x08c24dfc, 0x0200, 0x27ec + obj_tiles 0x08c24f48, 0x0400, 0x27ed + obj_tiles 0x08c251ac, 0x0a00, 0x27ee + obj_tiles 0x08c254e0, 0x0800, 0x27ef + obj_tiles 0x08c25794, 0x0200, 0x27f0 + obj_tiles 0x08c27764, 0x0400, 0x27f1 + obj_tiles 0x08c27a58, 0x0080, 0x27f2 + obj_tiles 0x08c27910, 0x0800, 0x27f3 + obj_tiles 0x08c25b1c, 0x0200, 0x27f4 + obj_tiles 0x08c27b08, 0x0300, 0x27f5 + obj_tiles 0x08c258b8, 0x0800, 0x27f6 + obj_tiles 0x08c28394, 0x0380, 0x27f7 + obj_tiles 0x08c27e34, 0x0800, 0x27f8 + + .align 2 gUnknown_0852528C:: @ 852528C - .incbin "baserom.gba", 0x52528c, 0x120 - + obj_tiles 0x08c28564, 0x00c0, 0x27f9 + obj_tiles 0x08c28610, 0x0800, 0x27fa + obj_tiles 0x08c28880, 0x0060, 0x27fb + obj_tiles 0x08c28880, 0x0060, 0x27fc + obj_tiles 0x08c28880, 0x0060, 0x27fd + obj_tiles 0x08c287f4, 0x0080, 0x27fe + obj_tiles 0x08c2caa0, 0x0180, 0x27ff + obj_tiles 0x08c2cdf4, 0x0180, 0x2800 + obj_tiles 0x08c2d348, 0x0200, 0x2801 + obj_tiles 0x08c2d570, 0x0200, 0x2802 + obj_tiles 0x08c2d6d0, 0x0020, 0x2803 + obj_tiles 0x08c2e554, 0x0400, 0x2804 + obj_tiles 0x08c2df08, 0x0600, 0x2805 + obj_tiles 0x08c2e0ac, 0x1000, 0x2806 + obj_tiles 0x08c2e64c, 0x0400, 0x2807 + obj_tiles 0x08c2eba4, 0x0020, 0x2808 + obj_tiles 0x08c2ebd4, 0x0080, 0x2809 + obj_tiles 0x08c2ec44, 0x0800, 0x280a + obj_tiles 0x08c2ee38, 0x0080, 0x280b + obj_tiles 0x08c2eeb4, 0x0200, 0x280c + obj_tiles 0x08c2eff0, 0x0400, 0x280d + obj_tiles 0x08c2f1f4, 0x0200, 0x280e + obj_tiles 0x08c2f354, 0x0200, 0x280f + obj_tiles 0x08c2f4f0, 0x0800, 0x2810 + obj_tiles 0x08c2f8a4, 0x0280, 0x2811 + obj_tiles 0x08c2f3e0, 0x0200, 0x2812 + obj_tiles 0x08c1b0a8, 0x0200, 0x2813 + obj_tiles 0x08d8dae0, 0x0400, 0x2814 + obj_tiles 0x08d8d2a4, 0x0200, 0x2815 + obj_tiles 0x08d8e840, 0x0200, 0x2816 + obj_tiles 0x08d93b44, 0x0080, 0x2817 + obj_tiles 0x08d8ea54, 0x0020, 0x2818 + obj_tiles 0x08d8ea54, 0x0020, 0x2819 + obj_tiles 0x08d93b9c, 0x0080, 0x281a + obj_tiles 0x08c2407c, 0x0800, 0x281b + obj_tiles 0x08d8ea54, 0x0020, 0x281c + + .align 2 gUnknown_085253AC:: @ 85253AC - .incbin "baserom.gba", 0x5253ac, 0x270 - + obj_tiles 0x08d8ef2c, 0x0080, 0x281d + obj_tiles 0x08dba378, 0x0400, 0x281e + obj_tiles 0x08dba4b8, 0x0080, 0x281f + obj_tiles 0x08d8ecc4, 0x0800, 0x2820 + obj_tiles 0x08d8ef04, 0x0020, 0x2821 + obj_tiles 0x08d8ef98, 0x0800, 0x2822 + obj_tiles 0x08d8f118, 0x0800, 0x2823 + obj_tiles 0x08d8f284, 0x0800, 0x2824 + obj_tiles 0x08d92eec, 0x1000, 0x2825 + obj_tiles 0x08d93c24, 0x0800, 0x2826 + obj_tiles 0x08d93e4c, 0x00a0, 0x2827 + obj_tiles 0x08d8f780, 0x0800, 0x2828 + obj_tiles 0x08d93eb4, 0x0200, 0x2829 + obj_tiles 0x08dba174, 0x0600, 0x282a + obj_tiles 0x08d93474, 0x0200, 0x282b + obj_tiles 0x08d94658, 0x0800, 0x282c + obj_tiles 0x08d949f0, 0x0200, 0x282d + obj_tiles 0x08c1e0b4, 0x0800, 0x282e + obj_tiles 0x08c0a3ec, 0x1000, 0x282f + obj_tiles 0x08c1bee4, 0x0100, 0x2830 + + obj_pal 0x08c028cc, 0x2710 + obj_pal 0x08c1c794, 0x2711 + obj_pal 0x08c20868, 0x2712 + obj_pal 0x08c028f0, 0x2713 + obj_pal 0x08c02918, 0x2714 + obj_pal 0x08c0292c, 0x2715 + obj_pal 0x08c02954, 0x2716 + obj_pal 0x08c02b48, 0x2717 + obj_pal 0x08c02b88, 0x2718 + obj_pal 0x08c0328c, 0x2719 + obj_pal 0x08c02ba4, 0x271a + obj_pal 0x08c03324, 0x271b + obj_pal 0x08c033b4, 0x271c + obj_pal 0x08c0346c, 0x271d + obj_pal 0x08c1fc68, 0x271e + obj_pal 0x08c034f0, 0x271f + obj_pal 0x08c03588, 0x2720 + obj_pal 0x08c03588, 0x2721 + obj_pal 0x08c24db8, 0x2722 + obj_pal 0x08c035dc, 0x2723 + obj_pal 0x08c03784, 0x2724 + obj_pal 0x08c03a00, 0x2725 + obj_pal 0x08c03d60, 0x2726 + obj_pal 0x08c037ac, 0x2727 + obj_pal 0x08c03f6c, 0x2728 + obj_pal 0x08c03d88, 0x2729 + obj_pal 0x08c047cc, 0x272a + obj_pal 0x08c047f4, 0x272b + obj_pal 0x08c04b18, 0x272c + obj_pal 0x08c05148, 0x272d + obj_pal 0x08c05530, 0x272e + obj_pal 0x08c04360, 0x272f + obj_pal 0x08c04380, 0x2730 + obj_pal 0x08c05554, 0x2731 + obj_pal 0x08c05554, 0x2732 + obj_pal 0x08c05554, 0x2733 + obj_pal 0x08c06650, 0x2734 + obj_pal 0x08c06650, 0x2735 + obj_pal 0x08c07914, 0x2736 + obj_pal 0x08c0793c, 0x2737 + obj_pal 0x08c07914, 0x2738 + obj_pal 0x08c07914, 0x2739 + obj_pal 0x08c08594, 0x273a + obj_pal 0x08c089bc, 0x273b + obj_pal 0x08c089e4, 0x273c + obj_pal 0x08c08c78, 0x273d + obj_pal 0x08c099e4, 0x273e + obj_pal 0x08c09a04, 0x273e + obj_pal 0x08c09f88, 0x2740 + obj_pal 0x08c09fb0, 0x2741 + obj_pal 0x08c09fd8, 0x2742 + obj_pal 0x08c09fd8, 0x2743 + obj_pal 0x08c09fd8, 0x2744 + obj_pal 0x08c047cc, 0x2745 + obj_pal 0x08c0a3d4, 0x2746 + obj_pal 0x08c09fd8, 0x2747 + obj_pal 0x08c0a894, 0x2748 + obj_pal 0x08c0aa08, 0x2749 + + .align 2 gUnknown_0852561C:: @ 852561C - .incbin "baserom.gba", 0x52561c, 0x270 - + obj_pal 0x08c0ae94, 0x274a + obj_pal 0x08c0af1c, 0x274b + obj_pal 0x08c0af60, 0x274c + obj_pal 0x08c0b02c, 0x274d + obj_pal 0x08c0b41c, 0x274e + obj_pal 0x08c0b600, 0x274f + obj_pal 0x08c231f4, 0x2750 + obj_pal 0x08c0b7d0, 0x2751 + obj_pal 0x08c0b83c, 0x2752 + obj_pal 0x08d8eaa4, 0x2753 + obj_pal 0x08d8eac4, 0x2754 + obj_pal 0x08c0b7d0, 0x2755 + obj_pal 0x08c0b8e4, 0x2756 + obj_pal 0x08c0b8e4, 0x2757 + obj_pal 0x08c0bc08, 0x2758 + obj_pal 0x08c0bd3c, 0x2759 + obj_pal 0x08c1b304, 0x275a + obj_pal 0x08c0bfd8, 0x275b + obj_pal 0x08c14f28, 0x275c + obj_pal 0x08c14f28, 0x275d + obj_pal 0x08c0c194, 0x275e + obj_pal 0x08c0c194, 0x275f + obj_pal 0x08c0c950, 0x2760 + obj_pal 0x08c0c9f8, 0x2761 + obj_pal 0x08c0cbb4, 0x2762 + obj_pal 0x08c0cbc8, 0x2763 + obj_pal 0x08c0cbf0, 0x2764 + obj_pal 0x08c0cc18, 0x2765 + obj_pal 0x08c0cc30, 0x2766 + obj_pal 0x08c24d54, 0x2767 + obj_pal 0x08c0cc58, 0x2768 + obj_pal 0x08c0cc74, 0x2769 + obj_pal 0x08c0cc9c, 0x276a + obj_pal 0x08c0b698, 0x276b + obj_pal 0x08c0ccc0, 0x276c + obj_pal 0x08c0ccdc, 0x276d + obj_pal 0x08c0cd04, 0x276e + obj_pal 0x08c0cd44, 0x276f + obj_pal 0x08c0cd6c, 0x2770 + obj_pal 0x08c0cd88, 0x2771 + obj_pal 0x08c0cd04, 0x2772 + obj_pal 0x08c27e0c, 0x2773 + obj_pal 0x08c0cdb0, 0x2774 + obj_pal 0x08c0cdcc, 0x2775 + obj_pal 0x08c0cdcc, 0x2776 + obj_pal 0x08c0cdf4, 0x2777 + obj_pal 0x08c0f14c, 0x2778 + obj_pal 0x08c0f6f8, 0x2779 + obj_pal 0x08c0f6f8, 0x277a + obj_pal 0x08c0fbbc, 0x277b + obj_pal 0x08c0fbbc, 0x277c + obj_pal 0x08c0ff90, 0x277d + obj_pal 0x08c0ff90, 0x277e + obj_pal 0x08c103e0, 0x277f + obj_pal 0x08c1072c, 0x2780 + obj_pal 0x08c109c0, 0x2781 + obj_pal 0x08c10adc, 0x2782 + obj_pal 0x08c028ac, 0x2783 + obj_pal 0x08c13134, 0x2784 + obj_pal 0x08c13398, 0x2785 + obj_pal 0x08c1354c, 0x2786 + obj_pal 0x08c137f8, 0x2787 + obj_pal 0x08c13914, 0x2788 + obj_pal 0x08c13968, 0x2789 + obj_pal 0x08c13a88, 0x278a + obj_pal 0x08c13a88, 0x278b + obj_pal 0x08c13e78, 0x278c + obj_pal 0x08c13f8c, 0x278d + obj_pal 0x08c1401c, 0x278e + obj_pal 0x08c141dc, 0x278f + obj_pal 0x08c1446c, 0x2790 + obj_pal 0x08c1446c, 0x2791 + obj_pal 0x08c148c0, 0x2792 + obj_pal 0x08c148c0, 0x2793 + obj_pal 0x08c14b58, 0x2794 + obj_pal 0x08c14bf4, 0x2795 + obj_pal 0x08c14bf4, 0x2796 + obj_pal 0x08c1a478, 0x2797 + + .align 2 gUnknown_0852588C:: @ 852588C - .incbin "baserom.gba", 0x52588c, 0x308 - + obj_pal 0x08c1a564, 0x2798 + obj_pal 0x08c1a478, 0x2799 + obj_pal 0x08c1a478, 0x279a + obj_pal 0x08c1a980, 0x279b + obj_pal 0x08c1ad0c, 0x279c + obj_pal 0x08c1ae34, 0x279d + obj_pal 0x08c1ae34, 0x279e + obj_pal 0x08c2cddc, 0x279f + obj_pal 0x08c1bcdc, 0x27a0 + obj_pal 0x08c1a980, 0x27a1 + obj_pal 0x08c028ac, 0x27a2 + obj_pal 0x08c1b080, 0x27a3 + obj_pal 0x08c1b25c, 0x27a4 + obj_pal 0x08c1b25c, 0x27a5 + obj_pal 0x08c1b3fc, 0x27a6 + obj_pal 0x08c1b3fc, 0x27a7 + obj_pal 0x08c03414, 0x27a8 + obj_pal 0x08c1b57c, 0x27a9 + obj_pal 0x08c1b640, 0x27aa + obj_pal 0x08c1b728, 0x27ab + obj_pal 0x08c1b960, 0x27ac + obj_pal 0x08c1b9ec, 0x27ad + obj_pal 0x08c1bacc, 0x27ae + obj_pal 0x08c1bb6c, 0x27af + obj_pal 0x08c1bc3c, 0x27b0 + obj_pal 0x08c029a4, 0x27b1 + obj_pal 0x08c1bec4, 0x27b2 + obj_pal 0x08c1bf44, 0x27b3 + obj_pal 0x08c1bf74, 0x27b4 + obj_pal 0x08c1bf8c, 0x27b5 + obj_pal 0x08c1c2b0, 0x27b6 + obj_pal 0x08c1c2d0, 0x27b7 + obj_pal 0x08c1c2f0, 0x27b8 + obj_pal 0x08c1c310, 0x27b9 + obj_pal 0x08c1c330, 0x27ba + obj_pal 0x08c1c39c, 0x27bb + obj_pal 0x08c1c3c4, 0x27bc + obj_pal 0x08c1c794, 0x27bd + obj_pal 0x08c1d69c, 0x27be + obj_pal 0x08c1d728, 0x27bf + obj_pal 0x08c1d8a8, 0x27c0 + obj_pal 0x08c1d994, 0x27c1 + obj_pal 0x08c1db14, 0x27c2 + obj_pal 0x08c1db3c, 0x27c3 + obj_pal 0x08c1db3c, 0x27c4 + obj_pal 0x08c1db3c, 0x27c5 + obj_pal 0x08c1e08c, 0x27c6 + obj_pal 0x08c1e32c, 0x27c7 + obj_pal 0x08c1e4a8, 0x27c8 + obj_pal 0x08c1e8e4, 0x27c9 + obj_pal 0x08c1f1a4, 0x27ca + obj_pal 0x08c1edb8, 0x27cb + obj_pal 0x08d967d4, 0x27cc + obj_pal 0x08c2021c, 0x27cd + obj_pal 0x08c1fee0, 0x27ce + obj_pal 0x08c20170, 0x27cf + obj_pal 0x08c204bc, 0x27d0 + obj_pal 0x08c20640, 0x27d1 + obj_pal 0x08c20f84, 0x27d2 + obj_pal 0x08c21064, 0x27d3 + obj_pal 0x08c20c34, 0x27d4 + obj_pal 0x08c211f4, 0x27d5 + obj_pal 0x08c2160c, 0x27d6 + obj_pal 0x08c216fc, 0x27d7 + obj_pal 0x08c21858, 0x27d8 + obj_pal 0x08c21ee4, 0x27d9 + obj_pal 0x08c22210, 0x27da + obj_pal 0x08c223e0, 0x27db + obj_pal 0x08c22080, 0x27dc + obj_pal 0x08c228d8, 0x27dd + obj_pal 0x08c22610, 0x27de + obj_pal 0x08c229c8, 0x27df + obj_pal 0x08c1c2d0, 0x27e0 + obj_pal 0x08c230e4, 0x27e1 + obj_pal 0x08c232a0, 0x27e2 + obj_pal 0x08c2456c, 0x27e3 + obj_pal 0x08c2456c, 0x27e4 + obj_pal 0x08c2456c, 0x27e5 + obj_pal 0x08c231f4, 0x27e6 + obj_pal 0x08c249ac, 0x27e7 + obj_pal 0x08c232c0, 0x27e8 + obj_pal 0x08c2405c, 0x27e9 + obj_pal 0x08c24c28, 0x27ea + obj_pal 0x08c23280, 0x27eb + obj_pal 0x08c24dd4, 0x27ec + obj_pal 0x08c24f28, 0x27ed + obj_pal 0x08c25498, 0x27ee + obj_pal 0x08c254c0, 0x27ef + obj_pal 0x08c25774, 0x27f0 + obj_pal 0x08c278e8, 0x27f1 + obj_pal 0x08c27ae4, 0x27f2 + obj_pal 0x08c27ae4, 0x27f3 + obj_pal 0x08c25afc, 0x27f4 + obj_pal 0x08c27cc4, 0x27f5 + obj_pal 0x08c25890, 0x27f6 + obj_pal 0x08c2836c, 0x27f7 + obj_pal 0x08c2836c, 0x27f8 + + .align 2 gUnknown_08525B94:: @ 8525B94 - .incbin "baserom.gba", 0x525b94, 0x120 - + obj_pal 0x08c285e8, 0x27f9 + obj_pal 0x08c287d0, 0x27fa + obj_pal 0x08c288d0, 0x27fb + obj_pal 0x08c288ec, 0x27fc + obj_pal 0x08c28908, 0x27fd + obj_pal 0x08c2885c, 0x27fe + obj_pal 0x08c2cb84, 0x27ff + obj_pal 0x08c2ce94, 0x2800 + obj_pal 0x08c2d40c, 0x2801 + obj_pal 0x08c2d6ac, 0x2802 + obj_pal 0x08c2d6f8, 0x2803 + obj_pal 0x08c2e630, 0x2804 + obj_pal 0x08c2dee0, 0x2805 + obj_pal 0x08c2dee0, 0x2806 + obj_pal 0x08c231f4, 0x2807 + obj_pal 0x08c2ebbc, 0x2808 + obj_pal 0x08c2ec24, 0x2809 + obj_pal 0x08c2ec24, 0x280a + obj_pal 0x08c2ee9c, 0x280b + obj_pal 0x08c2efcc, 0x280c + obj_pal 0x08c2f1cc, 0x280d + obj_pal 0x08c2f32c, 0x280e + obj_pal 0x08c2f3cc, 0x280f + obj_pal 0x08c2f87c, 0x2810 + obj_pal 0x08c2f9c0, 0x2811 + obj_pal 0x08c2f4c8, 0x2812 + obj_pal 0x08c1b27c, 0x2813 + obj_pal 0x08d8dc9c, 0x2814 + obj_pal 0x08d8dab8, 0x2815 + obj_pal 0x08d8e914, 0x2816 + obj_pal 0x08d93b84, 0x2817 + obj_pal 0x08d8ea74, 0x2818 + obj_pal 0x08d8ea8c, 0x2819 + obj_pal 0x08d93bdc, 0x281a + obj_pal 0x08d93bf4, 0x281b + obj_pal 0x08d93c0c, 0x281c + + .align 2 gUnknown_08525CB4:: @ 8525CB4 - .incbin "baserom.gba", 0x525cb4, 0xa0 - + obj_pal 0x08d8ef80, 0x281d + obj_pal 0x08dba35c, 0x281e + obj_pal 0x08dba4a0, 0x281f + obj_pal 0x08d8eee0, 0x2820 + obj_pal 0x08d8eee0, 0x2821 + obj_pal 0x08d8f3ec, 0x2822 + obj_pal 0x08d8f3ec, 0x2823 + obj_pal 0x08d8f3ec, 0x2824 + obj_pal 0x08d92ec4, 0x2825 + obj_pal 0x08d93e30, 0x2826 + obj_pal 0x08d93e98, 0x2827 + obj_pal 0x08d8fb7c, 0x2828 + obj_pal 0x08d9403c, 0x2829 + obj_pal 0x08dba14c, 0x282a + obj_pal 0x08d93458, 0x282b + obj_pal 0x08d949d4, 0x282c + obj_pal 0x08d94a90, 0x282d + obj_pal 0x08d96698, 0x282e + obj_pal 0x08d9104c, 0x282f + obj_pal 0x08c1bf5c, 0x2830 + + .align 2 gUnknown_08525D54:: @ 8525D54 - .incbin "baserom.gba", 0x525d54, 0x144 - + .4byte 0x08c1c844, 0x08c1ce3c, 0x08c1ce5c + .4byte 0x08c1c844, 0x08c1ce3c, 0x08c1ce5c + .4byte 0x08d90074, 0x08d90d3c, 0x08d90d58 + .4byte 0x08c1e90c, 0x08c1eadc, 0x08c1eb00 + .4byte 0x08c25bec, 0x08c25bc4, 0x08c26958 + .4byte 0x08c25bec, 0x08c25bc4, 0x08c26e54 + .4byte 0x08c25bec, 0x08c25bc4, 0x08c27324 + .4byte 0x08c28924, 0x08c28acc, 0x08c28b1c + .4byte 0x08c28924, 0x08c28acc, 0x08c28cac + .4byte 0x08c29dbc, 0x08c29d7c, 0x08c29a84 + .4byte 0x08c29dbc, 0x08c29d7c, 0x08c2a33c + .4byte 0x08c2bde4, 0x08c2c780, 0x08c2c7a8 + .4byte 0x08c2b05c, 0x08c2bdc4, 0x08c2a808 + .4byte 0x08c2b05c, 0x08c2bdc4, 0x08c2aad0 + .4byte 0x08c2b05c, 0x08c2bdc4, 0x08c2adcc + .4byte 0x08d8dcb4, 0x08d8e624, 0x08d8e648 + .4byte 0x08d92b28, 0x08d92b00, 0x08d92d88 + .4byte 0x08d8f414, 0x08d8f570, 0x08d8f598 + .4byte 0x08c28924, 0x08c28af4, 0x08c28b1c + .4byte 0x08c28924, 0x08c28af4, 0x08c28cac + .4byte 0x08c28e38, 0x08c29860, 0x08c29880 + .4byte 0x08d9405c, 0x08d94350, 0x08d9436c + .4byte 0x08c29dbc, 0x08c29d9c, 0x08c29a84 + .4byte 0x08c29dbc, 0x08c29d9c, 0x08c2a33c + .4byte 0x08c25bec, 0x08d91074, 0x08c26958 + .4byte 0x08c25bec, 0x08d91074, 0x08c26e54 + .4byte 0x08c25bec, 0x08d91074, 0x08c27324 + + .align 2 gUnknown_08525E98:: @ 8525E98 - .incbin "baserom.gba", 0x525e98, 0xc0 - + .4byte ma00_load_graphics + .4byte ma01_080728D0 + .4byte ma02_instanciate_template + .4byte sub_80A3ECC + .4byte ma04_wait_countdown + .4byte sub_80A3F88 + .4byte nullsub_6 + .4byte nullsub_7 + .4byte sub_80A3FC4 + .4byte ma09_play_sound + .4byte sub_80A41D8 + .4byte ma0B_0807324C + .4byte ma0C_set_BLDCNT_to_x3F40_and_BLDALPHA_to_argument + .4byte ma0D_reset_BLDCNT_and_BLDALPHA + .4byte ma0E_call + .4byte sub_80A4D00 + .4byte ma10_080736AC + .4byte ma11_if_else + .4byte ma12_cond_if + .4byte ma13_goto + .4byte ma14_load_background + .4byte ma15_load_battle_screen_elements + .4byte ma16_wait_for_battle_screen_elements_s2 + .4byte sub_80A5124 + .4byte ma18_load_background_probably + .4byte ma19_08073BC8 + .4byte ma1A_8073C00 + .4byte ma1B_8073C2C + .4byte ma1C_8073ED0 + .4byte ma1D_08073FB4 + .4byte ma1E_set_BLDCNT + .4byte sub_80A57F8 + .4byte ma20_wait_for_something + .4byte ma21_08074164 + .4byte sub_80A4A18 + .4byte ma23_8073484 + .4byte sub_80A5944 + .4byte sub_80A4E5C + .4byte sub_80A5508 + .4byte sub_80A559C + .4byte sub_80A5984 + .4byte sub_80A59DC + .4byte sub_80A5A0C + .4byte ma2B_make_side_invisible + .4byte ma2C_make_side_visible + .4byte sub_80A5AFC + .4byte sub_80A5BAC + .4byte ma2F_stop_music + + .align 2 gUnknown_08525F58:: @ 8525F58 - .incbin "baserom.gba", 0x525f58, 0x20 + .byte 0x48, 0x50, 0x00, 0x00, 0xb0, 0x28, 0x00, 0x00 + .byte 0x30, 0x28, 0x00, 0x00, 0x70, 0x50, 0x00, 0x00 + .byte 0x20, 0x50, 0x00, 0x00, 0xc8, 0x28, 0x00, 0x00 + .byte 0x5a, 0x58, 0x00, 0x00, 0x98, 0x20, 0x00, 0x00 + .align 2 gUnknown_08525F78:: @ 8525F78 - .incbin "baserom.gba", 0x525f78, 0x10 + .byte 0x44, 0x11, 0x00, 0x00, 0x66, 0x09, 0x00, 0x00 + .byte 0x46, 0x09, 0x00, 0x00, 0x86, 0x08, 0x00, 0x00 + .align 2 gUnknown_08525F88:: @ 8525F88 - .incbin "baserom.gba", 0x525f88, 0x4 + .byte 0x0d, 0x0e, 0x0d, 0x0d + .align 2 gUnknown_08525F8C:: @ 8525F8C - .incbin "baserom.gba", 0x525f8c, 0x4 + .byte 0x00, 0x00, 0x00, 0x00 + .align 2 gUnknown_08525F90:: @ 8525F90 - .incbin "baserom.gba", 0x525f90, 0x30 + spr_template 0xd755, 0xd755, gUnknown_0852497C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + spr_template 0xd756, 0xd756, gUnknown_0852497C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + .align 2 gUnknown_08525FC0:: @ 8525FC0 - .incbin "baserom.gba", 0x525fc0, 0x18f80 + obj_tiles gMiscBlank_Gfx, 0x0800, 0xd755 + obj_tiles gMiscBlank_Gfx, 0x0800, 0xd756 + .align 2 +@ the mother of all baserom includes + .incbin "baserom.gba", 0x525fd0, 0x18f60 + + .align 2 +gUnknown_0853EF30:: @ 853EF30 + .byte 0xf0, 0xf0, 0x0c, 0x80, 0xf0, 0x30, 0x0d, 0x84, 0x30, 0xf0, 0x0e, 0x86, 0x30, 0x30, 0x08, 0x88 + + .align 2 gUnknown_0853EF40:: @ 853EF40 - .incbin "baserom.gba", 0x53ef40, 0x8 + .4byte 0x00000004, gUnknown_0853EF30 + .align 2 gUnknown_0853EF48:: @ 853EF48 - .incbin "baserom.gba", 0x53ef48, 0x18 + spr_template 0x271a, 0x271a, gUnknown_08524A3C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + .align 2 gUnknown_0853EF60:: @ 853EF60 - .incbin "baserom.gba", 0x53ef60, 0xf8 + spr_template 0x2798, 0x2798, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A9E44 + diff --git a/data/battle_message.s b/data/battle_message.s index 05847eed0..4ec085d2f 100644 --- a/data/battle_message.s +++ b/data/battle_message.s @@ -1768,12 +1768,26 @@ gText_SafariBalls:: @ 85CCB2C gText_SafariBallLeft:: @ 85CCB3C .string "{HIGHLIGHT DARK_GREY}Left: $" .string "{HIGHLIGHT DARK_GREY}$" + +gText_Sleep:: @ 85CCB50 .string "sleep$" + +gText_Poison:: @ 85CCB4A .string "poison$" + +gText_Burn:: @ 85CCB5C .string "burn$" + +gText_Paralysis:: @ 85CCB57 .string "paralysis$" + +gText_Ice:: @ 85CCB66 .string "ice$" + +gText_Confusion:: @ 85CCB98 .string "confusion$" + +gText_Love:: @ 85CCBA0 .string "love$" gText_SpaceAndSpace:: @ 85CCB79 diff --git a/data/data2b.s b/data/data2b.s index fd72e835e..77bb776cc 100644 --- a/data/data2b.s +++ b/data/data2b.s @@ -6,121 +6,4374 @@ .section .rodata .align 2 +gUnknown_082FF1D8:: @ 82FF1D8 + .incbin "graphics/link/minigame_digits.gbapal" + + .align 2 +gUnknown_082FF1F8:: @ 82FF1F8 + .incbin "graphics/link/minigame_digits.4bpp.lz" + + .align 2 +gUnknown_082FF2B8:: @ 82FF2B8 + .incbin "graphics/link/minigame_digits2.4bpp.lz" + + .align 2 +gUnknown_082FF3A8:: @ 82FF3A8 + .byte 0x00, 0x80, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 + .byte 0x00, 0x88, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 + .byte 0x00, 0x90, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 + .byte 0x00, 0x98, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 + .byte 0x00, 0xa0, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 + .byte 0x00, 0xa8, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 + .byte 0x00, 0xb0, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 + .byte 0x00, 0xb8, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 + .byte 0x00, 0xc0, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 + .byte 0x00, 0xc8, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 + .byte 0x00, 0xd0, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 + .byte 0x00, 0xd8, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 + .byte 0x00, 0xe0, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 + .byte 0x00, 0xe8, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 + .byte 0x00, 0xf0, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 + .byte 0x00, 0xf8, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_082FF428:: @ 82FF428 + obj_frame_tiles gTrainerBackPic_Brendan, 0x0800 + obj_frame_tiles gTrainerBackPic_Brendan + 0x0800, 0x0800 + obj_frame_tiles gTrainerBackPic_Brendan + 0x1000, 0x0800 + obj_frame_tiles gTrainerBackPic_Brendan + 0x1800, 0x0800 + obj_frame_tiles gTrainerBackPic_May, 0x0800 + obj_frame_tiles gTrainerBackPic_May + 0x0800, 0x0800 + obj_frame_tiles gTrainerBackPic_May + 0x1000, 0x0800 + obj_frame_tiles gTrainerBackPic_May + 0x1800, 0x0800 + obj_frame_tiles gTrainerBackPic_Red, 0x0800 + obj_frame_tiles gTrainerBackPic_Red + 0x0800, 0x0800 + obj_frame_tiles gTrainerBackPic_Red + 0x1000, 0x0800 + obj_frame_tiles gTrainerBackPic_Red + 0x1800, 0x0800 + obj_frame_tiles gTrainerBackPic_Red + 0x2000, 0x0800 + obj_frame_tiles gTrainerBackPic_Leaf, 0x0800 + obj_frame_tiles gTrainerBackPic_Leaf + 0x0800, 0x0800 + obj_frame_tiles gTrainerBackPic_Leaf + 0x1000, 0x0800 + obj_frame_tiles gTrainerBackPic_Leaf + 0x1800, 0x0800 + obj_frame_tiles gTrainerBackPic_Leaf + 0x2000, 0x0800 + obj_frame_tiles gTrainerBackPic_RubySapphireBrendan, 0x0800 + obj_frame_tiles gTrainerBackPic_RubySapphireBrendan + 0x0800, 0x0800 + obj_frame_tiles gTrainerBackPic_RubySapphireBrendan + 0x1000, 0x0800 + obj_frame_tiles gTrainerBackPic_RubySapphireBrendan + 0x1800, 0x0800 + obj_frame_tiles gTrainerBackPic_RubySapphireMay, 0x0800 + obj_frame_tiles gTrainerBackPic_RubySapphireMay + 0x0800, 0x0800 + obj_frame_tiles gTrainerBackPic_RubySapphireMay + 0x1000, 0x0800 + obj_frame_tiles gTrainerBackPic_RubySapphireMay + 0x1800, 0x0800 + obj_frame_tiles gTrainerBackPic_Wally, 0x0800 + obj_frame_tiles gTrainerBackPic_Wally + 0x0800, 0x0800 + obj_frame_tiles gTrainerBackPic_Wally + 0x1000, 0x0800 + obj_frame_tiles gTrainerBackPic_Wally + 0x1800, 0x0800 + obj_frame_tiles gTrainerBackPic_Steven, 0x0800 + obj_frame_tiles gTrainerBackPic_Steven + 0x0800, 0x0800 + obj_frame_tiles gTrainerBackPic_Steven + 0x1000, 0x0800 + obj_frame_tiles gTrainerBackPic_Steven + 0x1800, 0x0800 + + .align 2 +gUnknown_082FF538:: @ 82FF538 + .2byte 0x0000, 0x0000, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF540:: @ 82FF540 + .2byte 0x0003, 0x0000, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF548:: @ 82FF548 + .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_082FF558:: @ 82FF558 + .2byte 0xff00, 0x0100, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_082FF568:: @ 82FF568 + .2byte 0x0028, 0x0028, 0x0000, 0x0000, 0x0012, 0x0012, 0x0c00, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_082FF580:: @ 82FF580 + .2byte 0xfffe, 0xfffe, 0x1200, 0x0000, 0xfff0, 0xfff0, 0x0f00, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_082FF598:: @ 82FF598 + .2byte 0x00a0, 0x0100, 0x0000, 0x0000, 0x0004, 0x0000, 0x0800, 0x0000 + .2byte 0xfffc, 0x0000, 0x0800, 0x0000, 0x7ffe, 0x0001, 0x0000, 0x0000 + + .align 2 +gUnknown_082FF5B8:: @ 82FF5B8 + .2byte 0x0002, 0x0002, 0x1400, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_082FF5C8:: @ 82FF5C8 + .2byte 0xfffe, 0xfffe, 0x1400, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_082FF5D8:: @ 82FF5D8 + .2byte 0x0100, 0x0100, 0x0000, 0x0000, 0xfff0, 0xfff0, 0x0900, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_082FF5F0:: @ 82FF5F0 + .2byte 0x0004, 0x0004, 0x3f00, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_082FF600:: @ 82FF600 + .2byte 0x0000, 0x0000, 0x05fd, 0x0000, 0x0000, 0x0000, 0x0503, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_082FF618:: @ 82FF618 + .4byte gUnknown_082FF548 + .4byte gUnknown_082FF568 + .4byte gUnknown_082FF580 + .4byte gUnknown_082FF598 + .4byte gUnknown_082FF5B8 + .4byte gUnknown_082FF5C8 + .4byte gUnknown_082FF5F0 + .4byte gUnknown_082FF600 + .4byte gUnknown_082FF5D8 + + .align 2 +gUnknown_082FF63C:: @ 82FF63C + .2byte 0xfffc, 0xfffc, 0x3f04, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_082FF64C:: @ 82FF64C + .2byte 0x0000, 0x0000, 0x0503, 0x0000, 0x0000, 0x0000, 0x05fd, 0x0000 + .2byte 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_082FF664:: @ 82FF664 + .2byte 0x0000, 0x0000, 0x14fb, 0x0000, 0x0000, 0x0000, 0x1400, 0x0000 + .2byte 0x0000, 0x0000, 0x1405, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_082FF684:: @ 82FF684 + .2byte 0x0000, 0x0000, 0x6e09, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_082FF694:: @ 82FF694 + .4byte gUnknown_082FF548 + .4byte gUnknown_082FF568 + .4byte gUnknown_082FF580 + .4byte gUnknown_082FF598 + .4byte gUnknown_082FF5B8 + .4byte gUnknown_082FF5C8 + .4byte gUnknown_082FF63C + .4byte gUnknown_082FF64C + .4byte gUnknown_082FF664 + .4byte gUnknown_082FF5D8 + .4byte gUnknown_082FF684 + + .align 2 +gUnknown_082FF6C0:: @ 82FF6C0 + .4byte gUnknown_082FF558 + .4byte gUnknown_082FF568 + .4byte gUnknown_082FF580 + .4byte gUnknown_082FF598 + .4byte gUnknown_082FF5B8 + .4byte gUnknown_082FF5C8 + .4byte gUnknown_082FF63C + .4byte gUnknown_082FF64C + .4byte gUnknown_082FF664 + .4byte gUnknown_082FF5D8 + .4byte gUnknown_082FF684 + + .align 2 +gUnknown_082FF6EC:: @ 82FF6EC + .2byte 0x0000, 0x0000, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF6F4:: @ 82FF6F4 + .2byte 0x0001, 0x0000, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF6FC:: @ 82FF6FC + .2byte 0x0002, 0x0000, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF704:: @ 82FF704 + .2byte 0x0003, 0x0000, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF70C:: @ 82FF70C + .4byte gUnknown_082FF6EC + .4byte gUnknown_082FF6F4 + .4byte gUnknown_082FF6FC + .4byte gUnknown_082FF704 + + .align 2 +gUnknown_082FF71C:: @ 82FF71C + .2byte 0x0000, 0x0001, 0x0001, 0x0019, 0x0000, 0x0007, 0x0001, 0x0007 + .2byte 0x0000, 0x0007, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF734:: @ 82FF734 + .2byte 0x0000, 0x0001, 0x0002, 0x0008, 0x0000, 0x0008, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF744:: @ 82FF744 + .2byte 0x0000, 0x000a, 0x0002, 0x000a, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF750:: @ 82FF750 + .2byte 0x0000, 0x000a, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF758:: @ 82FF758 + .2byte 0x0000, 0x0001, 0x0001, 0x0005, 0x0000, 0x0005, 0x0001, 0x0005 + .2byte 0x0000, 0x0005, 0x0001, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF774:: @ 82FF774 + .2byte 0x0000, 0x0001, 0x0002, 0x000c, 0x0000, 0x000e, 0x0002, 0x000c + .2byte 0x0000, 0x000e, 0x0002, 0x000c, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF790:: @ 82FF790 + .2byte 0x0000, 0x000e, 0x0002, 0x000c, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF79C:: @ 82FF79C + .2byte 0x0000, 0x000a, 0x0001, 0x000a, 0x0000, 0x000a, 0x0001, 0x000a, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF7B0:: @ 82FF7B0 + .2byte 0x0000, 0x000a, 0x0002, 0x000a, 0x0000, 0x000a, 0x0002, 0x000a, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF7C4:: @ 82FF7C4 + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF7CC:: @ 82FF7CC + .2byte 0x0000, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF7D4:: @ 82FF7D4 + .2byte 0x0000, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF7DC:: @ 82FF7DC + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF7E4:: @ 82FF7E4 + .2byte 0x0001, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF7EC:: @ 82FF7EC + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF7F4:: @ 82FF7F4 + .2byte 0x0001, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF7FC:: @ 82FF7FC + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF804:: @ 82FF804 + .2byte 0x0001, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF80C:: @ 82FF80C + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF814:: @ 82FF814 + .2byte 0x0001, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF81C:: @ 82FF81C + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF824:: @ 82FF824 + .2byte 0x0001, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF82C:: @ 82FF82C + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF834:: @ 82FF834 + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF83C:: @ 82FF83C + .2byte 0x0001, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF844:: @ 82FF844 + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF84C:: @ 82FF84C + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF854:: @ 82FF854 + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF85C:: @ 82FF85C + .2byte 0x0001, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF864:: @ 82FF864 + .2byte 0x0000, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF86C:: @ 82FF86C + .2byte 0x0000, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF874:: @ 82FF874 + .2byte 0x0000, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF87C:: @ 82FF87C + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF884:: @ 82FF884 + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF88C:: @ 82FF88C + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF894:: @ 82FF894 + .2byte 0x0001, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF89C:: @ 82FF89C + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF8A4:: @ 82FF8A4 + .2byte 0x0001, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF8AC:: @ 82FF8AC + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF8B4:: @ 82FF8B4 + .2byte 0x0001, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF8BC:: @ 82FF8BC + .2byte 0x0000, 0x000f, 0x0008, 0x000f, 0x0002, 0x0016, 0x0008, 0x0005 + .2byte 0x0003, 0x0008, 0x0004, 0x0005, 0x0006, 0x0005, 0x0004, 0x0005 + .2byte 0x0006, 0x0005, 0x0004, 0x0005, 0x0006, 0x0005, 0x0004, 0x0005 + .2byte 0x0006, 0x0005, 0x0005, 0x0005, 0x0007, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF8FC:: @ 82FF8FC + .2byte 0x0000, 0x000a, 0x0008, 0x000f, 0x0002, 0x000f, 0x0008, 0x000f + .2byte 0x0009, 0x000f, 0x0000, 0x000a, 0x0009, 0x000a, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF91C:: @ 82FF91C + .2byte 0x0000, 0x000a, 0x0009, 0x000a, 0x0000, 0x000a, 0x000a, 0x0014, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF930:: @ 82FF930 + .2byte 0x0000, 0x000f, 0x000b, 0x000f, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF93C:: @ 82FF93C + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF944:: @ 82FF944 + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF94C:: @ 82FF94C + .2byte 0x0000, 0x000a, 0x0001, 0x0007, 0x0002, 0x0007, 0x0003, 0x0004 + .2byte 0x0004, 0x0004, 0x0003, 0x0004, 0x0004, 0x0004, 0x0003, 0x0004 + .2byte 0x0004, 0x0004, 0x0003, 0x0004, 0x0001, 0x0006, 0x0005, 0x0002 + .2byte 0x0000, 0x0002, 0x0005, 0x0002, 0x0000, 0x0002, 0x0005, 0x0002 + .2byte 0x0006, 0x0002, 0x0005, 0x0002, 0x0006, 0x0002, 0x0006, 0x000a + .2byte 0x0005, 0x0004, 0x0000, 0x000a, 0xffff, 0x0000 + + .align 2 +gUnknown_082FF9A8:: @ 82FF9A8 + .2byte 0x0000, 0x000c, 0x0007, 0x000c, 0x0008, 0x000c, 0x0000, 0x000c + .2byte 0x0007, 0x000c, 0x0008, 0x000c, 0x0000, 0x000c, 0x0007, 0x000c + .2byte 0x0008, 0x000c, 0x0000, 0x000c, 0x0007, 0x000c, 0x0008, 0x000c + .2byte 0x0000, 0x000c, 0x0007, 0x000c, 0x0008, 0x000c, 0x0009, 0x0003 + .2byte 0x0000, 0x0003, 0x0009, 0x0003, 0x0000, 0x0003, 0x0007, 0x000c + .2byte 0x0008, 0x000c, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFA00:: @ 82FFA00 + .2byte 0x0000, 0x000c, 0x0007, 0x000c, 0x0008, 0x000c, 0x0000, 0x000c + .2byte 0x0007, 0x000c, 0x0008, 0x000c, 0x0000, 0x000c, 0x0007, 0x000c + .2byte 0x0008, 0x000c, 0x0000, 0x000c, 0x0007, 0x000c, 0x0008, 0x000c + .2byte 0x0000, 0x000c, 0x0007, 0x000c, 0x0008, 0x000c, 0x0009, 0x0003 + .2byte 0x0000, 0x0003, 0x0009, 0x0003, 0x0000, 0x0003, 0x0007, 0x000c + .2byte 0x0008, 0x000c, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFA58:: @ 82FFA58 + .2byte 0x0000, 0x0012, 0x000a, 0x0012, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFA64:: @ 82FFA64 + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFA6C:: @ 82FFA6C + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFA74:: @ 82FFA74 + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFA7C:: @ 82FFA7C + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFA84:: @ 82FFA84 + .2byte 0x0001, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFA8C:: @ 82FFA8C + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFA94:: @ 82FFA94 + .2byte 0x0001, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFA9C:: @ 82FFA9C + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFAA4:: @ 82FFAA4 + .2byte 0x0001, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFAAC:: @ 82FFAAC + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFAB4:: @ 82FFAB4 + .2byte 0x0001, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFABC:: @ 82FFABC + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFAC4:: @ 82FFAC4 + .2byte 0x0001, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFACC:: @ 82FFACC + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFAD4:: @ 82FFAD4 + .2byte 0x0001, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFADC:: @ 82FFADC + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFAE4:: @ 82FFAE4 + .2byte 0x0000, 0x003f, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFAEC:: @ 82FFAEC + .2byte 0x0000, 0x003f, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFAF4:: @ 82FFAF4 + .2byte 0x0000, 0x003f, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFAFC:: @ 82FFAFC + .2byte 0x0000, 0x003f, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFB04:: @ 82FFB04 + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFB0C:: @ 82FFB0C + .2byte 0x0001, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFB14:: @ 82FFB14 + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFB1C:: @ 82FFB1C + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFB24:: @ 82FFB24 + .2byte 0x0001, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFB2C:: @ 82FFB2C + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFB34:: @ 82FFB34 + .2byte 0x0000, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFB3C:: @ 82FFB3C + .2byte 0x0000, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFB44:: @ 82FFB44 + .2byte 0x0000, 0x0001, 0x0001, 0x0012, 0x0000, 0x0012, 0x0001, 0x0012 + .2byte 0x0000, 0x0012, 0x0001, 0x0012, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFB60:: @ 82FFB60 + .2byte 0x0000, 0x0001, 0x0002, 0x0012, 0x0000, 0x0012, 0x0002, 0x0012 + .2byte 0x0000, 0x0012, 0x0002, 0x0012, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFB7C:: @ 82FFB7C + .2byte 0x0000, 0x0005, 0x0002, 0x0005, 0x0003, 0x0006, 0x0001, 0x0005 + .2byte 0x0000, 0x0005, 0x0002, 0x0005, 0x0003, 0x0005, 0x0001, 0x0005 + .2byte 0x0000, 0x0005, 0x0001, 0x0007, 0x0000, 0x0004, 0x0004, 0x0004 + .2byte 0x0000, 0x0004, 0x0004, 0x0004, 0x0000, 0x0014, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFBBC:: @ 82FFBBC + .2byte 0x0000, 0x0006, 0x0001, 0x0006, 0x0002, 0x0006, 0x0003, 0x0006 + .2byte 0x0001, 0x0006, 0x0000, 0x0006, 0x0001, 0x0006, 0x0000, 0x001e + .2byte 0xffff, 0x0000 + + .align 2 +gUnknown_082FFBE0:: @ 82FFBE0 + .2byte 0x0000, 0x000c, 0x0005, 0x000c, 0x0000, 0x000c, 0x0006, 0x000c, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFBF4:: @ 82FFBF4 + .2byte 0x0007, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFBFC:: @ 82FFBFC + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFC04:: @ 82FFC04 + .2byte 0x0001, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFC0C:: @ 82FFC0C + .2byte 0x0000, 0x003f, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFC14:: @ 82FFC14 + .2byte 0x0000, 0x003f, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFC1C:: @ 82FFC1C + .2byte 0x0000, 0x003f, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFC24:: @ 82FFC24 + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFC2C:: @ 82FFC2C + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFC34:: @ 82FFC34 + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFC3C:: @ 82FFC3C + .2byte 0x0000, 0x0001, 0x0001, 0x000a, 0x0000, 0x000a, 0x0001, 0x000a + .2byte 0x0000, 0x000a, 0x0001, 0x000a, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFC58:: @ 82FFC58 + .2byte 0x0000, 0x0001, 0x0002, 0x0008, 0x0000, 0x000c, 0x0002, 0x0008 + .2byte 0x0000, 0x000c, 0x0002, 0x0008, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFC74:: @ 82FFC74 + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFC7C:: @ 82FFC7C + .2byte 0x0000, 0x000a, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFC84:: @ 82FFC84 + .2byte 0x0001, 0x0009, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFC8C:: @ 82FFC8C + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFC94:: @ 82FFC94 + .2byte 0x0001, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFC9C:: @ 82FFC9C + .2byte 0x0000, 0x000a, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFCA4:: @ 82FFCA4 + .2byte 0x0001, 0x000a, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFCAC:: @ 82FFCAC + .2byte 0x0000, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFCB4:: @ 82FFCB4 + .2byte 0x0000, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFCBC:: @ 82FFCBC + .2byte 0x0000, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFCC4:: @ 82FFCC4 + .2byte 0x0000, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFCCC:: @ 82FFCCC + .2byte 0x0000, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFCD4:: @ 82FFCD4 + .2byte 0x0000, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFCDC:: @ 82FFCDC + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFCE4:: @ 82FFCE4 + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFCEC:: @ 82FFCEC + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFCF4:: @ 82FFCF4 + .2byte 0x0001, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFCFC:: @ 82FFCFC + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFD04:: @ 82FFD04 + .2byte 0x0000, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFD0C:: @ 82FFD0C + .2byte 0x0000, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFD14:: @ 82FFD14 + .2byte 0x0000, 0x0005, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFD1C:: @ 82FFD1C + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFD24:: @ 82FFD24 + .2byte 0x0001, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFD2C:: @ 82FFD2C + .2byte 0x0002, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFD34:: @ 82FFD34 + .2byte 0x0003, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFD3C:: @ 82FFD3C + .2byte 0x0000, 0x003f, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFD44:: @ 82FFD44 + .2byte 0x0000, 0x003f, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFD4C:: @ 82FFD4C + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFD54:: @ 82FFD54 + .2byte 0x0001, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFD5C:: @ 82FFD5C + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFD64:: @ 82FFD64 + .2byte 0x0001, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFD6C:: @ 82FFD6C + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFD74:: @ 82FFD74 + .2byte 0x0001, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFD7C:: @ 82FFD7C + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFD84:: @ 82FFD84 + .2byte 0x0001, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFD8C:: @ 82FFD8C + .2byte 0x0000, 0x0014, 0x0001, 0x001e, 0x0000, 0x0014, 0x0001, 0x001e, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFDA0:: @ 82FFDA0 + .2byte 0x0000, 0x0014, 0x0002, 0x0014, 0x0000, 0x0014, 0x0002, 0x0014, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFDB4:: @ 82FFDB4 + .2byte 0x0000, 0x000a, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFDBC:: @ 82FFDBC + .2byte 0x0000, 0x000a, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFDC4:: @ 82FFDC4 + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_082FFDCC:: @ 82FFDCC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFDD0:: @ 82FFDD0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFDD4:: @ 82FFDD4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFDD8:: @ 82FFDD8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFDDC:: @ 82FFDDC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFDE0:: @ 82FFDE0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFDE4:: @ 82FFDE4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFDE8:: @ 82FFDE8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFDEC:: @ 82FFDEC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFDF0:: @ 82FFDF0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFDF4:: @ 82FFDF4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFDF8:: @ 82FFDF8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFDFC:: @ 82FFDFC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE00:: @ 82FFE00 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE04:: @ 82FFE04 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE08:: @ 82FFE08 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE0C:: @ 82FFE0C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE10:: @ 82FFE10 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE14:: @ 82FFE14 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE18:: @ 82FFE18 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE1C:: @ 82FFE1C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE20:: @ 82FFE20 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE24:: @ 82FFE24 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE28:: @ 82FFE28 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE2C:: @ 82FFE2C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE30:: @ 82FFE30 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE34:: @ 82FFE34 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE38:: @ 82FFE38 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE3C:: @ 82FFE3C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE40:: @ 82FFE40 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE44:: @ 82FFE44 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE48:: @ 82FFE48 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE4C:: @ 82FFE4C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE50:: @ 82FFE50 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE54:: @ 82FFE54 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE58:: @ 82FFE58 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE5C:: @ 82FFE5C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE60:: @ 82FFE60 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE64:: @ 82FFE64 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE68:: @ 82FFE68 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE6C:: @ 82FFE6C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE70:: @ 82FFE70 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE74:: @ 82FFE74 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE78:: @ 82FFE78 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE7C:: @ 82FFE7C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE80:: @ 82FFE80 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE84:: @ 82FFE84 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE88:: @ 82FFE88 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE8C:: @ 82FFE8C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE90:: @ 82FFE90 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE94:: @ 82FFE94 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE98:: @ 82FFE98 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFE9C:: @ 82FFE9C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFEA0:: @ 82FFEA0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFEA4:: @ 82FFEA4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFEA8:: @ 82FFEA8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFEAC:: @ 82FFEAC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFEB0:: @ 82FFEB0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFEB4:: @ 82FFEB4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFEB8:: @ 82FFEB8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFEBC:: @ 82FFEBC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFEC0:: @ 82FFEC0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFEC4:: @ 82FFEC4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFEC8:: @ 82FFEC8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFECC:: @ 82FFECC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFED0:: @ 82FFED0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFED4:: @ 82FFED4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFED8:: @ 82FFED8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFEDC:: @ 82FFEDC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFEE0:: @ 82FFEE0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFEE4:: @ 82FFEE4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFEE8:: @ 82FFEE8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFEEC:: @ 82FFEEC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFEF0:: @ 82FFEF0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFEF4:: @ 82FFEF4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFEF8:: @ 82FFEF8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFEFC:: @ 82FFEFC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF00:: @ 82FFF00 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF04:: @ 82FFF04 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF08:: @ 82FFF08 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF0C:: @ 82FFF0C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF10:: @ 82FFF10 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF14:: @ 82FFF14 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF18:: @ 82FFF18 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF1C:: @ 82FFF1C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF20:: @ 82FFF20 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF24:: @ 82FFF24 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF28:: @ 82FFF28 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF2C:: @ 82FFF2C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF30:: @ 82FFF30 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF34:: @ 82FFF34 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF38:: @ 82FFF38 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF3C:: @ 82FFF3C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF40:: @ 82FFF40 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF44:: @ 82FFF44 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF48:: @ 82FFF48 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF4C:: @ 82FFF4C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF50:: @ 82FFF50 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF54:: @ 82FFF54 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF58:: @ 82FFF58 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF5C:: @ 82FFF5C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF60:: @ 82FFF60 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF64:: @ 82FFF64 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF68:: @ 82FFF68 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF6C:: @ 82FFF6C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF70:: @ 82FFF70 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF74:: @ 82FFF74 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF78:: @ 82FFF78 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF7C:: @ 82FFF7C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF80:: @ 82FFF80 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF84:: @ 82FFF84 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF88:: @ 82FFF88 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF8C:: @ 82FFF8C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF90:: @ 82FFF90 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF94:: @ 82FFF94 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF98:: @ 82FFF98 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFF9C:: @ 82FFF9C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFFA0:: @ 82FFFA0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFFA4:: @ 82FFFA4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFFA8:: @ 82FFFA8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFFAC:: @ 82FFFAC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFFB0:: @ 82FFFB0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFFB4:: @ 82FFFB4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFFB8:: @ 82FFFB8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFFBC:: @ 82FFFBC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFFC0:: @ 82FFFC0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFFC4:: @ 82FFFC4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFFC8:: @ 82FFFC8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFFCC:: @ 82FFFCC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFFD0:: @ 82FFFD0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFFD4:: @ 82FFFD4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFFD8:: @ 82FFFD8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFFDC:: @ 82FFFDC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFFE0:: @ 82FFFE0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFFE4:: @ 82FFFE4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFFE8:: @ 82FFFE8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFFEC:: @ 82FFFEC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFFF0:: @ 82FFFF0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFFF4:: @ 82FFFF4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFFF8:: @ 82FFFF8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_082FFFFC:: @ 82FFFFC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300000:: @ 8300000 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300004:: @ 8300004 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300008:: @ 8300008 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830000C:: @ 830000C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300010:: @ 8300010 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300014:: @ 8300014 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300018:: @ 8300018 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830001C:: @ 830001C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300020:: @ 8300020 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300024:: @ 8300024 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300028:: @ 8300028 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830002C:: @ 830002C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300030:: @ 8300030 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300034:: @ 8300034 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300038:: @ 8300038 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830003C:: @ 830003C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300040:: @ 8300040 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300044:: @ 8300044 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300048:: @ 8300048 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830004C:: @ 830004C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300050:: @ 8300050 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300054:: @ 8300054 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300058:: @ 8300058 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830005C:: @ 830005C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300060:: @ 8300060 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300064:: @ 8300064 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300068:: @ 8300068 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830006C:: @ 830006C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300070:: @ 8300070 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300074:: @ 8300074 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300078:: @ 8300078 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830007C:: @ 830007C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300080:: @ 8300080 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300084:: @ 8300084 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300088:: @ 8300088 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830008C:: @ 830008C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300090:: @ 8300090 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300094:: @ 8300094 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300098:: @ 8300098 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830009C:: @ 830009C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083000A0:: @ 83000A0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083000A4:: @ 83000A4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083000A8:: @ 83000A8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083000AC:: @ 83000AC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083000B0:: @ 83000B0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083000B4:: @ 83000B4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083000B8:: @ 83000B8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083000BC:: @ 83000BC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083000C0:: @ 83000C0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083000C4:: @ 83000C4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083000C8:: @ 83000C8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083000CC:: @ 83000CC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083000D0:: @ 83000D0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083000D4:: @ 83000D4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083000D8:: @ 83000D8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083000DC:: @ 83000DC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083000E0:: @ 83000E0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083000E4:: @ 83000E4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083000E8:: @ 83000E8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083000EC:: @ 83000EC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083000F0:: @ 83000F0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083000F4:: @ 83000F4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083000F8:: @ 83000F8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083000FC:: @ 83000FC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300100:: @ 8300100 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300104:: @ 8300104 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300108:: @ 8300108 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830010C:: @ 830010C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300110:: @ 8300110 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300114:: @ 8300114 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300118:: @ 8300118 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830011C:: @ 830011C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300120:: @ 8300120 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300124:: @ 8300124 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300128:: @ 8300128 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830012C:: @ 830012C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300130:: @ 8300130 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300134:: @ 8300134 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300138:: @ 8300138 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830013C:: @ 830013C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300140:: @ 8300140 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300144:: @ 8300144 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300148:: @ 8300148 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830014C:: @ 830014C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300150:: @ 8300150 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300154:: @ 8300154 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300158:: @ 8300158 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830015C:: @ 830015C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300160:: @ 8300160 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300164:: @ 8300164 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300168:: @ 8300168 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830016C:: @ 830016C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300170:: @ 8300170 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300174:: @ 8300174 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300178:: @ 8300178 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830017C:: @ 830017C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300180:: @ 8300180 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300184:: @ 8300184 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300188:: @ 8300188 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830018C:: @ 830018C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300190:: @ 8300190 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300194:: @ 8300194 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300198:: @ 8300198 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830019C:: @ 830019C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083001A0:: @ 83001A0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083001A4:: @ 83001A4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083001A8:: @ 83001A8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083001AC:: @ 83001AC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083001B0:: @ 83001B0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083001B4:: @ 83001B4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083001B8:: @ 83001B8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083001BC:: @ 83001BC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083001C0:: @ 83001C0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083001C4:: @ 83001C4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083001C8:: @ 83001C8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083001CC:: @ 83001CC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083001D0: @ 83001D0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083001D4:: @ 83001D4 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FF71C + .4byte gUnknown_082FF734 + .4byte gUnknown_082FF744 + .4byte gUnknown_082FF750 + + .align 2 +gUnknown_083001E8:: @ 83001E8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083001EC:: @ 83001EC + .4byte gUnknown_082FF538 + .4byte gUnknown_082FF758 + .4byte gUnknown_082FF774 + .4byte gUnknown_082FF790 + + .align 2 +gUnknown_083001FC:: @ 83001FC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300200:: @ 8300200 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FF79C + .4byte gUnknown_082FF7B0 + + .align 2 +gUnknown_0830020C:: @ 830020C + .4byte gUnknown_082FF538 + .4byte gUnknown_082FF7C4 + + .align 2 +gUnknown_08300214:: @ 8300214 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FF7CC + + .align 2 +gUnknown_0830021C:: @ 830021C + .4byte gUnknown_082FF538 + .4byte gUnknown_082FF7D4 + + .align 2 +gUnknown_08300224:: @ 8300224 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FF7DC + .4byte gUnknown_082FF7E4 + + .align 2 +gUnknown_08300230:: @ 8300230 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FF7EC + .4byte gUnknown_082FF7F4 + + .align 2 +gUnknown_0830023C:: @ 830023C + .4byte gUnknown_082FF538 + .4byte gUnknown_082FF7FC + .4byte gUnknown_082FF804 + + .align 2 +gUnknown_08300248:: @ 8300248 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FF80C + .4byte gUnknown_082FF814 + + .align 2 +gUnknown_08300254:: @ 8300254 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FF81C + .4byte gUnknown_082FF824 + + .align 2 +gUnknown_08300260:: @ 8300260 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300264:: @ 8300264 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FF82C + + .align 2 +gUnknown_0830026C:: @ 830026C + .4byte gUnknown_082FF538 + .4byte gUnknown_082FF834 + .4byte gUnknown_082FF83C + + .align 2 +gUnknown_08300278:: @ 8300278 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FF844 + + .align 2 +gUnknown_08300280:: @ 8300280 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FF84C + + .align 2 +gUnknown_08300288:: @ 8300288 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FF854 + .4byte gUnknown_082FF85C + + .align 2 +gUnknown_08300294:: @ 8300294 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300298:: @ 8300298 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830029C:: @ 830029C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083002A0:: @ 83002A0 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FF864 + + .align 2 +gUnknown_083002A8:: @ 83002A8 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FF86C + + .align 2 +gUnknown_083002B0:: @ 83002B0 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FF874 + + .align 2 +gUnknown_083002B8:: @ 83002B8 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FF87C + + .align 2 +gUnknown_083002C0:: @ 83002C0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083002C4:: @ 83002C4 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FF884 + + .align 2 +gUnknown_083002CC:: @ 83002CC + .4byte gUnknown_082FF538 + .4byte gUnknown_082FF88C + .4byte gUnknown_082FF894 + + .align 2 +gUnknown_083002D8:: @ 83002D8 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FF89C + .4byte gUnknown_082FF8A4 + + .align 2 +gUnknown_083002E4:: @ 83002E4 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FF8AC + .4byte gUnknown_082FF8B4 + + .align 2 +gUnknown_083002F0:: @ 83002F0 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FF8BC + .4byte gUnknown_082FF8FC + .4byte gUnknown_082FF91C + .4byte gUnknown_082FF930 + + .align 2 +gUnknown_08300304:: @ 8300304 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300308:: @ 8300308 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FF93C + + .align 2 +gUnknown_08300310:: @ 8300310 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FF944 + + .align 2 +gUnknown_08300318:: @ 8300318 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FF94C + .4byte gUnknown_082FF9A8 + .4byte gUnknown_082FFA00 + .4byte gUnknown_082FFA58 + + .align 2 +gUnknown_0830032C:: @ 830032C + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFA64 + + .align 2 +gUnknown_08300334:: @ 8300334 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFA6C + + .align 2 +gUnknown_0830033C:: @ 830033C + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFA74 + + .align 2 +gUnknown_08300344:: @ 8300344 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300348:: @ 8300348 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFA7C + .4byte gUnknown_082FFA84 + + .align 2 +gUnknown_08300354:: @ 8300354 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300358:: @ 8300358 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830035C:: @ 830035C + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFA8C + .4byte gUnknown_082FFA94 + + .align 2 +gUnknown_08300368:: @ 8300368 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830036C:: @ 830036C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300370:: @ 8300370 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFA9C + .4byte gUnknown_082FFAA4 + + .align 2 +gUnknown_0830037C:: @ 830037C + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFAAC + .4byte gUnknown_082FFAB4 + + .align 2 +gUnknown_08300388:: @ 8300388 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFABC + .4byte gUnknown_082FFAC4 + + .align 2 +gUnknown_08300394:: @ 8300394 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFACC + .4byte gUnknown_082FFAD4 + + .align 2 +gUnknown_083003A0:: @ 83003A0 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFADC + + .align 2 +gUnknown_083003A8:: @ 83003A8 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFAE4 + + .align 2 +gUnknown_083003B0:: @ 83003B0 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFAEC + + .align 2 +gUnknown_083003B8:: @ 83003B8 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFAF4 + + .align 2 +gUnknown_083003C0:: @ 83003C0 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFAFC + + .align 2 +gUnknown_083003C8:: @ 83003C8 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFB04 + .4byte gUnknown_082FFB0C + + .align 2 +gUnknown_083003D4:: @ 83003D4 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFB14 + + .align 2 +gUnknown_083003DC:: @ 83003DC + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFB1C + .4byte gUnknown_082FFB24 + + .align 2 +gUnknown_083003E8:: @ 83003E8 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFB2C + + .align 2 +gUnknown_083003F0:: @ 83003F0 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFB34 + + .align 2 +gUnknown_083003F8:: @ 83003F8 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFB3C + + .align 2 +gUnknown_08300400:: @ 8300400 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFB44 + .4byte gUnknown_082FFB60 + + .align 2 +gUnknown_0830040C:: @ 830040C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300410:: @ 8300410 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300414:: @ 8300414 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300418:: @ 8300418 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830041C:: @ 830041C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300420:: @ 8300420 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300424:: @ 8300424 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFB7C + .4byte gUnknown_082FFBBC + .4byte gUnknown_082FFBE0 + .4byte gUnknown_082FFBF4 + + .align 2 +gUnknown_08300438:: @ 8300438 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFBFC + .4byte gUnknown_082FFC04 + + .align 2 +gUnknown_08300444:: @ 8300444 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFC0C + + .align 2 +gUnknown_0830044C:: @ 830044C + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFC14 + + .align 2 +gUnknown_08300454:: @ 8300454 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFC1C + + .align 2 +gUnknown_0830045C:: @ 830045C + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFC24 + + .align 2 +gUnknown_08300464:: @ 8300464 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFC2C + + .align 2 +gUnknown_0830046C:: @ 830046C + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFC34 + + .align 2 +gUnknown_08300474:: @ 8300474 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFC3C + .4byte gUnknown_082FFC58 + + .align 2 +gUnknown_08300480:: @ 8300480 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFC74 + + .align 2 +gUnknown_08300488:: @ 8300488 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFC7C + .4byte gUnknown_082FFC84 + + .align 2 +gUnknown_08300494:: @ 8300494 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFC8C + .4byte gUnknown_082FFC94 + + .align 2 +gUnknown_083004A0:: @ 83004A0 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFC9C + .4byte gUnknown_082FFCA4 + + .align 2 +gUnknown_083004AC:: @ 83004AC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083004B0:: @ 83004B0 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFCAC + + .align 2 +gUnknown_083004B8:: @ 83004B8 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFCB4 + + .align 2 +gUnknown_083004C0:: @ 83004C0 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFCBC + + .align 2 +gUnknown_083004C8:: @ 83004C8 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFCC4 + + .align 2 +gUnknown_083004D0:: @ 83004D0 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFCCC + + .align 2 +gUnknown_083004D8:: @ 83004D8 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFCD4 + + .align 2 +gUnknown_083004E0:: @ 83004E0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083004E4:: @ 83004E4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083004E8:: @ 83004E8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083004EC:: @ 83004EC + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFCDC + + .align 2 +gUnknown_083004F4:: @ 83004F4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083004F8:: @ 83004F8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083004FC:: @ 83004FC + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFCE4 + + .align 2 +gUnknown_08300504:: @ 8300504 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFCEC + .4byte gUnknown_082FFCF4 + + .align 2 +gUnknown_08300510:: @ 8300510 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFCFC + + .align 2 +gUnknown_08300518:: @ 8300518 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830051C:: @ 830051C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300520:: @ 8300520 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300524:: @ 8300524 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFD04 + + .align 2 +gUnknown_0830052C:: @ 830052C + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFD0C + + .align 2 +gUnknown_08300534:: @ 8300534 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFD14 + + .align 2 +gUnknown_0830053C:: @ 830053C + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFD1C + .4byte gUnknown_082FFD24 + .4byte gUnknown_082FFD2C + .4byte gUnknown_082FFD34 + + .align 2 +gUnknown_08300550:: @ 8300550 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFD3C + + .align 2 +gUnknown_08300558:: @ 8300558 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFD44 + + .align 2 +gUnknown_08300560:: @ 8300560 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300564:: @ 8300564 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300568:: @ 8300568 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830056C:: @ 830056C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300570:: @ 8300570 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300574:: @ 8300574 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300578:: @ 8300578 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830057C:: @ 830057C + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFD4C + .4byte gUnknown_082FFD54 + + .align 2 +gUnknown_08300588:: @ 8300588 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830058C:: @ 830058C + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFD5C + .4byte gUnknown_082FFD64 + + .align 2 +gUnknown_08300598:: @ 8300598 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830059C:: @ 830059C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083005A0:: @ 83005A0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083005A4:: @ 83005A4 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFD6C + + .align 2 +gUnknown_083005AC:: @ 83005AC + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFD74 + + .align 2 +gUnknown_083005B4:: @ 83005B4 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFD7C + .4byte gUnknown_082FFD84 + + .align 2 +gUnknown_083005C0:: @ 83005C0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083005C4:: @ 83005C4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083005C8:: @ 83005C8 + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFD8C + .4byte gUnknown_082FFDA0 + + .align 2 +gUnknown_083005D4:: @ 83005D4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083005D8:: @ 83005D8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083005DC:: @ 83005DC + .4byte gUnknown_082FF538 + .4byte gUnknown_082FFDC4 + + .align 2 +gUnknown_083005E4:: @ 83005E4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083005E8:: @ 83005E8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083005EC:: @ 83005EC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083005F0:: @ 83005F0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083005F4:: @ 83005F4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083005F8:: @ 83005F8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083005FC:: @ 83005FC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300600:: @ 8300600 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300604:: @ 8300604 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300608:: @ 8300608 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830060C:: @ 830060C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300610:: @ 8300610 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300614:: @ 8300614 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300618:: @ 8300618 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830061C:: @ 830061C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300620:: @ 8300620 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300624:: @ 8300624 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300628:: @ 8300628 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830062C:: @ 830062C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300630:: @ 8300630 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300634:: @ 8300634 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300638:: @ 8300638 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830063C:: @ 830063C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300640:: @ 8300640 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300644:: @ 8300644 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300648:: @ 8300648 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830064C:: @ 830064C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300650:: @ 8300650 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08300654:: @ 8300654 + .4byte gUnknown_082FF538 + + .4byte gUnknown_082FFDCC + .4byte gUnknown_082FFDD0 + .4byte gUnknown_082FFDD4 + .4byte gUnknown_082FFDD8 + .4byte gUnknown_082FFDDC + .4byte gUnknown_082FFDE0 + .4byte gUnknown_082FFDE4 + .4byte gUnknown_082FFDE8 + .4byte gUnknown_082FFDEC + .4byte gUnknown_082FFDF0 + .4byte gUnknown_082FFDF4 + .4byte gUnknown_082FFDF8 + .4byte gUnknown_082FFDFC + .4byte gUnknown_082FFE00 + .4byte gUnknown_082FFE04 + .4byte gUnknown_082FFE08 + .4byte gUnknown_082FFE0C + .4byte gUnknown_082FFE10 + .4byte gUnknown_082FFE14 + .4byte gUnknown_082FFE18 + .4byte gUnknown_082FFE1C + .4byte gUnknown_082FFE20 + .4byte gUnknown_082FFE24 + .4byte gUnknown_082FFE28 + .4byte gUnknown_082FFE2C + .4byte gUnknown_082FFE30 + .4byte gUnknown_082FFE34 + .4byte gUnknown_082FFE38 + .4byte gUnknown_082FFE3C + .4byte gUnknown_082FFE40 + .4byte gUnknown_082FFE44 + .4byte gUnknown_082FFE48 + .4byte gUnknown_082FFE4C + .4byte gUnknown_082FFE50 + .4byte gUnknown_082FFE54 + .4byte gUnknown_082FFE58 + .4byte gUnknown_082FFE5C + .4byte gUnknown_082FFE60 + .4byte gUnknown_082FFE64 + .4byte gUnknown_082FFE68 + .4byte gUnknown_082FFE6C + .4byte gUnknown_082FFE70 + .4byte gUnknown_082FFE74 + .4byte gUnknown_082FFE78 + .4byte gUnknown_082FFE7C + .4byte gUnknown_082FFE80 + .4byte gUnknown_082FFE84 + .4byte gUnknown_082FFE88 + .4byte gUnknown_082FFE8C + .4byte gUnknown_082FFE90 + .4byte gUnknown_082FFE94 + .4byte gUnknown_082FFE98 + .4byte gUnknown_082FFE9C + .4byte gUnknown_082FFEA0 + .4byte gUnknown_082FFEA4 + .4byte gUnknown_082FFEA8 + .4byte gUnknown_082FFEAC + .4byte gUnknown_082FFEB0 + .4byte gUnknown_082FFEB4 + .4byte gUnknown_082FFEB8 + .4byte gUnknown_082FFEBC + .4byte gUnknown_082FFEC0 + .4byte gUnknown_082FFEC4 + .4byte gUnknown_082FFEC8 + .4byte gUnknown_082FFECC + .4byte gUnknown_082FFED0 + .4byte gUnknown_082FFED4 + .4byte gUnknown_082FFED8 + .4byte gUnknown_082FFEDC + .4byte gUnknown_082FFEE0 + .4byte gUnknown_082FFEE4 + .4byte gUnknown_082FFEE8 + .4byte gUnknown_082FFEEC + .4byte gUnknown_082FFEF0 + .4byte gUnknown_082FFEF4 + .4byte gUnknown_082FFEF8 + .4byte gUnknown_082FFEFC + .4byte gUnknown_082FFF00 + .4byte gUnknown_082FFF04 + .4byte gUnknown_082FFF08 + .4byte gUnknown_082FFF0C + .4byte gUnknown_082FFF10 + .4byte gUnknown_082FFF14 + .4byte gUnknown_082FFF18 + .4byte gUnknown_082FFF1C + .4byte gUnknown_082FFF20 + .4byte gUnknown_082FFF24 + .4byte gUnknown_082FFF28 + .4byte gUnknown_082FFF2C + .4byte gUnknown_082FFF30 + .4byte gUnknown_082FFF34 + .4byte gUnknown_082FFF38 + .4byte gUnknown_082FFF3C + .4byte gUnknown_082FFF40 + .4byte gUnknown_082FFF44 + .4byte gUnknown_082FFF48 + .4byte gUnknown_082FFF4C + .4byte gUnknown_082FFF50 + .4byte gUnknown_082FFF54 + .4byte gUnknown_082FFF58 + .4byte gUnknown_082FFF5C + .4byte gUnknown_082FFF60 + .4byte gUnknown_082FFF64 + .4byte gUnknown_082FFF68 + .4byte gUnknown_082FFF6C + .4byte gUnknown_082FFF70 + .4byte gUnknown_082FFF74 + .4byte gUnknown_082FFF78 + .4byte gUnknown_082FFF7C + .4byte gUnknown_082FFF80 + .4byte gUnknown_082FFF84 + .4byte gUnknown_082FFF88 + .4byte gUnknown_082FFF8C + .4byte gUnknown_082FFF90 + .4byte gUnknown_082FFF94 + .4byte gUnknown_082FFF98 + .4byte gUnknown_082FFF9C + .4byte gUnknown_082FFFA0 + .4byte gUnknown_082FFFA4 + .4byte gUnknown_082FFFA8 + .4byte gUnknown_082FFFAC + .4byte gUnknown_082FFFB0 + .4byte gUnknown_082FFFB4 + .4byte gUnknown_082FFFB8 + .4byte gUnknown_082FFFBC + .4byte gUnknown_082FFFC0 + .4byte gUnknown_082FFFC4 + .4byte gUnknown_082FFFC8 + .4byte gUnknown_082FFFCC + .4byte gUnknown_082FFFD0 + .4byte gUnknown_082FFFD4 + .4byte gUnknown_082FFFD8 + .4byte gUnknown_082FFFDC + .4byte gUnknown_082FFFE0 + .4byte gUnknown_082FFFE4 + .4byte gUnknown_082FFFE8 + .4byte gUnknown_082FFFEC + .4byte gUnknown_082FFFF0 + .4byte gUnknown_082FFFF4 + .4byte gUnknown_082FFFF8 + .4byte gUnknown_082FFFFC + .4byte gUnknown_08300000 + .4byte gUnknown_08300004 + .4byte gUnknown_08300008 + .4byte gUnknown_0830000C + .4byte gUnknown_08300010 + .4byte gUnknown_08300014 + .4byte gUnknown_08300018 + .4byte gUnknown_0830001C + .4byte gUnknown_08300020 + .4byte gUnknown_08300024 + .4byte gUnknown_08300028 + .4byte gUnknown_0830002C + .4byte gUnknown_08300030 + .4byte gUnknown_08300034 + .4byte gUnknown_08300038 + .4byte gUnknown_0830003C + .4byte gUnknown_08300040 + .4byte gUnknown_08300044 + .4byte gUnknown_08300048 + .4byte gUnknown_0830004C + .4byte gUnknown_08300050 + .4byte gUnknown_08300054 + .4byte gUnknown_08300058 + .4byte gUnknown_0830005C + .4byte gUnknown_08300060 + .4byte gUnknown_08300064 + .4byte gUnknown_08300068 + .4byte gUnknown_0830006C + .4byte gUnknown_08300070 + .4byte gUnknown_08300074 + .4byte gUnknown_08300078 + .4byte gUnknown_0830007C + .4byte gUnknown_08300080 + .4byte gUnknown_08300084 + .4byte gUnknown_08300088 + .4byte gUnknown_0830008C + .4byte gUnknown_08300090 + .4byte gUnknown_08300094 + .4byte gUnknown_08300098 + .4byte gUnknown_0830009C + .4byte gUnknown_083000A0 + .4byte gUnknown_083000A4 + .4byte gUnknown_083000A8 + .4byte gUnknown_083000AC + .4byte gUnknown_083000B0 + .4byte gUnknown_083000B4 + .4byte gUnknown_083000B8 + .4byte gUnknown_083000BC + .4byte gUnknown_083000C0 + .4byte gUnknown_083000C4 + .4byte gUnknown_083000C8 + .4byte gUnknown_083000CC + .4byte gUnknown_083000D0 + .4byte gUnknown_083000D4 + .4byte gUnknown_083000D8 + .4byte gUnknown_083000DC + .4byte gUnknown_083000E0 + .4byte gUnknown_083000E4 + .4byte gUnknown_083000E8 + .4byte gUnknown_083000EC + .4byte gUnknown_083000F0 + .4byte gUnknown_083000F4 + .4byte gUnknown_083000F8 + .4byte gUnknown_083000FC + .4byte gUnknown_08300100 + .4byte gUnknown_08300104 + .4byte gUnknown_08300108 + .4byte gUnknown_0830010C + .4byte gUnknown_08300110 + .4byte gUnknown_08300114 + .4byte gUnknown_08300118 + .4byte gUnknown_0830011C + .4byte gUnknown_08300120 + .4byte gUnknown_08300124 + .4byte gUnknown_08300128 + .4byte gUnknown_0830012C + .4byte gUnknown_08300130 + .4byte gUnknown_08300134 + .4byte gUnknown_08300138 + .4byte gUnknown_0830013C + .4byte gUnknown_08300140 + .4byte gUnknown_08300144 + .4byte gUnknown_08300148 + .4byte gUnknown_0830014C + .4byte gUnknown_08300150 + .4byte gUnknown_08300154 + .4byte gUnknown_08300158 + .4byte gUnknown_0830015C + .4byte gUnknown_08300160 + .4byte gUnknown_08300164 + .4byte gUnknown_08300168 + .4byte gUnknown_0830016C + .4byte gUnknown_08300170 + .4byte gUnknown_08300174 + .4byte gUnknown_08300178 + .4byte gUnknown_0830017C + .4byte gUnknown_08300180 + .4byte gUnknown_08300184 + .4byte gUnknown_08300188 + .4byte gUnknown_0830018C + .4byte gUnknown_08300190 + .4byte gUnknown_08300194 + .4byte gUnknown_08300198 + .4byte gUnknown_0830019C + .4byte gUnknown_083001A0 + .4byte gUnknown_083001A4 + .4byte gUnknown_083001A8 + .4byte gUnknown_083001AC + .4byte gUnknown_083001B0 + .4byte gUnknown_083001B4 + .4byte gUnknown_083001B8 + .4byte gUnknown_083001BC + .4byte gUnknown_083001BC + .4byte gUnknown_083001BC + .4byte gUnknown_083001BC + .4byte gUnknown_083001BC + .4byte gUnknown_083001BC + .4byte gUnknown_083001BC + .4byte gUnknown_083001BC + .4byte gUnknown_083001BC + .4byte gUnknown_083001BC + .4byte gUnknown_083001BC + .4byte gUnknown_083001BC + .4byte gUnknown_083001BC + .4byte gUnknown_083001BC + .4byte gUnknown_083001BC + .4byte gUnknown_083001BC + .4byte gUnknown_083001BC + .4byte gUnknown_083001BC + .4byte gUnknown_083001BC + .4byte gUnknown_083001BC + .4byte gUnknown_083001BC + .4byte gUnknown_083001BC + .4byte gUnknown_083001BC + .4byte gUnknown_083001BC + .4byte gUnknown_083001BC + .4byte gUnknown_083001C0 + .4byte gUnknown_083001C4 + .4byte gUnknown_083001C8 + .4byte gUnknown_083001CC + .4byte gUnknown_083001D0 + .4byte gUnknown_083001D4 + .4byte gUnknown_083001E8 + .4byte gUnknown_083001EC + .4byte gUnknown_083001FC + .4byte gUnknown_08300200 + .4byte gUnknown_0830020C + .4byte gUnknown_08300214 + .4byte gUnknown_0830021C + .4byte gUnknown_08300224 + .4byte gUnknown_08300230 + .4byte gUnknown_0830023C + .4byte gUnknown_08300248 + .4byte gUnknown_08300254 + .4byte gUnknown_08300260 + .4byte gUnknown_08300264 + .4byte gUnknown_0830026C + .4byte gUnknown_08300278 + .4byte gUnknown_08300280 + .4byte gUnknown_08300288 + .4byte gUnknown_08300294 + .4byte gUnknown_08300298 + .4byte gUnknown_0830029C + .4byte gUnknown_083002A0 + .4byte gUnknown_083002A8 + .4byte gUnknown_083002B0 + .4byte gUnknown_083002B8 + .4byte gUnknown_083002C0 + .4byte gUnknown_083002C4 + .4byte gUnknown_083002CC + .4byte gUnknown_083002D8 + .4byte gUnknown_083002E4 + .4byte gUnknown_083002F0 + .4byte gUnknown_08300304 + .4byte gUnknown_08300308 + .4byte gUnknown_08300310 + .4byte gUnknown_08300318 + .4byte gUnknown_0830032C + .4byte gUnknown_08300334 + .4byte gUnknown_0830033C + .4byte gUnknown_08300344 + .4byte gUnknown_08300348 + .4byte gUnknown_08300354 + .4byte gUnknown_08300358 + .4byte gUnknown_0830035C + .4byte gUnknown_08300368 + .4byte gUnknown_0830036C + .4byte gUnknown_08300370 + .4byte gUnknown_0830037C + .4byte gUnknown_08300388 + .4byte gUnknown_08300394 + .4byte gUnknown_083003A0 + .4byte gUnknown_083003A8 + .4byte gUnknown_083003B0 + .4byte gUnknown_083003B8 + .4byte gUnknown_083003C0 + .4byte gUnknown_083003C8 + .4byte gUnknown_083003D4 + .4byte gUnknown_083003DC + .4byte gUnknown_083003E8 + .4byte gUnknown_083003F0 + .4byte gUnknown_083003F8 + .4byte gUnknown_08300400 + .4byte gUnknown_0830040C + .4byte gUnknown_08300410 + .4byte gUnknown_08300414 + .4byte gUnknown_08300418 + .4byte gUnknown_0830041C + .4byte gUnknown_08300420 + .4byte gUnknown_08300424 + .4byte gUnknown_08300438 + .4byte gUnknown_08300444 + .4byte gUnknown_0830044C + .4byte gUnknown_08300454 + .4byte gUnknown_0830045C + .4byte gUnknown_08300464 + .4byte gUnknown_0830046C + .4byte gUnknown_08300474 + .4byte gUnknown_08300480 + .4byte gUnknown_08300488 + .4byte gUnknown_08300494 + .4byte gUnknown_083004A0 + .4byte gUnknown_083004AC + .4byte gUnknown_083004B0 + .4byte gUnknown_083004B8 + .4byte gUnknown_083004C0 + .4byte gUnknown_083004C8 + .4byte gUnknown_083004D0 + .4byte gUnknown_083004D8 + .4byte gUnknown_083004E0 + .4byte gUnknown_083004E4 + .4byte gUnknown_083004E8 + .4byte gUnknown_083004EC + .4byte gUnknown_083004F4 + .4byte gUnknown_083004F8 + .4byte gUnknown_083004FC + .4byte gUnknown_08300504 + .4byte gUnknown_08300510 + .4byte gUnknown_08300518 + .4byte gUnknown_0830051C + .4byte gUnknown_08300520 + .4byte gUnknown_08300524 + .4byte gUnknown_0830052C + .4byte gUnknown_08300534 + .4byte gUnknown_0830053C + .4byte gUnknown_08300550 + .4byte gUnknown_08300558 + .4byte gUnknown_08300560 + .4byte gUnknown_08300564 + .4byte gUnknown_08300568 + .4byte gUnknown_0830056C + .4byte gUnknown_08300570 + .4byte gUnknown_08300574 + .4byte gUnknown_08300578 + .4byte gUnknown_0830057C + .4byte gUnknown_08300588 + .4byte gUnknown_0830058C + .4byte gUnknown_08300598 + .4byte gUnknown_0830059C + .4byte gUnknown_083005A0 + .4byte gUnknown_083005A4 + .4byte gUnknown_083005AC + .4byte gUnknown_083005B4 + .4byte gUnknown_083005C0 + .4byte gUnknown_083005C4 + .4byte gUnknown_083005C8 + .4byte gUnknown_083005D4 + .4byte gUnknown_083005D8 + .4byte gUnknown_083005DC + .4byte gUnknown_083005E4 + .4byte gUnknown_083005E8 + .4byte gUnknown_083005EC + .4byte gUnknown_083005EC + .4byte gUnknown_083005F0 + .4byte gUnknown_083005F4 + .4byte gUnknown_083005F8 + .4byte gUnknown_083005FC + .4byte gUnknown_08300600 + .4byte gUnknown_08300604 + .4byte gUnknown_08300608 + .4byte gUnknown_0830060C + .4byte gUnknown_08300610 + .4byte gUnknown_08300614 + .4byte gUnknown_08300618 + .4byte gUnknown_0830061C + .4byte gUnknown_08300620 + .4byte gUnknown_08300624 + .4byte gUnknown_08300628 + .4byte gUnknown_0830062C + .4byte gUnknown_08300630 + .4byte gUnknown_08300634 + .4byte gUnknown_08300638 + .4byte gUnknown_0830063C + .4byte gUnknown_08300640 + .4byte gUnknown_08300644 + .4byte gUnknown_08300648 + .4byte gUnknown_0830064C + .4byte gUnknown_08300650 + .4byte gUnknown_08300654 + + .align 2 +gUnknown_08300D38:: @ 8300D38 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x45, 0x0e, 0x00, 0x00 + .byte 0x56, 0x0a, 0x00, 0x00 + .byte 0x88, 0x03, 0x00, 0x00 + .byte 0x55, 0x0c, 0x00, 0x00 + .byte 0x66, 0x09, 0x00, 0x00 + .byte 0x88, 0x01, 0x00, 0x00 + .byte 0x65, 0x0d, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x45, 0x10, 0x00, 0x00 + .byte 0x54, 0x14, 0x00, 0x00 + .byte 0x76, 0x09, 0x00, 0x00 + .byte 0x54, 0x12, 0x00, 0x00 + .byte 0x45, 0x0e, 0x00, 0x00 + .byte 0x86, 0x09, 0x00, 0x00 + .byte 0x65, 0x0d, 0x00, 0x00 + .byte 0x67, 0x0b, 0x00, 0x00 + .byte 0x88, 0x01, 0x00, 0x00 + .byte 0x44, 0x10, 0x00, 0x00 + .byte 0x66, 0x0b, 0x00, 0x00 + .byte 0x45, 0x0f, 0x00, 0x00 + .byte 0x78, 0x00, 0x00, 0x00 + .byte 0x65, 0x0c, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x67, 0x09, 0x00, 0x00 + .byte 0x67, 0x04, 0x00, 0x00 + .byte 0x55, 0x0e, 0x00, 0x00 + .byte 0x76, 0x09, 0x00, 0x00 + .byte 0x45, 0x0f, 0x00, 0x00 + .byte 0x66, 0x0b, 0x00, 0x00 + .byte 0x78, 0x03, 0x00, 0x00 + .byte 0x55, 0x0c, 0x00, 0x00 + .byte 0x66, 0x09, 0x00, 0x00 + .byte 0x78, 0x02, 0x00, 0x00 + .byte 0x55, 0x10, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x65, 0x0c, 0x00, 0x00 + .byte 0x88, 0x03, 0x00, 0x00 + .byte 0x45, 0x10, 0x00, 0x00 + .byte 0x67, 0x08, 0x00, 0x00 + .byte 0x67, 0x06, 0x00, 0x00 + .byte 0x88, 0x03, 0x00, 0x00 + .byte 0x45, 0x0f, 0x00, 0x00 + .byte 0x66, 0x0a, 0x00, 0x00 + .byte 0x77, 0x06, 0x00, 0x00 + .byte 0x55, 0x0f, 0x00, 0x00 + .byte 0x86, 0x08, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x54, 0x12, 0x00, 0x00 + .byte 0x75, 0x0d, 0x00, 0x00 + .byte 0x55, 0x0c, 0x00, 0x00 + .byte 0x77, 0x07, 0x00, 0x00 + .byte 0x56, 0x09, 0x00, 0x00 + .byte 0x78, 0x02, 0x00, 0x00 + .byte 0x65, 0x0e, 0x00, 0x00 + .byte 0x77, 0x07, 0x00, 0x00 + .byte 0x66, 0x0b, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x74, 0x13, 0x00, 0x00 + .byte 0x76, 0x0a, 0x00, 0x00 + .byte 0x76, 0x08, 0x00, 0x00 + .byte 0x66, 0x0b, 0x00, 0x00 + .byte 0x77, 0x05, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x56, 0x0b, 0x00, 0x00 + .byte 0x67, 0x06, 0x00, 0x00 + .byte 0x88, 0x01, 0x00, 0x00 + .byte 0x65, 0x0f, 0x00, 0x00 + .byte 0x66, 0x0b, 0x00, 0x00 + .byte 0x77, 0x05, 0x00, 0x00 + .byte 0x46, 0x09, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x54, 0x12, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x77, 0x05, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x88, 0x01, 0x00, 0x00 + .byte 0x66, 0x0b, 0x00, 0x00 + .byte 0x86, 0x08, 0x00, 0x00 + .byte 0x43, 0x15, 0x00, 0x00 + .byte 0x76, 0x08, 0x00, 0x00 + .byte 0x66, 0x09, 0x00, 0x00 + .byte 0x57, 0x05, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x76, 0x0a, 0x00, 0x00 + .byte 0x87, 0x07, 0x00, 0x00 + .byte 0x65, 0x0c, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x55, 0x10, 0x00, 0x00 + .byte 0x87, 0x05, 0x00, 0x00 + .byte 0x77, 0x06, 0x00, 0x00 + .byte 0x77, 0x05, 0x00, 0x00 + .byte 0x77, 0x05, 0x00, 0x00 + .byte 0x78, 0x02, 0x00, 0x00 + .byte 0x77, 0x07, 0x00, 0x00 + .byte 0x77, 0x04, 0x00, 0x00 + .byte 0x65, 0x0d, 0x00, 0x00 + .byte 0x88, 0x03, 0x00, 0x00 + .byte 0x44, 0x13, 0x00, 0x00 + .byte 0x55, 0x0e, 0x00, 0x00 + .byte 0x87, 0x07, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x55, 0x0f, 0x00, 0x00 + .byte 0x76, 0x0b, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x67, 0x04, 0x00, 0x00 + .byte 0x86, 0x08, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x76, 0x09, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x76, 0x09, 0x00, 0x00 + .byte 0x67, 0x07, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x45, 0x0f, 0x00, 0x00 + .byte 0x67, 0x07, 0x00, 0x00 + .byte 0x66, 0x0a, 0x00, 0x00 + .byte 0x77, 0x04, 0x00, 0x00 + .byte 0x66, 0x0a, 0x00, 0x00 + .byte 0x77, 0x06, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x77, 0x04, 0x00, 0x00 + .byte 0x78, 0x02, 0x00, 0x00 + .byte 0x77, 0x04, 0x00, 0x00 + .byte 0x77, 0x04, 0x00, 0x00 + .byte 0x78, 0x00, 0x00, 0x00 + .byte 0x67, 0x06, 0x00, 0x00 + .byte 0x88, 0x08, 0x00, 0x00 + .byte 0x85, 0x0d, 0x00, 0x00 + .byte 0x54, 0x11, 0x00, 0x00 + .byte 0x56, 0x09, 0x00, 0x00 + .byte 0x67, 0x06, 0x00, 0x00 + .byte 0x76, 0x09, 0x00, 0x00 + .byte 0x66, 0x0a, 0x00, 0x00 + .byte 0x55, 0x0d, 0x00, 0x00 + .byte 0x45, 0x0f, 0x00, 0x00 + .byte 0x67, 0x07, 0x00, 0x00 + .byte 0x54, 0x11, 0x00, 0x00 + .byte 0x88, 0x03, 0x00, 0x00 + .byte 0x88, 0x01, 0x00, 0x00 + .byte 0x87, 0x05, 0x00, 0x00 + .byte 0x88, 0x03, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x75, 0x0e, 0x00, 0x00 + .byte 0x87, 0x06, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x55, 0x0d, 0x00, 0x00 + .byte 0x75, 0x0d, 0x00, 0x00 + .byte 0x77, 0x04, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x55, 0x0e, 0x00, 0x00 + .byte 0x76, 0x08, 0x00, 0x00 + .byte 0x78, 0x00, 0x00, 0x00 + .byte 0x55, 0x0f, 0x00, 0x00 + .byte 0x67, 0x06, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x47, 0x04, 0x00, 0x00 + .byte 0x67, 0x07, 0x00, 0x00 + .byte 0x55, 0x0d, 0x00, 0x00 + .byte 0x58, 0x03, 0x00, 0x00 + .byte 0x56, 0x0c, 0x00, 0x00 + .byte 0x67, 0x04, 0x00, 0x00 + .byte 0x54, 0x13, 0x00, 0x00 + .byte 0x87, 0x05, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x75, 0x10, 0x00, 0x00 + .byte 0x87, 0x0b, 0x00, 0x00 + .byte 0x45, 0x0c, 0x00, 0x00 + .byte 0x44, 0x14, 0x00, 0x00 + .byte 0x44, 0x12, 0x00, 0x00 + .byte 0x34, 0x14, 0x00, 0x00 + .byte 0x46, 0x09, 0x00, 0x00 + .byte 0x44, 0x14, 0x00, 0x00 + .byte 0x47, 0x07, 0x00, 0x00 + .byte 0x55, 0x10, 0x00, 0x00 + .byte 0x56, 0x0a, 0x00, 0x00 + .byte 0x77, 0x05, 0x00, 0x00 + .byte 0x45, 0x0e, 0x00, 0x00 + .byte 0x65, 0x0e, 0x00, 0x00 + .byte 0x76, 0x09, 0x00, 0x00 + .byte 0x67, 0x06, 0x00, 0x00 + .byte 0x67, 0x06, 0x00, 0x00 + .byte 0x66, 0x0a, 0x00, 0x00 + .byte 0x55, 0x0f, 0x00, 0x00 + .byte 0x77, 0x07, 0x00, 0x00 + .byte 0x58, 0x03, 0x00, 0x00 + .byte 0x44, 0x10, 0x00, 0x00 + .byte 0x56, 0x08, 0x00, 0x00 + .byte 0x86, 0x0a, 0x00, 0x00 + .byte 0x54, 0x10, 0x00, 0x00 + .byte 0x77, 0x07, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x67, 0x08, 0x00, 0x00 + .byte 0x66, 0x0b, 0x00, 0x00 + .byte 0x58, 0x01, 0x00, 0x00 + .byte 0x55, 0x0c, 0x00, 0x00 + .byte 0x35, 0x0f, 0x00, 0x00 + .byte 0x77, 0x06, 0x00, 0x00 + .byte 0x88, 0x03, 0x00, 0x00 + .byte 0x56, 0x0a, 0x00, 0x00 + .byte 0x76, 0x09, 0x00, 0x00 + .byte 0x74, 0x11, 0x00, 0x00 + .byte 0x78, 0x03, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x55, 0x0d, 0x00, 0x00 + .byte 0x57, 0x06, 0x00, 0x00 + .byte 0x56, 0x0a, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x66, 0x09, 0x00, 0x00 + .byte 0x88, 0x03, 0x00, 0x00 + .byte 0x67, 0x05, 0x00, 0x00 + .byte 0x45, 0x0d, 0x00, 0x00 + .byte 0x78, 0x01, 0x00, 0x00 + .byte 0x45, 0x0d, 0x00, 0x00 + .byte 0x57, 0x0d, 0x00, 0x00 + .byte 0x43, 0x14, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x65, 0x0c, 0x00, 0x00 + .byte 0x55, 0x0e, 0x00, 0x00 + .byte 0x66, 0x0a, 0x00, 0x00 + .byte 0x56, 0x08, 0x00, 0x00 + .byte 0x88, 0x01, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x56, 0x0b, 0x00, 0x00 + .byte 0x77, 0x05, 0x00, 0x00 + .byte 0x78, 0x04, 0x00, 0x00 + .byte 0x54, 0x10, 0x00, 0x00 + .byte 0x86, 0x08, 0x00, 0x00 + .byte 0x55, 0x0f, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x77, 0x06, 0x00, 0x00 + .byte 0x46, 0x09, 0x00, 0x00 + .byte 0x67, 0x05, 0x00, 0x00 + .byte 0x35, 0x0f, 0x00, 0x00 + .byte 0x76, 0x0a, 0x00, 0x00 + .byte 0x45, 0x0d, 0x00, 0x00 + .byte 0x77, 0x04, 0x00, 0x00 + .byte 0x77, 0x06, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x46, 0x09, 0x00, 0x00 + .byte 0x56, 0x09, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x55, 0x0e, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x56, 0x08, 0x00, 0x00 + .byte 0x88, 0x01, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x56, 0x0c, 0x00, 0x00 + .byte 0x67, 0x06, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x55, 0x0c, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x85, 0x0f, 0x00, 0x00 + .byte 0x78, 0x03, 0x00, 0x00 + .byte 0x45, 0x0e, 0x00, 0x00 + .byte 0x75, 0x11, 0x00, 0x00 + .byte 0x86, 0x09, 0x00, 0x00 + .byte 0x74, 0x10, 0x00, 0x00 + .byte 0x86, 0x0f, 0x00, 0x00 + .byte 0x65, 0x0e, 0x00, 0x00 + .byte 0x66, 0x09, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x46, 0x10, 0x00, 0x00 + .byte 0x56, 0x08, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x74, 0x12, 0x00, 0x00 + .byte 0x86, 0x0a, 0x00, 0x00 + .byte 0x66, 0x0a, 0x00, 0x00 + .byte 0x64, 0x10, 0x00, 0x00 + .byte 0x87, 0x06, 0x00, 0x00 + .byte 0x54, 0x10, 0x00, 0x00 + .byte 0x77, 0x04, 0x00, 0x00 + .byte 0x68, 0x08, 0x00, 0x00 + .byte 0x84, 0x18, 0x00, 0x00 + .byte 0x77, 0x04, 0x00, 0x00 + .byte 0x65, 0x0f, 0x00, 0x00 + .byte 0x88, 0x01, 0x00, 0x00 + .byte 0x75, 0x0f, 0x00, 0x00 + .byte 0x87, 0x0a, 0x00, 0x00 + .byte 0x66, 0x0b, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x67, 0x07, 0x00, 0x00 + .byte 0x55, 0x10, 0x00, 0x00 + .byte 0x78, 0x06, 0x00, 0x00 + .byte 0x56, 0x0c, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x66, 0x09, 0x00, 0x00 + .byte 0x46, 0x0b, 0x00, 0x00 + .byte 0x76, 0x09, 0x00, 0x00 + .byte 0x46, 0x18, 0x00, 0x00 + .byte 0x66, 0x0c, 0x00, 0x00 + .byte 0x88, 0x01, 0x00, 0x00 + .byte 0x46, 0x0d, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x67, 0x06, 0x00, 0x00 + .byte 0x78, 0x03, 0x00, 0x00 + .byte 0x54, 0x10, 0x00, 0x00 + .byte 0x86, 0x0c, 0x00, 0x00 + .byte 0x88, 0x01, 0x00, 0x00 + .byte 0x65, 0x0c, 0x00, 0x00 + .byte 0x88, 0x01, 0x00, 0x00 + .byte 0x64, 0x12, 0x00, 0x00 + .byte 0x67, 0x04, 0x00, 0x00 + .byte 0x65, 0x0f, 0x00, 0x00 + .byte 0x87, 0x09, 0x00, 0x00 + .byte 0x65, 0x10, 0x00, 0x00 + .byte 0x86, 0x0a, 0x00, 0x00 + .byte 0x88, 0x01, 0x00, 0x00 + .byte 0x74, 0x10, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x56, 0x0b, 0x00, 0x00 + .byte 0x76, 0x0a, 0x00, 0x00 + .byte 0x66, 0x09, 0x00, 0x00 + .byte 0x88, 0x01, 0x00, 0x00 + .byte 0x55, 0x0f, 0x00, 0x00 + .byte 0x46, 0x09, 0x00, 0x00 + .byte 0x77, 0x05, 0x00, 0x00 + .byte 0x56, 0x0e, 0x00, 0x00 + .byte 0x66, 0x0c, 0x00, 0x00 + .byte 0x76, 0x08, 0x00, 0x00 + .byte 0x65, 0x0c, 0x00, 0x00 + .byte 0x68, 0x01, 0x00, 0x00 + .byte 0x76, 0x11, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x55, 0x0c, 0x00, 0x00 + .byte 0x66, 0x0a, 0x00, 0x00 + .byte 0x77, 0x05, 0x00, 0x00 + .byte 0x76, 0x08, 0x00, 0x00 + .byte 0x74, 0x12, 0x00, 0x00 + .byte 0x78, 0x00, 0x00, 0x00 + .byte 0x86, 0x08, 0x00, 0x00 + .byte 0x55, 0x12, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x55, 0x0e, 0x00, 0x00 + .byte 0x78, 0x03, 0x00, 0x00 + .byte 0x88, 0x01, 0x00, 0x00 + .byte 0x55, 0x0e, 0x00, 0x00 + .byte 0x78, 0x03, 0x00, 0x00 + .byte 0x86, 0x0b, 0x00, 0x00 + .byte 0x68, 0x00, 0x00, 0x00 + .byte 0x56, 0x0e, 0x00, 0x00 + .byte 0x55, 0x0c, 0x00, 0x00 + .byte 0x77, 0x08, 0x00, 0x00 + .byte 0x87, 0x05, 0x00, 0x00 + .byte 0x77, 0x0b, 0x00, 0x00 + .byte 0x43, 0x14, 0x00, 0x00 + .byte 0x75, 0x0d, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x34, 0x11, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x56, 0x08, 0x00, 0x00 + .byte 0x67, 0x07, 0x00, 0x00 + .byte 0x78, 0x00, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x35, 0x0f, 0x00, 0x00 + .byte 0x47, 0x06, 0x00, 0x00 + .byte 0x78, 0x01, 0x00, 0x00 + .byte 0x56, 0x0b, 0x00, 0x00 + .byte 0x66, 0x09, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x55, 0x0f, 0x00, 0x00 + .byte 0x87, 0x07, 0x00, 0x00 + .byte 0x87, 0x06, 0x00, 0x00 + .byte 0x78, 0x04, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x88, 0x03, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x88, 0x01, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x88, 0x01, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x66, 0x0d, 0x00, 0x00 + .byte 0x88, 0x01, 0x00, 0x00 + .byte 0x37, 0x06, 0x00, 0x00 + .byte 0x33, 0x14, 0x00, 0x00 + .byte 0x34, 0x10, 0x00, 0x00 + .byte 0x44, 0x10, 0x00, 0x00 + .byte 0x44, 0x10, 0x00, 0x00 + .byte 0x44, 0x11, 0x00, 0x00 + .byte 0x44, 0x11, 0x00, 0x00 + .byte 0x35, 0x0e, 0x00, 0x00 + .byte 0x44, 0x10, 0x00, 0x00 + .byte 0x34, 0x10, 0x00, 0x00 + .byte 0x34, 0x11, 0x00, 0x00 + .byte 0x44, 0x11, 0x00, 0x00 + .byte 0x34, 0x13, 0x00, 0x00 + .byte 0x44, 0x13, 0x00, 0x00 + .byte 0x43, 0x14, 0x00, 0x00 + .byte 0x44, 0x10, 0x00, 0x00 + .byte 0x34, 0x13, 0x00, 0x00 + .byte 0x43, 0x15, 0x00, 0x00 + .byte 0x34, 0x13, 0x00, 0x00 + .byte 0x45, 0x0c, 0x00, 0x00 + .byte 0x34, 0x12, 0x00, 0x00 + .byte 0x44, 0x12, 0x00, 0x00 + .byte 0x44, 0x12, 0x00, 0x00 + .byte 0x44, 0x13, 0x00, 0x00 + .byte 0x33, 0x15, 0x00, 0x00 + .byte 0x34, 0x11, 0x00, 0x00 + .byte 0x34, 0x10, 0x00, 0x00 + .byte 0x35, 0x0f, 0x00, 0x00 + .byte 0x35, 0x0d, 0x00, 0x00 + +@ 8301418 + .include "data/graphics/pokemon/mon_still_front_pic_table.inc" + + .align 2 +gUnknown_083021D8:: @ 83021D8 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x64, 0x10, 0x00, 0x00 + .byte 0x66, 0x09, 0x00, 0x00 + .byte 0x87, 0x07, 0x00, 0x00 + .byte 0x65, 0x0e, 0x00, 0x00 + .byte 0x66, 0x09, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x65, 0x0e, 0x00, 0x00 + .byte 0x76, 0x0a, 0x00, 0x00 + .byte 0x86, 0x08, 0x00, 0x00 + .byte 0x55, 0x0f, 0x00, 0x00 + .byte 0x65, 0x0c, 0x00, 0x00 + .byte 0x87, 0x06, 0x00, 0x00 + .byte 0x56, 0x0b, 0x00, 0x00 + .byte 0x46, 0x0a, 0x00, 0x00 + .byte 0x86, 0x09, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x85, 0x0c, 0x00, 0x00 + .byte 0x78, 0x02, 0x00, 0x00 + .byte 0x65, 0x0d, 0x00, 0x00 + .byte 0x75, 0x0d, 0x00, 0x00 + .byte 0x65, 0x0c, 0x00, 0x00 + .byte 0x87, 0x05, 0x00, 0x00 + .byte 0x66, 0x09, 0x00, 0x00 + .byte 0x77, 0x04, 0x00, 0x00 + .byte 0x77, 0x07, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x65, 0x0d, 0x00, 0x00 + .byte 0x86, 0x09, 0x00, 0x00 + .byte 0x55, 0x0c, 0x00, 0x00 + .byte 0x86, 0x0a, 0x00, 0x00 + .byte 0x77, 0x06, 0x00, 0x00 + .byte 0x56, 0x08, 0x00, 0x00 + .byte 0x86, 0x09, 0x00, 0x00 + .byte 0x88, 0x03, 0x00, 0x00 + .byte 0x65, 0x0d, 0x00, 0x00 + .byte 0x76, 0x0a, 0x00, 0x00 + .byte 0x76, 0x09, 0x00, 0x00 + .byte 0x77, 0x05, 0x00, 0x00 + .byte 0x65, 0x0d, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x76, 0x0b, 0x00, 0x00 + .byte 0x87, 0x06, 0x00, 0x00 + .byte 0x56, 0x0b, 0x00, 0x00 + .byte 0x66, 0x0a, 0x00, 0x00 + .byte 0x87, 0x07, 0x00, 0x00 + .byte 0x63, 0x14, 0x00, 0x00 + .byte 0x87, 0x07, 0x00, 0x00 + .byte 0x77, 0x06, 0x00, 0x00 + .byte 0x77, 0x04, 0x00, 0x00 + .byte 0x54, 0x10, 0x00, 0x00 + .byte 0x66, 0x0b, 0x00, 0x00 + .byte 0x65, 0x0c, 0x00, 0x00 + .byte 0x87, 0x07, 0x00, 0x00 + .byte 0x67, 0x07, 0x00, 0x00 + .byte 0x77, 0x05, 0x00, 0x00 + .byte 0x76, 0x0b, 0x00, 0x00 + .byte 0x77, 0x07, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x87, 0x06, 0x00, 0x00 + .byte 0x74, 0x10, 0x00, 0x00 + .byte 0x65, 0x0c, 0x00, 0x00 + .byte 0x86, 0x0b, 0x00, 0x00 + .byte 0x66, 0x0b, 0x00, 0x00 + .byte 0x76, 0x08, 0x00, 0x00 + .byte 0x67, 0x05, 0x00, 0x00 + .byte 0x65, 0x0c, 0x00, 0x00 + .byte 0x76, 0x09, 0x00, 0x00 + .byte 0x67, 0x04, 0x00, 0x00 + .byte 0x66, 0x0a, 0x00, 0x00 + .byte 0x66, 0x09, 0x00, 0x00 + .byte 0x87, 0x06, 0x00, 0x00 + .byte 0x56, 0x0a, 0x00, 0x00 + .byte 0x86, 0x0b, 0x00, 0x00 + .byte 0x66, 0x0b, 0x00, 0x00 + .byte 0x75, 0x0c, 0x00, 0x00 + .byte 0x84, 0x10, 0x00, 0x00 + .byte 0x66, 0x09, 0x00, 0x00 + .byte 0x87, 0x05, 0x00, 0x00 + .byte 0x85, 0x0e, 0x00, 0x00 + .byte 0x86, 0x0a, 0x00, 0x00 + .byte 0x43, 0x14, 0x00, 0x00 + .byte 0x66, 0x0a, 0x00, 0x00 + .byte 0x66, 0x0a, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x88, 0x01, 0x00, 0x00 + .byte 0x66, 0x0a, 0x00, 0x00 + .byte 0x77, 0x05, 0x00, 0x00 + .byte 0x75, 0x0c, 0x00, 0x00 + .byte 0x87, 0x05, 0x00, 0x00 + .byte 0x76, 0x0b, 0x00, 0x00 + .byte 0x87, 0x06, 0x00, 0x00 + .byte 0x85, 0x0e, 0x00, 0x00 + .byte 0x76, 0x08, 0x00, 0x00 + .byte 0x76, 0x09, 0x00, 0x00 + .byte 0x78, 0x00, 0x00, 0x00 + .byte 0x65, 0x0d, 0x00, 0x00 + .byte 0x66, 0x09, 0x00, 0x00 + .byte 0x66, 0x0a, 0x00, 0x00 + .byte 0x77, 0x04, 0x00, 0x00 + .byte 0x55, 0x0e, 0x00, 0x00 + .byte 0x65, 0x0d, 0x00, 0x00 + .byte 0x65, 0x0d, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x66, 0x0a, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x65, 0x0c, 0x00, 0x00 + .byte 0x65, 0x0c, 0x00, 0x00 + .byte 0x65, 0x0e, 0x00, 0x00 + .byte 0x66, 0x09, 0x00, 0x00 + .byte 0x77, 0x06, 0x00, 0x00 + .byte 0x85, 0x0c, 0x00, 0x00 + .byte 0x88, 0x03, 0x00, 0x00 + .byte 0x86, 0x0b, 0x00, 0x00 + .byte 0x85, 0x0e, 0x00, 0x00 + .byte 0x77, 0x05, 0x00, 0x00 + .byte 0x66, 0x09, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x76, 0x0b, 0x00, 0x00 + .byte 0x65, 0x0d, 0x00, 0x00 + .byte 0x85, 0x0e, 0x00, 0x00 + .byte 0x85, 0x0d, 0x00, 0x00 + .byte 0x77, 0x07, 0x00, 0x00 + .byte 0x86, 0x0a, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x66, 0x09, 0x00, 0x00 + .byte 0x85, 0x0d, 0x00, 0x00 + .byte 0x76, 0x09, 0x00, 0x00 + .byte 0x78, 0x00, 0x00, 0x00 + .byte 0x77, 0x04, 0x00, 0x00 + .byte 0x54, 0x11, 0x00, 0x00 + .byte 0x66, 0x0a, 0x00, 0x00 + .byte 0x66, 0x0a, 0x00, 0x00 + .byte 0x87, 0x06, 0x00, 0x00 + .byte 0x67, 0x05, 0x00, 0x00 + .byte 0x65, 0x0d, 0x00, 0x00 + .byte 0x66, 0x0a, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x65, 0x0d, 0x00, 0x00 + .byte 0x77, 0x05, 0x00, 0x00 + .byte 0x86, 0x08, 0x00, 0x00 + .byte 0x86, 0x0b, 0x00, 0x00 + .byte 0x65, 0x0c, 0x00, 0x00 + .byte 0x76, 0x0b, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x66, 0x09, 0x00, 0x00 + .byte 0x78, 0x00, 0x00, 0x00 + .byte 0x87, 0x06, 0x00, 0x00 + .byte 0x78, 0x01, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x56, 0x0a, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x78, 0x00, 0x00, 0x00 + .byte 0x76, 0x09, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x66, 0x0b, 0x00, 0x00 + .byte 0x67, 0x07, 0x00, 0x00 + .byte 0x88, 0x01, 0x00, 0x00 + .byte 0x67, 0x05, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x68, 0x03, 0x00, 0x00 + .byte 0x76, 0x0b, 0x00, 0x00 + .byte 0x77, 0x07, 0x00, 0x00 + .byte 0x73, 0x15, 0x00, 0x00 + .byte 0x86, 0x0b, 0x00, 0x00 + .byte 0x87, 0x05, 0x00, 0x00 + .byte 0x86, 0x08, 0x00, 0x00 + .byte 0x86, 0x08, 0x00, 0x00 + .byte 0x66, 0x0b, 0x00, 0x00 + .byte 0x65, 0x0f, 0x00, 0x00 + .byte 0x66, 0x0b, 0x00, 0x00 + .byte 0x54, 0x10, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x54, 0x11, 0x00, 0x00 + .byte 0x76, 0x08, 0x00, 0x00 + .byte 0x66, 0x09, 0x00, 0x00 + .byte 0x66, 0x09, 0x00, 0x00 + .byte 0x88, 0x01, 0x00, 0x00 + .byte 0x66, 0x0b, 0x00, 0x00 + .byte 0x75, 0x0c, 0x00, 0x00 + .byte 0x86, 0x08, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x66, 0x09, 0x00, 0x00 + .byte 0x66, 0x0b, 0x00, 0x00 + .byte 0x65, 0x0d, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x66, 0x09, 0x00, 0x00 + .byte 0x56, 0x0a, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x77, 0x04, 0x00, 0x00 + .byte 0x85, 0x0f, 0x00, 0x00 + .byte 0x76, 0x08, 0x00, 0x00 + .byte 0x76, 0x0b, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x66, 0x09, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x66, 0x0a, 0x00, 0x00 + .byte 0x36, 0x08, 0x00, 0x00 + .byte 0x75, 0x0c, 0x00, 0x00 + .byte 0x87, 0x05, 0x00, 0x00 + .byte 0x65, 0x0f, 0x00, 0x00 + .byte 0x84, 0x10, 0x00, 0x00 + .byte 0x85, 0x0f, 0x00, 0x00 + .byte 0x87, 0x05, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x76, 0x0a, 0x00, 0x00 + .byte 0x87, 0x05, 0x00, 0x00 + .byte 0x77, 0x07, 0x00, 0x00 + .byte 0x77, 0x04, 0x00, 0x00 + .byte 0x56, 0x0b, 0x00, 0x00 + .byte 0x77, 0x04, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x88, 0x03, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x76, 0x09, 0x00, 0x00 + .byte 0x63, 0x15, 0x00, 0x00 + .byte 0x75, 0x0d, 0x00, 0x00 + .byte 0x65, 0x0c, 0x00, 0x00 + .byte 0x75, 0x0d, 0x00, 0x00 + .byte 0x66, 0x0a, 0x00, 0x00 + .byte 0x67, 0x06, 0x00, 0x00 + .byte 0x87, 0x07, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x55, 0x0c, 0x00, 0x00 + .byte 0x87, 0x07, 0x00, 0x00 + .byte 0x87, 0x06, 0x00, 0x00 + .byte 0x65, 0x0e, 0x00, 0x00 + .byte 0x85, 0x0d, 0x00, 0x00 + .byte 0x76, 0x0a, 0x00, 0x00 + .byte 0x78, 0x03, 0x00, 0x00 + .byte 0x76, 0x0a, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x87, 0x05, 0x00, 0x00 + .byte 0x56, 0x09, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x66, 0x0b, 0x00, 0x00 + .byte 0x87, 0x07, 0x00, 0x00 + .byte 0x85, 0x0d, 0x00, 0x00 + .byte 0x86, 0x0a, 0x00, 0x00 + .byte 0x87, 0x06, 0x00, 0x00 + .byte 0x88, 0x03, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x67, 0x05, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x88, 0x01, 0x00, 0x00 + .byte 0x88, 0x01, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x87, 0x06, 0x00, 0x00 + .byte 0x86, 0x08, 0x00, 0x00 + .byte 0x88, 0x01, 0x00, 0x00 + .byte 0x67, 0x05, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x77, 0x05, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x87, 0x05, 0x00, 0x00 + .byte 0x76, 0x09, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x76, 0x0b, 0x00, 0x00 + .byte 0x85, 0x0f, 0x00, 0x00 + .byte 0x76, 0x0b, 0x00, 0x00 + .byte 0x83, 0x15, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x73, 0x14, 0x00, 0x00 + .byte 0x83, 0x14, 0x00, 0x00 + .byte 0x75, 0x0f, 0x00, 0x00 + .byte 0x86, 0x08, 0x00, 0x00 + .byte 0x86, 0x0a, 0x00, 0x00 + .byte 0x86, 0x09, 0x00, 0x00 + .byte 0x76, 0x0a, 0x00, 0x00 + .byte 0x86, 0x08, 0x00, 0x00 + .byte 0x83, 0x14, 0x00, 0x00 + .byte 0x86, 0x08, 0x00, 0x00 + .byte 0x77, 0x06, 0x00, 0x00 + .byte 0x64, 0x11, 0x00, 0x00 + .byte 0x86, 0x08, 0x00, 0x00 + .byte 0x85, 0x0d, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x77, 0x04, 0x00, 0x00 + .byte 0x85, 0x0e, 0x00, 0x00 + .byte 0x87, 0x06, 0x00, 0x00 + .byte 0x86, 0x0b, 0x00, 0x00 + .byte 0x88, 0x00, 0x00, 0x00 + .byte 0x83, 0x15, 0x00, 0x00 + .byte 0x83, 0x16, 0x00, 0x00 + .byte 0x86, 0x0a, 0x00, 0x00 + .byte 0x86, 0x08, 0x00, 0x00 + .byte 0x87, 0x06, 0x00, 0x00 + .byte 0x86, 0x08, 0x00, 0x00 + .byte 0x87, 0x07, 0x00, 0x00 + .byte 0x85, 0x0c, 0x00, 0x00 + .byte 0x86, 0x0a, 0x00, 0x00 + .byte 0x76, 0x08, 0x00, 0x00 + .byte 0x66, 0x0a, 0x00, 0x00 + .byte 0x86, 0x0a, 0x00, 0x00 + .byte 0x46, 0x0a, 0x00, 0x00 + .byte 0x77, 0x07, 0x00, 0x00 + .byte 0x87, 0x05, 0x00, 0x00 + .byte 0x67, 0x07, 0x00, 0x00 + .byte 0x68, 0x02, 0x00, 0x00 + .byte 0x87, 0x07, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x75, 0x0e, 0x00, 0x00 + .byte 0x74, 0x11, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x76, 0x0b, 0x00, 0x00 + .byte 0x87, 0x07, 0x00, 0x00 + .byte 0x84, 0x10, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x86, 0x0b, 0x00, 0x00 + .byte 0x84, 0x13, 0x00, 0x00 + .byte 0x64, 0x12, 0x00, 0x00 + .byte 0x86, 0x0a, 0x00, 0x00 + .byte 0x87, 0x06, 0x00, 0x00 + .byte 0x85, 0x0f, 0x00, 0x00 + .byte 0x87, 0x07, 0x00, 0x00 + .byte 0x76, 0x0a, 0x00, 0x00 + .byte 0x85, 0x0c, 0x00, 0x00 + .byte 0x87, 0x05, 0x00, 0x00 + .byte 0x87, 0x05, 0x00, 0x00 + .byte 0x86, 0x0a, 0x00, 0x00 + .byte 0x56, 0x0b, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x76, 0x08, 0x00, 0x00 + .byte 0x76, 0x08, 0x00, 0x00 + .byte 0x87, 0x04, 0x00, 0x00 + .byte 0x76, 0x0b, 0x00, 0x00 + .byte 0x68, 0x03, 0x00, 0x00 + .byte 0x86, 0x09, 0x00, 0x00 + .byte 0x87, 0x06, 0x00, 0x00 + .byte 0x77, 0x07, 0x00, 0x00 + .byte 0x66, 0x0b, 0x00, 0x00 + .byte 0x86, 0x08, 0x00, 0x00 + .byte 0x86, 0x08, 0x00, 0x00 + .byte 0x85, 0x0f, 0x00, 0x00 + .byte 0x86, 0x0a, 0x00, 0x00 + .byte 0x86, 0x08, 0x00, 0x00 + .byte 0x66, 0x0b, 0x00, 0x00 + .byte 0x77, 0x06, 0x00, 0x00 + .byte 0x87, 0x07, 0x00, 0x00 + .byte 0x85, 0x0d, 0x00, 0x00 + .byte 0x86, 0x09, 0x00, 0x00 + .byte 0x88, 0x03, 0x00, 0x00 + .byte 0x85, 0x0d, 0x00, 0x00 + .byte 0x68, 0x02, 0x00, 0x00 + .byte 0x77, 0x05, 0x00, 0x00 + .byte 0x78, 0x03, 0x00, 0x00 + .byte 0x77, 0x06, 0x00, 0x00 + .byte 0x65, 0x0c, 0x00, 0x00 + .byte 0x88, 0x03, 0x00, 0x00 + .byte 0x88, 0x01, 0x00, 0x00 + .byte 0x86, 0x0a, 0x00, 0x00 + .byte 0x54, 0x11, 0x00, 0x00 + .byte 0x84, 0x11, 0x00, 0x00 + .byte 0x87, 0x07, 0x00, 0x00 + .byte 0x45, 0x0d, 0x00, 0x00 + .byte 0x76, 0x08, 0x00, 0x00 + .byte 0x67, 0x06, 0x00, 0x00 + .byte 0x86, 0x09, 0x00, 0x00 + .byte 0x77, 0x04, 0x00, 0x00 + .byte 0x83, 0x17, 0x00, 0x00 + .byte 0x77, 0x05, 0x00, 0x00 + .byte 0x45, 0x0d, 0x00, 0x00 + .byte 0x57, 0x06, 0x00, 0x00 + .byte 0x77, 0x04, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x85, 0x0d, 0x00, 0x00 + .byte 0x77, 0x06, 0x00, 0x00 + .byte 0x66, 0x0a, 0x00, 0x00 + .byte 0x84, 0x10, 0x00, 0x00 + .byte 0x83, 0x14, 0x00, 0x00 + .byte 0x86, 0x0a, 0x00, 0x00 + .byte 0x85, 0x0e, 0x00, 0x00 + .byte 0x85, 0x0e, 0x00, 0x00 + .byte 0x84, 0x13, 0x00, 0x00 + .byte 0x87, 0x07, 0x00, 0x00 + .byte 0x78, 0x00, 0x00, 0x00 + .byte 0x88, 0x02, 0x00, 0x00 + .byte 0x88, 0x03, 0x00, 0x00 + .byte 0x87, 0x05, 0x00, 0x00 + .byte 0x86, 0x09, 0x00, 0x00 + .byte 0x47, 0x07, 0x00, 0x00 + .byte 0x36, 0x0a, 0x00, 0x00 + .byte 0x56, 0x09, 0x00, 0x00 + .byte 0x67, 0x06, 0x00, 0x00 + .byte 0x56, 0x08, 0x00, 0x00 + .byte 0x56, 0x0a, 0x00, 0x00 + .byte 0x66, 0x0a, 0x00, 0x00 + .byte 0x57, 0x05, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x37, 0x07, 0x00, 0x00 + .byte 0x46, 0x09, 0x00, 0x00 + .byte 0x57, 0x07, 0x00, 0x00 + .byte 0x46, 0x0a, 0x00, 0x00 + .byte 0x65, 0x0d, 0x00, 0x00 + .byte 0x65, 0x0d, 0x00, 0x00 + .byte 0x66, 0x08, 0x00, 0x00 + .byte 0x46, 0x0a, 0x00, 0x00 + .byte 0x55, 0x0f, 0x00, 0x00 + .byte 0x45, 0x0c, 0x00, 0x00 + .byte 0x57, 0x04, 0x00, 0x00 + .byte 0x45, 0x0d, 0x00, 0x00 + .byte 0x65, 0x0d, 0x00, 0x00 + .byte 0x56, 0x0b, 0x00, 0x00 + .byte 0x55, 0x0d, 0x00, 0x00 + .byte 0x55, 0x0f, 0x00, 0x00 + .byte 0x46, 0x0a, 0x00, 0x00 + .byte 0x46, 0x0a, 0x00, 0x00 + .byte 0x37, 0x06, 0x00, 0x00 + .byte 0x47, 0x06, 0x00, 0x00 +@ 83028B8 + .include "data/graphics/pokemon/mon_back_pic_table.inc" -gUnknown_082FECFC:: @ 82FECFC - .incbin "baserom.gba", 0x2fecfc, 0x40 +@ 8303678 + .include "data/graphics/pokemon/mon_palette_table.inc" -gUnknown_082FED3C:: @ 82FED3C - .incbin "baserom.gba", 0x2fed3c, 0x1b4 +@ 8304438 + .include "data/graphics/pokemon/mon_shiny_palette_table.inc" -gUnknown_082FEEF0:: @ 82FEEF0 - .incbin "baserom.gba", 0x2feef0, 0x128 +gUnknown_083051F8:: @ 83051F8 + .4byte gUnknown_082FF538 -gUnknown_082FF018:: @ 82FF018 - .incbin "baserom.gba", 0x2ff018, 0x2 + .align 2 +gUnknown_083051FC:: @ 83051FC + .4byte gUnknown_082FF538 -gUnknown_082FF01A:: @ 82FF01A - .incbin "baserom.gba", 0x2ff01a, 0xe + .align 2 +gUnknown_08305200:: @ 8305200 + .4byte gUnknown_082FF538 -gUnknown_082FF028:: @ 82FF028 - .incbin "baserom.gba", 0x2ff028, 0x10 + .align 2 +gUnknown_08305204:: @ 8305204 + .4byte gUnknown_082FF538 -gUnknown_082FF038:: @ 82FF038 - .incbin "baserom.gba", 0x2ff038, 0x10 + .align 2 +gUnknown_08305208:: @ 8305208 + .4byte gUnknown_082FF538 -gUnknown_082FF048:: @ 82FF048 - .incbin "baserom.gba", 0x2ff048, 0x28 + .align 2 +gUnknown_0830520C:: @ 830520C + .4byte gUnknown_082FF538 -gUnknown_082FF070:: @ 82FF070 - .incbin "baserom.gba", 0x2ff070, 0x10 + .align 2 +gUnknown_08305210:: @ 8305210 + .4byte gUnknown_082FF538 -gUnknown_082FF080:: @ 82FF080 - .incbin "baserom.gba", 0x2ff080, 0x8 + .align 2 +gUnknown_08305214:: @ 8305214 + .4byte gUnknown_082FF538 -gUnknown_082FF088:: @ 82FF088 - .incbin "baserom.gba", 0x2ff088, 0x18 + .align 2 +gUnknown_08305218:: @ 8305218 + .4byte gUnknown_082FF538 -gUnknown_082FF0A0:: @ 82FF0A0 - .incbin "baserom.gba", 0x2ff0a0, 0x20 + .align 2 +gUnknown_0830521C:: @ 830521C + .4byte gUnknown_082FF538 -gUnknown_082FF0C0:: @ 82FF0C0 - .incbin "baserom.gba", 0x2ff0c0, 0x20 + .align 2 +gUnknown_08305220:: @ 8305220 + .4byte gUnknown_082FF538 -gUnknown_082FF0E0:: @ 82FF0E0 - .incbin "baserom.gba", 0x2ff0e0, 0x3 + .align 2 +gUnknown_08305224:: @ 8305224 + .4byte gUnknown_082FF538 -gUnknown_082FF0E3:: @ 82FF0E3 - .incbin "baserom.gba", 0x2ff0e3, 0x5 + .align 2 +gUnknown_08305228:: @ 8305228 + .4byte gUnknown_082FF538 -gUnknown_082FF0E8:: @ 82FF0E8 - .incbin "baserom.gba", 0x2ff0e8, 0x8 + .align 2 +gUnknown_0830522C:: @ 830522C + .4byte gUnknown_082FF538 -gUnknown_082FF0F0:: @ 82FF0F0 - .incbin "baserom.gba", 0x2ff0f0, 0x4 + .align 2 +gUnknown_08305230:: @ 8305230 + .4byte gUnknown_082FF538 -gUnknown_082FF0F4:: @ 82FF0F4 - .incbin "baserom.gba", 0x2ff0f4, 0x20 + .align 2 +gUnknown_08305234:: @ 8305234 + .4byte gUnknown_082FF538 -gUnknown_082FF114:: @ 82FF114 - .incbin "baserom.gba", 0x2ff114, 0x4 + .align 2 +gUnknown_08305238:: @ 8305238 + .4byte gUnknown_082FF538 -gUnknown_082FF118:: @ 82FF118 - .incbin "baserom.gba", 0x2ff118, 0x10 + .align 2 +gUnknown_0830523C:: @ 830523C + .4byte gUnknown_082FF538 -gUnknown_082FF128:: @ 82FF128 - .incbin "baserom.gba", 0x2ff128, 0x50 + .align 2 +gUnknown_08305240:: @ 8305240 + .4byte gUnknown_082FF538 -gUnknown_082FF178:: @ 82FF178 - .incbin "baserom.gba", 0x2ff178, 0x50 + .align 2 +gUnknown_08305244:: @ 8305244 + .4byte gUnknown_082FF538 -gUnknown_082FF1C8:: @ 82FF1C8 - .incbin "baserom.gba", 0x2ff1c8, 0x10 + .align 2 +gUnknown_08305248:: @ 8305248 + .4byte gUnknown_082FF538 -gUnknown_082FF1D8:: @ 82FF1D8 - .incbin "baserom.gba", 0x2ff1d8, 0x20 + .align 2 +gUnknown_0830524C:: @ 830524C + .4byte gUnknown_082FF538 -gUnknown_082FF1F8:: @ 82FF1F8 - .incbin "baserom.gba", 0x2ff1f8, 0x420 + .align 2 +gUnknown_08305250:: @ 8305250 + .4byte gUnknown_082FF538 -gUnknown_082FF618:: @ 82FF618 - .incbin "baserom.gba", 0x2ff618, 0x7c + .align 2 +gUnknown_08305254:: @ 8305254 + .4byte gUnknown_082FF538 -gUnknown_082FF694:: @ 82FF694 - .incbin "baserom.gba", 0x2ff694, 0x2c + .align 2 +gUnknown_08305258:: @ 8305258 + .4byte gUnknown_082FF538 -gUnknown_082FF6C0:: @ 82FF6C0 - .incbin "baserom.gba", 0x2ff6c0, 0x4c + .align 2 +gUnknown_0830525C:: @ 830525C + .4byte gUnknown_082FF538 -gUnknown_082FF70C:: @ 82FF70C - .incbin "baserom.gba", 0x2ff70c, 0x162c + .align 2 +gUnknown_08305260:: @ 8305260 + .4byte gUnknown_082FF538 -gUnknown_08300D38:: @ 8300D38 - .incbin "baserom.gba", 0x300d38, 0x6e0 + .align 2 +gUnknown_08305264:: @ 8305264 + .4byte gUnknown_082FF538 -@ 8301418 - .include "data/graphics/pokemon/mon_still_front_pic_table.inc" + .align 2 +gUnknown_08305268:: @ 8305268 + .4byte gUnknown_082FF538 -gUnknown_083021D8:: @ 83021D8 - .incbin "baserom.gba", 0x3021d8, 0x6e0 + .align 2 +gUnknown_0830526C:: @ 830526C + .4byte gUnknown_082FF538 -@ 83028B8 - .include "data/graphics/pokemon/mon_back_pic_table.inc" + .align 2 +gUnknown_08305270:: @ 8305270 + .4byte gUnknown_082FF538 -@ 8303678 - .include "data/graphics/pokemon/mon_palette_table.inc" + .align 2 +gUnknown_08305274:: @ 8305274 + .4byte gUnknown_082FF538 -@ 8304438 - .include "data/graphics/pokemon/mon_shiny_palette_table.inc" + .align 2 +gUnknown_08305278:: @ 8305278 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830527C:: @ 830527C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08305280:: @ 8305280 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08305284:: @ 8305284 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08305288:: @ 8305288 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830528C:: @ 830528C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08305290:: @ 8305290 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08305294:: @ 8305294 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08305298:: @ 8305298 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830529C:: @ 830529C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083052A0:: @ 83052A0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083052A4:: @ 83052A4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083052A8:: @ 83052A8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083052AC:: @ 83052AC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083052B0:: @ 83052B0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083052B4:: @ 83052B4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083052B8:: @ 83052B8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083052BC:: @ 83052BC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083052C0:: @ 83052C0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083052C4:: @ 83052C4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083052C8:: @ 83052C8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083052CC:: @ 83052CC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083052D0:: @ 83052D0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083052D4:: @ 83052D4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083052D8:: @ 83052D8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083052DC:: @ 83052DC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083052E0:: @ 83052E0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083052E4:: @ 83052E4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083052E8:: @ 83052E8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083052EC:: @ 83052EC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083052F0:: @ 83052F0 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083052F4:: @ 83052F4 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083052F8:: @ 83052F8 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_083052FC:: @ 83052FC + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08305300:: @ 8305300 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08305304:: @ 8305304 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08305308:: @ 8305308 + .4byte gUnknown_082FF538 -@ 83051F8 - .incbin "baserom.gba", 0x3051f8, 0x174 + .align 2 +gUnknown_0830530C:: @ 830530C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08305310:: @ 8305310 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08305314:: @ 8305314 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08305318:: @ 8305318 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830531C:: @ 830531C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08305320:: @ 8305320 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08305324:: @ 8305324 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08305328:: @ 8305328 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830532C:: @ 830532C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08305330:: @ 8305330 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08305334:: @ 8305334 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08305338:: @ 8305338 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830533C:: @ 830533C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08305340:: @ 8305340 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08305344:: @ 8305344 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08305348:: @ 8305348 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830534C:: @ 830534C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08305350:: @ 8305350 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08305354:: @ 8305354 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08305358:: @ 8305358 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_0830535C:: @ 830535C + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08305360:: @ 8305360 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08305364:: @ 8305364 + .4byte gUnknown_082FF538 + + .align 2 +gUnknown_08305368:: @ 8305368 + .4byte gUnknown_082FF538 + .align 2 gUnknown_0830536C:: @ 830536C - .incbin "baserom.gba", 0x30536c, 0x174 + .4byte gUnknown_083051F8 + .4byte gUnknown_083051FC + .4byte gUnknown_08305200 + .4byte gUnknown_08305204 + .4byte gUnknown_08305208 + .4byte gUnknown_0830520C + .4byte gUnknown_08305210 + .4byte gUnknown_08305214 + .4byte gUnknown_08305218 + .4byte gUnknown_0830521C + .4byte gUnknown_08305220 + .4byte gUnknown_08305224 + .4byte gUnknown_08305228 + .4byte gUnknown_0830522C + .4byte gUnknown_08305230 + .4byte gUnknown_08305234 + .4byte gUnknown_08305238 + .4byte gUnknown_0830523C + .4byte gUnknown_08305240 + .4byte gUnknown_08305244 + .4byte gUnknown_08305248 + .4byte gUnknown_0830524C + .4byte gUnknown_08305250 + .4byte gUnknown_08305254 + .4byte gUnknown_08305258 + .4byte gUnknown_0830525C + .4byte gUnknown_08305260 + .4byte gUnknown_08305264 + .4byte gUnknown_08305268 + .4byte gUnknown_0830526C + .4byte gUnknown_08305270 + .4byte gUnknown_08305274 + .4byte gUnknown_08305278 + .4byte gUnknown_0830527C + .4byte gUnknown_08305280 + .4byte gUnknown_08305284 + .4byte gUnknown_08305288 + .4byte gUnknown_0830528C + .4byte gUnknown_08305290 + .4byte gUnknown_08305294 + .4byte gUnknown_08305298 + .4byte gUnknown_0830529C + .4byte gUnknown_083052A0 + .4byte gUnknown_083052A4 + .4byte gUnknown_083052A8 + .4byte gUnknown_083052AC + .4byte gUnknown_083052B0 + .4byte gUnknown_083052B4 + .4byte gUnknown_083052B8 + .4byte gUnknown_083052BC + .4byte gUnknown_083052C0 + .4byte gUnknown_083052C4 + .4byte gUnknown_083052C8 + .4byte gUnknown_083052CC + .4byte gUnknown_083052D0 + .4byte gUnknown_083052D4 + .4byte gUnknown_083052D8 + .4byte gUnknown_083052DC + .4byte gUnknown_083052E0 + .4byte gUnknown_083052E4 + .4byte gUnknown_083052E8 + .4byte gUnknown_083052EC + .4byte gUnknown_083052F0 + .4byte gUnknown_083052F4 + .4byte gUnknown_083052F8 + .4byte gUnknown_083052FC + .4byte gUnknown_08305300 + .4byte gUnknown_08305304 + .4byte gUnknown_08305308 + .4byte gUnknown_0830530C + .4byte gUnknown_08305310 + .4byte gUnknown_08305314 + .4byte gUnknown_08305318 + .4byte gUnknown_0830531C + .4byte gUnknown_08305320 + .4byte gUnknown_08305324 + .4byte gUnknown_08305328 + .4byte gUnknown_0830532C + .4byte gUnknown_08305330 + .4byte gUnknown_08305334 + .4byte gUnknown_08305338 + .4byte gUnknown_0830533C + .4byte gUnknown_08305340 + .4byte gUnknown_08305344 + .4byte gUnknown_08305348 + .4byte gUnknown_0830534C + .4byte gUnknown_08305350 + .4byte gUnknown_08305354 + .4byte gUnknown_08305358 + .4byte gUnknown_0830535C + .4byte gUnknown_08305360 + .4byte gUnknown_08305364 + .4byte gUnknown_08305368 -gUnknown_083054E0:: @ 83054E0 - .incbin "baserom.gba", 0x3054e0, 0x174 +@ 83054E0 + .include "data/graphics/trainers/front_pic_coords.inc" @ 8305654 .include "data/graphics/trainers/trainer_front_pic_table.inc" @@ -128,14 +4381,93 @@ gUnknown_083054E0:: @ 83054E0 @ 830593C .include "data/graphics/trainers/trainer_front_pic_palette_table.inc" -@ 8305C24 - .incbin "baserom.gba", 0x305c24, 0xe8 +gUnknown_08305C24:: @ 8305C24 + .2byte 0x0000, 0x0018, 0x0001, 0x0009, 0x0002, 0x0018, 0x0000, 0x0009 + .2byte 0x0003, 0x0032, 0xffff, 0x0000 + + .align 2 +gUnknown_08305C3C:: @ 8305C3C + .2byte 0x0000, 0x0018, 0x0001, 0x0009, 0x0002, 0x0018, 0x0000, 0x0009 + .2byte 0x0003, 0x0032, 0xffff, 0x0000 + + .align 2 +gUnknown_08305C54:: @ 8305C54 + .2byte 0x0000, 0x0018, 0x0001, 0x0009, 0x0002, 0x0018, 0x0000, 0x0009 + .2byte 0x0003, 0x0032, 0xffff, 0x0000 + + .align 2 +gUnknown_08305C6C:: @ 8305C6C + .2byte 0x0001, 0x0014, 0x0002, 0x0006, 0x0003, 0x0006, 0x0004, 0x0018 + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08305C84:: @ 8305C84 + .2byte 0x0001, 0x0014, 0x0002, 0x0006, 0x0003, 0x0006, 0x0004, 0x0018 + .2byte 0x0000, 0x0001, 0xffff, 0x0000 + + .align 2 +gUnknown_08305C9C:: @ 8305C9C + .2byte 0x0000, 0x0018, 0x0001, 0x0009, 0x0002, 0x0018, 0x0000, 0x0009 + .2byte 0x0003, 0x0032, 0xffff, 0x0000 + + .align 2 +gUnknown_08305CB4:: @ 8305CB4 + .2byte 0x0000, 0x0018, 0x0001, 0x0009, 0x0002, 0x0018, 0x0000, 0x0009 + .2byte 0x0003, 0x0032, 0xffff, 0x0000 + + .align 2 +gUnknown_08305CCC:: @ 8305CCC + .4byte gUnknown_082FF540 + .4byte gUnknown_08305C24 + + .align 2 +gUnknown_08305CD4:: @ 8305CD4 + .4byte gUnknown_082FF540 + .4byte gUnknown_08305C3C + + .align 2 +gUnknown_08305CDC:: @ 8305CDC + .4byte gUnknown_082FF538 + .4byte gUnknown_08305C6C + + .align 2 +gUnknown_08305CE4:: @ 8305CE4 + .4byte gUnknown_082FF538 + .4byte gUnknown_08305C84 + + .align 2 +gUnknown_08305CEC:: @ 8305CEC + .4byte gUnknown_082FF540 + .4byte gUnknown_08305C9C + + .align 2 +gUnknown_08305CF4:: @ 8305CF4 + .4byte gUnknown_082FF540 + .4byte gUnknown_08305CB4 + + .align 2 +gUnknown_08305CFC:: @ 8305CFC + .4byte gUnknown_082FF540 + .4byte gUnknown_08305C54 + + .align 2 +gUnknown_08305D04:: @ 8305D04 + .4byte gUnknown_082FF540 + .4byte gUnknown_08305C3C + .align 2 gUnknown_08305D0C:: @ 8305D0C - .incbin "baserom.gba", 0x305d0c, 0x20 + .4byte gUnknown_08305CCC + .4byte gUnknown_08305CD4 + .4byte gUnknown_08305CDC + .4byte gUnknown_08305CE4 + .4byte gUnknown_08305CEC + .4byte gUnknown_08305CF4 + .4byte gUnknown_08305CFC + .4byte gUnknown_08305D04 -gUnknown_08305D2C:: @ 8305D2C - .incbin "baserom.gba", 0x305d2c, 0x20 +@ 8305D2C + .include "data/graphics/trainers/back_pic_coords.inc" @ 8305D4C .include "data/graphics/trainers/trainer_back_pic_table.inc" @@ -143,8 +4475,10 @@ gUnknown_08305D2C:: @ 8305D2C @ 8305D8C .include "data/graphics/trainers/trainer_back_pic_palette_table.inc" -gUnknown_08305DCC:: @ 8305DCC - .incbin "baserom.gba", 0x305dcc, 0x3ce0 +@ 8305DCC + .include "data/enemy_mon_elevation.inc" + + .incbin "baserom.gba", 0x305f68, 0x3b44 gUnknown_08309AAC:: @ 8309AAC .incbin "baserom.gba", 0x309aac, 0x6e0 @@ -153,7 +4487,116 @@ gUnknown_08309AAC:: @ 8309AAC .include "data/graphics/pokemon/mon_front_pic_table.inc" @ 830AF4C - .incbin "baserom.gba", 0x30af4c, 0x6e0 + .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000088, 0x00000888, 0x00000888, 0x00000886 + .4byte 0x00000888, 0x00000886, 0x00000888, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000886, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000886, 0x00000886 + .4byte 0x00000888, 0x00000088, 0x00000088, 0x00000088 + .4byte 0x00000088, 0x00000888, 0x00000886, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000886, 0x00000886 + .4byte 0x00000888, 0x00000088, 0x00000088, 0x00000088 + .4byte 0x00000088, 0x00000886, 0x00000886, 0x00000088 + .4byte 0x00000886, 0x00000886, 0x00000888, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000886, 0x00000888, 0x00000088, 0x00000088 + .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000886 + .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000886 + .4byte 0x00000886, 0x00000886, 0x00000886, 0x00000886 + .4byte 0x00000886, 0x00000886, 0x00000888, 0x00000888 + .4byte 0x00000886, 0x00000886, 0x00000886, 0x00000886 + .4byte 0x00000886, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000888, 0x00000886, 0x00000886, 0x00000888 + .4byte 0x00000886, 0x00000886, 0x00000888, 0x00000888 + .4byte 0x00000088, 0x00000088, 0x00000888, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000886, 0x00000886, 0x00000888, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000088, 0x00000886 + .4byte 0x00000888, 0x00000088, 0x00000088, 0x00000088 + .4byte 0x00000088, 0x00000888, 0x00000886, 0x00000888 + .4byte 0x00000088, 0x00000088, 0x00000886, 0x00000886 + .4byte 0x00000088, 0x00000088, 0x00000888, 0x00000886 + .4byte 0x00000886, 0x00000888, 0x00000888, 0x00000088 + .4byte 0x00000888, 0x00000886, 0x00000886, 0x00000888 + .4byte 0x00000886, 0x00000888, 0x00000888, 0x00000886 + .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000088, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000088, 0x00000888, 0x00000888, 0x00000886 + .4byte 0x00000886, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000886 + .4byte 0x00000888, 0x00000886, 0x00000088, 0x00000088 + .4byte 0x00000088, 0x00000888, 0x00000088, 0x00000888 + .4byte 0x00000888, 0x00000088, 0x00000088, 0x00000888 + .4byte 0x00000886, 0x00000888, 0x00000886, 0x00000886 + .4byte 0x00000886, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000088, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000088, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000088, 0x00000088 + .4byte 0x00000886, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000088, 0x00000888 + .4byte 0x00000886, 0x00000888, 0x00000088, 0x00000088 + .4byte 0x00000888, 0x00000888, 0x00000088, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000088 + .4byte 0x00000888, 0x00000888, 0x00000088, 0x00000088 + .4byte 0x00000088, 0x00000888, 0x00000088, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000888, 0x00000886, 0x00000888, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000888, 0x00000886, 0x00000886, 0x00000886 + .4byte 0x00000088, 0x00000088, 0x00000088, 0x00000886 + .4byte 0x00000088, 0x00000886, 0x00000886, 0x00000886 + .4byte 0x00000088, 0x00000886, 0x00000088, 0x00000088 + .4byte 0x00000088, 0x00000088, 0x00000088, 0x00000886 + .4byte 0x00000886, 0x00000886, 0x00000888, 0x00000888 + .4byte 0x00000886, 0x00000886, 0x00000886, 0x00000886 + .4byte 0x00000088, 0x00000088, 0x00000886, 0x00000886 + .4byte 0x00001882, 0x00000088, 0x00000088, 0x00000088 + .4byte 0x00000088, 0x00000886, 0x00000886, 0x00000886 + .4byte 0x00000088, 0x00000088, 0x00000088, 0x00000088 + .4byte 0x00000886, 0x00000088, 0x00000886, 0x00000088 + .4byte 0x00000088, 0x00000088, 0x00000088, 0x00000088 + .4byte 0x00000088, 0x00000088, 0x00000886, 0x00000886 + .4byte 0x00000088, 0x00000088, 0x00000088, 0x00000886 + .4byte 0x00000886, 0x00000088, 0x00000088, 0x00000088 + .4byte 0x00000088, 0x00000088, 0x00000088, 0x00000088 + .4byte 0x00000088, 0x00000088, 0x00000088, 0x00000088 + .4byte 0x00000088, 0x00000088, 0x00000886, 0x00000088 + .4byte 0x00000088, 0x00000886, 0x00000886, 0x00000886 + .4byte 0x00000886, 0x00000886, 0x00000088, 0x00000088 + .4byte 0x00000088, 0x00000088, 0x00000088, 0x00000886 + .4byte 0x00000886, 0x00000886, 0x00000886, 0x00000088 + .4byte 0x00000886, 0x00000088, 0x00000886, 0x00000886 + .4byte 0x00000886, 0x00000088, 0x00000088, 0x00000088 + .4byte 0x00000088, 0x00000088, 0x00000088, 0x00000088 + .4byte 0x00000088, 0x00000088, 0x00000886, 0x00000886 + .4byte 0x00000886, 0x00000888, 0x00000886, 0x00000886 + .4byte 0x00000088, 0x00000088, 0x00000088, 0x00000088 + .4byte 0x00000886, 0x00000886, 0x00000088, 0x00000088 + .4byte 0x00000088, 0x00000088, 0x00000088, 0x00000088 + .4byte 0x00000088, 0x00000088, 0x00000088, 0x00000088 + .4byte 0x00000088, 0x00000088, 0x00000088, 0x00000088 + .4byte 0x00000088, 0x00000088, 0x00000088, 0x00000088 + .4byte 0x00000088, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 + .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 @ 830B62C .include "data/trainer_parties.inc" @@ -170,47 +4613,236 @@ gUnknown_08309AAC:: @ 8309AAC @ 831977C .include "data/text/move_names.inc" - .incbin "baserom.gba", 0x31a983, 0x4d +.align 2 + .2byte 0x0300, 0x0000 + + .align 2 +gUnknown_0831A988:: @ 831A988 + .byte 0x00, 0x03, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00 + + .align 2 +gUnknown_0831A990:: @ 831A990 + .byte 0x00, 0x03, 0x00, 0xc0, 0x40, 0x00, 0x00, 0x00 + + .align 2 +gUnknown_0831A998:: @ 831A998 + .2byte 0x0080, 0x0080, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_0831A9A8:: @ 831A9A8 + .2byte 0x0080, 0x0080, 0x0000, 0x0000, 0x0018, 0x0018, 0x8000, 0x0000 + .2byte 0x0018, 0x0018, 0x8000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_0831A9C8:: @ 831A9C8 + .4byte gUnknown_0831A998 + .4byte gUnknown_0831A9A8 + .align 2 gUnknown_0831A9D0:: @ 831A9D0 - .incbin "baserom.gba", 0x31a9d0, 0x18 + spr_template 0x2710, 0x2710, gUnknown_0831A988, gDummySpriteAnimTable, NULL, gUnknown_0831A9C8, nullsub_17 + .align 2 gUnknown_0831A9E8:: @ 831A9E8 - .incbin "baserom.gba", 0x31a9e8, 0x18 + spr_template 0x2710, 0x2710, gUnknown_0831A990, gDummySpriteAnimTable, NULL, gUnknown_0831A9C8, nullsub_17 + .align 2 gUnknown_0831AA00:: @ 831AA00 - .incbin "baserom.gba", 0x31aa00, 0x8 + obj_tiles gUnknown_08D77B0C, 0x1000, 0x2710 + .align 2 gUnknown_0831AA08:: @ 831AA08 - .incbin "baserom.gba", 0x31aa08, 0x198 + .4byte 0x00000580, 0x000005c5, 0x000013e6, 0x000033ab + + .align 2 +gUnknown_0831AA18:: @ 831AA18 + window_template 0x00, 0x02, 0x0f, 0x1a, 0x04, 0x00, 0x0090 + window_template 0x00, 0x01, 0x23, 0x0e, 0x04, 0x00, 0x01c0 + window_template 0x00, 0x11, 0x23, 0x0c, 0x04, 0x05, 0x0190 + window_template 0x00, 0x02, 0x37, 0x08, 0x02, 0x05, 0x0300 + window_template 0x00, 0x0b, 0x37, 0x08, 0x02, 0x05, 0x0310 + window_template 0x00, 0x02, 0x39, 0x08, 0x02, 0x05, 0x0320 + window_template 0x00, 0x0b, 0x39, 0x08, 0x02, 0x05, 0x0330 + window_template 0x00, 0x15, 0x37, 0x04, 0x02, 0x05, 0x0290 + window_template 0x00, 0x15, 0x39, 0x00, 0x00, 0x05, 0x0298 + window_template 0x00, 0x19, 0x37, 0x04, 0x02, 0x05, 0x0298 + window_template 0x00, 0x15, 0x39, 0x08, 0x02, 0x05, 0x02a0 + window_template 0x00, 0x15, 0x37, 0x08, 0x04, 0x05, 0x02b0 + window_template 0x00, 0x1a, 0x09, 0x03, 0x04, 0x05, 0x0100 + window_template 0x01, 0x13, 0x08, 0x0a, 0x0b, 0x05, 0x0100 + window_template 0x02, 0x12, 0x00, 0x0c, 0x03, 0x06, 0x016e + window_template 0x01, 0x02, 0x03, 0x06, 0x02, 0x05, 0x0020 + window_template 0x02, 0x02, 0x03, 0x06, 0x02, 0x05, 0x0040 + window_template 0x01, 0x02, 0x02, 0x06, 0x02, 0x05, 0x0020 + window_template 0x02, 0x02, 0x02, 0x06, 0x02, 0x05, 0x0040 + window_template 0x01, 0x02, 0x06, 0x06, 0x02, 0x05, 0x0060 + window_template 0x02, 0x02, 0x06, 0x06, 0x02, 0x05, 0x0080 + window_template 0x00, 0x0c, 0x02, 0x06, 0x02, 0x00, 0x00a0 + window_template 0x00, 0x04, 0x02, 0x07, 0x02, 0x00, 0x00a0 + window_template 0x00, 0x13, 0x02, 0x07, 0x02, 0x00, 0x00b0 + window_template_terminator + + .align 2 +gUnknown_0831AAE0:: @ 831AAE0 + window_template 0x00, 0x02, 0x0f, 0x1a, 0x04, 0x00, 0x0090 + window_template 0x00, 0x01, 0x23, 0x0e, 0x04, 0x00, 0x01c0 + window_template 0x00, 0x11, 0x23, 0x0c, 0x04, 0x05, 0x0190 + window_template 0x00, 0x02, 0x37, 0x08, 0x02, 0x05, 0x0300 + window_template 0x00, 0x0b, 0x37, 0x08, 0x02, 0x05, 0x0310 + window_template 0x00, 0x02, 0x39, 0x08, 0x02, 0x05, 0x0320 + window_template 0x00, 0x0b, 0x39, 0x08, 0x02, 0x05, 0x0330 + window_template 0x00, 0x15, 0x37, 0x04, 0x02, 0x05, 0x0290 + window_template 0x00, 0x15, 0x39, 0x00, 0x00, 0x05, 0x0298 + window_template 0x00, 0x19, 0x37, 0x04, 0x02, 0x05, 0x0298 + window_template 0x00, 0x15, 0x39, 0x08, 0x02, 0x05, 0x02a0 + window_template 0x00, 0x15, 0x37, 0x08, 0x04, 0x05, 0x02b0 + window_template 0x00, 0x1a, 0x09, 0x03, 0x04, 0x05, 0x0100 + window_template 0x01, 0x13, 0x08, 0x0a, 0x0b, 0x05, 0x0100 + window_template 0x02, 0x12, 0x00, 0x0c, 0x03, 0x06, 0x016e + window_template 0x00, 0x06, 0x01, 0x08, 0x02, 0x05, 0x0100 + window_template 0x00, 0x0e, 0x01, 0x02, 0x02, 0x05, 0x0110 + window_template 0x00, 0x10, 0x01, 0x08, 0x02, 0x05, 0x0114 + window_template 0x00, 0x0c, 0x04, 0x06, 0x02, 0x05, 0x0124 + window_template 0x00, 0x0c, 0x06, 0x06, 0x02, 0x05, 0x0130 + window_template 0x00, 0x0c, 0x08, 0x06, 0x02, 0x05, 0x013c + window_template 0x00, 0x08, 0x0b, 0x0e, 0x02, 0x05, 0x0148 + window_template 0x00, 0x02, 0x0f, 0x1a, 0x04, 0x07, 0x0090 + window_template_terminator + .align 2 gUnknown_0831ABA0:: @ 831ABA0 - .incbin "baserom.gba", 0x31aba0, 0x8 + .4byte gUnknown_0831AA18 + .4byte gUnknown_0831AAE0 + + .align 2 +gBattleTerrainTable:: @ 831ABA8 + @ tall_grass + .4byte gUnknown_08D77D68 + .4byte gUnknown_08D78350 + .4byte gUnknown_08D7E280 + .4byte gUnknown_08D7E808 + .4byte gUnknown_08D78318 + + @ long_grass + .4byte gUnknown_08D78600 + .4byte gUnknown_08D78CB8 + .4byte gUnknown_08D7E9C4 + .4byte gUnknown_08D7F0D4 + .4byte gUnknown_08D78C78 + + @ sand + .4byte gUnknown_08D78F68 + .4byte gUnknown_08D795A8 + .4byte gUnknown_08D7F30C + .4byte gUnknown_08D7F850 + .4byte gUnknown_08D79560 + + @ underwater + .4byte gUnknown_08D79858 + .4byte gUnknown_08D79E58 + .4byte gUnknown_08D7F9F8 + .4byte gUnknown_08D7FEC4 + .4byte gUnknown_08D79E10 + + @ water + .4byte gUnknown_08D7A108 + .4byte gUnknown_08D7A720 + .4byte gUnknown_08D80054 + .4byte gUnknown_08D80660 + .4byte gUnknown_08D7A6DC + + @ pond_water + .4byte gUnknown_08D7A9D0 + .4byte gUnknown_08D7AFB8 + .4byte gUnknown_08D80804 + .4byte gUnknown_08D80D50 + .4byte gUnknown_08D7AF78 -gUnknown_0831ABA8:: @ 831ABA8 - .incbin "baserom.gba", 0x31aba8, 0xc8 + @ rock + .4byte gUnknown_08D7B268 + .4byte gUnknown_08D7B864 + .4byte gUnknown_08D80E9C + .4byte gUnknown_08D8147C + .4byte gUnknown_08D7B828 + @ cave + .4byte gUnknown_08D7BB14 + .4byte gUnknown_08D7C154 + .4byte gUnknown_08D81610 + .4byte gUnknown_08D81E2C + .4byte gUnknown_08D7C10C + + @ building + .4byte gUnknown_08D7C440 + .4byte gUnknown_08D7CA28 + .4byte gUnknown_08D820D4 + .4byte gUnknown_08D824E4 + .4byte gUnknown_08D7DEB4 + + @ plain + .4byte gUnknown_08D7C440 + .4byte gUnknown_08D7CA28 + .4byte gUnknown_08D820D4 + .4byte gUnknown_08D824E4 + .4byte gUnknown_08D7C404 + + .align 2 gUnknown_0831AC70:: @ 831AC70 - .incbin "baserom.gba", 0x31ac70, 0x18 + .4byte REG_BG3HOFS + .4byte ((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1 + .4byte 1 + .4byte REG_BG3HOFS + .4byte ((DMA_ENABLE | DMA_START_HBLANK | DMA_32BIT | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1 + .4byte 1 + .align 2 gUnknown_0831AC88:: @ 831AC88 - .incbin "baserom.gba", 0x31ac88, 0x18 + spr_template 0x0000, 0x0000, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_8038528 + .align 2 gUnknown_0831ACA0:: @ 831ACA0 - .incbin "baserom.gba", 0x31aca0, 0x40 + .string "ヌケニン$" @ "Nukenin" (Shedinja) + + .align 2 +gUnknown_0831ACA8:: @ 831ACA8 + .2byte 0x0100 + .2byte 0xC000 + .2byte 0x0800 + .align 2 +gUnknown_0831ACB0:: @ 831ACB0 + .2byte 0x0100 + .2byte 0xC000 + .2byte 0x2800 + + .align 2 +gUnknown_0831ACB8:: @ 831ACB8 + .2byte 0x0000, 0x0005, 0xfffe, 0x0000 + + .align 2 +gUnknown_0831ACC0:: @ 831ACC0 + .4byte gUnknown_0831ACB8 + + .align 2 +gUnknown_0831ACC4:: @ 831ACC4 + .2byte 0xfff0, 0x0000, 0x0400, 0x0000, 0x0000, 0x0000, 0x3c00, 0x0000, 0x7ffe, 0x0001, 0x0000, 0x0000 + + .align 2 +gUnknown_0831ACDC:: @ 831ACDC + .4byte gUnknown_0831ACC4 + + .align 2 gUnknown_0831ACE0:: @ 831ACE0 - .incbin "baserom.gba", 0x31ace0, 0x8 + .byte 0xe0, 0xf0, 0xf0, 0xe0, 0xe0, 0x00, 0x00, 0x00 -gTypeEffectiveness:: @ 831ACE8 - .incbin "baserom.gba", 0x31ace8, 0x150 +@ 831ACE8 + .include "data/type_effectiveness.inc" @ 831AE38 .include "data/text/type_names.inc" - .align 2 -gTrainerMoneyTable:: @ 831AEB8 - .incbin "baserom.gba", 0x31aeb8, 0xe0 +@ 831AEB8 + .include "data/trainer_money.inc" @ 831AF98 .include "data/text/ability_descriptions.inc" @@ -221,45 +4853,92 @@ gTrainerMoneyTable:: @ 831AEB8 @ 831BAD4 .include "data/text/ability_description_pointers.inc" + .align 2 gUnknown_0831BC0C:: @ 831BC0C - .incbin "baserom.gba", 0x31bc0c, 0x38 + .4byte sub_803E0B8 + .4byte sub_803E90C + .4byte bs2_8016374 + .4byte sub_803EE48 + .4byte sub_803EFA8 + .4byte bs5_8016AC0 + .4byte sub_803F050 + .4byte sub_803F120 + .4byte bs8_exit_by_flight + .4byte bs9_8016C9C + .4byte sub_80458B4 + .4byte bsB_exit_by_move + .4byte bsC_8016D70 + .4byte bsD_proceed + .align 2 gUnknown_0831BC44:: @ 831BC44 - .incbin "baserom.gba", 0x31bc44, 0x2c + .4byte bc_8013B1C + .4byte sub_803D8C0 + .4byte sub_803DAC0 + .4byte sub_803DAC0 + .4byte sub_803DBA0 + .4byte sub_803DCD8 + .4byte bc_80158BC + .4byte sub_803DCD8 + .4byte sub_803DCD8 + .4byte sub_803DCD8 + .4byte sub_803DCD8 -gStatusConditionString_PoisonJpn:: @ 831BC70 - .incbin "baserom.gba", 0x31bc70, 0x8 +gStatusConditionString_PoisonJpn:: @ 81FA69C + .string "どく$$$$$$" -gStatusConditionString_SleepJpn:: @ 831BC78 - .incbin "baserom.gba", 0x31bc78, 0x8 +gStatusConditionString_SleepJpn:: @ 81FA6A4 + .string "ねむり$$$$$" -gStatusConditionString_ParalysisJpn:: @ 831BC80 - .incbin "baserom.gba", 0x31bc80, 0x8 +gStatusConditionString_ParalysisJpn:: @ 81FA6AC + .string "まひ$$$$$$" -gStatusConditionString_BurnJpn:: @ 831BC88 - .incbin "baserom.gba", 0x31bc88, 0x8 +gStatusConditionString_BurnJpn:: @ 81FA6B4 + .string "やけど$$$$$" -gStatusConditionString_IceJpn:: @ 831BC90 - .incbin "baserom.gba", 0x31bc90, 0x8 +gStatusConditionString_IceJpn:: @ 81FA6BC + .string "こおり$$$$$" -gStatusConditionString_ConfusionJpn:: @ 831BC98 - .incbin "baserom.gba", 0x31bc98, 0x8 +gStatusConditionString_ConfusionJpn:: @ 81FA6C4 + .string "こんらん$$$$" -gStatusConditionString_LoveJpn:: @ 831BCA0 - .incbin "baserom.gba", 0x31bca0, 0x8 +gStatusConditionString_LoveJpn:: @ 81FA6CC + .string "メロメロ$$$$" + .align 2 gUnknown_0831BCA8:: @ 831BCA8 - .incbin "baserom.gba", 0x31bca8, 0x38 + .4byte gStatusConditionString_PoisonJpn, gText_Poison + .4byte gStatusConditionString_SleepJpn, gText_Sleep + .4byte gStatusConditionString_ParalysisJpn, gText_Paralysis + .4byte gStatusConditionString_BurnJpn, gText_Burn + .4byte gStatusConditionString_IceJpn, gText_Ice + .4byte gStatusConditionString_ConfusionJpn, gText_Confusion + .4byte gStatusConditionString_LoveJpn, gText_Love gUnknown_0831BCE0:: @ 831BCE0 - .incbin "baserom.gba", 0x31bce0, 0xf + .byte 0, 0, 0 + .byte 3, 5, 0 + .byte 2, 3, 0 + .byte 1, 2, 0 + .byte 1, 1, 0 gUnknown_0831BCEF:: @ 831BCEF - .incbin "baserom.gba", 0x31bcef, 0x4 + .byte 4, 3, 2, 1 gUnknown_0831BCF3:: @ 831BCF3 - .incbin "baserom.gba", 0x31bcf3, 0x5 + .byte 4, 4, 4, 4 + .align 2 gSoundMovesTable:: @ 831BCF8 - .incbin "baserom.gba", 0x31bcf8, 0x18 + .2byte 0x2D + .2byte 0x2E + .2byte 0x2F + .2byte 0x30 + .2byte 0x67 + .2byte 0xAD + .2byte 0xFD + .2byte 0x13F + .2byte 0x140 + .2byte 0x130 + .2byte 0xFFFF diff --git a/data/enemy_mon_elevation.inc b/data/enemy_mon_elevation.inc new file mode 100644 index 000000000..2dadadd07 --- /dev/null +++ b/data/enemy_mon_elevation.inc @@ -0,0 +1,415 @@ +@ This determines how much higher above the usual position the enemy Pokémon +@ is during battle. Species that float or fly have nonzero values. +gEnemyMonElevation:: @ 8305DCC + .byte 0 @ 0 + .byte 0 @ SPECIES_BULBASAUR + .byte 0 @ SPECIES_IVYSAUR + .byte 0 @ SPECIES_VENUSAUR + .byte 0 @ SPECIES_CHARMANDER + .byte 0 @ SPECIES_CHARMELEON + .byte 0 @ SPECIES_CHARIZARD + .byte 0 @ SPECIES_SQUIRTLE + .byte 0 @ SPECIES_WARTORTLE + .byte 0 @ SPECIES_BLASTOISE + .byte 0 @ SPECIES_CATERPIE + .byte 0 @ SPECIES_METAPOD + .byte 8 @ SPECIES_BUTTERFREE + .byte 0 @ SPECIES_WEEDLE + .byte 0 @ SPECIES_KAKUNA + .byte 8 @ SPECIES_BEEDRILL + .byte 16 @ SPECIES_PIDGEY + .byte 0 @ SPECIES_PIDGEOTTO + .byte 4 @ SPECIES_PIDGEOT + .byte 0 @ SPECIES_RATTATA + .byte 0 @ SPECIES_RATICATE + .byte 0 @ SPECIES_SPEAROW + .byte 6 @ SPECIES_FEAROW + .byte 0 @ SPECIES_EKANS + .byte 0 @ SPECIES_ARBOK + .byte 0 @ SPECIES_PIKACHU + .byte 0 @ SPECIES_RAICHU + .byte 0 @ SPECIES_SANDSHREW + .byte 0 @ SPECIES_SANDSLASH + .byte 0 @ SPECIES_NIDORAN_F + .byte 0 @ SPECIES_NIDORINA + .byte 0 @ SPECIES_NIDOQUEEN + .byte 0 @ SPECIES_NIDORAN_M + .byte 0 @ SPECIES_NIDORINO + .byte 0 @ SPECIES_NIDOKING + .byte 0 @ SPECIES_CLEFAIRY + .byte 0 @ SPECIES_CLEFABLE + .byte 0 @ SPECIES_VULPIX + .byte 0 @ SPECIES_NINETALES + .byte 0 @ SPECIES_JIGGLYPUFF + .byte 0 @ SPECIES_WIGGLYTUFF + .byte 8 @ SPECIES_ZUBAT + .byte 8 @ SPECIES_GOLBAT + .byte 0 @ SPECIES_ODDISH + .byte 0 @ SPECIES_GLOOM + .byte 0 @ SPECIES_VILEPLUME + .byte 0 @ SPECIES_PARAS + .byte 0 @ SPECIES_PARASECT + .byte 0 @ SPECIES_VENONAT + .byte 8 @ SPECIES_VENOMOTH + .byte 0 @ SPECIES_DIGLETT + .byte 0 @ SPECIES_DUGTRIO + .byte 0 @ SPECIES_MEOWTH + .byte 0 @ SPECIES_PERSIAN + .byte 0 @ SPECIES_PSYDUCK + .byte 0 @ SPECIES_GOLDUCK + .byte 0 @ SPECIES_MANKEY + .byte 0 @ SPECIES_PRIMEAPE + .byte 0 @ SPECIES_GROWLITHE + .byte 0 @ SPECIES_ARCANINE + .byte 0 @ SPECIES_POLIWAG + .byte 0 @ SPECIES_POLIWHIRL + .byte 0 @ SPECIES_POLIWRATH + .byte 0 @ SPECIES_ABRA + .byte 0 @ SPECIES_KADABRA + .byte 0 @ SPECIES_ALAKAZAM + .byte 0 @ SPECIES_MACHOP + .byte 0 @ SPECIES_MACHOKE + .byte 0 @ SPECIES_MACHAMP + .byte 0 @ SPECIES_BELLSPROUT + .byte 0 @ SPECIES_WEEPINBELL + .byte 0 @ SPECIES_VICTREEBEL + .byte 0 @ SPECIES_TENTACOOL + .byte 0 @ SPECIES_TENTACRUEL + .byte 16 @ SPECIES_GEODUDE + .byte 0 @ SPECIES_GRAVELER + .byte 0 @ SPECIES_GOLEM + .byte 0 @ SPECIES_PONYTA + .byte 0 @ SPECIES_RAPIDASH + .byte 0 @ SPECIES_SLOWPOKE + .byte 0 @ SPECIES_SLOWBRO + .byte 16 @ SPECIES_MAGNEMITE + .byte 8 @ SPECIES_MAGNETON + .byte 0 @ SPECIES_FARFETCHD + .byte 0 @ SPECIES_DODUO + .byte 0 @ SPECIES_DODRIO + .byte 0 @ SPECIES_SEEL + .byte 0 @ SPECIES_DEWGONG + .byte 0 @ SPECIES_GRIMER + .byte 0 @ SPECIES_MUK + .byte 0 @ SPECIES_SHELLDER + .byte 0 @ SPECIES_CLOYSTER + .byte 4 @ SPECIES_GASTLY + .byte 4 @ SPECIES_HAUNTER + .byte 0 @ SPECIES_GENGAR + .byte 0 @ SPECIES_ONIX + .byte 0 @ SPECIES_DROWZEE + .byte 0 @ SPECIES_HYPNO + .byte 0 @ SPECIES_KRABBY + .byte 0 @ SPECIES_KINGLER + .byte 10 @ SPECIES_VOLTORB + .byte 12 @ SPECIES_ELECTRODE + .byte 0 @ SPECIES_EXEGGCUTE + .byte 0 @ SPECIES_EXEGGUTOR + .byte 0 @ SPECIES_CUBONE + .byte 0 @ SPECIES_MAROWAK + .byte 0 @ SPECIES_HITMONLEE + .byte 0 @ SPECIES_HITMONCHAN + .byte 0 @ SPECIES_LICKITUNG + .byte 8 @ SPECIES_KOFFING + .byte 6 @ SPECIES_WEEZING + .byte 0 @ SPECIES_RHYHORN + .byte 0 @ SPECIES_RHYDON + .byte 0 @ SPECIES_CHANSEY + .byte 0 @ SPECIES_TANGELA + .byte 0 @ SPECIES_KANGASKHAN + .byte 0 @ SPECIES_HORSEA + .byte 0 @ SPECIES_SEADRA + .byte 0 @ SPECIES_GOLDEEN + .byte 0 @ SPECIES_SEAKING + .byte 0 @ SPECIES_STARYU + .byte 0 @ SPECIES_STARMIE + .byte 0 @ SPECIES_MR_MIME + .byte 0 @ SPECIES_SCYTHER + .byte 0 @ SPECIES_JYNX + .byte 0 @ SPECIES_ELECTABUZZ + .byte 0 @ SPECIES_MAGMAR + .byte 0 @ SPECIES_PINSIR + .byte 0 @ SPECIES_TAUROS + .byte 0 @ SPECIES_MAGIKARP + .byte 0 @ SPECIES_GYARADOS + .byte 0 @ SPECIES_LAPRAS + .byte 0 @ SPECIES_DITTO + .byte 0 @ SPECIES_EEVEE + .byte 0 @ SPECIES_VAPOREON + .byte 0 @ SPECIES_JOLTEON + .byte 0 @ SPECIES_FLAREON + .byte 0 @ SPECIES_PORYGON + .byte 0 @ SPECIES_OMANYTE + .byte 0 @ SPECIES_OMASTAR + .byte 0 @ SPECIES_KABUTO + .byte 0 @ SPECIES_KABUTOPS + .byte 7 @ SPECIES_AERODACTYL + .byte 0 @ SPECIES_SNORLAX + .byte 6 @ SPECIES_ARTICUNO + .byte 8 @ SPECIES_ZAPDOS + .byte 5 @ SPECIES_MOLTRES + .byte 0 @ SPECIES_DRATINI + .byte 0 @ SPECIES_DRAGONAIR + .byte 6 @ SPECIES_DRAGONITE + .byte 0 @ SPECIES_MEWTWO + .byte 8 @ SPECIES_MEW + .byte 0 @ SPECIES_CHIKORITA + .byte 0 @ SPECIES_BAYLEEF + .byte 0 @ SPECIES_MEGANIUM + .byte 0 @ SPECIES_CYNDAQUIL + .byte 0 @ SPECIES_QUILAVA + .byte 0 @ SPECIES_TYPHLOSION + .byte 0 @ SPECIES_TOTODILE + .byte 0 @ SPECIES_CROCONAW + .byte 0 @ SPECIES_FERALIGATR + .byte 0 @ SPECIES_SENTRET + .byte 0 @ SPECIES_FURRET + .byte 0 @ SPECIES_HOOTHOOT + .byte 0 @ SPECIES_NOCTOWL + .byte 0 @ SPECIES_LEDYBA + .byte 8 @ SPECIES_LEDIAN + .byte 0 @ SPECIES_SPINARAK + .byte 0 @ SPECIES_ARIADOS + .byte 6 @ SPECIES_CROBAT + .byte 0 @ SPECIES_CHINCHOU + .byte 0 @ SPECIES_LANTURN + .byte 0 @ SPECIES_PICHU + .byte 0 @ SPECIES_CLEFFA + .byte 0 @ SPECIES_IGGLYBUFF + .byte 0 @ SPECIES_TOGEPI + .byte 0 @ SPECIES_TOGETIC + .byte 0 @ SPECIES_NATU + .byte 0 @ SPECIES_XATU + .byte 0 @ SPECIES_MAREEP + .byte 0 @ SPECIES_FLAAFFY + .byte 0 @ SPECIES_AMPHAROS + .byte 0 @ SPECIES_BELLOSSOM + .byte 0 @ SPECIES_MARILL + .byte 0 @ SPECIES_AZUMARILL + .byte 0 @ SPECIES_SUDOWOODO + .byte 0 @ SPECIES_POLITOED + .byte 11 @ SPECIES_HOPPIP + .byte 12 @ SPECIES_SKIPLOOM + .byte 9 @ SPECIES_JUMPLUFF + .byte 0 @ SPECIES_AIPOM + .byte 0 @ SPECIES_SUNKERN + .byte 0 @ SPECIES_SUNFLORA + .byte 8 @ SPECIES_YANMA + .byte 0 @ SPECIES_WOOPER + .byte 0 @ SPECIES_QUAGSIRE + .byte 0 @ SPECIES_ESPEON + .byte 0 @ SPECIES_UMBREON + .byte 0 @ SPECIES_MURKROW + .byte 0 @ SPECIES_SLOWKING + .byte 8 @ SPECIES_MISDREAVUS + .byte 8 @ SPECIES_UNOWN + .byte 0 @ SPECIES_WOBBUFFET + .byte 0 @ SPECIES_GIRAFARIG + .byte 0 @ SPECIES_PINECO + .byte 0 @ SPECIES_FORRETRESS + .byte 0 @ SPECIES_DUNSPARCE + .byte 6 @ SPECIES_GLIGAR + .byte 0 @ SPECIES_STEELIX + .byte 0 @ SPECIES_SNUBBULL + .byte 0 @ SPECIES_GRANBULL + .byte 0 @ SPECIES_QWILFISH + .byte 0 @ SPECIES_SCIZOR + .byte 0 @ SPECIES_SHUCKLE + .byte 0 @ SPECIES_HERACROSS + .byte 0 @ SPECIES_SNEASEL + .byte 0 @ SPECIES_TEDDIURSA + .byte 0 @ SPECIES_URSARING + .byte 0 @ SPECIES_SLUGMA + .byte 0 @ SPECIES_MAGCARGO + .byte 0 @ SPECIES_SWINUB + .byte 0 @ SPECIES_PILOSWINE + .byte 0 @ SPECIES_CORSOLA + .byte 0 @ SPECIES_REMORAID + .byte 0 @ SPECIES_OCTILLERY + .byte 0 @ SPECIES_DELIBIRD + .byte 0 @ SPECIES_MANTINE + .byte 0 @ SPECIES_SKARMORY + .byte 0 @ SPECIES_HOUNDOUR + .byte 0 @ SPECIES_HOUNDOOM + .byte 0 @ SPECIES_KINGDRA + .byte 0 @ SPECIES_PHANPY + .byte 0 @ SPECIES_DONPHAN + .byte 0 @ SPECIES_PORYGON2 + .byte 0 @ SPECIES_STANTLER + .byte 0 @ SPECIES_SMEARGLE + .byte 0 @ SPECIES_TYROGUE + .byte 0 @ SPECIES_HITMONTOP + .byte 0 @ SPECIES_SMOOCHUM + .byte 0 @ SPECIES_ELEKID + .byte 0 @ SPECIES_MAGBY + .byte 0 @ SPECIES_MILTANK + .byte 0 @ SPECIES_BLISSEY + .byte 0 @ SPECIES_RAIKOU + .byte 0 @ SPECIES_ENTEI + .byte 0 @ SPECIES_SUICUNE + .byte 0 @ SPECIES_LARVITAR + .byte 0 @ SPECIES_PUPITAR + .byte 0 @ SPECIES_TYRANITAR + .byte 6 @ SPECIES_LUGIA + .byte 6 @ SPECIES_HO_OH + .byte 15 @ SPECIES_CELEBI + .byte 0 @ 252 + .byte 0 @ 253 + .byte 0 @ 254 + .byte 0 @ 255 + .byte 0 @ 256 + .byte 0 @ 257 + .byte 0 @ 258 + .byte 0 @ 259 + .byte 0 @ 260 + .byte 0 @ 261 + .byte 0 @ 262 + .byte 0 @ 263 + .byte 0 @ 264 + .byte 0 @ 265 + .byte 0 @ 266 + .byte 0 @ 267 + .byte 0 @ 268 + .byte 0 @ 269 + .byte 0 @ 270 + .byte 0 @ 271 + .byte 0 @ 272 + .byte 0 @ 273 + .byte 0 @ 274 + .byte 0 @ 275 + .byte 0 @ 276 + .byte 0 @ SPECIES_TREECKO + .byte 0 @ SPECIES_GROVYLE + .byte 0 @ SPECIES_SCEPTILE + .byte 0 @ SPECIES_TORCHIC + .byte 0 @ SPECIES_COMBUSKEN + .byte 0 @ SPECIES_BLAZIKEN + .byte 0 @ SPECIES_MUDKIP + .byte 0 @ SPECIES_MARSHTOMP + .byte 0 @ SPECIES_SWAMPERT + .byte 0 @ SPECIES_POOCHYENA + .byte 0 @ SPECIES_MIGHTYENA + .byte 0 @ SPECIES_ZIGZAGOON + .byte 0 @ SPECIES_LINOONE + .byte 0 @ SPECIES_WURMPLE + .byte 0 @ SPECIES_SILCOON + .byte 8 @ SPECIES_BEAUTIFLY + .byte 0 @ SPECIES_CASCOON + .byte 10 @ SPECIES_DUSTOX + .byte 0 @ SPECIES_LOTAD + .byte 0 @ SPECIES_LOMBRE + .byte 0 @ SPECIES_LUDICOLO + .byte 0 @ SPECIES_SEEDOT + .byte 0 @ SPECIES_NUZLEAF + .byte 0 @ SPECIES_SHIFTRY + .byte 0 @ SPECIES_NINCADA + .byte 10 @ SPECIES_NINJASK + .byte 8 @ SPECIES_SHEDINJA + .byte 0 @ SPECIES_TAILLOW + .byte 0 @ SPECIES_SWELLOW + .byte 0 @ SPECIES_SHROOMISH + .byte 0 @ SPECIES_BRELOOM + .byte 0 @ SPECIES_SPINDA + .byte 16 @ SPECIES_WINGULL + .byte 8 @ SPECIES_PELIPPER + .byte 0 @ SPECIES_SURSKIT + .byte 10 @ SPECIES_MASQUERAIN + .byte 0 @ SPECIES_WAILMER + .byte 0 @ SPECIES_WAILORD + .byte 0 @ SPECIES_SKITTY + .byte 0 @ SPECIES_DELCATTY + .byte 0 @ SPECIES_KECLEON + .byte 4 @ SPECIES_BALTOY + .byte 10 @ SPECIES_CLAYDOL + .byte 0 @ SPECIES_NOSEPASS + .byte 0 @ SPECIES_TORKOAL + .byte 0 @ SPECIES_SABLEYE + .byte 0 @ SPECIES_BARBOACH + .byte 0 @ SPECIES_WHISCASH + .byte 0 @ SPECIES_LUVDISC + .byte 0 @ SPECIES_CORPHISH + .byte 0 @ SPECIES_CRAWDAUNT + .byte 0 @ SPECIES_FEEBAS + .byte 0 @ SPECIES_MILOTIC + .byte 0 @ SPECIES_CARVANHA + .byte 0 @ SPECIES_SHARPEDO + .byte 0 @ SPECIES_TRAPINCH + .byte 0 @ SPECIES_VIBRAVA + .byte 7 @ SPECIES_FLYGON + .byte 0 @ SPECIES_MAKUHITA + .byte 0 @ SPECIES_HARIYAMA + .byte 0 @ SPECIES_ELECTRIKE + .byte 0 @ SPECIES_MANECTRIC + .byte 0 @ SPECIES_NUMEL + .byte 0 @ SPECIES_CAMERUPT + .byte 0 @ SPECIES_SPHEAL + .byte 0 @ SPECIES_SEALEO + .byte 0 @ SPECIES_WALREIN + .byte 0 @ SPECIES_CACNEA + .byte 0 @ SPECIES_CACTURNE + .byte 0 @ SPECIES_SNORUNT + .byte 12 @ SPECIES_GLALIE + .byte 13 @ SPECIES_LUNATONE + .byte 4 @ SPECIES_SOLROCK + .byte 0 @ SPECIES_AZURILL + .byte 0 @ SPECIES_SPOINK + .byte 0 @ SPECIES_GRUMPIG + .byte 0 @ SPECIES_PLUSLE + .byte 0 @ SPECIES_MINUN + .byte 0 @ SPECIES_MAWILE + .byte 0 @ SPECIES_MEDITITE + .byte 0 @ SPECIES_MEDICHAM + .byte 12 @ SPECIES_SWABLU + .byte 8 @ SPECIES_ALTARIA + .byte 0 @ SPECIES_WYNAUT + .byte 9 @ SPECIES_DUSKULL + .byte 0 @ SPECIES_DUSCLOPS + .byte 0 @ SPECIES_ROSELIA + .byte 0 @ SPECIES_SLAKOTH + .byte 0 @ SPECIES_VIGOROTH + .byte 0 @ SPECIES_SLAKING + .byte 0 @ SPECIES_GULPIN + .byte 0 @ SPECIES_SWALOT + .byte 0 @ SPECIES_TROPIUS + .byte 0 @ SPECIES_WHISMUR + .byte 0 @ SPECIES_LOUDRED + .byte 0 @ SPECIES_EXPLOUD + .byte 0 @ SPECIES_CLAMPERL + .byte 0 @ SPECIES_HUNTAIL + .byte 0 @ SPECIES_GOREBYSS + .byte 0 @ SPECIES_ABSOL + .byte 12 @ SPECIES_SHUPPET + .byte 8 @ SPECIES_BANETTE + .byte 0 @ SPECIES_SEVIPER + .byte 0 @ SPECIES_ZANGOOSE + .byte 0 @ SPECIES_RELICANTH + .byte 0 @ SPECIES_ARON + .byte 0 @ SPECIES_LAIRON + .byte 0 @ SPECIES_AGGRON + .byte 16 @ SPECIES_CASTFORM + .byte 0 @ SPECIES_VOLBEAT + .byte 0 @ SPECIES_ILLUMISE + .byte 0 @ SPECIES_LILEEP + .byte 0 @ SPECIES_CRADILY + .byte 0 @ SPECIES_ANORITH + .byte 0 @ SPECIES_ARMALDO + .byte 0 @ SPECIES_RALTS + .byte 0 @ SPECIES_KIRLIA + .byte 0 @ SPECIES_GARDEVOIR + .byte 0 @ SPECIES_BAGON + .byte 0 @ SPECIES_SHELGON + .byte 0 @ SPECIES_SALAMENCE + .byte 8 @ SPECIES_BELDUM + .byte 0 @ SPECIES_METANG + .byte 0 @ SPECIES_METAGROSS + .byte 0 @ SPECIES_REGIROCK + .byte 0 @ SPECIES_REGICE + .byte 0 @ SPECIES_REGISTEEL + .byte 0 @ SPECIES_KYOGRE + .byte 0 @ SPECIES_GROUDON + .byte 6 @ SPECIES_RAYQUAZA + .byte 6 @ SPECIES_LATIAS + .byte 6 @ SPECIES_LATIOS + .byte 12 @ SPECIES_JIRACHI + .byte 8 @ SPECIES_DEOXYS + .byte 12 @ SPECIES_CHIMECHO diff --git a/data/fanfares.s b/data/fanfares.s index 26d2d82d1..2a0c2576a 100644 --- a/data/fanfares.s +++ b/data/fanfares.s @@ -5,4 +5,22 @@ .align 2, 0 sFanfares:: @ 85248BC - .incbin "baserom.gba", 0x5248bc, 0x48 +@ song number, duration + .2byte 0x016f, 0x0050 + .2byte 0x0172, 0x00a0 + .2byte 0x0173, 0x00dc + .2byte 0x0174, 0x00dc + .2byte 0x0170, 0x00a0 + .2byte 0x0171, 0x0154 + .2byte 0x017a, 0x00b4 + .2byte 0x0183, 0x0078 + .2byte 0x0184, 0x02c6 + .2byte 0x0185, 0x00fa + .2byte 0x0186, 0x0096 + .2byte 0x0187, 0x00a0 + .2byte 0x0226, 0x01c2 + .2byte 0x0212, 0x00aa + .2byte 0x0211, 0x00c4 + .2byte 0x01cb, 0x0139 + .2byte 0x01d2, 0x013e + .2byte 0x01cc, 0x0087 diff --git a/data/graphics.s b/data/graphics.s index e5c8ad49f..c192db3ab 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -230,19 +230,82 @@ gUnknown_08D77AE4:: @ 8D77AE4 .incbin "baserom.gba", 0xd77ae4, 0x28 gUnknown_08D77B0C:: @ 8D77B0C - .incbin "baserom.gba", 0xd77b0c, 0x25fc + .incbin "baserom.gba", 0xd77b0c, 0x25c + +gUnknown_08D77D68:: @ 8D77D68 + .incbin "baserom.gba", 0xd77d68, 0x5b0 + +gUnknown_08D78318:: @ 8D78318 + .incbin "baserom.gba", 0xd78318, 0x38 + +gUnknown_08D78350:: @ 8D78350 + .incbin "baserom.gba", 0xd78350, 0x2b0 + +gUnknown_08D78600:: @ 8D78600 + .incbin "baserom.gba", 0xd78600, 0x678 + +gUnknown_08D78C78:: @ 8D78C78 + .incbin "baserom.gba", 0xd78C78, 0x40 + +gUnknown_08D78CB8:: @ 8D78CB8 + .incbin "baserom.gba", 0xd78CB8, 0x2b0 + +gUnknown_08D78F68:: @ 8D78F68 + .incbin "baserom.gba", 0xd78f68, 0x5f8 + +gUnknown_08D79560:: @ 8D79560 + .incbin "baserom.gba", 0xd79560, 0x48 + +gUnknown_08D795A8:: @ 8D795A8 + .incbin "baserom.gba", 0xd795A8, 0x2b0 + +gUnknown_08D79858:: @ 8D79858 + .incbin "baserom.gba", 0xd79858, 0x5b8 + +gUnknown_08D79E10:: @ 8D79E10 + .incbin "baserom.gba", 0xd79E10, 0x48 + +gUnknown_08D79E58:: @ 8D79E58 + .incbin "baserom.gba", 0xd79e58, 0x2b0 gUnknown_08D7A108:: @ 8D7A108 - .incbin "baserom.gba", 0xd7a108, 0x618 + .incbin "baserom.gba", 0xd7a108, 0x5d4 + +gUnknown_08D7A6DC:: @ 8D7A6DC + .incbin "baserom.gba", 0xd7a6DC, 0x44 gUnknown_08D7A720:: @ 8D7A720 - .incbin "baserom.gba", 0xd7a720, 0x13f4 + .incbin "baserom.gba", 0xd7a720, 0x2b0 + +gUnknown_08D7A9D0:: @ 8D7A9D0 + .incbin "baserom.gba", 0xd7a9D0, 0x5a8 + +gUnknown_08D7AF78:: @ 8D7AF78 + .incbin "baserom.gba", 0xd7af78, 0x40 + +gUnknown_08D7AFB8:: @ 8D7AFB8 + .incbin "baserom.gba", 0xd7aFB8, 0x2b0 + +gUnknown_08D7B268:: @ 8D7B268 + .incbin "baserom.gba", 0xd7b268, 0x5c0 + +gUnknown_08D7B828:: @ 8D7B828 + .incbin "baserom.gba", 0xd7b828, 0x3c + +gUnknown_08D7B864:: @ 8D7B864 + .incbin "baserom.gba", 0xd7b864, 0x2b0 gUnknown_08D7BB14:: @ 8D7BB14 - .incbin "baserom.gba", 0xd7bb14, 0x640 + .incbin "baserom.gba", 0xd7bb14, 0x5f8 + +gUnknown_08D7C10C:: @ 8D7C10C + .incbin "baserom.gba", 0xd7c10c, 0x48 gUnknown_08D7C154:: @ 8D7C154 - .incbin "baserom.gba", 0xd7c154, 0x2ec + .incbin "baserom.gba", 0xd7c154, 0x2b0 + +gUnknown_08D7C404:: @ 8D7C404 + .incbin "baserom.gba", 0xd7c404, 0x3c gUnknown_08D7C440:: @ 8D7C440 .incbin "baserom.gba", 0xd7c440, 0x5ac @@ -263,7 +326,10 @@ gUnknown_08D7D590:: @ 8D7D590 .incbin "baserom.gba", 0xd7d590, 0x674 gUnknown_08D7DC04:: @ 8D7DC04 - .incbin "baserom.gba", 0xd7dc04, 0x2f0 + .incbin "baserom.gba", 0xd7dc04, 0x2b0 + +gUnknown_08D7DEB4:: @ 8D7DEB4 + .incbin "baserom.gba", 0xd7deb4, 0x40 gUnknown_08D7DEF4:: @ 8D7DEF4 .incbin "baserom.gba", 0xd7def4, 0x3c @@ -299,13 +365,49 @@ gUnknown_08D7E1F8:: @ 8D7E1F8 .incbin "baserom.gba", 0xd7e1f8, 0x3c gUnknown_08D7E234:: @ 8D7E234 - .incbin "baserom.gba", 0xd7e234, 0x17c4 + .incbin "baserom.gba", 0xd7e234, 0x4c + +gUnknown_08D7E280:: @ 8D7E280 + .incbin "baserom.gba", 0xd7e280, 0x588 + +gUnknown_08D7E808:: @ 8D7E808 + .incbin "baserom.gba", 0xd7e808, 0x1bc + +gUnknown_08D7E9C4:: @ 8D7E9C4 + .incbin "baserom.gba", 0xd7e9C4, 0x710 + +gUnknown_08D7F0D4:: @ 8D7F0D4 + .incbin "baserom.gba", 0xd7F0D4, 0x238 + +gUnknown_08D7F30C:: @ 8D7F30C + .incbin "baserom.gba", 0xd7F30c, 0x544 + +gUnknown_08D7F850:: @ 8D7F850 + .incbin "baserom.gba", 0xd7F850, 0x1a8 gUnknown_08D7F9F8:: @ 8D7F9F8 .incbin "baserom.gba", 0xd7f9f8, 0x4cc gUnknown_08D7FEC4:: @ 8D7FEC4 - .incbin "baserom.gba", 0xd7fec4, 0x174c + .incbin "baserom.gba", 0xd7fec4, 0x190 + +gUnknown_08D80054:: @ 8D80054 + .incbin "baserom.gba", 0xd80054, 0x60c + +gUnknown_08D80660:: @ 8D80660 + .incbin "baserom.gba", 0xd80660, 0x1a4 + +gUnknown_08D80804:: @ 8D80804 + .incbin "baserom.gba", 0xd80804, 0x54c + +gUnknown_08D80D50:: @ 8D80D50 + .incbin "baserom.gba", 0xd80d50, 0x14C + +gUnknown_08D80E9C:: @ 8D80E9C + .incbin "baserom.gba", 0xd80e9c, 0x5e0 + +gUnknown_08D8147C:: @ 8D8147C + .incbin "baserom.gba", 0xd8147C, 0x194 gUnknown_08D81610:: @ 8D81610 .incbin "baserom.gba", 0xd81610, 0x81c diff --git a/data/graphics/trainers/back_pic_coords.inc b/data/graphics/trainers/back_pic_coords.inc new file mode 100644 index 000000000..57a45c71e --- /dev/null +++ b/data/graphics/trainers/back_pic_coords.inc @@ -0,0 +1,10 @@ + .align 2 +gTrainerBackPicCoords:: @ 8305D2C + .byte 0x08, 0x04, 0x00, 0x00 + .byte 0x08, 0x04, 0x00, 0x00 + .byte 0x08, 0x05, 0x00, 0x00 + .byte 0x08, 0x05, 0x00, 0x00 + .byte 0x08, 0x04, 0x00, 0x00 + .byte 0x08, 0x04, 0x00, 0x00 + .byte 0x08, 0x04, 0x00, 0x00 + .byte 0x08, 0x04, 0x00, 0x00 diff --git a/data/graphics/trainers/front_pic_coords.inc b/data/graphics/trainers/front_pic_coords.inc new file mode 100644 index 000000000..8d20f0a9e --- /dev/null +++ b/data/graphics/trainers/front_pic_coords.inc @@ -0,0 +1,95 @@ + .align 2 +gTrainerFrontPicCoords:: @ 83054E0 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x02, 0x00, 0x00 + .byte 0x08, 0x02, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x02, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x02, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x02, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x02, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 + .byte 0x08, 0x01, 0x00, 0x00 diff --git a/data/main_menu.s b/data/main_menu.s new file mode 100644 index 000000000..fba0e7ddb --- /dev/null +++ b/data/main_menu.s @@ -0,0 +1,141 @@ +@ the second big chunk of data + + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + + .align 2 +gUnknown_082FECFC:: @ 82FECFC + .incbin "graphics/birch_speech/bg0.gbapal" + .incbin "graphics/birch_speech/bg1.gbapal" + + .align 2 +gBirchIntroShadowGfx:: @ 82FED3C + .incbin "graphics/birch_speech/shadow.4bpp.lz" + + .align 2 +gUnknown_082FEEF0:: @ 82FEEF0 + .incbin "graphics/birch_speech/map.bin.lz" + + .align 2 +gUnknown_082FF018:: @ 82FF018 + .incbin "graphics/birch_speech/bg2.gbapal" + + .align 2 +gUnknown_082FF028:: @ 82FF028 + .space 16 + + .align 2 +gUnknown_082FF038:: @ 82FF038 + window_template 0x00, 0x02, 0x01, 0x1a, 0x02, 0x0f, 0x0001 + window_template 0x00, 0x02, 0x05, 0x1a, 0x02, 0x0f, 0x0035 + + .align 2 +gUnknown_082FF048:: @ 82FF048 + window_template 0x00, 0x02, 0x01, 0x1a, 0x06, 0x0f, 0x0001 + window_template 0x00, 0x02, 0x09, 0x1a, 0x02, 0x0f, 0x009d + window_template 0x00, 0x02, 0x0d, 0x1a, 0x02, 0x0f, 0x00d1 + window_template 0x00, 0x02, 0x11, 0x1a, 0x02, 0x0f, 0x0105 + window_template 0x00, 0x02, 0x15, 0x1a, 0x02, 0x0f, 0x0139 + + .align 2 +gUnknown_082FF070:: @ 82FF070 + window_template 0x00, 0x02, 0x0f, 0x1a, 0x04, 0x0f, 0x016d + window_template_terminator + + .align 2 +gUnknown_082FF080:: @ 82FF080 + window_template 0x00, 0x02, 0x0f, 0x1b, 0x04, 0x0f, 0x0001 + + .align 2 +gUnknown_082FF088:: @ 82FF088 + window_template 0x00, 0x03, 0x05, 0x06, 0x04, 0x0f, 0x006d + window_template 0x00, 0x03, 0x02, 0x09, 0x0a, 0x0f, 0x0085 + window_template_terminator + + .align 2 +gMainMenuBgPal:: @ 82FF0A0 + .incbin "graphics/misc/main_menu_bg.gbapal" + + .align 2 +gMainMenuTextPal:: @ 82FF0C0 + .incbin "graphics/misc/main_menu_text.gbapal" + + .align 2 +gUnknown_082FF0E0:: @ 82FF0E0 + .byte 0x0a, 0x0b, 0x0c + +gUnknown_082FF0E3:: @ 82FF0E3 + .byte 0x0a, 0x01, 0x0c + + .align 2 +gUnknown_082FF0E8:: @ 82FF0E8 + .4byte 0x000001e8, 0x00003071 + + .align 2 +gUnknown_082FF0F0:: @ 82FF0F0 + .4byte 0x000001ec + + .align 2 +gUnknown_082FF0F4:: @ 82FF0F4 + .byte 0x02, 0x78, 0x08, 0x03, 0x78, 0x98, 0x03, 0x00, 0x04, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00 + + .align 2 +gUnknown_082FF104:: @ 82FF104 + .2byte 0xfffe, 0xfffe, 0x3000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000 + + .align 2 +gUnknown_082FF114:: @ 82FF114 + .4byte gUnknown_082FF104 + + .align 2 +gUnknown_082FF118:: @ 82FF118 + .4byte gText_BirchBoy, 0x00000000 + .4byte gText_BirchGirl, 0x00000000 + + .align 2 +gMalePresetNames:: @ 82FF128 + .4byte gText_DefaultNameStu + .4byte gText_DefaultNameMilton + .4byte gText_DefaultNameTom + .4byte gText_DefaultNameKenny + .4byte gText_DefaultNameReid + .4byte gText_DefaultNameJude + .4byte gText_DefaultNameJaxson + .4byte gText_DefaultNameEaston + .4byte gText_DefaultNameWalker + .4byte gText_DefaultNameTeru + .4byte gText_DefaultNameJohnny + .4byte gText_DefaultNameBrett + .4byte gText_DefaultNameSeth + .4byte gText_DefaultNameTerry + .4byte gText_DefaultNameCasey + .4byte gText_DefaultNameDarren + .4byte gText_DefaultNameLandon + .4byte gText_DefaultNameCollin + .4byte gText_DefaultNameStanley + .4byte gText_DefaultNameQuincy + + .align 2 +gFemalePresetNames:: @ 82FF178 + .4byte gText_DefaultNameKimmy + .4byte gText_DefaultNameTiara + .4byte gText_DefaultNameBella + .4byte gText_DefaultNameJayla + .4byte gText_DefaultNameAllie + .4byte gText_DefaultNameLianna + .4byte gText_DefaultNameSara + .4byte gText_DefaultNameMonica + .4byte gText_DefaultNameCamila + .4byte gText_DefaultNameAubree + .4byte gText_DefaultNameRuthie + .4byte gText_DefaultNameHazel + .4byte gText_DefaultNameNadine + .4byte gText_DefaultNameTanja + .4byte gText_DefaultNameYasmin + .4byte gText_DefaultNameNicola + .4byte gText_DefaultNameLillie + .4byte gText_DefaultNameTerra + .4byte gText_DefaultNameLucy + .4byte gText_DefaultNameHalie diff --git a/data/reset_rtc_screen.s b/data/reset_rtc_screen.s index f08f30e90..f680a87bc 100644 --- a/data/reset_rtc_screen.s +++ b/data/reset_rtc_screen.s @@ -11,7 +11,7 @@ gUnknown_08510404:: @ 8510404 struct BgTemplate gUnknown_08510408:: @ 8510408 window_template 0x00, 0x01, 0x01, 0x13, 0x09, 0x0f, 0x0155 window_template 0x00, 0x02, 0x0f, 0x1b, 0x04, 0x0f, 0x00e9 - window_template 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0000 + window_template_terminator .align 2 gUnknown_08510420:: @ 8510420 diff --git a/data/strings.s b/data/strings.s index 78e936b13..90ccad90f 100644 --- a/data/strings.s +++ b/data/strings.s @@ -165,130 +165,130 @@ gText_PickCancel:: @ 85E8574 gText_UnkCtrlF800Exit:: @ 85E8588 .string "{UNK_CTRL_F800}EXIT$" -gUnknown_085E858F:: @ 85E858F +gText_BirchBoy:: @ 85E858F .string "BOY$" -gUnknown_085E8593:: @ 85E8593 +gText_BirchGirl:: @ 85E8593 .string "GIRL$" -gUnknown_085E8598:: @ 85E8598 +gText_DefaultNameStu:: @ 85E8598 .string "STU$" -gUnknown_085E859C:: @ 85E859C +gText_DefaultNameMilton:: @ 85E859C .string "MILTON$" -gUnknown_085E85A3:: @ 85E85A3 +gText_DefaultNameTom:: @ 85E85A3 .string "TOM$" -gUnknown_085E85A7:: @ 85E85A7 +gText_DefaultNameKenny:: @ 85E85A7 .string "KENNY$" -gUnknown_085E85AD:: @ 85E85AD +gText_DefaultNameReid:: @ 85E85AD .string "REID$" -gUnknown_085E85B2:: @ 85E85B2 +gText_DefaultNameJude:: @ 85E85B2 .string "JUDE$" -gUnknown_085E85B7:: @ 85E85B7 +gText_DefaultNameJaxson:: @ 85E85B7 .string "JAXSON$" -gUnknown_085E85BE:: @ 85E85BE +gText_DefaultNameEaston:: @ 85E85BE .string "EASTON$" -gUnknown_085E85C5:: @ 85E85C5 +gText_DefaultNameWalker:: @ 85E85C5 .string "WALKER$" -gUnknown_085E85CC:: @ 85E85CC +gText_DefaultNameTeru:: @ 85E85CC .string "TERU$" -gUnknown_085E85D1:: @ 85E85D1 +gText_DefaultNameJohnny:: @ 85E85D1 .string "JOHNNY$" -gUnknown_085E85D8:: @ 85E85D8 +gText_DefaultNameBrett:: @ 85E85D8 .string "BRETT$" -gUnknown_085E85DE:: @ 85E85DE +gText_DefaultNameSeth:: @ 85E85DE .string "SETH$" -gUnknown_085E85E3:: @ 85E85E3 +gText_DefaultNameTerry:: @ 85E85E3 .string "TERRY$" -gUnknown_085E85E9:: @ 85E85E9 +gText_DefaultNameCasey:: @ 85E85E9 .string "CASEY$" -gUnknown_085E85EF:: @ 85E85EF +gText_DefaultNameDarren:: @ 85E85EF .string "DARREN$" -gUnknown_085E85F6:: @ 85E85F6 +gText_DefaultNameLandon:: @ 85E85F6 .string "LANDON$" -gUnknown_085E85FD:: @ 85E85FD +gText_DefaultNameCollin:: @ 85E85FD .string "COLLIN$" -gUnknown_085E8604:: @ 85E8604 +gText_DefaultNameStanley:: @ 85E8604 .string "STANLEY$" -gUnknown_085E860C:: @ 85E860C +gText_DefaultNameQuincy:: @ 85E860C .string "QUINCY$" -gUnknown_085E8613:: @ 85E8613 +gText_DefaultNameKimmy:: @ 85E8613 .string "KIMMY$" -gUnknown_085E8619:: @ 85E8619 +gText_DefaultNameTiara:: @ 85E8619 .string "TIARA$" -gUnknown_085E861F:: @ 85E861F +gText_DefaultNameBella:: @ 85E861F .string "BELLA$" -gUnknown_085E8625:: @ 85E8625 +gText_DefaultNameJayla:: @ 85E8625 .string "JAYLA$" -gUnknown_085E862B:: @ 85E862B +gText_DefaultNameAllie:: @ 85E862B .string "ALLIE$" -gUnknown_085E8631:: @ 85E8631 +gText_DefaultNameLianna:: @ 85E8631 .string "LIANNA$" -gUnknown_085E8638:: @ 85E8638 +gText_DefaultNameSara:: @ 85E8638 .string "SARA$" -gUnknown_085E863D:: @ 85E863D +gText_DefaultNameMonica:: @ 85E863D .string "MONICA$" -gUnknown_085E8644:: @ 85E8644 +gText_DefaultNameCamila:: @ 85E8644 .string "CAMILA$" -gUnknown_085E864B:: @ 85E864B +gText_DefaultNameAubree:: @ 85E864B .string "AUBREE$" -gUnknown_085E8652:: @ 85E8652 +gText_DefaultNameRuthie:: @ 85E8652 .string "RUTHIE$" -gUnknown_085E8659:: @ 85E8659 +gText_DefaultNameHazel:: @ 85E8659 .string "HAZEL$" -gUnknown_085E865F:: @ 85E865F +gText_DefaultNameNadine:: @ 85E865F .string "NADINE$" -gUnknown_085E8666:: @ 85E8666 +gText_DefaultNameTanja:: @ 85E8666 .string "TANJA$" -gUnknown_085E866C:: @ 85E866C +gText_DefaultNameYasmin:: @ 85E866C .string "YASMIN$" -gUnknown_085E8673:: @ 85E8673 +gText_DefaultNameNicola:: @ 85E8673 .string "NICOLA$" -gUnknown_085E867A:: @ 85E867A +gText_DefaultNameLillie:: @ 85E867A .string "LILLIE$" -gUnknown_085E8681:: @ 85E8681 +gText_DefaultNameTerra:: @ 85E8681 .string "TERRA$" -gUnknown_085E8687:: @ 85E8687 +gText_DefaultNameLucy:: @ 85E8687 .string "LUCY$" -gUnknown_085E868C:: @ 85E868C +gText_DefaultNameHalie:: @ 85E868C .string "HALIE$" gText_ThisIsAPokemon:: @ 85E8692 diff --git a/data/title_screen.s b/data/title_screen.s index 525790271..b07464ce9 100644 --- a/data/title_screen.s +++ b/data/title_screen.s @@ -1,9 +1,12 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" + .include "asm/macros.inc" + .include "constants/constants.inc" - .section .rodata - .align 2, 0 + .section .rodata + .align 2, 0 + .incbin "graphics/title_screen/unk_853EF78.gbapal" + + .align 2 gTitleScreenRayquazaGfx:: @ 853F058 .incbin "graphics/title_screen/rayquaza.4bpp.lz" diff --git a/data/trainer_money.inc b/data/trainer_money.inc new file mode 100644 index 000000000..1e06668bd --- /dev/null +++ b/data/trainer_money.inc @@ -0,0 +1,59 @@ +@ This is a factor in how much money you get for beating a trainer. + .align 2 +gTrainerMoneyTable:: @ 831AEB8 + .byte TRAINER_CLASS_NAME_TEAM_AQUA, 5, 0, 0 + .byte TRAINER_CLASS_NAME_AQUA_ADMIN, 10, 0, 0 + .byte TRAINER_CLASS_NAME_AQUA_LEADER, 20, 0, 0 + .byte TRAINER_CLASS_NAME_AROMA_LADY, 10, 0, 0 + .byte TRAINER_CLASS_NAME_RUIN_MANIAC, 15, 0, 0 + .byte TRAINER_CLASS_NAME_INTERVIEWER, 12, 0, 0 + .byte TRAINER_CLASS_NAME_TUBER_1, 1, 0, 0 + .byte TRAINER_CLASS_NAME_TUBER_2, 1, 0, 0 + .byte TRAINER_CLASS_NAME_SIS_AND_BRO, 3, 0, 0 + .byte TRAINER_CLASS_NAME_COOLTRAINER_1, 12, 0, 0 + .byte TRAINER_CLASS_NAME_HEX_MANIAC, 6, 0, 0 + .byte TRAINER_CLASS_NAME_LADY, 50, 0, 0 + .byte TRAINER_CLASS_NAME_BEAUTY, 20, 0, 0 + .byte TRAINER_CLASS_NAME_RICH_BOY, 50, 0, 0 + .byte TRAINER_CLASS_NAME_POKEMANIAC, 15, 0, 0 + .byte TRAINER_CLASS_NAME_SWIMMER_M, 2, 0, 0 + .byte TRAINER_CLASS_NAME_BLACK_BELT, 8, 0, 0 + .byte TRAINER_CLASS_NAME_GUITARIST, 8, 0, 0 + .byte TRAINER_CLASS_NAME_KINDLER, 8, 0, 0 + .byte TRAINER_CLASS_NAME_CAMPER, 4, 0, 0 + .byte TRAINER_CLASS_NAME_OLD_COUPLE, 10, 0, 0 + .byte TRAINER_CLASS_NAME_BUG_MANIAC, 15, 0, 0 + .byte TRAINER_CLASS_NAME_PSYCHIC, 6, 0, 0 + .byte TRAINER_CLASS_NAME_GENTLEMAN, 20, 0, 0 + .byte TRAINER_CLASS_NAME_ELITE_FOUR, 25, 0, 0 + .byte TRAINER_CLASS_NAME_LEADER, 25, 0, 0 + .byte TRAINER_CLASS_NAME_SCHOOL_KID, 5, 0, 0 + .byte TRAINER_CLASS_NAME_SR_AND_JR, 4, 0, 0 + .byte TRAINER_CLASS_NAME_POKEFAN, 20, 0, 0 + .byte TRAINER_CLASS_NAME_EXPERT, 10, 0, 0 + .byte TRAINER_CLASS_NAME_YOUNGSTER, 4, 0, 0 + .byte TRAINER_CLASS_NAME_CHAMPION, 50, 0, 0 + .byte TRAINER_CLASS_NAME_FISHERMAN, 10, 0, 0 + .byte TRAINER_CLASS_NAME_TRIATHLETE, 10, 0, 0 + .byte TRAINER_CLASS_NAME_DRAGON_TAMER, 12, 0, 0 + .byte TRAINER_CLASS_NAME_BIRD_KEEPER, 8, 0, 0 + .byte TRAINER_CLASS_NAME_NINJA_BOY, 3, 0, 0 + .byte TRAINER_CLASS_NAME_BATTLE_GIRL, 6, 0, 0 + .byte TRAINER_CLASS_NAME_PARASOL_LADY, 10, 0, 0 + .byte TRAINER_CLASS_NAME_SWIMMER_F, 2, 0, 0 + .byte TRAINER_CLASS_NAME_PICNICKER, 4, 0, 0 + .byte TRAINER_CLASS_NAME_TWINS, 3, 0, 0 + .byte TRAINER_CLASS_NAME_SAILOR, 8, 0, 0 + .byte TRAINER_CLASS_NAME_COLLECTOR, 15, 0, 0 + .byte TRAINER_CLASS_NAME_PKMN_TRAINER_3, 15, 0, 0 + .byte TRAINER_CLASS_NAME_PKMN_BREEDER, 10, 0, 0 + .byte TRAINER_CLASS_NAME_PKMN_RANGER, 12, 0, 0 + .byte TRAINER_CLASS_NAME_TEAM_MAGMA, 5, 0, 0 + .byte TRAINER_CLASS_NAME_MAGMA_ADMIN, 10, 0, 0 + .byte TRAINER_CLASS_NAME_MAGMA_LEADER, 20, 0, 0 + .byte TRAINER_CLASS_NAME_LASS, 4, 0, 0 + .byte TRAINER_CLASS_NAME_BUG_CATCHER, 4, 0, 0 + .byte TRAINER_CLASS_NAME_HIKER, 10, 0, 0 + .byte TRAINER_CLASS_NAME_YOUNG_COUPLE, 8, 0, 0 + .byte TRAINER_CLASS_LEADER_1, 10, 0, 0 + .byte -1, 5, 0, 0 diff --git a/data/trainer_see.s b/data/trainer_see.s index 79c1a9f98..bff3004a7 100644 --- a/data/trainer_see.s +++ b/data/trainer_see.s @@ -52,12 +52,12 @@ gOamData_855077C:: @ 855077C .align 2 gSpriteImageTable_8550784:: @ 8550784 - obj_tiles gEmotion_ExclamationMarkGfx, 0x0080, 0x0000 - obj_tiles gEmotion_QuestionMarkGfx, 0x0080, 0x0000 + obj_frame_tiles gEmotion_ExclamationMarkGfx, 0x0080 + obj_frame_tiles gEmotion_QuestionMarkGfx, 0x0080 .align 2 gSpriteImageTable_8550794:: @ 8550794 - obj_tiles gEmotion_HeartGfx, 0x0080, 0x0000 + obj_frame_tiles gEmotion_HeartGfx, 0x0080 .align 2 gSpriteAnim_855079C:: @ 855079C diff --git a/data/type_effectiveness.inc b/data/type_effectiveness.inc new file mode 100644 index 000000000..a24615592 --- /dev/null +++ b/data/type_effectiveness.inc @@ -0,0 +1,119 @@ +@ format: attacking type, defending type, damage multiplier +@ the multiplier is a (decimal) fixed-point number: +@ 20 is ×2.0 +@ 05 is ×0.5 +@ 00 is ×0 + +gTypeEffectiveness:: @ 831ACE8 + .byte TYPE_NORMAL, TYPE_ROCK, 5 + .byte TYPE_NORMAL, TYPE_STEEL, 5 + .byte TYPE_FIRE, TYPE_FIRE, 5 + .byte TYPE_FIRE, TYPE_WATER, 5 + .byte TYPE_FIRE, TYPE_GRASS, 20 + .byte TYPE_FIRE, TYPE_ICE, 20 + .byte TYPE_FIRE, TYPE_BUG, 20 + .byte TYPE_FIRE, TYPE_ROCK, 5 + .byte TYPE_FIRE, TYPE_DRAGON, 5 + .byte TYPE_FIRE, TYPE_STEEL, 20 + .byte TYPE_WATER, TYPE_FIRE, 20 + .byte TYPE_WATER, TYPE_WATER, 5 + .byte TYPE_WATER, TYPE_GRASS, 5 + .byte TYPE_WATER, TYPE_GROUND, 20 + .byte TYPE_WATER, TYPE_ROCK, 20 + .byte TYPE_WATER, TYPE_DRAGON, 5 + .byte TYPE_ELECTRIC, TYPE_WATER, 20 + .byte TYPE_ELECTRIC, TYPE_ELECTRIC, 5 + .byte TYPE_ELECTRIC, TYPE_GRASS, 5 + .byte TYPE_ELECTRIC, TYPE_GROUND, 0 + .byte TYPE_ELECTRIC, TYPE_FLYING, 20 + .byte TYPE_ELECTRIC, TYPE_DRAGON, 5 + .byte TYPE_GRASS, TYPE_FIRE, 5 + .byte TYPE_GRASS, TYPE_WATER, 20 + .byte TYPE_GRASS, TYPE_GRASS, 5 + .byte TYPE_GRASS, TYPE_POISON, 5 + .byte TYPE_GRASS, TYPE_GROUND, 20 + .byte TYPE_GRASS, TYPE_FLYING, 5 + .byte TYPE_GRASS, TYPE_BUG, 5 + .byte TYPE_GRASS, TYPE_ROCK, 20 + .byte TYPE_GRASS, TYPE_DRAGON, 5 + .byte TYPE_GRASS, TYPE_STEEL, 5 + .byte TYPE_ICE, TYPE_WATER, 5 + .byte TYPE_ICE, TYPE_GRASS, 20 + .byte TYPE_ICE, TYPE_ICE, 5 + .byte TYPE_ICE, TYPE_GROUND, 20 + .byte TYPE_ICE, TYPE_FLYING, 20 + .byte TYPE_ICE, TYPE_DRAGON, 20 + .byte TYPE_ICE, TYPE_STEEL, 5 + .byte TYPE_ICE, TYPE_FIRE, 5 + .byte TYPE_FIGHTING, TYPE_NORMAL, 20 + .byte TYPE_FIGHTING, TYPE_ICE, 20 + .byte TYPE_FIGHTING, TYPE_POISON, 5 + .byte TYPE_FIGHTING, TYPE_FLYING, 5 + .byte TYPE_FIGHTING, TYPE_PSYCHIC, 5 + .byte TYPE_FIGHTING, TYPE_BUG, 5 + .byte TYPE_FIGHTING, TYPE_ROCK, 20 + .byte TYPE_FIGHTING, TYPE_DARK, 20 + .byte TYPE_FIGHTING, TYPE_STEEL, 20 + .byte TYPE_POISON, TYPE_GRASS, 20 + .byte TYPE_POISON, TYPE_POISON, 5 + .byte TYPE_POISON, TYPE_GROUND, 5 + .byte TYPE_POISON, TYPE_ROCK, 5 + .byte TYPE_POISON, TYPE_GHOST, 5 + .byte TYPE_POISON, TYPE_STEEL, 0 + .byte TYPE_GROUND, TYPE_FIRE, 20 + .byte TYPE_GROUND, TYPE_ELECTRIC, 20 + .byte TYPE_GROUND, TYPE_GRASS, 5 + .byte TYPE_GROUND, TYPE_POISON, 20 + .byte TYPE_GROUND, TYPE_FLYING, 0 + .byte TYPE_GROUND, TYPE_BUG, 5 + .byte TYPE_GROUND, TYPE_ROCK, 20 + .byte TYPE_GROUND, TYPE_STEEL, 20 + .byte TYPE_FLYING, TYPE_ELECTRIC, 5 + .byte TYPE_FLYING, TYPE_GRASS, 20 + .byte TYPE_FLYING, TYPE_FIGHTING, 20 + .byte TYPE_FLYING, TYPE_BUG, 20 + .byte TYPE_FLYING, TYPE_ROCK, 5 + .byte TYPE_FLYING, TYPE_STEEL, 5 + .byte TYPE_PSYCHIC, TYPE_FIGHTING, 20 + .byte TYPE_PSYCHIC, TYPE_POISON, 20 + .byte TYPE_PSYCHIC, TYPE_PSYCHIC, 5 + .byte TYPE_PSYCHIC, TYPE_DARK, 0 + .byte TYPE_PSYCHIC, TYPE_STEEL, 5 + .byte TYPE_BUG, TYPE_FIRE, 5 + .byte TYPE_BUG, TYPE_GRASS, 20 + .byte TYPE_BUG, TYPE_FIGHTING, 5 + .byte TYPE_BUG, TYPE_POISON, 5 + .byte TYPE_BUG, TYPE_FLYING, 5 + .byte TYPE_BUG, TYPE_PSYCHIC, 20 + .byte TYPE_BUG, TYPE_GHOST, 5 + .byte TYPE_BUG, TYPE_DARK, 20 + .byte TYPE_BUG, TYPE_STEEL, 5 + .byte TYPE_ROCK, TYPE_FIRE, 20 + .byte TYPE_ROCK, TYPE_ICE, 20 + .byte TYPE_ROCK, TYPE_FIGHTING, 5 + .byte TYPE_ROCK, TYPE_GROUND, 5 + .byte TYPE_ROCK, TYPE_FLYING, 20 + .byte TYPE_ROCK, TYPE_BUG, 20 + .byte TYPE_ROCK, TYPE_STEEL, 5 + .byte TYPE_GHOST, TYPE_NORMAL, 0 + .byte TYPE_GHOST, TYPE_PSYCHIC, 20 + .byte TYPE_GHOST, TYPE_DARK, 5 + .byte TYPE_GHOST, TYPE_STEEL, 5 + .byte TYPE_GHOST, TYPE_GHOST, 20 + .byte TYPE_DRAGON, TYPE_DRAGON, 20 + .byte TYPE_DRAGON, TYPE_STEEL, 5 + .byte TYPE_DARK, TYPE_FIGHTING, 5 + .byte TYPE_DARK, TYPE_PSYCHIC, 20 + .byte TYPE_DARK, TYPE_GHOST, 20 + .byte TYPE_DARK, TYPE_DARK, 5 + .byte TYPE_DARK, TYPE_STEEL, 5 + .byte TYPE_STEEL, TYPE_FIRE, 5 + .byte TYPE_STEEL, TYPE_WATER, 5 + .byte TYPE_STEEL, TYPE_ELECTRIC, 5 + .byte TYPE_STEEL, TYPE_ICE, 20 + .byte TYPE_STEEL, TYPE_ROCK, 20 + .byte TYPE_STEEL, TYPE_STEEL, 5 + .byte 0xFE, 0xFE, 0 + .byte TYPE_NORMAL, TYPE_GHOST, 0 + .byte TYPE_FIGHTING, TYPE_GHOST, 0 + .byte 0xFF, 0xFF, 0 diff --git a/graphics/birch_speech/bg0.pal b/graphics/birch_speech/bg0.pal new file mode 100644 index 000000000..31b66d4b3 --- /dev/null +++ b/graphics/birch_speech/bg0.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 164 +255 255 106 +222 222 90 +189 189 74 +156 156 57 +123 123 49 +90 90 32 +57 57 16 +197 255 205 +123 255 131 +115 222 106 +106 189 90 +98 156 65 +90 123 49 +0 0 0 diff --git a/graphics/birch_speech/bg1.pal b/graphics/birch_speech/bg1.pal new file mode 100644 index 000000000..31b66d4b3 --- /dev/null +++ b/graphics/birch_speech/bg1.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +255 255 164 +255 255 106 +222 222 90 +189 189 74 +156 156 57 +123 123 49 +90 90 32 +57 57 16 +197 255 205 +123 255 131 +115 222 106 +106 189 90 +98 156 65 +90 123 49 +0 0 0 diff --git a/graphics/birch_speech/bg2.pal b/graphics/birch_speech/bg2.pal new file mode 100644 index 000000000..3457f9b45 --- /dev/null +++ b/graphics/birch_speech/bg2.pal @@ -0,0 +1,11 @@ +JASC-PAL +0100 +8 +255 255 164 +255 255 106 +222 222 90 +189 189 74 +156 156 57 +123 123 49 +90 90 32 +57 57 16 diff --git a/graphics/birch_speech/map.bin b/graphics/birch_speech/map.bin new file mode 100644 index 000000000..ad5540b7c Binary files /dev/null and b/graphics/birch_speech/map.bin differ diff --git a/graphics/birch_speech/shadow.png b/graphics/birch_speech/shadow.png new file mode 100644 index 000000000..4487ea9ea Binary files /dev/null and b/graphics/birch_speech/shadow.png differ diff --git a/graphics/link/minigame_digits.pal b/graphics/link/minigame_digits.pal new file mode 100644 index 000000000..e27640830 --- /dev/null +++ b/graphics/link/minigame_digits.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 0 0 +0 0 0 +205 205 205 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/link/minigame_digits.png b/graphics/link/minigame_digits.png new file mode 100644 index 000000000..172994249 Binary files /dev/null and b/graphics/link/minigame_digits.png differ diff --git a/graphics/link/minigame_digits2.png b/graphics/link/minigame_digits2.png new file mode 100644 index 000000000..285aa4aed Binary files /dev/null and b/graphics/link/minigame_digits2.png differ diff --git a/graphics/misc/main_menu_bg.pal b/graphics/misc/main_menu_bg.pal new file mode 100644 index 000000000..7aca54c52 --- /dev/null +++ b/graphics/misc/main_menu_bg.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +139 148 255 +255 255 255 +49 57 82 +90 98 115 +8 8 16 +148 156 172 +205 222 238 +180 180 189 +189 205 222 +32 32 49 +123 131 139 +49 82 123 +41 123 197 +57 139 213 +90 164 230 +139 197 246 diff --git a/graphics/misc/main_menu_text.pal b/graphics/misc/main_menu_text.pal new file mode 100644 index 000000000..25a3ac1d2 --- /dev/null +++ b/graphics/misc/main_menu_text.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +255 255 255 +98 98 98 +213 213 205 +230 8 8 +255 189 115 +32 156 8 +148 246 148 +49 82 205 +164 197 246 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/title_screen/unk_853EF78.pal b/graphics/title_screen/unk_853EF78.pal new file mode 100644 index 000000000..0cc3bebc1 --- /dev/null +++ b/graphics/title_screen/unk_853EF78.pal @@ -0,0 +1,115 @@ +JASC-PAL +0100 +112 +0 0 0 +0 0 0 +16 16 16 +32 32 32 +49 49 49 +65 65 65 +90 90 90 +106 106 106 +123 123 123 +139 139 139 +156 156 156 +180 180 180 +197 197 197 +213 213 213 +255 255 255 +255 0 0 +0 0 0 +98 148 16 +98 156 16 +106 164 24 +115 172 32 +123 180 41 +131 197 49 +139 205 57 +148 213 65 +156 222 74 +180 106 172 +0 0 0 +0 0 0 +148 115 115 +123 131 65 +197 197 197 +123 131 65 +255 255 255 +255 255 255 +255 255 255 +0 32 0 +8 41 8 +24 57 16 +41 74 32 +49 90 41 +65 106 49 +82 123 65 +255 255 255 +255 255 255 +255 255 255 +255 255 255 +255 255 255 +189 106 8 +0 139 74 +255 255 255 +8 106 49 +8 115 57 +16 123 65 +16 131 74 +24 148 82 +24 156 90 +32 164 98 +41 180 115 +8 65 57 +205 255 197 +255 255 255 +255 0 0 +0 0 0 +123 131 65 +255 255 255 +255 255 255 +255 255 255 +0 0 0 +8 8 8 +24 24 24 +41 41 41 +49 49 49 +65 65 65 +82 82 82 +0 123 230 +255 255 255 +255 255 255 +255 0 0 +255 189 0 +255 255 255 +255 255 255 +255 255 255 +255 255 255 +0 0 0 +41 74 32 +65 106 49 +90 139 74 +115 180 98 +139 213 123 +172 255 148 +0 123 230 +255 255 255 +255 255 255 +255 0 0 +255 189 0 +189 106 8 +0 139 74 +255 255 255 +8 106 49 +8 115 57 +16 123 65 +16 131 74 +24 148 82 +24 156 90 +32 164 98 +41 180 115 +8 65 57 +180 230 172 +255 255 255 +255 0 0 +255 189 0 diff --git a/ld_script.txt b/ld_script.txt index e0fc0d0c9..2a8ec94db 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -323,6 +323,8 @@ SECTIONS { src/string_util.o(.rodata); data/link.o(.rodata); src/rtc.o(.rodata); + data/main_menu.o(.rodata); + data/battle_1.o(.rodata); data/data2b.o(.rodata); src/battle_script_commands.o(.rodata); data/battle_controller_player.o(.rodata); diff --git a/src/util.c b/src/util.c index 27b7c5ee5..58088c3ee 100644 --- a/src/util.c +++ b/src/util.c @@ -112,7 +112,7 @@ static const u16 sCrc16Table[] = 0x7BC7, 0x6A4E, 0x58D5, 0x495C, 0x3DE3, 0x2C6A, 0x1EF1, 0x0F78, }; -const u8 gMiscBlank_Gfx[] = INCBIN_U8("graphics/interface/blank.4bpp"); // unused in Emerald +const u8 gMiscBlank_Gfx[] = INCBIN_U8("graphics/interface/blank.4bpp"); u8 CreateInvisibleSpriteWithCallback(void (*callback)(struct Sprite *)) { -- cgit v1.2.3 From f41709d3225b5acbeb163ba2e4acc7deec48c0f0 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Wed, 4 Oct 2017 02:43:45 -0500 Subject: Rename files for consistency with pokeruby --- data/data2b.s | 18 +- data/graphics.s | 4 +- data/graphics/pokemon/back_pic_table.inc | 442 + data/graphics/pokemon/footprint_table.inc | 415 + data/graphics/pokemon/front_pic_table.inc | 442 + data/graphics/pokemon/graphics.inc | 9613 ++++++++++++++++++++ data/graphics/pokemon/icon_palette_indices.inc | 442 + data/graphics/pokemon/icon_palette_table.inc | 11 + data/graphics/pokemon/icon_table.inc | 442 + data/graphics/pokemon/mon_back_pic_table.inc | 442 - data/graphics/pokemon/mon_footprint_table.inc | 415 - data/graphics/pokemon/mon_front_pic_table.inc | 442 - data/graphics/pokemon/mon_graphics.inc | 9613 -------------------- data/graphics/pokemon/mon_icon_palette_indices.inc | 442 - data/graphics/pokemon/mon_icon_palette_table.inc | 11 - data/graphics/pokemon/mon_icon_table.inc | 442 - data/graphics/pokemon/mon_palette_table.inc | 442 - data/graphics/pokemon/mon_shiny_palette_table.inc | 442 - .../graphics/pokemon/mon_still_front_pic_table.inc | 442 - data/graphics/pokemon/palette_table.inc | 442 + data/graphics/pokemon/shiny_palette_table.inc | 442 + data/graphics/pokemon/still_front_pic_table.inc | 442 + data/graphics/trainers/back_pic_palette_table.inc | 10 + data/graphics/trainers/back_pic_table.inc | 10 + data/graphics/trainers/front_pic_palette_table.inc | 95 + data/graphics/trainers/front_pic_table.inc | 95 + data/graphics/trainers/graphics.inc | 783 ++ .../trainers/trainer_back_pic_palette_table.inc | 10 - data/graphics/trainers/trainer_back_pic_table.inc | 10 - .../trainers/trainer_front_pic_palette_table.inc | 95 - data/graphics/trainers/trainer_front_pic_table.inc | 95 - data/graphics/trainers/trainer_graphics.inc | 783 -- data/pokedex.s | 2 +- data/pokemon_icon.s | 6 +- 34 files changed, 14141 insertions(+), 14141 deletions(-) create mode 100644 data/graphics/pokemon/back_pic_table.inc create mode 100644 data/graphics/pokemon/footprint_table.inc create mode 100644 data/graphics/pokemon/front_pic_table.inc create mode 100644 data/graphics/pokemon/graphics.inc create mode 100644 data/graphics/pokemon/icon_palette_indices.inc create mode 100644 data/graphics/pokemon/icon_palette_table.inc create mode 100644 data/graphics/pokemon/icon_table.inc delete mode 100644 data/graphics/pokemon/mon_back_pic_table.inc delete mode 100644 data/graphics/pokemon/mon_footprint_table.inc delete mode 100644 data/graphics/pokemon/mon_front_pic_table.inc delete mode 100644 data/graphics/pokemon/mon_graphics.inc delete mode 100644 data/graphics/pokemon/mon_icon_palette_indices.inc delete mode 100644 data/graphics/pokemon/mon_icon_palette_table.inc delete mode 100644 data/graphics/pokemon/mon_icon_table.inc delete mode 100644 data/graphics/pokemon/mon_palette_table.inc delete mode 100644 data/graphics/pokemon/mon_shiny_palette_table.inc delete mode 100644 data/graphics/pokemon/mon_still_front_pic_table.inc create mode 100644 data/graphics/pokemon/palette_table.inc create mode 100644 data/graphics/pokemon/shiny_palette_table.inc create mode 100644 data/graphics/pokemon/still_front_pic_table.inc create mode 100644 data/graphics/trainers/back_pic_palette_table.inc create mode 100644 data/graphics/trainers/back_pic_table.inc create mode 100644 data/graphics/trainers/front_pic_palette_table.inc create mode 100644 data/graphics/trainers/front_pic_table.inc create mode 100644 data/graphics/trainers/graphics.inc delete mode 100644 data/graphics/trainers/trainer_back_pic_palette_table.inc delete mode 100644 data/graphics/trainers/trainer_back_pic_table.inc delete mode 100644 data/graphics/trainers/trainer_front_pic_palette_table.inc delete mode 100644 data/graphics/trainers/trainer_front_pic_table.inc delete mode 100644 data/graphics/trainers/trainer_graphics.inc diff --git a/data/data2b.s b/data/data2b.s index 77bb776cc..02ef511bf 100644 --- a/data/data2b.s +++ b/data/data2b.s @@ -3451,7 +3451,7 @@ gUnknown_08300D38:: @ 8300D38 .byte 0x35, 0x0d, 0x00, 0x00 @ 8301418 - .include "data/graphics/pokemon/mon_still_front_pic_table.inc" + .include "data/graphics/pokemon/still_front_pic_table.inc" .align 2 gUnknown_083021D8:: @ 83021D8 @@ -3897,13 +3897,13 @@ gUnknown_083021D8:: @ 83021D8 .byte 0x47, 0x06, 0x00, 0x00 @ 83028B8 - .include "data/graphics/pokemon/mon_back_pic_table.inc" + .include "data/graphics/pokemon/back_pic_table.inc" @ 8303678 - .include "data/graphics/pokemon/mon_palette_table.inc" + .include "data/graphics/pokemon/palette_table.inc" @ 8304438 - .include "data/graphics/pokemon/mon_shiny_palette_table.inc" + .include "data/graphics/pokemon/shiny_palette_table.inc" gUnknown_083051F8:: @ 83051F8 .4byte gUnknown_082FF538 @@ -4376,10 +4376,10 @@ gUnknown_0830536C:: @ 830536C .include "data/graphics/trainers/front_pic_coords.inc" @ 8305654 - .include "data/graphics/trainers/trainer_front_pic_table.inc" + .include "data/graphics/trainers/front_pic_table.inc" @ 830593C - .include "data/graphics/trainers/trainer_front_pic_palette_table.inc" + .include "data/graphics/trainers/front_pic_palette_table.inc" gUnknown_08305C24:: @ 8305C24 .2byte 0x0000, 0x0018, 0x0001, 0x0009, 0x0002, 0x0018, 0x0000, 0x0009 @@ -4470,10 +4470,10 @@ gUnknown_08305D0C:: @ 8305D0C .include "data/graphics/trainers/back_pic_coords.inc" @ 8305D4C - .include "data/graphics/trainers/trainer_back_pic_table.inc" + .include "data/graphics/trainers/back_pic_table.inc" @ 8305D8C - .include "data/graphics/trainers/trainer_back_pic_palette_table.inc" + .include "data/graphics/trainers/back_pic_palette_table.inc" @ 8305DCC .include "data/enemy_mon_elevation.inc" @@ -4484,7 +4484,7 @@ gUnknown_08309AAC:: @ 8309AAC .incbin "baserom.gba", 0x309aac, 0x6e0 @ 830A18C - .include "data/graphics/pokemon/mon_front_pic_table.inc" + .include "data/graphics/pokemon/front_pic_table.inc" @ 830AF4C .4byte 0x00000888, 0x00000888, 0x00000888, 0x00000888 diff --git a/data/graphics.s b/data/graphics.s index c192db3ab..2c29d6ca5 100644 --- a/data/graphics.s +++ b/data/graphics.s @@ -207,10 +207,10 @@ gUnknown_08C2EA9C:: @ 8C2EA9C .incbin "baserom.gba", 0xc2ea9c, 0xf6c @ 8C2FA08 - .include "data/graphics/pokemon/mon_graphics.inc" + .include "data/graphics/pokemon/graphics.inc" @ 8D51DC8 - .include "data/graphics/trainers/trainer_graphics.inc" + .include "data/graphics/trainers/graphics.inc" .align 2 gMonIcon_QuestionMark:: @ 8D774D0 diff --git a/data/graphics/pokemon/back_pic_table.inc b/data/graphics/pokemon/back_pic_table.inc new file mode 100644 index 000000000..b1b477f30 --- /dev/null +++ b/data/graphics/pokemon/back_pic_table.inc @@ -0,0 +1,442 @@ + .align 2 +gMonBackPicTable:: @ 83028B8 + obj_tiles gMonBackPic_CircledQuestionMark, 0x800, 0 + obj_tiles gMonBackPic_Bulbasaur, 0x800, 1 + obj_tiles gMonBackPic_Ivysaur, 0x800, 2 + obj_tiles gMonBackPic_Venusaur, 0x800, 3 + obj_tiles gMonBackPic_Charmander, 0x800, 4 + obj_tiles gMonBackPic_Charmeleon, 0x800, 5 + obj_tiles gMonBackPic_Charizard, 0x800, 6 + obj_tiles gMonBackPic_Squirtle, 0x800, 7 + obj_tiles gMonBackPic_Wartortle, 0x800, 8 + obj_tiles gMonBackPic_Blastoise, 0x800, 9 + obj_tiles gMonBackPic_Caterpie, 0x800, 10 + obj_tiles gMonBackPic_Metapod, 0x800, 11 + obj_tiles gMonBackPic_Butterfree, 0x800, 12 + obj_tiles gMonBackPic_Weedle, 0x800, 13 + obj_tiles gMonBackPic_Kakuna, 0x800, 14 + obj_tiles gMonBackPic_Beedrill, 0x800, 15 + obj_tiles gMonBackPic_Pidgey, 0x800, 16 + obj_tiles gMonBackPic_Pidgeotto, 0x800, 17 + obj_tiles gMonBackPic_Pidgeot, 0x800, 18 + obj_tiles gMonBackPic_Rattata, 0x800, 19 + obj_tiles gMonBackPic_Raticate, 0x800, 20 + obj_tiles gMonBackPic_Spearow, 0x800, 21 + obj_tiles gMonBackPic_Fearow, 0x800, 22 + obj_tiles gMonBackPic_Ekans, 0x800, 23 + obj_tiles gMonBackPic_Arbok, 0x800, 24 + obj_tiles gMonBackPic_Pikachu, 0x800, 25 + obj_tiles gMonBackPic_Raichu, 0x800, 26 + obj_tiles gMonBackPic_Sandshrew, 0x800, 27 + obj_tiles gMonBackPic_Sandslash, 0x800, 28 + obj_tiles gMonBackPic_NidoranF, 0x800, 29 + obj_tiles gMonBackPic_Nidorina, 0x800, 30 + obj_tiles gMonBackPic_Nidoqueen, 0x800, 31 + obj_tiles gMonBackPic_NidoranM, 0x800, 32 + obj_tiles gMonBackPic_Nidorino, 0x800, 33 + obj_tiles gMonBackPic_Nidoking, 0x800, 34 + obj_tiles gMonBackPic_Clefairy, 0x800, 35 + obj_tiles gMonBackPic_Clefable, 0x800, 36 + obj_tiles gMonBackPic_Vulpix, 0x800, 37 + obj_tiles gMonBackPic_Ninetales, 0x800, 38 + obj_tiles gMonBackPic_Jigglypuff, 0x800, 39 + obj_tiles gMonBackPic_Wigglytuff, 0x800, 40 + obj_tiles gMonBackPic_Zubat, 0x800, 41 + obj_tiles gMonBackPic_Golbat, 0x800, 42 + obj_tiles gMonBackPic_Oddish, 0x800, 43 + obj_tiles gMonBackPic_Gloom, 0x800, 44 + obj_tiles gMonBackPic_Vileplume, 0x800, 45 + obj_tiles gMonBackPic_Paras, 0x800, 46 + obj_tiles gMonBackPic_Parasect, 0x800, 47 + obj_tiles gMonBackPic_Venonat, 0x800, 48 + obj_tiles gMonBackPic_Venomoth, 0x800, 49 + obj_tiles gMonBackPic_Diglett, 0x800, 50 + obj_tiles gMonBackPic_Dugtrio, 0x800, 51 + obj_tiles gMonBackPic_Meowth, 0x800, 52 + obj_tiles gMonBackPic_Persian, 0x800, 53 + obj_tiles gMonBackPic_Psyduck, 0x800, 54 + obj_tiles gMonBackPic_Golduck, 0x800, 55 + obj_tiles gMonBackPic_Mankey, 0x800, 56 + obj_tiles gMonBackPic_Primeape, 0x800, 57 + obj_tiles gMonBackPic_Growlithe, 0x800, 58 + obj_tiles gMonBackPic_Arcanine, 0x800, 59 + obj_tiles gMonBackPic_Poliwag, 0x800, 60 + obj_tiles gMonBackPic_Poliwhirl, 0x800, 61 + obj_tiles gMonBackPic_Poliwrath, 0x800, 62 + obj_tiles gMonBackPic_Abra, 0x800, 63 + obj_tiles gMonBackPic_Kadabra, 0x800, 64 + obj_tiles gMonBackPic_Alakazam, 0x800, 65 + obj_tiles gMonBackPic_Machop, 0x800, 66 + obj_tiles gMonBackPic_Machoke, 0x800, 67 + obj_tiles gMonBackPic_Machamp, 0x800, 68 + obj_tiles gMonBackPic_Bellsprout, 0x800, 69 + obj_tiles gMonBackPic_Weepinbell, 0x800, 70 + obj_tiles gMonBackPic_Victreebel, 0x800, 71 + obj_tiles gMonBackPic_Tentacool, 0x800, 72 + obj_tiles gMonBackPic_Tentacruel, 0x800, 73 + obj_tiles gMonBackPic_Geodude, 0x800, 74 + obj_tiles gMonBackPic_Graveler, 0x800, 75 + obj_tiles gMonBackPic_Golem, 0x800, 76 + obj_tiles gMonBackPic_Ponyta, 0x800, 77 + obj_tiles gMonBackPic_Rapidash, 0x800, 78 + obj_tiles gMonBackPic_Slowpoke, 0x800, 79 + obj_tiles gMonBackPic_Slowbro, 0x800, 80 + obj_tiles gMonBackPic_Magnemite, 0x800, 81 + obj_tiles gMonBackPic_Magneton, 0x800, 82 + obj_tiles gMonBackPic_Farfetchd, 0x800, 83 + obj_tiles gMonBackPic_Doduo, 0x800, 84 + obj_tiles gMonBackPic_Dodrio, 0x800, 85 + obj_tiles gMonBackPic_Seel, 0x800, 86 + obj_tiles gMonBackPic_Dewgong, 0x800, 87 + obj_tiles gMonBackPic_Grimer, 0x800, 88 + obj_tiles gMonBackPic_Muk, 0x800, 89 + obj_tiles gMonBackPic_Shellder, 0x800, 90 + obj_tiles gMonBackPic_Cloyster, 0x800, 91 + obj_tiles gMonBackPic_Gastly, 0x800, 92 + obj_tiles gMonBackPic_Haunter, 0x800, 93 + obj_tiles gMonBackPic_Gengar, 0x800, 94 + obj_tiles gMonBackPic_Onix, 0x800, 95 + obj_tiles gMonBackPic_Drowzee, 0x800, 96 + obj_tiles gMonBackPic_Hypno, 0x800, 97 + obj_tiles gMonBackPic_Krabby, 0x800, 98 + obj_tiles gMonBackPic_Kingler, 0x800, 99 + obj_tiles gMonBackPic_Voltorb, 0x800, 100 + obj_tiles gMonBackPic_Electrode, 0x800, 101 + obj_tiles gMonBackPic_Exeggcute, 0x800, 102 + obj_tiles gMonBackPic_Exeggutor, 0x800, 103 + obj_tiles gMonBackPic_Cubone, 0x800, 104 + obj_tiles gMonBackPic_Marowak, 0x800, 105 + obj_tiles gMonBackPic_Hitmonlee, 0x800, 106 + obj_tiles gMonBackPic_Hitmonchan, 0x800, 107 + obj_tiles gMonBackPic_Lickitung, 0x800, 108 + obj_tiles gMonBackPic_Koffing, 0x800, 109 + obj_tiles gMonBackPic_Weezing, 0x800, 110 + obj_tiles gMonBackPic_Rhyhorn, 0x800, 111 + obj_tiles gMonBackPic_Rhydon, 0x800, 112 + obj_tiles gMonBackPic_Chansey, 0x800, 113 + obj_tiles gMonBackPic_Tangela, 0x800, 114 + obj_tiles gMonBackPic_Kangaskhan, 0x800, 115 + obj_tiles gMonBackPic_Horsea, 0x800, 116 + obj_tiles gMonBackPic_Seadra, 0x800, 117 + obj_tiles gMonBackPic_Goldeen, 0x800, 118 + obj_tiles gMonBackPic_Seaking, 0x800, 119 + obj_tiles gMonBackPic_Staryu, 0x800, 120 + obj_tiles gMonBackPic_Starmie, 0x800, 121 + obj_tiles gMonBackPic_Mrmime, 0x800, 122 + obj_tiles gMonBackPic_Scyther, 0x800, 123 + obj_tiles gMonBackPic_Jynx, 0x800, 124 + obj_tiles gMonBackPic_Electabuzz, 0x800, 125 + obj_tiles gMonBackPic_Magmar, 0x800, 126 + obj_tiles gMonBackPic_Pinsir, 0x800, 127 + obj_tiles gMonBackPic_Tauros, 0x800, 128 + obj_tiles gMonBackPic_Magikarp, 0x800, 129 + obj_tiles gMonBackPic_Gyarados, 0x800, 130 + obj_tiles gMonBackPic_Lapras, 0x800, 131 + obj_tiles gMonBackPic_Ditto, 0x800, 132 + obj_tiles gMonBackPic_Eevee, 0x800, 133 + obj_tiles gMonBackPic_Vaporeon, 0x800, 134 + obj_tiles gMonBackPic_Jolteon, 0x800, 135 + obj_tiles gMonBackPic_Flareon, 0x800, 136 + obj_tiles gMonBackPic_Porygon, 0x800, 137 + obj_tiles gMonBackPic_Omanyte, 0x800, 138 + obj_tiles gMonBackPic_Omastar, 0x800, 139 + obj_tiles gMonBackPic_Kabuto, 0x800, 140 + obj_tiles gMonBackPic_Kabutops, 0x800, 141 + obj_tiles gMonBackPic_Aerodactyl, 0x800, 142 + obj_tiles gMonBackPic_Snorlax, 0x800, 143 + obj_tiles gMonBackPic_Articuno, 0x800, 144 + obj_tiles gMonBackPic_Zapdos, 0x800, 145 + obj_tiles gMonBackPic_Moltres, 0x800, 146 + obj_tiles gMonBackPic_Dratini, 0x800, 147 + obj_tiles gMonBackPic_Dragonair, 0x800, 148 + obj_tiles gMonBackPic_Dragonite, 0x800, 149 + obj_tiles gMonBackPic_Mewtwo, 0x800, 150 + obj_tiles gMonBackPic_Mew, 0x800, 151 + obj_tiles gMonBackPic_Chikorita, 0x800, 152 + obj_tiles gMonBackPic_Bayleef, 0x800, 153 + obj_tiles gMonBackPic_Meganium, 0x800, 154 + obj_tiles gMonBackPic_Cyndaquil, 0x800, 155 + obj_tiles gMonBackPic_Quilava, 0x800, 156 + obj_tiles gMonBackPic_Typhlosion, 0x800, 157 + obj_tiles gMonBackPic_Totodile, 0x800, 158 + obj_tiles gMonBackPic_Croconaw, 0x800, 159 + obj_tiles gMonBackPic_Feraligatr, 0x800, 160 + obj_tiles gMonBackPic_Sentret, 0x800, 161 + obj_tiles gMonBackPic_Furret, 0x800, 162 + obj_tiles gMonBackPic_Hoothoot, 0x800, 163 + obj_tiles gMonBackPic_Noctowl, 0x800, 164 + obj_tiles gMonBackPic_Ledyba, 0x800, 165 + obj_tiles gMonBackPic_Ledian, 0x800, 166 + obj_tiles gMonBackPic_Spinarak, 0x800, 167 + obj_tiles gMonBackPic_Ariados, 0x800, 168 + obj_tiles gMonBackPic_Crobat, 0x800, 169 + obj_tiles gMonBackPic_Chinchou, 0x800, 170 + obj_tiles gMonBackPic_Lanturn, 0x800, 171 + obj_tiles gMonBackPic_Pichu, 0x800, 172 + obj_tiles gMonBackPic_Cleffa, 0x800, 173 + obj_tiles gMonBackPic_Igglybuff, 0x800, 174 + obj_tiles gMonBackPic_Togepi, 0x800, 175 + obj_tiles gMonBackPic_Togetic, 0x800, 176 + obj_tiles gMonBackPic_Natu, 0x800, 177 + obj_tiles gMonBackPic_Xatu, 0x800, 178 + obj_tiles gMonBackPic_Mareep, 0x800, 179 + obj_tiles gMonBackPic_Flaaffy, 0x800, 180 + obj_tiles gMonBackPic_Ampharos, 0x800, 181 + obj_tiles gMonBackPic_Bellossom, 0x800, 182 + obj_tiles gMonBackPic_Marill, 0x800, 183 + obj_tiles gMonBackPic_Azumarill, 0x800, 184 + obj_tiles gMonBackPic_Sudowoodo, 0x800, 185 + obj_tiles gMonBackPic_Politoed, 0x800, 186 + obj_tiles gMonBackPic_Hoppip, 0x800, 187 + obj_tiles gMonBackPic_Skiploom, 0x800, 188 + obj_tiles gMonBackPic_Jumpluff, 0x800, 189 + obj_tiles gMonBackPic_Aipom, 0x800, 190 + obj_tiles gMonBackPic_Sunkern, 0x800, 191 + obj_tiles gMonBackPic_Sunflora, 0x800, 192 + obj_tiles gMonBackPic_Yanma, 0x800, 193 + obj_tiles gMonBackPic_Wooper, 0x800, 194 + obj_tiles gMonBackPic_Quagsire, 0x800, 195 + obj_tiles gMonBackPic_Espeon, 0x800, 196 + obj_tiles gMonBackPic_Umbreon, 0x800, 197 + obj_tiles gMonBackPic_Murkrow, 0x800, 198 + obj_tiles gMonBackPic_Slowking, 0x800, 199 + obj_tiles gMonBackPic_Misdreavus, 0x800, 200 + obj_tiles gMonBackPic_UnownA, 0x800, 201 + obj_tiles gMonBackPic_Wobbuffet, 0x800, 202 + obj_tiles gMonBackPic_Girafarig, 0x800, 203 + obj_tiles gMonBackPic_Pineco, 0x800, 204 + obj_tiles gMonBackPic_Forretress, 0x800, 205 + obj_tiles gMonBackPic_Dunsparce, 0x800, 206 + obj_tiles gMonBackPic_Gligar, 0x800, 207 + obj_tiles gMonBackPic_Steelix, 0x800, 208 + obj_tiles gMonBackPic_Snubbull, 0x800, 209 + obj_tiles gMonBackPic_Granbull, 0x800, 210 + obj_tiles gMonBackPic_Qwilfish, 0x800, 211 + obj_tiles gMonBackPic_Scizor, 0x800, 212 + obj_tiles gMonBackPic_Shuckle, 0x800, 213 + obj_tiles gMonBackPic_Heracross, 0x800, 214 + obj_tiles gMonBackPic_Sneasel, 0x800, 215 + obj_tiles gMonBackPic_Teddiursa, 0x800, 216 + obj_tiles gMonBackPic_Ursaring, 0x800, 217 + obj_tiles gMonBackPic_Slugma, 0x800, 218 + obj_tiles gMonBackPic_Magcargo, 0x800, 219 + obj_tiles gMonBackPic_Swinub, 0x800, 220 + obj_tiles gMonBackPic_Piloswine, 0x800, 221 + obj_tiles gMonBackPic_Corsola, 0x800, 222 + obj_tiles gMonBackPic_Remoraid, 0x800, 223 + obj_tiles gMonBackPic_Octillery, 0x800, 224 + obj_tiles gMonBackPic_Delibird, 0x800, 225 + obj_tiles gMonBackPic_Mantine, 0x800, 226 + obj_tiles gMonBackPic_Skarmory, 0x800, 227 + obj_tiles gMonBackPic_Houndour, 0x800, 228 + obj_tiles gMonBackPic_Houndoom, 0x800, 229 + obj_tiles gMonBackPic_Kingdra, 0x800, 230 + obj_tiles gMonBackPic_Phanpy, 0x800, 231 + obj_tiles gMonBackPic_Donphan, 0x800, 232 + obj_tiles gMonBackPic_Porygon2, 0x800, 233 + obj_tiles gMonBackPic_Stantler, 0x800, 234 + obj_tiles gMonBackPic_Smeargle, 0x800, 235 + obj_tiles gMonBackPic_Tyrogue, 0x800, 236 + obj_tiles gMonBackPic_Hitmontop, 0x800, 237 + obj_tiles gMonBackPic_Smoochum, 0x800, 238 + obj_tiles gMonBackPic_Elekid, 0x800, 239 + obj_tiles gMonBackPic_Magby, 0x800, 240 + obj_tiles gMonBackPic_Miltank, 0x800, 241 + obj_tiles gMonBackPic_Blissey, 0x800, 242 + obj_tiles gMonBackPic_Raikou, 0x800, 243 + obj_tiles gMonBackPic_Entei, 0x800, 244 + obj_tiles gMonBackPic_Suicune, 0x800, 245 + obj_tiles gMonBackPic_Larvitar, 0x800, 246 + obj_tiles gMonBackPic_Pupitar, 0x800, 247 + obj_tiles gMonBackPic_Tyranitar, 0x800, 248 + obj_tiles gMonBackPic_Lugia, 0x800, 249 + obj_tiles gMonBackPic_HoOh, 0x800, 250 + obj_tiles gMonBackPic_Celebi, 0x800, 251 + obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 252 + obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 253 + obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 254 + obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 255 + obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 256 + obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 257 + obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 258 + obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 259 + obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 260 + obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 261 + obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 262 + obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 263 + obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 264 + obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 265 + obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 266 + obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 267 + obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 268 + obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 269 + obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 270 + obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 271 + obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 272 + obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 273 + obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 274 + obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 275 + obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 276 + obj_tiles gMonBackPic_Treecko, 0x800, 277 + obj_tiles gMonBackPic_Grovyle, 0x800, 278 + obj_tiles gMonBackPic_Sceptile, 0x800, 279 + obj_tiles gMonBackPic_Torchic, 0x800, 280 + obj_tiles gMonBackPic_Combusken, 0x800, 281 + obj_tiles gMonBackPic_Blaziken, 0x800, 282 + obj_tiles gMonBackPic_Mudkip, 0x800, 283 + obj_tiles gMonBackPic_Marshtomp, 0x800, 284 + obj_tiles gMonBackPic_Swampert, 0x800, 285 + obj_tiles gMonBackPic_Poochyena, 0x800, 286 + obj_tiles gMonBackPic_Mightyena, 0x800, 287 + obj_tiles gMonBackPic_Zigzagoon, 0x800, 288 + obj_tiles gMonBackPic_Linoone, 0x800, 289 + obj_tiles gMonBackPic_Wurmple, 0x800, 290 + obj_tiles gMonBackPic_Silcoon, 0x800, 291 + obj_tiles gMonBackPic_Beautifly, 0x800, 292 + obj_tiles gMonBackPic_Cascoon, 0x800, 293 + obj_tiles gMonBackPic_Dustox, 0x800, 294 + obj_tiles gMonBackPic_Lotad, 0x800, 295 + obj_tiles gMonBackPic_Lombre, 0x800, 296 + obj_tiles gMonBackPic_Ludicolo, 0x800, 297 + obj_tiles gMonBackPic_Seedot, 0x800, 298 + obj_tiles gMonBackPic_Nuzleaf, 0x800, 299 + obj_tiles gMonBackPic_Shiftry, 0x800, 300 + obj_tiles gMonBackPic_Nincada, 0x800, 301 + obj_tiles gMonBackPic_Ninjask, 0x800, 302 + obj_tiles gMonBackPic_Shedinja, 0x800, 303 + obj_tiles gMonBackPic_Taillow, 0x800, 304 + obj_tiles gMonBackPic_Swellow, 0x800, 305 + obj_tiles gMonBackPic_Shroomish, 0x800, 306 + obj_tiles gMonBackPic_Breloom, 0x800, 307 + obj_tiles gMonBackPic_Spinda, 0x800, 308 + obj_tiles gMonBackPic_Wingull, 0x800, 309 + obj_tiles gMonBackPic_Pelipper, 0x800, 310 + obj_tiles gMonBackPic_Surskit, 0x800, 311 + obj_tiles gMonBackPic_Masquerain, 0x800, 312 + obj_tiles gMonBackPic_Wailmer, 0x800, 313 + obj_tiles gMonBackPic_Wailord, 0x800, 314 + obj_tiles gMonBackPic_Skitty, 0x800, 315 + obj_tiles gMonBackPic_Delcatty, 0x800, 316 + obj_tiles gMonBackPic_Kecleon, 0x800, 317 + obj_tiles gMonBackPic_Baltoy, 0x800, 318 + obj_tiles gMonBackPic_Claydol, 0x800, 319 + obj_tiles gMonBackPic_Nosepass, 0x800, 320 + obj_tiles gMonBackPic_Torkoal, 0x800, 321 + obj_tiles gMonBackPic_Sableye, 0x800, 322 + obj_tiles gMonBackPic_Barboach, 0x800, 323 + obj_tiles gMonBackPic_Whiscash, 0x800, 324 + obj_tiles gMonBackPic_Luvdisc, 0x800, 325 + obj_tiles gMonBackPic_Corphish, 0x800, 326 + obj_tiles gMonBackPic_Crawdaunt, 0x800, 327 + obj_tiles gMonBackPic_Feebas, 0x800, 328 + obj_tiles gMonBackPic_Milotic, 0x800, 329 + obj_tiles gMonBackPic_Carvanha, 0x800, 330 + obj_tiles gMonBackPic_Sharpedo, 0x800, 331 + obj_tiles gMonBackPic_Trapinch, 0x800, 332 + obj_tiles gMonBackPic_Vibrava, 0x800, 333 + obj_tiles gMonBackPic_Flygon, 0x800, 334 + obj_tiles gMonBackPic_Makuhita, 0x800, 335 + obj_tiles gMonBackPic_Hariyama, 0x800, 336 + obj_tiles gMonBackPic_Electrike, 0x800, 337 + obj_tiles gMonBackPic_Manectric, 0x800, 338 + obj_tiles gMonBackPic_Numel, 0x800, 339 + obj_tiles gMonBackPic_Camerupt, 0x800, 340 + obj_tiles gMonBackPic_Spheal, 0x800, 341 + obj_tiles gMonBackPic_Sealeo, 0x800, 342 + obj_tiles gMonBackPic_Walrein, 0x800, 343 + obj_tiles gMonBackPic_Cacnea, 0x800, 344 + obj_tiles gMonBackPic_Cacturne, 0x800, 345 + obj_tiles gMonBackPic_Snorunt, 0x800, 346 + obj_tiles gMonBackPic_Glalie, 0x800, 347 + obj_tiles gMonBackPic_Lunatone, 0x800, 348 + obj_tiles gMonBackPic_Solrock, 0x800, 349 + obj_tiles gMonBackPic_Azurill, 0x800, 350 + obj_tiles gMonBackPic_Spoink, 0x800, 351 + obj_tiles gMonBackPic_Grumpig, 0x800, 352 + obj_tiles gMonBackPic_Plusle, 0x800, 353 + obj_tiles gMonBackPic_Minun, 0x800, 354 + obj_tiles gMonBackPic_Mawile, 0x800, 355 + obj_tiles gMonBackPic_Meditite, 0x800, 356 + obj_tiles gMonBackPic_Medicham, 0x800, 357 + obj_tiles gMonBackPic_Swablu, 0x800, 358 + obj_tiles gMonBackPic_Altaria, 0x800, 359 + obj_tiles gMonBackPic_Wynaut, 0x800, 360 + obj_tiles gMonBackPic_Duskull, 0x800, 361 + obj_tiles gMonBackPic_Dusclops, 0x800, 362 + obj_tiles gMonBackPic_Roselia, 0x800, 363 + obj_tiles gMonBackPic_Slakoth, 0x800, 364 + obj_tiles gMonBackPic_Vigoroth, 0x800, 365 + obj_tiles gMonBackPic_Slaking, 0x800, 366 + obj_tiles gMonBackPic_Gulpin, 0x800, 367 + obj_tiles gMonBackPic_Swalot, 0x800, 368 + obj_tiles gMonBackPic_Tropius, 0x800, 369 + obj_tiles gMonBackPic_Whismur, 0x800, 370 + obj_tiles gMonBackPic_Loudred, 0x800, 371 + obj_tiles gMonBackPic_Exploud, 0x800, 372 + obj_tiles gMonBackPic_Clamperl, 0x800, 373 + obj_tiles gMonBackPic_Huntail, 0x800, 374 + obj_tiles gMonBackPic_Gorebyss, 0x800, 375 + obj_tiles gMonBackPic_Absol, 0x800, 376 + obj_tiles gMonBackPic_Shuppet, 0x800, 377 + obj_tiles gMonBackPic_Banette, 0x800, 378 + obj_tiles gMonBackPic_Seviper, 0x800, 379 + obj_tiles gMonBackPic_Zangoose, 0x800, 380 + obj_tiles gMonBackPic_Relicanth, 0x800, 381 + obj_tiles gMonBackPic_Aron, 0x800, 382 + obj_tiles gMonBackPic_Lairon, 0x800, 383 + obj_tiles gMonBackPic_Aggron, 0x800, 384 + obj_tiles gMonBackPic_Castform, 0x800, 385 + obj_tiles gMonBackPic_Volbeat, 0x800, 386 + obj_tiles gMonBackPic_Illumise, 0x800, 387 + obj_tiles gMonBackPic_Lileep, 0x800, 388 + obj_tiles gMonBackPic_Cradily, 0x800, 389 + obj_tiles gMonBackPic_Anorith, 0x800, 390 + obj_tiles gMonBackPic_Armaldo, 0x800, 391 + obj_tiles gMonBackPic_Ralts, 0x800, 392 + obj_tiles gMonBackPic_Kirlia, 0x800, 393 + obj_tiles gMonBackPic_Gardevoir, 0x800, 394 + obj_tiles gMonBackPic_Bagon, 0x800, 395 + obj_tiles gMonBackPic_Shelgon, 0x800, 396 + obj_tiles gMonBackPic_Salamence, 0x800, 397 + obj_tiles gMonBackPic_Beldum, 0x800, 398 + obj_tiles gMonBackPic_Metang, 0x800, 399 + obj_tiles gMonBackPic_Metagross, 0x800, 400 + obj_tiles gMonBackPic_Regirock, 0x800, 401 + obj_tiles gMonBackPic_Regice, 0x800, 402 + obj_tiles gMonBackPic_Registeel, 0x800, 403 + obj_tiles gMonBackPic_Kyogre, 0x800, 404 + obj_tiles gMonBackPic_Groudon, 0x800, 405 + obj_tiles gMonBackPic_Rayquaza, 0x800, 406 + obj_tiles gMonBackPic_Latias, 0x800, 407 + obj_tiles gMonBackPic_Latios, 0x800, 408 + obj_tiles gMonBackPic_Jirachi, 0x800, 409 + obj_tiles gMonBackPic_Deoxys, 0x800, 410 + obj_tiles gMonBackPic_Chimecho, 0x800, 411 + obj_tiles gMonStillFrontPic_Egg, 0x800, 412 + obj_tiles gMonBackPic_UnownB, 0x800, 413 + obj_tiles gMonBackPic_UnownC, 0x800, 414 + obj_tiles gMonBackPic_UnownD, 0x800, 415 + obj_tiles gMonBackPic_UnownE, 0x800, 416 + obj_tiles gMonBackPic_UnownF, 0x800, 417 + obj_tiles gMonBackPic_UnownG, 0x800, 418 + obj_tiles gMonBackPic_UnownH, 0x800, 419 + obj_tiles gMonBackPic_UnownI, 0x800, 420 + obj_tiles gMonBackPic_UnownJ, 0x800, 421 + obj_tiles gMonBackPic_UnownK, 0x800, 422 + obj_tiles gMonBackPic_UnownL, 0x800, 423 + obj_tiles gMonBackPic_UnownM, 0x800, 424 + obj_tiles gMonBackPic_UnownN, 0x800, 425 + obj_tiles gMonBackPic_UnownO, 0x800, 426 + obj_tiles gMonBackPic_UnownP, 0x800, 427 + obj_tiles gMonBackPic_UnownQ, 0x800, 428 + obj_tiles gMonBackPic_UnownR, 0x800, 429 + obj_tiles gMonBackPic_UnownS, 0x800, 430 + obj_tiles gMonBackPic_UnownT, 0x800, 431 + obj_tiles gMonBackPic_UnownU, 0x800, 432 + obj_tiles gMonBackPic_UnownV, 0x800, 433 + obj_tiles gMonBackPic_UnownW, 0x800, 434 + obj_tiles gMonBackPic_UnownX, 0x800, 435 + obj_tiles gMonBackPic_UnownY, 0x800, 436 + obj_tiles gMonBackPic_UnownZ, 0x800, 437 + obj_tiles gMonBackPic_UnownExclamationMark, 0x800, 438 + obj_tiles gMonBackPic_UnownQuestionMark, 0x800, 439 diff --git a/data/graphics/pokemon/footprint_table.inc b/data/graphics/pokemon/footprint_table.inc new file mode 100644 index 000000000..b5de0e11d --- /dev/null +++ b/data/graphics/pokemon/footprint_table.inc @@ -0,0 +1,415 @@ + .align 2 +gMonFootprintTable:: @ 856E694 + .4byte gMonFootprint_Bulbasaur + .4byte gMonFootprint_Bulbasaur + .4byte gMonFootprint_Ivysaur + .4byte gMonFootprint_Venusaur + .4byte gMonFootprint_Charmander + .4byte gMonFootprint_Charmeleon + .4byte gMonFootprint_Charizard + .4byte gMonFootprint_Squirtle + .4byte gMonFootprint_Wartortle + .4byte gMonFootprint_Blastoise + .4byte gMonFootprint_Caterpie + .4byte gMonFootprint_Metapod + .4byte gMonFootprint_Butterfree + .4byte gMonFootprint_Weedle + .4byte gMonFootprint_Kakuna + .4byte gMonFootprint_Beedrill + .4byte gMonFootprint_Pidgey + .4byte gMonFootprint_Pidgeotto + .4byte gMonFootprint_Pidgeot + .4byte gMonFootprint_Rattata + .4byte gMonFootprint_Raticate + .4byte gMonFootprint_Spearow + .4byte gMonFootprint_Fearow + .4byte gMonFootprint_Ekans + .4byte gMonFootprint_Arbok + .4byte gMonFootprint_Pikachu + .4byte gMonFootprint_Raichu + .4byte gMonFootprint_Sandshrew + .4byte gMonFootprint_Sandslash + .4byte gMonFootprint_NidoranF + .4byte gMonFootprint_Nidorina + .4byte gMonFootprint_Nidoqueen + .4byte gMonFootprint_NidoranM + .4byte gMonFootprint_Nidorino + .4byte gMonFootprint_Nidoking + .4byte gMonFootprint_Clefairy + .4byte gMonFootprint_Clefable + .4byte gMonFootprint_Vulpix + .4byte gMonFootprint_Ninetales + .4byte gMonFootprint_Jigglypuff + .4byte gMonFootprint_Wigglytuff + .4byte gMonFootprint_Zubat + .4byte gMonFootprint_Golbat + .4byte gMonFootprint_Oddish + .4byte gMonFootprint_Gloom + .4byte gMonFootprint_Vileplume + .4byte gMonFootprint_Paras + .4byte gMonFootprint_Parasect + .4byte gMonFootprint_Venonat + .4byte gMonFootprint_Venomoth + .4byte gMonFootprint_Diglett + .4byte gMonFootprint_Dugtrio + .4byte gMonFootprint_Meowth + .4byte gMonFootprint_Persian + .4byte gMonFootprint_Psyduck + .4byte gMonFootprint_Golduck + .4byte gMonFootprint_Mankey + .4byte gMonFootprint_Primeape + .4byte gMonFootprint_Growlithe + .4byte gMonFootprint_Arcanine + .4byte gMonFootprint_Poliwag + .4byte gMonFootprint_Poliwhirl + .4byte gMonFootprint_Poliwrath + .4byte gMonFootprint_Abra + .4byte gMonFootprint_Kadabra + .4byte gMonFootprint_Alakazam + .4byte gMonFootprint_Machop + .4byte gMonFootprint_Machoke + .4byte gMonFootprint_Machamp + .4byte gMonFootprint_Bellsprout + .4byte gMonFootprint_Weepinbell + .4byte gMonFootprint_Victreebel + .4byte gMonFootprint_Tentacool + .4byte gMonFootprint_Tentacruel + .4byte gMonFootprint_Geodude + .4byte gMonFootprint_Graveler + .4byte gMonFootprint_Golem + .4byte gMonFootprint_Ponyta + .4byte gMonFootprint_Rapidash + .4byte gMonFootprint_Slowpoke + .4byte gMonFootprint_Slowbro + .4byte gMonFootprint_Magnemite + .4byte gMonFootprint_Magneton + .4byte gMonFootprint_Farfetchd + .4byte gMonFootprint_Doduo + .4byte gMonFootprint_Dodrio + .4byte gMonFootprint_Seel + .4byte gMonFootprint_Dewgong + .4byte gMonFootprint_Grimer + .4byte gMonFootprint_Muk + .4byte gMonFootprint_Shellder + .4byte gMonFootprint_Cloyster + .4byte gMonFootprint_Gastly + .4byte gMonFootprint_Haunter + .4byte gMonFootprint_Gengar + .4byte gMonFootprint_Onix + .4byte gMonFootprint_Drowzee + .4byte gMonFootprint_Hypno + .4byte gMonFootprint_Krabby + .4byte gMonFootprint_Kingler + .4byte gMonFootprint_Voltorb + .4byte gMonFootprint_Electrode + .4byte gMonFootprint_Exeggcute + .4byte gMonFootprint_Exeggutor + .4byte gMonFootprint_Cubone + .4byte gMonFootprint_Marowak + .4byte gMonFootprint_Hitmonlee + .4byte gMonFootprint_Hitmonchan + .4byte gMonFootprint_Lickitung + .4byte gMonFootprint_Koffing + .4byte gMonFootprint_Weezing + .4byte gMonFootprint_Rhyhorn + .4byte gMonFootprint_Rhydon + .4byte gMonFootprint_Chansey + .4byte gMonFootprint_Tangela + .4byte gMonFootprint_Kangaskhan + .4byte gMonFootprint_Horsea + .4byte gMonFootprint_Seadra + .4byte gMonFootprint_Goldeen + .4byte gMonFootprint_Seaking + .4byte gMonFootprint_Staryu + .4byte gMonFootprint_Starmie + .4byte gMonFootprint_Mrmime + .4byte gMonFootprint_Scyther + .4byte gMonFootprint_Jynx + .4byte gMonFootprint_Electabuzz + .4byte gMonFootprint_Magmar + .4byte gMonFootprint_Pinsir + .4byte gMonFootprint_Tauros + .4byte gMonFootprint_Magikarp + .4byte gMonFootprint_Gyarados + .4byte gMonFootprint_Lapras + .4byte gMonFootprint_Ditto + .4byte gMonFootprint_Eevee + .4byte gMonFootprint_Vaporeon + .4byte gMonFootprint_Jolteon + .4byte gMonFootprint_Flareon + .4byte gMonFootprint_Porygon + .4byte gMonFootprint_Omanyte + .4byte gMonFootprint_Omastar + .4byte gMonFootprint_Kabuto + .4byte gMonFootprint_Kabutops + .4byte gMonFootprint_Aerodactyl + .4byte gMonFootprint_Snorlax + .4byte gMonFootprint_Articuno + .4byte gMonFootprint_Zapdos + .4byte gMonFootprint_Moltres + .4byte gMonFootprint_Dratini + .4byte gMonFootprint_Dragonair + .4byte gMonFootprint_Dragonite + .4byte gMonFootprint_Mewtwo + .4byte gMonFootprint_Mew + .4byte gMonFootprint_Chikorita + .4byte gMonFootprint_Bayleef + .4byte gMonFootprint_Meganium + .4byte gMonFootprint_Cyndaquil + .4byte gMonFootprint_Quilava + .4byte gMonFootprint_Typhlosion + .4byte gMonFootprint_Totodile + .4byte gMonFootprint_Croconaw + .4byte gMonFootprint_Feraligatr + .4byte gMonFootprint_Sentret + .4byte gMonFootprint_Furret + .4byte gMonFootprint_Hoothoot + .4byte gMonFootprint_Noctowl + .4byte gMonFootprint_Ledyba + .4byte gMonFootprint_Ledian + .4byte gMonFootprint_Spinarak + .4byte gMonFootprint_Ariados + .4byte gMonFootprint_Crobat + .4byte gMonFootprint_Chinchou + .4byte gMonFootprint_Lanturn + .4byte gMonFootprint_Pichu + .4byte gMonFootprint_Cleffa + .4byte gMonFootprint_Igglybuff + .4byte gMonFootprint_Togepi + .4byte gMonFootprint_Togetic + .4byte gMonFootprint_Natu + .4byte gMonFootprint_Xatu + .4byte gMonFootprint_Mareep + .4byte gMonFootprint_Flaaffy + .4byte gMonFootprint_Ampharos + .4byte gMonFootprint_Bellossom + .4byte gMonFootprint_Marill + .4byte gMonFootprint_Azumarill + .4byte gMonFootprint_Sudowoodo + .4byte gMonFootprint_Politoed + .4byte gMonFootprint_Hoppip + .4byte gMonFootprint_Skiploom + .4byte gMonFootprint_Jumpluff + .4byte gMonFootprint_Aipom + .4byte gMonFootprint_Sunkern + .4byte gMonFootprint_Sunflora + .4byte gMonFootprint_Yanma + .4byte gMonFootprint_Wooper + .4byte gMonFootprint_Quagsire + .4byte gMonFootprint_Espeon + .4byte gMonFootprint_Umbreon + .4byte gMonFootprint_Murkrow + .4byte gMonFootprint_Slowking + .4byte gMonFootprint_Misdreavus + .4byte gMonFootprint_Unown + .4byte gMonFootprint_Wobbuffet + .4byte gMonFootprint_Girafarig + .4byte gMonFootprint_Pineco + .4byte gMonFootprint_Forretress + .4byte gMonFootprint_Dunsparce + .4byte gMonFootprint_Gligar + .4byte gMonFootprint_Steelix + .4byte gMonFootprint_Snubbull + .4byte gMonFootprint_Granbull + .4byte gMonFootprint_Qwilfish + .4byte gMonFootprint_Scizor + .4byte gMonFootprint_Shuckle + .4byte gMonFootprint_Heracross + .4byte gMonFootprint_Sneasel + .4byte gMonFootprint_Teddiursa + .4byte gMonFootprint_Ursaring + .4byte gMonFootprint_Slugma + .4byte gMonFootprint_Magcargo + .4byte gMonFootprint_Swinub + .4byte gMonFootprint_Piloswine + .4byte gMonFootprint_Corsola + .4byte gMonFootprint_Remoraid + .4byte gMonFootprint_Octillery + .4byte gMonFootprint_Delibird + .4byte gMonFootprint_Mantine + .4byte gMonFootprint_Skarmory + .4byte gMonFootprint_Houndour + .4byte gMonFootprint_Houndoom + .4byte gMonFootprint_Kingdra + .4byte gMonFootprint_Phanpy + .4byte gMonFootprint_Donphan + .4byte gMonFootprint_Porygon2 + .4byte gMonFootprint_Stantler + .4byte gMonFootprint_Smeargle + .4byte gMonFootprint_Tyrogue + .4byte gMonFootprint_Hitmontop + .4byte gMonFootprint_Smoochum + .4byte gMonFootprint_Elekid + .4byte gMonFootprint_Magby + .4byte gMonFootprint_Miltank + .4byte gMonFootprint_Blissey + .4byte gMonFootprint_Raikou + .4byte gMonFootprint_Entei + .4byte gMonFootprint_Suicune + .4byte gMonFootprint_Larvitar + .4byte gMonFootprint_Pupitar + .4byte gMonFootprint_Tyranitar + .4byte gMonFootprint_Lugia + .4byte gMonFootprint_HoOh + .4byte gMonFootprint_Celebi + .4byte gMonFootprint_QuestionMark + .4byte gMonFootprint_QuestionMark + .4byte gMonFootprint_QuestionMark + .4byte gMonFootprint_QuestionMark + .4byte gMonFootprint_QuestionMark + .4byte gMonFootprint_QuestionMark + .4byte gMonFootprint_QuestionMark + .4byte gMonFootprint_QuestionMark + .4byte gMonFootprint_QuestionMark + .4byte gMonFootprint_QuestionMark + .4byte gMonFootprint_QuestionMark + .4byte gMonFootprint_QuestionMark + .4byte gMonFootprint_QuestionMark + .4byte gMonFootprint_QuestionMark + .4byte gMonFootprint_QuestionMark + .4byte gMonFootprint_QuestionMark + .4byte gMonFootprint_QuestionMark + .4byte gMonFootprint_QuestionMark + .4byte gMonFootprint_QuestionMark + .4byte gMonFootprint_QuestionMark + .4byte gMonFootprint_QuestionMark + .4byte gMonFootprint_QuestionMark + .4byte gMonFootprint_QuestionMark + .4byte gMonFootprint_QuestionMark + .4byte gMonFootprint_QuestionMark + .4byte gMonFootprint_Treecko + .4byte gMonFootprint_Grovyle + .4byte gMonFootprint_Sceptile + .4byte gMonFootprint_Torchic + .4byte gMonFootprint_Combusken + .4byte gMonFootprint_Blaziken + .4byte gMonFootprint_Mudkip + .4byte gMonFootprint_Marshtomp + .4byte gMonFootprint_Swampert + .4byte gMonFootprint_Poochyena + .4byte gMonFootprint_Mightyena + .4byte gMonFootprint_Zigzagoon + .4byte gMonFootprint_Linoone + .4byte gMonFootprint_Wurmple + .4byte gMonFootprint_Silcoon + .4byte gMonFootprint_Beautifly + .4byte gMonFootprint_Cascoon + .4byte gMonFootprint_Dustox + .4byte gMonFootprint_Lotad + .4byte gMonFootprint_Lombre + .4byte gMonFootprint_Ludicolo + .4byte gMonFootprint_Seedot + .4byte gMonFootprint_Nuzleaf + .4byte gMonFootprint_Shiftry + .4byte gMonFootprint_Nincada + .4byte gMonFootprint_Ninjask + .4byte gMonFootprint_Shedinja + .4byte gMonFootprint_Taillow + .4byte gMonFootprint_Swellow + .4byte gMonFootprint_Shroomish + .4byte gMonFootprint_Breloom + .4byte gMonFootprint_Spinda + .4byte gMonFootprint_Wingull + .4byte gMonFootprint_Pelipper + .4byte gMonFootprint_Surskit + .4byte gMonFootprint_Masquerain + .4byte gMonFootprint_Wailmer + .4byte gMonFootprint_Wailord + .4byte gMonFootprint_Skitty + .4byte gMonFootprint_Delcatty + .4byte gMonFootprint_Kecleon + .4byte gMonFootprint_Baltoy + .4byte gMonFootprint_Claydol + .4byte gMonFootprint_Nosepass + .4byte gMonFootprint_Torkoal + .4byte gMonFootprint_Sableye + .4byte gMonFootprint_Barboach + .4byte gMonFootprint_Whiscash + .4byte gMonFootprint_Luvdisc + .4byte gMonFootprint_Corphish + .4byte gMonFootprint_Crawdaunt + .4byte gMonFootprint_Feebas + .4byte gMonFootprint_Milotic + .4byte gMonFootprint_Carvanha + .4byte gMonFootprint_Sharpedo + .4byte gMonFootprint_Trapinch + .4byte gMonFootprint_Vibrava + .4byte gMonFootprint_Flygon + .4byte gMonFootprint_Makuhita + .4byte gMonFootprint_Hariyama + .4byte gMonFootprint_Electrike + .4byte gMonFootprint_Manectric + .4byte gMonFootprint_Numel + .4byte gMonFootprint_Camerupt + .4byte gMonFootprint_Spheal + .4byte gMonFootprint_Sealeo + .4byte gMonFootprint_Walrein + .4byte gMonFootprint_Cacnea + .4byte gMonFootprint_Cacturne + .4byte gMonFootprint_Snorunt + .4byte gMonFootprint_Glalie + .4byte gMonFootprint_Lunatone + .4byte gMonFootprint_Solrock + .4byte gMonFootprint_Azurill + .4byte gMonFootprint_Spoink + .4byte gMonFootprint_Grumpig + .4byte gMonFootprint_Plusle + .4byte gMonFootprint_Minun + .4byte gMonFootprint_Mawile + .4byte gMonFootprint_Meditite + .4byte gMonFootprint_Medicham + .4byte gMonFootprint_Swablu + .4byte gMonFootprint_Altaria + .4byte gMonFootprint_Wynaut + .4byte gMonFootprint_Duskull + .4byte gMonFootprint_Dusclops + .4byte gMonFootprint_Roselia + .4byte gMonFootprint_Slakoth + .4byte gMonFootprint_Vigoroth + .4byte gMonFootprint_Slaking + .4byte gMonFootprint_Gulpin + .4byte gMonFootprint_Swalot + .4byte gMonFootprint_Tropius + .4byte gMonFootprint_Whismur + .4byte gMonFootprint_Loudred + .4byte gMonFootprint_Exploud + .4byte gMonFootprint_Clamperl + .4byte gMonFootprint_Huntail + .4byte gMonFootprint_Gorebyss + .4byte gMonFootprint_Absol + .4byte gMonFootprint_Shuppet + .4byte gMonFootprint_Banette + .4byte gMonFootprint_Seviper + .4byte gMonFootprint_Zangoose + .4byte gMonFootprint_Relicanth + .4byte gMonFootprint_Aron + .4byte gMonFootprint_Lairon + .4byte gMonFootprint_Aggron + .4byte gMonFootprint_Castform + .4byte gMonFootprint_Volbeat + .4byte gMonFootprint_Illumise + .4byte gMonFootprint_Lileep + .4byte gMonFootprint_Cradily + .4byte gMonFootprint_Anorith + .4byte gMonFootprint_Armaldo + .4byte gMonFootprint_Ralts + .4byte gMonFootprint_Kirlia + .4byte gMonFootprint_Gardevoir + .4byte gMonFootprint_Bagon + .4byte gMonFootprint_Shelgon + .4byte gMonFootprint_Salamence + .4byte gMonFootprint_Beldum + .4byte gMonFootprint_Metang + .4byte gMonFootprint_Metagross + .4byte gMonFootprint_Regirock + .4byte gMonFootprint_Regice + .4byte gMonFootprint_Registeel + .4byte gMonFootprint_Kyogre + .4byte gMonFootprint_Groudon + .4byte gMonFootprint_Rayquaza + .4byte gMonFootprint_Latias + .4byte gMonFootprint_Latios + .4byte gMonFootprint_Jirachi + .4byte gMonFootprint_Deoxys + .4byte gMonFootprint_Chimecho + .4byte gMonFootprint_Bulbasaur diff --git a/data/graphics/pokemon/front_pic_table.inc b/data/graphics/pokemon/front_pic_table.inc new file mode 100644 index 000000000..7f481e190 --- /dev/null +++ b/data/graphics/pokemon/front_pic_table.inc @@ -0,0 +1,442 @@ + .align 2 +gMonFrontPicTable:: @ 830A18C + obj_tiles gMonFrontPic_CircledQuestionMark, 0x800, 0 + obj_tiles gMonFrontPic_Bulbasaur, 0x800, 1 + obj_tiles gMonFrontPic_Ivysaur, 0x800, 2 + obj_tiles gMonFrontPic_Venusaur, 0x800, 3 + obj_tiles gMonFrontPic_Charmander, 0x800, 4 + obj_tiles gMonFrontPic_Charmeleon, 0x800, 5 + obj_tiles gMonFrontPic_Charizard, 0x800, 6 + obj_tiles gMonFrontPic_Squirtle, 0x800, 7 + obj_tiles gMonFrontPic_Wartortle, 0x800, 8 + obj_tiles gMonFrontPic_Blastoise, 0x800, 9 + obj_tiles gMonFrontPic_Caterpie, 0x800, 10 + obj_tiles gMonFrontPic_Metapod, 0x800, 11 + obj_tiles gMonFrontPic_Butterfree, 0x800, 12 + obj_tiles gMonFrontPic_Weedle, 0x800, 13 + obj_tiles gMonFrontPic_Kakuna, 0x800, 14 + obj_tiles gMonFrontPic_Beedrill, 0x800, 15 + obj_tiles gMonFrontPic_Pidgey, 0x800, 16 + obj_tiles gMonFrontPic_Pidgeotto, 0x800, 17 + obj_tiles gMonFrontPic_Pidgeot, 0x800, 18 + obj_tiles gMonFrontPic_Rattata, 0x800, 19 + obj_tiles gMonFrontPic_Raticate, 0x800, 20 + obj_tiles gMonFrontPic_Spearow, 0x800, 21 + obj_tiles gMonFrontPic_Fearow, 0x800, 22 + obj_tiles gMonFrontPic_Ekans, 0x800, 23 + obj_tiles gMonFrontPic_Arbok, 0x800, 24 + obj_tiles gMonFrontPic_Pikachu, 0x800, 25 + obj_tiles gMonFrontPic_Raichu, 0x800, 26 + obj_tiles gMonFrontPic_Sandshrew, 0x800, 27 + obj_tiles gMonFrontPic_Sandslash, 0x800, 28 + obj_tiles gMonFrontPic_NidoranF, 0x800, 29 + obj_tiles gMonFrontPic_Nidorina, 0x800, 30 + obj_tiles gMonFrontPic_Nidoqueen, 0x800, 31 + obj_tiles gMonFrontPic_NidoranM, 0x800, 32 + obj_tiles gMonFrontPic_Nidorino, 0x800, 33 + obj_tiles gMonFrontPic_Nidoking, 0x800, 34 + obj_tiles gMonFrontPic_Clefairy, 0x800, 35 + obj_tiles gMonFrontPic_Clefable, 0x800, 36 + obj_tiles gMonFrontPic_Vulpix, 0x800, 37 + obj_tiles gMonFrontPic_Ninetales, 0x800, 38 + obj_tiles gMonFrontPic_Jigglypuff, 0x800, 39 + obj_tiles gMonFrontPic_Wigglytuff, 0x800, 40 + obj_tiles gMonFrontPic_Zubat, 0x800, 41 + obj_tiles gMonFrontPic_Golbat, 0x800, 42 + obj_tiles gMonFrontPic_Oddish, 0x800, 43 + obj_tiles gMonFrontPic_Gloom, 0x800, 44 + obj_tiles gMonFrontPic_Vileplume, 0x800, 45 + obj_tiles gMonFrontPic_Paras, 0x800, 46 + obj_tiles gMonFrontPic_Parasect, 0x800, 47 + obj_tiles gMonFrontPic_Venonat, 0x800, 48 + obj_tiles gMonFrontPic_Venomoth, 0x800, 49 + obj_tiles gMonFrontPic_Diglett, 0x800, 50 + obj_tiles gMonFrontPic_Dugtrio, 0x800, 51 + obj_tiles gMonFrontPic_Meowth, 0x800, 52 + obj_tiles gMonFrontPic_Persian, 0x800, 53 + obj_tiles gMonFrontPic_Psyduck, 0x800, 54 + obj_tiles gMonFrontPic_Golduck, 0x800, 55 + obj_tiles gMonFrontPic_Mankey, 0x800, 56 + obj_tiles gMonFrontPic_Primeape, 0x800, 57 + obj_tiles gMonFrontPic_Growlithe, 0x800, 58 + obj_tiles gMonFrontPic_Arcanine, 0x800, 59 + obj_tiles gMonFrontPic_Poliwag, 0x800, 60 + obj_tiles gMonFrontPic_Poliwhirl, 0x800, 61 + obj_tiles gMonFrontPic_Poliwrath, 0x800, 62 + obj_tiles gMonFrontPic_Abra, 0x800, 63 + obj_tiles gMonFrontPic_Kadabra, 0x800, 64 + obj_tiles gMonFrontPic_Alakazam, 0x800, 65 + obj_tiles gMonFrontPic_Machop, 0x800, 66 + obj_tiles gMonFrontPic_Machoke, 0x800, 67 + obj_tiles gMonFrontPic_Machamp, 0x800, 68 + obj_tiles gMonFrontPic_Bellsprout, 0x800, 69 + obj_tiles gMonFrontPic_Weepinbell, 0x800, 70 + obj_tiles gMonFrontPic_Victreebel, 0x800, 71 + obj_tiles gMonFrontPic_Tentacool, 0x800, 72 + obj_tiles gMonFrontPic_Tentacruel, 0x800, 73 + obj_tiles gMonFrontPic_Geodude, 0x800, 74 + obj_tiles gMonFrontPic_Graveler, 0x800, 75 + obj_tiles gMonFrontPic_Golem, 0x800, 76 + obj_tiles gMonFrontPic_Ponyta, 0x800, 77 + obj_tiles gMonFrontPic_Rapidash, 0x800, 78 + obj_tiles gMonFrontPic_Slowpoke, 0x800, 79 + obj_tiles gMonFrontPic_Slowbro, 0x800, 80 + obj_tiles gMonFrontPic_Magnemite, 0x800, 81 + obj_tiles gMonFrontPic_Magneton, 0x800, 82 + obj_tiles gMonFrontPic_Farfetchd, 0x800, 83 + obj_tiles gMonFrontPic_Doduo, 0x800, 84 + obj_tiles gMonFrontPic_Dodrio, 0x800, 85 + obj_tiles gMonFrontPic_Seel, 0x800, 86 + obj_tiles gMonFrontPic_Dewgong, 0x800, 87 + obj_tiles gMonFrontPic_Grimer, 0x800, 88 + obj_tiles gMonFrontPic_Muk, 0x800, 89 + obj_tiles gMonFrontPic_Shellder, 0x800, 90 + obj_tiles gMonFrontPic_Cloyster, 0x800, 91 + obj_tiles gMonFrontPic_Gastly, 0x800, 92 + obj_tiles gMonFrontPic_Haunter, 0x800, 93 + obj_tiles gMonFrontPic_Gengar, 0x800, 94 + obj_tiles gMonFrontPic_Onix, 0x800, 95 + obj_tiles gMonFrontPic_Drowzee, 0x800, 96 + obj_tiles gMonFrontPic_Hypno, 0x800, 97 + obj_tiles gMonFrontPic_Krabby, 0x800, 98 + obj_tiles gMonFrontPic_Kingler, 0x800, 99 + obj_tiles gMonFrontPic_Voltorb, 0x800, 100 + obj_tiles gMonFrontPic_Electrode, 0x800, 101 + obj_tiles gMonFrontPic_Exeggcute, 0x800, 102 + obj_tiles gMonFrontPic_Exeggutor, 0x800, 103 + obj_tiles gMonFrontPic_Cubone, 0x800, 104 + obj_tiles gMonFrontPic_Marowak, 0x800, 105 + obj_tiles gMonFrontPic_Hitmonlee, 0x800, 106 + obj_tiles gMonFrontPic_Hitmonchan, 0x800, 107 + obj_tiles gMonFrontPic_Lickitung, 0x800, 108 + obj_tiles gMonFrontPic_Koffing, 0x800, 109 + obj_tiles gMonFrontPic_Weezing, 0x800, 110 + obj_tiles gMonFrontPic_Rhyhorn, 0x800, 111 + obj_tiles gMonFrontPic_Rhydon, 0x800, 112 + obj_tiles gMonFrontPic_Chansey, 0x800, 113 + obj_tiles gMonFrontPic_Tangela, 0x800, 114 + obj_tiles gMonFrontPic_Kangaskhan, 0x800, 115 + obj_tiles gMonFrontPic_Horsea, 0x800, 116 + obj_tiles gMonFrontPic_Seadra, 0x800, 117 + obj_tiles gMonFrontPic_Goldeen, 0x800, 118 + obj_tiles gMonFrontPic_Seaking, 0x800, 119 + obj_tiles gMonFrontPic_Staryu, 0x800, 120 + obj_tiles gMonFrontPic_Starmie, 0x800, 121 + obj_tiles gMonFrontPic_Mrmime, 0x800, 122 + obj_tiles gMonFrontPic_Scyther, 0x800, 123 + obj_tiles gMonFrontPic_Jynx, 0x800, 124 + obj_tiles gMonFrontPic_Electabuzz, 0x800, 125 + obj_tiles gMonFrontPic_Magmar, 0x800, 126 + obj_tiles gMonFrontPic_Pinsir, 0x800, 127 + obj_tiles gMonFrontPic_Tauros, 0x800, 128 + obj_tiles gMonFrontPic_Magikarp, 0x800, 129 + obj_tiles gMonFrontPic_Gyarados, 0x800, 130 + obj_tiles gMonFrontPic_Lapras, 0x800, 131 + obj_tiles gMonFrontPic_Ditto, 0x800, 132 + obj_tiles gMonFrontPic_Eevee, 0x800, 133 + obj_tiles gMonFrontPic_Vaporeon, 0x800, 134 + obj_tiles gMonFrontPic_Jolteon, 0x800, 135 + obj_tiles gMonFrontPic_Flareon, 0x800, 136 + obj_tiles gMonFrontPic_Porygon, 0x800, 137 + obj_tiles gMonFrontPic_Omanyte, 0x800, 138 + obj_tiles gMonFrontPic_Omastar, 0x800, 139 + obj_tiles gMonFrontPic_Kabuto, 0x800, 140 + obj_tiles gMonFrontPic_Kabutops, 0x800, 141 + obj_tiles gMonFrontPic_Aerodactyl, 0x800, 142 + obj_tiles gMonFrontPic_Snorlax, 0x800, 143 + obj_tiles gMonFrontPic_Articuno, 0x800, 144 + obj_tiles gMonFrontPic_Zapdos, 0x800, 145 + obj_tiles gMonFrontPic_Moltres, 0x800, 146 + obj_tiles gMonFrontPic_Dratini, 0x800, 147 + obj_tiles gMonFrontPic_Dragonair, 0x800, 148 + obj_tiles gMonFrontPic_Dragonite, 0x800, 149 + obj_tiles gMonFrontPic_Mewtwo, 0x800, 150 + obj_tiles gMonFrontPic_Mew, 0x800, 151 + obj_tiles gMonFrontPic_Chikorita, 0x800, 152 + obj_tiles gMonFrontPic_Bayleef, 0x800, 153 + obj_tiles gMonFrontPic_Meganium, 0x800, 154 + obj_tiles gMonFrontPic_Cyndaquil, 0x800, 155 + obj_tiles gMonFrontPic_Quilava, 0x800, 156 + obj_tiles gMonFrontPic_Typhlosion, 0x800, 157 + obj_tiles gMonFrontPic_Totodile, 0x800, 158 + obj_tiles gMonFrontPic_Croconaw, 0x800, 159 + obj_tiles gMonFrontPic_Feraligatr, 0x800, 160 + obj_tiles gMonFrontPic_Sentret, 0x800, 161 + obj_tiles gMonFrontPic_Furret, 0x800, 162 + obj_tiles gMonFrontPic_Hoothoot, 0x800, 163 + obj_tiles gMonFrontPic_Noctowl, 0x800, 164 + obj_tiles gMonFrontPic_Ledyba, 0x800, 165 + obj_tiles gMonFrontPic_Ledian, 0x800, 166 + obj_tiles gMonFrontPic_Spinarak, 0x800, 167 + obj_tiles gMonFrontPic_Ariados, 0x800, 168 + obj_tiles gMonFrontPic_Crobat, 0x800, 169 + obj_tiles gMonFrontPic_Chinchou, 0x800, 170 + obj_tiles gMonFrontPic_Lanturn, 0x800, 171 + obj_tiles gMonFrontPic_Pichu, 0x800, 172 + obj_tiles gMonFrontPic_Cleffa, 0x800, 173 + obj_tiles gMonFrontPic_Igglybuff, 0x800, 174 + obj_tiles gMonFrontPic_Togepi, 0x800, 175 + obj_tiles gMonFrontPic_Togetic, 0x800, 176 + obj_tiles gMonFrontPic_Natu, 0x800, 177 + obj_tiles gMonFrontPic_Xatu, 0x800, 178 + obj_tiles gMonFrontPic_Mareep, 0x800, 179 + obj_tiles gMonFrontPic_Flaaffy, 0x800, 180 + obj_tiles gMonFrontPic_Ampharos, 0x800, 181 + obj_tiles gMonFrontPic_Bellossom, 0x800, 182 + obj_tiles gMonFrontPic_Marill, 0x800, 183 + obj_tiles gMonFrontPic_Azumarill, 0x800, 184 + obj_tiles gMonFrontPic_Sudowoodo, 0x800, 185 + obj_tiles gMonFrontPic_Politoed, 0x800, 186 + obj_tiles gMonFrontPic_Hoppip, 0x800, 187 + obj_tiles gMonFrontPic_Skiploom, 0x800, 188 + obj_tiles gMonFrontPic_Jumpluff, 0x800, 189 + obj_tiles gMonFrontPic_Aipom, 0x800, 190 + obj_tiles gMonFrontPic_Sunkern, 0x800, 191 + obj_tiles gMonFrontPic_Sunflora, 0x800, 192 + obj_tiles gMonFrontPic_Yanma, 0x800, 193 + obj_tiles gMonFrontPic_Wooper, 0x800, 194 + obj_tiles gMonFrontPic_Quagsire, 0x800, 195 + obj_tiles gMonFrontPic_Espeon, 0x800, 196 + obj_tiles gMonFrontPic_Umbreon, 0x800, 197 + obj_tiles gMonFrontPic_Murkrow, 0x800, 198 + obj_tiles gMonFrontPic_Slowking, 0x800, 199 + obj_tiles gMonFrontPic_Misdreavus, 0x800, 200 + obj_tiles gMonFrontPic_UnownA, 0x800, 201 + obj_tiles gMonFrontPic_Wobbuffet, 0x800, 202 + obj_tiles gMonFrontPic_Girafarig, 0x800, 203 + obj_tiles gMonFrontPic_Pineco, 0x800, 204 + obj_tiles gMonFrontPic_Forretress, 0x800, 205 + obj_tiles gMonFrontPic_Dunsparce, 0x800, 206 + obj_tiles gMonFrontPic_Gligar, 0x800, 207 + obj_tiles gMonFrontPic_Steelix, 0x800, 208 + obj_tiles gMonFrontPic_Snubbull, 0x800, 209 + obj_tiles gMonFrontPic_Granbull, 0x800, 210 + obj_tiles gMonFrontPic_Qwilfish, 0x800, 211 + obj_tiles gMonFrontPic_Scizor, 0x800, 212 + obj_tiles gMonFrontPic_Shuckle, 0x800, 213 + obj_tiles gMonFrontPic_Heracross, 0x800, 214 + obj_tiles gMonFrontPic_Sneasel, 0x800, 215 + obj_tiles gMonFrontPic_Teddiursa, 0x800, 216 + obj_tiles gMonFrontPic_Ursaring, 0x800, 217 + obj_tiles gMonFrontPic_Slugma, 0x800, 218 + obj_tiles gMonFrontPic_Magcargo, 0x800, 219 + obj_tiles gMonFrontPic_Swinub, 0x800, 220 + obj_tiles gMonFrontPic_Piloswine, 0x800, 221 + obj_tiles gMonFrontPic_Corsola, 0x800, 222 + obj_tiles gMonFrontPic_Remoraid, 0x800, 223 + obj_tiles gMonFrontPic_Octillery, 0x800, 224 + obj_tiles gMonFrontPic_Delibird, 0x800, 225 + obj_tiles gMonFrontPic_Mantine, 0x800, 226 + obj_tiles gMonFrontPic_Skarmory, 0x800, 227 + obj_tiles gMonFrontPic_Houndour, 0x800, 228 + obj_tiles gMonFrontPic_Houndoom, 0x800, 229 + obj_tiles gMonFrontPic_Kingdra, 0x800, 230 + obj_tiles gMonFrontPic_Phanpy, 0x800, 231 + obj_tiles gMonFrontPic_Donphan, 0x800, 232 + obj_tiles gMonFrontPic_Porygon2, 0x800, 233 + obj_tiles gMonFrontPic_Stantler, 0x800, 234 + obj_tiles gMonFrontPic_Smeargle, 0x800, 235 + obj_tiles gMonFrontPic_Tyrogue, 0x800, 236 + obj_tiles gMonFrontPic_Hitmontop, 0x800, 237 + obj_tiles gMonFrontPic_Smoochum, 0x800, 238 + obj_tiles gMonFrontPic_Elekid, 0x800, 239 + obj_tiles gMonFrontPic_Magby, 0x800, 240 + obj_tiles gMonFrontPic_Miltank, 0x800, 241 + obj_tiles gMonFrontPic_Blissey, 0x800, 242 + obj_tiles gMonFrontPic_Raikou, 0x800, 243 + obj_tiles gMonFrontPic_Entei, 0x800, 244 + obj_tiles gMonFrontPic_Suicune, 0x800, 245 + obj_tiles gMonFrontPic_Larvitar, 0x800, 246 + obj_tiles gMonFrontPic_Pupitar, 0x800, 247 + obj_tiles gMonFrontPic_Tyranitar, 0x800, 248 + obj_tiles gMonFrontPic_Lugia, 0x800, 249 + obj_tiles gMonFrontPic_HoOh, 0x800, 250 + obj_tiles gMonFrontPic_Celebi, 0x800, 251 + obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 252 + obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 253 + obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 254 + obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 255 + obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 256 + obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 257 + obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 258 + obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 259 + obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 260 + obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 261 + obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 262 + obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 263 + obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 264 + obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 265 + obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 266 + obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 267 + obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 268 + obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 269 + obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 270 + obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 271 + obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 272 + obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 273 + obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 274 + obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 275 + obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 276 + obj_tiles gMonFrontPic_Treecko, 0x800, 277 + obj_tiles gMonFrontPic_Grovyle, 0x800, 278 + obj_tiles gMonFrontPic_Sceptile, 0x800, 279 + obj_tiles gMonFrontPic_Torchic, 0x800, 280 + obj_tiles gMonFrontPic_Combusken, 0x800, 281 + obj_tiles gMonFrontPic_Blaziken, 0x800, 282 + obj_tiles gMonFrontPic_Mudkip, 0x800, 283 + obj_tiles gMonFrontPic_Marshtomp, 0x800, 284 + obj_tiles gMonFrontPic_Swampert, 0x800, 285 + obj_tiles gMonFrontPic_Poochyena, 0x800, 286 + obj_tiles gMonFrontPic_Mightyena, 0x800, 287 + obj_tiles gMonFrontPic_Zigzagoon, 0x800, 288 + obj_tiles gMonFrontPic_Linoone, 0x800, 289 + obj_tiles gMonFrontPic_Wurmple, 0x800, 290 + obj_tiles gMonFrontPic_Silcoon, 0x800, 291 + obj_tiles gMonFrontPic_Beautifly, 0x800, 292 + obj_tiles gMonFrontPic_Cascoon, 0x800, 293 + obj_tiles gMonFrontPic_Dustox, 0x800, 294 + obj_tiles gMonFrontPic_Lotad, 0x800, 295 + obj_tiles gMonFrontPic_Lombre, 0x800, 296 + obj_tiles gMonFrontPic_Ludicolo, 0x800, 297 + obj_tiles gMonFrontPic_Seedot, 0x800, 298 + obj_tiles gMonFrontPic_Nuzleaf, 0x800, 299 + obj_tiles gMonFrontPic_Shiftry, 0x800, 300 + obj_tiles gMonFrontPic_Nincada, 0x800, 301 + obj_tiles gMonFrontPic_Ninjask, 0x800, 302 + obj_tiles gMonFrontPic_Shedinja, 0x800, 303 + obj_tiles gMonFrontPic_Taillow, 0x800, 304 + obj_tiles gMonFrontPic_Swellow, 0x800, 305 + obj_tiles gMonFrontPic_Shroomish, 0x800, 306 + obj_tiles gMonFrontPic_Breloom, 0x800, 307 + obj_tiles gMonFrontPic_Spinda, 0x800, 308 + obj_tiles gMonFrontPic_Wingull, 0x800, 309 + obj_tiles gMonFrontPic_Pelipper, 0x800, 310 + obj_tiles gMonFrontPic_Surskit, 0x800, 311 + obj_tiles gMonFrontPic_Masquerain, 0x800, 312 + obj_tiles gMonFrontPic_Wailmer, 0x800, 313 + obj_tiles gMonFrontPic_Wailord, 0x800, 314 + obj_tiles gMonFrontPic_Skitty, 0x800, 315 + obj_tiles gMonFrontPic_Delcatty, 0x800, 316 + obj_tiles gMonFrontPic_Kecleon, 0x800, 317 + obj_tiles gMonFrontPic_Baltoy, 0x800, 318 + obj_tiles gMonFrontPic_Claydol, 0x800, 319 + obj_tiles gMonFrontPic_Nosepass, 0x800, 320 + obj_tiles gMonFrontPic_Torkoal, 0x800, 321 + obj_tiles gMonFrontPic_Sableye, 0x800, 322 + obj_tiles gMonFrontPic_Barboach, 0x800, 323 + obj_tiles gMonFrontPic_Whiscash, 0x800, 324 + obj_tiles gMonFrontPic_Luvdisc, 0x800, 325 + obj_tiles gMonFrontPic_Corphish, 0x800, 326 + obj_tiles gMonFrontPic_Crawdaunt, 0x800, 327 + obj_tiles gMonFrontPic_Feebas, 0x800, 328 + obj_tiles gMonFrontPic_Milotic, 0x800, 329 + obj_tiles gMonFrontPic_Carvanha, 0x800, 330 + obj_tiles gMonFrontPic_Sharpedo, 0x800, 331 + obj_tiles gMonFrontPic_Trapinch, 0x800, 332 + obj_tiles gMonFrontPic_Vibrava, 0x800, 333 + obj_tiles gMonFrontPic_Flygon, 0x800, 334 + obj_tiles gMonFrontPic_Makuhita, 0x800, 335 + obj_tiles gMonFrontPic_Hariyama, 0x800, 336 + obj_tiles gMonFrontPic_Electrike, 0x800, 337 + obj_tiles gMonFrontPic_Manectric, 0x800, 338 + obj_tiles gMonFrontPic_Numel, 0x800, 339 + obj_tiles gMonFrontPic_Camerupt, 0x800, 340 + obj_tiles gMonFrontPic_Spheal, 0x800, 341 + obj_tiles gMonFrontPic_Sealeo, 0x800, 342 + obj_tiles gMonFrontPic_Walrein, 0x800, 343 + obj_tiles gMonFrontPic_Cacnea, 0x800, 344 + obj_tiles gMonFrontPic_Cacturne, 0x800, 345 + obj_tiles gMonFrontPic_Snorunt, 0x800, 346 + obj_tiles gMonFrontPic_Glalie, 0x800, 347 + obj_tiles gMonFrontPic_Lunatone, 0x800, 348 + obj_tiles gMonFrontPic_Solrock, 0x800, 349 + obj_tiles gMonFrontPic_Azurill, 0x800, 350 + obj_tiles gMonFrontPic_Spoink, 0x800, 351 + obj_tiles gMonFrontPic_Grumpig, 0x800, 352 + obj_tiles gMonFrontPic_Plusle, 0x800, 353 + obj_tiles gMonFrontPic_Minun, 0x800, 354 + obj_tiles gMonFrontPic_Mawile, 0x800, 355 + obj_tiles gMonFrontPic_Meditite, 0x800, 356 + obj_tiles gMonFrontPic_Medicham, 0x800, 357 + obj_tiles gMonFrontPic_Swablu, 0x800, 358 + obj_tiles gMonFrontPic_Altaria, 0x800, 359 + obj_tiles gMonFrontPic_Wynaut, 0x800, 360 + obj_tiles gMonFrontPic_Duskull, 0x800, 361 + obj_tiles gMonFrontPic_Dusclops, 0x800, 362 + obj_tiles gMonFrontPic_Roselia, 0x800, 363 + obj_tiles gMonFrontPic_Slakoth, 0x800, 364 + obj_tiles gMonFrontPic_Vigoroth, 0x800, 365 + obj_tiles gMonFrontPic_Slaking, 0x800, 366 + obj_tiles gMonFrontPic_Gulpin, 0x800, 367 + obj_tiles gMonFrontPic_Swalot, 0x800, 368 + obj_tiles gMonFrontPic_Tropius, 0x800, 369 + obj_tiles gMonFrontPic_Whismur, 0x800, 370 + obj_tiles gMonFrontPic_Loudred, 0x800, 371 + obj_tiles gMonFrontPic_Exploud, 0x800, 372 + obj_tiles gMonFrontPic_Clamperl, 0x800, 373 + obj_tiles gMonFrontPic_Huntail, 0x800, 374 + obj_tiles gMonFrontPic_Gorebyss, 0x800, 375 + obj_tiles gMonFrontPic_Absol, 0x800, 376 + obj_tiles gMonFrontPic_Shuppet, 0x800, 377 + obj_tiles gMonFrontPic_Banette, 0x800, 378 + obj_tiles gMonFrontPic_Seviper, 0x800, 379 + obj_tiles gMonFrontPic_Zangoose, 0x800, 380 + obj_tiles gMonFrontPic_Relicanth, 0x800, 381 + obj_tiles gMonFrontPic_Aron, 0x800, 382 + obj_tiles gMonFrontPic_Lairon, 0x800, 383 + obj_tiles gMonFrontPic_Aggron, 0x800, 384 + obj_tiles gMonFrontPic_Castform, 0x800, 385 + obj_tiles gMonFrontPic_Volbeat, 0x800, 386 + obj_tiles gMonFrontPic_Illumise, 0x800, 387 + obj_tiles gMonFrontPic_Lileep, 0x800, 388 + obj_tiles gMonFrontPic_Cradily, 0x800, 389 + obj_tiles gMonFrontPic_Anorith, 0x800, 390 + obj_tiles gMonFrontPic_Armaldo, 0x800, 391 + obj_tiles gMonFrontPic_Ralts, 0x800, 392 + obj_tiles gMonFrontPic_Kirlia, 0x800, 393 + obj_tiles gMonFrontPic_Gardevoir, 0x800, 394 + obj_tiles gMonFrontPic_Bagon, 0x800, 395 + obj_tiles gMonFrontPic_Shelgon, 0x800, 396 + obj_tiles gMonFrontPic_Salamence, 0x800, 397 + obj_tiles gMonFrontPic_Beldum, 0x800, 398 + obj_tiles gMonFrontPic_Metang, 0x800, 399 + obj_tiles gMonFrontPic_Metagross, 0x800, 400 + obj_tiles gMonFrontPic_Regirock, 0x800, 401 + obj_tiles gMonFrontPic_Regice, 0x800, 402 + obj_tiles gMonFrontPic_Registeel, 0x800, 403 + obj_tiles gMonFrontPic_Kyogre, 0x800, 404 + obj_tiles gMonFrontPic_Groudon, 0x800, 405 + obj_tiles gMonFrontPic_Rayquaza, 0x800, 406 + obj_tiles gMonFrontPic_Latias, 0x800, 407 + obj_tiles gMonFrontPic_Latios, 0x800, 408 + obj_tiles gMonFrontPic_Jirachi, 0x800, 409 + obj_tiles gMonFrontPic_Deoxys, 0x800, 410 + obj_tiles gMonFrontPic_Chimecho, 0x800, 411 + obj_tiles gMonFrontPic_Egg, 0x800, 412 + obj_tiles gMonFrontPic_UnownB, 0x800, 413 + obj_tiles gMonFrontPic_UnownC, 0x800, 414 + obj_tiles gMonFrontPic_UnownD, 0x800, 415 + obj_tiles gMonFrontPic_UnownE, 0x800, 416 + obj_tiles gMonFrontPic_UnownF, 0x800, 417 + obj_tiles gMonFrontPic_UnownG, 0x800, 418 + obj_tiles gMonFrontPic_UnownH, 0x800, 419 + obj_tiles gMonFrontPic_UnownI, 0x800, 420 + obj_tiles gMonFrontPic_UnownJ, 0x800, 421 + obj_tiles gMonFrontPic_UnownK, 0x800, 422 + obj_tiles gMonFrontPic_UnownL, 0x800, 423 + obj_tiles gMonFrontPic_UnownM, 0x800, 424 + obj_tiles gMonFrontPic_UnownN, 0x800, 425 + obj_tiles gMonFrontPic_UnownO, 0x800, 426 + obj_tiles gMonFrontPic_UnownP, 0x800, 427 + obj_tiles gMonFrontPic_UnownQ, 0x800, 428 + obj_tiles gMonFrontPic_UnownR, 0x800, 429 + obj_tiles gMonFrontPic_UnownS, 0x800, 430 + obj_tiles gMonFrontPic_UnownT, 0x800, 431 + obj_tiles gMonFrontPic_UnownU, 0x800, 432 + obj_tiles gMonFrontPic_UnownV, 0x800, 433 + obj_tiles gMonFrontPic_UnownW, 0x800, 434 + obj_tiles gMonFrontPic_UnownX, 0x800, 435 + obj_tiles gMonFrontPic_UnownY, 0x800, 436 + obj_tiles gMonFrontPic_UnownZ, 0x800, 437 + obj_tiles gMonFrontPic_UnownExclamationMark, 0x800, 438 + obj_tiles gMonFrontPic_UnownQuestionMark, 0x800, 439 diff --git a/data/graphics/pokemon/graphics.inc b/data/graphics/pokemon/graphics.inc new file mode 100644 index 000000000..45ddfe1b5 --- /dev/null +++ b/data/graphics/pokemon/graphics.inc @@ -0,0 +1,9613 @@ + .align 2 +gMonStillFrontPic_Bulbasaur:: @ 8C2FA08 + .incbin "graphics/pokemon/front_pics/bulbasaur_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Bulbasaur:: @ 8C2FCA0 + .incbin "graphics/pokemon/palettes/bulbasaur_palette.gbapal.lz" + + .align 2 +gMonBackPic_Bulbasaur:: @ 8C2FCC8 + .incbin "graphics/pokemon/back_pics/bulbasaur_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Bulbasaur:: @ 8C2FF78 + .incbin "graphics/pokemon/palettes/bulbasaur_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Bulbasaur:: @ 8C2FFA0 + .incbin "graphics/pokemon/icons/bulbasaur_icon.4bpp" + + .align 2 +gMonFootprint_Bulbasaur:: @ 8C303A0 + .incbin "graphics/pokemon/footprints/bulbasaur_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Ivysaur:: @ 8C303C0 + .incbin "graphics/pokemon/front_pics/ivysaur_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Ivysaur:: @ 8C30734 + .incbin "graphics/pokemon/palettes/ivysaur_palette.gbapal.lz" + + .align 2 +gMonBackPic_Ivysaur:: @ 8C3075C + .incbin "graphics/pokemon/back_pics/ivysaur_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Ivysaur:: @ 8C30AE8 + .incbin "graphics/pokemon/palettes/ivysaur_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Ivysaur:: @ 8C30B10 + .incbin "graphics/pokemon/icons/ivysaur_icon.4bpp" + + .align 2 +gMonFootprint_Ivysaur:: @ 8C30F10 + .incbin "graphics/pokemon/footprints/ivysaur_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Venusaur:: @ 8C30F30 + .incbin "graphics/pokemon/front_pics/venusaur_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Venusaur:: @ 8C314BC + .incbin "graphics/pokemon/palettes/venusaur_palette.gbapal.lz" + + .align 2 +gMonBackPic_Venusaur:: @ 8C314E4 + .incbin "graphics/pokemon/back_pics/venusaur_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Venusaur:: @ 8C319B4 + .incbin "graphics/pokemon/palettes/venusaur_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Venusaur:: @ 8C319DC + .incbin "graphics/pokemon/icons/venusaur_icon.4bpp" + + .align 2 +gMonFootprint_Venusaur:: @ 8C31DDC + .incbin "graphics/pokemon/footprints/venusaur_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Charmander:: @ 8C31DFC + .incbin "graphics/pokemon/front_pics/charmander_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Charmander:: @ 8C320AC + .incbin "graphics/pokemon/palettes/charmander_palette.gbapal.lz" + + .align 2 +gMonBackPic_Charmander:: @ 8C320D4 + .incbin "graphics/pokemon/back_pics/charmander_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Charmander:: @ 8C32368 + .incbin "graphics/pokemon/palettes/charmander_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Charmander:: @ 8C32390 + .incbin "graphics/pokemon/icons/charmander_icon.4bpp" + + .align 2 +gMonFootprint_Charmander:: @ 8C32790 + .incbin "graphics/pokemon/footprints/charmander_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Charmeleon:: @ 8C327B0 + .incbin "graphics/pokemon/front_pics/charmeleon_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Charmeleon:: @ 8C32B58 + .incbin "graphics/pokemon/palettes/charmeleon_palette.gbapal.lz" + + .align 2 +gMonBackPic_Charmeleon:: @ 8C32B80 + .incbin "graphics/pokemon/back_pics/charmeleon_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Charmeleon:: @ 8C32E60 + .incbin "graphics/pokemon/palettes/charmeleon_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Charmeleon:: @ 8C32E88 + .incbin "graphics/pokemon/icons/charmeleon_icon.4bpp" + + .align 2 +gMonFootprint_Charmeleon:: @ 8C33288 + .incbin "graphics/pokemon/footprints/charmeleon_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Charizard:: @ 8C332A8 + .incbin "graphics/pokemon/front_pics/charizard_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Charizard:: @ 8C337F8 + .incbin "graphics/pokemon/palettes/charizard_palette.gbapal.lz" + + .align 2 +gMonBackPic_Charizard:: @ 8C33820 + .incbin "graphics/pokemon/back_pics/charizard_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Charizard:: @ 8C33C3C + .incbin "graphics/pokemon/palettes/charizard_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Charizard:: @ 8C33C64 + .incbin "graphics/pokemon/icons/charizard_icon.4bpp" + + .align 2 +gMonFootprint_Charizard:: @ 8C34064 + .incbin "graphics/pokemon/footprints/charizard_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Squirtle:: @ 8C34084 + .incbin "graphics/pokemon/front_pics/squirtle_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Squirtle:: @ 8C34360 + .incbin "graphics/pokemon/palettes/squirtle_palette.gbapal.lz" + + .align 2 +gMonBackPic_Squirtle:: @ 8C34388 + .incbin "graphics/pokemon/back_pics/squirtle_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Squirtle:: @ 8C34608 + .incbin "graphics/pokemon/palettes/squirtle_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Squirtle:: @ 8C34630 + .incbin "graphics/pokemon/icons/squirtle_icon.4bpp" + + .align 2 +gMonFootprint_Squirtle:: @ 8C34A30 + .incbin "graphics/pokemon/footprints/squirtle_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Wartortle:: @ 8C34A50 + .incbin "graphics/pokemon/front_pics/wartortle_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Wartortle:: @ 8C34DCC + .incbin "graphics/pokemon/palettes/wartortle_palette.gbapal.lz" + + .align 2 +gMonBackPic_Wartortle:: @ 8C34DF4 + .incbin "graphics/pokemon/back_pics/wartortle_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Wartortle:: @ 8C35128 + .incbin "graphics/pokemon/palettes/wartortle_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Wartortle:: @ 8C35150 + .incbin "graphics/pokemon/icons/wartortle_icon.4bpp" + + .align 2 +gMonFootprint_Wartortle:: @ 8C35550 + .incbin "graphics/pokemon/footprints/wartortle_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Blastoise:: @ 8C35570 + .incbin "graphics/pokemon/front_pics/blastoise_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Blastoise:: @ 8C35A74 + .incbin "graphics/pokemon/palettes/blastoise_palette.gbapal.lz" + + .align 2 +gMonBackPic_Blastoise:: @ 8C35A9C + .incbin "graphics/pokemon/back_pics/blastoise_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Blastoise:: @ 8C35EB8 + .incbin "graphics/pokemon/palettes/blastoise_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Blastoise:: @ 8C35EE0 + .incbin "graphics/pokemon/icons/blastoise_icon.4bpp" + + .align 2 +gMonFootprint_Blastoise:: @ 8C362E0 + .incbin "graphics/pokemon/footprints/blastoise_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Caterpie:: @ 8C36300 + .incbin "graphics/pokemon/front_pics/caterpie_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Caterpie:: @ 8C36560 + .incbin "graphics/pokemon/palettes/caterpie_palette.gbapal.lz" + + .align 2 +gMonBackPic_Caterpie:: @ 8C36588 + .incbin "graphics/pokemon/back_pics/caterpie_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Caterpie:: @ 8C36810 + .incbin "graphics/pokemon/palettes/caterpie_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Caterpie:: @ 8C36838 + .incbin "graphics/pokemon/icons/caterpie_icon.4bpp" + + .align 2 +gMonFootprint_Caterpie:: @ 8C36C38 + .incbin "graphics/pokemon/footprints/caterpie_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Metapod:: @ 8C36C58 + .incbin "graphics/pokemon/front_pics/metapod_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Metapod:: @ 8C36E70 + .incbin "graphics/pokemon/palettes/metapod_palette.gbapal.lz" + + .align 2 +gMonBackPic_Metapod:: @ 8C36E90 + .incbin "graphics/pokemon/back_pics/metapod_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Metapod:: @ 8C370D0 + .incbin "graphics/pokemon/palettes/metapod_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Metapod:: @ 8C370F0 + .incbin "graphics/pokemon/icons/metapod_icon.4bpp" + + .align 2 +gMonFootprint_Metapod:: @ 8C374F0 + .incbin "graphics/pokemon/footprints/metapod_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Butterfree:: @ 8C37510 + .incbin "graphics/pokemon/front_pics/butterfree_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Butterfree:: @ 8C37870 + .incbin "graphics/pokemon/palettes/butterfree_palette.gbapal.lz" + + .align 2 +gMonBackPic_Butterfree:: @ 8C37898 + .incbin "graphics/pokemon/back_pics/butterfree_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Butterfree:: @ 8C37CA8 + .incbin "graphics/pokemon/palettes/butterfree_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Butterfree:: @ 8C37CD0 + .incbin "graphics/pokemon/icons/butterfree_icon.4bpp" + + .align 2 +gMonFootprint_Butterfree:: @ 8C380D0 + .incbin "graphics/pokemon/footprints/butterfree_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Weedle:: @ 8C380F0 + .incbin "graphics/pokemon/front_pics/weedle_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Weedle:: @ 8C38330 + .incbin "graphics/pokemon/palettes/weedle_palette.gbapal.lz" + + .align 2 +gMonBackPic_Weedle:: @ 8C38358 + .incbin "graphics/pokemon/back_pics/weedle_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Weedle:: @ 8C385C0 + .incbin "graphics/pokemon/palettes/weedle_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Weedle:: @ 8C385E8 + .incbin "graphics/pokemon/icons/weedle_icon.4bpp" + + .align 2 +gMonFootprint_Weedle:: @ 8C389E8 + .incbin "graphics/pokemon/footprints/weedle_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Kakuna:: @ 8C38A08 + .incbin "graphics/pokemon/front_pics/kakuna_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Kakuna:: @ 8C38C54 + .incbin "graphics/pokemon/palettes/kakuna_palette.gbapal.lz" + + .align 2 +gMonBackPic_Kakuna:: @ 8C38C78 + .incbin "graphics/pokemon/back_pics/kakuna_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Kakuna:: @ 8C38EFC + .incbin "graphics/pokemon/palettes/kakuna_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Kakuna:: @ 8C38F20 + .incbin "graphics/pokemon/icons/kakuna_icon.4bpp" + + .align 2 +gMonFootprint_Kakuna:: @ 8C39320 + .incbin "graphics/pokemon/footprints/kakuna_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Beedrill:: @ 8C39340 + .incbin "graphics/pokemon/front_pics/beedrill_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Beedrill:: @ 8C39750 + .incbin "graphics/pokemon/palettes/beedrill_palette.gbapal.lz" + + .align 2 +gMonBackPic_Beedrill:: @ 8C39778 + .incbin "graphics/pokemon/back_pics/beedrill_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Beedrill:: @ 8C39AEC + .incbin "graphics/pokemon/palettes/beedrill_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Beedrill:: @ 8C39B14 + .incbin "graphics/pokemon/icons/beedrill_icon.4bpp" + + .align 2 +gMonFootprint_Beedrill:: @ 8C39F14 + .incbin "graphics/pokemon/footprints/beedrill_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Pidgey:: @ 8C39F34 + .incbin "graphics/pokemon/front_pics/pidgey_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Pidgey:: @ 8C3A220 + .incbin "graphics/pokemon/palettes/pidgey_palette.gbapal.lz" + + .align 2 +gMonBackPic_Pidgey:: @ 8C3A248 + .incbin "graphics/pokemon/back_pics/pidgey_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Pidgey:: @ 8C3A59C + .incbin "graphics/pokemon/palettes/pidgey_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Pidgey:: @ 8C3A5C4 + .incbin "graphics/pokemon/icons/pidgey_icon.4bpp" + + .align 2 +gMonFootprint_Pidgey:: @ 8C3A9C4 + .incbin "graphics/pokemon/footprints/pidgey_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Pidgeotto:: @ 8C3A9E4 + .incbin "graphics/pokemon/front_pics/pidgeotto_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Pidgeotto:: @ 8C3AD58 + .incbin "graphics/pokemon/palettes/pidgeotto_palette.gbapal.lz" + + .align 2 +gMonBackPic_Pidgeotto:: @ 8C3AD80 + .incbin "graphics/pokemon/back_pics/pidgeotto_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Pidgeotto:: @ 8C3B0CC + .incbin "graphics/pokemon/palettes/pidgeotto_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Pidgeotto:: @ 8C3B0F4 + .incbin "graphics/pokemon/icons/pidgeotto_icon.4bpp" + + .align 2 +gMonFootprint_Pidgeotto:: @ 8C3B4F4 + .incbin "graphics/pokemon/footprints/pidgeotto_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Pidgeot:: @ 8C3B514 + .incbin "graphics/pokemon/front_pics/pidgeot_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Pidgeot:: @ 8C3BA10 + .incbin "graphics/pokemon/palettes/pidgeot_palette.gbapal.lz" + + .align 2 +gMonBackPic_Pidgeot:: @ 8C3BA38 + .incbin "graphics/pokemon/back_pics/pidgeot_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Pidgeot:: @ 8C3BDC0 + .incbin "graphics/pokemon/palettes/pidgeot_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Pidgeot:: @ 8C3BDE8 + .incbin "graphics/pokemon/icons/pidgeot_icon.4bpp" + + .align 2 +gMonFootprint_Pidgeot:: @ 8C3C1E8 + .incbin "graphics/pokemon/footprints/pidgeot_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Rattata:: @ 8C3C208 + .incbin "graphics/pokemon/front_pics/rattata_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Rattata:: @ 8C3C454 + .incbin "graphics/pokemon/palettes/rattata_palette.gbapal.lz" + + .align 2 +gMonBackPic_Rattata:: @ 8C3C47C + .incbin "graphics/pokemon/back_pics/rattata_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Rattata:: @ 8C3C758 + .incbin "graphics/pokemon/palettes/rattata_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Rattata:: @ 8C3C780 + .incbin "graphics/pokemon/icons/rattata_icon.4bpp" + + .align 2 +gMonFootprint_Rattata:: @ 8C3CB80 + .incbin "graphics/pokemon/footprints/rattata_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Raticate:: @ 8C3CBA0 + .incbin "graphics/pokemon/front_pics/raticate_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Raticate:: @ 8C3CF28 + .incbin "graphics/pokemon/palettes/raticate_palette.gbapal.lz" + + .align 2 +gMonBackPic_Raticate:: @ 8C3CF50 + .incbin "graphics/pokemon/back_pics/raticate_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Raticate:: @ 8C3D280 + .incbin "graphics/pokemon/palettes/raticate_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Raticate:: @ 8C3D2A8 + .incbin "graphics/pokemon/icons/raticate_icon.4bpp" + + .align 2 +gMonFootprint_Raticate:: @ 8C3D6A8 + .incbin "graphics/pokemon/footprints/raticate_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Spearow:: @ 8C3D6C8 + .incbin "graphics/pokemon/front_pics/spearow_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Spearow:: @ 8C3D950 + .incbin "graphics/pokemon/palettes/spearow_palette.gbapal.lz" + + .align 2 +gMonBackPic_Spearow:: @ 8C3D978 + .incbin "graphics/pokemon/back_pics/spearow_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Spearow:: @ 8C3DC54 + .incbin "graphics/pokemon/palettes/spearow_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Spearow:: @ 8C3DC7C + .incbin "graphics/pokemon/icons/spearow_icon.4bpp" + + .align 2 +gMonFootprint_Spearow:: @ 8C3E07C + .incbin "graphics/pokemon/footprints/spearow_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Fearow:: @ 8C3E09C + .incbin "graphics/pokemon/front_pics/fearow_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Fearow:: @ 8C3E530 + .incbin "graphics/pokemon/palettes/fearow_palette.gbapal.lz" + + .align 2 +gMonBackPic_Fearow:: @ 8C3E558 + .incbin "graphics/pokemon/back_pics/fearow_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Fearow:: @ 8C3E850 + .incbin "graphics/pokemon/palettes/fearow_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Fearow:: @ 8C3E878 + .incbin "graphics/pokemon/icons/fearow_icon.4bpp" + + .align 2 +gMonFootprint_Fearow:: @ 8C3EC78 + .incbin "graphics/pokemon/footprints/fearow_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Ekans:: @ 8C3EC98 + .incbin "graphics/pokemon/front_pics/ekans_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Ekans:: @ 8C3EF98 + .incbin "graphics/pokemon/palettes/ekans_palette.gbapal.lz" + + .align 2 +gMonBackPic_Ekans:: @ 8C3EFC0 + .incbin "graphics/pokemon/back_pics/ekans_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Ekans:: @ 8C3F2B0 + .incbin "graphics/pokemon/palettes/ekans_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Ekans:: @ 8C3F2D8 + .incbin "graphics/pokemon/icons/ekans_icon.4bpp" + + .align 2 +gMonFootprint_Ekans:: @ 8C3F6D8 + .incbin "graphics/pokemon/footprints/ekans_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Arbok:: @ 8C3F6F8 + .incbin "graphics/pokemon/front_pics/arbok_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Arbok:: @ 8C3FB44 + .incbin "graphics/pokemon/palettes/arbok_palette.gbapal.lz" + + .align 2 +gMonBackPic_Arbok:: @ 8C3FB6C + .incbin "graphics/pokemon/back_pics/arbok_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Arbok:: @ 8C3FE0C + .incbin "graphics/pokemon/palettes/arbok_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Arbok:: @ 8C3FE34 + .incbin "graphics/pokemon/icons/arbok_icon.4bpp" + + .align 2 +gMonFootprint_Arbok:: @ 8C40234 + .incbin "graphics/pokemon/footprints/arbok_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Pikachu:: @ 8C40254 + .incbin "graphics/pokemon/front_pics/pikachu_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Pikachu:: @ 8C40524 + .incbin "graphics/pokemon/palettes/pikachu_palette.gbapal.lz" + + .align 2 +gMonBackPic_Pikachu:: @ 8C4054C + .incbin "graphics/pokemon/back_pics/pikachu_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Pikachu:: @ 8C40824 + .incbin "graphics/pokemon/palettes/pikachu_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Pikachu:: @ 8C4084C + .incbin "graphics/pokemon/icons/pikachu_icon.4bpp" + + .align 2 +gMonFootprint_Pikachu:: @ 8C40C4C + .incbin "graphics/pokemon/footprints/pikachu_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Raichu:: @ 8C40C6C + .incbin "graphics/pokemon/front_pics/raichu_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Raichu:: @ 8C41018 + .incbin "graphics/pokemon/palettes/raichu_palette.gbapal.lz" + + .align 2 +gMonBackPic_Raichu:: @ 8C41040 + .incbin "graphics/pokemon/back_pics/raichu_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Raichu:: @ 8C41360 + .incbin "graphics/pokemon/palettes/raichu_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Raichu:: @ 8C41388 + .incbin "graphics/pokemon/icons/raichu_icon.4bpp" + + .align 2 +gMonFootprint_Raichu:: @ 8C41788 + .incbin "graphics/pokemon/footprints/raichu_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Sandshrew:: @ 8C417A8 + .incbin "graphics/pokemon/front_pics/sandshrew_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Sandshrew:: @ 8C41A68 + .incbin "graphics/pokemon/palettes/sandshrew_palette.gbapal.lz" + + .align 2 +gMonBackPic_Sandshrew:: @ 8C41A90 + .incbin "graphics/pokemon/back_pics/sandshrew_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Sandshrew:: @ 8C41DB8 + .incbin "graphics/pokemon/palettes/sandshrew_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Sandshrew:: @ 8C41DE0 + .incbin "graphics/pokemon/icons/sandshrew_icon.4bpp" + + .align 2 +gMonFootprint_Sandshrew:: @ 8C421E0 + .incbin "graphics/pokemon/footprints/sandshrew_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Sandslash:: @ 8C42200 + .incbin "graphics/pokemon/front_pics/sandslash_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Sandslash:: @ 8C425EC + .incbin "graphics/pokemon/palettes/sandslash_palette.gbapal.lz" + + .align 2 +gMonBackPic_Sandslash:: @ 8C42614 + .incbin "graphics/pokemon/back_pics/sandslash_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Sandslash:: @ 8C42A30 + .incbin "graphics/pokemon/palettes/sandslash_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Sandslash:: @ 8C42A58 + .incbin "graphics/pokemon/icons/sandslash_icon.4bpp" + + .align 2 +gMonFootprint_Sandslash:: @ 8C42E58 + .incbin "graphics/pokemon/footprints/sandslash_footprint.1bpp" + + .align 2 +gMonStillFrontPic_NidoranF:: @ 8C42E78 + .incbin "graphics/pokemon/front_pics/nidoran_f_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_NidoranF:: @ 8C430F0 + .incbin "graphics/pokemon/palettes/nidoran_f_palette.gbapal.lz" + + .align 2 +gMonBackPic_NidoranF:: @ 8C43118 + .incbin "graphics/pokemon/back_pics/nidoran_f_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_NidoranF:: @ 8C433F0 + .incbin "graphics/pokemon/palettes/nidoran_f_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_NidoranF:: @ 8C43418 + .incbin "graphics/pokemon/icons/nidoran_f_icon.4bpp" + + .align 2 +gMonFootprint_NidoranF:: @ 8C43818 + .incbin "graphics/pokemon/footprints/nidoran_f_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Nidorina:: @ 8C43838 + .incbin "graphics/pokemon/front_pics/nidorina_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Nidorina:: @ 8C43B64 + .incbin "graphics/pokemon/palettes/nidorina_palette.gbapal.lz" + + .align 2 +gMonBackPic_Nidorina:: @ 8C43B8C + .incbin "graphics/pokemon/back_pics/nidorina_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Nidorina:: @ 8C43F20 + .incbin "graphics/pokemon/palettes/nidorina_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Nidorina:: @ 8C43F48 + .incbin "graphics/pokemon/icons/nidorina_icon.4bpp" + + .align 2 +gMonFootprint_Nidorina:: @ 8C44348 + .incbin "graphics/pokemon/footprints/nidorina_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Nidoqueen:: @ 8C44368 + .incbin "graphics/pokemon/front_pics/nidoqueen_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Nidoqueen:: @ 8C447F4 + .incbin "graphics/pokemon/palettes/nidoqueen_palette.gbapal.lz" + + .align 2 +gMonBackPic_Nidoqueen:: @ 8C4481C + .incbin "graphics/pokemon/back_pics/nidoqueen_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Nidoqueen:: @ 8C44BE0 + .incbin "graphics/pokemon/palettes/nidoqueen_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Nidoqueen:: @ 8C44C08 + .incbin "graphics/pokemon/icons/nidoqueen_icon.4bpp" + + .align 2 +gMonFootprint_Nidoqueen:: @ 8C45008 + .incbin "graphics/pokemon/footprints/nidoqueen_footprint.1bpp" + + .align 2 +gMonStillFrontPic_NidoranM:: @ 8C45028 + .incbin "graphics/pokemon/front_pics/nidoran_m_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_NidoranM:: @ 8C452F8 + .incbin "graphics/pokemon/palettes/nidoran_m_palette.gbapal.lz" + + .align 2 +gMonBackPic_NidoranM:: @ 8C45320 + .incbin "graphics/pokemon/back_pics/nidoran_m_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_NidoranM:: @ 8C45654 + .incbin "graphics/pokemon/palettes/nidoran_m_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_NidoranM:: @ 8C4567C + .incbin "graphics/pokemon/icons/nidoran_m_icon.4bpp" + + .align 2 +gMonFootprint_NidoranM:: @ 8C45A7C + .incbin "graphics/pokemon/footprints/nidoran_m_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Nidorino:: @ 8C45A9C + .incbin "graphics/pokemon/front_pics/nidorino_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Nidorino:: @ 8C45E30 + .incbin "graphics/pokemon/palettes/nidorino_palette.gbapal.lz" + + .align 2 +gMonBackPic_Nidorino:: @ 8C45E58 + .incbin "graphics/pokemon/back_pics/nidorino_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Nidorino:: @ 8C46214 + .incbin "graphics/pokemon/palettes/nidorino_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Nidorino:: @ 8C4623C + .incbin "graphics/pokemon/icons/nidorino_icon.4bpp" + + .align 2 +gMonFootprint_Nidorino:: @ 8C4663C + .incbin "graphics/pokemon/footprints/nidorino_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Nidoking:: @ 8C4665C + .incbin "graphics/pokemon/front_pics/nidoking_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Nidoking:: @ 8C46B54 + .incbin "graphics/pokemon/palettes/nidoking_palette.gbapal.lz" + + .align 2 +gMonBackPic_Nidoking:: @ 8C46B7C + .incbin "graphics/pokemon/back_pics/nidoking_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Nidoking:: @ 8C46FB8 + .incbin "graphics/pokemon/palettes/nidoking_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Nidoking:: @ 8C46FE0 + .incbin "graphics/pokemon/icons/nidoking_icon.4bpp" + + .align 2 +gMonFootprint_Nidoking:: @ 8C473E0 + .incbin "graphics/pokemon/footprints/nidoking_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Clefairy:: @ 8C47400 + .incbin "graphics/pokemon/front_pics/clefairy_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Clefairy:: @ 8C47688 + .incbin "graphics/pokemon/palettes/clefairy_palette.gbapal.lz" + + .align 2 +gMonBackPic_Clefairy:: @ 8C476B0 + .incbin "graphics/pokemon/back_pics/clefairy_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Clefairy:: @ 8C47980 + .incbin "graphics/pokemon/palettes/clefairy_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Clefairy:: @ 8C479A8 + .incbin "graphics/pokemon/icons/clefairy_icon.4bpp" + + .align 2 +gMonFootprint_Clefairy:: @ 8C47DA8 + .incbin "graphics/pokemon/footprints/clefairy_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Clefable:: @ 8C47DC8 + .incbin "graphics/pokemon/front_pics/clefable_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Clefable:: @ 8C48104 + .incbin "graphics/pokemon/palettes/clefable_palette.gbapal.lz" + + .align 2 +gMonBackPic_Clefable:: @ 8C4812C + .incbin "graphics/pokemon/back_pics/clefable_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Clefable:: @ 8C48464 + .incbin "graphics/pokemon/palettes/clefable_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Clefable:: @ 8C4848C + .incbin "graphics/pokemon/icons/clefable_icon.4bpp" + + .align 2 +gMonFootprint_Clefable:: @ 8C4888C + .incbin "graphics/pokemon/footprints/clefable_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Vulpix:: @ 8C488AC + .incbin "graphics/pokemon/front_pics/vulpix_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Vulpix:: @ 8C48BE8 + .incbin "graphics/pokemon/palettes/vulpix_palette.gbapal.lz" + + .align 2 +gMonBackPic_Vulpix:: @ 8C48C10 + .incbin "graphics/pokemon/back_pics/vulpix_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Vulpix:: @ 8C48F0C + .incbin "graphics/pokemon/palettes/vulpix_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Vulpix:: @ 8C48F34 + .incbin "graphics/pokemon/icons/vulpix_icon.4bpp" + + .align 2 +gMonFootprint_Vulpix:: @ 8C49334 + .incbin "graphics/pokemon/footprints/vulpix_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Ninetales:: @ 8C49354 + .incbin "graphics/pokemon/front_pics/ninetales_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Ninetales:: @ 8C49790 + .incbin "graphics/pokemon/palettes/ninetales_palette.gbapal.lz" + + .align 2 +gMonBackPic_Ninetales:: @ 8C497B0 + .incbin "graphics/pokemon/back_pics/ninetales_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Ninetales:: @ 8C49B30 + .incbin "graphics/pokemon/palettes/ninetales_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Ninetales:: @ 8C49B50 + .incbin "graphics/pokemon/icons/ninetales_icon.4bpp" + + .align 2 +gMonFootprint_Ninetales:: @ 8C49F50 + .incbin "graphics/pokemon/footprints/ninetales_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Jigglypuff:: @ 8C49F70 + .incbin "graphics/pokemon/front_pics/jigglypuff_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Jigglypuff:: @ 8C4A1E8 + .incbin "graphics/pokemon/palettes/jigglypuff_palette.gbapal.lz" + + .align 2 +gMonBackPic_Jigglypuff:: @ 8C4A210 + .incbin "graphics/pokemon/back_pics/jigglypuff_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Jigglypuff:: @ 8C4A46C + .incbin "graphics/pokemon/palettes/jigglypuff_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Jigglypuff:: @ 8C4A494 + .incbin "graphics/pokemon/icons/jigglypuff_icon.4bpp" + + .align 2 +gMonFootprint_Jigglypuff:: @ 8C4A894 + .incbin "graphics/pokemon/footprints/jigglypuff_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Wigglytuff:: @ 8C4A8B4 + .incbin "graphics/pokemon/front_pics/wigglytuff_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Wigglytuff:: @ 8C4AC08 + .incbin "graphics/pokemon/palettes/wigglytuff_palette.gbapal.lz" + + .align 2 +gMonBackPic_Wigglytuff:: @ 8C4AC30 + .incbin "graphics/pokemon/back_pics/wigglytuff_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Wigglytuff:: @ 8C4AED8 + .incbin "graphics/pokemon/palettes/wigglytuff_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Wigglytuff:: @ 8C4AF00 + .incbin "graphics/pokemon/icons/wigglytuff_icon.4bpp" + + .align 2 +gMonFootprint_Wigglytuff:: @ 8C4B300 + .incbin "graphics/pokemon/footprints/wigglytuff_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Zubat:: @ 8C4B320 + .incbin "graphics/pokemon/front_pics/zubat_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Zubat:: @ 8C4B5F8 + .incbin "graphics/pokemon/palettes/zubat_palette.gbapal.lz" + + .align 2 +gMonBackPic_Zubat:: @ 8C4B620 + .incbin "graphics/pokemon/back_pics/zubat_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Zubat:: @ 8C4B8DC + .incbin "graphics/pokemon/palettes/zubat_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Zubat:: @ 8C4B904 + .incbin "graphics/pokemon/icons/zubat_icon.4bpp" + + .align 2 +gMonFootprint_Zubat:: @ 8C4BD04 + .incbin "graphics/pokemon/footprints/zubat_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Golbat:: @ 8C4BD24 + .incbin "graphics/pokemon/front_pics/golbat_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Golbat:: @ 8C4C0C0 + .incbin "graphics/pokemon/palettes/golbat_palette.gbapal.lz" + + .align 2 +gMonBackPic_Golbat:: @ 8C4C0E8 + .incbin "graphics/pokemon/back_pics/golbat_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Golbat:: @ 8C4C3A4 + .incbin "graphics/pokemon/palettes/golbat_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Golbat:: @ 8C4C3CC + .incbin "graphics/pokemon/icons/golbat_icon.4bpp" + + .align 2 +gMonFootprint_Golbat:: @ 8C4C7CC + .incbin "graphics/pokemon/footprints/golbat_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Oddish:: @ 8C4C7EC + .incbin "graphics/pokemon/front_pics/oddish_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Oddish:: @ 8C4CA20 + .incbin "graphics/pokemon/palettes/oddish_palette.gbapal.lz" + + .align 2 +gMonBackPic_Oddish:: @ 8C4CA48 + .incbin "graphics/pokemon/back_pics/oddish_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Oddish:: @ 8C4CCC0 + .incbin "graphics/pokemon/palettes/oddish_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Oddish:: @ 8C4CCE8 + .incbin "graphics/pokemon/icons/oddish_icon.4bpp" + + .align 2 +gMonFootprint_Oddish:: @ 8C4D0E8 + .incbin "graphics/pokemon/footprints/oddish_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Gloom:: @ 8C4D108 + .incbin "graphics/pokemon/front_pics/gloom_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Gloom:: @ 8C4D480 + .incbin "graphics/pokemon/palettes/gloom_palette.gbapal.lz" + + .align 2 +gMonBackPic_Gloom:: @ 8C4D4A8 + .incbin "graphics/pokemon/back_pics/gloom_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Gloom:: @ 8C4D810 + .incbin "graphics/pokemon/palettes/gloom_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Gloom:: @ 8C4D838 + .incbin "graphics/pokemon/icons/gloom_icon.4bpp" + + .align 2 +gMonFootprint_Gloom:: @ 8C4DC38 + .incbin "graphics/pokemon/footprints/gloom_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Vileplume:: @ 8C4DC58 + .incbin "graphics/pokemon/front_pics/vileplume_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Vileplume:: @ 8C4DFD4 + .incbin "graphics/pokemon/palettes/vileplume_palette.gbapal.lz" + + .align 2 +gMonBackPic_Vileplume:: @ 8C4DFFC + .incbin "graphics/pokemon/back_pics/vileplume_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Vileplume:: @ 8C4E414 + .incbin "graphics/pokemon/palettes/vileplume_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Vileplume:: @ 8C4E43C + .incbin "graphics/pokemon/icons/vileplume_icon.4bpp" + + .align 2 +gMonFootprint_Vileplume:: @ 8C4E83C + .incbin "graphics/pokemon/footprints/vileplume_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Paras:: @ 8C4E85C + .incbin "graphics/pokemon/front_pics/paras_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Paras:: @ 8C4EAC8 + .incbin "graphics/pokemon/palettes/paras_palette.gbapal.lz" + + .align 2 +gMonBackPic_Paras:: @ 8C4EAF0 + .incbin "graphics/pokemon/back_pics/paras_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Paras:: @ 8C4ED90 + .incbin "graphics/pokemon/palettes/paras_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Paras:: @ 8C4EDB8 + .incbin "graphics/pokemon/icons/paras_icon.4bpp" + + .align 2 +gMonFootprint_Paras:: @ 8C4F1B8 + .incbin "graphics/pokemon/footprints/paras_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Parasect:: @ 8C4F1D8 + .incbin "graphics/pokemon/front_pics/parasect_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Parasect:: @ 8C4F59C + .incbin "graphics/pokemon/palettes/parasect_palette.gbapal.lz" + + .align 2 +gMonBackPic_Parasect:: @ 8C4F5C4 + .incbin "graphics/pokemon/back_pics/parasect_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Parasect:: @ 8C4F8C0 + .incbin "graphics/pokemon/palettes/parasect_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Parasect:: @ 8C4F8E8 + .incbin "graphics/pokemon/icons/parasect_icon.4bpp" + + .align 2 +gMonFootprint_Parasect:: @ 8C4FCE8 + .incbin "graphics/pokemon/footprints/parasect_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Venonat:: @ 8C4FD08 + .incbin "graphics/pokemon/front_pics/venonat_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Venonat:: @ 8C50080 + .incbin "graphics/pokemon/palettes/venonat_palette.gbapal.lz" + + .align 2 +gMonBackPic_Venonat:: @ 8C500A8 + .incbin "graphics/pokemon/back_pics/venonat_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Venonat:: @ 8C503D8 + .incbin "graphics/pokemon/palettes/venonat_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Venonat:: @ 8C50400 + .incbin "graphics/pokemon/icons/venonat_icon.4bpp" + + .align 2 +gMonFootprint_Venonat:: @ 8C50800 + .incbin "graphics/pokemon/footprints/venonat_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Venomoth:: @ 8C50820 + .incbin "graphics/pokemon/front_pics/venomoth_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Venomoth:: @ 8C50CC4 + .incbin "graphics/pokemon/palettes/venomoth_palette.gbapal.lz" + + .align 2 +gMonBackPic_Venomoth:: @ 8C50CEC + .incbin "graphics/pokemon/back_pics/venomoth_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Venomoth:: @ 8C510B0 + .incbin "graphics/pokemon/palettes/venomoth_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Venomoth:: @ 8C510D8 + .incbin "graphics/pokemon/icons/venomoth_icon.4bpp" + + .align 2 +gMonFootprint_Venomoth:: @ 8C514D8 + .incbin "graphics/pokemon/footprints/venomoth_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Diglett:: @ 8C514F8 + .incbin "graphics/pokemon/front_pics/diglett_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Diglett:: @ 8C51704 + .incbin "graphics/pokemon/palettes/diglett_palette.gbapal.lz" + + .align 2 +gMonBackPic_Diglett:: @ 8C5172C + .incbin "graphics/pokemon/back_pics/diglett_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Diglett:: @ 8C51938 + .incbin "graphics/pokemon/palettes/diglett_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Diglett:: @ 8C51960 + .incbin "graphics/pokemon/icons/diglett_icon.4bpp" + + .align 2 +gMonFootprint_Diglett:: @ 8C51D60 + .incbin "graphics/pokemon/footprints/diglett_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Dugtrio:: @ 8C51D80 + .incbin "graphics/pokemon/front_pics/dugtrio_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Dugtrio:: @ 8C520A4 + .incbin "graphics/pokemon/palettes/dugtrio_palette.gbapal.lz" + + .align 2 +gMonBackPic_Dugtrio:: @ 8C520CC + .incbin "graphics/pokemon/back_pics/dugtrio_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Dugtrio:: @ 8C52378 + .incbin "graphics/pokemon/palettes/dugtrio_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Dugtrio:: @ 8C523A0 + .incbin "graphics/pokemon/icons/dugtrio_icon.4bpp" + + .align 2 +gMonFootprint_Dugtrio:: @ 8C527A0 + .incbin "graphics/pokemon/footprints/dugtrio_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Meowth:: @ 8C527C0 + .incbin "graphics/pokemon/front_pics/meowth_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Meowth:: @ 8C52AAC + .incbin "graphics/pokemon/palettes/meowth_palette.gbapal.lz" + + .align 2 +gMonBackPic_Meowth:: @ 8C52AD4 + .incbin "graphics/pokemon/back_pics/meowth_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Meowth:: @ 8C52DB8 + .incbin "graphics/pokemon/palettes/meowth_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Meowth:: @ 8C52DE0 + .incbin "graphics/pokemon/icons/meowth_icon.4bpp" + + .align 2 +gMonFootprint_Meowth:: @ 8C531E0 + .incbin "graphics/pokemon/footprints/meowth_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Persian:: @ 8C53200 + .incbin "graphics/pokemon/front_pics/persian_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Persian:: @ 8C535B4 + .incbin "graphics/pokemon/palettes/persian_palette.gbapal.lz" + + .align 2 +gMonBackPic_Persian:: @ 8C535DC + .incbin "graphics/pokemon/back_pics/persian_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Persian:: @ 8C53940 + .incbin "graphics/pokemon/palettes/persian_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Persian:: @ 8C53968 + .incbin "graphics/pokemon/icons/persian_icon.4bpp" + + .align 2 +gMonFootprint_Persian:: @ 8C53D68 + .incbin "graphics/pokemon/footprints/persian_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Psyduck:: @ 8C53D88 + .incbin "graphics/pokemon/front_pics/psyduck_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Psyduck:: @ 8C54060 + .incbin "graphics/pokemon/palettes/psyduck_palette.gbapal.lz" + + .align 2 +gMonBackPic_Psyduck:: @ 8C54088 + .incbin "graphics/pokemon/back_pics/psyduck_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Psyduck:: @ 8C54324 + .incbin "graphics/pokemon/palettes/psyduck_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Psyduck:: @ 8C5434C + .incbin "graphics/pokemon/icons/psyduck_icon.4bpp" + + .align 2 +gMonFootprint_Psyduck:: @ 8C5474C + .incbin "graphics/pokemon/footprints/psyduck_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Golduck:: @ 8C5476C + .incbin "graphics/pokemon/front_pics/golduck_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Golduck:: @ 8C54B44 + .incbin "graphics/pokemon/palettes/golduck_palette.gbapal.lz" + + .align 2 +gMonBackPic_Golduck:: @ 8C54B6C + .incbin "graphics/pokemon/back_pics/golduck_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Golduck:: @ 8C54E98 + .incbin "graphics/pokemon/palettes/golduck_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Golduck:: @ 8C54EC0 + .incbin "graphics/pokemon/icons/golduck_icon.4bpp" + + .align 2 +gMonFootprint_Golduck:: @ 8C552C0 + .incbin "graphics/pokemon/footprints/golduck_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Mankey:: @ 8C552E0 + .incbin "graphics/pokemon/front_pics/mankey_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Mankey:: @ 8C555F8 + .incbin "graphics/pokemon/palettes/mankey_palette.gbapal.lz" + + .align 2 +gMonBackPic_Mankey:: @ 8C55620 + .incbin "graphics/pokemon/back_pics/mankey_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Mankey:: @ 8C55988 + .incbin "graphics/pokemon/palettes/mankey_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Mankey:: @ 8C559B0 + .incbin "graphics/pokemon/icons/mankey_icon.4bpp" + + .align 2 +gMonFootprint_Mankey:: @ 8C55DB0 + .incbin "graphics/pokemon/footprints/mankey_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Primeape:: @ 8C55DD0 + .incbin "graphics/pokemon/front_pics/primeape_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Primeape:: @ 8C56180 + .incbin "graphics/pokemon/palettes/primeape_palette.gbapal.lz" + + .align 2 +gMonBackPic_Primeape:: @ 8C561A8 + .incbin "graphics/pokemon/back_pics/primeape_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Primeape:: @ 8C56518 + .incbin "graphics/pokemon/palettes/primeape_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Primeape:: @ 8C56540 + .incbin "graphics/pokemon/icons/primeape_icon.4bpp" + + .align 2 +gMonFootprint_Primeape:: @ 8C56940 + .incbin "graphics/pokemon/footprints/primeape_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Growlithe:: @ 8C56960 + .incbin "graphics/pokemon/front_pics/growlithe_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Growlithe:: @ 8C56CB8 + .incbin "graphics/pokemon/palettes/growlithe_palette.gbapal.lz" + + .align 2 +gMonBackPic_Growlithe:: @ 8C56CE0 + .incbin "graphics/pokemon/back_pics/growlithe_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Growlithe:: @ 8C5701C + .incbin "graphics/pokemon/palettes/growlithe_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Growlithe:: @ 8C57044 + .incbin "graphics/pokemon/icons/growlithe_icon.4bpp" + + .align 2 +gMonFootprint_Growlithe:: @ 8C57444 + .incbin "graphics/pokemon/footprints/growlithe_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Arcanine:: @ 8C57464 + .incbin "graphics/pokemon/front_pics/arcanine_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Arcanine:: @ 8C57998 + .incbin "graphics/pokemon/palettes/arcanine_palette.gbapal.lz" + + .align 2 +gMonBackPic_Arcanine:: @ 8C579C0 + .incbin "graphics/pokemon/back_pics/arcanine_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Arcanine:: @ 8C57DA0 + .incbin "graphics/pokemon/palettes/arcanine_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Arcanine:: @ 8C57DC8 + .incbin "graphics/pokemon/icons/arcanine_icon.4bpp" + + .align 2 +gMonFootprint_Arcanine:: @ 8C581C8 + .incbin "graphics/pokemon/footprints/arcanine_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Poliwag:: @ 8C581E8 + .incbin "graphics/pokemon/front_pics/poliwag_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Poliwag:: @ 8C58470 + .incbin "graphics/pokemon/palettes/poliwag_palette.gbapal.lz" + + .align 2 +gMonBackPic_Poliwag:: @ 8C58498 + .incbin "graphics/pokemon/back_pics/poliwag_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Poliwag:: @ 8C58708 + .incbin "graphics/pokemon/palettes/poliwag_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Poliwag:: @ 8C58730 + .incbin "graphics/pokemon/icons/poliwag_icon.4bpp" + + .align 2 +gMonFootprint_Poliwag:: @ 8C58B30 + .incbin "graphics/pokemon/footprints/poliwag_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Poliwhirl:: @ 8C58B50 + .incbin "graphics/pokemon/front_pics/poliwhirl_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Poliwhirl:: @ 8C58F14 + .incbin "graphics/pokemon/palettes/poliwhirl_palette.gbapal.lz" + + .align 2 +gMonBackPic_Poliwhirl:: @ 8C58F3C + .incbin "graphics/pokemon/back_pics/poliwhirl_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Poliwhirl:: @ 8C591FC + .incbin "graphics/pokemon/palettes/poliwhirl_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Poliwhirl:: @ 8C59224 + .incbin "graphics/pokemon/icons/poliwhirl_icon.4bpp" + + .align 2 +gMonFootprint_Poliwhirl:: @ 8C59624 + .incbin "graphics/pokemon/footprints/poliwhirl_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Poliwrath:: @ 8C59644 + .incbin "graphics/pokemon/front_pics/poliwrath_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Poliwrath:: @ 8C59A0C + .incbin "graphics/pokemon/palettes/poliwrath_palette.gbapal.lz" + + .align 2 +gMonBackPic_Poliwrath:: @ 8C59A34 + .incbin "graphics/pokemon/back_pics/poliwrath_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Poliwrath:: @ 8C59D54 + .incbin "graphics/pokemon/palettes/poliwrath_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Poliwrath:: @ 8C59D7C + .incbin "graphics/pokemon/icons/poliwrath_icon.4bpp" + + .align 2 +gMonFootprint_Poliwrath:: @ 8C5A17C + .incbin "graphics/pokemon/footprints/poliwrath_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Abra:: @ 8C5A19C + .incbin "graphics/pokemon/front_pics/abra_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Abra:: @ 8C5A480 + .incbin "graphics/pokemon/palettes/abra_palette.gbapal.lz" + + .align 2 +gMonBackPic_Abra:: @ 8C5A4A4 + .incbin "graphics/pokemon/back_pics/abra_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Abra:: @ 8C5A7B8 + .incbin "graphics/pokemon/palettes/abra_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Abra:: @ 8C5A7DC + .incbin "graphics/pokemon/icons/abra_icon.4bpp" + + .align 2 +gMonFootprint_Abra:: @ 8C5ABDC + .incbin "graphics/pokemon/footprints/abra_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Kadabra:: @ 8C5ABFC + .incbin "graphics/pokemon/front_pics/kadabra_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Kadabra:: @ 8C5B060 + .incbin "graphics/pokemon/palettes/kadabra_palette.gbapal.lz" + + .align 2 +gMonBackPic_Kadabra:: @ 8C5B088 + .incbin "graphics/pokemon/back_pics/kadabra_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Kadabra:: @ 8C5B464 + .incbin "graphics/pokemon/palettes/kadabra_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Kadabra:: @ 8C5B48C + .incbin "graphics/pokemon/icons/kadabra_icon.4bpp" + + .align 2 +gMonFootprint_Kadabra:: @ 8C5B88C + .incbin "graphics/pokemon/footprints/kadabra_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Alakazam:: @ 8C5B8AC + .incbin "graphics/pokemon/front_pics/alakazam_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Alakazam:: @ 8C5BCA8 + .incbin "graphics/pokemon/palettes/alakazam_palette.gbapal.lz" + + .align 2 +gMonBackPic_Alakazam:: @ 8C5BCD0 + .incbin "graphics/pokemon/back_pics/alakazam_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Alakazam:: @ 8C5C114 + .incbin "graphics/pokemon/palettes/alakazam_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Alakazam:: @ 8C5C13C + .incbin "graphics/pokemon/icons/alakazam_icon.4bpp" + + .align 2 +gMonFootprint_Alakazam:: @ 8C5C53C + .incbin "graphics/pokemon/footprints/alakazam_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Machop:: @ 8C5C55C + .incbin "graphics/pokemon/front_pics/machop_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Machop:: @ 8C5C800 + .incbin "graphics/pokemon/palettes/machop_palette.gbapal.lz" + + .align 2 +gMonBackPic_Machop:: @ 8C5C828 + .incbin "graphics/pokemon/back_pics/machop_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Machop:: @ 8C5CB08 + .incbin "graphics/pokemon/palettes/machop_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Machop:: @ 8C5CB30 + .incbin "graphics/pokemon/icons/machop_icon.4bpp" + + .align 2 +gMonFootprint_Machop:: @ 8C5CF30 + .incbin "graphics/pokemon/footprints/machop_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Machoke:: @ 8C5CF50 + .incbin "graphics/pokemon/front_pics/machoke_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Machoke:: @ 8C5D300 + .incbin "graphics/pokemon/palettes/machoke_palette.gbapal.lz" + + .align 2 +gMonBackPic_Machoke:: @ 8C5D328 + .incbin "graphics/pokemon/back_pics/machoke_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Machoke:: @ 8C5D678 + .incbin "graphics/pokemon/palettes/machoke_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Machoke:: @ 8C5D6A0 + .incbin "graphics/pokemon/icons/machoke_icon.4bpp" + + .align 2 +gMonFootprint_Machoke:: @ 8C5DAA0 + .incbin "graphics/pokemon/footprints/machoke_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Machamp:: @ 8C5DAC0 + .incbin "graphics/pokemon/front_pics/machamp_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Machamp:: @ 8C5E010 + .incbin "graphics/pokemon/palettes/machamp_palette.gbapal.lz" + + .align 2 +gMonBackPic_Machamp:: @ 8C5E038 + .incbin "graphics/pokemon/back_pics/machamp_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Machamp:: @ 8C5E494 + .incbin "graphics/pokemon/palettes/machamp_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Machamp:: @ 8C5E4BC + .incbin "graphics/pokemon/icons/machamp_icon.4bpp" + + .align 2 +gMonFootprint_Machamp:: @ 8C5E8BC + .incbin "graphics/pokemon/footprints/machamp_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Bellsprout:: @ 8C5E8DC + .incbin "graphics/pokemon/front_pics/bellsprout_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Bellsprout:: @ 8C5EB5C + .incbin "graphics/pokemon/palettes/bellsprout_palette.gbapal.lz" + + .align 2 +gMonBackPic_Bellsprout:: @ 8C5EB84 + .incbin "graphics/pokemon/back_pics/bellsprout_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Bellsprout:: @ 8C5EE20 + .incbin "graphics/pokemon/palettes/bellsprout_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Bellsprout:: @ 8C5EE48 + .incbin "graphics/pokemon/icons/bellsprout_icon.4bpp" + + .align 2 +gMonFootprint_Bellsprout:: @ 8C5F248 + .incbin "graphics/pokemon/footprints/bellsprout_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Weepinbell:: @ 8C5F268 + .incbin "graphics/pokemon/front_pics/weepinbell_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Weepinbell:: @ 8C5F58C + .incbin "graphics/pokemon/palettes/weepinbell_palette.gbapal.lz" + + .align 2 +gMonBackPic_Weepinbell:: @ 8C5F5B4 + .incbin "graphics/pokemon/back_pics/weepinbell_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Weepinbell:: @ 8C5F8B0 + .incbin "graphics/pokemon/palettes/weepinbell_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Weepinbell:: @ 8C5F8D8 + .incbin "graphics/pokemon/icons/weepinbell_icon.4bpp" + + .align 2 +gMonFootprint_Weepinbell:: @ 8C5FCD8 + .incbin "graphics/pokemon/footprints/weepinbell_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Victreebel:: @ 8C5FCF8 + .incbin "graphics/pokemon/front_pics/victreebel_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Victreebel:: @ 8C60124 + .incbin "graphics/pokemon/palettes/victreebel_palette.gbapal.lz" + + .align 2 +gMonBackPic_Victreebel:: @ 8C6014C + .incbin "graphics/pokemon/back_pics/victreebel_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Victreebel:: @ 8C604E4 + .incbin "graphics/pokemon/palettes/victreebel_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Victreebel:: @ 8C6050C + .incbin "graphics/pokemon/icons/victreebel_icon.4bpp" + + .align 2 +gMonFootprint_Victreebel:: @ 8C6090C + .incbin "graphics/pokemon/footprints/victreebel_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Tentacool:: @ 8C6092C + .incbin "graphics/pokemon/front_pics/tentacool_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Tentacool:: @ 8C60BCC + .incbin "graphics/pokemon/palettes/tentacool_palette.gbapal.lz" + + .align 2 +gMonBackPic_Tentacool:: @ 8C60BF4 + .incbin "graphics/pokemon/back_pics/tentacool_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Tentacool:: @ 8C60EC0 + .incbin "graphics/pokemon/palettes/tentacool_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Tentacool:: @ 8C60EE8 + .incbin "graphics/pokemon/icons/tentacool_icon.4bpp" + + .align 2 +gMonFootprint_Tentacool:: @ 8C612E8 + .incbin "graphics/pokemon/footprints/tentacool_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Tentacruel:: @ 8C61308 + .incbin "graphics/pokemon/front_pics/tentacruel_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Tentacruel:: @ 8C617A4 + .incbin "graphics/pokemon/palettes/tentacruel_palette.gbapal.lz" + + .align 2 +gMonBackPic_Tentacruel:: @ 8C617CC + .incbin "graphics/pokemon/back_pics/tentacruel_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Tentacruel:: @ 8C61B68 + .incbin "graphics/pokemon/palettes/tentacruel_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Tentacruel:: @ 8C61B90 + .incbin "graphics/pokemon/icons/tentacruel_icon.4bpp" + + .align 2 +gMonFootprint_Tentacruel:: @ 8C61F90 + .incbin "graphics/pokemon/footprints/tentacruel_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Geodude:: @ 8C61FB0 + .incbin "graphics/pokemon/front_pics/geodude_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Geodude:: @ 8C6221C + .incbin "graphics/pokemon/palettes/geodude_palette.gbapal.lz" + + .align 2 +gMonBackPic_Geodude:: @ 8C62238 + .incbin "graphics/pokemon/back_pics/geodude_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Geodude:: @ 8C624CC + .incbin "graphics/pokemon/palettes/geodude_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Geodude:: @ 8C624E8 + .incbin "graphics/pokemon/icons/geodude_icon.4bpp" + + .align 2 +gMonFootprint_Geodude:: @ 8C628E8 + .incbin "graphics/pokemon/footprints/geodude_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Graveler:: @ 8C62908 + .incbin "graphics/pokemon/front_pics/graveler_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Graveler:: @ 8C62D10 + .incbin "graphics/pokemon/palettes/graveler_palette.gbapal.lz" + + .align 2 +gMonBackPic_Graveler:: @ 8C62D30 + .incbin "graphics/pokemon/back_pics/graveler_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Graveler:: @ 8C62FAC + .incbin "graphics/pokemon/palettes/graveler_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Graveler:: @ 8C62FCC + .incbin "graphics/pokemon/icons/graveler_icon.4bpp" + + .align 2 +gMonFootprint_Graveler:: @ 8C633CC + .incbin "graphics/pokemon/footprints/graveler_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Golem:: @ 8C633EC + .incbin "graphics/pokemon/front_pics/golem_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Golem:: @ 8C63868 + .incbin "graphics/pokemon/palettes/golem_palette.gbapal.lz" + + .align 2 +gMonBackPic_Golem:: @ 8C63890 + .incbin "graphics/pokemon/back_pics/golem_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Golem:: @ 8C63B50 + .incbin "graphics/pokemon/palettes/golem_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Golem:: @ 8C63B78 + .incbin "graphics/pokemon/icons/golem_icon.4bpp" + + .align 2 +gMonFootprint_Golem:: @ 8C63F78 + .incbin "graphics/pokemon/footprints/golem_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Ponyta:: @ 8C63F98 + .incbin "graphics/pokemon/front_pics/ponyta_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Ponyta:: @ 8C64340 + .incbin "graphics/pokemon/palettes/ponyta_palette.gbapal.lz" + + .align 2 +gMonBackPic_Ponyta:: @ 8C64368 + .incbin "graphics/pokemon/back_pics/ponyta_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Ponyta:: @ 8C646A4 + .incbin "graphics/pokemon/palettes/ponyta_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Ponyta:: @ 8C646CC + .incbin "graphics/pokemon/icons/ponyta_icon.4bpp" + + .align 2 +gMonFootprint_Ponyta:: @ 8C64ACC + .incbin "graphics/pokemon/footprints/ponyta_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Rapidash:: @ 8C64AEC + .incbin "graphics/pokemon/front_pics/rapidash_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Rapidash:: @ 8C64FBC + .incbin "graphics/pokemon/palettes/rapidash_palette.gbapal.lz" + + .align 2 +gMonBackPic_Rapidash:: @ 8C64FE4 + .incbin "graphics/pokemon/back_pics/rapidash_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Rapidash:: @ 8C653F4 + .incbin "graphics/pokemon/palettes/rapidash_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Rapidash:: @ 8C6541C + .incbin "graphics/pokemon/icons/rapidash_icon.4bpp" + + .align 2 +gMonFootprint_Rapidash:: @ 8C6581C + .incbin "graphics/pokemon/footprints/rapidash_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Slowpoke:: @ 8C6583C + .incbin "graphics/pokemon/front_pics/slowpoke_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Slowpoke:: @ 8C65B48 + .incbin "graphics/pokemon/palettes/slowpoke_palette.gbapal.lz" + + .align 2 +gMonBackPic_Slowpoke:: @ 8C65B70 + .incbin "graphics/pokemon/back_pics/slowpoke_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Slowpoke:: @ 8C65DD4 + .incbin "graphics/pokemon/palettes/slowpoke_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Slowpoke:: @ 8C65DFC + .incbin "graphics/pokemon/icons/slowpoke_icon.4bpp" + + .align 2 +gMonFootprint_Slowpoke:: @ 8C661FC + .incbin "graphics/pokemon/footprints/slowpoke_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Slowbro:: @ 8C6621C + .incbin "graphics/pokemon/front_pics/slowbro_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Slowbro:: @ 8C666DC + .incbin "graphics/pokemon/palettes/slowbro_palette.gbapal.lz" + + .align 2 +gMonBackPic_Slowbro:: @ 8C66704 + .incbin "graphics/pokemon/back_pics/slowbro_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Slowbro:: @ 8C66AA0 + .incbin "graphics/pokemon/palettes/slowbro_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Slowbro:: @ 8C66AC8 + .incbin "graphics/pokemon/icons/slowbro_icon.4bpp" + + .align 2 +gMonFootprint_Slowbro:: @ 8C66EC8 + .incbin "graphics/pokemon/footprints/slowbro_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Magnemite:: @ 8C66EE8 + .incbin "graphics/pokemon/front_pics/magnemite_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Magnemite:: @ 8C670C0 + .incbin "graphics/pokemon/palettes/magnemite_palette.gbapal.lz" + + .align 2 +gMonBackPic_Magnemite:: @ 8C670E8 + .incbin "graphics/pokemon/back_pics/magnemite_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Magnemite:: @ 8C672D0 + .incbin "graphics/pokemon/palettes/magnemite_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Magnemite:: @ 8C672F4 + .incbin "graphics/pokemon/icons/magnemite_icon.4bpp" + + .align 2 +gMonFootprint_Magnemite:: @ 8C676F4 + .incbin "graphics/pokemon/footprints/magnemite_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Magneton:: @ 8C67714 + .incbin "graphics/pokemon/front_pics/magneton_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Magneton:: @ 8C67B18 + .incbin "graphics/pokemon/palettes/magneton_palette.gbapal.lz" + + .align 2 +gMonBackPic_Magneton:: @ 8C67B40 + .incbin "graphics/pokemon/back_pics/magneton_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Magneton:: @ 8C67EC0 + .incbin "graphics/pokemon/palettes/magneton_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Magneton:: @ 8C67EE8 + .incbin "graphics/pokemon/icons/magneton_icon.4bpp" + + .align 2 +gMonFootprint_Magneton:: @ 8C682E8 + .incbin "graphics/pokemon/footprints/magneton_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Farfetchd:: @ 8C68308 + .incbin "graphics/pokemon/front_pics/farfetch_d_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Farfetchd:: @ 8C68684 + .incbin "graphics/pokemon/palettes/farfetch_d_palette.gbapal.lz" + + .align 2 +gMonBackPic_Farfetchd:: @ 8C686AC + .incbin "graphics/pokemon/back_pics/farfetch_d_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Farfetchd:: @ 8C68A18 + .incbin "graphics/pokemon/palettes/farfetch_d_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Farfetchd:: @ 8C68A40 + .incbin "graphics/pokemon/icons/farfetch_d_icon.4bpp" + + .align 2 +gMonFootprint_Farfetchd:: @ 8C68E40 + .incbin "graphics/pokemon/footprints/farfetch_d_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Doduo:: @ 8C68E60 + .incbin "graphics/pokemon/front_pics/doduo_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Doduo:: @ 8C691B4 + .incbin "graphics/pokemon/palettes/doduo_palette.gbapal.lz" + + .align 2 +gMonBackPic_Doduo:: @ 8C691D8 + .incbin "graphics/pokemon/back_pics/doduo_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Doduo:: @ 8C694F0 + .incbin "graphics/pokemon/palettes/doduo_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Doduo:: @ 8C69514 + .incbin "graphics/pokemon/icons/doduo_icon.4bpp" + + .align 2 +gMonFootprint_Doduo:: @ 8C69914 + .incbin "graphics/pokemon/footprints/doduo_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Dodrio:: @ 8C69934 + .incbin "graphics/pokemon/front_pics/dodrio_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Dodrio:: @ 8C69E10 + .incbin "graphics/pokemon/palettes/dodrio_palette.gbapal.lz" + + .align 2 +gMonBackPic_Dodrio:: @ 8C69E38 + .incbin "graphics/pokemon/back_pics/dodrio_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Dodrio:: @ 8C6A29C + .incbin "graphics/pokemon/palettes/dodrio_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Dodrio:: @ 8C6A2C4 + .incbin "graphics/pokemon/icons/dodrio_icon.4bpp" + + .align 2 +gMonFootprint_Dodrio:: @ 8C6A6C4 + .incbin "graphics/pokemon/footprints/dodrio_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Seel:: @ 8C6A6E4 + .incbin "graphics/pokemon/front_pics/seel_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Seel:: @ 8C6A9EC + .incbin "graphics/pokemon/palettes/seel_palette.gbapal.lz" + + .align 2 +gMonBackPic_Seel:: @ 8C6AA14 + .incbin "graphics/pokemon/back_pics/seel_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Seel:: @ 8C6AD00 + .incbin "graphics/pokemon/palettes/seel_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Seel:: @ 8C6AD28 + .incbin "graphics/pokemon/icons/seel_icon.4bpp" + + .align 2 +gMonFootprint_Seel:: @ 8C6B128 + .incbin "graphics/pokemon/footprints/seel_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Dewgong:: @ 8C6B148 + .incbin "graphics/pokemon/front_pics/dewgong_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Dewgong:: @ 8C6B510 + .incbin "graphics/pokemon/palettes/dewgong_palette.gbapal.lz" + + .align 2 +gMonBackPic_Dewgong:: @ 8C6B530 + .incbin "graphics/pokemon/back_pics/dewgong_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Dewgong:: @ 8C6B7C4 + .incbin "graphics/pokemon/palettes/dewgong_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Dewgong:: @ 8C6B7E4 + .incbin "graphics/pokemon/icons/dewgong_icon.4bpp" + + .align 2 +gMonFootprint_Dewgong:: @ 8C6BBE4 + .incbin "graphics/pokemon/footprints/dewgong_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Grimer:: @ 8C6BC04 + .incbin "graphics/pokemon/front_pics/grimer_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Grimer:: @ 8C6BF20 + .incbin "graphics/pokemon/palettes/grimer_palette.gbapal.lz" + + .align 2 +gMonBackPic_Grimer:: @ 8C6BF44 + .incbin "graphics/pokemon/back_pics/grimer_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Grimer:: @ 8C6C228 + .incbin "graphics/pokemon/palettes/grimer_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Grimer:: @ 8C6C24C + .incbin "graphics/pokemon/icons/grimer_icon.4bpp" + + .align 2 +gMonFootprint_Grimer:: @ 8C6C64C + .incbin "graphics/pokemon/footprints/grimer_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Muk:: @ 8C6C66C + .incbin "graphics/pokemon/front_pics/muk_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Muk:: @ 8C6CAB8 + .incbin "graphics/pokemon/palettes/muk_palette.gbapal.lz" + + .align 2 +gMonBackPic_Muk:: @ 8C6CADC + .incbin "graphics/pokemon/back_pics/muk_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Muk:: @ 8C6CE34 + .incbin "graphics/pokemon/palettes/muk_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Muk:: @ 8C6CE58 + .incbin "graphics/pokemon/icons/muk_icon.4bpp" + + .align 2 +gMonFootprint_Muk:: @ 8C6D258 + .incbin "graphics/pokemon/footprints/muk_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Shellder:: @ 8C6D278 + .incbin "graphics/pokemon/front_pics/shellder_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Shellder:: @ 8C6D4E0 + .incbin "graphics/pokemon/palettes/shellder_palette.gbapal.lz" + + .align 2 +gMonBackPic_Shellder:: @ 8C6D504 + .incbin "graphics/pokemon/back_pics/shellder_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Shellder:: @ 8C6D818 + .incbin "graphics/pokemon/palettes/shellder_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Shellder:: @ 8C6D83C + .incbin "graphics/pokemon/icons/shellder_icon.4bpp" + + .align 2 +gMonFootprint_Shellder:: @ 8C6DC3C + .incbin "graphics/pokemon/footprints/shellder_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Cloyster:: @ 8C6DC5C + .incbin "graphics/pokemon/front_pics/cloyster_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Cloyster:: @ 8C6E094 + .incbin "graphics/pokemon/palettes/cloyster_palette.gbapal.lz" + + .align 2 +gMonBackPic_Cloyster:: @ 8C6E0B8 + .incbin "graphics/pokemon/back_pics/cloyster_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Cloyster:: @ 8C6E4C4 + .incbin "graphics/pokemon/palettes/cloyster_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Cloyster:: @ 8C6E4E8 + .incbin "graphics/pokemon/icons/cloyster_icon.4bpp" + + .align 2 +gMonFootprint_Cloyster:: @ 8C6E8E8 + .incbin "graphics/pokemon/footprints/cloyster_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Gastly:: @ 8C6E908 + .incbin "graphics/pokemon/front_pics/gastly_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Gastly:: @ 8C6ECC0 + .incbin "graphics/pokemon/palettes/gastly_palette.gbapal.lz" + + .align 2 +gMonBackPic_Gastly:: @ 8C6ECE8 + .incbin "graphics/pokemon/back_pics/gastly_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Gastly:: @ 8C6F00C + .incbin "graphics/pokemon/palettes/gastly_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Gastly:: @ 8C6F034 + .incbin "graphics/pokemon/icons/gastly_icon.4bpp" + + .align 2 +gMonFootprint_Gastly:: @ 8C6F434 + .incbin "graphics/pokemon/footprints/gastly_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Haunter:: @ 8C6F454 + .incbin "graphics/pokemon/front_pics/haunter_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Haunter:: @ 8C6F854 + .incbin "graphics/pokemon/palettes/haunter_palette.gbapal.lz" + + .align 2 +gMonBackPic_Haunter:: @ 8C6F878 + .incbin "graphics/pokemon/back_pics/haunter_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Haunter:: @ 8C6FBA0 + .incbin "graphics/pokemon/palettes/haunter_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Haunter:: @ 8C6FBC4 + .incbin "graphics/pokemon/icons/haunter_icon.4bpp" + + .align 2 +gMonFootprint_Haunter:: @ 8C6FFC4 + .incbin "graphics/pokemon/footprints/haunter_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Gengar:: @ 8C6FFE4 + .incbin "graphics/pokemon/front_pics/gengar_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Gengar:: @ 8C70380 + .incbin "graphics/pokemon/palettes/gengar_palette.gbapal.lz" + + .align 2 +gMonBackPic_Gengar:: @ 8C703A4 + .incbin "graphics/pokemon/back_pics/gengar_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Gengar:: @ 8C7068C + .incbin "graphics/pokemon/palettes/gengar_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Gengar:: @ 8C706B0 + .incbin "graphics/pokemon/icons/gengar_icon.4bpp" + + .align 2 +gMonFootprint_Gengar:: @ 8C70AB0 + .incbin "graphics/pokemon/footprints/gengar_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Onix:: @ 8C70AD0 + .incbin "graphics/pokemon/front_pics/onix_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Onix:: @ 8C70F48 + .incbin "graphics/pokemon/palettes/onix_palette.gbapal.lz" + + .align 2 +gMonBackPic_Onix:: @ 8C70F64 + .incbin "graphics/pokemon/back_pics/onix_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Onix:: @ 8C712E0 + .incbin "graphics/pokemon/palettes/onix_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Onix:: @ 8C712FC + .incbin "graphics/pokemon/icons/onix_icon.4bpp" + + .align 2 +gMonFootprint_Onix:: @ 8C716FC + .incbin "graphics/pokemon/footprints/onix_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Drowzee:: @ 8C7171C + .incbin "graphics/pokemon/front_pics/drowzee_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Drowzee:: @ 8C71A94 + .incbin "graphics/pokemon/palettes/drowzee_palette.gbapal.lz" + + .align 2 +gMonBackPic_Drowzee:: @ 8C71AB8 + .incbin "graphics/pokemon/back_pics/drowzee_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Drowzee:: @ 8C71D14 + .incbin "graphics/pokemon/palettes/drowzee_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Drowzee:: @ 8C71D38 + .incbin "graphics/pokemon/icons/drowzee_icon.4bpp" + + .align 2 +gMonFootprint_Drowzee:: @ 8C72138 + .incbin "graphics/pokemon/footprints/drowzee_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Hypno:: @ 8C72158 + .incbin "graphics/pokemon/front_pics/hypno_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Hypno:: @ 8C72544 + .incbin "graphics/pokemon/palettes/hypno_palette.gbapal.lz" + + .align 2 +gMonBackPic_Hypno:: @ 8C72568 + .incbin "graphics/pokemon/back_pics/hypno_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Hypno:: @ 8C72898 + .incbin "graphics/pokemon/palettes/hypno_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Hypno:: @ 8C728BC + .incbin "graphics/pokemon/icons/hypno_icon.4bpp" + + .align 2 +gMonFootprint_Hypno:: @ 8C72CBC + .incbin "graphics/pokemon/footprints/hypno_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Krabby:: @ 8C72CDC + .incbin "graphics/pokemon/front_pics/krabby_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Krabby:: @ 8C72F94 + .incbin "graphics/pokemon/palettes/krabby_palette.gbapal.lz" + + .align 2 +gMonBackPic_Krabby:: @ 8C72FBC + .incbin "graphics/pokemon/back_pics/krabby_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Krabby:: @ 8C73348 + .incbin "graphics/pokemon/palettes/krabby_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Krabby:: @ 8C73370 + .incbin "graphics/pokemon/icons/krabby_icon.4bpp" + + .align 2 +gMonFootprint_Krabby:: @ 8C73770 + .incbin "graphics/pokemon/footprints/krabby_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Kingler:: @ 8C73790 + .incbin "graphics/pokemon/front_pics/kingler_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Kingler:: @ 8C73CC4 + .incbin "graphics/pokemon/palettes/kingler_palette.gbapal.lz" + + .align 2 +gMonBackPic_Kingler:: @ 8C73CE8 + .incbin "graphics/pokemon/back_pics/kingler_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Kingler:: @ 8C7406C + .incbin "graphics/pokemon/palettes/kingler_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Kingler:: @ 8C74090 + .incbin "graphics/pokemon/icons/kingler_icon.4bpp" + + .align 2 +gMonFootprint_Kingler:: @ 8C74490 + .incbin "graphics/pokemon/footprints/kingler_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Voltorb:: @ 8C744B0 + .incbin "graphics/pokemon/front_pics/voltorb_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Voltorb:: @ 8C746B8 + .incbin "graphics/pokemon/palettes/voltorb_palette.gbapal.lz" + + .align 2 +gMonBackPic_Voltorb:: @ 8C746DC + .incbin "graphics/pokemon/back_pics/voltorb_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Voltorb:: @ 8C74950 + .incbin "graphics/pokemon/palettes/voltorb_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Voltorb:: @ 8C74974 + .incbin "graphics/pokemon/icons/voltorb_icon.4bpp" + + .align 2 +gMonFootprint_Voltorb:: @ 8C74D74 + .incbin "graphics/pokemon/footprints/voltorb_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Electrode:: @ 8C74D94 + .incbin "graphics/pokemon/front_pics/electrode_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Electrode:: @ 8C75000 + .incbin "graphics/pokemon/palettes/electrode_palette.gbapal.lz" + + .align 2 +gMonBackPic_Electrode:: @ 8C75024 + .incbin "graphics/pokemon/back_pics/electrode_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Electrode:: @ 8C75294 + .incbin "graphics/pokemon/palettes/electrode_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Electrode:: @ 8C752B8 + .incbin "graphics/pokemon/icons/electrode_icon.4bpp" + + .align 2 +gMonFootprint_Electrode:: @ 8C756B8 + .incbin "graphics/pokemon/footprints/electrode_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Exeggcute:: @ 8C756D8 + .incbin "graphics/pokemon/front_pics/exeggcute_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Exeggcute:: @ 8C75ADC + .incbin "graphics/pokemon/palettes/exeggcute_palette.gbapal.lz" + + .align 2 +gMonBackPic_Exeggcute:: @ 8C75B00 + .incbin "graphics/pokemon/back_pics/exeggcute_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Exeggcute:: @ 8C75E08 + .incbin "graphics/pokemon/palettes/exeggcute_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Exeggcute:: @ 8C75E2C + .incbin "graphics/pokemon/icons/exeggcute_icon.4bpp" + + .align 2 +gMonFootprint_Exeggcute:: @ 8C7622C + .incbin "graphics/pokemon/footprints/exeggcute_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Exeggutor:: @ 8C7624C + .incbin "graphics/pokemon/front_pics/exeggutor_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Exeggutor:: @ 8C7674C + .incbin "graphics/pokemon/palettes/exeggutor_palette.gbapal.lz" + + .align 2 +gMonBackPic_Exeggutor:: @ 8C76774 + .incbin "graphics/pokemon/back_pics/exeggutor_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Exeggutor:: @ 8C76C14 + .incbin "graphics/pokemon/palettes/exeggutor_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Exeggutor:: @ 8C76C3C + .incbin "graphics/pokemon/icons/exeggutor_icon.4bpp" + + .align 2 +gMonFootprint_Exeggutor:: @ 8C7703C + .incbin "graphics/pokemon/footprints/exeggutor_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Cubone:: @ 8C7705C + .incbin "graphics/pokemon/front_pics/cubone_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Cubone:: @ 8C7732C + .incbin "graphics/pokemon/palettes/cubone_palette.gbapal.lz" + + .align 2 +gMonBackPic_Cubone:: @ 8C77354 + .incbin "graphics/pokemon/back_pics/cubone_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Cubone:: @ 8C77694 + .incbin "graphics/pokemon/palettes/cubone_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Cubone:: @ 8C776BC + .incbin "graphics/pokemon/icons/cubone_icon.4bpp" + + .align 2 +gMonFootprint_Cubone:: @ 8C77ABC + .incbin "graphics/pokemon/footprints/cubone_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Marowak:: @ 8C77ADC + .incbin "graphics/pokemon/front_pics/marowak_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Marowak:: @ 8C77E64 + .incbin "graphics/pokemon/palettes/marowak_palette.gbapal.lz" + + .align 2 +gMonBackPic_Marowak:: @ 8C77E8C + .incbin "graphics/pokemon/back_pics/marowak_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Marowak:: @ 8C781D4 + .incbin "graphics/pokemon/palettes/marowak_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Marowak:: @ 8C781FC + .incbin "graphics/pokemon/icons/marowak_icon.4bpp" + + .align 2 +gMonFootprint_Marowak:: @ 8C785FC + .incbin "graphics/pokemon/footprints/marowak_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Hitmonlee:: @ 8C7861C + .incbin "graphics/pokemon/front_pics/hitmonlee_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Hitmonlee:: @ 8C78A1C + .incbin "graphics/pokemon/palettes/hitmonlee_palette.gbapal.lz" + + .align 2 +gMonBackPic_Hitmonlee:: @ 8C78A44 + .incbin "graphics/pokemon/back_pics/hitmonlee_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Hitmonlee:: @ 8C78CE8 + .incbin "graphics/pokemon/palettes/hitmonlee_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Hitmonlee:: @ 8C78D10 + .incbin "graphics/pokemon/icons/hitmonlee_icon.4bpp" + + .align 2 +gMonFootprint_Hitmonlee:: @ 8C79110 + .incbin "graphics/pokemon/footprints/hitmonlee_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Hitmonchan:: @ 8C79130 + .incbin "graphics/pokemon/front_pics/hitmonchan_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Hitmonchan:: @ 8C79470 + .incbin "graphics/pokemon/palettes/hitmonchan_palette.gbapal.lz" + + .align 2 +gMonBackPic_Hitmonchan:: @ 8C79498 + .incbin "graphics/pokemon/back_pics/hitmonchan_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Hitmonchan:: @ 8C797DC + .incbin "graphics/pokemon/palettes/hitmonchan_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Hitmonchan:: @ 8C79804 + .incbin "graphics/pokemon/icons/hitmonchan_icon.4bpp" + + .align 2 +gMonFootprint_Hitmonchan:: @ 8C79C04 + .incbin "graphics/pokemon/footprints/hitmonchan_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Lickitung:: @ 8C79C24 + .incbin "graphics/pokemon/front_pics/lickitung_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Lickitung:: @ 8C79FDC + .incbin "graphics/pokemon/palettes/lickitung_palette.gbapal.lz" + + .align 2 +gMonBackPic_Lickitung:: @ 8C7A004 + .incbin "graphics/pokemon/back_pics/lickitung_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Lickitung:: @ 8C7A2C4 + .incbin "graphics/pokemon/palettes/lickitung_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Lickitung:: @ 8C7A2EC + .incbin "graphics/pokemon/icons/lickitung_icon.4bpp" + + .align 2 +gMonFootprint_Lickitung:: @ 8C7A6EC + .incbin "graphics/pokemon/footprints/lickitung_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Koffing:: @ 8C7A70C + .incbin "graphics/pokemon/front_pics/koffing_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Koffing:: @ 8C7AA68 + .incbin "graphics/pokemon/palettes/koffing_palette.gbapal.lz" + + .align 2 +gMonBackPic_Koffing:: @ 8C7AA90 + .incbin "graphics/pokemon/back_pics/koffing_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Koffing:: @ 8C7AD90 + .incbin "graphics/pokemon/palettes/koffing_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Koffing:: @ 8C7ADB8 + .incbin "graphics/pokemon/icons/koffing_icon.4bpp" + + .align 2 +gMonFootprint_Koffing:: @ 8C7B1B8 + .incbin "graphics/pokemon/footprints/koffing_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Weezing:: @ 8C7B1D8 + .incbin "graphics/pokemon/front_pics/weezing_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Weezing:: @ 8C7B660 + .incbin "graphics/pokemon/palettes/weezing_palette.gbapal.lz" + + .align 2 +gMonBackPic_Weezing:: @ 8C7B688 + .incbin "graphics/pokemon/back_pics/weezing_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Weezing:: @ 8C7B9B8 + .incbin "graphics/pokemon/palettes/weezing_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Weezing:: @ 8C7B9E0 + .incbin "graphics/pokemon/icons/weezing_icon.4bpp" + + .align 2 +gMonFootprint_Weezing:: @ 8C7BDE0 + .incbin "graphics/pokemon/footprints/weezing_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Rhyhorn:: @ 8C7BE00 + .incbin "graphics/pokemon/front_pics/rhyhorn_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Rhyhorn:: @ 8C7C204 + .incbin "graphics/pokemon/palettes/rhyhorn_palette.gbapal.lz" + + .align 2 +gMonBackPic_Rhyhorn:: @ 8C7C224 + .incbin "graphics/pokemon/back_pics/rhyhorn_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Rhyhorn:: @ 8C7C56C + .incbin "graphics/pokemon/palettes/rhyhorn_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Rhyhorn:: @ 8C7C58C + .incbin "graphics/pokemon/icons/rhyhorn_icon.4bpp" + + .align 2 +gMonFootprint_Rhyhorn:: @ 8C7C98C + .incbin "graphics/pokemon/footprints/rhyhorn_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Rhydon:: @ 8C7C9AC + .incbin "graphics/pokemon/front_pics/rhydon_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Rhydon:: @ 8C7CEB4 + .incbin "graphics/pokemon/palettes/rhydon_palette.gbapal.lz" + + .align 2 +gMonBackPic_Rhydon:: @ 8C7CEDC + .incbin "graphics/pokemon/back_pics/rhydon_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Rhydon:: @ 8C7D32C + .incbin "graphics/pokemon/palettes/rhydon_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Rhydon:: @ 8C7D354 + .incbin "graphics/pokemon/icons/rhydon_icon.4bpp" + + .align 2 +gMonFootprint_Rhydon:: @ 8C7D754 + .incbin "graphics/pokemon/footprints/rhydon_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Chansey:: @ 8C7D774 + .incbin "graphics/pokemon/front_pics/chansey_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Chansey:: @ 8C7DAC8 + .incbin "graphics/pokemon/palettes/chansey_palette.gbapal.lz" + + .align 2 +gMonBackPic_Chansey:: @ 8C7DAEC + .incbin "graphics/pokemon/back_pics/chansey_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Chansey:: @ 8C7DDC0 + .incbin "graphics/pokemon/palettes/chansey_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Chansey:: @ 8C7DDE4 + .incbin "graphics/pokemon/icons/chansey_icon.4bpp" + + .align 2 +gMonFootprint_Chansey:: @ 8C7E1E4 + .incbin "graphics/pokemon/footprints/chansey_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Tangela:: @ 8C7E204 + .incbin "graphics/pokemon/front_pics/tangela_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Tangela:: @ 8C7E5D8 + .incbin "graphics/pokemon/palettes/tangela_palette.gbapal.lz" + + .align 2 +gMonBackPic_Tangela:: @ 8C7E5FC + .incbin "graphics/pokemon/back_pics/tangela_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Tangela:: @ 8C7E9A8 + .incbin "graphics/pokemon/palettes/tangela_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Tangela:: @ 8C7E9CC + .incbin "graphics/pokemon/icons/tangela_icon.4bpp" + + .align 2 +gMonFootprint_Tangela:: @ 8C7EDCC + .incbin "graphics/pokemon/footprints/tangela_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Kangaskhan:: @ 8C7EDEC + .incbin "graphics/pokemon/front_pics/kangaskhan_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Kangaskhan:: @ 8C7F2E4 + .incbin "graphics/pokemon/palettes/kangaskhan_palette.gbapal.lz" + + .align 2 +gMonBackPic_Kangaskhan:: @ 8C7F30C + .incbin "graphics/pokemon/back_pics/kangaskhan_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Kangaskhan:: @ 8C7F73C + .incbin "graphics/pokemon/palettes/kangaskhan_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Kangaskhan:: @ 8C7F764 + .incbin "graphics/pokemon/icons/kangaskhan_icon.4bpp" + + .align 2 +gMonFootprint_Kangaskhan:: @ 8C7FB64 + .incbin "graphics/pokemon/footprints/kangaskhan_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Horsea:: @ 8C7FB84 + .incbin "graphics/pokemon/front_pics/horsea_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Horsea:: @ 8C7FDFC + .incbin "graphics/pokemon/palettes/horsea_palette.gbapal.lz" + + .align 2 +gMonBackPic_Horsea:: @ 8C7FE24 + .incbin "graphics/pokemon/back_pics/horsea_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Horsea:: @ 8C80104 + .incbin "graphics/pokemon/palettes/horsea_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Horsea:: @ 8C8012C + .incbin "graphics/pokemon/icons/horsea_icon.4bpp" + + .align 2 +gMonFootprint_Horsea:: @ 8C8052C + .incbin "graphics/pokemon/footprints/horsea_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Seadra:: @ 8C8054C + .incbin "graphics/pokemon/front_pics/seadra_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Seadra:: @ 8C8090C + .incbin "graphics/pokemon/palettes/seadra_palette.gbapal.lz" + + .align 2 +gMonBackPic_Seadra:: @ 8C80934 + .incbin "graphics/pokemon/back_pics/seadra_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Seadra:: @ 8C80CD4 + .incbin "graphics/pokemon/palettes/seadra_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Seadra:: @ 8C80CFC + .incbin "graphics/pokemon/icons/seadra_icon.4bpp" + + .align 2 +gMonFootprint_Seadra:: @ 8C810FC + .incbin "graphics/pokemon/footprints/seadra_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Goldeen:: @ 8C8111C + .incbin "graphics/pokemon/front_pics/goldeen_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Goldeen:: @ 8C81484 + .incbin "graphics/pokemon/palettes/goldeen_palette.gbapal.lz" + + .align 2 +gMonBackPic_Goldeen:: @ 8C814AC + .incbin "graphics/pokemon/back_pics/goldeen_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Goldeen:: @ 8C8181C + .incbin "graphics/pokemon/palettes/goldeen_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Goldeen:: @ 8C81844 + .incbin "graphics/pokemon/icons/goldeen_icon.4bpp" + + .align 2 +gMonFootprint_Goldeen:: @ 8C81C44 + .incbin "graphics/pokemon/footprints/goldeen_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Seaking:: @ 8C81C64 + .incbin "graphics/pokemon/front_pics/seaking_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Seaking:: @ 8C820D8 + .incbin "graphics/pokemon/palettes/seaking_palette.gbapal.lz" + + .align 2 +gMonBackPic_Seaking:: @ 8C82100 + .incbin "graphics/pokemon/back_pics/seaking_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Seaking:: @ 8C82450 + .incbin "graphics/pokemon/palettes/seaking_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Seaking:: @ 8C82478 + .incbin "graphics/pokemon/icons/seaking_icon.4bpp" + + .align 2 +gMonFootprint_Seaking:: @ 8C82878 + .incbin "graphics/pokemon/footprints/seaking_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Staryu:: @ 8C82898 + .incbin "graphics/pokemon/front_pics/staryu_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Staryu:: @ 8C82B7C + .incbin "graphics/pokemon/palettes/staryu_palette.gbapal.lz" + + .align 2 +gMonBackPic_Staryu:: @ 8C82BA4 + .incbin "graphics/pokemon/back_pics/staryu_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Staryu:: @ 8C82E30 + .incbin "graphics/pokemon/palettes/staryu_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Staryu:: @ 8C82E58 + .incbin "graphics/pokemon/icons/staryu_icon.4bpp" + + .align 2 +gMonFootprint_Staryu:: @ 8C83258 + .incbin "graphics/pokemon/footprints/staryu_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Starmie:: @ 8C83278 + .incbin "graphics/pokemon/front_pics/starmie_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Starmie:: @ 8C836A0 + .incbin "graphics/pokemon/palettes/starmie_palette.gbapal.lz" + + .align 2 +gMonBackPic_Starmie:: @ 8C836C8 + .incbin "graphics/pokemon/back_pics/starmie_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Starmie:: @ 8C8396C + .incbin "graphics/pokemon/palettes/starmie_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Starmie:: @ 8C83994 + .incbin "graphics/pokemon/icons/starmie_icon.4bpp" + + .align 2 +gMonFootprint_Starmie:: @ 8C83D94 + .incbin "graphics/pokemon/footprints/starmie_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Mrmime:: @ 8C83DB4 + .incbin "graphics/pokemon/front_pics/mr_mime_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Mrmime:: @ 8C84164 + .incbin "graphics/pokemon/palettes/mr_mime_palette.gbapal.lz" + + .align 2 +gMonBackPic_Mrmime:: @ 8C8418C + .incbin "graphics/pokemon/back_pics/mr_mime_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Mrmime:: @ 8C844C0 + .incbin "graphics/pokemon/palettes/mr_mime_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Mrmime:: @ 8C844E8 + .incbin "graphics/pokemon/icons/mr_mime_icon.4bpp" + + .align 2 +gMonFootprint_Mrmime:: @ 8C848E8 + .incbin "graphics/pokemon/footprints/mr_mime_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Scyther:: @ 8C84908 + .incbin "graphics/pokemon/front_pics/scyther_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Scyther:: @ 8C84DB4 + .incbin "graphics/pokemon/palettes/scyther_palette.gbapal.lz" + + .align 2 +gMonBackPic_Scyther:: @ 8C84DDC + .incbin "graphics/pokemon/back_pics/scyther_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Scyther:: @ 8C85184 + .incbin "graphics/pokemon/palettes/scyther_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Scyther:: @ 8C851AC + .incbin "graphics/pokemon/icons/scyther_icon.4bpp" + + .align 2 +gMonFootprint_Scyther:: @ 8C855AC + .incbin "graphics/pokemon/footprints/scyther_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Jynx:: @ 8C855CC + .incbin "graphics/pokemon/front_pics/jynx_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Jynx:: @ 8C85A68 + .incbin "graphics/pokemon/palettes/jynx_palette.gbapal.lz" + + .align 2 +gMonBackPic_Jynx:: @ 8C85A90 + .incbin "graphics/pokemon/back_pics/jynx_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Jynx:: @ 8C85D88 + .incbin "graphics/pokemon/palettes/jynx_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Jynx:: @ 8C85DB0 + .incbin "graphics/pokemon/icons/jynx_icon.4bpp" + + .align 2 +gMonFootprint_Jynx:: @ 8C861B0 + .incbin "graphics/pokemon/footprints/jynx_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Electabuzz:: @ 8C861D0 + .incbin "graphics/pokemon/front_pics/electabuzz_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Electabuzz:: @ 8C8664C + .incbin "graphics/pokemon/palettes/electabuzz_palette.gbapal.lz" + + .align 2 +gMonBackPic_Electabuzz:: @ 8C86674 + .incbin "graphics/pokemon/back_pics/electabuzz_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Electabuzz:: @ 8C86984 + .incbin "graphics/pokemon/palettes/electabuzz_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Electabuzz:: @ 8C869AC + .incbin "graphics/pokemon/icons/electabuzz_icon.4bpp" + + .align 2 +gMonFootprint_Electabuzz:: @ 8C86DAC + .incbin "graphics/pokemon/footprints/electabuzz_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Magmar:: @ 8C86DCC + .incbin "graphics/pokemon/front_pics/magmar_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Magmar:: @ 8C87274 + .incbin "graphics/pokemon/palettes/magmar_palette.gbapal.lz" + + .align 2 +gMonBackPic_Magmar:: @ 8C8729C + .incbin "graphics/pokemon/back_pics/magmar_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Magmar:: @ 8C875E4 + .incbin "graphics/pokemon/palettes/magmar_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Magmar:: @ 8C8760C + .incbin "graphics/pokemon/icons/magmar_icon.4bpp" + + .align 2 +gMonFootprint_Magmar:: @ 8C87A0C + .incbin "graphics/pokemon/footprints/magmar_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Pinsir:: @ 8C87A2C + .incbin "graphics/pokemon/front_pics/pinsir_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Pinsir:: @ 8C87E54 + .incbin "graphics/pokemon/palettes/pinsir_palette.gbapal.lz" + + .align 2 +gMonBackPic_Pinsir:: @ 8C87E78 + .incbin "graphics/pokemon/back_pics/pinsir_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Pinsir:: @ 8C881CC + .incbin "graphics/pokemon/palettes/pinsir_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Pinsir:: @ 8C881F0 + .incbin "graphics/pokemon/icons/pinsir_icon.4bpp" + + .align 2 +gMonFootprint_Pinsir:: @ 8C885F0 + .incbin "graphics/pokemon/footprints/pinsir_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Tauros:: @ 8C88610 + .incbin "graphics/pokemon/front_pics/tauros_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Tauros:: @ 8C88AE0 + .incbin "graphics/pokemon/palettes/tauros_palette.gbapal.lz" + + .align 2 +gMonBackPic_Tauros:: @ 8C88B08 + .incbin "graphics/pokemon/back_pics/tauros_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Tauros:: @ 8C88DBC + .incbin "graphics/pokemon/palettes/tauros_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Tauros:: @ 8C88DE4 + .incbin "graphics/pokemon/icons/tauros_icon.4bpp" + + .align 2 +gMonFootprint_Tauros:: @ 8C891E4 + .incbin "graphics/pokemon/footprints/tauros_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Magikarp:: @ 8C89204 + .incbin "graphics/pokemon/front_pics/magikarp_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Magikarp:: @ 8C89554 + .incbin "graphics/pokemon/palettes/magikarp_palette.gbapal.lz" + + .align 2 +gMonBackPic_Magikarp:: @ 8C8957C + .incbin "graphics/pokemon/back_pics/magikarp_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Magikarp:: @ 8C898AC + .incbin "graphics/pokemon/palettes/magikarp_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Magikarp:: @ 8C898D4 + .incbin "graphics/pokemon/icons/magikarp_icon.4bpp" + + .align 2 +gMonFootprint_Magikarp:: @ 8C89CD4 + .incbin "graphics/pokemon/footprints/magikarp_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Gyarados:: @ 8C89CF4 + .incbin "graphics/pokemon/front_pics/gyarados_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Gyarados:: @ 8C8A25C + .incbin "graphics/pokemon/palettes/gyarados_palette.gbapal.lz" + + .align 2 +gMonBackPic_Gyarados:: @ 8C8A284 + .incbin "graphics/pokemon/back_pics/gyarados_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Gyarados:: @ 8C8A758 + .incbin "graphics/pokemon/palettes/gyarados_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Gyarados:: @ 8C8A780 + .incbin "graphics/pokemon/icons/gyarados_icon.4bpp" + + .align 2 +gMonFootprint_Gyarados:: @ 8C8AB80 + .incbin "graphics/pokemon/footprints/gyarados_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Lapras:: @ 8C8ABA0 + .incbin "graphics/pokemon/front_pics/lapras_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Lapras:: @ 8C8AF60 + .incbin "graphics/pokemon/palettes/lapras_palette.gbapal.lz" + + .align 2 +gMonBackPic_Lapras:: @ 8C8AF88 + .incbin "graphics/pokemon/back_pics/lapras_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Lapras:: @ 8C8B2CC + .incbin "graphics/pokemon/palettes/lapras_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Lapras:: @ 8C8B2F4 + .incbin "graphics/pokemon/icons/lapras_icon.4bpp" + + .align 2 +gMonFootprint_Lapras:: @ 8C8B6F4 + .incbin "graphics/pokemon/footprints/lapras_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Ditto:: @ 8C8B714 + .incbin "graphics/pokemon/front_pics/ditto_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Ditto:: @ 8C8B904 + .incbin "graphics/pokemon/palettes/ditto_palette.gbapal.lz" + + .align 2 +gMonBackPic_Ditto:: @ 8C8B924 + .incbin "graphics/pokemon/back_pics/ditto_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Ditto:: @ 8C8BB24 + .incbin "graphics/pokemon/palettes/ditto_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Ditto:: @ 8C8BB44 + .incbin "graphics/pokemon/icons/ditto_icon.4bpp" + + .align 2 +gMonFootprint_Ditto:: @ 8C8BF44 + .incbin "graphics/pokemon/footprints/ditto_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Eevee:: @ 8C8BF64 + .incbin "graphics/pokemon/front_pics/eevee_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Eevee:: @ 8C8C208 + .incbin "graphics/pokemon/palettes/eevee_palette.gbapal.lz" + + .align 2 +gMonBackPic_Eevee:: @ 8C8C22C + .incbin "graphics/pokemon/back_pics/eevee_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Eevee:: @ 8C8C554 + .incbin "graphics/pokemon/palettes/eevee_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Eevee:: @ 8C8C578 + .incbin "graphics/pokemon/icons/eevee_icon.4bpp" + + .align 2 +gMonFootprint_Eevee:: @ 8C8C978 + .incbin "graphics/pokemon/footprints/eevee_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Vaporeon:: @ 8C8C998 + .incbin "graphics/pokemon/front_pics/vaporeon_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Vaporeon:: @ 8C8CD2C + .incbin "graphics/pokemon/palettes/vaporeon_palette.gbapal.lz" + + .align 2 +gMonBackPic_Vaporeon:: @ 8C8CD54 + .incbin "graphics/pokemon/back_pics/vaporeon_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Vaporeon:: @ 8C8D01C + .incbin "graphics/pokemon/palettes/vaporeon_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Vaporeon:: @ 8C8D044 + .incbin "graphics/pokemon/icons/vaporeon_icon.4bpp" + + .align 2 +gMonFootprint_Vaporeon:: @ 8C8D444 + .incbin "graphics/pokemon/footprints/vaporeon_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Jolteon:: @ 8C8D464 + .incbin "graphics/pokemon/front_pics/jolteon_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Jolteon:: @ 8C8D804 + .incbin "graphics/pokemon/palettes/jolteon_palette.gbapal.lz" + + .align 2 +gMonBackPic_Jolteon:: @ 8C8D82C + .incbin "graphics/pokemon/back_pics/jolteon_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Jolteon:: @ 8C8DBBC + .incbin "graphics/pokemon/palettes/jolteon_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Jolteon:: @ 8C8DBE4 + .incbin "graphics/pokemon/icons/jolteon_icon.4bpp" + + .align 2 +gMonFootprint_Jolteon:: @ 8C8DFE4 + .incbin "graphics/pokemon/footprints/jolteon_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Flareon:: @ 8C8E004 + .incbin "graphics/pokemon/front_pics/flareon_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Flareon:: @ 8C8E380 + .incbin "graphics/pokemon/palettes/flareon_palette.gbapal.lz" + + .align 2 +gMonBackPic_Flareon:: @ 8C8E3A8 + .incbin "graphics/pokemon/back_pics/flareon_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Flareon:: @ 8C8E738 + .incbin "graphics/pokemon/palettes/flareon_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Flareon:: @ 8C8E760 + .incbin "graphics/pokemon/icons/flareon_icon.4bpp" + + .align 2 +gMonFootprint_Flareon:: @ 8C8EB60 + .incbin "graphics/pokemon/footprints/flareon_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Porygon:: @ 8C8EB80 + .incbin "graphics/pokemon/front_pics/porygon_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Porygon:: @ 8C8EE3C + .incbin "graphics/pokemon/palettes/porygon_palette.gbapal.lz" + + .align 2 +gMonBackPic_Porygon:: @ 8C8EE60 + .incbin "graphics/pokemon/back_pics/porygon_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Porygon:: @ 8C8F118 + .incbin "graphics/pokemon/palettes/porygon_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Porygon:: @ 8C8F13C + .incbin "graphics/pokemon/icons/porygon_icon.4bpp" + + .align 2 +gMonFootprint_Porygon:: @ 8C8F53C + .incbin "graphics/pokemon/footprints/porygon_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Omanyte:: @ 8C8F55C + .incbin "graphics/pokemon/front_pics/omanyte_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Omanyte:: @ 8C8F804 + .incbin "graphics/pokemon/palettes/omanyte_palette.gbapal.lz" + + .align 2 +gMonBackPic_Omanyte:: @ 8C8F82C + .incbin "graphics/pokemon/back_pics/omanyte_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Omanyte:: @ 8C8FB78 + .incbin "graphics/pokemon/palettes/omanyte_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Omanyte:: @ 8C8FBA0 + .incbin "graphics/pokemon/icons/omanyte_icon.4bpp" + + .align 2 +gMonFootprint_Omanyte:: @ 8C8FFA0 + .incbin "graphics/pokemon/footprints/omanyte_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Omastar:: @ 8C8FFC0 + .incbin "graphics/pokemon/front_pics/omastar_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Omastar:: @ 8C90380 + .incbin "graphics/pokemon/palettes/omastar_palette.gbapal.lz" + + .align 2 +gMonBackPic_Omastar:: @ 8C903A8 + .incbin "graphics/pokemon/back_pics/omastar_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Omastar:: @ 8C906E8 + .incbin "graphics/pokemon/palettes/omastar_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Omastar:: @ 8C90710 + .incbin "graphics/pokemon/icons/omastar_icon.4bpp" + + .align 2 +gMonFootprint_Omastar:: @ 8C90B10 + .incbin "graphics/pokemon/footprints/omastar_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Kabuto:: @ 8C90B30 + .incbin "graphics/pokemon/front_pics/kabuto_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Kabuto:: @ 8C90DA0 + .incbin "graphics/pokemon/palettes/kabuto_palette.gbapal.lz" + + .align 2 +gMonBackPic_Kabuto:: @ 8C90DC8 + .incbin "graphics/pokemon/back_pics/kabuto_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Kabuto:: @ 8C91060 + .incbin "graphics/pokemon/palettes/kabuto_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Kabuto:: @ 8C91088 + .incbin "graphics/pokemon/icons/kabuto_icon.4bpp" + + .align 2 +gMonFootprint_Kabuto:: @ 8C91488 + .incbin "graphics/pokemon/footprints/kabuto_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Kabutops:: @ 8C914A8 + .incbin "graphics/pokemon/front_pics/kabutops_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Kabutops:: @ 8C918A8 + .incbin "graphics/pokemon/palettes/kabutops_palette.gbapal.lz" + + .align 2 +gMonBackPic_Kabutops:: @ 8C918CC + .incbin "graphics/pokemon/back_pics/kabutops_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Kabutops:: @ 8C91C70 + .incbin "graphics/pokemon/palettes/kabutops_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Kabutops:: @ 8C91C94 + .incbin "graphics/pokemon/icons/kabutops_icon.4bpp" + + .align 2 +gMonFootprint_Kabutops:: @ 8C92094 + .incbin "graphics/pokemon/footprints/kabutops_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Aerodactyl:: @ 8C920B4 + .incbin "graphics/pokemon/front_pics/aerodactyl_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Aerodactyl:: @ 8C92534 + .incbin "graphics/pokemon/palettes/aerodactyl_palette.gbapal.lz" + + .align 2 +gMonBackPic_Aerodactyl:: @ 8C9255C + .incbin "graphics/pokemon/back_pics/aerodactyl_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Aerodactyl:: @ 8C92860 + .incbin "graphics/pokemon/palettes/aerodactyl_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Aerodactyl:: @ 8C92888 + .incbin "graphics/pokemon/icons/aerodactyl_icon.4bpp" + + .align 2 +gMonFootprint_Aerodactyl:: @ 8C92C88 + .incbin "graphics/pokemon/footprints/aerodactyl_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Snorlax:: @ 8C92CA8 + .incbin "graphics/pokemon/front_pics/snorlax_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Snorlax:: @ 8C930EC + .incbin "graphics/pokemon/palettes/snorlax_palette.gbapal.lz" + + .align 2 +gMonBackPic_Snorlax:: @ 8C93114 + .incbin "graphics/pokemon/back_pics/snorlax_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Snorlax:: @ 8C93330 + .incbin "graphics/pokemon/palettes/snorlax_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Snorlax:: @ 8C93358 + .incbin "graphics/pokemon/icons/snorlax_icon.4bpp" + + .align 2 +gMonFootprint_Snorlax:: @ 8C93758 + .incbin "graphics/pokemon/footprints/snorlax_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Articuno:: @ 8C93778 + .incbin "graphics/pokemon/front_pics/articuno_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Articuno:: @ 8C93C70 + .incbin "graphics/pokemon/palettes/articuno_palette.gbapal.lz" + + .align 2 +gMonBackPic_Articuno:: @ 8C93C98 + .incbin "graphics/pokemon/back_pics/articuno_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Articuno:: @ 8C93EF4 + .incbin "graphics/pokemon/palettes/articuno_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Articuno:: @ 8C93F1C + .incbin "graphics/pokemon/icons/articuno_icon.4bpp" + + .align 2 +gMonFootprint_Articuno:: @ 8C9431C + .incbin "graphics/pokemon/footprints/articuno_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Zapdos:: @ 8C9433C + .incbin "graphics/pokemon/front_pics/zapdos_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Zapdos:: @ 8C947B0 + .incbin "graphics/pokemon/palettes/zapdos_palette.gbapal.lz" + + .align 2 +gMonBackPic_Zapdos:: @ 8C947D8 + .incbin "graphics/pokemon/back_pics/zapdos_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Zapdos:: @ 8C94B14 + .incbin "graphics/pokemon/palettes/zapdos_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Zapdos:: @ 8C94B3C + .incbin "graphics/pokemon/icons/zapdos_icon.4bpp" + + .align 2 +gMonFootprint_Zapdos:: @ 8C94F3C + .incbin "graphics/pokemon/footprints/zapdos_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Moltres:: @ 8C94F5C + .incbin "graphics/pokemon/front_pics/moltres_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Moltres:: @ 8C9550C + .incbin "graphics/pokemon/palettes/moltres_palette.gbapal.lz" + + .align 2 +gMonBackPic_Moltres:: @ 8C95534 + .incbin "graphics/pokemon/back_pics/moltres_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Moltres:: @ 8C95870 + .incbin "graphics/pokemon/palettes/moltres_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Moltres:: @ 8C95898 + .incbin "graphics/pokemon/icons/moltres_icon.4bpp" + + .align 2 +gMonFootprint_Moltres:: @ 8C95C98 + .incbin "graphics/pokemon/footprints/moltres_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Dratini:: @ 8C95CB8 + .incbin "graphics/pokemon/front_pics/dratini_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Dratini:: @ 8C95F70 + .incbin "graphics/pokemon/palettes/dratini_palette.gbapal.lz" + + .align 2 +gMonBackPic_Dratini:: @ 8C95F94 + .incbin "graphics/pokemon/back_pics/dratini_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Dratini:: @ 8C96224 + .incbin "graphics/pokemon/palettes/dratini_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Dratini:: @ 8C96248 + .incbin "graphics/pokemon/icons/dratini_icon.4bpp" + + .align 2 +gMonFootprint_Dratini:: @ 8C96648 + .incbin "graphics/pokemon/footprints/dratini_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Dragonair:: @ 8C96668 + .incbin "graphics/pokemon/front_pics/dragonair_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Dragonair:: @ 8C969C8 + .incbin "graphics/pokemon/palettes/dragonair_palette.gbapal.lz" + + .align 2 +gMonBackPic_Dragonair:: @ 8C969F0 + .incbin "graphics/pokemon/back_pics/dragonair_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Dragonair:: @ 8C96D00 + .incbin "graphics/pokemon/palettes/dragonair_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Dragonair:: @ 8C96D28 + .incbin "graphics/pokemon/icons/dragonair_icon.4bpp" + + .align 2 +gMonFootprint_Dragonair:: @ 8C97128 + .incbin "graphics/pokemon/footprints/dragonair_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Dragonite:: @ 8C97148 + .incbin "graphics/pokemon/front_pics/dragonite_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Dragonite:: @ 8C976B8 + .incbin "graphics/pokemon/palettes/dragonite_palette.gbapal.lz" + + .align 2 +gMonBackPic_Dragonite:: @ 8C976E0 + .incbin "graphics/pokemon/back_pics/dragonite_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Dragonite:: @ 8C979DC + .incbin "graphics/pokemon/palettes/dragonite_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Dragonite:: @ 8C97A04 + .incbin "graphics/pokemon/icons/dragonite_icon.4bpp" + + .align 2 +gMonFootprint_Dragonite:: @ 8C97E04 + .incbin "graphics/pokemon/footprints/dragonite_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Mewtwo:: @ 8C97E24 + .incbin "graphics/pokemon/front_pics/mewtwo_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Mewtwo:: @ 8C98260 + .incbin "graphics/pokemon/palettes/mewtwo_palette.gbapal.lz" + + .align 2 +gMonBackPic_Mewtwo:: @ 8C98284 + .incbin "graphics/pokemon/back_pics/mewtwo_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Mewtwo:: @ 8C98650 + .incbin "graphics/pokemon/palettes/mewtwo_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Mewtwo:: @ 8C98674 + .incbin "graphics/pokemon/icons/mewtwo_icon.4bpp" + + .align 2 +gMonFootprint_Mewtwo:: @ 8C98A74 + .incbin "graphics/pokemon/footprints/mewtwo_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Mew:: @ 8C98A94 + .incbin "graphics/pokemon/front_pics/mew_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Mew:: @ 8C98D14 + .incbin "graphics/pokemon/palettes/mew_palette.gbapal.lz" + + .align 2 +gMonBackPic_Mew:: @ 8C98D38 + .incbin "graphics/pokemon/back_pics/mew_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Mew:: @ 8C99004 + .incbin "graphics/pokemon/palettes/mew_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Mew:: @ 8C99028 + .incbin "graphics/pokemon/icons/mew_icon.4bpp" + + .align 2 +gMonFootprint_Mew:: @ 8C99428 + .incbin "graphics/pokemon/footprints/mew_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Chikorita:: @ 8C99448 + .incbin "graphics/pokemon/front_pics/chikorita_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Chikorita:: @ 8C996B0 + .incbin "graphics/pokemon/palettes/chikorita_palette.gbapal.lz" + + .align 2 +gMonBackPic_Chikorita:: @ 8C996D8 + .incbin "graphics/pokemon/back_pics/chikorita_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Chikorita:: @ 8C9999C + .incbin "graphics/pokemon/palettes/chikorita_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Chikorita:: @ 8C999C4 + .incbin "graphics/pokemon/icons/chikorita_icon.4bpp" + + .align 2 +gMonFootprint_Chikorita:: @ 8C99DC4 + .incbin "graphics/pokemon/footprints/chikorita_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Bayleef:: @ 8C99DE4 + .incbin "graphics/pokemon/front_pics/bayleef_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Bayleef:: @ 8C9A1B8 + .incbin "graphics/pokemon/palettes/bayleef_palette.gbapal.lz" + + .align 2 +gMonBackPic_Bayleef:: @ 8C9A1E0 + .incbin "graphics/pokemon/back_pics/bayleef_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Bayleef:: @ 8C9A570 + .incbin "graphics/pokemon/palettes/bayleef_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Bayleef:: @ 8C9A598 + .incbin "graphics/pokemon/icons/bayleef_icon.4bpp" + + .align 2 +gMonFootprint_Bayleef:: @ 8C9A998 + .incbin "graphics/pokemon/footprints/bayleef_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Meganium:: @ 8C9A9B8 + .incbin "graphics/pokemon/front_pics/meganium_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Meganium:: @ 8C9AF14 + .incbin "graphics/pokemon/palettes/meganium_palette.gbapal.lz" + + .align 2 +gMonBackPic_Meganium:: @ 8C9AF3C + .incbin "graphics/pokemon/back_pics/meganium_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Meganium:: @ 8C9B28C + .incbin "graphics/pokemon/palettes/meganium_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Meganium:: @ 8C9B2B4 + .incbin "graphics/pokemon/icons/meganium_icon.4bpp" + + .align 2 +gMonFootprint_Meganium:: @ 8C9B6B4 + .incbin "graphics/pokemon/footprints/meganium_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Cyndaquil:: @ 8C9B6D4 + .incbin "graphics/pokemon/front_pics/cyndaquil_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Cyndaquil:: @ 8C9B960 + .incbin "graphics/pokemon/palettes/cyndaquil_palette.gbapal.lz" + + .align 2 +gMonBackPic_Cyndaquil:: @ 8C9B988 + .incbin "graphics/pokemon/back_pics/cyndaquil_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Cyndaquil:: @ 8C9BCB4 + .incbin "graphics/pokemon/palettes/cyndaquil_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Cyndaquil:: @ 8C9BCDC + .incbin "graphics/pokemon/icons/cyndaquil_icon.4bpp" + + .align 2 +gMonFootprint_Cyndaquil:: @ 8C9C0DC + .incbin "graphics/pokemon/footprints/cyndaquil_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Quilava:: @ 8C9C0FC + .incbin "graphics/pokemon/front_pics/quilava_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Quilava:: @ 8C9C418 + .incbin "graphics/pokemon/palettes/quilava_palette.gbapal.lz" + + .align 2 +gMonBackPic_Quilava:: @ 8C9C440 + .incbin "graphics/pokemon/back_pics/quilava_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Quilava:: @ 8C9C7B4 + .incbin "graphics/pokemon/palettes/quilava_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Quilava:: @ 8C9C7DC + .incbin "graphics/pokemon/icons/quilava_icon.4bpp" + + .align 2 +gMonFootprint_Quilava:: @ 8C9CBDC + .incbin "graphics/pokemon/footprints/quilava_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Typhlosion:: @ 8C9CBFC + .incbin "graphics/pokemon/front_pics/typhlosion_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Typhlosion:: @ 8C9D024 + .incbin "graphics/pokemon/palettes/typhlosion_palette.gbapal.lz" + + .align 2 +gMonBackPic_Typhlosion:: @ 8C9D04C + .incbin "graphics/pokemon/back_pics/typhlosion_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Typhlosion:: @ 8C9D450 + .incbin "graphics/pokemon/palettes/typhlosion_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Typhlosion:: @ 8C9D478 + .incbin "graphics/pokemon/icons/typhlosion_icon.4bpp" + + .align 2 +gMonFootprint_Typhlosion:: @ 8C9D878 + .incbin "graphics/pokemon/footprints/typhlosion_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Totodile:: @ 8C9D898 + .incbin "graphics/pokemon/front_pics/totodile_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Totodile:: @ 8C9DB3C + .incbin "graphics/pokemon/palettes/totodile_palette.gbapal.lz" + + .align 2 +gMonBackPic_Totodile:: @ 8C9DB64 + .incbin "graphics/pokemon/back_pics/totodile_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Totodile:: @ 8C9DE44 + .incbin "graphics/pokemon/palettes/totodile_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Totodile:: @ 8C9DE6C + .incbin "graphics/pokemon/icons/totodile_icon.4bpp" + + .align 2 +gMonFootprint_Totodile:: @ 8C9E26C + .incbin "graphics/pokemon/footprints/totodile_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Croconaw:: @ 8C9E28C + .incbin "graphics/pokemon/front_pics/croconaw_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Croconaw:: @ 8C9E5F4 + .incbin "graphics/pokemon/palettes/croconaw_palette.gbapal.lz" + + .align 2 +gMonBackPic_Croconaw:: @ 8C9E61C + .incbin "graphics/pokemon/back_pics/croconaw_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Croconaw:: @ 8C9E96C + .incbin "graphics/pokemon/palettes/croconaw_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Croconaw:: @ 8C9E994 + .incbin "graphics/pokemon/icons/croconaw_icon.4bpp" + + .align 2 +gMonFootprint_Croconaw:: @ 8C9ED94 + .incbin "graphics/pokemon/footprints/croconaw_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Feraligatr:: @ 8C9EDB4 + .incbin "graphics/pokemon/front_pics/feraligatr_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Feraligatr:: @ 8C9F320 + .incbin "graphics/pokemon/palettes/feraligatr_palette.gbapal.lz" + + .align 2 +gMonBackPic_Feraligatr:: @ 8C9F348 + .incbin "graphics/pokemon/back_pics/feraligatr_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Feraligatr:: @ 8C9F814 + .incbin "graphics/pokemon/palettes/feraligatr_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Feraligatr:: @ 8C9F83C + .incbin "graphics/pokemon/icons/feraligatr_icon.4bpp" + + .align 2 +gMonFootprint_Feraligatr:: @ 8C9FC3C + .incbin "graphics/pokemon/footprints/feraligatr_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Sentret:: @ 8C9FC5C + .incbin "graphics/pokemon/front_pics/sentret_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Sentret:: @ 8C9FF38 + .incbin "graphics/pokemon/palettes/sentret_palette.gbapal.lz" + + .align 2 +gMonBackPic_Sentret:: @ 8C9FF60 + .incbin "graphics/pokemon/back_pics/sentret_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Sentret:: @ 8CA0204 + .incbin "graphics/pokemon/palettes/sentret_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Sentret:: @ 8CA022C + .incbin "graphics/pokemon/icons/sentret_icon.4bpp" + + .align 2 +gMonFootprint_Sentret:: @ 8CA062C + .incbin "graphics/pokemon/footprints/sentret_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Furret:: @ 8CA064C + .incbin "graphics/pokemon/front_pics/furret_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Furret:: @ 8CA0980 + .incbin "graphics/pokemon/palettes/furret_palette.gbapal.lz" + + .align 2 +gMonBackPic_Furret:: @ 8CA09A8 + .incbin "graphics/pokemon/back_pics/furret_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Furret:: @ 8CA0CD0 + .incbin "graphics/pokemon/palettes/furret_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Furret:: @ 8CA0CF8 + .incbin "graphics/pokemon/icons/furret_icon.4bpp" + + .align 2 +gMonFootprint_Furret:: @ 8CA10F8 + .incbin "graphics/pokemon/footprints/furret_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Hoothoot:: @ 8CA1118 + .incbin "graphics/pokemon/front_pics/hoothoot_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Hoothoot:: @ 8CA139C + .incbin "graphics/pokemon/palettes/hoothoot_palette.gbapal.lz" + + .align 2 +gMonBackPic_Hoothoot:: @ 8CA13C4 + .incbin "graphics/pokemon/back_pics/hoothoot_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Hoothoot:: @ 8CA16CC + .incbin "graphics/pokemon/palettes/hoothoot_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Hoothoot:: @ 8CA16F4 + .incbin "graphics/pokemon/icons/hoothoot_icon.4bpp" + + .align 2 +gMonFootprint_Hoothoot:: @ 8CA1AF4 + .incbin "graphics/pokemon/footprints/hoothoot_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Noctowl:: @ 8CA1B14 + .incbin "graphics/pokemon/front_pics/noctowl_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Noctowl:: @ 8CA1E68 + .incbin "graphics/pokemon/palettes/noctowl_palette.gbapal.lz" + + .align 2 +gMonBackPic_Noctowl:: @ 8CA1E90 + .incbin "graphics/pokemon/back_pics/noctowl_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Noctowl:: @ 8CA21EC + .incbin "graphics/pokemon/palettes/noctowl_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Noctowl:: @ 8CA2214 + .incbin "graphics/pokemon/icons/noctowl_icon.4bpp" + + .align 2 +gMonFootprint_Noctowl:: @ 8CA2614 + .incbin "graphics/pokemon/footprints/noctowl_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Ledyba:: @ 8CA2634 + .incbin "graphics/pokemon/front_pics/ledyba_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Ledyba:: @ 8CA2928 + .incbin "graphics/pokemon/palettes/ledyba_palette.gbapal.lz" + + .align 2 +gMonBackPic_Ledyba:: @ 8CA2950 + .incbin "graphics/pokemon/back_pics/ledyba_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Ledyba:: @ 8CA2C80 + .incbin "graphics/pokemon/palettes/ledyba_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Ledyba:: @ 8CA2CA8 + .incbin "graphics/pokemon/icons/ledyba_icon.4bpp" + + .align 2 +gMonFootprint_Ledyba:: @ 8CA30A8 + .incbin "graphics/pokemon/footprints/ledyba_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Ledian:: @ 8CA30C8 + .incbin "graphics/pokemon/front_pics/ledian_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Ledian:: @ 8CA3450 + .incbin "graphics/pokemon/palettes/ledian_palette.gbapal.lz" + + .align 2 +gMonBackPic_Ledian:: @ 8CA3478 + .incbin "graphics/pokemon/back_pics/ledian_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Ledian:: @ 8CA37D0 + .incbin "graphics/pokemon/palettes/ledian_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Ledian:: @ 8CA37F8 + .incbin "graphics/pokemon/icons/ledian_icon.4bpp" + + .align 2 +gMonFootprint_Ledian:: @ 8CA3BF8 + .incbin "graphics/pokemon/footprints/ledian_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Spinarak:: @ 8CA3C18 + .incbin "graphics/pokemon/front_pics/spinarak_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Spinarak:: @ 8CA3E8C + .incbin "graphics/pokemon/palettes/spinarak_palette.gbapal.lz" + + .align 2 +gMonBackPic_Spinarak:: @ 8CA3EB4 + .incbin "graphics/pokemon/back_pics/spinarak_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Spinarak:: @ 8CA4118 + .incbin "graphics/pokemon/palettes/spinarak_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Spinarak:: @ 8CA4140 + .incbin "graphics/pokemon/icons/spinarak_icon.4bpp" + + .align 2 +gMonFootprint_Spinarak:: @ 8CA4540 + .incbin "graphics/pokemon/footprints/spinarak_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Ariados:: @ 8CA4560 + .incbin "graphics/pokemon/front_pics/ariados_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Ariados:: @ 8CA4920 + .incbin "graphics/pokemon/palettes/ariados_palette.gbapal.lz" + + .align 2 +gMonBackPic_Ariados:: @ 8CA4948 + .incbin "graphics/pokemon/back_pics/ariados_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Ariados:: @ 8CA4CC0 + .incbin "graphics/pokemon/palettes/ariados_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Ariados:: @ 8CA4CE8 + .incbin "graphics/pokemon/icons/ariados_icon.4bpp" + + .align 2 +gMonFootprint_Ariados:: @ 8CA50E8 + .incbin "graphics/pokemon/footprints/ariados_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Crobat:: @ 8CA5108 + .incbin "graphics/pokemon/front_pics/crobat_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Crobat:: @ 8CA54B8 + .incbin "graphics/pokemon/palettes/crobat_palette.gbapal.lz" + + .align 2 +gMonBackPic_Crobat:: @ 8CA54E0 + .incbin "graphics/pokemon/back_pics/crobat_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Crobat:: @ 8CA57E8 + .incbin "graphics/pokemon/palettes/crobat_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Crobat:: @ 8CA5810 + .incbin "graphics/pokemon/icons/crobat_icon.4bpp" + + .align 2 +gMonFootprint_Crobat:: @ 8CA5C10 + .incbin "graphics/pokemon/footprints/crobat_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Chinchou:: @ 8CA5C30 + .incbin "graphics/pokemon/front_pics/chinchou_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Chinchou:: @ 8CA5F08 + .incbin "graphics/pokemon/palettes/chinchou_palette.gbapal.lz" + + .align 2 +gMonBackPic_Chinchou:: @ 8CA5F30 + .incbin "graphics/pokemon/back_pics/chinchou_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Chinchou:: @ 8CA6228 + .incbin "graphics/pokemon/palettes/chinchou_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Chinchou:: @ 8CA6250 + .incbin "graphics/pokemon/icons/chinchou_icon.4bpp" + + .align 2 +gMonFootprint_Chinchou:: @ 8CA6650 + .incbin "graphics/pokemon/footprints/chinchou_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Lanturn:: @ 8CA6670 + .incbin "graphics/pokemon/front_pics/lanturn_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Lanturn:: @ 8CA69E0 + .incbin "graphics/pokemon/palettes/lanturn_palette.gbapal.lz" + + .align 2 +gMonBackPic_Lanturn:: @ 8CA6A08 + .incbin "graphics/pokemon/back_pics/lanturn_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Lanturn:: @ 8CA6D08 + .incbin "graphics/pokemon/palettes/lanturn_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Lanturn:: @ 8CA6D30 + .incbin "graphics/pokemon/icons/lanturn_icon.4bpp" + + .align 2 +gMonFootprint_Lanturn:: @ 8CA7130 + .incbin "graphics/pokemon/footprints/lanturn_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Pichu:: @ 8CA7150 + .incbin "graphics/pokemon/front_pics/pichu_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Pichu:: @ 8CA736C + .incbin "graphics/pokemon/palettes/pichu_palette.gbapal.lz" + + .align 2 +gMonBackPic_Pichu:: @ 8CA7394 + .incbin "graphics/pokemon/back_pics/pichu_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Pichu:: @ 8CA75F0 + .incbin "graphics/pokemon/palettes/pichu_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Pichu:: @ 8CA7618 + .incbin "graphics/pokemon/icons/pichu_icon.4bpp" + + .align 2 +gMonFootprint_Pichu:: @ 8CA7A18 + .incbin "graphics/pokemon/footprints/pichu_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Cleffa:: @ 8CA7A38 + .incbin "graphics/pokemon/front_pics/cleffa_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Cleffa:: @ 8CA7C18 + .incbin "graphics/pokemon/palettes/cleffa_palette.gbapal.lz" + + .align 2 +gMonBackPic_Cleffa:: @ 8CA7C40 + .incbin "graphics/pokemon/back_pics/cleffa_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Cleffa:: @ 8CA7E7C + .incbin "graphics/pokemon/palettes/cleffa_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Cleffa:: @ 8CA7EA4 + .incbin "graphics/pokemon/icons/cleffa_icon.4bpp" + + .align 2 +gMonFootprint_Cleffa:: @ 8CA82A4 + .incbin "graphics/pokemon/footprints/cleffa_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Igglybuff:: @ 8CA82C4 + .incbin "graphics/pokemon/front_pics/igglybuff_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Igglybuff:: @ 8CA84AC + .incbin "graphics/pokemon/palettes/igglybuff_palette.gbapal.lz" + + .align 2 +gMonBackPic_Igglybuff:: @ 8CA84D4 + .incbin "graphics/pokemon/back_pics/igglybuff_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Igglybuff:: @ 8CA8710 + .incbin "graphics/pokemon/palettes/igglybuff_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Igglybuff:: @ 8CA8738 + .incbin "graphics/pokemon/icons/igglybuff_icon.4bpp" + + .align 2 +gMonFootprint_Igglybuff:: @ 8CA8B38 + .incbin "graphics/pokemon/footprints/igglybuff_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Togepi:: @ 8CA8B58 + .incbin "graphics/pokemon/front_pics/togepi_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Togepi:: @ 8CA8D2C + .incbin "graphics/pokemon/palettes/togepi_palette.gbapal.lz" + + .align 2 +gMonBackPic_Togepi:: @ 8CA8D54 + .incbin "graphics/pokemon/back_pics/togepi_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Togepi:: @ 8CA8FC8 + .incbin "graphics/pokemon/palettes/togepi_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Togepi:: @ 8CA8FF0 + .incbin "graphics/pokemon/icons/togepi_icon.4bpp" + + .align 2 +gMonFootprint_Togepi:: @ 8CA93F0 + .incbin "graphics/pokemon/footprints/togepi_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Togetic:: @ 8CA9410 + .incbin "graphics/pokemon/front_pics/togetic_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Togetic:: @ 8CA9684 + .incbin "graphics/pokemon/palettes/togetic_palette.gbapal.lz" + + .align 2 +gMonBackPic_Togetic:: @ 8CA96AC + .incbin "graphics/pokemon/back_pics/togetic_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Togetic:: @ 8CA99D8 + .incbin "graphics/pokemon/palettes/togetic_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Togetic:: @ 8CA9A00 + .incbin "graphics/pokemon/icons/togetic_icon.4bpp" + + .align 2 +gMonFootprint_Togetic:: @ 8CA9E00 + .incbin "graphics/pokemon/footprints/togetic_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Natu:: @ 8CA9E20 + .incbin "graphics/pokemon/front_pics/natu_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Natu:: @ 8CA9FEC + .incbin "graphics/pokemon/palettes/natu_palette.gbapal.lz" + + .align 2 +gMonBackPic_Natu:: @ 8CAA014 + .incbin "graphics/pokemon/back_pics/natu_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Natu:: @ 8CAA228 + .incbin "graphics/pokemon/palettes/natu_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Natu:: @ 8CAA250 + .incbin "graphics/pokemon/icons/natu_icon.4bpp" + + .align 2 +gMonFootprint_Natu:: @ 8CAA650 + .incbin "graphics/pokemon/footprints/natu_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Xatu:: @ 8CAA670 + .incbin "graphics/pokemon/front_pics/xatu_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Xatu:: @ 8CAA94C + .incbin "graphics/pokemon/palettes/xatu_palette.gbapal.lz" + + .align 2 +gMonBackPic_Xatu:: @ 8CAA974 + .incbin "graphics/pokemon/back_pics/xatu_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Xatu:: @ 8CAACEC + .incbin "graphics/pokemon/palettes/xatu_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Xatu:: @ 8CAAD14 + .incbin "graphics/pokemon/icons/xatu_icon.4bpp" + + .align 2 +gMonFootprint_Xatu:: @ 8CAB114 + .incbin "graphics/pokemon/footprints/xatu_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Mareep:: @ 8CAB134 + .incbin "graphics/pokemon/front_pics/mareep_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Mareep:: @ 8CAB3E8 + .incbin "graphics/pokemon/palettes/mareep_palette.gbapal.lz" + + .align 2 +gMonBackPic_Mareep:: @ 8CAB410 + .incbin "graphics/pokemon/back_pics/mareep_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Mareep:: @ 8CAB704 + .incbin "graphics/pokemon/palettes/mareep_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Mareep:: @ 8CAB72C + .incbin "graphics/pokemon/icons/mareep_icon.4bpp" + + .align 2 +gMonFootprint_Mareep:: @ 8CABB2C + .incbin "graphics/pokemon/footprints/mareep_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Flaaffy:: @ 8CABB4C + .incbin "graphics/pokemon/front_pics/flaaffy_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Flaaffy:: @ 8CABE4C + .incbin "graphics/pokemon/palettes/flaaffy_palette.gbapal.lz" + + .align 2 +gMonBackPic_Flaaffy:: @ 8CABE74 + .incbin "graphics/pokemon/back_pics/flaaffy_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Flaaffy:: @ 8CAC190 + .incbin "graphics/pokemon/palettes/flaaffy_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Flaaffy:: @ 8CAC1B8 + .incbin "graphics/pokemon/icons/flaaffy_icon.4bpp" + + .align 2 +gMonFootprint_Flaaffy:: @ 8CAC5B8 + .incbin "graphics/pokemon/footprints/flaaffy_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Ampharos:: @ 8CAC5D8 + .incbin "graphics/pokemon/front_pics/ampharos_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Ampharos:: @ 8CAC934 + .incbin "graphics/pokemon/palettes/ampharos_palette.gbapal.lz" + + .align 2 +gMonBackPic_Ampharos:: @ 8CAC95C + .incbin "graphics/pokemon/back_pics/ampharos_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Ampharos:: @ 8CACCD4 + .incbin "graphics/pokemon/palettes/ampharos_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Ampharos:: @ 8CACCFC + .incbin "graphics/pokemon/icons/ampharos_icon.4bpp" + + .align 2 +gMonFootprint_Ampharos:: @ 8CAD0FC + .incbin "graphics/pokemon/footprints/ampharos_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Bellossom:: @ 8CAD11C + .incbin "graphics/pokemon/front_pics/bellossom_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Bellossom:: @ 8CAD38C + .incbin "graphics/pokemon/palettes/bellossom_palette.gbapal.lz" + + .align 2 +gMonBackPic_Bellossom:: @ 8CAD3B4 + .incbin "graphics/pokemon/back_pics/bellossom_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Bellossom:: @ 8CAD6D8 + .incbin "graphics/pokemon/palettes/bellossom_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Bellossom:: @ 8CAD700 + .incbin "graphics/pokemon/icons/bellossom_icon.4bpp" + + .align 2 +gMonFootprint_Bellossom:: @ 8CADB00 + .incbin "graphics/pokemon/footprints/bellossom_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Marill:: @ 8CADB20 + .incbin "graphics/pokemon/front_pics/marill_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Marill:: @ 8CADDE4 + .incbin "graphics/pokemon/palettes/marill_palette.gbapal.lz" + + .align 2 +gMonBackPic_Marill:: @ 8CADE0C + .incbin "graphics/pokemon/back_pics/marill_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Marill:: @ 8CAE0B8 + .incbin "graphics/pokemon/palettes/marill_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Marill:: @ 8CAE0E0 + .incbin "graphics/pokemon/icons/marill_icon.4bpp" + + .align 2 +gMonFootprint_Marill:: @ 8CAE4E0 + .incbin "graphics/pokemon/footprints/marill_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Azumarill:: @ 8CAE500 + .incbin "graphics/pokemon/front_pics/azumarill_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Azumarill:: @ 8CAE800 + .incbin "graphics/pokemon/palettes/azumarill_palette.gbapal.lz" + + .align 2 +gMonBackPic_Azumarill:: @ 8CAE828 + .incbin "graphics/pokemon/back_pics/azumarill_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Azumarill:: @ 8CAEAE4 + .incbin "graphics/pokemon/palettes/azumarill_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Azumarill:: @ 8CAEB0C + .incbin "graphics/pokemon/icons/azumarill_icon.4bpp" + + .align 2 +gMonFootprint_Azumarill:: @ 8CAEF0C + .incbin "graphics/pokemon/footprints/azumarill_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Sudowoodo:: @ 8CAEF2C + .incbin "graphics/pokemon/front_pics/sudowoodo_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Sudowoodo:: @ 8CAF244 + .incbin "graphics/pokemon/palettes/sudowoodo_palette.gbapal.lz" + + .align 2 +gMonBackPic_Sudowoodo:: @ 8CAF26C + .incbin "graphics/pokemon/back_pics/sudowoodo_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Sudowoodo:: @ 8CAF5C8 + .incbin "graphics/pokemon/palettes/sudowoodo_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Sudowoodo:: @ 8CAF5F0 + .incbin "graphics/pokemon/icons/sudowoodo_icon.4bpp" + + .align 2 +gMonFootprint_Sudowoodo:: @ 8CAF9F0 + .incbin "graphics/pokemon/footprints/sudowoodo_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Politoed:: @ 8CAFA10 + .incbin "graphics/pokemon/front_pics/politoed_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Politoed:: @ 8CAFD4C + .incbin "graphics/pokemon/palettes/politoed_palette.gbapal.lz" + + .align 2 +gMonBackPic_Politoed:: @ 8CAFD74 + .incbin "graphics/pokemon/back_pics/politoed_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Politoed:: @ 8CB0030 + .incbin "graphics/pokemon/palettes/politoed_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Politoed:: @ 8CB0058 + .incbin "graphics/pokemon/icons/politoed_icon.4bpp" + + .align 2 +gMonFootprint_Politoed:: @ 8CB0458 + .incbin "graphics/pokemon/footprints/politoed_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Hoppip:: @ 8CB0478 + .incbin "graphics/pokemon/front_pics/hoppip_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Hoppip:: @ 8CB072C + .incbin "graphics/pokemon/palettes/hoppip_palette.gbapal.lz" + + .align 2 +gMonBackPic_Hoppip:: @ 8CB0754 + .incbin "graphics/pokemon/back_pics/hoppip_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Hoppip:: @ 8CB0A34 + .incbin "graphics/pokemon/palettes/hoppip_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Hoppip:: @ 8CB0A5C + .incbin "graphics/pokemon/icons/hoppip_icon.4bpp" + + .align 2 +gMonFootprint_Hoppip:: @ 8CB0E5C + .incbin "graphics/pokemon/footprints/hoppip_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Skiploom:: @ 8CB0E7C + .incbin "graphics/pokemon/front_pics/skiploom_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Skiploom:: @ 8CB1104 + .incbin "graphics/pokemon/palettes/skiploom_palette.gbapal.lz" + + .align 2 +gMonBackPic_Skiploom:: @ 8CB112C + .incbin "graphics/pokemon/back_pics/skiploom_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Skiploom:: @ 8CB140C + .incbin "graphics/pokemon/palettes/skiploom_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Skiploom:: @ 8CB1434 + .incbin "graphics/pokemon/icons/skiploom_icon.4bpp" + + .align 2 +gMonFootprint_Skiploom:: @ 8CB1834 + .incbin "graphics/pokemon/footprints/skiploom_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Jumpluff:: @ 8CB1854 + .incbin "graphics/pokemon/front_pics/jumpluff_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Jumpluff:: @ 8CB1BC0 + .incbin "graphics/pokemon/palettes/jumpluff_palette.gbapal.lz" + + .align 2 +gMonBackPic_Jumpluff:: @ 8CB1BE8 + .incbin "graphics/pokemon/back_pics/jumpluff_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Jumpluff:: @ 8CB1FE0 + .incbin "graphics/pokemon/palettes/jumpluff_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Jumpluff:: @ 8CB2008 + .incbin "graphics/pokemon/icons/jumpluff_icon.4bpp" + + .align 2 +gMonFootprint_Jumpluff:: @ 8CB2408 + .incbin "graphics/pokemon/footprints/jumpluff_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Aipom:: @ 8CB2428 + .incbin "graphics/pokemon/front_pics/aipom_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Aipom:: @ 8CB2724 + .incbin "graphics/pokemon/palettes/aipom_palette.gbapal.lz" + + .align 2 +gMonBackPic_Aipom:: @ 8CB274C + .incbin "graphics/pokemon/back_pics/aipom_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Aipom:: @ 8CB2A40 + .incbin "graphics/pokemon/palettes/aipom_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Aipom:: @ 8CB2A68 + .incbin "graphics/pokemon/icons/aipom_icon.4bpp" + + .align 2 +gMonFootprint_Aipom:: @ 8CB2E68 + .incbin "graphics/pokemon/footprints/aipom_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Sunkern:: @ 8CB2E88 + .incbin "graphics/pokemon/front_pics/sunkern_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Sunkern:: @ 8CB30C0 + .incbin "graphics/pokemon/palettes/sunkern_palette.gbapal.lz" + + .align 2 +gMonBackPic_Sunkern:: @ 8CB30E8 + .incbin "graphics/pokemon/back_pics/sunkern_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Sunkern:: @ 8CB33AC + .incbin "graphics/pokemon/palettes/sunkern_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Sunkern:: @ 8CB33D4 + .incbin "graphics/pokemon/icons/sunkern_icon.4bpp" + + .align 2 +gMonFootprint_Sunkern:: @ 8CB37D4 + .incbin "graphics/pokemon/footprints/sunkern_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Sunflora:: @ 8CB37F4 + .incbin "graphics/pokemon/front_pics/sunflora_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Sunflora:: @ 8CB3B4C + .incbin "graphics/pokemon/palettes/sunflora_palette.gbapal.lz" + + .align 2 +gMonBackPic_Sunflora:: @ 8CB3B74 + .incbin "graphics/pokemon/back_pics/sunflora_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Sunflora:: @ 8CB3F14 + .incbin "graphics/pokemon/palettes/sunflora_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Sunflora:: @ 8CB3F3C + .incbin "graphics/pokemon/icons/sunflora_icon.4bpp" + + .align 2 +gMonFootprint_Sunflora:: @ 8CB433C + .incbin "graphics/pokemon/footprints/sunflora_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Yanma:: @ 8CB435C + .incbin "graphics/pokemon/front_pics/yanma_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Yanma:: @ 8CB46E0 + .incbin "graphics/pokemon/palettes/yanma_palette.gbapal.lz" + + .align 2 +gMonBackPic_Yanma:: @ 8CB4708 + .incbin "graphics/pokemon/back_pics/yanma_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Yanma:: @ 8CB4ABC + .incbin "graphics/pokemon/palettes/yanma_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Yanma:: @ 8CB4AE4 + .incbin "graphics/pokemon/icons/yanma_icon.4bpp" + + .align 2 +gMonFootprint_Yanma:: @ 8CB4EE4 + .incbin "graphics/pokemon/footprints/yanma_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Wooper:: @ 8CB4F04 + .incbin "graphics/pokemon/front_pics/wooper_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Wooper:: @ 8CB5144 + .incbin "graphics/pokemon/palettes/wooper_palette.gbapal.lz" + + .align 2 +gMonBackPic_Wooper:: @ 8CB516C + .incbin "graphics/pokemon/back_pics/wooper_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Wooper:: @ 8CB53F8 + .incbin "graphics/pokemon/palettes/wooper_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Wooper:: @ 8CB5420 + .incbin "graphics/pokemon/icons/wooper_icon.4bpp" + + .align 2 +gMonFootprint_Wooper:: @ 8CB5820 + .incbin "graphics/pokemon/footprints/wooper_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Quagsire:: @ 8CB5840 + .incbin "graphics/pokemon/front_pics/quagsire_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Quagsire:: @ 8CB5BB4 + .incbin "graphics/pokemon/palettes/quagsire_palette.gbapal.lz" + + .align 2 +gMonBackPic_Quagsire:: @ 8CB5BDC + .incbin "graphics/pokemon/back_pics/quagsire_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Quagsire:: @ 8CB5ED8 + .incbin "graphics/pokemon/palettes/quagsire_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Quagsire:: @ 8CB5F00 + .incbin "graphics/pokemon/icons/quagsire_icon.4bpp" + + .align 2 +gMonFootprint_Quagsire:: @ 8CB6300 + .incbin "graphics/pokemon/footprints/quagsire_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Espeon:: @ 8CB6320 + .incbin "graphics/pokemon/front_pics/espeon_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Espeon:: @ 8CB6660 + .incbin "graphics/pokemon/palettes/espeon_palette.gbapal.lz" + + .align 2 +gMonBackPic_Espeon:: @ 8CB6684 + .incbin "graphics/pokemon/back_pics/espeon_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Espeon:: @ 8CB6960 + .incbin "graphics/pokemon/palettes/espeon_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Espeon:: @ 8CB6984 + .incbin "graphics/pokemon/icons/espeon_icon.4bpp" + + .align 2 +gMonFootprint_Espeon:: @ 8CB6D84 + .incbin "graphics/pokemon/footprints/espeon_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Umbreon:: @ 8CB6DA4 + .incbin "graphics/pokemon/front_pics/umbreon_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Umbreon:: @ 8CB70B8 + .incbin "graphics/pokemon/palettes/umbreon_palette.gbapal.lz" + + .align 2 +gMonBackPic_Umbreon:: @ 8CB70E0 + .incbin "graphics/pokemon/back_pics/umbreon_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Umbreon:: @ 8CB73F4 + .incbin "graphics/pokemon/palettes/umbreon_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Umbreon:: @ 8CB741C + .incbin "graphics/pokemon/icons/umbreon_icon.4bpp" + + .align 2 +gMonFootprint_Umbreon:: @ 8CB781C + .incbin "graphics/pokemon/footprints/umbreon_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Murkrow:: @ 8CB783C + .incbin "graphics/pokemon/front_pics/murkrow_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Murkrow:: @ 8CB7B1C + .incbin "graphics/pokemon/palettes/murkrow_palette.gbapal.lz" + + .align 2 +gMonBackPic_Murkrow:: @ 8CB7B44 + .incbin "graphics/pokemon/back_pics/murkrow_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Murkrow:: @ 8CB7E5C + .incbin "graphics/pokemon/palettes/murkrow_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Murkrow:: @ 8CB7E84 + .incbin "graphics/pokemon/icons/murkrow_icon.4bpp" + + .align 2 +gMonFootprint_Murkrow:: @ 8CB8284 + .incbin "graphics/pokemon/footprints/murkrow_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Slowking:: @ 8CB82A4 + .incbin "graphics/pokemon/front_pics/slowking_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Slowking:: @ 8CB8658 + .incbin "graphics/pokemon/palettes/slowking_palette.gbapal.lz" + + .align 2 +gMonBackPic_Slowking:: @ 8CB8680 + .incbin "graphics/pokemon/back_pics/slowking_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Slowking:: @ 8CB8A0C + .incbin "graphics/pokemon/palettes/slowking_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Slowking:: @ 8CB8A34 + .incbin "graphics/pokemon/icons/slowking_icon.4bpp" + + .align 2 +gMonFootprint_Slowking:: @ 8CB8E34 + .incbin "graphics/pokemon/footprints/slowking_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Misdreavus:: @ 8CB8E54 + .incbin "graphics/pokemon/front_pics/misdreavus_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Misdreavus:: @ 8CB9114 + .incbin "graphics/pokemon/palettes/misdreavus_palette.gbapal.lz" + + .align 2 +gMonBackPic_Misdreavus:: @ 8CB913C + .incbin "graphics/pokemon/back_pics/misdreavus_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Misdreavus:: @ 8CB9460 + .incbin "graphics/pokemon/palettes/misdreavus_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Misdreavus:: @ 8CB9488 + .incbin "graphics/pokemon/icons/misdreavus_icon.4bpp" + + .align 2 +gMonFootprint_Misdreavus:: @ 8CB9888 + .incbin "graphics/pokemon/footprints/misdreavus_footprint.1bpp" + + .align 2 +gMonStillFrontPic_UnownA:: @ 8CB98A8 + .incbin "graphics/pokemon/front_pics/unown_a_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Unown:: @ 8CB9A7C + .incbin "graphics/pokemon/palettes/unown_palette.gbapal.lz" + + .align 2 +gMonBackPic_UnownA:: @ 8CB9A9C + .incbin "graphics/pokemon/back_pics/unown_a_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Unown:: @ 8CB9C9C + .incbin "graphics/pokemon/palettes/unown_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_UnownA:: @ 8CB9CBC + .incbin "graphics/pokemon/icons/unown_a_icon.4bpp" + + .align 2 +gMonFootprint_Unown:: @ 8CBA0BC + .incbin "graphics/pokemon/footprints/unown_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Wobbuffet:: @ 8CBA0DC + .incbin "graphics/pokemon/front_pics/wobbuffet_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Wobbuffet:: @ 8CBA42C + .incbin "graphics/pokemon/palettes/wobbuffet_palette.gbapal.lz" + + .align 2 +gMonBackPic_Wobbuffet:: @ 8CBA454 + .incbin "graphics/pokemon/back_pics/wobbuffet_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Wobbuffet:: @ 8CBA698 + .incbin "graphics/pokemon/palettes/wobbuffet_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Wobbuffet:: @ 8CBA6C0 + .incbin "graphics/pokemon/icons/wobbuffet_icon.4bpp" + + .align 2 +gMonFootprint_Wobbuffet:: @ 8CBAAC0 + .incbin "graphics/pokemon/footprints/wobbuffet_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Girafarig:: @ 8CBAAE0 + .incbin "graphics/pokemon/front_pics/girafarig_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Girafarig:: @ 8CBAEE4 + .incbin "graphics/pokemon/palettes/girafarig_palette.gbapal.lz" + + .align 2 +gMonBackPic_Girafarig:: @ 8CBAF0C + .incbin "graphics/pokemon/back_pics/girafarig_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Girafarig:: @ 8CBB2B8 + .incbin "graphics/pokemon/palettes/girafarig_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Girafarig:: @ 8CBB2E0 + .incbin "graphics/pokemon/icons/girafarig_icon.4bpp" + + .align 2 +gMonFootprint_Girafarig:: @ 8CBB6E0 + .incbin "graphics/pokemon/footprints/girafarig_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Pineco:: @ 8CBB700 + .incbin "graphics/pokemon/front_pics/pineco_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Pineco:: @ 8CBBA40 + .incbin "graphics/pokemon/palettes/pineco_palette.gbapal.lz" + + .align 2 +gMonBackPic_Pineco:: @ 8CBBA64 + .incbin "graphics/pokemon/back_pics/pineco_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Pineco:: @ 8CBBD3C + .incbin "graphics/pokemon/palettes/pineco_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Pineco:: @ 8CBBD60 + .incbin "graphics/pokemon/icons/pineco_icon.4bpp" + + .align 2 +gMonFootprint_Pineco:: @ 8CBC160 + .incbin "graphics/pokemon/footprints/pineco_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Forretress:: @ 8CBC180 + .incbin "graphics/pokemon/front_pics/forretress_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Forretress:: @ 8CBC59C + .incbin "graphics/pokemon/palettes/forretress_palette.gbapal.lz" + + .align 2 +gMonBackPic_Forretress:: @ 8CBC5C4 + .incbin "graphics/pokemon/back_pics/forretress_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Forretress:: @ 8CBC884 + .incbin "graphics/pokemon/palettes/forretress_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Forretress:: @ 8CBC8AC + .incbin "graphics/pokemon/icons/forretress_icon.4bpp" + + .align 2 +gMonFootprint_Forretress:: @ 8CBCCAC + .incbin "graphics/pokemon/footprints/forretress_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Dunsparce:: @ 8CBCCCC + .incbin "graphics/pokemon/front_pics/dunsparce_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Dunsparce:: @ 8CBCFDC + .incbin "graphics/pokemon/palettes/dunsparce_palette.gbapal.lz" + + .align 2 +gMonBackPic_Dunsparce:: @ 8CBD004 + .incbin "graphics/pokemon/back_pics/dunsparce_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Dunsparce:: @ 8CBD300 + .incbin "graphics/pokemon/palettes/dunsparce_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Dunsparce:: @ 8CBD328 + .incbin "graphics/pokemon/icons/dunsparce_icon.4bpp" + + .align 2 +gMonFootprint_Dunsparce:: @ 8CBD728 + .incbin "graphics/pokemon/footprints/dunsparce_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Gligar:: @ 8CBD748 + .incbin "graphics/pokemon/front_pics/gligar_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Gligar:: @ 8CBDB70 + .incbin "graphics/pokemon/palettes/gligar_palette.gbapal.lz" + + .align 2 +gMonBackPic_Gligar:: @ 8CBDB98 + .incbin "graphics/pokemon/back_pics/gligar_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Gligar:: @ 8CBDF70 + .incbin "graphics/pokemon/palettes/gligar_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Gligar:: @ 8CBDF98 + .incbin "graphics/pokemon/icons/gligar_icon.4bpp" + + .align 2 +gMonFootprint_Gligar:: @ 8CBE398 + .incbin "graphics/pokemon/footprints/gligar_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Steelix:: @ 8CBE3B8 + .incbin "graphics/pokemon/front_pics/steelix_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Steelix:: @ 8CBE880 + .incbin "graphics/pokemon/palettes/steelix_palette.gbapal.lz" + + .align 2 +gMonBackPic_Steelix:: @ 8CBE8A4 + .incbin "graphics/pokemon/back_pics/steelix_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Steelix:: @ 8CBECB0 + .incbin "graphics/pokemon/palettes/steelix_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Steelix:: @ 8CBECD4 + .incbin "graphics/pokemon/icons/steelix_icon.4bpp" + + .align 2 +gMonFootprint_Steelix:: @ 8CBF0D4 + .incbin "graphics/pokemon/footprints/steelix_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Snubbull:: @ 8CBF0F4 + .incbin "graphics/pokemon/front_pics/snubbull_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Snubbull:: @ 8CBF3C8 + .incbin "graphics/pokemon/palettes/snubbull_palette.gbapal.lz" + + .align 2 +gMonBackPic_Snubbull:: @ 8CBF3F0 + .incbin "graphics/pokemon/back_pics/snubbull_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Snubbull:: @ 8CBF718 + .incbin "graphics/pokemon/palettes/snubbull_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Snubbull:: @ 8CBF740 + .incbin "graphics/pokemon/icons/snubbull_icon.4bpp" + + .align 2 +gMonFootprint_Snubbull:: @ 8CBFB40 + .incbin "graphics/pokemon/footprints/snubbull_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Granbull:: @ 8CBFB60 + .incbin "graphics/pokemon/front_pics/granbull_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Granbull:: @ 8CBFEEC + .incbin "graphics/pokemon/palettes/granbull_palette.gbapal.lz" + + .align 2 +gMonBackPic_Granbull:: @ 8CBFF14 + .incbin "graphics/pokemon/back_pics/granbull_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Granbull:: @ 8CC0238 + .incbin "graphics/pokemon/palettes/granbull_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Granbull:: @ 8CC0260 + .incbin "graphics/pokemon/icons/granbull_icon.4bpp" + + .align 2 +gMonFootprint_Granbull:: @ 8CC0660 + .incbin "graphics/pokemon/footprints/granbull_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Qwilfish:: @ 8CC0680 + .incbin "graphics/pokemon/front_pics/qwilfish_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Qwilfish:: @ 8CC0940 + .incbin "graphics/pokemon/palettes/qwilfish_palette.gbapal.lz" + + .align 2 +gMonBackPic_Qwilfish:: @ 8CC0968 + .incbin "graphics/pokemon/back_pics/qwilfish_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Qwilfish:: @ 8CC0C48 + .incbin "graphics/pokemon/palettes/qwilfish_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Qwilfish:: @ 8CC0C70 + .incbin "graphics/pokemon/icons/qwilfish_icon.4bpp" + + .align 2 +gMonFootprint_Qwilfish:: @ 8CC1070 + .incbin "graphics/pokemon/footprints/qwilfish_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Scizor:: @ 8CC1090 + .incbin "graphics/pokemon/front_pics/scizor_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Scizor:: @ 8CC1578 + .incbin "graphics/pokemon/palettes/scizor_palette.gbapal.lz" + + .align 2 +gMonBackPic_Scizor:: @ 8CC15A0 + .incbin "graphics/pokemon/back_pics/scizor_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Scizor:: @ 8CC1920 + .incbin "graphics/pokemon/palettes/scizor_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Scizor:: @ 8CC1948 + .incbin "graphics/pokemon/icons/scizor_icon.4bpp" + + .align 2 +gMonFootprint_Scizor:: @ 8CC1D48 + .incbin "graphics/pokemon/footprints/scizor_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Shuckle:: @ 8CC1D68 + .incbin "graphics/pokemon/front_pics/shuckle_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Shuckle:: @ 8CC2030 + .incbin "graphics/pokemon/palettes/shuckle_palette.gbapal.lz" + + .align 2 +gMonBackPic_Shuckle:: @ 8CC2058 + .incbin "graphics/pokemon/back_pics/shuckle_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Shuckle:: @ 8CC22B0 + .incbin "graphics/pokemon/palettes/shuckle_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Shuckle:: @ 8CC22D8 + .incbin "graphics/pokemon/icons/shuckle_icon.4bpp" + + .align 2 +gMonFootprint_Shuckle:: @ 8CC26D8 + .incbin "graphics/pokemon/footprints/shuckle_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Heracross:: @ 8CC26F8 + .incbin "graphics/pokemon/front_pics/heracross_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Heracross:: @ 8CC2AE8 + .incbin "graphics/pokemon/palettes/heracross_palette.gbapal.lz" + + .align 2 +gMonBackPic_Heracross:: @ 8CC2B10 + .incbin "graphics/pokemon/back_pics/heracross_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Heracross:: @ 8CC2E80 + .incbin "graphics/pokemon/palettes/heracross_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Heracross:: @ 8CC2EA8 + .incbin "graphics/pokemon/icons/heracross_icon.4bpp" + + .align 2 +gMonFootprint_Heracross:: @ 8CC32A8 + .incbin "graphics/pokemon/footprints/heracross_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Sneasel:: @ 8CC32C8 + .incbin "graphics/pokemon/front_pics/sneasel_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Sneasel:: @ 8CC360C + .incbin "graphics/pokemon/palettes/sneasel_palette.gbapal.lz" + + .align 2 +gMonBackPic_Sneasel:: @ 8CC3634 + .incbin "graphics/pokemon/back_pics/sneasel_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Sneasel:: @ 8CC3958 + .incbin "graphics/pokemon/palettes/sneasel_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Sneasel:: @ 8CC3980 + .incbin "graphics/pokemon/icons/sneasel_icon.4bpp" + + .align 2 +gMonFootprint_Sneasel:: @ 8CC3D80 + .incbin "graphics/pokemon/footprints/sneasel_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Teddiursa:: @ 8CC3DA0 + .incbin "graphics/pokemon/front_pics/teddiursa_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Teddiursa:: @ 8CC400C + .incbin "graphics/pokemon/palettes/teddiursa_palette.gbapal.lz" + + .align 2 +gMonBackPic_Teddiursa:: @ 8CC4034 + .incbin "graphics/pokemon/back_pics/teddiursa_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Teddiursa:: @ 8CC42AC + .incbin "graphics/pokemon/palettes/teddiursa_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Teddiursa:: @ 8CC42D4 + .incbin "graphics/pokemon/icons/teddiursa_icon.4bpp" + + .align 2 +gMonFootprint_Teddiursa:: @ 8CC46D4 + .incbin "graphics/pokemon/footprints/teddiursa_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Ursaring:: @ 8CC46F4 + .incbin "graphics/pokemon/front_pics/ursaring_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Ursaring:: @ 8CC4B2C + .incbin "graphics/pokemon/palettes/ursaring_palette.gbapal.lz" + + .align 2 +gMonBackPic_Ursaring:: @ 8CC4B54 + .incbin "graphics/pokemon/back_pics/ursaring_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Ursaring:: @ 8CC4EDC + .incbin "graphics/pokemon/palettes/ursaring_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Ursaring:: @ 8CC4F04 + .incbin "graphics/pokemon/icons/ursaring_icon.4bpp" + + .align 2 +gMonFootprint_Ursaring:: @ 8CC5304 + .incbin "graphics/pokemon/footprints/ursaring_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Slugma:: @ 8CC5324 + .incbin "graphics/pokemon/front_pics/slugma_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Slugma:: @ 8CC5598 + .incbin "graphics/pokemon/palettes/slugma_palette.gbapal.lz" + + .align 2 +gMonBackPic_Slugma:: @ 8CC55BC + .incbin "graphics/pokemon/back_pics/slugma_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Slugma:: @ 8CC58A4 + .incbin "graphics/pokemon/palettes/slugma_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Slugma:: @ 8CC58C8 + .incbin "graphics/pokemon/icons/slugma_icon.4bpp" + + .align 2 +gMonFootprint_Slugma:: @ 8CC5CC8 + .incbin "graphics/pokemon/footprints/slugma_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Magcargo:: @ 8CC5CE8 + .incbin "graphics/pokemon/front_pics/magcargo_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Magcargo:: @ 8CC6030 + .incbin "graphics/pokemon/palettes/magcargo_palette.gbapal.lz" + + .align 2 +gMonBackPic_Magcargo:: @ 8CC6058 + .incbin "graphics/pokemon/back_pics/magcargo_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Magcargo:: @ 8CC6470 + .incbin "graphics/pokemon/palettes/magcargo_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Magcargo:: @ 8CC6498 + .incbin "graphics/pokemon/icons/magcargo_icon.4bpp" + + .align 2 +gMonFootprint_Magcargo:: @ 8CC6898 + .incbin "graphics/pokemon/footprints/magcargo_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Swinub:: @ 8CC68B8 + .incbin "graphics/pokemon/front_pics/swinub_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Swinub:: @ 8CC6AB4 + .incbin "graphics/pokemon/palettes/swinub_palette.gbapal.lz" + + .align 2 +gMonBackPic_Swinub:: @ 8CC6ADC + .incbin "graphics/pokemon/back_pics/swinub_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Swinub:: @ 8CC6D18 + .incbin "graphics/pokemon/palettes/swinub_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Swinub:: @ 8CC6D40 + .incbin "graphics/pokemon/icons/swinub_icon.4bpp" + + .align 2 +gMonFootprint_Swinub:: @ 8CC7140 + .incbin "graphics/pokemon/footprints/swinub_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Piloswine:: @ 8CC7160 + .incbin "graphics/pokemon/front_pics/piloswine_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Piloswine:: @ 8CC7488 + .incbin "graphics/pokemon/palettes/piloswine_palette.gbapal.lz" + + .align 2 +gMonBackPic_Piloswine:: @ 8CC74B0 + .incbin "graphics/pokemon/back_pics/piloswine_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Piloswine:: @ 8CC76FC + .incbin "graphics/pokemon/palettes/piloswine_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Piloswine:: @ 8CC7724 + .incbin "graphics/pokemon/icons/piloswine_icon.4bpp" + + .align 2 +gMonFootprint_Piloswine:: @ 8CC7B24 + .incbin "graphics/pokemon/footprints/piloswine_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Corsola:: @ 8CC7B44 + .incbin "graphics/pokemon/front_pics/corsola_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Corsola:: @ 8CC7E2C + .incbin "graphics/pokemon/palettes/corsola_palette.gbapal.lz" + + .align 2 +gMonBackPic_Corsola:: @ 8CC7E54 + .incbin "graphics/pokemon/back_pics/corsola_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Corsola:: @ 8CC8114 + .incbin "graphics/pokemon/palettes/corsola_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Corsola:: @ 8CC813C + .incbin "graphics/pokemon/icons/corsola_icon.4bpp" + + .align 2 +gMonFootprint_Corsola:: @ 8CC853C + .incbin "graphics/pokemon/footprints/corsola_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Remoraid:: @ 8CC855C + .incbin "graphics/pokemon/front_pics/remoraid_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Remoraid:: @ 8CC87C4 + .incbin "graphics/pokemon/palettes/remoraid_palette.gbapal.lz" + + .align 2 +gMonBackPic_Remoraid:: @ 8CC87EC + .incbin "graphics/pokemon/back_pics/remoraid_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Remoraid:: @ 8CC8B00 + .incbin "graphics/pokemon/palettes/remoraid_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Remoraid:: @ 8CC8B28 + .incbin "graphics/pokemon/icons/remoraid_icon.4bpp" + + .align 2 +gMonFootprint_Remoraid:: @ 8CC8F28 + .incbin "graphics/pokemon/footprints/remoraid_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Octillery:: @ 8CC8F48 + .incbin "graphics/pokemon/front_pics/octillery_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Octillery:: @ 8CC927C + .incbin "graphics/pokemon/palettes/octillery_palette.gbapal.lz" + + .align 2 +gMonBackPic_Octillery:: @ 8CC92A4 + .incbin "graphics/pokemon/back_pics/octillery_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Octillery:: @ 8CC955C + .incbin "graphics/pokemon/palettes/octillery_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Octillery:: @ 8CC9584 + .incbin "graphics/pokemon/icons/octillery_icon.4bpp" + + .align 2 +gMonFootprint_Octillery:: @ 8CC9984 + .incbin "graphics/pokemon/footprints/octillery_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Delibird:: @ 8CC99A4 + .incbin "graphics/pokemon/front_pics/delibird_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Delibird:: @ 8CC9D14 + .incbin "graphics/pokemon/palettes/delibird_palette.gbapal.lz" + + .align 2 +gMonBackPic_Delibird:: @ 8CC9D3C + .incbin "graphics/pokemon/back_pics/delibird_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Delibird:: @ 8CCA0FC + .incbin "graphics/pokemon/palettes/delibird_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Delibird:: @ 8CCA124 + .incbin "graphics/pokemon/icons/delibird_icon.4bpp" + + .align 2 +gMonFootprint_Delibird:: @ 8CCA524 + .incbin "graphics/pokemon/footprints/delibird_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Mantine:: @ 8CCA544 + .incbin "graphics/pokemon/front_pics/mantine_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Mantine:: @ 8CCA9E0 + .incbin "graphics/pokemon/palettes/mantine_palette.gbapal.lz" + + .align 2 +gMonBackPic_Mantine:: @ 8CCAA08 + .incbin "graphics/pokemon/back_pics/mantine_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Mantine:: @ 8CCACA8 + .incbin "graphics/pokemon/palettes/mantine_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Mantine:: @ 8CCACD0 + .incbin "graphics/pokemon/icons/mantine_icon.4bpp" + + .align 2 +gMonFootprint_Mantine:: @ 8CCB0D0 + .incbin "graphics/pokemon/footprints/mantine_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Skarmory:: @ 8CCB0F0 + .incbin "graphics/pokemon/front_pics/skarmory_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Skarmory:: @ 8CCB5D0 + .incbin "graphics/pokemon/palettes/skarmory_palette.gbapal.lz" + + .align 2 +gMonBackPic_Skarmory:: @ 8CCB5F8 + .incbin "graphics/pokemon/back_pics/skarmory_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Skarmory:: @ 8CCB8FC + .incbin "graphics/pokemon/palettes/skarmory_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Skarmory:: @ 8CCB924 + .incbin "graphics/pokemon/icons/skarmory_icon.4bpp" + + .align 2 +gMonFootprint_Skarmory:: @ 8CCBD24 + .incbin "graphics/pokemon/footprints/skarmory_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Houndour:: @ 8CCBD44 + .incbin "graphics/pokemon/front_pics/houndour_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Houndour:: @ 8CCBFFC + .incbin "graphics/pokemon/palettes/houndour_palette.gbapal.lz" + + .align 2 +gMonBackPic_Houndour:: @ 8CCC024 + .incbin "graphics/pokemon/back_pics/houndour_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Houndour:: @ 8CCC2A4 + .incbin "graphics/pokemon/palettes/houndour_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Houndour:: @ 8CCC2CC + .incbin "graphics/pokemon/icons/houndour_icon.4bpp" + + .align 2 +gMonFootprint_Houndour:: @ 8CCC6CC + .incbin "graphics/pokemon/footprints/houndour_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Houndoom:: @ 8CCC6EC + .incbin "graphics/pokemon/front_pics/houndoom_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Houndoom:: @ 8CCCAEC + .incbin "graphics/pokemon/palettes/houndoom_palette.gbapal.lz" + + .align 2 +gMonBackPic_Houndoom:: @ 8CCCB14 + .incbin "graphics/pokemon/back_pics/houndoom_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Houndoom:: @ 8CCCE38 + .incbin "graphics/pokemon/palettes/houndoom_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Houndoom:: @ 8CCCE60 + .incbin "graphics/pokemon/icons/houndoom_icon.4bpp" + + .align 2 +gMonFootprint_Houndoom:: @ 8CCD260 + .incbin "graphics/pokemon/footprints/houndoom_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Kingdra:: @ 8CCD280 + .incbin "graphics/pokemon/front_pics/kingdra_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Kingdra:: @ 8CCD6A0 + .incbin "graphics/pokemon/palettes/kingdra_palette.gbapal.lz" + + .align 2 +gMonBackPic_Kingdra:: @ 8CCD6C8 + .incbin "graphics/pokemon/back_pics/kingdra_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Kingdra:: @ 8CCDA7C + .incbin "graphics/pokemon/palettes/kingdra_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Kingdra:: @ 8CCDAA4 + .incbin "graphics/pokemon/icons/kingdra_icon.4bpp" + + .align 2 +gMonFootprint_Kingdra:: @ 8CCDEA4 + .incbin "graphics/pokemon/footprints/kingdra_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Phanpy:: @ 8CCDEC4 + .incbin "graphics/pokemon/front_pics/phanpy_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Phanpy:: @ 8CCE120 + .incbin "graphics/pokemon/palettes/phanpy_palette.gbapal.lz" + + .align 2 +gMonBackPic_Phanpy:: @ 8CCE148 + .incbin "graphics/pokemon/back_pics/phanpy_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Phanpy:: @ 8CCE40C + .incbin "graphics/pokemon/palettes/phanpy_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Phanpy:: @ 8CCE434 + .incbin "graphics/pokemon/icons/phanpy_icon.4bpp" + + .align 2 +gMonFootprint_Phanpy:: @ 8CCE834 + .incbin "graphics/pokemon/footprints/phanpy_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Donphan:: @ 8CCE854 + .incbin "graphics/pokemon/front_pics/donphan_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Donphan:: @ 8CCECC8 + .incbin "graphics/pokemon/palettes/donphan_palette.gbapal.lz" + + .align 2 +gMonBackPic_Donphan:: @ 8CCECF0 + .incbin "graphics/pokemon/back_pics/donphan_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Donphan:: @ 8CCEFEC + .incbin "graphics/pokemon/palettes/donphan_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Donphan:: @ 8CCF014 + .incbin "graphics/pokemon/icons/donphan_icon.4bpp" + + .align 2 +gMonFootprint_Donphan:: @ 8CCF414 + .incbin "graphics/pokemon/footprints/donphan_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Porygon2:: @ 8CCF434 + .incbin "graphics/pokemon/front_pics/porygon2_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Porygon2:: @ 8CCF6BC + .incbin "graphics/pokemon/palettes/porygon2_palette.gbapal.lz" + + .align 2 +gMonBackPic_Porygon2:: @ 8CCF6E4 + .incbin "graphics/pokemon/back_pics/porygon2_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Porygon2:: @ 8CCFA00 + .incbin "graphics/pokemon/palettes/porygon2_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Porygon2:: @ 8CCFA28 + .incbin "graphics/pokemon/icons/porygon2_icon.4bpp" + + .align 2 +gMonFootprint_Porygon2:: @ 8CCFE28 + .incbin "graphics/pokemon/footprints/porygon2_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Stantler:: @ 8CCFE48 + .incbin "graphics/pokemon/front_pics/stantler_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Stantler:: @ 8CD025C + .incbin "graphics/pokemon/palettes/stantler_palette.gbapal.lz" + + .align 2 +gMonBackPic_Stantler:: @ 8CD0284 + .incbin "graphics/pokemon/back_pics/stantler_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Stantler:: @ 8CD05D0 + .incbin "graphics/pokemon/palettes/stantler_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Stantler:: @ 8CD05F8 + .incbin "graphics/pokemon/icons/stantler_icon.4bpp" + + .align 2 +gMonFootprint_Stantler:: @ 8CD09F8 + .incbin "graphics/pokemon/footprints/stantler_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Smeargle:: @ 8CD0A18 + .incbin "graphics/pokemon/front_pics/smeargle_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Smeargle:: @ 8CD0DAC + .incbin "graphics/pokemon/palettes/smeargle_palette.gbapal.lz" + + .align 2 +gMonBackPic_Smeargle:: @ 8CD0DD4 + .incbin "graphics/pokemon/back_pics/smeargle_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Smeargle:: @ 8CD10F8 + .incbin "graphics/pokemon/palettes/smeargle_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Smeargle:: @ 8CD1120 + .incbin "graphics/pokemon/icons/smeargle_icon.4bpp" + + .align 2 +gMonFootprint_Smeargle:: @ 8CD1520 + .incbin "graphics/pokemon/footprints/smeargle_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Tyrogue:: @ 8CD1540 + .incbin "graphics/pokemon/front_pics/tyrogue_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Tyrogue:: @ 8CD17CC + .incbin "graphics/pokemon/palettes/tyrogue_palette.gbapal.lz" + + .align 2 +gMonBackPic_Tyrogue:: @ 8CD17F4 + .incbin "graphics/pokemon/back_pics/tyrogue_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Tyrogue:: @ 8CD1B10 + .incbin "graphics/pokemon/palettes/tyrogue_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Tyrogue:: @ 8CD1B38 + .incbin "graphics/pokemon/icons/tyrogue_icon.4bpp" + + .align 2 +gMonFootprint_Tyrogue:: @ 8CD1F38 + .incbin "graphics/pokemon/footprints/tyrogue_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Hitmontop:: @ 8CD1F58 + .incbin "graphics/pokemon/front_pics/hitmontop_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Hitmontop:: @ 8CD22E4 + .incbin "graphics/pokemon/palettes/hitmontop_palette.gbapal.lz" + + .align 2 +gMonBackPic_Hitmontop:: @ 8CD230C + .incbin "graphics/pokemon/back_pics/hitmontop_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Hitmontop:: @ 8CD2734 + .incbin "graphics/pokemon/palettes/hitmontop_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Hitmontop:: @ 8CD275C + .incbin "graphics/pokemon/icons/hitmontop_icon.4bpp" + + .align 2 +gMonFootprint_Hitmontop:: @ 8CD2B5C + .incbin "graphics/pokemon/footprints/hitmontop_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Smoochum:: @ 8CD2B7C + .incbin "graphics/pokemon/front_pics/smoochum_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Smoochum:: @ 8CD2DD4 + .incbin "graphics/pokemon/palettes/smoochum_palette.gbapal.lz" + + .align 2 +gMonBackPic_Smoochum:: @ 8CD2DFC + .incbin "graphics/pokemon/back_pics/smoochum_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Smoochum:: @ 8CD3074 + .incbin "graphics/pokemon/palettes/smoochum_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Smoochum:: @ 8CD309C + .incbin "graphics/pokemon/icons/smoochum_icon.4bpp" + + .align 2 +gMonFootprint_Smoochum:: @ 8CD349C + .incbin "graphics/pokemon/footprints/smoochum_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Elekid:: @ 8CD34BC + .incbin "graphics/pokemon/front_pics/elekid_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Elekid:: @ 8CD37C4 + .incbin "graphics/pokemon/palettes/elekid_palette.gbapal.lz" + + .align 2 +gMonBackPic_Elekid:: @ 8CD37EC + .incbin "graphics/pokemon/back_pics/elekid_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Elekid:: @ 8CD3B44 + .incbin "graphics/pokemon/palettes/elekid_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Elekid:: @ 8CD3B6C + .incbin "graphics/pokemon/icons/elekid_icon.4bpp" + + .align 2 +gMonFootprint_Elekid:: @ 8CD3F6C + .incbin "graphics/pokemon/footprints/elekid_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Magby:: @ 8CD3F8C + .incbin "graphics/pokemon/front_pics/magby_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Magby:: @ 8CD4210 + .incbin "graphics/pokemon/palettes/magby_palette.gbapal.lz" + + .align 2 +gMonBackPic_Magby:: @ 8CD4238 + .incbin "graphics/pokemon/back_pics/magby_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Magby:: @ 8CD44E4 + .incbin "graphics/pokemon/palettes/magby_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Magby:: @ 8CD450C + .incbin "graphics/pokemon/icons/magby_icon.4bpp" + + .align 2 +gMonFootprint_Magby:: @ 8CD490C + .incbin "graphics/pokemon/footprints/magby_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Miltank:: @ 8CD492C + .incbin "graphics/pokemon/front_pics/miltank_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Miltank:: @ 8CD4CDC + .incbin "graphics/pokemon/palettes/miltank_palette.gbapal.lz" + + .align 2 +gMonBackPic_Miltank:: @ 8CD4D04 + .incbin "graphics/pokemon/back_pics/miltank_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Miltank:: @ 8CD50A0 + .incbin "graphics/pokemon/palettes/miltank_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Miltank:: @ 8CD50C8 + .incbin "graphics/pokemon/icons/miltank_icon.4bpp" + + .align 2 +gMonFootprint_Miltank:: @ 8CD54C8 + .incbin "graphics/pokemon/footprints/miltank_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Blissey:: @ 8CD54E8 + .incbin "graphics/pokemon/front_pics/blissey_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Blissey:: @ 8CD58D0 + .incbin "graphics/pokemon/palettes/blissey_palette.gbapal.lz" + + .align 2 +gMonBackPic_Blissey:: @ 8CD58F8 + .incbin "graphics/pokemon/back_pics/blissey_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Blissey:: @ 8CD5BC4 + .incbin "graphics/pokemon/palettes/blissey_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Blissey:: @ 8CD5BEC + .incbin "graphics/pokemon/icons/blissey_icon.4bpp" + + .align 2 +gMonFootprint_Blissey:: @ 8CD5FEC + .incbin "graphics/pokemon/footprints/blissey_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Raikou:: @ 8CD600C + .incbin "graphics/pokemon/front_pics/raikou_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Raikou:: @ 8CD6588 + .incbin "graphics/pokemon/palettes/raikou_palette.gbapal.lz" + + .align 2 +gMonBackPic_Raikou:: @ 8CD65B0 + .incbin "graphics/pokemon/back_pics/raikou_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Raikou:: @ 8CD6958 + .incbin "graphics/pokemon/palettes/raikou_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Raikou:: @ 8CD6980 + .incbin "graphics/pokemon/icons/raikou_icon.4bpp" + + .align 2 +gMonFootprint_Raikou:: @ 8CD6D80 + .incbin "graphics/pokemon/footprints/raikou_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Entei:: @ 8CD6DA0 + .incbin "graphics/pokemon/front_pics/entei_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Entei:: @ 8CD739C + .incbin "graphics/pokemon/palettes/entei_palette.gbapal.lz" + + .align 2 +gMonBackPic_Entei:: @ 8CD73C4 + .incbin "graphics/pokemon/back_pics/entei_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Entei:: @ 8CD77E8 + .incbin "graphics/pokemon/palettes/entei_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Entei:: @ 8CD7810 + .incbin "graphics/pokemon/icons/entei_icon.4bpp" + + .align 2 +gMonFootprint_Entei:: @ 8CD7C10 + .incbin "graphics/pokemon/footprints/entei_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Suicune:: @ 8CD7C30 + .incbin "graphics/pokemon/front_pics/suicune_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Suicune:: @ 8CD81B4 + .incbin "graphics/pokemon/palettes/suicune_palette.gbapal.lz" + + .align 2 +gMonBackPic_Suicune:: @ 8CD81DC + .incbin "graphics/pokemon/back_pics/suicune_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Suicune:: @ 8CD86B8 + .incbin "graphics/pokemon/palettes/suicune_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Suicune:: @ 8CD86E0 + .incbin "graphics/pokemon/icons/suicune_icon.4bpp" + + .align 2 +gMonFootprint_Suicune:: @ 8CD8AE0 + .incbin "graphics/pokemon/footprints/suicune_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Larvitar:: @ 8CD8B00 + .incbin "graphics/pokemon/front_pics/larvitar_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Larvitar:: @ 8CD8D5C + .incbin "graphics/pokemon/palettes/larvitar_palette.gbapal.lz" + + .align 2 +gMonBackPic_Larvitar:: @ 8CD8D84 + .incbin "graphics/pokemon/back_pics/larvitar_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Larvitar:: @ 8CD9030 + .incbin "graphics/pokemon/palettes/larvitar_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Larvitar:: @ 8CD9058 + .incbin "graphics/pokemon/icons/larvitar_icon.4bpp" + + .align 2 +gMonFootprint_Larvitar:: @ 8CD9458 + .incbin "graphics/pokemon/footprints/larvitar_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Pupitar:: @ 8CD9478 + .incbin "graphics/pokemon/front_pics/pupitar_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Pupitar:: @ 8CD9768 + .incbin "graphics/pokemon/palettes/pupitar_palette.gbapal.lz" + + .align 2 +gMonBackPic_Pupitar:: @ 8CD9790 + .incbin "graphics/pokemon/back_pics/pupitar_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Pupitar:: @ 8CD9AC8 + .incbin "graphics/pokemon/palettes/pupitar_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Pupitar:: @ 8CD9AF0 + .incbin "graphics/pokemon/icons/pupitar_icon.4bpp" + + .align 2 +gMonFootprint_Pupitar:: @ 8CD9EF0 + .incbin "graphics/pokemon/footprints/pupitar_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Tyranitar:: @ 8CD9F10 + .incbin "graphics/pokemon/front_pics/tyranitar_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Tyranitar:: @ 8CDA44C + .incbin "graphics/pokemon/palettes/tyranitar_palette.gbapal.lz" + + .align 2 +gMonBackPic_Tyranitar:: @ 8CDA474 + .incbin "graphics/pokemon/back_pics/tyranitar_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Tyranitar:: @ 8CDA860 + .incbin "graphics/pokemon/palettes/tyranitar_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Tyranitar:: @ 8CDA888 + .incbin "graphics/pokemon/icons/tyranitar_icon.4bpp" + + .align 2 +gMonFootprint_Tyranitar:: @ 8CDAC88 + .incbin "graphics/pokemon/footprints/tyranitar_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Lugia:: @ 8CDACA8 + .incbin "graphics/pokemon/front_pics/lugia_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Lugia:: @ 8CDB16C + .incbin "graphics/pokemon/palettes/lugia_palette.gbapal.lz" + + .align 2 +gMonBackPic_Lugia:: @ 8CDB194 + .incbin "graphics/pokemon/back_pics/lugia_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Lugia:: @ 8CDB568 + .incbin "graphics/pokemon/palettes/lugia_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Lugia:: @ 8CDB590 + .incbin "graphics/pokemon/icons/lugia_icon.4bpp" + + .align 2 +gMonFootprint_Lugia:: @ 8CDB990 + .incbin "graphics/pokemon/footprints/lugia_footprint.1bpp" + + .align 2 +gMonStillFrontPic_HoOh:: @ 8CDB9B0 + .incbin "graphics/pokemon/front_pics/ho_oh_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_HoOh:: @ 8CDC004 + .incbin "graphics/pokemon/palettes/ho_oh_palette.gbapal.lz" + + .align 2 +gMonBackPic_HoOh:: @ 8CDC02C + .incbin "graphics/pokemon/back_pics/ho_oh_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_HoOh:: @ 8CDC43C + .incbin "graphics/pokemon/palettes/ho_oh_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_HoOh:: @ 8CDC464 + .incbin "graphics/pokemon/icons/ho_oh_icon.4bpp" + + .align 2 +gMonFootprint_HoOh:: @ 8CDC864 + .incbin "graphics/pokemon/footprints/ho_oh_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Celebi:: @ 8CDC884 + .incbin "graphics/pokemon/front_pics/celebi_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Celebi:: @ 8CDCAFC + .incbin "graphics/pokemon/palettes/celebi_palette.gbapal.lz" + + .align 2 +gMonBackPic_Celebi:: @ 8CDCB24 + .incbin "graphics/pokemon/back_pics/celebi_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Celebi:: @ 8CDCED0 + .incbin "graphics/pokemon/palettes/celebi_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Celebi:: @ 8CDCEF8 + .incbin "graphics/pokemon/icons/celebi_icon.4bpp" + + .align 2 +gMonFootprint_Celebi:: @ 8CDD2F8 + .incbin "graphics/pokemon/footprints/celebi_footprint.1bpp" + + .align 2 +gMonStillFrontPic_DoubleQuestionMark:: @ 8CDD318 + .incbin "graphics/pokemon/front_pics/double_question_mark_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_DoubleQuestionMark:: @ 8CDD498 + .incbin "graphics/pokemon/palettes/double_question_mark_palette.gbapal.lz" + + .align 2 +gMonBackPic_DoubleQuestionMark:: @ 8CDD4AC + .incbin "graphics/pokemon/back_pics/double_question_mark_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_DoubleQuestionMark:: @ 8CDD630 + .incbin "graphics/pokemon/palettes/double_question_mark_shiny_palette.gbapal.lz" + + .align 2 +gMonStillFrontPic_Treecko:: @ 8CDD644 + .incbin "graphics/pokemon/front_pics/treecko_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Treecko:: @ 8CDD94C + .incbin "graphics/pokemon/palettes/treecko_palette.gbapal.lz" + + .align 2 +gMonBackPic_Treecko:: @ 8CDD974 + .incbin "graphics/pokemon/back_pics/treecko_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Treecko:: @ 8CDDC74 + .incbin "graphics/pokemon/palettes/treecko_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Treecko:: @ 8CDDC9C + .incbin "graphics/pokemon/icons/treecko_icon.4bpp" + + .align 2 +gMonFootprint_Treecko:: @ 8CDE09C + .incbin "graphics/pokemon/footprints/treecko_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Grovyle:: @ 8CDE0BC + .incbin "graphics/pokemon/front_pics/grovyle_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Grovyle:: @ 8CDE548 + .incbin "graphics/pokemon/palettes/grovyle_palette.gbapal.lz" + + .align 2 +gMonBackPic_Grovyle:: @ 8CDE570 + .incbin "graphics/pokemon/back_pics/grovyle_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Grovyle:: @ 8CDE8AC + .incbin "graphics/pokemon/palettes/grovyle_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Grovyle:: @ 8CDE8D4 + .incbin "graphics/pokemon/icons/grovyle_icon.4bpp" + + .align 2 +gMonFootprint_Grovyle:: @ 8CDECD4 + .incbin "graphics/pokemon/footprints/grovyle_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Sceptile:: @ 8CDECF4 + .incbin "graphics/pokemon/front_pics/sceptile_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Sceptile:: @ 8CDF1F8 + .incbin "graphics/pokemon/palettes/sceptile_palette.gbapal.lz" + + .align 2 +gMonBackPic_Sceptile:: @ 8CDF220 + .incbin "graphics/pokemon/back_pics/sceptile_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Sceptile:: @ 8CDF61C + .incbin "graphics/pokemon/palettes/sceptile_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Sceptile:: @ 8CDF644 + .incbin "graphics/pokemon/icons/sceptile_icon.4bpp" + + .align 2 +gMonFootprint_Sceptile:: @ 8CDFA44 + .incbin "graphics/pokemon/footprints/sceptile_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Torchic:: @ 8CDFA64 + .incbin "graphics/pokemon/front_pics/torchic_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Torchic:: @ 8CDFD00 + .incbin "graphics/pokemon/palettes/torchic_palette.gbapal.lz" + + .align 2 +gMonBackPic_Torchic:: @ 8CDFD28 + .incbin "graphics/pokemon/back_pics/torchic_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Torchic:: @ 8CE0000 + .incbin "graphics/pokemon/palettes/torchic_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Torchic:: @ 8CE0028 + .incbin "graphics/pokemon/icons/torchic_icon.4bpp" + + .align 2 +gMonFootprint_Torchic:: @ 8CE0428 + .incbin "graphics/pokemon/footprints/torchic_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Combusken:: @ 8CE0448 + .incbin "graphics/pokemon/front_pics/combusken_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Combusken:: @ 8CE0834 + .incbin "graphics/pokemon/palettes/combusken_palette.gbapal.lz" + + .align 2 +gMonBackPic_Combusken:: @ 8CE085C + .incbin "graphics/pokemon/back_pics/combusken_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Combusken:: @ 8CE0C2C + .incbin "graphics/pokemon/palettes/combusken_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Combusken:: @ 8CE0C54 + .incbin "graphics/pokemon/icons/combusken_icon.4bpp" + + .align 2 +gMonFootprint_Combusken:: @ 8CE1054 + .incbin "graphics/pokemon/footprints/combusken_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Blaziken:: @ 8CE1074 + .incbin "graphics/pokemon/front_pics/blaziken_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Blaziken:: @ 8CE17C4 + .incbin "graphics/pokemon/palettes/blaziken_palette.gbapal.lz" + + .align 2 +gMonBackPic_Blaziken:: @ 8CE17EC + .incbin "graphics/pokemon/back_pics/blaziken_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Blaziken:: @ 8CE1BC8 + .incbin "graphics/pokemon/palettes/blaziken_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Blaziken:: @ 8CE1BF0 + .incbin "graphics/pokemon/icons/blaziken_icon.4bpp" + + .align 2 +gMonFootprint_Blaziken:: @ 8CE1FF0 + .incbin "graphics/pokemon/footprints/blaziken_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Mudkip:: @ 8CE2010 + .incbin "graphics/pokemon/front_pics/mudkip_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Mudkip:: @ 8CE22C8 + .incbin "graphics/pokemon/palettes/mudkip_palette.gbapal.lz" + + .align 2 +gMonBackPic_Mudkip:: @ 8CE22F0 + .incbin "graphics/pokemon/back_pics/mudkip_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Mudkip:: @ 8CE25D0 + .incbin "graphics/pokemon/palettes/mudkip_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Mudkip:: @ 8CE25F8 + .incbin "graphics/pokemon/icons/mudkip_icon.4bpp" + + .align 2 +gMonFootprint_Mudkip:: @ 8CE29F8 + .incbin "graphics/pokemon/footprints/mudkip_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Marshtomp:: @ 8CE2A18 + .incbin "graphics/pokemon/front_pics/marshtomp_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Marshtomp:: @ 8CE3078 + .incbin "graphics/pokemon/palettes/marshtomp_palette.gbapal.lz" + + .align 2 +gMonBackPic_Marshtomp:: @ 8CE30A0 + .incbin "graphics/pokemon/back_pics/marshtomp_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Marshtomp:: @ 8CE3450 + .incbin "graphics/pokemon/palettes/marshtomp_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Marshtomp:: @ 8CE3478 + .incbin "graphics/pokemon/icons/marshtomp_icon.4bpp" + + .align 2 +gMonFootprint_Marshtomp:: @ 8CE3878 + .incbin "graphics/pokemon/footprints/marshtomp_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Swampert:: @ 8CE3898 + .incbin "graphics/pokemon/front_pics/swampert_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Swampert:: @ 8CE3E14 + .incbin "graphics/pokemon/palettes/swampert_palette.gbapal.lz" + + .align 2 +gMonBackPic_Swampert:: @ 8CE3E3C + .incbin "graphics/pokemon/back_pics/swampert_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Swampert:: @ 8CE41F0 + .incbin "graphics/pokemon/palettes/swampert_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Swampert:: @ 8CE4218 + .incbin "graphics/pokemon/icons/swampert_icon.4bpp" + + .align 2 +gMonFootprint_Swampert:: @ 8CE4618 + .incbin "graphics/pokemon/footprints/swampert_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Poochyena:: @ 8CE4638 + .incbin "graphics/pokemon/front_pics/poochyena_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Poochyena:: @ 8CE4BDC + .incbin "graphics/pokemon/palettes/poochyena_palette.gbapal.lz" + + .align 2 +gMonBackPic_Poochyena:: @ 8CE4C04 + .incbin "graphics/pokemon/back_pics/poochyena_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Poochyena:: @ 8CE4F30 + .incbin "graphics/pokemon/palettes/poochyena_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Poochyena:: @ 8CE4F58 + .incbin "graphics/pokemon/icons/poochyena_icon.4bpp" + + .align 2 +gMonFootprint_Poochyena:: @ 8CE5358 + .incbin "graphics/pokemon/footprints/poochyena_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Mightyena:: @ 8CE5378 + .incbin "graphics/pokemon/front_pics/mightyena_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Mightyena:: @ 8CE57B0 + .incbin "graphics/pokemon/palettes/mightyena_palette.gbapal.lz" + + .align 2 +gMonBackPic_Mightyena:: @ 8CE57D8 + .incbin "graphics/pokemon/back_pics/mightyena_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Mightyena:: @ 8CE5B50 + .incbin "graphics/pokemon/palettes/mightyena_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Mightyena:: @ 8CE5B78 + .incbin "graphics/pokemon/icons/mightyena_icon.4bpp" + + .align 2 +gMonFootprint_Mightyena:: @ 8CE5F78 + .incbin "graphics/pokemon/footprints/mightyena_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Zigzagoon:: @ 8CE5F98 + .incbin "graphics/pokemon/front_pics/zigzagoon_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Zigzagoon:: @ 8CE6368 + .incbin "graphics/pokemon/palettes/zigzagoon_palette.gbapal.lz" + + .align 2 +gMonBackPic_Zigzagoon:: @ 8CE6390 + .incbin "graphics/pokemon/back_pics/zigzagoon_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Zigzagoon:: @ 8CE66D0 + .incbin "graphics/pokemon/palettes/zigzagoon_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Zigzagoon:: @ 8CE66F8 + .incbin "graphics/pokemon/icons/zigzagoon_icon.4bpp" + + .align 2 +gMonFootprint_Zigzagoon:: @ 8CE6AF8 + .incbin "graphics/pokemon/footprints/zigzagoon_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Linoone:: @ 8CE6B18 + .incbin "graphics/pokemon/front_pics/linoone_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Linoone:: @ 8CE6E88 + .incbin "graphics/pokemon/palettes/linoone_palette.gbapal.lz" + + .align 2 +gMonBackPic_Linoone:: @ 8CE6EB0 + .incbin "graphics/pokemon/back_pics/linoone_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Linoone:: @ 8CE7184 + .incbin "graphics/pokemon/palettes/linoone_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Linoone:: @ 8CE71AC + .incbin "graphics/pokemon/icons/linoone_icon.4bpp" + + .align 2 +gMonFootprint_Linoone:: @ 8CE75AC + .incbin "graphics/pokemon/footprints/linoone_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Wurmple:: @ 8CE75CC + .incbin "graphics/pokemon/front_pics/wurmple_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Wurmple:: @ 8CE7854 + .incbin "graphics/pokemon/palettes/wurmple_palette.gbapal.lz" + + .align 2 +gMonBackPic_Wurmple:: @ 8CE787C + .incbin "graphics/pokemon/back_pics/wurmple_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Wurmple:: @ 8CE7AC8 + .incbin "graphics/pokemon/palettes/wurmple_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Wurmple:: @ 8CE7AF0 + .incbin "graphics/pokemon/icons/wurmple_icon.4bpp" + + .align 2 +gMonFootprint_Wurmple:: @ 8CE7EF0 + .incbin "graphics/pokemon/footprints/wurmple_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Silcoon:: @ 8CE7F10 + .incbin "graphics/pokemon/front_pics/silcoon_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Silcoon:: @ 8CE8190 + .incbin "graphics/pokemon/palettes/silcoon_palette.gbapal.lz" + + .align 2 +gMonBackPic_Silcoon:: @ 8CE81B8 + .incbin "graphics/pokemon/back_pics/silcoon_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Silcoon:: @ 8CE83D4 + .incbin "graphics/pokemon/palettes/silcoon_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Silcoon:: @ 8CE83FC + .incbin "graphics/pokemon/icons/silcoon_icon.4bpp" + + .align 2 +gMonFootprint_Silcoon:: @ 8CE87FC + .incbin "graphics/pokemon/footprints/silcoon_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Beautifly:: @ 8CE881C + .incbin "graphics/pokemon/front_pics/beautifly_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Beautifly:: @ 8CE8B74 + .incbin "graphics/pokemon/palettes/beautifly_palette.gbapal.lz" + + .align 2 +gMonBackPic_Beautifly:: @ 8CE8B9C + .incbin "graphics/pokemon/back_pics/beautifly_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Beautifly:: @ 8CE8F4C + .incbin "graphics/pokemon/palettes/beautifly_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Beautifly:: @ 8CE8F74 + .incbin "graphics/pokemon/icons/beautifly_icon.4bpp" + + .align 2 +gMonFootprint_Beautifly:: @ 8CE9374 + .incbin "graphics/pokemon/footprints/beautifly_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Cascoon:: @ 8CE9394 + .incbin "graphics/pokemon/front_pics/cascoon_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Cascoon:: @ 8CE9600 + .incbin "graphics/pokemon/palettes/cascoon_palette.gbapal.lz" + + .align 2 +gMonBackPic_Cascoon:: @ 8CE9628 + .incbin "graphics/pokemon/back_pics/cascoon_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Cascoon:: @ 8CE9838 + .incbin "graphics/pokemon/palettes/cascoon_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Cascoon:: @ 8CE9860 + .incbin "graphics/pokemon/icons/cascoon_icon.4bpp" + + .align 2 +gMonFootprint_Cascoon:: @ 8CE9C60 + .incbin "graphics/pokemon/footprints/cascoon_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Dustox:: @ 8CE9C80 + .incbin "graphics/pokemon/front_pics/dustox_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Dustox:: @ 8CE9FE8 + .incbin "graphics/pokemon/palettes/dustox_palette.gbapal.lz" + + .align 2 +gMonBackPic_Dustox:: @ 8CEA010 + .incbin "graphics/pokemon/back_pics/dustox_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Dustox:: @ 8CEA268 + .incbin "graphics/pokemon/palettes/dustox_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Dustox:: @ 8CEA290 + .incbin "graphics/pokemon/icons/dustox_icon.4bpp" + + .align 2 +gMonFootprint_Dustox:: @ 8CEA690 + .incbin "graphics/pokemon/footprints/dustox_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Lotad:: @ 8CEA6B0 + .incbin "graphics/pokemon/front_pics/lotad_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Lotad:: @ 8CEA910 + .incbin "graphics/pokemon/palettes/lotad_palette.gbapal.lz" + + .align 2 +gMonBackPic_Lotad:: @ 8CEA938 + .incbin "graphics/pokemon/back_pics/lotad_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Lotad:: @ 8CEAC20 + .incbin "graphics/pokemon/palettes/lotad_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Lotad:: @ 8CEAC48 + .incbin "graphics/pokemon/icons/lotad_icon.4bpp" + + .align 2 +gMonFootprint_Lotad:: @ 8CEB048 + .incbin "graphics/pokemon/footprints/lotad_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Lombre:: @ 8CEB068 + .incbin "graphics/pokemon/front_pics/lombre_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Lombre:: @ 8CEB380 + .incbin "graphics/pokemon/palettes/lombre_palette.gbapal.lz" + + .align 2 +gMonBackPic_Lombre:: @ 8CEB3A8 + .incbin "graphics/pokemon/back_pics/lombre_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Lombre:: @ 8CEB6A4 + .incbin "graphics/pokemon/palettes/lombre_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Lombre:: @ 8CEB6CC + .incbin "graphics/pokemon/icons/lombre_icon.4bpp" + + .align 2 +gMonFootprint_Lombre:: @ 8CEBACC + .incbin "graphics/pokemon/footprints/lombre_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Ludicolo:: @ 8CEBAEC + .incbin "graphics/pokemon/front_pics/ludicolo_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Ludicolo:: @ 8CEBFD0 + .incbin "graphics/pokemon/palettes/ludicolo_palette.gbapal.lz" + + .align 2 +gMonBackPic_Ludicolo:: @ 8CEBFF8 + .incbin "graphics/pokemon/back_pics/ludicolo_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Ludicolo:: @ 8CEC2F4 + .incbin "graphics/pokemon/palettes/ludicolo_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Ludicolo:: @ 8CEC31C + .incbin "graphics/pokemon/icons/ludicolo_icon.4bpp" + + .align 2 +gMonFootprint_Ludicolo:: @ 8CEC71C + .incbin "graphics/pokemon/footprints/ludicolo_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Seedot:: @ 8CEC73C + .incbin "graphics/pokemon/front_pics/seedot_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Seedot:: @ 8CEC9D0 + .incbin "graphics/pokemon/palettes/seedot_palette.gbapal.lz" + + .align 2 +gMonBackPic_Seedot:: @ 8CEC9F8 + .incbin "graphics/pokemon/back_pics/seedot_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Seedot:: @ 8CECCD8 + .incbin "graphics/pokemon/palettes/seedot_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Seedot:: @ 8CECD00 + .incbin "graphics/pokemon/icons/seedot_icon.4bpp" + + .align 2 +gMonFootprint_Seedot:: @ 8CED100 + .incbin "graphics/pokemon/footprints/seedot_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Nuzleaf:: @ 8CED120 + .incbin "graphics/pokemon/front_pics/nuzleaf_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Nuzleaf:: @ 8CED40C + .incbin "graphics/pokemon/palettes/nuzleaf_palette.gbapal.lz" + + .align 2 +gMonBackPic_Nuzleaf:: @ 8CED434 + .incbin "graphics/pokemon/back_pics/nuzleaf_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Nuzleaf:: @ 8CED6FC + .incbin "graphics/pokemon/palettes/nuzleaf_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Nuzleaf:: @ 8CED724 + .incbin "graphics/pokemon/icons/nuzleaf_icon.4bpp" + + .align 2 +gMonFootprint_Nuzleaf:: @ 8CEDB24 + .incbin "graphics/pokemon/footprints/nuzleaf_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Shiftry:: @ 8CEDB44 + .incbin "graphics/pokemon/front_pics/shiftry_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Shiftry:: @ 8CEE000 + .incbin "graphics/pokemon/palettes/shiftry_palette.gbapal.lz" + + .align 2 +gMonBackPic_Shiftry:: @ 8CEE028 + .incbin "graphics/pokemon/back_pics/shiftry_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Shiftry:: @ 8CEE2EC + .incbin "graphics/pokemon/palettes/shiftry_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Shiftry:: @ 8CEE314 + .incbin "graphics/pokemon/icons/shiftry_icon.4bpp" + + .align 2 +gMonFootprint_Shiftry:: @ 8CEE714 + .incbin "graphics/pokemon/footprints/shiftry_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Nincada:: @ 8CEE734 + .incbin "graphics/pokemon/front_pics/nincada_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Nincada:: @ 8CEE9D4 + .incbin "graphics/pokemon/palettes/nincada_palette.gbapal.lz" + + .align 2 +gMonBackPic_Nincada:: @ 8CEE9FC + .incbin "graphics/pokemon/back_pics/nincada_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Nincada:: @ 8CEECB4 + .incbin "graphics/pokemon/palettes/nincada_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Nincada:: @ 8CEECDC + .incbin "graphics/pokemon/icons/nincada_icon.4bpp" + + .align 2 +gMonFootprint_Nincada:: @ 8CEF0DC + .incbin "graphics/pokemon/footprints/nincada_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Ninjask:: @ 8CEF0FC + .incbin "graphics/pokemon/front_pics/ninjask_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Ninjask:: @ 8CEF46C + .incbin "graphics/pokemon/palettes/ninjask_palette.gbapal.lz" + + .align 2 +gMonBackPic_Ninjask:: @ 8CEF494 + .incbin "graphics/pokemon/back_pics/ninjask_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Ninjask:: @ 8CEF860 + .incbin "graphics/pokemon/palettes/ninjask_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Ninjask:: @ 8CEF888 + .incbin "graphics/pokemon/icons/ninjask_icon.4bpp" + + .align 2 +gMonFootprint_Ninjask:: @ 8CEFC88 + .incbin "graphics/pokemon/footprints/ninjask_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Shedinja:: @ 8CEFCA8 + .incbin "graphics/pokemon/front_pics/shedinja_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Shedinja:: @ 8CEFFC8 + .incbin "graphics/pokemon/palettes/shedinja_palette.gbapal.lz" + + .align 2 +gMonBackPic_Shedinja:: @ 8CEFFF0 + .incbin "graphics/pokemon/back_pics/shedinja_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Shedinja:: @ 8CF0390 + .incbin "graphics/pokemon/palettes/shedinja_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Shedinja:: @ 8CF03B8 + .incbin "graphics/pokemon/icons/shedinja_icon.4bpp" + + .align 2 +gMonFootprint_Shedinja:: @ 8CF07B8 + .incbin "graphics/pokemon/footprints/shedinja_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Taillow:: @ 8CF07D8 + .incbin "graphics/pokemon/front_pics/taillow_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Taillow:: @ 8CF0A30 + .incbin "graphics/pokemon/palettes/taillow_palette.gbapal.lz" + + .align 2 +gMonBackPic_Taillow:: @ 8CF0A58 + .incbin "graphics/pokemon/back_pics/taillow_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Taillow:: @ 8CF0C78 + .incbin "graphics/pokemon/palettes/taillow_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Taillow:: @ 8CF0CA0 + .incbin "graphics/pokemon/icons/taillow_icon.4bpp" + + .align 2 +gMonFootprint_Taillow:: @ 8CF10A0 + .incbin "graphics/pokemon/footprints/taillow_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Swellow:: @ 8CF10C0 + .incbin "graphics/pokemon/front_pics/swellow_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Swellow:: @ 8CF1484 + .incbin "graphics/pokemon/palettes/swellow_palette.gbapal.lz" + + .align 2 +gMonBackPic_Swellow:: @ 8CF14AC + .incbin "graphics/pokemon/back_pics/swellow_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Swellow:: @ 8CF17E4 + .incbin "graphics/pokemon/palettes/swellow_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Swellow:: @ 8CF180C + .incbin "graphics/pokemon/icons/swellow_icon.4bpp" + + .align 2 +gMonFootprint_Swellow:: @ 8CF1C0C + .incbin "graphics/pokemon/footprints/swellow_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Shroomish:: @ 8CF1C2C + .incbin "graphics/pokemon/front_pics/shroomish_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Shroomish:: @ 8CF1E94 + .incbin "graphics/pokemon/palettes/shroomish_palette.gbapal.lz" + + .align 2 +gMonBackPic_Shroomish:: @ 8CF1EBC + .incbin "graphics/pokemon/back_pics/shroomish_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Shroomish:: @ 8CF219C + .incbin "graphics/pokemon/palettes/shroomish_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Shroomish:: @ 8CF21C4 + .incbin "graphics/pokemon/icons/shroomish_icon.4bpp" + + .align 2 +gMonFootprint_Shroomish:: @ 8CF25C4 + .incbin "graphics/pokemon/footprints/shroomish_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Breloom:: @ 8CF25E4 + .incbin "graphics/pokemon/front_pics/breloom_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Breloom:: @ 8CF29CC + .incbin "graphics/pokemon/palettes/breloom_palette.gbapal.lz" + + .align 2 +gMonBackPic_Breloom:: @ 8CF29F4 + .incbin "graphics/pokemon/back_pics/breloom_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Breloom:: @ 8CF2DD4 + .incbin "graphics/pokemon/palettes/breloom_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Breloom:: @ 8CF2DFC + .incbin "graphics/pokemon/icons/breloom_icon.4bpp" + + .align 2 +gMonFootprint_Breloom:: @ 8CF31FC + .incbin "graphics/pokemon/footprints/breloom_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Spinda:: @ 8CF321C + .incbin "graphics/pokemon/front_pics/spinda_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Spinda:: @ 8CF3510 + .incbin "graphics/pokemon/palettes/spinda_palette.gbapal.lz" + + .align 2 +gMonBackPic_Spinda:: @ 8CF3538 + .incbin "graphics/pokemon/back_pics/spinda_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Spinda:: @ 8CF3874 + .incbin "graphics/pokemon/palettes/spinda_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Spinda:: @ 8CF389C + .incbin "graphics/pokemon/icons/spinda_icon.4bpp" + + .align 2 +gMonFootprint_Spinda:: @ 8CF3C9C + .incbin "graphics/pokemon/footprints/spinda_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Wingull:: @ 8CF3CBC + .incbin "graphics/pokemon/front_pics/wingull_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Wingull:: @ 8CF3EF8 + .incbin "graphics/pokemon/palettes/wingull_palette.gbapal.lz" + + .align 2 +gMonBackPic_Wingull:: @ 8CF3F20 + .incbin "graphics/pokemon/back_pics/wingull_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Wingull:: @ 8CF4270 + .incbin "graphics/pokemon/palettes/wingull_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Wingull:: @ 8CF4298 + .incbin "graphics/pokemon/icons/wingull_icon.4bpp" + + .align 2 +gMonFootprint_Wingull:: @ 8CF4698 + .incbin "graphics/pokemon/footprints/wingull_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Pelipper:: @ 8CF46B8 + .incbin "graphics/pokemon/front_pics/pelipper_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Pelipper:: @ 8CF4A50 + .incbin "graphics/pokemon/palettes/pelipper_palette.gbapal.lz" + + .align 2 +gMonBackPic_Pelipper:: @ 8CF4A78 + .incbin "graphics/pokemon/back_pics/pelipper_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Pelipper:: @ 8CF4DF8 + .incbin "graphics/pokemon/palettes/pelipper_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Pelipper:: @ 8CF4E20 + .incbin "graphics/pokemon/icons/pelipper_icon.4bpp" + + .align 2 +gMonFootprint_Pelipper:: @ 8CF5220 + .incbin "graphics/pokemon/footprints/pelipper_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Surskit:: @ 8CF5240 + .incbin "graphics/pokemon/front_pics/surskit_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Surskit:: @ 8CF544C + .incbin "graphics/pokemon/palettes/surskit_palette.gbapal.lz" + + .align 2 +gMonBackPic_Surskit:: @ 8CF5474 + .incbin "graphics/pokemon/back_pics/surskit_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Surskit:: @ 8CF56AC + .incbin "graphics/pokemon/palettes/surskit_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Surskit:: @ 8CF56D4 + .incbin "graphics/pokemon/icons/surskit_icon.4bpp" + + .align 2 +gMonFootprint_Surskit:: @ 8CF5AD4 + .incbin "graphics/pokemon/footprints/surskit_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Masquerain:: @ 8CF5AF4 + .incbin "graphics/pokemon/front_pics/masquerain_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Masquerain:: @ 8CF5E90 + .incbin "graphics/pokemon/palettes/masquerain_palette.gbapal.lz" + + .align 2 +gMonBackPic_Masquerain:: @ 8CF5EB8 + .incbin "graphics/pokemon/back_pics/masquerain_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Masquerain:: @ 8CF6210 + .incbin "graphics/pokemon/palettes/masquerain_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Masquerain:: @ 8CF6238 + .incbin "graphics/pokemon/icons/masquerain_icon.4bpp" + + .align 2 +gMonFootprint_Masquerain:: @ 8CF6638 + .incbin "graphics/pokemon/footprints/masquerain_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Wailmer:: @ 8CF6658 + .incbin "graphics/pokemon/front_pics/wailmer_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Wailmer:: @ 8CF6938 + .incbin "graphics/pokemon/palettes/wailmer_palette.gbapal.lz" + + .align 2 +gMonBackPic_Wailmer:: @ 8CF6960 + .incbin "graphics/pokemon/back_pics/wailmer_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Wailmer:: @ 8CF6B44 + .incbin "graphics/pokemon/palettes/wailmer_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Wailmer:: @ 8CF6B6C + .incbin "graphics/pokemon/icons/wailmer_icon.4bpp" + + .align 2 +gMonFootprint_Wailmer:: @ 8CF6F6C + .incbin "graphics/pokemon/footprints/wailmer_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Wailord:: @ 8CF6F8C + .incbin "graphics/pokemon/front_pics/wailord_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Wailord:: @ 8CF7350 + .incbin "graphics/pokemon/palettes/wailord_palette.gbapal.lz" + + .align 2 +gMonBackPic_Wailord:: @ 8CF7378 + .incbin "graphics/pokemon/back_pics/wailord_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Wailord:: @ 8CF7590 + .incbin "graphics/pokemon/palettes/wailord_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Wailord:: @ 8CF75B8 + .incbin "graphics/pokemon/icons/wailord_icon.4bpp" + + .align 2 +gMonFootprint_Wailord:: @ 8CF79B8 + .incbin "graphics/pokemon/footprints/wailord_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Skitty:: @ 8CF79D8 + .incbin "graphics/pokemon/front_pics/skitty_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Skitty:: @ 8CF7CD8 + .incbin "graphics/pokemon/palettes/skitty_palette.gbapal.lz" + + .align 2 +gMonBackPic_Skitty:: @ 8CF7D00 + .incbin "graphics/pokemon/back_pics/skitty_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Skitty:: @ 8CF8048 + .incbin "graphics/pokemon/palettes/skitty_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Skitty:: @ 8CF8070 + .incbin "graphics/pokemon/icons/skitty_icon.4bpp" + + .align 2 +gMonFootprint_Skitty:: @ 8CF8470 + .incbin "graphics/pokemon/footprints/skitty_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Delcatty:: @ 8CF8490 + .incbin "graphics/pokemon/front_pics/delcatty_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Delcatty:: @ 8CF881C + .incbin "graphics/pokemon/palettes/delcatty_palette.gbapal.lz" + + .align 2 +gMonBackPic_Delcatty:: @ 8CF8844 + .incbin "graphics/pokemon/back_pics/delcatty_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Delcatty:: @ 8CF8BE0 + .incbin "graphics/pokemon/palettes/delcatty_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Delcatty:: @ 8CF8C08 + .incbin "graphics/pokemon/icons/delcatty_icon.4bpp" + + .align 2 +gMonFootprint_Delcatty:: @ 8CF9008 + .incbin "graphics/pokemon/footprints/delcatty_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Kecleon:: @ 8CF9028 + .incbin "graphics/pokemon/front_pics/kecleon_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Kecleon:: @ 8CF93A8 + .incbin "graphics/pokemon/palettes/kecleon_palette.gbapal.lz" + + .align 2 +gMonBackPic_Kecleon:: @ 8CF93D0 + .incbin "graphics/pokemon/back_pics/kecleon_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Kecleon:: @ 8CF97A8 + .incbin "graphics/pokemon/palettes/kecleon_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Kecleon:: @ 8CF97D0 + .incbin "graphics/pokemon/icons/kecleon_icon.4bpp" + + .align 2 +gMonFootprint_Kecleon:: @ 8CF9BD0 + .incbin "graphics/pokemon/footprints/kecleon_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Baltoy:: @ 8CF9BF0 + .incbin "graphics/pokemon/front_pics/baltoy_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Baltoy:: @ 8CF9E14 + .incbin "graphics/pokemon/palettes/baltoy_palette.gbapal.lz" + + .align 2 +gMonBackPic_Baltoy:: @ 8CF9E34 + .incbin "graphics/pokemon/back_pics/baltoy_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Baltoy:: @ 8CFA0DC + .incbin "graphics/pokemon/palettes/baltoy_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Baltoy:: @ 8CFA0FC + .incbin "graphics/pokemon/icons/baltoy_icon.4bpp" + + .align 2 +gMonFootprint_Baltoy:: @ 8CFA4FC + .incbin "graphics/pokemon/footprints/baltoy_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Claydol:: @ 8CFA51C + .incbin "graphics/pokemon/front_pics/claydol_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Claydol:: @ 8CFA8D4 + .incbin "graphics/pokemon/palettes/claydol_palette.gbapal.lz" + + .align 2 +gMonBackPic_Claydol:: @ 8CFA8FC + .incbin "graphics/pokemon/back_pics/claydol_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Claydol:: @ 8CFACD0 + .incbin "graphics/pokemon/palettes/claydol_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Claydol:: @ 8CFACF8 + .incbin "graphics/pokemon/icons/claydol_icon.4bpp" + + .align 2 +gMonFootprint_Claydol:: @ 8CFB0F8 + .incbin "graphics/pokemon/footprints/claydol_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Nosepass:: @ 8CFB118 + .incbin "graphics/pokemon/front_pics/nosepass_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Nosepass:: @ 8CFB3E4 + .incbin "graphics/pokemon/palettes/nosepass_palette.gbapal.lz" + + .align 2 +gMonBackPic_Nosepass:: @ 8CFB40C + .incbin "graphics/pokemon/back_pics/nosepass_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Nosepass:: @ 8CFB6AC + .incbin "graphics/pokemon/palettes/nosepass_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Nosepass:: @ 8CFB6D4 + .incbin "graphics/pokemon/icons/nosepass_icon.4bpp" + + .align 2 +gMonFootprint_Nosepass:: @ 8CFBAD4 + .incbin "graphics/pokemon/footprints/nosepass_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Torkoal:: @ 8CFBAF4 + .incbin "graphics/pokemon/front_pics/torkoal_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Torkoal:: @ 8CFBFA0 + .incbin "graphics/pokemon/palettes/torkoal_palette.gbapal.lz" + + .align 2 +gMonBackPic_Torkoal:: @ 8CFBFC8 + .incbin "graphics/pokemon/back_pics/torkoal_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Torkoal:: @ 8CFC290 + .incbin "graphics/pokemon/palettes/torkoal_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Torkoal:: @ 8CFC2B8 + .incbin "graphics/pokemon/icons/torkoal_icon.4bpp" + + .align 2 +gMonFootprint_Torkoal:: @ 8CFC6B8 + .incbin "graphics/pokemon/footprints/torkoal_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Sableye:: @ 8CFC6D8 + .incbin "graphics/pokemon/front_pics/sableye_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Sableye:: @ 8CFC9AC + .incbin "graphics/pokemon/palettes/sableye_palette.gbapal.lz" + + .align 2 +gMonBackPic_Sableye:: @ 8CFC9D4 + .incbin "graphics/pokemon/back_pics/sableye_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Sableye:: @ 8CFCCFC + .incbin "graphics/pokemon/palettes/sableye_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Sableye:: @ 8CFCD24 + .incbin "graphics/pokemon/icons/sableye_icon.4bpp" + + .align 2 +gMonFootprint_Sableye:: @ 8CFD124 + .incbin "graphics/pokemon/footprints/sableye_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Barboach:: @ 8CFD144 + .incbin "graphics/pokemon/front_pics/barboach_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Barboach:: @ 8CFD3D4 + .incbin "graphics/pokemon/palettes/barboach_palette.gbapal.lz" + + .align 2 +gMonBackPic_Barboach:: @ 8CFD3FC + .incbin "graphics/pokemon/back_pics/barboach_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Barboach:: @ 8CFD68C + .incbin "graphics/pokemon/palettes/barboach_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Barboach:: @ 8CFD6B4 + .incbin "graphics/pokemon/icons/barboach_icon.4bpp" + + .align 2 +gMonFootprint_Barboach:: @ 8CFDAB4 + .incbin "graphics/pokemon/footprints/barboach_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Whiscash:: @ 8CFDAD4 + .incbin "graphics/pokemon/front_pics/whiscash_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Whiscash:: @ 8CFDE4C + .incbin "graphics/pokemon/palettes/whiscash_palette.gbapal.lz" + + .align 2 +gMonBackPic_Whiscash:: @ 8CFDE74 + .incbin "graphics/pokemon/back_pics/whiscash_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Whiscash:: @ 8CFE1C0 + .incbin "graphics/pokemon/palettes/whiscash_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Whiscash:: @ 8CFE1E8 + .incbin "graphics/pokemon/icons/whiscash_icon.4bpp" + + .align 2 +gMonFootprint_Whiscash:: @ 8CFE5E8 + .incbin "graphics/pokemon/footprints/whiscash_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Luvdisc:: @ 8CFE608 + .incbin "graphics/pokemon/front_pics/luvdisc_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Luvdisc:: @ 8CFE7C8 + .incbin "graphics/pokemon/palettes/luvdisc_palette.gbapal.lz" + + .align 2 +gMonBackPic_Luvdisc:: @ 8CFE7EC + .incbin "graphics/pokemon/back_pics/luvdisc_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Luvdisc:: @ 8CFE9C0 + .incbin "graphics/pokemon/palettes/luvdisc_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Luvdisc:: @ 8CFE9E4 + .incbin "graphics/pokemon/icons/luvdisc_icon.4bpp" + + .align 2 +gMonFootprint_Luvdisc:: @ 8CFEDE4 + .incbin "graphics/pokemon/footprints/luvdisc_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Corphish:: @ 8CFEE04 + .incbin "graphics/pokemon/front_pics/corphish_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Corphish:: @ 8CFF160 + .incbin "graphics/pokemon/palettes/corphish_palette.gbapal.lz" + + .align 2 +gMonBackPic_Corphish:: @ 8CFF188 + .incbin "graphics/pokemon/back_pics/corphish_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Corphish:: @ 8CFF4A4 + .incbin "graphics/pokemon/palettes/corphish_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Corphish:: @ 8CFF4CC + .incbin "graphics/pokemon/icons/corphish_icon.4bpp" + + .align 2 +gMonFootprint_Corphish:: @ 8CFF8CC + .incbin "graphics/pokemon/footprints/corphish_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Crawdaunt:: @ 8CFF8EC + .incbin "graphics/pokemon/front_pics/crawdaunt_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Crawdaunt:: @ 8CFFD7C + .incbin "graphics/pokemon/palettes/crawdaunt_palette.gbapal.lz" + + .align 2 +gMonBackPic_Crawdaunt:: @ 8CFFDA4 + .incbin "graphics/pokemon/back_pics/crawdaunt_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Crawdaunt:: @ 8D00188 + .incbin "graphics/pokemon/palettes/crawdaunt_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Crawdaunt:: @ 8D001B0 + .incbin "graphics/pokemon/icons/crawdaunt_icon.4bpp" + + .align 2 +gMonFootprint_Crawdaunt:: @ 8D005B0 + .incbin "graphics/pokemon/footprints/crawdaunt_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Feebas:: @ 8D005D0 + .incbin "graphics/pokemon/front_pics/feebas_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Feebas:: @ 8D0085C + .incbin "graphics/pokemon/palettes/feebas_palette.gbapal.lz" + + .align 2 +gMonBackPic_Feebas:: @ 8D00884 + .incbin "graphics/pokemon/back_pics/feebas_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Feebas:: @ 8D00BBC + .incbin "graphics/pokemon/palettes/feebas_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Feebas:: @ 8D00BE4 + .incbin "graphics/pokemon/icons/feebas_icon.4bpp" + + .align 2 +gMonFootprint_Feebas:: @ 8D00FE4 + .incbin "graphics/pokemon/footprints/feebas_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Milotic:: @ 8D01004 + .incbin "graphics/pokemon/front_pics/milotic_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Milotic:: @ 8D01494 + .incbin "graphics/pokemon/palettes/milotic_palette.gbapal.lz" + + .align 2 +gMonBackPic_Milotic:: @ 8D014BC + .incbin "graphics/pokemon/back_pics/milotic_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Milotic:: @ 8D017B0 + .incbin "graphics/pokemon/palettes/milotic_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Milotic:: @ 8D017D8 + .incbin "graphics/pokemon/icons/milotic_icon.4bpp" + + .align 2 +gMonFootprint_Milotic:: @ 8D01BD8 + .incbin "graphics/pokemon/footprints/milotic_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Carvanha:: @ 8D01BF8 + .incbin "graphics/pokemon/front_pics/carvanha_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Carvanha:: @ 8D01F24 + .incbin "graphics/pokemon/palettes/carvanha_palette.gbapal.lz" + + .align 2 +gMonBackPic_Carvanha:: @ 8D01F4C + .incbin "graphics/pokemon/back_pics/carvanha_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Carvanha:: @ 8D0225C + .incbin "graphics/pokemon/palettes/carvanha_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Carvanha:: @ 8D02284 + .incbin "graphics/pokemon/icons/carvanha_icon.4bpp" + + .align 2 +gMonFootprint_Carvanha:: @ 8D02684 + .incbin "graphics/pokemon/footprints/carvanha_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Sharpedo:: @ 8D026A4 + .incbin "graphics/pokemon/front_pics/sharpedo_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Sharpedo:: @ 8D02A34 + .incbin "graphics/pokemon/palettes/sharpedo_palette.gbapal.lz" + + .align 2 +gMonBackPic_Sharpedo:: @ 8D02A5C + .incbin "graphics/pokemon/back_pics/sharpedo_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Sharpedo:: @ 8D02DB4 + .incbin "graphics/pokemon/palettes/sharpedo_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Sharpedo:: @ 8D02DDC + .incbin "graphics/pokemon/icons/sharpedo_icon.4bpp" + + .align 2 +gMonFootprint_Sharpedo:: @ 8D031DC + .incbin "graphics/pokemon/footprints/sharpedo_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Trapinch:: @ 8D031FC + .incbin "graphics/pokemon/front_pics/trapinch_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Trapinch:: @ 8D03418 + .incbin "graphics/pokemon/palettes/trapinch_palette.gbapal.lz" + + .align 2 +gMonBackPic_Trapinch:: @ 8D03440 + .incbin "graphics/pokemon/back_pics/trapinch_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Trapinch:: @ 8D03660 + .incbin "graphics/pokemon/palettes/trapinch_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Trapinch:: @ 8D03688 + .incbin "graphics/pokemon/icons/trapinch_icon.4bpp" + + .align 2 +gMonFootprint_Trapinch:: @ 8D03A88 + .incbin "graphics/pokemon/footprints/trapinch_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Vibrava:: @ 8D03AA8 + .incbin "graphics/pokemon/front_pics/vibrava_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Vibrava:: @ 8D03E18 + .incbin "graphics/pokemon/palettes/vibrava_palette.gbapal.lz" + + .align 2 +gMonBackPic_Vibrava:: @ 8D03E40 + .incbin "graphics/pokemon/back_pics/vibrava_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Vibrava:: @ 8D040B8 + .incbin "graphics/pokemon/palettes/vibrava_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Vibrava:: @ 8D040E0 + .incbin "graphics/pokemon/icons/vibrava_icon.4bpp" + + .align 2 +gMonFootprint_Vibrava:: @ 8D044E0 + .incbin "graphics/pokemon/footprints/vibrava_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Flygon:: @ 8D04500 + .incbin "graphics/pokemon/front_pics/flygon_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Flygon:: @ 8D049F0 + .incbin "graphics/pokemon/palettes/flygon_palette.gbapal.lz" + + .align 2 +gMonBackPic_Flygon:: @ 8D04A18 + .incbin "graphics/pokemon/back_pics/flygon_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Flygon:: @ 8D04E54 + .incbin "graphics/pokemon/palettes/flygon_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Flygon:: @ 8D04E7C + .incbin "graphics/pokemon/icons/flygon_icon.4bpp" + + .align 2 +gMonFootprint_Flygon:: @ 8D0527C + .incbin "graphics/pokemon/footprints/flygon_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Makuhita:: @ 8D0529C + .incbin "graphics/pokemon/front_pics/makuhita_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Makuhita:: @ 8D055B4 + .incbin "graphics/pokemon/palettes/makuhita_palette.gbapal.lz" + + .align 2 +gMonBackPic_Makuhita:: @ 8D055DC + .incbin "graphics/pokemon/back_pics/makuhita_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Makuhita:: @ 8D058CC + .incbin "graphics/pokemon/palettes/makuhita_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Makuhita:: @ 8D058F0 + .incbin "graphics/pokemon/icons/makuhita_icon.4bpp" + + .align 2 +gMonFootprint_Makuhita:: @ 8D05CF0 + .incbin "graphics/pokemon/footprints/makuhita_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Hariyama:: @ 8D05D10 + .incbin "graphics/pokemon/front_pics/hariyama_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Hariyama:: @ 8D061C0 + .incbin "graphics/pokemon/palettes/hariyama_palette.gbapal.lz" + + .align 2 +gMonBackPic_Hariyama:: @ 8D061E8 + .incbin "graphics/pokemon/back_pics/hariyama_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Hariyama:: @ 8D065C8 + .incbin "graphics/pokemon/palettes/hariyama_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Hariyama:: @ 8D065F0 + .incbin "graphics/pokemon/icons/hariyama_icon.4bpp" + + .align 2 +gMonFootprint_Hariyama:: @ 8D069F0 + .incbin "graphics/pokemon/footprints/hariyama_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Electrike:: @ 8D06A10 + .incbin "graphics/pokemon/front_pics/electrike_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Electrike:: @ 8D06CA0 + .incbin "graphics/pokemon/palettes/electrike_palette.gbapal.lz" + + .align 2 +gMonBackPic_Electrike:: @ 8D06CC8 + .incbin "graphics/pokemon/back_pics/electrike_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Electrike:: @ 8D06F54 + .incbin "graphics/pokemon/palettes/electrike_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Electrike:: @ 8D06F7C + .incbin "graphics/pokemon/icons/electrike_icon.4bpp" + + .align 2 +gMonFootprint_Electrike:: @ 8D0737C + .incbin "graphics/pokemon/footprints/electrike_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Manectric:: @ 8D0739C + .incbin "graphics/pokemon/front_pics/manectric_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Manectric:: @ 8D076CC + .incbin "graphics/pokemon/palettes/manectric_palette.gbapal.lz" + + .align 2 +gMonBackPic_Manectric:: @ 8D076F4 + .incbin "graphics/pokemon/back_pics/manectric_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Manectric:: @ 8D07920 + .incbin "graphics/pokemon/palettes/manectric_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Manectric:: @ 8D07948 + .incbin "graphics/pokemon/icons/manectric_icon.4bpp" + + .align 2 +gMonFootprint_Manectric:: @ 8D07D48 + .incbin "graphics/pokemon/footprints/manectric_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Numel:: @ 8D07D68 + .incbin "graphics/pokemon/front_pics/numel_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Numel:: @ 8D08038 + .incbin "graphics/pokemon/palettes/numel_palette.gbapal.lz" + + .align 2 +gMonBackPic_Numel:: @ 8D08060 + .incbin "graphics/pokemon/back_pics/numel_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Numel:: @ 8D0831C + .incbin "graphics/pokemon/palettes/numel_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Numel:: @ 8D08344 + .incbin "graphics/pokemon/icons/numel_icon.4bpp" + + .align 2 +gMonFootprint_Numel:: @ 8D08744 + .incbin "graphics/pokemon/footprints/numel_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Camerupt:: @ 8D08764 + .incbin "graphics/pokemon/front_pics/camerupt_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Camerupt:: @ 8D08B7C + .incbin "graphics/pokemon/palettes/camerupt_palette.gbapal.lz" + + .align 2 +gMonBackPic_Camerupt:: @ 8D08BA4 + .incbin "graphics/pokemon/back_pics/camerupt_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Camerupt:: @ 8D08E68 + .incbin "graphics/pokemon/palettes/camerupt_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Camerupt:: @ 8D08E90 + .incbin "graphics/pokemon/icons/camerupt_icon.4bpp" + + .align 2 +gMonFootprint_Camerupt:: @ 8D09290 + .incbin "graphics/pokemon/footprints/camerupt_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Spheal:: @ 8D092B0 + .incbin "graphics/pokemon/front_pics/spheal_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Spheal:: @ 8D09524 + .incbin "graphics/pokemon/palettes/spheal_palette.gbapal.lz" + + .align 2 +gMonBackPic_Spheal:: @ 8D0954C + .incbin "graphics/pokemon/back_pics/spheal_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Spheal:: @ 8D09748 + .incbin "graphics/pokemon/palettes/spheal_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Spheal:: @ 8D09770 + .incbin "graphics/pokemon/icons/spheal_icon.4bpp" + + .align 2 +gMonFootprint_Spheal:: @ 8D09B70 + .incbin "graphics/pokemon/footprints/spheal_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Sealeo:: @ 8D09B90 + .incbin "graphics/pokemon/front_pics/sealeo_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Sealeo:: @ 8D09F10 + .incbin "graphics/pokemon/palettes/sealeo_palette.gbapal.lz" + + .align 2 +gMonBackPic_Sealeo:: @ 8D09F38 + .incbin "graphics/pokemon/back_pics/sealeo_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Sealeo:: @ 8D0A1B4 + .incbin "graphics/pokemon/palettes/sealeo_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Sealeo:: @ 8D0A1DC + .incbin "graphics/pokemon/icons/sealeo_icon.4bpp" + + .align 2 +gMonFootprint_Sealeo:: @ 8D0A5DC + .incbin "graphics/pokemon/footprints/sealeo_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Walrein:: @ 8D0A5FC + .incbin "graphics/pokemon/front_pics/walrein_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Walrein:: @ 8D0AD70 + .incbin "graphics/pokemon/palettes/walrein_palette.gbapal.lz" + + .align 2 +gMonBackPic_Walrein:: @ 8D0AD98 + .incbin "graphics/pokemon/back_pics/walrein_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Walrein:: @ 8D0B120 + .incbin "graphics/pokemon/palettes/walrein_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Walrein:: @ 8D0B148 + .incbin "graphics/pokemon/icons/walrein_icon.4bpp" + + .align 2 +gMonFootprint_Walrein:: @ 8D0B548 + .incbin "graphics/pokemon/footprints/walrein_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Cacnea:: @ 8D0B568 + .incbin "graphics/pokemon/front_pics/cacnea_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Cacnea:: @ 8D0B878 + .incbin "graphics/pokemon/palettes/cacnea_palette.gbapal.lz" + + .align 2 +gMonBackPic_Cacnea:: @ 8D0B8A0 + .incbin "graphics/pokemon/back_pics/cacnea_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Cacnea:: @ 8D0BC00 + .incbin "graphics/pokemon/palettes/cacnea_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Cacnea:: @ 8D0BC28 + .incbin "graphics/pokemon/icons/cacnea_icon.4bpp" + + .align 2 +gMonFootprint_Cacnea:: @ 8D0C028 + .incbin "graphics/pokemon/footprints/cacnea_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Cacturne:: @ 8D0C048 + .incbin "graphics/pokemon/front_pics/cacturne_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Cacturne:: @ 8D0C480 + .incbin "graphics/pokemon/palettes/cacturne_palette.gbapal.lz" + + .align 2 +gMonBackPic_Cacturne:: @ 8D0C4A8 + .incbin "graphics/pokemon/back_pics/cacturne_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Cacturne:: @ 8D0C7A8 + .incbin "graphics/pokemon/palettes/cacturne_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Cacturne:: @ 8D0C7D0 + .incbin "graphics/pokemon/icons/cacturne_icon.4bpp" + + .align 2 +gMonFootprint_Cacturne:: @ 8D0CBD0 + .incbin "graphics/pokemon/footprints/cacturne_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Snorunt:: @ 8D0CBF0 + .incbin "graphics/pokemon/front_pics/snorunt_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Snorunt:: @ 8D0CEB4 + .incbin "graphics/pokemon/palettes/snorunt_palette.gbapal.lz" + + .align 2 +gMonBackPic_Snorunt:: @ 8D0CEDC + .incbin "graphics/pokemon/back_pics/snorunt_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Snorunt:: @ 8D0D1C0 + .incbin "graphics/pokemon/palettes/snorunt_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Snorunt:: @ 8D0D1E8 + .incbin "graphics/pokemon/icons/snorunt_icon.4bpp" + + .align 2 +gMonFootprint_Snorunt:: @ 8D0D5E8 + .incbin "graphics/pokemon/footprints/snorunt_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Glalie:: @ 8D0D608 + .incbin "graphics/pokemon/front_pics/glalie_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Glalie:: @ 8D0D9D0 + .incbin "graphics/pokemon/palettes/glalie_palette.gbapal.lz" + + .align 2 +gMonBackPic_Glalie:: @ 8D0D9F8 + .incbin "graphics/pokemon/back_pics/glalie_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Glalie:: @ 8D0DDA8 + .incbin "graphics/pokemon/palettes/glalie_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Glalie:: @ 8D0DDD0 + .incbin "graphics/pokemon/icons/glalie_icon.4bpp" + + .align 2 +gMonFootprint_Glalie:: @ 8D0E1D0 + .incbin "graphics/pokemon/footprints/glalie_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Lunatone:: @ 8D0E1F0 + .incbin "graphics/pokemon/front_pics/lunatone_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Lunatone:: @ 8D0E518 + .incbin "graphics/pokemon/palettes/lunatone_palette.gbapal.lz" + + .align 2 +gMonBackPic_Lunatone:: @ 8D0E540 + .incbin "graphics/pokemon/back_pics/lunatone_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Lunatone:: @ 8D0E898 + .incbin "graphics/pokemon/palettes/lunatone_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Lunatone:: @ 8D0E8C0 + .incbin "graphics/pokemon/icons/lunatone_icon.4bpp" + + .align 2 +gMonFootprint_Lunatone:: @ 8D0ECC0 + .incbin "graphics/pokemon/footprints/lunatone_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Solrock:: @ 8D0ECE0 + .incbin "graphics/pokemon/front_pics/solrock_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Solrock:: @ 8D0F12C + .incbin "graphics/pokemon/palettes/solrock_palette.gbapal.lz" + + .align 2 +gMonBackPic_Solrock:: @ 8D0F154 + .incbin "graphics/pokemon/back_pics/solrock_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Solrock:: @ 8D0F540 + .incbin "graphics/pokemon/palettes/solrock_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Solrock:: @ 8D0F568 + .incbin "graphics/pokemon/icons/solrock_icon.4bpp" + + .align 2 +gMonFootprint_Solrock:: @ 8D0F968 + .incbin "graphics/pokemon/footprints/solrock_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Azurill:: @ 8D0F988 + .incbin "graphics/pokemon/front_pics/azurill_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Azurill:: @ 8D0FC50 + .incbin "graphics/pokemon/palettes/azurill_palette.gbapal.lz" + + .align 2 +gMonBackPic_Azurill:: @ 8D0FC78 + .incbin "graphics/pokemon/back_pics/azurill_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Azurill:: @ 8D0FF90 + .incbin "graphics/pokemon/palettes/azurill_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Azurill:: @ 8D0FFB8 + .incbin "graphics/pokemon/icons/azurill_icon.4bpp" + + .align 2 +gMonFootprint_Azurill:: @ 8D103B8 + .incbin "graphics/pokemon/footprints/azurill_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Spoink:: @ 8D103D8 + .incbin "graphics/pokemon/front_pics/spoink_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Spoink:: @ 8D10644 + .incbin "graphics/pokemon/palettes/spoink_palette.gbapal.lz" + + .align 2 +gMonBackPic_Spoink:: @ 8D1066C + .incbin "graphics/pokemon/back_pics/spoink_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Spoink:: @ 8D108AC + .incbin "graphics/pokemon/palettes/spoink_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Spoink:: @ 8D108D4 + .incbin "graphics/pokemon/icons/spoink_icon.4bpp" + + .align 2 +gMonFootprint_Spoink:: @ 8D10CD4 + .incbin "graphics/pokemon/footprints/spoink_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Grumpig:: @ 8D10CF4 + .incbin "graphics/pokemon/front_pics/grumpig_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Grumpig:: @ 8D110B0 + .incbin "graphics/pokemon/palettes/grumpig_palette.gbapal.lz" + + .align 2 +gMonBackPic_Grumpig:: @ 8D110D8 + .incbin "graphics/pokemon/back_pics/grumpig_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Grumpig:: @ 8D11438 + .incbin "graphics/pokemon/palettes/grumpig_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Grumpig:: @ 8D11460 + .incbin "graphics/pokemon/icons/grumpig_icon.4bpp" + + .align 2 +gMonFootprint_Grumpig:: @ 8D11860 + .incbin "graphics/pokemon/footprints/grumpig_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Plusle:: @ 8D11880 + .incbin "graphics/pokemon/front_pics/plusle_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Plusle:: @ 8D11B0C + .incbin "graphics/pokemon/palettes/plusle_palette.gbapal.lz" + + .align 2 +gMonBackPic_Plusle:: @ 8D11B34 + .incbin "graphics/pokemon/back_pics/plusle_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Plusle:: @ 8D11DEC + .incbin "graphics/pokemon/palettes/plusle_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Plusle:: @ 8D11E14 + .incbin "graphics/pokemon/icons/plusle_icon.4bpp" + + .align 2 +gMonFootprint_Plusle:: @ 8D12214 + .incbin "graphics/pokemon/footprints/plusle_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Minun:: @ 8D12234 + .incbin "graphics/pokemon/front_pics/minun_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Minun:: @ 8D1249C + .incbin "graphics/pokemon/palettes/minun_palette.gbapal.lz" + + .align 2 +gMonBackPic_Minun:: @ 8D124C4 + .incbin "graphics/pokemon/back_pics/minun_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Minun:: @ 8D1278C + .incbin "graphics/pokemon/palettes/minun_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Minun:: @ 8D127B4 + .incbin "graphics/pokemon/icons/minun_icon.4bpp" + + .align 2 +gMonFootprint_Minun:: @ 8D12BB4 + .incbin "graphics/pokemon/footprints/minun_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Mawile:: @ 8D12BD4 + .incbin "graphics/pokemon/front_pics/mawile_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Mawile:: @ 8D12F90 + .incbin "graphics/pokemon/palettes/mawile_palette.gbapal.lz" + + .align 2 +gMonBackPic_Mawile:: @ 8D12FB8 + .incbin "graphics/pokemon/back_pics/mawile_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Mawile:: @ 8D133B8 + .incbin "graphics/pokemon/palettes/mawile_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Mawile:: @ 8D133E0 + .incbin "graphics/pokemon/icons/mawile_icon.4bpp" + + .align 2 +gMonFootprint_Mawile:: @ 8D137E0 + .incbin "graphics/pokemon/footprints/mawile_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Meditite:: @ 8D13800 + .incbin "graphics/pokemon/front_pics/meditite_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Meditite:: @ 8D13AB8 + .incbin "graphics/pokemon/palettes/meditite_palette.gbapal.lz" + + .align 2 +gMonBackPic_Meditite:: @ 8D13AE0 + .incbin "graphics/pokemon/back_pics/meditite_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Meditite:: @ 8D13DA8 + .incbin "graphics/pokemon/palettes/meditite_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Meditite:: @ 8D13DCC + .incbin "graphics/pokemon/icons/meditite_icon.4bpp" + + .align 2 +gMonFootprint_Meditite:: @ 8D141CC + .incbin "graphics/pokemon/footprints/meditite_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Medicham:: @ 8D141EC + .incbin "graphics/pokemon/front_pics/medicham_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Medicham:: @ 8D1451C + .incbin "graphics/pokemon/palettes/medicham_palette.gbapal.lz" + + .align 2 +gMonBackPic_Medicham:: @ 8D14544 + .incbin "graphics/pokemon/back_pics/medicham_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Medicham:: @ 8D1487C + .incbin "graphics/pokemon/palettes/medicham_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Medicham:: @ 8D148A4 + .incbin "graphics/pokemon/icons/medicham_icon.4bpp" + + .align 2 +gMonFootprint_Medicham:: @ 8D14CA4 + .incbin "graphics/pokemon/footprints/medicham_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Swablu:: @ 8D14CC4 + .incbin "graphics/pokemon/front_pics/swablu_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Swablu:: @ 8D15274 + .incbin "graphics/pokemon/palettes/swablu_palette.gbapal.lz" + + .align 2 +gMonBackPic_Swablu:: @ 8D1529C + .incbin "graphics/pokemon/back_pics/swablu_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Swablu:: @ 8D15654 + .incbin "graphics/pokemon/palettes/swablu_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Swablu:: @ 8D1567C + .incbin "graphics/pokemon/icons/swablu_icon.4bpp" + + .align 2 +gMonFootprint_Swablu:: @ 8D15A7C + .incbin "graphics/pokemon/footprints/swablu_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Altaria:: @ 8D15A9C + .incbin "graphics/pokemon/front_pics/altaria_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Altaria:: @ 8D15E78 + .incbin "graphics/pokemon/palettes/altaria_palette.gbapal.lz" + + .align 2 +gMonBackPic_Altaria:: @ 8D15EA0 + .incbin "graphics/pokemon/back_pics/altaria_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Altaria:: @ 8D16218 + .incbin "graphics/pokemon/palettes/altaria_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Altaria:: @ 8D16240 + .incbin "graphics/pokemon/icons/altaria_icon.4bpp" + + .align 2 +gMonFootprint_Altaria:: @ 8D16640 + .incbin "graphics/pokemon/footprints/altaria_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Wynaut:: @ 8D16660 + .incbin "graphics/pokemon/front_pics/wynaut_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Wynaut:: @ 8D168F8 + .incbin "graphics/pokemon/palettes/wynaut_palette.gbapal.lz" + + .align 2 +gMonBackPic_Wynaut:: @ 8D16920 + .incbin "graphics/pokemon/back_pics/wynaut_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Wynaut:: @ 8D16BB0 + .incbin "graphics/pokemon/palettes/wynaut_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Wynaut:: @ 8D16BD8 + .incbin "graphics/pokemon/icons/wynaut_icon.4bpp" + + .align 2 +gMonFootprint_Wynaut:: @ 8D16FD8 + .incbin "graphics/pokemon/footprints/wynaut_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Duskull:: @ 8D16FF8 + .incbin "graphics/pokemon/front_pics/duskull_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Duskull:: @ 8D172E8 + .incbin "graphics/pokemon/palettes/duskull_palette.gbapal.lz" + + .align 2 +gMonBackPic_Duskull:: @ 8D17310 + .incbin "graphics/pokemon/back_pics/duskull_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Duskull:: @ 8D175C0 + .incbin "graphics/pokemon/palettes/duskull_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Duskull:: @ 8D175E8 + .incbin "graphics/pokemon/icons/duskull_icon.4bpp" + + .align 2 +gMonFootprint_Duskull:: @ 8D179E8 + .incbin "graphics/pokemon/footprints/duskull_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Dusclops:: @ 8D17A08 + .incbin "graphics/pokemon/front_pics/dusclops_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Dusclops:: @ 8D17DA8 + .incbin "graphics/pokemon/palettes/dusclops_palette.gbapal.lz" + + .align 2 +gMonBackPic_Dusclops:: @ 8D17DD0 + .incbin "graphics/pokemon/back_pics/dusclops_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Dusclops:: @ 8D180BC + .incbin "graphics/pokemon/palettes/dusclops_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Dusclops:: @ 8D180E4 + .incbin "graphics/pokemon/icons/dusclops_icon.4bpp" + + .align 2 +gMonFootprint_Dusclops:: @ 8D184E4 + .incbin "graphics/pokemon/footprints/dusclops_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Roselia:: @ 8D18504 + .incbin "graphics/pokemon/front_pics/roselia_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Roselia:: @ 8D18870 + .incbin "graphics/pokemon/palettes/roselia_palette.gbapal.lz" + + .align 2 +gMonBackPic_Roselia:: @ 8D18898 + .incbin "graphics/pokemon/back_pics/roselia_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Roselia:: @ 8D18C60 + .incbin "graphics/pokemon/palettes/roselia_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Roselia:: @ 8D18C88 + .incbin "graphics/pokemon/icons/roselia_icon.4bpp" + + .align 2 +gMonFootprint_Roselia:: @ 8D19088 + .incbin "graphics/pokemon/footprints/roselia_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Slakoth:: @ 8D190A8 + .incbin "graphics/pokemon/front_pics/slakoth_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Slakoth:: @ 8D19390 + .incbin "graphics/pokemon/palettes/slakoth_palette.gbapal.lz" + + .align 2 +gMonBackPic_Slakoth:: @ 8D193B8 + .incbin "graphics/pokemon/back_pics/slakoth_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Slakoth:: @ 8D196A0 + .incbin "graphics/pokemon/palettes/slakoth_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Slakoth:: @ 8D196C8 + .incbin "graphics/pokemon/icons/slakoth_icon.4bpp" + + .align 2 +gMonFootprint_Slakoth:: @ 8D19AC8 + .incbin "graphics/pokemon/footprints/slakoth_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Vigoroth:: @ 8D19AE8 + .incbin "graphics/pokemon/front_pics/vigoroth_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Vigoroth:: @ 8D19EE4 + .incbin "graphics/pokemon/palettes/vigoroth_palette.gbapal.lz" + + .align 2 +gMonBackPic_Vigoroth:: @ 8D19F0C + .incbin "graphics/pokemon/back_pics/vigoroth_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Vigoroth:: @ 8D1A1D4 + .incbin "graphics/pokemon/palettes/vigoroth_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Vigoroth:: @ 8D1A1FC + .incbin "graphics/pokemon/icons/vigoroth_icon.4bpp" + + .align 2 +gMonFootprint_Vigoroth:: @ 8D1A5FC + .incbin "graphics/pokemon/footprints/vigoroth_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Slaking:: @ 8D1A61C + .incbin "graphics/pokemon/front_pics/slaking_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Slaking:: @ 8D1AAF0 + .incbin "graphics/pokemon/palettes/slaking_palette.gbapal.lz" + + .align 2 +gMonBackPic_Slaking:: @ 8D1AB18 + .incbin "graphics/pokemon/back_pics/slaking_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Slaking:: @ 8D1AEDC + .incbin "graphics/pokemon/palettes/slaking_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Slaking:: @ 8D1AF04 + .incbin "graphics/pokemon/icons/slaking_icon.4bpp" + + .align 2 +gMonFootprint_Slaking:: @ 8D1B304 + .incbin "graphics/pokemon/footprints/slaking_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Gulpin:: @ 8D1B324 + .incbin "graphics/pokemon/front_pics/gulpin_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Gulpin:: @ 8D1B53C + .incbin "graphics/pokemon/palettes/gulpin_palette.gbapal.lz" + + .align 2 +gMonBackPic_Gulpin:: @ 8D1B564 + .incbin "graphics/pokemon/back_pics/gulpin_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Gulpin:: @ 8D1B7E8 + .incbin "graphics/pokemon/palettes/gulpin_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Gulpin:: @ 8D1B810 + .incbin "graphics/pokemon/icons/gulpin_icon.4bpp" + + .align 2 +gMonFootprint_Gulpin:: @ 8D1BC10 + .incbin "graphics/pokemon/footprints/gulpin_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Swalot:: @ 8D1BC30 + .incbin "graphics/pokemon/front_pics/swalot_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Swalot:: @ 8D1BF74 + .incbin "graphics/pokemon/palettes/swalot_palette.gbapal.lz" + + .align 2 +gMonBackPic_Swalot:: @ 8D1BF9C + .incbin "graphics/pokemon/back_pics/swalot_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Swalot:: @ 8D1C2E4 + .incbin "graphics/pokemon/palettes/swalot_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Swalot:: @ 8D1C30C + .incbin "graphics/pokemon/icons/swalot_icon.4bpp" + + .align 2 +gMonFootprint_Swalot:: @ 8D1C70C + .incbin "graphics/pokemon/footprints/swalot_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Tropius:: @ 8D1C72C + .incbin "graphics/pokemon/front_pics/tropius_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Tropius:: @ 8D1CCA4 + .incbin "graphics/pokemon/palettes/tropius_palette.gbapal.lz" + + .align 2 +gMonBackPic_Tropius:: @ 8D1CCCC + .incbin "graphics/pokemon/back_pics/tropius_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Tropius:: @ 8D1CFF0 + .incbin "graphics/pokemon/palettes/tropius_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Tropius:: @ 8D1D018 + .incbin "graphics/pokemon/icons/tropius_icon.4bpp" + + .align 2 +gMonFootprint_Tropius:: @ 8D1D418 + .incbin "graphics/pokemon/footprints/tropius_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Whismur:: @ 8D1D438 + .incbin "graphics/pokemon/front_pics/whismur_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Whismur:: @ 8D1D6CC + .incbin "graphics/pokemon/palettes/whismur_palette.gbapal.lz" + + .align 2 +gMonBackPic_Whismur:: @ 8D1D6F4 + .incbin "graphics/pokemon/back_pics/whismur_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Whismur:: @ 8D1D964 + .incbin "graphics/pokemon/palettes/whismur_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Whismur:: @ 8D1D98C + .incbin "graphics/pokemon/icons/whismur_icon.4bpp" + + .align 2 +gMonFootprint_Whismur:: @ 8D1DD8C + .incbin "graphics/pokemon/footprints/whismur_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Loudred:: @ 8D1DDAC + .incbin "graphics/pokemon/front_pics/loudred_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Loudred:: @ 8D1E224 + .incbin "graphics/pokemon/palettes/loudred_palette.gbapal.lz" + + .align 2 +gMonBackPic_Loudred:: @ 8D1E24C + .incbin "graphics/pokemon/back_pics/loudred_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Loudred:: @ 8D1E5BC + .incbin "graphics/pokemon/palettes/loudred_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Loudred:: @ 8D1E5E4 + .incbin "graphics/pokemon/icons/loudred_icon.4bpp" + + .align 2 +gMonFootprint_Loudred:: @ 8D1E9E4 + .incbin "graphics/pokemon/footprints/loudred_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Exploud:: @ 8D1EA04 + .incbin "graphics/pokemon/front_pics/exploud_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Exploud:: @ 8D1EF6C + .incbin "graphics/pokemon/palettes/exploud_palette.gbapal.lz" + + .align 2 +gMonBackPic_Exploud:: @ 8D1EF94 + .incbin "graphics/pokemon/back_pics/exploud_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Exploud:: @ 8D1F3A0 + .incbin "graphics/pokemon/palettes/exploud_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Exploud:: @ 8D1F3C8 + .incbin "graphics/pokemon/icons/exploud_icon.4bpp" + + .align 2 +gMonFootprint_Exploud:: @ 8D1F7C8 + .incbin "graphics/pokemon/footprints/exploud_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Clamperl:: @ 8D1F7E8 + .incbin "graphics/pokemon/front_pics/clamperl_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Clamperl:: @ 8D1FAC0 + .incbin "graphics/pokemon/palettes/clamperl_palette.gbapal.lz" + + .align 2 +gMonBackPic_Clamperl:: @ 8D1FAE8 + .incbin "graphics/pokemon/back_pics/clamperl_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Clamperl:: @ 8D1FD7C + .incbin "graphics/pokemon/palettes/clamperl_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Clamperl:: @ 8D1FDA4 + .incbin "graphics/pokemon/icons/clamperl_icon.4bpp" + + .align 2 +gMonFootprint_Clamperl:: @ 8D201A4 + .incbin "graphics/pokemon/footprints/clamperl_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Huntail:: @ 8D201C4 + .incbin "graphics/pokemon/front_pics/huntail_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Huntail:: @ 8D20590 + .incbin "graphics/pokemon/palettes/huntail_palette.gbapal.lz" + + .align 2 +gMonBackPic_Huntail:: @ 8D205B8 + .incbin "graphics/pokemon/back_pics/huntail_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Huntail:: @ 8D2090C + .incbin "graphics/pokemon/palettes/huntail_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Huntail:: @ 8D20934 + .incbin "graphics/pokemon/icons/huntail_icon.4bpp" + + .align 2 +gMonFootprint_Huntail:: @ 8D20D34 + .incbin "graphics/pokemon/footprints/huntail_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Gorebyss:: @ 8D20D54 + .incbin "graphics/pokemon/front_pics/gorebyss_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Gorebyss:: @ 8D21064 + .incbin "graphics/pokemon/palettes/gorebyss_palette.gbapal.lz" + + .align 2 +gMonBackPic_Gorebyss:: @ 8D2108C + .incbin "graphics/pokemon/back_pics/gorebyss_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Gorebyss:: @ 8D21374 + .incbin "graphics/pokemon/palettes/gorebyss_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Gorebyss:: @ 8D2139C + .incbin "graphics/pokemon/icons/gorebyss_icon.4bpp" + + .align 2 +gMonFootprint_Gorebyss:: @ 8D2179C + .incbin "graphics/pokemon/footprints/gorebyss_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Absol:: @ 8D217BC + .incbin "graphics/pokemon/front_pics/absol_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Absol:: @ 8D21BEC + .incbin "graphics/pokemon/palettes/absol_palette.gbapal.lz" + + .align 2 +gMonBackPic_Absol:: @ 8D21C14 + .incbin "graphics/pokemon/back_pics/absol_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Absol:: @ 8D21F74 + .incbin "graphics/pokemon/palettes/absol_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Absol:: @ 8D21F9C + .incbin "graphics/pokemon/icons/absol_icon.4bpp" + + .align 2 +gMonFootprint_Absol:: @ 8D2239C + .incbin "graphics/pokemon/footprints/absol_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Shuppet:: @ 8D223BC + .incbin "graphics/pokemon/front_pics/shuppet_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Shuppet:: @ 8D225F4 + .incbin "graphics/pokemon/palettes/shuppet_palette.gbapal.lz" + + .align 2 +gMonBackPic_Shuppet:: @ 8D2261C + .incbin "graphics/pokemon/back_pics/shuppet_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Shuppet:: @ 8D228B4 + .incbin "graphics/pokemon/palettes/shuppet_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Shuppet:: @ 8D228DC + .incbin "graphics/pokemon/icons/shuppet_icon.4bpp" + + .align 2 +gMonFootprint_Shuppet:: @ 8D22CDC + .incbin "graphics/pokemon/footprints/shuppet_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Banette:: @ 8D22CFC + .incbin "graphics/pokemon/front_pics/banette_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Banette:: @ 8D22FB0 + .incbin "graphics/pokemon/palettes/banette_palette.gbapal.lz" + + .align 2 +gMonBackPic_Banette:: @ 8D22FD8 + .incbin "graphics/pokemon/back_pics/banette_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Banette:: @ 8D23254 + .incbin "graphics/pokemon/palettes/banette_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Banette:: @ 8D2327C + .incbin "graphics/pokemon/icons/banette_icon.4bpp" + + .align 2 +gMonFootprint_Banette:: @ 8D2367C + .incbin "graphics/pokemon/footprints/banette_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Seviper:: @ 8D2369C + .incbin "graphics/pokemon/front_pics/seviper_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Seviper:: @ 8D23ABC + .incbin "graphics/pokemon/palettes/seviper_palette.gbapal.lz" + + .align 2 +gMonBackPic_Seviper:: @ 8D23AE4 + .incbin "graphics/pokemon/back_pics/seviper_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Seviper:: @ 8D23F70 + .incbin "graphics/pokemon/palettes/seviper_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Seviper:: @ 8D23F98 + .incbin "graphics/pokemon/icons/seviper_icon.4bpp" + + .align 2 +gMonFootprint_Seviper:: @ 8D24398 + .incbin "graphics/pokemon/footprints/seviper_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Zangoose:: @ 8D243B8 + .incbin "graphics/pokemon/front_pics/zangoose_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Zangoose:: @ 8D24784 + .incbin "graphics/pokemon/palettes/zangoose_palette.gbapal.lz" + + .align 2 +gMonBackPic_Zangoose:: @ 8D247AC + .incbin "graphics/pokemon/back_pics/zangoose_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Zangoose:: @ 8D24B20 + .incbin "graphics/pokemon/palettes/zangoose_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Zangoose:: @ 8D24B48 + .incbin "graphics/pokemon/icons/zangoose_icon.4bpp" + + .align 2 +gMonFootprint_Zangoose:: @ 8D24F48 + .incbin "graphics/pokemon/footprints/zangoose_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Relicanth:: @ 8D24F68 + .incbin "graphics/pokemon/front_pics/relicanth_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Relicanth:: @ 8D252FC + .incbin "graphics/pokemon/palettes/relicanth_palette.gbapal.lz" + + .align 2 +gMonBackPic_Relicanth:: @ 8D25324 + .incbin "graphics/pokemon/back_pics/relicanth_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Relicanth:: @ 8D2567C + .incbin "graphics/pokemon/palettes/relicanth_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Relicanth:: @ 8D256A4 + .incbin "graphics/pokemon/icons/relicanth_icon.4bpp" + + .align 2 +gMonFootprint_Relicanth:: @ 8D25AA4 + .incbin "graphics/pokemon/footprints/relicanth_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Aron:: @ 8D25AC4 + .incbin "graphics/pokemon/front_pics/aron_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Aron:: @ 8D25CAC + .incbin "graphics/pokemon/palettes/aron_palette.gbapal.lz" + + .align 2 +gMonBackPic_Aron:: @ 8D25CD4 + .incbin "graphics/pokemon/back_pics/aron_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Aron:: @ 8D25EFC + .incbin "graphics/pokemon/palettes/aron_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Aron:: @ 8D25F24 + .incbin "graphics/pokemon/icons/aron_icon.4bpp" + + .align 2 +gMonFootprint_Aron:: @ 8D26324 + .incbin "graphics/pokemon/footprints/aron_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Lairon:: @ 8D26344 + .incbin "graphics/pokemon/front_pics/lairon_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Lairon:: @ 8D26710 + .incbin "graphics/pokemon/palettes/lairon_palette.gbapal.lz" + + .align 2 +gMonBackPic_Lairon:: @ 8D26738 + .incbin "graphics/pokemon/back_pics/lairon_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Lairon:: @ 8D26A24 + .incbin "graphics/pokemon/palettes/lairon_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Lairon:: @ 8D26A4C + .incbin "graphics/pokemon/icons/lairon_icon.4bpp" + + .align 2 +gMonFootprint_Lairon:: @ 8D26E4C + .incbin "graphics/pokemon/footprints/lairon_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Aggron:: @ 8D26E6C + .incbin "graphics/pokemon/front_pics/aggron_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Aggron:: @ 8D273E8 + .incbin "graphics/pokemon/palettes/aggron_palette.gbapal.lz" + + .align 2 +gMonBackPic_Aggron:: @ 8D27410 + .incbin "graphics/pokemon/back_pics/aggron_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Aggron:: @ 8D27838 + .incbin "graphics/pokemon/palettes/aggron_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Aggron:: @ 8D27860 + .incbin "graphics/pokemon/icons/aggron_icon.4bpp" + + .align 2 +gMonFootprint_Aggron:: @ 8D27C60 + .incbin "graphics/pokemon/footprints/aggron_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Castform:: @ 8D27C80 + .incbin "graphics/pokemon/front_pics/castform_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Castform:: @ 8D28708 + .incbin "graphics/pokemon/palettes/castform_palette.gbapal.lz" + + .align 2 +gMonBackPic_Castform:: @ 8D28788 + .incbin "graphics/pokemon/back_pics/castform_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Castform:: @ 8D29144 + .incbin "graphics/pokemon/palettes/castform_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Castform:: @ 8D291C0 + .incbin "graphics/pokemon/icons/castform_icon.4bpp" + + .align 2 +gMonFootprint_Castform:: @ 8D295C0 + .incbin "graphics/pokemon/footprints/castform_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Volbeat:: @ 8D295E0 + .incbin "graphics/pokemon/front_pics/volbeat_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Volbeat:: @ 8D29970 + .incbin "graphics/pokemon/palettes/volbeat_palette.gbapal.lz" + + .align 2 +gMonBackPic_Volbeat:: @ 8D29998 + .incbin "graphics/pokemon/back_pics/volbeat_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Volbeat:: @ 8D29CF8 + .incbin "graphics/pokemon/palettes/volbeat_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Volbeat:: @ 8D29D20 + .incbin "graphics/pokemon/icons/volbeat_icon.4bpp" + + .align 2 +gMonFootprint_Volbeat:: @ 8D2A120 + .incbin "graphics/pokemon/footprints/volbeat_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Illumise:: @ 8D2A140 + .incbin "graphics/pokemon/front_pics/illumise_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Illumise:: @ 8D2A4B4 + .incbin "graphics/pokemon/palettes/illumise_palette.gbapal.lz" + + .align 2 +gMonBackPic_Illumise:: @ 8D2A4DC + .incbin "graphics/pokemon/back_pics/illumise_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Illumise:: @ 8D2A7F8 + .incbin "graphics/pokemon/palettes/illumise_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Illumise:: @ 8D2A820 + .incbin "graphics/pokemon/icons/illumise_icon.4bpp" + + .align 2 +gMonFootprint_Illumise:: @ 8D2AC20 + .incbin "graphics/pokemon/footprints/illumise_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Lileep:: @ 8D2AC40 + .incbin "graphics/pokemon/front_pics/lileep_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Lileep:: @ 8D2AF84 + .incbin "graphics/pokemon/palettes/lileep_palette.gbapal.lz" + + .align 2 +gMonBackPic_Lileep:: @ 8D2AFAC + .incbin "graphics/pokemon/back_pics/lileep_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Lileep:: @ 8D2B2F0 + .incbin "graphics/pokemon/palettes/lileep_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Lileep:: @ 8D2B318 + .incbin "graphics/pokemon/icons/lileep_icon.4bpp" + + .align 2 +gMonFootprint_Lileep:: @ 8D2B718 + .incbin "graphics/pokemon/footprints/lileep_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Cradily:: @ 8D2B738 + .incbin "graphics/pokemon/front_pics/cradily_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Cradily:: @ 8D2BB54 + .incbin "graphics/pokemon/palettes/cradily_palette.gbapal.lz" + + .align 2 +gMonBackPic_Cradily:: @ 8D2BB7C + .incbin "graphics/pokemon/back_pics/cradily_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Cradily:: @ 8D2BF78 + .incbin "graphics/pokemon/palettes/cradily_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Cradily:: @ 8D2BFA0 + .incbin "graphics/pokemon/icons/cradily_icon.4bpp" + + .align 2 +gMonFootprint_Cradily:: @ 8D2C3A0 + .incbin "graphics/pokemon/footprints/cradily_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Anorith:: @ 8D2C3C0 + .incbin "graphics/pokemon/front_pics/anorith_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Anorith:: @ 8D2C6E4 + .incbin "graphics/pokemon/palettes/anorith_palette.gbapal.lz" + + .align 2 +gMonBackPic_Anorith:: @ 8D2C70C + .incbin "graphics/pokemon/back_pics/anorith_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Anorith:: @ 8D2C954 + .incbin "graphics/pokemon/palettes/anorith_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Anorith:: @ 8D2C97C + .incbin "graphics/pokemon/icons/anorith_icon.4bpp" + + .align 2 +gMonFootprint_Anorith:: @ 8D2CD7C + .incbin "graphics/pokemon/footprints/anorith_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Armaldo:: @ 8D2CD9C + .incbin "graphics/pokemon/front_pics/armaldo_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Armaldo:: @ 8D2D31C + .incbin "graphics/pokemon/palettes/armaldo_palette.gbapal.lz" + + .align 2 +gMonBackPic_Armaldo:: @ 8D2D344 + .incbin "graphics/pokemon/back_pics/armaldo_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Armaldo:: @ 8D2D77C + .incbin "graphics/pokemon/palettes/armaldo_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Armaldo:: @ 8D2D7A4 + .incbin "graphics/pokemon/icons/armaldo_icon.4bpp" + + .align 2 +gMonFootprint_Armaldo:: @ 8D2DBA4 + .incbin "graphics/pokemon/footprints/armaldo_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Ralts:: @ 8D2DBC4 + .incbin "graphics/pokemon/front_pics/ralts_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Ralts:: @ 8D2DDF4 + .incbin "graphics/pokemon/palettes/ralts_palette.gbapal.lz" + + .align 2 +gMonBackPic_Ralts:: @ 8D2DE1C + .incbin "graphics/pokemon/back_pics/ralts_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Ralts:: @ 8D2E058 + .incbin "graphics/pokemon/palettes/ralts_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Ralts:: @ 8D2E080 + .incbin "graphics/pokemon/icons/ralts_icon.4bpp" + + .align 2 +gMonFootprint_Ralts:: @ 8D2E480 + .incbin "graphics/pokemon/footprints/ralts_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Kirlia:: @ 8D2E4A0 + .incbin "graphics/pokemon/front_pics/kirlia_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Kirlia:: @ 8D2E79C + .incbin "graphics/pokemon/palettes/kirlia_palette.gbapal.lz" + + .align 2 +gMonBackPic_Kirlia:: @ 8D2E7C4 + .incbin "graphics/pokemon/back_pics/kirlia_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Kirlia:: @ 8D2EB38 + .incbin "graphics/pokemon/palettes/kirlia_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Kirlia:: @ 8D2EB60 + .incbin "graphics/pokemon/icons/kirlia_icon.4bpp" + + .align 2 +gMonFootprint_Kirlia:: @ 8D2EF60 + .incbin "graphics/pokemon/footprints/kirlia_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Gardevoir:: @ 8D2EF80 + .incbin "graphics/pokemon/front_pics/gardevoir_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Gardevoir:: @ 8D2F2FC + .incbin "graphics/pokemon/palettes/gardevoir_palette.gbapal.lz" + + .align 2 +gMonBackPic_Gardevoir:: @ 8D2F324 + .incbin "graphics/pokemon/back_pics/gardevoir_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Gardevoir:: @ 8D2F658 + .incbin "graphics/pokemon/palettes/gardevoir_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Gardevoir:: @ 8D2F680 + .incbin "graphics/pokemon/icons/gardevoir_icon.4bpp" + + .align 2 +gMonFootprint_Gardevoir:: @ 8D2FA80 + .incbin "graphics/pokemon/footprints/gardevoir_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Bagon:: @ 8D2FAA0 + .incbin "graphics/pokemon/front_pics/bagon_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Bagon:: @ 8D2FD18 + .incbin "graphics/pokemon/palettes/bagon_palette.gbapal.lz" + + .align 2 +gMonBackPic_Bagon:: @ 8D2FD40 + .incbin "graphics/pokemon/back_pics/bagon_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Bagon:: @ 8D30028 + .incbin "graphics/pokemon/palettes/bagon_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Bagon:: @ 8D30050 + .incbin "graphics/pokemon/icons/bagon_icon.4bpp" + + .align 2 +gMonFootprint_Bagon:: @ 8D30450 + .incbin "graphics/pokemon/footprints/bagon_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Shelgon:: @ 8D30470 + .incbin "graphics/pokemon/front_pics/shelgon_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Shelgon:: @ 8D30774 + .incbin "graphics/pokemon/palettes/shelgon_palette.gbapal.lz" + + .align 2 +gMonBackPic_Shelgon:: @ 8D3079C + .incbin "graphics/pokemon/back_pics/shelgon_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Shelgon:: @ 8D30A84 + .incbin "graphics/pokemon/palettes/shelgon_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Shelgon:: @ 8D30AAC + .incbin "graphics/pokemon/icons/shelgon_icon.4bpp" + + .align 2 +gMonFootprint_Shelgon:: @ 8D30EAC + .incbin "graphics/pokemon/footprints/shelgon_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Salamence:: @ 8D30ECC + .incbin "graphics/pokemon/front_pics/salamence_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Salamence:: @ 8D31330 + .incbin "graphics/pokemon/palettes/salamence_palette.gbapal.lz" + + .align 2 +gMonBackPic_Salamence:: @ 8D31358 + .incbin "graphics/pokemon/back_pics/salamence_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Salamence:: @ 8D3163C + .incbin "graphics/pokemon/palettes/salamence_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Salamence:: @ 8D31664 + .incbin "graphics/pokemon/icons/salamence_icon.4bpp" + + .align 2 +gMonFootprint_Salamence:: @ 8D31A64 + .incbin "graphics/pokemon/footprints/salamence_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Beldum:: @ 8D31A84 + .incbin "graphics/pokemon/front_pics/beldum_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Beldum:: @ 8D31CF4 + .incbin "graphics/pokemon/palettes/beldum_palette.gbapal.lz" + + .align 2 +gMonBackPic_Beldum:: @ 8D31D1C + .incbin "graphics/pokemon/back_pics/beldum_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Beldum:: @ 8D3200C + .incbin "graphics/pokemon/palettes/beldum_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Beldum:: @ 8D32034 + .incbin "graphics/pokemon/icons/beldum_icon.4bpp" + + .align 2 +gMonFootprint_Beldum:: @ 8D32434 + .incbin "graphics/pokemon/footprints/beldum_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Metang:: @ 8D32454 + .incbin "graphics/pokemon/front_pics/metang_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Metang:: @ 8D328B0 + .incbin "graphics/pokemon/palettes/metang_palette.gbapal.lz" + + .align 2 +gMonBackPic_Metang:: @ 8D328D8 + .incbin "graphics/pokemon/back_pics/metang_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Metang:: @ 8D32BFC + .incbin "graphics/pokemon/palettes/metang_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Metang:: @ 8D32C24 + .incbin "graphics/pokemon/icons/metang_icon.4bpp" + + .align 2 +gMonFootprint_Metang:: @ 8D33024 + .incbin "graphics/pokemon/footprints/metang_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Metagross:: @ 8D33044 + .incbin "graphics/pokemon/front_pics/metagross_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Metagross:: @ 8D334A8 + .incbin "graphics/pokemon/palettes/metagross_palette.gbapal.lz" + + .align 2 +gMonBackPic_Metagross:: @ 8D334D0 + .incbin "graphics/pokemon/back_pics/metagross_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Metagross:: @ 8D3379C + .incbin "graphics/pokemon/palettes/metagross_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Metagross:: @ 8D337C4 + .incbin "graphics/pokemon/icons/metagross_icon.4bpp" + + .align 2 +gMonFootprint_Metagross:: @ 8D33BC4 + .incbin "graphics/pokemon/footprints/metagross_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Regirock:: @ 8D33BE4 + .incbin "graphics/pokemon/front_pics/regirock_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Regirock:: @ 8D340A0 + .incbin "graphics/pokemon/palettes/regirock_palette.gbapal.lz" + + .align 2 +gMonBackPic_Regirock:: @ 8D340C8 + .incbin "graphics/pokemon/back_pics/regirock_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Regirock:: @ 8D34514 + .incbin "graphics/pokemon/palettes/regirock_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Regirock:: @ 8D3453C + .incbin "graphics/pokemon/icons/regirock_icon.4bpp" + + .align 2 +gMonFootprint_Regirock:: @ 8D3493C + .incbin "graphics/pokemon/footprints/regirock_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Regice:: @ 8D3495C + .incbin "graphics/pokemon/front_pics/regice_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Regice:: @ 8D34DA4 + .incbin "graphics/pokemon/palettes/regice_palette.gbapal.lz" + + .align 2 +gMonBackPic_Regice:: @ 8D34DCC + .incbin "graphics/pokemon/back_pics/regice_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Regice:: @ 8D350BC + .incbin "graphics/pokemon/palettes/regice_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Regice:: @ 8D350E4 + .incbin "graphics/pokemon/icons/regice_icon.4bpp" + + .align 2 +gMonFootprint_Regice:: @ 8D354E4 + .incbin "graphics/pokemon/footprints/regice_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Registeel:: @ 8D35504 + .incbin "graphics/pokemon/front_pics/registeel_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Registeel:: @ 8D3598C + .incbin "graphics/pokemon/palettes/registeel_palette.gbapal.lz" + + .align 2 +gMonBackPic_Registeel:: @ 8D359B4 + .incbin "graphics/pokemon/back_pics/registeel_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Registeel:: @ 8D35CEC + .incbin "graphics/pokemon/palettes/registeel_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Registeel:: @ 8D35D14 + .incbin "graphics/pokemon/icons/registeel_icon.4bpp" + + .align 2 +gMonFootprint_Registeel:: @ 8D36114 + .incbin "graphics/pokemon/footprints/registeel_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Kyogre:: @ 8D36134 + .incbin "graphics/pokemon/front_pics/kyogre_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Kyogre:: @ 8D365A4 + .incbin "graphics/pokemon/palettes/kyogre_palette.gbapal.lz" + + .align 2 +gMonBackPic_Kyogre:: @ 8D365CC + .incbin "graphics/pokemon/back_pics/kyogre_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Kyogre:: @ 8D36844 + .incbin "graphics/pokemon/palettes/kyogre_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Kyogre:: @ 8D3686C + .incbin "graphics/pokemon/icons/kyogre_icon.4bpp" + + .align 2 +gMonFootprint_Kyogre:: @ 8D36C6C + .incbin "graphics/pokemon/footprints/kyogre_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Groudon:: @ 8D36C8C + .incbin "graphics/pokemon/front_pics/groudon_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Groudon:: @ 8D37220 + .incbin "graphics/pokemon/palettes/groudon_palette.gbapal.lz" + + .align 2 +gMonBackPic_Groudon:: @ 8D37248 + .incbin "graphics/pokemon/back_pics/groudon_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Groudon:: @ 8D376B0 + .incbin "graphics/pokemon/palettes/groudon_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Groudon:: @ 8D376D8 + .incbin "graphics/pokemon/icons/groudon_icon.4bpp" + + .align 2 +gMonFootprint_Groudon:: @ 8D37AD8 + .incbin "graphics/pokemon/footprints/groudon_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Rayquaza:: @ 8D37AF8 + .incbin "graphics/pokemon/front_pics/rayquaza_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Rayquaza:: @ 8D382E4 + .incbin "graphics/pokemon/palettes/rayquaza_palette.gbapal.lz" + + .align 2 +gMonBackPic_Rayquaza:: @ 8D3830C + .incbin "graphics/pokemon/back_pics/rayquaza_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Rayquaza:: @ 8D38644 + .incbin "graphics/pokemon/palettes/rayquaza_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Rayquaza:: @ 8D3866C + .incbin "graphics/pokemon/icons/rayquaza_icon.4bpp" + + .align 2 +gMonFootprint_Rayquaza:: @ 8D38A6C + .incbin "graphics/pokemon/footprints/rayquaza_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Latias:: @ 8D38A8C + .incbin "graphics/pokemon/front_pics/latias_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Latias:: @ 8D38EB0 + .incbin "graphics/pokemon/palettes/latias_palette.gbapal.lz" + + .align 2 +gMonBackPic_Latias:: @ 8D38ED8 + .incbin "graphics/pokemon/back_pics/latias_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Latias:: @ 8D391D4 + .incbin "graphics/pokemon/palettes/latias_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Latias:: @ 8D391FC + .incbin "graphics/pokemon/icons/latias_icon.4bpp" + + .align 2 +gMonFootprint_Latias:: @ 8D395FC + .incbin "graphics/pokemon/footprints/latias_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Latios:: @ 8D3961C + .incbin "graphics/pokemon/front_pics/latios_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Latios:: @ 8D39A70 + .incbin "graphics/pokemon/palettes/latios_palette.gbapal.lz" + + .align 2 +gMonBackPic_Latios:: @ 8D39A98 + .incbin "graphics/pokemon/back_pics/latios_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Latios:: @ 8D39DF8 + .incbin "graphics/pokemon/palettes/latios_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Latios:: @ 8D39E20 + .incbin "graphics/pokemon/icons/latios_icon.4bpp" + + .align 2 +gMonFootprint_Latios:: @ 8D3A220 + .incbin "graphics/pokemon/footprints/latios_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Jirachi:: @ 8D3A240 + .incbin "graphics/pokemon/front_pics/jirachi_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Jirachi:: @ 8D3A54C + .incbin "graphics/pokemon/palettes/jirachi_palette.gbapal.lz" + + .align 2 +gMonBackPic_Jirachi:: @ 8D3A574 + .incbin "graphics/pokemon/back_pics/jirachi_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Jirachi:: @ 8D3A914 + .incbin "graphics/pokemon/palettes/jirachi_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Jirachi:: @ 8D3A93C + .incbin "graphics/pokemon/icons/jirachi_icon.4bpp" + + .align 2 +gMonFootprint_Jirachi:: @ 8D3AD3C + .incbin "graphics/pokemon/footprints/jirachi_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Deoxys:: @ 8D3AD5C + .incbin "graphics/pokemon/front_pics/deoxys_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Deoxys:: @ 8D3B138 + .incbin "graphics/pokemon/palettes/deoxys_palette.gbapal.lz" + + .align 2 +gMonBackPic_Deoxys:: @ 8D3B160 + .incbin "graphics/pokemon/back_pics/deoxys_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Deoxys:: @ 8D3B7D0 + .incbin "graphics/pokemon/palettes/deoxys_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Deoxys:: @ 8D3B7F8 + .incbin "graphics/pokemon/icons/deoxys_icon.4bpp" + + .incbin "baserom.gba", 0xd3bbf8, 0x8000 + + .align 2 +gMonFootprint_Deoxys:: @ 8D43BF8 + .incbin "graphics/pokemon/footprints/deoxys_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Chimecho:: @ 8D43C18 + .incbin "graphics/pokemon/front_pics/chimecho_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Chimecho:: @ 8D43E64 + .incbin "graphics/pokemon/palettes/chimecho_palette.gbapal.lz" + + .align 2 +gMonBackPic_Chimecho:: @ 8D43E8C + .incbin "graphics/pokemon/back_pics/chimecho_back_pic.4bpp.lz" + + .align 2 +gMonShinyPalette_Chimecho:: @ 8D44100 + .incbin "graphics/pokemon/palettes/chimecho_shiny_palette.gbapal.lz" + + .align 2 +gMonIcon_Chimecho:: @ 8D44128 + .incbin "graphics/pokemon/icons/chimecho_icon.4bpp" + + .align 2 +gMonFootprint_Chimecho:: @ 8D44528 + .incbin "graphics/pokemon/footprints/chimecho_footprint.1bpp" + + .align 2 +gMonStillFrontPic_Egg:: @ 8D44548 + .incbin "graphics/pokemon/front_pics/egg_still_front_pic.4bpp.lz" + + .align 2 +gMonPalette_Egg:: @ 8D446FC + .incbin "graphics/pokemon/palettes/egg_palette.gbapal.lz" + + .align 2 +gMonStillFrontPic_UnownB:: @ 8D4471C + .incbin "graphics/pokemon/front_pics/unown_b_still_front_pic.4bpp.lz" + + .align 2 +gMonBackPic_UnownB:: @ 8D448F4 + .incbin "graphics/pokemon/back_pics/unown_b_back_pic.4bpp.lz" + + .align 2 +gMonIcon_UnownB:: @ 8D44AF8 + .incbin "graphics/pokemon/icons/unown_B_icon.4bpp" + + .align 2 +gMonStillFrontPic_UnownC:: @ 8D44EF8 + .incbin "graphics/pokemon/front_pics/unown_c_still_front_pic.4bpp.lz" + + .align 2 +gMonBackPic_UnownC:: @ 8D4510C + .incbin "graphics/pokemon/back_pics/unown_c_back_pic.4bpp.lz" + + .align 2 +gMonIcon_UnownC:: @ 8D453B8 + .incbin "graphics/pokemon/icons/unown_C_icon.4bpp" + + .align 2 +gMonStillFrontPic_UnownD:: @ 8D457B8 + .incbin "graphics/pokemon/front_pics/unown_d_still_front_pic.4bpp.lz" + + .align 2 +gMonBackPic_UnownD:: @ 8D459B0 + .incbin "graphics/pokemon/back_pics/unown_d_back_pic.4bpp.lz" + + .align 2 +gMonIcon_UnownD:: @ 8D45C08 + .incbin "graphics/pokemon/icons/unown_D_icon.4bpp" + + .align 2 +gMonStillFrontPic_UnownE:: @ 8D46008 + .incbin "graphics/pokemon/front_pics/unown_e_still_front_pic.4bpp.lz" + + .align 2 +gMonBackPic_UnownE:: @ 8D461C0 + .incbin "graphics/pokemon/back_pics/unown_e_back_pic.4bpp.lz" + + .align 2 +gMonIcon_UnownE:: @ 8D463C0 + .incbin "graphics/pokemon/icons/unown_E_icon.4bpp" + + .align 2 +gMonStillFrontPic_UnownF:: @ 8D467C0 + .incbin "graphics/pokemon/front_pics/unown_f_still_front_pic.4bpp.lz" + + .align 2 +gMonBackPic_UnownF:: @ 8D469B4 + .incbin "graphics/pokemon/back_pics/unown_f_back_pic.4bpp.lz" + + .align 2 +gMonIcon_UnownF:: @ 8D46BD0 + .incbin "graphics/pokemon/icons/unown_F_icon.4bpp" + + .align 2 +gMonStillFrontPic_UnownG:: @ 8D46FD0 + .incbin "graphics/pokemon/front_pics/unown_g_still_front_pic.4bpp.lz" + + .align 2 +gMonBackPic_UnownG:: @ 8D471AC + .incbin "graphics/pokemon/back_pics/unown_g_back_pic.4bpp.lz" + + .align 2 +gMonIcon_UnownG:: @ 8D473F8 + .incbin "graphics/pokemon/icons/unown_G_icon.4bpp" + + .align 2 +gMonStillFrontPic_UnownH:: @ 8D477F8 + .incbin "graphics/pokemon/front_pics/unown_h_still_front_pic.4bpp.lz" + + .align 2 +gMonBackPic_UnownH:: @ 8D47A3C + .incbin "graphics/pokemon/back_pics/unown_h_back_pic.4bpp.lz" + + .align 2 +gMonIcon_UnownH:: @ 8D47D00 + .incbin "graphics/pokemon/icons/unown_H_icon.4bpp" + + .align 2 +gMonStillFrontPic_UnownI:: @ 8D48100 + .incbin "graphics/pokemon/front_pics/unown_i_still_front_pic.4bpp.lz" + + .align 2 +gMonBackPic_UnownI:: @ 8D48298 + .incbin "graphics/pokemon/back_pics/unown_i_back_pic.4bpp.lz" + + .align 2 +gMonIcon_UnownI:: @ 8D48440 + .incbin "graphics/pokemon/icons/unown_I_icon.4bpp" + + .align 2 +gMonStillFrontPic_UnownJ:: @ 8D48840 + .incbin "graphics/pokemon/front_pics/unown_j_still_front_pic.4bpp.lz" + + .align 2 +gMonBackPic_UnownJ:: @ 8D48A04 + .incbin "graphics/pokemon/back_pics/unown_j_back_pic.4bpp.lz" + + .align 2 +gMonIcon_UnownJ:: @ 8D48BEC + .incbin "graphics/pokemon/icons/unown_J_icon.4bpp" + + .align 2 +gMonStillFrontPic_UnownK:: @ 8D48FEC + .incbin "graphics/pokemon/front_pics/unown_k_still_front_pic.4bpp.lz" + + .align 2 +gMonBackPic_UnownK:: @ 8D491BC + .incbin "graphics/pokemon/back_pics/unown_k_back_pic.4bpp.lz" + + .align 2 +gMonIcon_UnownK:: @ 8D493B4 + .incbin "graphics/pokemon/icons/unown_K_icon.4bpp" + + .align 2 +gMonStillFrontPic_UnownL:: @ 8D497B4 + .incbin "graphics/pokemon/front_pics/unown_l_still_front_pic.4bpp.lz" + + .align 2 +gMonBackPic_UnownL:: @ 8D49964 + .incbin "graphics/pokemon/back_pics/unown_l_back_pic.4bpp.lz" + + .align 2 +gMonIcon_UnownL:: @ 8D49B38 + .incbin "graphics/pokemon/icons/unown_L_icon.4bpp" + + .align 2 +gMonStillFrontPic_UnownM:: @ 8D49F38 + .incbin "graphics/pokemon/front_pics/unown_m_still_front_pic.4bpp.lz" + + .align 2 +gMonBackPic_UnownM:: @ 8D4A15C + .incbin "graphics/pokemon/back_pics/unown_m_back_pic.4bpp.lz" + + .align 2 +gMonIcon_UnownM:: @ 8D4A404 + .incbin "graphics/pokemon/icons/unown_M_icon.4bpp" + + .align 2 +gMonStillFrontPic_UnownN:: @ 8D4A804 + .incbin "graphics/pokemon/front_pics/unown_n_still_front_pic.4bpp.lz" + + .align 2 +gMonBackPic_UnownN:: @ 8D4A9FC + .incbin "graphics/pokemon/back_pics/unown_n_back_pic.4bpp.lz" + + .align 2 +gMonIcon_UnownN:: @ 8D4AC68 + .incbin "graphics/pokemon/icons/unown_N_icon.4bpp" + + .align 2 +gMonStillFrontPic_UnownO:: @ 8D4B068 + .incbin "graphics/pokemon/front_pics/unown_o_still_front_pic.4bpp.lz" + + .align 2 +gMonBackPic_UnownO:: @ 8D4B2A0 + .incbin "graphics/pokemon/back_pics/unown_o_back_pic.4bpp.lz" + + .align 2 +gMonIcon_UnownO:: @ 8D4B560 + .incbin "graphics/pokemon/icons/unown_O_icon.4bpp" + + .align 2 +gMonStillFrontPic_UnownP:: @ 8D4B960 + .incbin "graphics/pokemon/front_pics/unown_p_still_front_pic.4bpp.lz" + + .align 2 +gMonBackPic_UnownP:: @ 8D4BB00 + .incbin "graphics/pokemon/back_pics/unown_p_back_pic.4bpp.lz" + + .align 2 +gMonIcon_UnownP:: @ 8D4BCC4 + .incbin "graphics/pokemon/icons/unown_P_icon.4bpp" + + .align 2 +gMonStillFrontPic_UnownQ:: @ 8D4C0C4 + .incbin "graphics/pokemon/front_pics/unown_q_still_front_pic.4bpp.lz" + + .align 2 +gMonBackPic_UnownQ:: @ 8D4C278 + .incbin "graphics/pokemon/back_pics/unown_q_back_pic.4bpp.lz" + + .align 2 +gMonIcon_UnownQ:: @ 8D4C444 + .incbin "graphics/pokemon/icons/unown_Q_icon.4bpp" + + .align 2 +gMonStillFrontPic_UnownR:: @ 8D4C844 + .incbin "graphics/pokemon/front_pics/unown_r_still_front_pic.4bpp.lz" + + .align 2 +gMonBackPic_UnownR:: @ 8D4C9E8 + .incbin "graphics/pokemon/back_pics/unown_r_back_pic.4bpp.lz" + + .align 2 +gMonIcon_UnownR:: @ 8D4CBB0 + .incbin "graphics/pokemon/icons/unown_R_icon.4bpp" + + .align 2 +gMonStillFrontPic_UnownS:: @ 8D4CFB0 + .incbin "graphics/pokemon/front_pics/unown_s_still_front_pic.4bpp.lz" + + .align 2 +gMonBackPic_UnownS:: @ 8D4D198 + .incbin "graphics/pokemon/back_pics/unown_s_back_pic.4bpp.lz" + + .align 2 +gMonIcon_UnownS:: @ 8D4D3EC + .incbin "graphics/pokemon/icons/unown_S_icon.4bpp" + + .align 2 +gMonStillFrontPic_UnownT:: @ 8D4D7EC + .incbin "graphics/pokemon/front_pics/unown_t_still_front_pic.4bpp.lz" + + .align 2 +gMonBackPic_UnownT:: @ 8D4D99C + .incbin "graphics/pokemon/back_pics/unown_t_back_pic.4bpp.lz" + + .align 2 +gMonIcon_UnownT:: @ 8D4DB50 + .incbin "graphics/pokemon/icons/unown_T_icon.4bpp" + + .align 2 +gMonStillFrontPic_UnownU:: @ 8D4DF50 + .incbin "graphics/pokemon/front_pics/unown_u_still_front_pic.4bpp.lz" + + .align 2 +gMonBackPic_UnownU:: @ 8D4E168 + .incbin "graphics/pokemon/back_pics/unown_u_back_pic.4bpp.lz" + + .align 2 +gMonIcon_UnownU:: @ 8D4E3BC + .incbin "graphics/pokemon/icons/unown_U_icon.4bpp" + + .align 2 +gMonStillFrontPic_UnownV:: @ 8D4E7BC + .incbin "graphics/pokemon/front_pics/unown_v_still_front_pic.4bpp.lz" + + .align 2 +gMonBackPic_UnownV:: @ 8D4E9A0 + .incbin "graphics/pokemon/back_pics/unown_v_back_pic.4bpp.lz" + + .align 2 +gMonIcon_UnownV:: @ 8D4EBD0 + .incbin "graphics/pokemon/icons/unown_V_icon.4bpp" + + .align 2 +gMonStillFrontPic_UnownW:: @ 8D4EFD0 + .incbin "graphics/pokemon/front_pics/unown_w_still_front_pic.4bpp.lz" + + .align 2 +gMonBackPic_UnownW:: @ 8D4F1A4 + .incbin "graphics/pokemon/back_pics/unown_w_back_pic.4bpp.lz" + + .align 2 +gMonIcon_UnownW:: @ 8D4F3A8 + .incbin "graphics/pokemon/icons/unown_W_icon.4bpp" + + .align 2 +gMonStillFrontPic_UnownX:: @ 8D4F7A8 + .incbin "graphics/pokemon/front_pics/unown_x_still_front_pic.4bpp.lz" + + .align 2 +gMonBackPic_UnownX:: @ 8D4F96C + .incbin "graphics/pokemon/back_pics/unown_x_back_pic.4bpp.lz" + + .align 2 +gMonIcon_UnownX:: @ 8D4FB5C + .incbin "graphics/pokemon/icons/unown_X_icon.4bpp" + + .align 2 +gMonStillFrontPic_UnownY:: @ 8D4FF5C + .incbin "graphics/pokemon/front_pics/unown_y_still_front_pic.4bpp.lz" + + .align 2 +gMonBackPic_UnownY:: @ 8D50134 + .incbin "graphics/pokemon/back_pics/unown_y_back_pic.4bpp.lz" + + .align 2 +gMonIcon_UnownY:: @ 8D50328 + .incbin "graphics/pokemon/icons/unown_Y_icon.4bpp" + + .align 2 +gMonStillFrontPic_UnownZ:: @ 8D50728 + .incbin "graphics/pokemon/front_pics/unown_z_still_front_pic.4bpp.lz" + + .align 2 +gMonBackPic_UnownZ:: @ 8D508D8 + .incbin "graphics/pokemon/back_pics/unown_z_back_pic.4bpp.lz" + + .align 2 +gMonIcon_UnownZ:: @ 8D50AB4 + .incbin "graphics/pokemon/icons/unown_Z_icon.4bpp" + + .align 2 +gMonStillFrontPic_UnownExclamationMark:: @ 8D50EB4 + .incbin "graphics/pokemon/front_pics/unown_exclamation_mark_still_front_pic.4bpp.lz" + + .align 2 +gMonBackPic_UnownExclamationMark:: @ 8D51044 + .incbin "graphics/pokemon/back_pics/unown_exclamation_mark_back_pic.4bpp.lz" + + .align 2 +gMonIcon_UnownExclamationMark:: @ 8D5120C + .incbin "graphics/pokemon/icons/unown_exclamation_mark_icon.4bpp" + + .align 2 +gMonStillFrontPic_UnownQuestionMark:: @ 8D5160C + .incbin "graphics/pokemon/front_pics/unown_question_mark_still_front_pic.4bpp.lz" + + .align 2 +gMonBackPic_UnownQuestionMark:: @ 8D517C8 + .incbin "graphics/pokemon/back_pics/unown_question_mark_back_pic.4bpp.lz" + + .align 2 +gMonIcon_UnownQuestionMark:: @ 8D519C8 + .incbin "graphics/pokemon/icons/unown_question_mark_icon.4bpp" diff --git a/data/graphics/pokemon/icon_palette_indices.inc b/data/graphics/pokemon/icon_palette_indices.inc new file mode 100644 index 000000000..f1d57466c --- /dev/null +++ b/data/graphics/pokemon/icon_palette_indices.inc @@ -0,0 +1,442 @@ + .align 2 +gMonIconPaletteIndices:: @ 857C388 + .byte 0 @ ?????????? + .byte 1 @ Bulbasaur + .byte 1 @ Ivysaur + .byte 1 @ Venusaur + .byte 0 @ Charmander + .byte 0 @ Charmeleon + .byte 0 @ Charizard + .byte 0 @ Squirtle + .byte 2 @ Wartortle + .byte 2 @ Blastoise + .byte 1 @ Caterpie + .byte 1 @ Metapod + .byte 0 @ Butterfree + .byte 1 @ Weedle + .byte 2 @ Kakuna + .byte 2 @ Beedrill + .byte 0 @ Pidgey + .byte 0 @ Pidgeotto + .byte 0 @ Pidgeot + .byte 2 @ Rattata + .byte 1 @ Raticate + .byte 0 @ Spearow + .byte 0 @ Fearow + .byte 2 @ Ekans + .byte 2 @ Arbok + .byte 2 @ Pikachu + .byte 0 @ Raichu + .byte 2 @ Sandshrew + .byte 2 @ Sandslash + .byte 2 @ Nidoran♀ + .byte 2 @ Nidorina + .byte 2 @ Nidoqueen + .byte 2 @ Nidoran♂ + .byte 2 @ Nidorino + .byte 2 @ Nidoking + .byte 0 @ Clefairy + .byte 0 @ Clefable + .byte 2 @ Vulpix + .byte 1 @ Ninetales + .byte 0 @ Jigglypuff + .byte 0 @ Wigglytuff + .byte 2 @ Zubat + .byte 2 @ Golbat + .byte 1 @ Oddish + .byte 0 @ Gloom + .byte 0 @ Vileplume + .byte 0 @ Paras + .byte 0 @ Parasect + .byte 0 @ Venonat + .byte 2 @ Venomoth + .byte 2 @ Diglett + .byte 2 @ Dugtrio + .byte 1 @ Meowth + .byte 1 @ Persian + .byte 1 @ Psyduck + .byte 2 @ Golduck + .byte 1 @ Mankey + .byte 2 @ Primeape + .byte 0 @ Growlithe + .byte 0 @ Arcanine + .byte 0 @ Poliwag + .byte 0 @ Poliwhirl + .byte 0 @ Poliwrath + .byte 2 @ Abra + .byte 2 @ Kadabra + .byte 2 @ Alakazam + .byte 0 @ Machop + .byte 2 @ Machoke + .byte 0 @ Machamp + .byte 1 @ Bellsprout + .byte 1 @ Weepinbell + .byte 1 @ Victreebel + .byte 2 @ Tentacool + .byte 2 @ Tentacruel + .byte 1 @ Geodude + .byte 1 @ Graveler + .byte 1 @ Golem + .byte 0 @ Ponyta + .byte 0 @ Rapidash + .byte 0 @ Slowpoke + .byte 0 @ Slowbro + .byte 0 @ Magnemite + .byte 0 @ Magneton + .byte 1 @ Farfetch'd + .byte 2 @ Doduo + .byte 2 @ Dodrio + .byte 2 @ Seel + .byte 2 @ Dewgong + .byte 2 @ Grimer + .byte 2 @ Muk + .byte 2 @ Shellder + .byte 2 @ Cloyster + .byte 2 @ Gastly + .byte 2 @ Haunter + .byte 2 @ Gengar + .byte 2 @ Onix + .byte 2 @ Drowzee + .byte 1 @ Hypno + .byte 2 @ Krabby + .byte 2 @ Kingler + .byte 0 @ Voltorb + .byte 0 @ Electrode + .byte 0 @ Exeggcute + .byte 1 @ Exeggutor + .byte 1 @ Cubone + .byte 1 @ Marowak + .byte 2 @ Hitmonlee + .byte 2 @ Hitmonchan + .byte 1 @ Lickitung + .byte 2 @ Koffing + .byte 2 @ Weezing + .byte 1 @ Rhyhorn + .byte 1 @ Rhydon + .byte 0 @ Chansey + .byte 0 @ Tangela + .byte 1 @ Kangaskhan + .byte 0 @ Horsea + .byte 0 @ Seadra + .byte 0 @ Goldeen + .byte 0 @ Seaking + .byte 2 @ Staryu + .byte 2 @ Starmie + .byte 0 @ Mr. mime + .byte 1 @ Scyther + .byte 2 @ Jynx + .byte 1 @ Electabuzz + .byte 0 @ Magmar + .byte 2 @ Pinsir + .byte 2 @ Tauros + .byte 0 @ Magikarp + .byte 0 @ Gyarados + .byte 2 @ Lapras + .byte 2 @ Ditto + .byte 2 @ Eevee + .byte 0 @ Vaporeon + .byte 0 @ Jolteon + .byte 0 @ Flareon + .byte 0 @ Porygon + .byte 0 @ Omanyte + .byte 0 @ Omastar + .byte 2 @ Kabuto + .byte 2 @ Kabutops + .byte 0 @ Aerodactyl + .byte 1 @ Snorlax + .byte 0 @ Articuno + .byte 0 @ Zapdos + .byte 0 @ Moltres + .byte 0 @ Dratini + .byte 0 @ Dragonair + .byte 2 @ Dragonite + .byte 2 @ Mewtwo + .byte 0 @ Mew + .byte 1 @ Chikorita + .byte 1 @ Bayleef + .byte 1 @ Meganium + .byte 1 @ Cyndaquil + .byte 1 @ Quilava + .byte 1 @ Typhlosion + .byte 2 @ Totodile + .byte 2 @ Croconaw + .byte 2 @ Feraligatr + .byte 2 @ Sentret + .byte 2 @ Furret + .byte 2 @ Hoothoot + .byte 2 @ Noctowl + .byte 0 @ Ledyba + .byte 0 @ Ledian + .byte 1 @ Spinarak + .byte 0 @ Ariados + .byte 2 @ Crobat + .byte 2 @ Chinchou + .byte 0 @ Lanturn + .byte 0 @ Pichu + .byte 0 @ Cleffa + .byte 1 @ Igglybuff + .byte 2 @ Togepi + .byte 2 @ Togetic + .byte 0 @ Natu + .byte 0 @ Xatu + .byte 2 @ Mareep + .byte 0 @ Flaaffy + .byte 0 @ Ampharos + .byte 1 @ Bellossom + .byte 2 @ Marill + .byte 2 @ Azumarill + .byte 1 @ Sudowoodo + .byte 1 @ Politoed + .byte 1 @ Hoppip + .byte 1 @ Skiploom + .byte 2 @ Jumpluff + .byte 2 @ Aipom + .byte 1 @ Sunkern + .byte 1 @ Sunflora + .byte 1 @ Yanma + .byte 0 @ Wooper + .byte 0 @ Quagsire + .byte 2 @ Espeon + .byte 2 @ Umbreon + .byte 2 @ Murkrow + .byte 0 @ Slowking + .byte 0 @ Misdreavus + .byte 0 @ Unown A + .byte 0 @ Wobbuffet + .byte 1 @ Girafarig + .byte 0 @ Pineco + .byte 2 @ Forretress + .byte 2 @ Dunsparce + .byte 2 @ Gligar + .byte 0 @ Steelix + .byte 0 @ Snubbull + .byte 2 @ Granbull + .byte 0 @ Qwilfish + .byte 0 @ Scizor + .byte 1 @ Shuckle + .byte 2 @ Heracross + .byte 0 @ Sneasel + .byte 0 @ Teddiursa + .byte 2 @ Ursaring + .byte 0 @ Slugma + .byte 0 @ Magcargo + .byte 2 @ Swinub + .byte 2 @ Piloswine + .byte 0 @ Corsola + .byte 0 @ Remoraid + .byte 0 @ Octillery + .byte 0 @ Delibird + .byte 2 @ Mantine + .byte 0 @ Skarmory + .byte 0 @ Houndour + .byte 0 @ Houndoom + .byte 0 @ Kingdra + .byte 0 @ Phanpy + .byte 0 @ Donphan + .byte 0 @ Porygon2 + .byte 2 @ Stantler + .byte 1 @ Smeargle + .byte 2 @ Tyrogue + .byte 2 @ Hitmontop + .byte 1 @ Smoochum + .byte 1 @ Elekid + .byte 1 @ Magby + .byte 1 @ Miltank + .byte 1 @ Blissey + .byte 0 @ Raikou + .byte 2 @ Entei + .byte 0 @ Suicune + .byte 1 @ Larvitar + .byte 0 @ Pupitar + .byte 1 @ Tyranitar + .byte 0 @ Lugia + .byte 1 @ Ho-Oh + .byte 1 @ Celebi + .byte 0 @ ? + .byte 0 @ ? + .byte 0 @ ? + .byte 0 @ ? + .byte 0 @ ? + .byte 0 @ ? + .byte 0 @ ? + .byte 0 @ ? + .byte 0 @ ? + .byte 0 @ ? + .byte 0 @ ? + .byte 0 @ ? + .byte 0 @ ? + .byte 0 @ ? + .byte 0 @ ? + .byte 0 @ ? + .byte 0 @ ? + .byte 0 @ ? + .byte 0 @ ? + .byte 0 @ ? + .byte 0 @ ? + .byte 0 @ ? + .byte 0 @ ? + .byte 0 @ ? + .byte 0 @ ? + .byte 1 @ Treecko + .byte 0 @ Grovyle + .byte 1 @ Sceptile + .byte 0 @ Torchic + .byte 0 @ Combusken + .byte 0 @ Blaziken + .byte 0 @ Mudkip + .byte 0 @ Marshtomp + .byte 0 @ Swampert + .byte 2 @ Poochyena + .byte 2 @ Mightyena + .byte 2 @ Zigzagoon + .byte 2 @ Linoone + .byte 0 @ Wurmple + .byte 2 @ Silcoon + .byte 0 @ Beautifly + .byte 2 @ Cascoon + .byte 1 @ Dustox + .byte 1 @ Lotad + .byte 1 @ Lombre + .byte 1 @ Ludicolo + .byte 1 @ Seedot + .byte 1 @ Nuzleaf + .byte 0 @ Shiftry + .byte 1 @ Nincada + .byte 1 @ Ninjask + .byte 1 @ Shedinja + .byte 2 @ Taillow + .byte 2 @ Swellow + .byte 1 @ Shroomish + .byte 1 @ Breloom + .byte 1 @ Spinda + .byte 0 @ Wingull + .byte 0 @ Pelipper + .byte 2 @ Surskit + .byte 0 @ Masquerain + .byte 2 @ Wailmer + .byte 0 @ Wailord + .byte 0 @ Skitty + .byte 2 @ Delcatty + .byte 1 @ Kecleon + .byte 1 @ Baltoy + .byte 0 @ Claydol + .byte 0 @ Nosepass + .byte 1 @ Torkoal + .byte 2 @ Sableye + .byte 0 @ Barboach + .byte 0 @ Whiscash + .byte 0 @ Luvdisc + .byte 0 @ Corphish + .byte 0 @ Crawdaunt + .byte 2 @ Feebas + .byte 0 @ Milotic + .byte 0 @ Carvanha + .byte 0 @ Sharpedo + .byte 1 @ Trapinch + .byte 1 @ Vibrava + .byte 1 @ Flygon + .byte 2 @ Makuhita + .byte 1 @ Hariyama + .byte 1 @ Electrike + .byte 0 @ Manectric + .byte 1 @ Numel + .byte 0 @ Camerupt + .byte 2 @ Spheal + .byte 2 @ Sealeo + .byte 0 @ Walrein + .byte 1 @ Cacnea + .byte 1 @ Cacturne + .byte 2 @ Snorunt + .byte 0 @ Glalie + .byte 1 @ Lunatone + .byte 0 @ Solrock + .byte 2 @ Azurill + .byte 0 @ Spoink + .byte 2 @ Grumpig + .byte 0 @ Plusle + .byte 0 @ Minun + .byte 2 @ Mawile + .byte 0 @ Meditite + .byte 0 @ Medicham + .byte 0 @ Swablu + .byte 0 @ Altaria + .byte 0 @ Wynaut + .byte 0 @ Duskull + .byte 0 @ Dusclops + .byte 0 @ Roselia + .byte 2 @ Slakoth + .byte 2 @ Vigoroth + .byte 1 @ Slaking + .byte 1 @ Gulpin + .byte 2 @ Swalot + .byte 1 @ Tropius + .byte 0 @ Whismur + .byte 2 @ Loudred + .byte 2 @ Exploud + .byte 0 @ Clamperl + .byte 0 @ Huntail + .byte 0 @ Gorebyss + .byte 0 @ Absol + .byte 0 @ Shuppet + .byte 0 @ Banette + .byte 2 @ Seviper + .byte 0 @ Zangoose + .byte 1 @ Relicanth + .byte 2 @ Aron + .byte 2 @ Lairon + .byte 2 @ Aggron + .byte 0 @ Castform + .byte 0 @ Volbeat + .byte 2 @ Illumise + .byte 2 @ Lileep + .byte 0 @ Cradily + .byte 0 @ Anorith + .byte 0 @ Armaldo + .byte 1 @ Ralts + .byte 1 @ Kirlia + .byte 1 @ Gardevoir + .byte 2 @ Bagon + .byte 2 @ Shelgon + .byte 0 @ Salamence + .byte 0 @ Beldum + .byte 0 @ Metang + .byte 0 @ Metagross + .byte 2 @ Regirock + .byte 2 @ Regice + .byte 2 @ Registeel + .byte 2 @ Kyogre + .byte 0 @ Groudon + .byte 1 @ Rayquaza + .byte 0 @ Latias + .byte 2 @ Latios + .byte 0 @ Jirachi + .byte 0 @ Deoxys + .byte 0 @ Chimecho + .byte 1 @ Egg + .byte 0 @ Unown B + .byte 0 @ Unown C + .byte 0 @ Unown D + .byte 0 @ Unown E + .byte 0 @ Unown F + .byte 0 @ Unown G + .byte 0 @ Unown H + .byte 0 @ Unown I + .byte 0 @ Unown J + .byte 0 @ Unown K + .byte 0 @ Unown L + .byte 0 @ Unown M + .byte 0 @ Unown N + .byte 0 @ Unown O + .byte 0 @ Unown P + .byte 0 @ Unown Q + .byte 0 @ Unown R + .byte 0 @ Unown S + .byte 0 @ Unown T + .byte 0 @ Unown U + .byte 0 @ Unown V + .byte 0 @ Unown W + .byte 0 @ Unown X + .byte 0 @ Unown Y + .byte 0 @ Unown Z + .byte 0 @ Unown Exclamation Mark + .byte 0 @ Unown Question Mark diff --git a/data/graphics/pokemon/icon_palette_table.inc b/data/graphics/pokemon/icon_palette_table.inc new file mode 100644 index 000000000..eb7919423 --- /dev/null +++ b/data/graphics/pokemon/icon_palette_table.inc @@ -0,0 +1,11 @@ + .align 2 +gMonIconPaletteTable:: @ 857C540 + obj_pal gMonIconPalettes + 0 * 32, 56000 + obj_pal gMonIconPalettes + 1 * 32, 56001 + obj_pal gMonIconPalettes + 2 * 32, 56002 + +@ These palettes are actually part of the title screen BG palette and are not +@ used for Pokémon icons. + obj_pal gMonIconPalettes + 3 * 32, 56003 + obj_pal gMonIconPalettes + 4 * 32, 56004 + obj_pal gMonIconPalettes + 5 * 32, 56005 diff --git a/data/graphics/pokemon/icon_table.inc b/data/graphics/pokemon/icon_table.inc new file mode 100644 index 000000000..06a86de43 --- /dev/null +++ b/data/graphics/pokemon/icon_table.inc @@ -0,0 +1,442 @@ + .align 2 +gMonIconTable:: @ 857BCA8 + .4byte gMonIcon_Bulbasaur + .4byte gMonIcon_Bulbasaur + .4byte gMonIcon_Ivysaur + .4byte gMonIcon_Venusaur + .4byte gMonIcon_Charmander + .4byte gMonIcon_Charmeleon + .4byte gMonIcon_Charizard + .4byte gMonIcon_Squirtle + .4byte gMonIcon_Wartortle + .4byte gMonIcon_Blastoise + .4byte gMonIcon_Caterpie + .4byte gMonIcon_Metapod + .4byte gMonIcon_Butterfree + .4byte gMonIcon_Weedle + .4byte gMonIcon_Kakuna + .4byte gMonIcon_Beedrill + .4byte gMonIcon_Pidgey + .4byte gMonIcon_Pidgeotto + .4byte gMonIcon_Pidgeot + .4byte gMonIcon_Rattata + .4byte gMonIcon_Raticate + .4byte gMonIcon_Spearow + .4byte gMonIcon_Fearow + .4byte gMonIcon_Ekans + .4byte gMonIcon_Arbok + .4byte gMonIcon_Pikachu + .4byte gMonIcon_Raichu + .4byte gMonIcon_Sandshrew + .4byte gMonIcon_Sandslash + .4byte gMonIcon_NidoranF + .4byte gMonIcon_Nidorina + .4byte gMonIcon_Nidoqueen + .4byte gMonIcon_NidoranM + .4byte gMonIcon_Nidorino + .4byte gMonIcon_Nidoking + .4byte gMonIcon_Clefairy + .4byte gMonIcon_Clefable + .4byte gMonIcon_Vulpix + .4byte gMonIcon_Ninetales + .4byte gMonIcon_Jigglypuff + .4byte gMonIcon_Wigglytuff + .4byte gMonIcon_Zubat + .4byte gMonIcon_Golbat + .4byte gMonIcon_Oddish + .4byte gMonIcon_Gloom + .4byte gMonIcon_Vileplume + .4byte gMonIcon_Paras + .4byte gMonIcon_Parasect + .4byte gMonIcon_Venonat + .4byte gMonIcon_Venomoth + .4byte gMonIcon_Diglett + .4byte gMonIcon_Dugtrio + .4byte gMonIcon_Meowth + .4byte gMonIcon_Persian + .4byte gMonIcon_Psyduck + .4byte gMonIcon_Golduck + .4byte gMonIcon_Mankey + .4byte gMonIcon_Primeape + .4byte gMonIcon_Growlithe + .4byte gMonIcon_Arcanine + .4byte gMonIcon_Poliwag + .4byte gMonIcon_Poliwhirl + .4byte gMonIcon_Poliwrath + .4byte gMonIcon_Abra + .4byte gMonIcon_Kadabra + .4byte gMonIcon_Alakazam + .4byte gMonIcon_Machop + .4byte gMonIcon_Machoke + .4byte gMonIcon_Machamp + .4byte gMonIcon_Bellsprout + .4byte gMonIcon_Weepinbell + .4byte gMonIcon_Victreebel + .4byte gMonIcon_Tentacool + .4byte gMonIcon_Tentacruel + .4byte gMonIcon_Geodude + .4byte gMonIcon_Graveler + .4byte gMonIcon_Golem + .4byte gMonIcon_Ponyta + .4byte gMonIcon_Rapidash + .4byte gMonIcon_Slowpoke + .4byte gMonIcon_Slowbro + .4byte gMonIcon_Magnemite + .4byte gMonIcon_Magneton + .4byte gMonIcon_Farfetchd + .4byte gMonIcon_Doduo + .4byte gMonIcon_Dodrio + .4byte gMonIcon_Seel + .4byte gMonIcon_Dewgong + .4byte gMonIcon_Grimer + .4byte gMonIcon_Muk + .4byte gMonIcon_Shellder + .4byte gMonIcon_Cloyster + .4byte gMonIcon_Gastly + .4byte gMonIcon_Haunter + .4byte gMonIcon_Gengar + .4byte gMonIcon_Onix + .4byte gMonIcon_Drowzee + .4byte gMonIcon_Hypno + .4byte gMonIcon_Krabby + .4byte gMonIcon_Kingler + .4byte gMonIcon_Voltorb + .4byte gMonIcon_Electrode + .4byte gMonIcon_Exeggcute + .4byte gMonIcon_Exeggutor + .4byte gMonIcon_Cubone + .4byte gMonIcon_Marowak + .4byte gMonIcon_Hitmonlee + .4byte gMonIcon_Hitmonchan + .4byte gMonIcon_Lickitung + .4byte gMonIcon_Koffing + .4byte gMonIcon_Weezing + .4byte gMonIcon_Rhyhorn + .4byte gMonIcon_Rhydon + .4byte gMonIcon_Chansey + .4byte gMonIcon_Tangela + .4byte gMonIcon_Kangaskhan + .4byte gMonIcon_Horsea + .4byte gMonIcon_Seadra + .4byte gMonIcon_Goldeen + .4byte gMonIcon_Seaking + .4byte gMonIcon_Staryu + .4byte gMonIcon_Starmie + .4byte gMonIcon_Mrmime + .4byte gMonIcon_Scyther + .4byte gMonIcon_Jynx + .4byte gMonIcon_Electabuzz + .4byte gMonIcon_Magmar + .4byte gMonIcon_Pinsir + .4byte gMonIcon_Tauros + .4byte gMonIcon_Magikarp + .4byte gMonIcon_Gyarados + .4byte gMonIcon_Lapras + .4byte gMonIcon_Ditto + .4byte gMonIcon_Eevee + .4byte gMonIcon_Vaporeon + .4byte gMonIcon_Jolteon + .4byte gMonIcon_Flareon + .4byte gMonIcon_Porygon + .4byte gMonIcon_Omanyte + .4byte gMonIcon_Omastar + .4byte gMonIcon_Kabuto + .4byte gMonIcon_Kabutops + .4byte gMonIcon_Aerodactyl + .4byte gMonIcon_Snorlax + .4byte gMonIcon_Articuno + .4byte gMonIcon_Zapdos + .4byte gMonIcon_Moltres + .4byte gMonIcon_Dratini + .4byte gMonIcon_Dragonair + .4byte gMonIcon_Dragonite + .4byte gMonIcon_Mewtwo + .4byte gMonIcon_Mew + .4byte gMonIcon_Chikorita + .4byte gMonIcon_Bayleef + .4byte gMonIcon_Meganium + .4byte gMonIcon_Cyndaquil + .4byte gMonIcon_Quilava + .4byte gMonIcon_Typhlosion + .4byte gMonIcon_Totodile + .4byte gMonIcon_Croconaw + .4byte gMonIcon_Feraligatr + .4byte gMonIcon_Sentret + .4byte gMonIcon_Furret + .4byte gMonIcon_Hoothoot + .4byte gMonIcon_Noctowl + .4byte gMonIcon_Ledyba + .4byte gMonIcon_Ledian + .4byte gMonIcon_Spinarak + .4byte gMonIcon_Ariados + .4byte gMonIcon_Crobat + .4byte gMonIcon_Chinchou + .4byte gMonIcon_Lanturn + .4byte gMonIcon_Pichu + .4byte gMonIcon_Cleffa + .4byte gMonIcon_Igglybuff + .4byte gMonIcon_Togepi + .4byte gMonIcon_Togetic + .4byte gMonIcon_Natu + .4byte gMonIcon_Xatu + .4byte gMonIcon_Mareep + .4byte gMonIcon_Flaaffy + .4byte gMonIcon_Ampharos + .4byte gMonIcon_Bellossom + .4byte gMonIcon_Marill + .4byte gMonIcon_Azumarill + .4byte gMonIcon_Sudowoodo + .4byte gMonIcon_Politoed + .4byte gMonIcon_Hoppip + .4byte gMonIcon_Skiploom + .4byte gMonIcon_Jumpluff + .4byte gMonIcon_Aipom + .4byte gMonIcon_Sunkern + .4byte gMonIcon_Sunflora + .4byte gMonIcon_Yanma + .4byte gMonIcon_Wooper + .4byte gMonIcon_Quagsire + .4byte gMonIcon_Espeon + .4byte gMonIcon_Umbreon + .4byte gMonIcon_Murkrow + .4byte gMonIcon_Slowking + .4byte gMonIcon_Misdreavus + .4byte gMonIcon_UnownA + .4byte gMonIcon_Wobbuffet + .4byte gMonIcon_Girafarig + .4byte gMonIcon_Pineco + .4byte gMonIcon_Forretress + .4byte gMonIcon_Dunsparce + .4byte gMonIcon_Gligar + .4byte gMonIcon_Steelix + .4byte gMonIcon_Snubbull + .4byte gMonIcon_Granbull + .4byte gMonIcon_Qwilfish + .4byte gMonIcon_Scizor + .4byte gMonIcon_Shuckle + .4byte gMonIcon_Heracross + .4byte gMonIcon_Sneasel + .4byte gMonIcon_Teddiursa + .4byte gMonIcon_Ursaring + .4byte gMonIcon_Slugma + .4byte gMonIcon_Magcargo + .4byte gMonIcon_Swinub + .4byte gMonIcon_Piloswine + .4byte gMonIcon_Corsola + .4byte gMonIcon_Remoraid + .4byte gMonIcon_Octillery + .4byte gMonIcon_Delibird + .4byte gMonIcon_Mantine + .4byte gMonIcon_Skarmory + .4byte gMonIcon_Houndour + .4byte gMonIcon_Houndoom + .4byte gMonIcon_Kingdra + .4byte gMonIcon_Phanpy + .4byte gMonIcon_Donphan + .4byte gMonIcon_Porygon2 + .4byte gMonIcon_Stantler + .4byte gMonIcon_Smeargle + .4byte gMonIcon_Tyrogue + .4byte gMonIcon_Hitmontop + .4byte gMonIcon_Smoochum + .4byte gMonIcon_Elekid + .4byte gMonIcon_Magby + .4byte gMonIcon_Miltank + .4byte gMonIcon_Blissey + .4byte gMonIcon_Raikou + .4byte gMonIcon_Entei + .4byte gMonIcon_Suicune + .4byte gMonIcon_Larvitar + .4byte gMonIcon_Pupitar + .4byte gMonIcon_Tyranitar + .4byte gMonIcon_Lugia + .4byte gMonIcon_HoOh + .4byte gMonIcon_Celebi + .4byte gMonIcon_QuestionMark + .4byte gMonIcon_QuestionMark + .4byte gMonIcon_QuestionMark + .4byte gMonIcon_QuestionMark + .4byte gMonIcon_QuestionMark + .4byte gMonIcon_QuestionMark + .4byte gMonIcon_QuestionMark + .4byte gMonIcon_QuestionMark + .4byte gMonIcon_QuestionMark + .4byte gMonIcon_QuestionMark + .4byte gMonIcon_QuestionMark + .4byte gMonIcon_QuestionMark + .4byte gMonIcon_QuestionMark + .4byte gMonIcon_QuestionMark + .4byte gMonIcon_QuestionMark + .4byte gMonIcon_QuestionMark + .4byte gMonIcon_QuestionMark + .4byte gMonIcon_QuestionMark + .4byte gMonIcon_QuestionMark + .4byte gMonIcon_QuestionMark + .4byte gMonIcon_QuestionMark + .4byte gMonIcon_QuestionMark + .4byte gMonIcon_QuestionMark + .4byte gMonIcon_QuestionMark + .4byte gMonIcon_QuestionMark + .4byte gMonIcon_Treecko + .4byte gMonIcon_Grovyle + .4byte gMonIcon_Sceptile + .4byte gMonIcon_Torchic + .4byte gMonIcon_Combusken + .4byte gMonIcon_Blaziken + .4byte gMonIcon_Mudkip + .4byte gMonIcon_Marshtomp + .4byte gMonIcon_Swampert + .4byte gMonIcon_Poochyena + .4byte gMonIcon_Mightyena + .4byte gMonIcon_Zigzagoon + .4byte gMonIcon_Linoone + .4byte gMonIcon_Wurmple + .4byte gMonIcon_Silcoon + .4byte gMonIcon_Beautifly + .4byte gMonIcon_Cascoon + .4byte gMonIcon_Dustox + .4byte gMonIcon_Lotad + .4byte gMonIcon_Lombre + .4byte gMonIcon_Ludicolo + .4byte gMonIcon_Seedot + .4byte gMonIcon_Nuzleaf + .4byte gMonIcon_Shiftry + .4byte gMonIcon_Nincada + .4byte gMonIcon_Ninjask + .4byte gMonIcon_Shedinja + .4byte gMonIcon_Taillow + .4byte gMonIcon_Swellow + .4byte gMonIcon_Shroomish + .4byte gMonIcon_Breloom + .4byte gMonIcon_Spinda + .4byte gMonIcon_Wingull + .4byte gMonIcon_Pelipper + .4byte gMonIcon_Surskit + .4byte gMonIcon_Masquerain + .4byte gMonIcon_Wailmer + .4byte gMonIcon_Wailord + .4byte gMonIcon_Skitty + .4byte gMonIcon_Delcatty + .4byte gMonIcon_Kecleon + .4byte gMonIcon_Baltoy + .4byte gMonIcon_Claydol + .4byte gMonIcon_Nosepass + .4byte gMonIcon_Torkoal + .4byte gMonIcon_Sableye + .4byte gMonIcon_Barboach + .4byte gMonIcon_Whiscash + .4byte gMonIcon_Luvdisc + .4byte gMonIcon_Corphish + .4byte gMonIcon_Crawdaunt + .4byte gMonIcon_Feebas + .4byte gMonIcon_Milotic + .4byte gMonIcon_Carvanha + .4byte gMonIcon_Sharpedo + .4byte gMonIcon_Trapinch + .4byte gMonIcon_Vibrava + .4byte gMonIcon_Flygon + .4byte gMonIcon_Makuhita + .4byte gMonIcon_Hariyama + .4byte gMonIcon_Electrike + .4byte gMonIcon_Manectric + .4byte gMonIcon_Numel + .4byte gMonIcon_Camerupt + .4byte gMonIcon_Spheal + .4byte gMonIcon_Sealeo + .4byte gMonIcon_Walrein + .4byte gMonIcon_Cacnea + .4byte gMonIcon_Cacturne + .4byte gMonIcon_Snorunt + .4byte gMonIcon_Glalie + .4byte gMonIcon_Lunatone + .4byte gMonIcon_Solrock + .4byte gMonIcon_Azurill + .4byte gMonIcon_Spoink + .4byte gMonIcon_Grumpig + .4byte gMonIcon_Plusle + .4byte gMonIcon_Minun + .4byte gMonIcon_Mawile + .4byte gMonIcon_Meditite + .4byte gMonIcon_Medicham + .4byte gMonIcon_Swablu + .4byte gMonIcon_Altaria + .4byte gMonIcon_Wynaut + .4byte gMonIcon_Duskull + .4byte gMonIcon_Dusclops + .4byte gMonIcon_Roselia + .4byte gMonIcon_Slakoth + .4byte gMonIcon_Vigoroth + .4byte gMonIcon_Slaking + .4byte gMonIcon_Gulpin + .4byte gMonIcon_Swalot + .4byte gMonIcon_Tropius + .4byte gMonIcon_Whismur + .4byte gMonIcon_Loudred + .4byte gMonIcon_Exploud + .4byte gMonIcon_Clamperl + .4byte gMonIcon_Huntail + .4byte gMonIcon_Gorebyss + .4byte gMonIcon_Absol + .4byte gMonIcon_Shuppet + .4byte gMonIcon_Banette + .4byte gMonIcon_Seviper + .4byte gMonIcon_Zangoose + .4byte gMonIcon_Relicanth + .4byte gMonIcon_Aron + .4byte gMonIcon_Lairon + .4byte gMonIcon_Aggron + .4byte gMonIcon_Castform + .4byte gMonIcon_Volbeat + .4byte gMonIcon_Illumise + .4byte gMonIcon_Lileep + .4byte gMonIcon_Cradily + .4byte gMonIcon_Anorith + .4byte gMonIcon_Armaldo + .4byte gMonIcon_Ralts + .4byte gMonIcon_Kirlia + .4byte gMonIcon_Gardevoir + .4byte gMonIcon_Bagon + .4byte gMonIcon_Shelgon + .4byte gMonIcon_Salamence + .4byte gMonIcon_Beldum + .4byte gMonIcon_Metang + .4byte gMonIcon_Metagross + .4byte gMonIcon_Regirock + .4byte gMonIcon_Regice + .4byte gMonIcon_Registeel + .4byte gMonIcon_Kyogre + .4byte gMonIcon_Groudon + .4byte gMonIcon_Rayquaza + .4byte gMonIcon_Latias + .4byte gMonIcon_Latios + .4byte gMonIcon_Jirachi + .4byte gMonIcon_Deoxys + .4byte gMonIcon_Chimecho + .4byte gMonIcon_Egg + .4byte gMonIcon_UnownB + .4byte gMonIcon_UnownC + .4byte gMonIcon_UnownD + .4byte gMonIcon_UnownE + .4byte gMonIcon_UnownF + .4byte gMonIcon_UnownG + .4byte gMonIcon_UnownH + .4byte gMonIcon_UnownI + .4byte gMonIcon_UnownJ + .4byte gMonIcon_UnownK + .4byte gMonIcon_UnownL + .4byte gMonIcon_UnownM + .4byte gMonIcon_UnownN + .4byte gMonIcon_UnownO + .4byte gMonIcon_UnownP + .4byte gMonIcon_UnownQ + .4byte gMonIcon_UnownR + .4byte gMonIcon_UnownS + .4byte gMonIcon_UnownT + .4byte gMonIcon_UnownU + .4byte gMonIcon_UnownV + .4byte gMonIcon_UnownW + .4byte gMonIcon_UnownX + .4byte gMonIcon_UnownY + .4byte gMonIcon_UnownZ + .4byte gMonIcon_UnownExclamationMark + .4byte gMonIcon_UnownQuestionMark diff --git a/data/graphics/pokemon/mon_back_pic_table.inc b/data/graphics/pokemon/mon_back_pic_table.inc deleted file mode 100644 index b1b477f30..000000000 --- a/data/graphics/pokemon/mon_back_pic_table.inc +++ /dev/null @@ -1,442 +0,0 @@ - .align 2 -gMonBackPicTable:: @ 83028B8 - obj_tiles gMonBackPic_CircledQuestionMark, 0x800, 0 - obj_tiles gMonBackPic_Bulbasaur, 0x800, 1 - obj_tiles gMonBackPic_Ivysaur, 0x800, 2 - obj_tiles gMonBackPic_Venusaur, 0x800, 3 - obj_tiles gMonBackPic_Charmander, 0x800, 4 - obj_tiles gMonBackPic_Charmeleon, 0x800, 5 - obj_tiles gMonBackPic_Charizard, 0x800, 6 - obj_tiles gMonBackPic_Squirtle, 0x800, 7 - obj_tiles gMonBackPic_Wartortle, 0x800, 8 - obj_tiles gMonBackPic_Blastoise, 0x800, 9 - obj_tiles gMonBackPic_Caterpie, 0x800, 10 - obj_tiles gMonBackPic_Metapod, 0x800, 11 - obj_tiles gMonBackPic_Butterfree, 0x800, 12 - obj_tiles gMonBackPic_Weedle, 0x800, 13 - obj_tiles gMonBackPic_Kakuna, 0x800, 14 - obj_tiles gMonBackPic_Beedrill, 0x800, 15 - obj_tiles gMonBackPic_Pidgey, 0x800, 16 - obj_tiles gMonBackPic_Pidgeotto, 0x800, 17 - obj_tiles gMonBackPic_Pidgeot, 0x800, 18 - obj_tiles gMonBackPic_Rattata, 0x800, 19 - obj_tiles gMonBackPic_Raticate, 0x800, 20 - obj_tiles gMonBackPic_Spearow, 0x800, 21 - obj_tiles gMonBackPic_Fearow, 0x800, 22 - obj_tiles gMonBackPic_Ekans, 0x800, 23 - obj_tiles gMonBackPic_Arbok, 0x800, 24 - obj_tiles gMonBackPic_Pikachu, 0x800, 25 - obj_tiles gMonBackPic_Raichu, 0x800, 26 - obj_tiles gMonBackPic_Sandshrew, 0x800, 27 - obj_tiles gMonBackPic_Sandslash, 0x800, 28 - obj_tiles gMonBackPic_NidoranF, 0x800, 29 - obj_tiles gMonBackPic_Nidorina, 0x800, 30 - obj_tiles gMonBackPic_Nidoqueen, 0x800, 31 - obj_tiles gMonBackPic_NidoranM, 0x800, 32 - obj_tiles gMonBackPic_Nidorino, 0x800, 33 - obj_tiles gMonBackPic_Nidoking, 0x800, 34 - obj_tiles gMonBackPic_Clefairy, 0x800, 35 - obj_tiles gMonBackPic_Clefable, 0x800, 36 - obj_tiles gMonBackPic_Vulpix, 0x800, 37 - obj_tiles gMonBackPic_Ninetales, 0x800, 38 - obj_tiles gMonBackPic_Jigglypuff, 0x800, 39 - obj_tiles gMonBackPic_Wigglytuff, 0x800, 40 - obj_tiles gMonBackPic_Zubat, 0x800, 41 - obj_tiles gMonBackPic_Golbat, 0x800, 42 - obj_tiles gMonBackPic_Oddish, 0x800, 43 - obj_tiles gMonBackPic_Gloom, 0x800, 44 - obj_tiles gMonBackPic_Vileplume, 0x800, 45 - obj_tiles gMonBackPic_Paras, 0x800, 46 - obj_tiles gMonBackPic_Parasect, 0x800, 47 - obj_tiles gMonBackPic_Venonat, 0x800, 48 - obj_tiles gMonBackPic_Venomoth, 0x800, 49 - obj_tiles gMonBackPic_Diglett, 0x800, 50 - obj_tiles gMonBackPic_Dugtrio, 0x800, 51 - obj_tiles gMonBackPic_Meowth, 0x800, 52 - obj_tiles gMonBackPic_Persian, 0x800, 53 - obj_tiles gMonBackPic_Psyduck, 0x800, 54 - obj_tiles gMonBackPic_Golduck, 0x800, 55 - obj_tiles gMonBackPic_Mankey, 0x800, 56 - obj_tiles gMonBackPic_Primeape, 0x800, 57 - obj_tiles gMonBackPic_Growlithe, 0x800, 58 - obj_tiles gMonBackPic_Arcanine, 0x800, 59 - obj_tiles gMonBackPic_Poliwag, 0x800, 60 - obj_tiles gMonBackPic_Poliwhirl, 0x800, 61 - obj_tiles gMonBackPic_Poliwrath, 0x800, 62 - obj_tiles gMonBackPic_Abra, 0x800, 63 - obj_tiles gMonBackPic_Kadabra, 0x800, 64 - obj_tiles gMonBackPic_Alakazam, 0x800, 65 - obj_tiles gMonBackPic_Machop, 0x800, 66 - obj_tiles gMonBackPic_Machoke, 0x800, 67 - obj_tiles gMonBackPic_Machamp, 0x800, 68 - obj_tiles gMonBackPic_Bellsprout, 0x800, 69 - obj_tiles gMonBackPic_Weepinbell, 0x800, 70 - obj_tiles gMonBackPic_Victreebel, 0x800, 71 - obj_tiles gMonBackPic_Tentacool, 0x800, 72 - obj_tiles gMonBackPic_Tentacruel, 0x800, 73 - obj_tiles gMonBackPic_Geodude, 0x800, 74 - obj_tiles gMonBackPic_Graveler, 0x800, 75 - obj_tiles gMonBackPic_Golem, 0x800, 76 - obj_tiles gMonBackPic_Ponyta, 0x800, 77 - obj_tiles gMonBackPic_Rapidash, 0x800, 78 - obj_tiles gMonBackPic_Slowpoke, 0x800, 79 - obj_tiles gMonBackPic_Slowbro, 0x800, 80 - obj_tiles gMonBackPic_Magnemite, 0x800, 81 - obj_tiles gMonBackPic_Magneton, 0x800, 82 - obj_tiles gMonBackPic_Farfetchd, 0x800, 83 - obj_tiles gMonBackPic_Doduo, 0x800, 84 - obj_tiles gMonBackPic_Dodrio, 0x800, 85 - obj_tiles gMonBackPic_Seel, 0x800, 86 - obj_tiles gMonBackPic_Dewgong, 0x800, 87 - obj_tiles gMonBackPic_Grimer, 0x800, 88 - obj_tiles gMonBackPic_Muk, 0x800, 89 - obj_tiles gMonBackPic_Shellder, 0x800, 90 - obj_tiles gMonBackPic_Cloyster, 0x800, 91 - obj_tiles gMonBackPic_Gastly, 0x800, 92 - obj_tiles gMonBackPic_Haunter, 0x800, 93 - obj_tiles gMonBackPic_Gengar, 0x800, 94 - obj_tiles gMonBackPic_Onix, 0x800, 95 - obj_tiles gMonBackPic_Drowzee, 0x800, 96 - obj_tiles gMonBackPic_Hypno, 0x800, 97 - obj_tiles gMonBackPic_Krabby, 0x800, 98 - obj_tiles gMonBackPic_Kingler, 0x800, 99 - obj_tiles gMonBackPic_Voltorb, 0x800, 100 - obj_tiles gMonBackPic_Electrode, 0x800, 101 - obj_tiles gMonBackPic_Exeggcute, 0x800, 102 - obj_tiles gMonBackPic_Exeggutor, 0x800, 103 - obj_tiles gMonBackPic_Cubone, 0x800, 104 - obj_tiles gMonBackPic_Marowak, 0x800, 105 - obj_tiles gMonBackPic_Hitmonlee, 0x800, 106 - obj_tiles gMonBackPic_Hitmonchan, 0x800, 107 - obj_tiles gMonBackPic_Lickitung, 0x800, 108 - obj_tiles gMonBackPic_Koffing, 0x800, 109 - obj_tiles gMonBackPic_Weezing, 0x800, 110 - obj_tiles gMonBackPic_Rhyhorn, 0x800, 111 - obj_tiles gMonBackPic_Rhydon, 0x800, 112 - obj_tiles gMonBackPic_Chansey, 0x800, 113 - obj_tiles gMonBackPic_Tangela, 0x800, 114 - obj_tiles gMonBackPic_Kangaskhan, 0x800, 115 - obj_tiles gMonBackPic_Horsea, 0x800, 116 - obj_tiles gMonBackPic_Seadra, 0x800, 117 - obj_tiles gMonBackPic_Goldeen, 0x800, 118 - obj_tiles gMonBackPic_Seaking, 0x800, 119 - obj_tiles gMonBackPic_Staryu, 0x800, 120 - obj_tiles gMonBackPic_Starmie, 0x800, 121 - obj_tiles gMonBackPic_Mrmime, 0x800, 122 - obj_tiles gMonBackPic_Scyther, 0x800, 123 - obj_tiles gMonBackPic_Jynx, 0x800, 124 - obj_tiles gMonBackPic_Electabuzz, 0x800, 125 - obj_tiles gMonBackPic_Magmar, 0x800, 126 - obj_tiles gMonBackPic_Pinsir, 0x800, 127 - obj_tiles gMonBackPic_Tauros, 0x800, 128 - obj_tiles gMonBackPic_Magikarp, 0x800, 129 - obj_tiles gMonBackPic_Gyarados, 0x800, 130 - obj_tiles gMonBackPic_Lapras, 0x800, 131 - obj_tiles gMonBackPic_Ditto, 0x800, 132 - obj_tiles gMonBackPic_Eevee, 0x800, 133 - obj_tiles gMonBackPic_Vaporeon, 0x800, 134 - obj_tiles gMonBackPic_Jolteon, 0x800, 135 - obj_tiles gMonBackPic_Flareon, 0x800, 136 - obj_tiles gMonBackPic_Porygon, 0x800, 137 - obj_tiles gMonBackPic_Omanyte, 0x800, 138 - obj_tiles gMonBackPic_Omastar, 0x800, 139 - obj_tiles gMonBackPic_Kabuto, 0x800, 140 - obj_tiles gMonBackPic_Kabutops, 0x800, 141 - obj_tiles gMonBackPic_Aerodactyl, 0x800, 142 - obj_tiles gMonBackPic_Snorlax, 0x800, 143 - obj_tiles gMonBackPic_Articuno, 0x800, 144 - obj_tiles gMonBackPic_Zapdos, 0x800, 145 - obj_tiles gMonBackPic_Moltres, 0x800, 146 - obj_tiles gMonBackPic_Dratini, 0x800, 147 - obj_tiles gMonBackPic_Dragonair, 0x800, 148 - obj_tiles gMonBackPic_Dragonite, 0x800, 149 - obj_tiles gMonBackPic_Mewtwo, 0x800, 150 - obj_tiles gMonBackPic_Mew, 0x800, 151 - obj_tiles gMonBackPic_Chikorita, 0x800, 152 - obj_tiles gMonBackPic_Bayleef, 0x800, 153 - obj_tiles gMonBackPic_Meganium, 0x800, 154 - obj_tiles gMonBackPic_Cyndaquil, 0x800, 155 - obj_tiles gMonBackPic_Quilava, 0x800, 156 - obj_tiles gMonBackPic_Typhlosion, 0x800, 157 - obj_tiles gMonBackPic_Totodile, 0x800, 158 - obj_tiles gMonBackPic_Croconaw, 0x800, 159 - obj_tiles gMonBackPic_Feraligatr, 0x800, 160 - obj_tiles gMonBackPic_Sentret, 0x800, 161 - obj_tiles gMonBackPic_Furret, 0x800, 162 - obj_tiles gMonBackPic_Hoothoot, 0x800, 163 - obj_tiles gMonBackPic_Noctowl, 0x800, 164 - obj_tiles gMonBackPic_Ledyba, 0x800, 165 - obj_tiles gMonBackPic_Ledian, 0x800, 166 - obj_tiles gMonBackPic_Spinarak, 0x800, 167 - obj_tiles gMonBackPic_Ariados, 0x800, 168 - obj_tiles gMonBackPic_Crobat, 0x800, 169 - obj_tiles gMonBackPic_Chinchou, 0x800, 170 - obj_tiles gMonBackPic_Lanturn, 0x800, 171 - obj_tiles gMonBackPic_Pichu, 0x800, 172 - obj_tiles gMonBackPic_Cleffa, 0x800, 173 - obj_tiles gMonBackPic_Igglybuff, 0x800, 174 - obj_tiles gMonBackPic_Togepi, 0x800, 175 - obj_tiles gMonBackPic_Togetic, 0x800, 176 - obj_tiles gMonBackPic_Natu, 0x800, 177 - obj_tiles gMonBackPic_Xatu, 0x800, 178 - obj_tiles gMonBackPic_Mareep, 0x800, 179 - obj_tiles gMonBackPic_Flaaffy, 0x800, 180 - obj_tiles gMonBackPic_Ampharos, 0x800, 181 - obj_tiles gMonBackPic_Bellossom, 0x800, 182 - obj_tiles gMonBackPic_Marill, 0x800, 183 - obj_tiles gMonBackPic_Azumarill, 0x800, 184 - obj_tiles gMonBackPic_Sudowoodo, 0x800, 185 - obj_tiles gMonBackPic_Politoed, 0x800, 186 - obj_tiles gMonBackPic_Hoppip, 0x800, 187 - obj_tiles gMonBackPic_Skiploom, 0x800, 188 - obj_tiles gMonBackPic_Jumpluff, 0x800, 189 - obj_tiles gMonBackPic_Aipom, 0x800, 190 - obj_tiles gMonBackPic_Sunkern, 0x800, 191 - obj_tiles gMonBackPic_Sunflora, 0x800, 192 - obj_tiles gMonBackPic_Yanma, 0x800, 193 - obj_tiles gMonBackPic_Wooper, 0x800, 194 - obj_tiles gMonBackPic_Quagsire, 0x800, 195 - obj_tiles gMonBackPic_Espeon, 0x800, 196 - obj_tiles gMonBackPic_Umbreon, 0x800, 197 - obj_tiles gMonBackPic_Murkrow, 0x800, 198 - obj_tiles gMonBackPic_Slowking, 0x800, 199 - obj_tiles gMonBackPic_Misdreavus, 0x800, 200 - obj_tiles gMonBackPic_UnownA, 0x800, 201 - obj_tiles gMonBackPic_Wobbuffet, 0x800, 202 - obj_tiles gMonBackPic_Girafarig, 0x800, 203 - obj_tiles gMonBackPic_Pineco, 0x800, 204 - obj_tiles gMonBackPic_Forretress, 0x800, 205 - obj_tiles gMonBackPic_Dunsparce, 0x800, 206 - obj_tiles gMonBackPic_Gligar, 0x800, 207 - obj_tiles gMonBackPic_Steelix, 0x800, 208 - obj_tiles gMonBackPic_Snubbull, 0x800, 209 - obj_tiles gMonBackPic_Granbull, 0x800, 210 - obj_tiles gMonBackPic_Qwilfish, 0x800, 211 - obj_tiles gMonBackPic_Scizor, 0x800, 212 - obj_tiles gMonBackPic_Shuckle, 0x800, 213 - obj_tiles gMonBackPic_Heracross, 0x800, 214 - obj_tiles gMonBackPic_Sneasel, 0x800, 215 - obj_tiles gMonBackPic_Teddiursa, 0x800, 216 - obj_tiles gMonBackPic_Ursaring, 0x800, 217 - obj_tiles gMonBackPic_Slugma, 0x800, 218 - obj_tiles gMonBackPic_Magcargo, 0x800, 219 - obj_tiles gMonBackPic_Swinub, 0x800, 220 - obj_tiles gMonBackPic_Piloswine, 0x800, 221 - obj_tiles gMonBackPic_Corsola, 0x800, 222 - obj_tiles gMonBackPic_Remoraid, 0x800, 223 - obj_tiles gMonBackPic_Octillery, 0x800, 224 - obj_tiles gMonBackPic_Delibird, 0x800, 225 - obj_tiles gMonBackPic_Mantine, 0x800, 226 - obj_tiles gMonBackPic_Skarmory, 0x800, 227 - obj_tiles gMonBackPic_Houndour, 0x800, 228 - obj_tiles gMonBackPic_Houndoom, 0x800, 229 - obj_tiles gMonBackPic_Kingdra, 0x800, 230 - obj_tiles gMonBackPic_Phanpy, 0x800, 231 - obj_tiles gMonBackPic_Donphan, 0x800, 232 - obj_tiles gMonBackPic_Porygon2, 0x800, 233 - obj_tiles gMonBackPic_Stantler, 0x800, 234 - obj_tiles gMonBackPic_Smeargle, 0x800, 235 - obj_tiles gMonBackPic_Tyrogue, 0x800, 236 - obj_tiles gMonBackPic_Hitmontop, 0x800, 237 - obj_tiles gMonBackPic_Smoochum, 0x800, 238 - obj_tiles gMonBackPic_Elekid, 0x800, 239 - obj_tiles gMonBackPic_Magby, 0x800, 240 - obj_tiles gMonBackPic_Miltank, 0x800, 241 - obj_tiles gMonBackPic_Blissey, 0x800, 242 - obj_tiles gMonBackPic_Raikou, 0x800, 243 - obj_tiles gMonBackPic_Entei, 0x800, 244 - obj_tiles gMonBackPic_Suicune, 0x800, 245 - obj_tiles gMonBackPic_Larvitar, 0x800, 246 - obj_tiles gMonBackPic_Pupitar, 0x800, 247 - obj_tiles gMonBackPic_Tyranitar, 0x800, 248 - obj_tiles gMonBackPic_Lugia, 0x800, 249 - obj_tiles gMonBackPic_HoOh, 0x800, 250 - obj_tiles gMonBackPic_Celebi, 0x800, 251 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 252 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 253 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 254 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 255 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 256 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 257 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 258 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 259 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 260 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 261 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 262 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 263 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 264 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 265 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 266 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 267 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 268 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 269 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 270 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 271 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 272 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 273 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 274 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 275 - obj_tiles gMonBackPic_DoubleQuestionMark, 0x800, 276 - obj_tiles gMonBackPic_Treecko, 0x800, 277 - obj_tiles gMonBackPic_Grovyle, 0x800, 278 - obj_tiles gMonBackPic_Sceptile, 0x800, 279 - obj_tiles gMonBackPic_Torchic, 0x800, 280 - obj_tiles gMonBackPic_Combusken, 0x800, 281 - obj_tiles gMonBackPic_Blaziken, 0x800, 282 - obj_tiles gMonBackPic_Mudkip, 0x800, 283 - obj_tiles gMonBackPic_Marshtomp, 0x800, 284 - obj_tiles gMonBackPic_Swampert, 0x800, 285 - obj_tiles gMonBackPic_Poochyena, 0x800, 286 - obj_tiles gMonBackPic_Mightyena, 0x800, 287 - obj_tiles gMonBackPic_Zigzagoon, 0x800, 288 - obj_tiles gMonBackPic_Linoone, 0x800, 289 - obj_tiles gMonBackPic_Wurmple, 0x800, 290 - obj_tiles gMonBackPic_Silcoon, 0x800, 291 - obj_tiles gMonBackPic_Beautifly, 0x800, 292 - obj_tiles gMonBackPic_Cascoon, 0x800, 293 - obj_tiles gMonBackPic_Dustox, 0x800, 294 - obj_tiles gMonBackPic_Lotad, 0x800, 295 - obj_tiles gMonBackPic_Lombre, 0x800, 296 - obj_tiles gMonBackPic_Ludicolo, 0x800, 297 - obj_tiles gMonBackPic_Seedot, 0x800, 298 - obj_tiles gMonBackPic_Nuzleaf, 0x800, 299 - obj_tiles gMonBackPic_Shiftry, 0x800, 300 - obj_tiles gMonBackPic_Nincada, 0x800, 301 - obj_tiles gMonBackPic_Ninjask, 0x800, 302 - obj_tiles gMonBackPic_Shedinja, 0x800, 303 - obj_tiles gMonBackPic_Taillow, 0x800, 304 - obj_tiles gMonBackPic_Swellow, 0x800, 305 - obj_tiles gMonBackPic_Shroomish, 0x800, 306 - obj_tiles gMonBackPic_Breloom, 0x800, 307 - obj_tiles gMonBackPic_Spinda, 0x800, 308 - obj_tiles gMonBackPic_Wingull, 0x800, 309 - obj_tiles gMonBackPic_Pelipper, 0x800, 310 - obj_tiles gMonBackPic_Surskit, 0x800, 311 - obj_tiles gMonBackPic_Masquerain, 0x800, 312 - obj_tiles gMonBackPic_Wailmer, 0x800, 313 - obj_tiles gMonBackPic_Wailord, 0x800, 314 - obj_tiles gMonBackPic_Skitty, 0x800, 315 - obj_tiles gMonBackPic_Delcatty, 0x800, 316 - obj_tiles gMonBackPic_Kecleon, 0x800, 317 - obj_tiles gMonBackPic_Baltoy, 0x800, 318 - obj_tiles gMonBackPic_Claydol, 0x800, 319 - obj_tiles gMonBackPic_Nosepass, 0x800, 320 - obj_tiles gMonBackPic_Torkoal, 0x800, 321 - obj_tiles gMonBackPic_Sableye, 0x800, 322 - obj_tiles gMonBackPic_Barboach, 0x800, 323 - obj_tiles gMonBackPic_Whiscash, 0x800, 324 - obj_tiles gMonBackPic_Luvdisc, 0x800, 325 - obj_tiles gMonBackPic_Corphish, 0x800, 326 - obj_tiles gMonBackPic_Crawdaunt, 0x800, 327 - obj_tiles gMonBackPic_Feebas, 0x800, 328 - obj_tiles gMonBackPic_Milotic, 0x800, 329 - obj_tiles gMonBackPic_Carvanha, 0x800, 330 - obj_tiles gMonBackPic_Sharpedo, 0x800, 331 - obj_tiles gMonBackPic_Trapinch, 0x800, 332 - obj_tiles gMonBackPic_Vibrava, 0x800, 333 - obj_tiles gMonBackPic_Flygon, 0x800, 334 - obj_tiles gMonBackPic_Makuhita, 0x800, 335 - obj_tiles gMonBackPic_Hariyama, 0x800, 336 - obj_tiles gMonBackPic_Electrike, 0x800, 337 - obj_tiles gMonBackPic_Manectric, 0x800, 338 - obj_tiles gMonBackPic_Numel, 0x800, 339 - obj_tiles gMonBackPic_Camerupt, 0x800, 340 - obj_tiles gMonBackPic_Spheal, 0x800, 341 - obj_tiles gMonBackPic_Sealeo, 0x800, 342 - obj_tiles gMonBackPic_Walrein, 0x800, 343 - obj_tiles gMonBackPic_Cacnea, 0x800, 344 - obj_tiles gMonBackPic_Cacturne, 0x800, 345 - obj_tiles gMonBackPic_Snorunt, 0x800, 346 - obj_tiles gMonBackPic_Glalie, 0x800, 347 - obj_tiles gMonBackPic_Lunatone, 0x800, 348 - obj_tiles gMonBackPic_Solrock, 0x800, 349 - obj_tiles gMonBackPic_Azurill, 0x800, 350 - obj_tiles gMonBackPic_Spoink, 0x800, 351 - obj_tiles gMonBackPic_Grumpig, 0x800, 352 - obj_tiles gMonBackPic_Plusle, 0x800, 353 - obj_tiles gMonBackPic_Minun, 0x800, 354 - obj_tiles gMonBackPic_Mawile, 0x800, 355 - obj_tiles gMonBackPic_Meditite, 0x800, 356 - obj_tiles gMonBackPic_Medicham, 0x800, 357 - obj_tiles gMonBackPic_Swablu, 0x800, 358 - obj_tiles gMonBackPic_Altaria, 0x800, 359 - obj_tiles gMonBackPic_Wynaut, 0x800, 360 - obj_tiles gMonBackPic_Duskull, 0x800, 361 - obj_tiles gMonBackPic_Dusclops, 0x800, 362 - obj_tiles gMonBackPic_Roselia, 0x800, 363 - obj_tiles gMonBackPic_Slakoth, 0x800, 364 - obj_tiles gMonBackPic_Vigoroth, 0x800, 365 - obj_tiles gMonBackPic_Slaking, 0x800, 366 - obj_tiles gMonBackPic_Gulpin, 0x800, 367 - obj_tiles gMonBackPic_Swalot, 0x800, 368 - obj_tiles gMonBackPic_Tropius, 0x800, 369 - obj_tiles gMonBackPic_Whismur, 0x800, 370 - obj_tiles gMonBackPic_Loudred, 0x800, 371 - obj_tiles gMonBackPic_Exploud, 0x800, 372 - obj_tiles gMonBackPic_Clamperl, 0x800, 373 - obj_tiles gMonBackPic_Huntail, 0x800, 374 - obj_tiles gMonBackPic_Gorebyss, 0x800, 375 - obj_tiles gMonBackPic_Absol, 0x800, 376 - obj_tiles gMonBackPic_Shuppet, 0x800, 377 - obj_tiles gMonBackPic_Banette, 0x800, 378 - obj_tiles gMonBackPic_Seviper, 0x800, 379 - obj_tiles gMonBackPic_Zangoose, 0x800, 380 - obj_tiles gMonBackPic_Relicanth, 0x800, 381 - obj_tiles gMonBackPic_Aron, 0x800, 382 - obj_tiles gMonBackPic_Lairon, 0x800, 383 - obj_tiles gMonBackPic_Aggron, 0x800, 384 - obj_tiles gMonBackPic_Castform, 0x800, 385 - obj_tiles gMonBackPic_Volbeat, 0x800, 386 - obj_tiles gMonBackPic_Illumise, 0x800, 387 - obj_tiles gMonBackPic_Lileep, 0x800, 388 - obj_tiles gMonBackPic_Cradily, 0x800, 389 - obj_tiles gMonBackPic_Anorith, 0x800, 390 - obj_tiles gMonBackPic_Armaldo, 0x800, 391 - obj_tiles gMonBackPic_Ralts, 0x800, 392 - obj_tiles gMonBackPic_Kirlia, 0x800, 393 - obj_tiles gMonBackPic_Gardevoir, 0x800, 394 - obj_tiles gMonBackPic_Bagon, 0x800, 395 - obj_tiles gMonBackPic_Shelgon, 0x800, 396 - obj_tiles gMonBackPic_Salamence, 0x800, 397 - obj_tiles gMonBackPic_Beldum, 0x800, 398 - obj_tiles gMonBackPic_Metang, 0x800, 399 - obj_tiles gMonBackPic_Metagross, 0x800, 400 - obj_tiles gMonBackPic_Regirock, 0x800, 401 - obj_tiles gMonBackPic_Regice, 0x800, 402 - obj_tiles gMonBackPic_Registeel, 0x800, 403 - obj_tiles gMonBackPic_Kyogre, 0x800, 404 - obj_tiles gMonBackPic_Groudon, 0x800, 405 - obj_tiles gMonBackPic_Rayquaza, 0x800, 406 - obj_tiles gMonBackPic_Latias, 0x800, 407 - obj_tiles gMonBackPic_Latios, 0x800, 408 - obj_tiles gMonBackPic_Jirachi, 0x800, 409 - obj_tiles gMonBackPic_Deoxys, 0x800, 410 - obj_tiles gMonBackPic_Chimecho, 0x800, 411 - obj_tiles gMonStillFrontPic_Egg, 0x800, 412 - obj_tiles gMonBackPic_UnownB, 0x800, 413 - obj_tiles gMonBackPic_UnownC, 0x800, 414 - obj_tiles gMonBackPic_UnownD, 0x800, 415 - obj_tiles gMonBackPic_UnownE, 0x800, 416 - obj_tiles gMonBackPic_UnownF, 0x800, 417 - obj_tiles gMonBackPic_UnownG, 0x800, 418 - obj_tiles gMonBackPic_UnownH, 0x800, 419 - obj_tiles gMonBackPic_UnownI, 0x800, 420 - obj_tiles gMonBackPic_UnownJ, 0x800, 421 - obj_tiles gMonBackPic_UnownK, 0x800, 422 - obj_tiles gMonBackPic_UnownL, 0x800, 423 - obj_tiles gMonBackPic_UnownM, 0x800, 424 - obj_tiles gMonBackPic_UnownN, 0x800, 425 - obj_tiles gMonBackPic_UnownO, 0x800, 426 - obj_tiles gMonBackPic_UnownP, 0x800, 427 - obj_tiles gMonBackPic_UnownQ, 0x800, 428 - obj_tiles gMonBackPic_UnownR, 0x800, 429 - obj_tiles gMonBackPic_UnownS, 0x800, 430 - obj_tiles gMonBackPic_UnownT, 0x800, 431 - obj_tiles gMonBackPic_UnownU, 0x800, 432 - obj_tiles gMonBackPic_UnownV, 0x800, 433 - obj_tiles gMonBackPic_UnownW, 0x800, 434 - obj_tiles gMonBackPic_UnownX, 0x800, 435 - obj_tiles gMonBackPic_UnownY, 0x800, 436 - obj_tiles gMonBackPic_UnownZ, 0x800, 437 - obj_tiles gMonBackPic_UnownExclamationMark, 0x800, 438 - obj_tiles gMonBackPic_UnownQuestionMark, 0x800, 439 diff --git a/data/graphics/pokemon/mon_footprint_table.inc b/data/graphics/pokemon/mon_footprint_table.inc deleted file mode 100644 index b5de0e11d..000000000 --- a/data/graphics/pokemon/mon_footprint_table.inc +++ /dev/null @@ -1,415 +0,0 @@ - .align 2 -gMonFootprintTable:: @ 856E694 - .4byte gMonFootprint_Bulbasaur - .4byte gMonFootprint_Bulbasaur - .4byte gMonFootprint_Ivysaur - .4byte gMonFootprint_Venusaur - .4byte gMonFootprint_Charmander - .4byte gMonFootprint_Charmeleon - .4byte gMonFootprint_Charizard - .4byte gMonFootprint_Squirtle - .4byte gMonFootprint_Wartortle - .4byte gMonFootprint_Blastoise - .4byte gMonFootprint_Caterpie - .4byte gMonFootprint_Metapod - .4byte gMonFootprint_Butterfree - .4byte gMonFootprint_Weedle - .4byte gMonFootprint_Kakuna - .4byte gMonFootprint_Beedrill - .4byte gMonFootprint_Pidgey - .4byte gMonFootprint_Pidgeotto - .4byte gMonFootprint_Pidgeot - .4byte gMonFootprint_Rattata - .4byte gMonFootprint_Raticate - .4byte gMonFootprint_Spearow - .4byte gMonFootprint_Fearow - .4byte gMonFootprint_Ekans - .4byte gMonFootprint_Arbok - .4byte gMonFootprint_Pikachu - .4byte gMonFootprint_Raichu - .4byte gMonFootprint_Sandshrew - .4byte gMonFootprint_Sandslash - .4byte gMonFootprint_NidoranF - .4byte gMonFootprint_Nidorina - .4byte gMonFootprint_Nidoqueen - .4byte gMonFootprint_NidoranM - .4byte gMonFootprint_Nidorino - .4byte gMonFootprint_Nidoking - .4byte gMonFootprint_Clefairy - .4byte gMonFootprint_Clefable - .4byte gMonFootprint_Vulpix - .4byte gMonFootprint_Ninetales - .4byte gMonFootprint_Jigglypuff - .4byte gMonFootprint_Wigglytuff - .4byte gMonFootprint_Zubat - .4byte gMonFootprint_Golbat - .4byte gMonFootprint_Oddish - .4byte gMonFootprint_Gloom - .4byte gMonFootprint_Vileplume - .4byte gMonFootprint_Paras - .4byte gMonFootprint_Parasect - .4byte gMonFootprint_Venonat - .4byte gMonFootprint_Venomoth - .4byte gMonFootprint_Diglett - .4byte gMonFootprint_Dugtrio - .4byte gMonFootprint_Meowth - .4byte gMonFootprint_Persian - .4byte gMonFootprint_Psyduck - .4byte gMonFootprint_Golduck - .4byte gMonFootprint_Mankey - .4byte gMonFootprint_Primeape - .4byte gMonFootprint_Growlithe - .4byte gMonFootprint_Arcanine - .4byte gMonFootprint_Poliwag - .4byte gMonFootprint_Poliwhirl - .4byte gMonFootprint_Poliwrath - .4byte gMonFootprint_Abra - .4byte gMonFootprint_Kadabra - .4byte gMonFootprint_Alakazam - .4byte gMonFootprint_Machop - .4byte gMonFootprint_Machoke - .4byte gMonFootprint_Machamp - .4byte gMonFootprint_Bellsprout - .4byte gMonFootprint_Weepinbell - .4byte gMonFootprint_Victreebel - .4byte gMonFootprint_Tentacool - .4byte gMonFootprint_Tentacruel - .4byte gMonFootprint_Geodude - .4byte gMonFootprint_Graveler - .4byte gMonFootprint_Golem - .4byte gMonFootprint_Ponyta - .4byte gMonFootprint_Rapidash - .4byte gMonFootprint_Slowpoke - .4byte gMonFootprint_Slowbro - .4byte gMonFootprint_Magnemite - .4byte gMonFootprint_Magneton - .4byte gMonFootprint_Farfetchd - .4byte gMonFootprint_Doduo - .4byte gMonFootprint_Dodrio - .4byte gMonFootprint_Seel - .4byte gMonFootprint_Dewgong - .4byte gMonFootprint_Grimer - .4byte gMonFootprint_Muk - .4byte gMonFootprint_Shellder - .4byte gMonFootprint_Cloyster - .4byte gMonFootprint_Gastly - .4byte gMonFootprint_Haunter - .4byte gMonFootprint_Gengar - .4byte gMonFootprint_Onix - .4byte gMonFootprint_Drowzee - .4byte gMonFootprint_Hypno - .4byte gMonFootprint_Krabby - .4byte gMonFootprint_Kingler - .4byte gMonFootprint_Voltorb - .4byte gMonFootprint_Electrode - .4byte gMonFootprint_Exeggcute - .4byte gMonFootprint_Exeggutor - .4byte gMonFootprint_Cubone - .4byte gMonFootprint_Marowak - .4byte gMonFootprint_Hitmonlee - .4byte gMonFootprint_Hitmonchan - .4byte gMonFootprint_Lickitung - .4byte gMonFootprint_Koffing - .4byte gMonFootprint_Weezing - .4byte gMonFootprint_Rhyhorn - .4byte gMonFootprint_Rhydon - .4byte gMonFootprint_Chansey - .4byte gMonFootprint_Tangela - .4byte gMonFootprint_Kangaskhan - .4byte gMonFootprint_Horsea - .4byte gMonFootprint_Seadra - .4byte gMonFootprint_Goldeen - .4byte gMonFootprint_Seaking - .4byte gMonFootprint_Staryu - .4byte gMonFootprint_Starmie - .4byte gMonFootprint_Mrmime - .4byte gMonFootprint_Scyther - .4byte gMonFootprint_Jynx - .4byte gMonFootprint_Electabuzz - .4byte gMonFootprint_Magmar - .4byte gMonFootprint_Pinsir - .4byte gMonFootprint_Tauros - .4byte gMonFootprint_Magikarp - .4byte gMonFootprint_Gyarados - .4byte gMonFootprint_Lapras - .4byte gMonFootprint_Ditto - .4byte gMonFootprint_Eevee - .4byte gMonFootprint_Vaporeon - .4byte gMonFootprint_Jolteon - .4byte gMonFootprint_Flareon - .4byte gMonFootprint_Porygon - .4byte gMonFootprint_Omanyte - .4byte gMonFootprint_Omastar - .4byte gMonFootprint_Kabuto - .4byte gMonFootprint_Kabutops - .4byte gMonFootprint_Aerodactyl - .4byte gMonFootprint_Snorlax - .4byte gMonFootprint_Articuno - .4byte gMonFootprint_Zapdos - .4byte gMonFootprint_Moltres - .4byte gMonFootprint_Dratini - .4byte gMonFootprint_Dragonair - .4byte gMonFootprint_Dragonite - .4byte gMonFootprint_Mewtwo - .4byte gMonFootprint_Mew - .4byte gMonFootprint_Chikorita - .4byte gMonFootprint_Bayleef - .4byte gMonFootprint_Meganium - .4byte gMonFootprint_Cyndaquil - .4byte gMonFootprint_Quilava - .4byte gMonFootprint_Typhlosion - .4byte gMonFootprint_Totodile - .4byte gMonFootprint_Croconaw - .4byte gMonFootprint_Feraligatr - .4byte gMonFootprint_Sentret - .4byte gMonFootprint_Furret - .4byte gMonFootprint_Hoothoot - .4byte gMonFootprint_Noctowl - .4byte gMonFootprint_Ledyba - .4byte gMonFootprint_Ledian - .4byte gMonFootprint_Spinarak - .4byte gMonFootprint_Ariados - .4byte gMonFootprint_Crobat - .4byte gMonFootprint_Chinchou - .4byte gMonFootprint_Lanturn - .4byte gMonFootprint_Pichu - .4byte gMonFootprint_Cleffa - .4byte gMonFootprint_Igglybuff - .4byte gMonFootprint_Togepi - .4byte gMonFootprint_Togetic - .4byte gMonFootprint_Natu - .4byte gMonFootprint_Xatu - .4byte gMonFootprint_Mareep - .4byte gMonFootprint_Flaaffy - .4byte gMonFootprint_Ampharos - .4byte gMonFootprint_Bellossom - .4byte gMonFootprint_Marill - .4byte gMonFootprint_Azumarill - .4byte gMonFootprint_Sudowoodo - .4byte gMonFootprint_Politoed - .4byte gMonFootprint_Hoppip - .4byte gMonFootprint_Skiploom - .4byte gMonFootprint_Jumpluff - .4byte gMonFootprint_Aipom - .4byte gMonFootprint_Sunkern - .4byte gMonFootprint_Sunflora - .4byte gMonFootprint_Yanma - .4byte gMonFootprint_Wooper - .4byte gMonFootprint_Quagsire - .4byte gMonFootprint_Espeon - .4byte gMonFootprint_Umbreon - .4byte gMonFootprint_Murkrow - .4byte gMonFootprint_Slowking - .4byte gMonFootprint_Misdreavus - .4byte gMonFootprint_Unown - .4byte gMonFootprint_Wobbuffet - .4byte gMonFootprint_Girafarig - .4byte gMonFootprint_Pineco - .4byte gMonFootprint_Forretress - .4byte gMonFootprint_Dunsparce - .4byte gMonFootprint_Gligar - .4byte gMonFootprint_Steelix - .4byte gMonFootprint_Snubbull - .4byte gMonFootprint_Granbull - .4byte gMonFootprint_Qwilfish - .4byte gMonFootprint_Scizor - .4byte gMonFootprint_Shuckle - .4byte gMonFootprint_Heracross - .4byte gMonFootprint_Sneasel - .4byte gMonFootprint_Teddiursa - .4byte gMonFootprint_Ursaring - .4byte gMonFootprint_Slugma - .4byte gMonFootprint_Magcargo - .4byte gMonFootprint_Swinub - .4byte gMonFootprint_Piloswine - .4byte gMonFootprint_Corsola - .4byte gMonFootprint_Remoraid - .4byte gMonFootprint_Octillery - .4byte gMonFootprint_Delibird - .4byte gMonFootprint_Mantine - .4byte gMonFootprint_Skarmory - .4byte gMonFootprint_Houndour - .4byte gMonFootprint_Houndoom - .4byte gMonFootprint_Kingdra - .4byte gMonFootprint_Phanpy - .4byte gMonFootprint_Donphan - .4byte gMonFootprint_Porygon2 - .4byte gMonFootprint_Stantler - .4byte gMonFootprint_Smeargle - .4byte gMonFootprint_Tyrogue - .4byte gMonFootprint_Hitmontop - .4byte gMonFootprint_Smoochum - .4byte gMonFootprint_Elekid - .4byte gMonFootprint_Magby - .4byte gMonFootprint_Miltank - .4byte gMonFootprint_Blissey - .4byte gMonFootprint_Raikou - .4byte gMonFootprint_Entei - .4byte gMonFootprint_Suicune - .4byte gMonFootprint_Larvitar - .4byte gMonFootprint_Pupitar - .4byte gMonFootprint_Tyranitar - .4byte gMonFootprint_Lugia - .4byte gMonFootprint_HoOh - .4byte gMonFootprint_Celebi - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_QuestionMark - .4byte gMonFootprint_Treecko - .4byte gMonFootprint_Grovyle - .4byte gMonFootprint_Sceptile - .4byte gMonFootprint_Torchic - .4byte gMonFootprint_Combusken - .4byte gMonFootprint_Blaziken - .4byte gMonFootprint_Mudkip - .4byte gMonFootprint_Marshtomp - .4byte gMonFootprint_Swampert - .4byte gMonFootprint_Poochyena - .4byte gMonFootprint_Mightyena - .4byte gMonFootprint_Zigzagoon - .4byte gMonFootprint_Linoone - .4byte gMonFootprint_Wurmple - .4byte gMonFootprint_Silcoon - .4byte gMonFootprint_Beautifly - .4byte gMonFootprint_Cascoon - .4byte gMonFootprint_Dustox - .4byte gMonFootprint_Lotad - .4byte gMonFootprint_Lombre - .4byte gMonFootprint_Ludicolo - .4byte gMonFootprint_Seedot - .4byte gMonFootprint_Nuzleaf - .4byte gMonFootprint_Shiftry - .4byte gMonFootprint_Nincada - .4byte gMonFootprint_Ninjask - .4byte gMonFootprint_Shedinja - .4byte gMonFootprint_Taillow - .4byte gMonFootprint_Swellow - .4byte gMonFootprint_Shroomish - .4byte gMonFootprint_Breloom - .4byte gMonFootprint_Spinda - .4byte gMonFootprint_Wingull - .4byte gMonFootprint_Pelipper - .4byte gMonFootprint_Surskit - .4byte gMonFootprint_Masquerain - .4byte gMonFootprint_Wailmer - .4byte gMonFootprint_Wailord - .4byte gMonFootprint_Skitty - .4byte gMonFootprint_Delcatty - .4byte gMonFootprint_Kecleon - .4byte gMonFootprint_Baltoy - .4byte gMonFootprint_Claydol - .4byte gMonFootprint_Nosepass - .4byte gMonFootprint_Torkoal - .4byte gMonFootprint_Sableye - .4byte gMonFootprint_Barboach - .4byte gMonFootprint_Whiscash - .4byte gMonFootprint_Luvdisc - .4byte gMonFootprint_Corphish - .4byte gMonFootprint_Crawdaunt - .4byte gMonFootprint_Feebas - .4byte gMonFootprint_Milotic - .4byte gMonFootprint_Carvanha - .4byte gMonFootprint_Sharpedo - .4byte gMonFootprint_Trapinch - .4byte gMonFootprint_Vibrava - .4byte gMonFootprint_Flygon - .4byte gMonFootprint_Makuhita - .4byte gMonFootprint_Hariyama - .4byte gMonFootprint_Electrike - .4byte gMonFootprint_Manectric - .4byte gMonFootprint_Numel - .4byte gMonFootprint_Camerupt - .4byte gMonFootprint_Spheal - .4byte gMonFootprint_Sealeo - .4byte gMonFootprint_Walrein - .4byte gMonFootprint_Cacnea - .4byte gMonFootprint_Cacturne - .4byte gMonFootprint_Snorunt - .4byte gMonFootprint_Glalie - .4byte gMonFootprint_Lunatone - .4byte gMonFootprint_Solrock - .4byte gMonFootprint_Azurill - .4byte gMonFootprint_Spoink - .4byte gMonFootprint_Grumpig - .4byte gMonFootprint_Plusle - .4byte gMonFootprint_Minun - .4byte gMonFootprint_Mawile - .4byte gMonFootprint_Meditite - .4byte gMonFootprint_Medicham - .4byte gMonFootprint_Swablu - .4byte gMonFootprint_Altaria - .4byte gMonFootprint_Wynaut - .4byte gMonFootprint_Duskull - .4byte gMonFootprint_Dusclops - .4byte gMonFootprint_Roselia - .4byte gMonFootprint_Slakoth - .4byte gMonFootprint_Vigoroth - .4byte gMonFootprint_Slaking - .4byte gMonFootprint_Gulpin - .4byte gMonFootprint_Swalot - .4byte gMonFootprint_Tropius - .4byte gMonFootprint_Whismur - .4byte gMonFootprint_Loudred - .4byte gMonFootprint_Exploud - .4byte gMonFootprint_Clamperl - .4byte gMonFootprint_Huntail - .4byte gMonFootprint_Gorebyss - .4byte gMonFootprint_Absol - .4byte gMonFootprint_Shuppet - .4byte gMonFootprint_Banette - .4byte gMonFootprint_Seviper - .4byte gMonFootprint_Zangoose - .4byte gMonFootprint_Relicanth - .4byte gMonFootprint_Aron - .4byte gMonFootprint_Lairon - .4byte gMonFootprint_Aggron - .4byte gMonFootprint_Castform - .4byte gMonFootprint_Volbeat - .4byte gMonFootprint_Illumise - .4byte gMonFootprint_Lileep - .4byte gMonFootprint_Cradily - .4byte gMonFootprint_Anorith - .4byte gMonFootprint_Armaldo - .4byte gMonFootprint_Ralts - .4byte gMonFootprint_Kirlia - .4byte gMonFootprint_Gardevoir - .4byte gMonFootprint_Bagon - .4byte gMonFootprint_Shelgon - .4byte gMonFootprint_Salamence - .4byte gMonFootprint_Beldum - .4byte gMonFootprint_Metang - .4byte gMonFootprint_Metagross - .4byte gMonFootprint_Regirock - .4byte gMonFootprint_Regice - .4byte gMonFootprint_Registeel - .4byte gMonFootprint_Kyogre - .4byte gMonFootprint_Groudon - .4byte gMonFootprint_Rayquaza - .4byte gMonFootprint_Latias - .4byte gMonFootprint_Latios - .4byte gMonFootprint_Jirachi - .4byte gMonFootprint_Deoxys - .4byte gMonFootprint_Chimecho - .4byte gMonFootprint_Bulbasaur diff --git a/data/graphics/pokemon/mon_front_pic_table.inc b/data/graphics/pokemon/mon_front_pic_table.inc deleted file mode 100644 index 7f481e190..000000000 --- a/data/graphics/pokemon/mon_front_pic_table.inc +++ /dev/null @@ -1,442 +0,0 @@ - .align 2 -gMonFrontPicTable:: @ 830A18C - obj_tiles gMonFrontPic_CircledQuestionMark, 0x800, 0 - obj_tiles gMonFrontPic_Bulbasaur, 0x800, 1 - obj_tiles gMonFrontPic_Ivysaur, 0x800, 2 - obj_tiles gMonFrontPic_Venusaur, 0x800, 3 - obj_tiles gMonFrontPic_Charmander, 0x800, 4 - obj_tiles gMonFrontPic_Charmeleon, 0x800, 5 - obj_tiles gMonFrontPic_Charizard, 0x800, 6 - obj_tiles gMonFrontPic_Squirtle, 0x800, 7 - obj_tiles gMonFrontPic_Wartortle, 0x800, 8 - obj_tiles gMonFrontPic_Blastoise, 0x800, 9 - obj_tiles gMonFrontPic_Caterpie, 0x800, 10 - obj_tiles gMonFrontPic_Metapod, 0x800, 11 - obj_tiles gMonFrontPic_Butterfree, 0x800, 12 - obj_tiles gMonFrontPic_Weedle, 0x800, 13 - obj_tiles gMonFrontPic_Kakuna, 0x800, 14 - obj_tiles gMonFrontPic_Beedrill, 0x800, 15 - obj_tiles gMonFrontPic_Pidgey, 0x800, 16 - obj_tiles gMonFrontPic_Pidgeotto, 0x800, 17 - obj_tiles gMonFrontPic_Pidgeot, 0x800, 18 - obj_tiles gMonFrontPic_Rattata, 0x800, 19 - obj_tiles gMonFrontPic_Raticate, 0x800, 20 - obj_tiles gMonFrontPic_Spearow, 0x800, 21 - obj_tiles gMonFrontPic_Fearow, 0x800, 22 - obj_tiles gMonFrontPic_Ekans, 0x800, 23 - obj_tiles gMonFrontPic_Arbok, 0x800, 24 - obj_tiles gMonFrontPic_Pikachu, 0x800, 25 - obj_tiles gMonFrontPic_Raichu, 0x800, 26 - obj_tiles gMonFrontPic_Sandshrew, 0x800, 27 - obj_tiles gMonFrontPic_Sandslash, 0x800, 28 - obj_tiles gMonFrontPic_NidoranF, 0x800, 29 - obj_tiles gMonFrontPic_Nidorina, 0x800, 30 - obj_tiles gMonFrontPic_Nidoqueen, 0x800, 31 - obj_tiles gMonFrontPic_NidoranM, 0x800, 32 - obj_tiles gMonFrontPic_Nidorino, 0x800, 33 - obj_tiles gMonFrontPic_Nidoking, 0x800, 34 - obj_tiles gMonFrontPic_Clefairy, 0x800, 35 - obj_tiles gMonFrontPic_Clefable, 0x800, 36 - obj_tiles gMonFrontPic_Vulpix, 0x800, 37 - obj_tiles gMonFrontPic_Ninetales, 0x800, 38 - obj_tiles gMonFrontPic_Jigglypuff, 0x800, 39 - obj_tiles gMonFrontPic_Wigglytuff, 0x800, 40 - obj_tiles gMonFrontPic_Zubat, 0x800, 41 - obj_tiles gMonFrontPic_Golbat, 0x800, 42 - obj_tiles gMonFrontPic_Oddish, 0x800, 43 - obj_tiles gMonFrontPic_Gloom, 0x800, 44 - obj_tiles gMonFrontPic_Vileplume, 0x800, 45 - obj_tiles gMonFrontPic_Paras, 0x800, 46 - obj_tiles gMonFrontPic_Parasect, 0x800, 47 - obj_tiles gMonFrontPic_Venonat, 0x800, 48 - obj_tiles gMonFrontPic_Venomoth, 0x800, 49 - obj_tiles gMonFrontPic_Diglett, 0x800, 50 - obj_tiles gMonFrontPic_Dugtrio, 0x800, 51 - obj_tiles gMonFrontPic_Meowth, 0x800, 52 - obj_tiles gMonFrontPic_Persian, 0x800, 53 - obj_tiles gMonFrontPic_Psyduck, 0x800, 54 - obj_tiles gMonFrontPic_Golduck, 0x800, 55 - obj_tiles gMonFrontPic_Mankey, 0x800, 56 - obj_tiles gMonFrontPic_Primeape, 0x800, 57 - obj_tiles gMonFrontPic_Growlithe, 0x800, 58 - obj_tiles gMonFrontPic_Arcanine, 0x800, 59 - obj_tiles gMonFrontPic_Poliwag, 0x800, 60 - obj_tiles gMonFrontPic_Poliwhirl, 0x800, 61 - obj_tiles gMonFrontPic_Poliwrath, 0x800, 62 - obj_tiles gMonFrontPic_Abra, 0x800, 63 - obj_tiles gMonFrontPic_Kadabra, 0x800, 64 - obj_tiles gMonFrontPic_Alakazam, 0x800, 65 - obj_tiles gMonFrontPic_Machop, 0x800, 66 - obj_tiles gMonFrontPic_Machoke, 0x800, 67 - obj_tiles gMonFrontPic_Machamp, 0x800, 68 - obj_tiles gMonFrontPic_Bellsprout, 0x800, 69 - obj_tiles gMonFrontPic_Weepinbell, 0x800, 70 - obj_tiles gMonFrontPic_Victreebel, 0x800, 71 - obj_tiles gMonFrontPic_Tentacool, 0x800, 72 - obj_tiles gMonFrontPic_Tentacruel, 0x800, 73 - obj_tiles gMonFrontPic_Geodude, 0x800, 74 - obj_tiles gMonFrontPic_Graveler, 0x800, 75 - obj_tiles gMonFrontPic_Golem, 0x800, 76 - obj_tiles gMonFrontPic_Ponyta, 0x800, 77 - obj_tiles gMonFrontPic_Rapidash, 0x800, 78 - obj_tiles gMonFrontPic_Slowpoke, 0x800, 79 - obj_tiles gMonFrontPic_Slowbro, 0x800, 80 - obj_tiles gMonFrontPic_Magnemite, 0x800, 81 - obj_tiles gMonFrontPic_Magneton, 0x800, 82 - obj_tiles gMonFrontPic_Farfetchd, 0x800, 83 - obj_tiles gMonFrontPic_Doduo, 0x800, 84 - obj_tiles gMonFrontPic_Dodrio, 0x800, 85 - obj_tiles gMonFrontPic_Seel, 0x800, 86 - obj_tiles gMonFrontPic_Dewgong, 0x800, 87 - obj_tiles gMonFrontPic_Grimer, 0x800, 88 - obj_tiles gMonFrontPic_Muk, 0x800, 89 - obj_tiles gMonFrontPic_Shellder, 0x800, 90 - obj_tiles gMonFrontPic_Cloyster, 0x800, 91 - obj_tiles gMonFrontPic_Gastly, 0x800, 92 - obj_tiles gMonFrontPic_Haunter, 0x800, 93 - obj_tiles gMonFrontPic_Gengar, 0x800, 94 - obj_tiles gMonFrontPic_Onix, 0x800, 95 - obj_tiles gMonFrontPic_Drowzee, 0x800, 96 - obj_tiles gMonFrontPic_Hypno, 0x800, 97 - obj_tiles gMonFrontPic_Krabby, 0x800, 98 - obj_tiles gMonFrontPic_Kingler, 0x800, 99 - obj_tiles gMonFrontPic_Voltorb, 0x800, 100 - obj_tiles gMonFrontPic_Electrode, 0x800, 101 - obj_tiles gMonFrontPic_Exeggcute, 0x800, 102 - obj_tiles gMonFrontPic_Exeggutor, 0x800, 103 - obj_tiles gMonFrontPic_Cubone, 0x800, 104 - obj_tiles gMonFrontPic_Marowak, 0x800, 105 - obj_tiles gMonFrontPic_Hitmonlee, 0x800, 106 - obj_tiles gMonFrontPic_Hitmonchan, 0x800, 107 - obj_tiles gMonFrontPic_Lickitung, 0x800, 108 - obj_tiles gMonFrontPic_Koffing, 0x800, 109 - obj_tiles gMonFrontPic_Weezing, 0x800, 110 - obj_tiles gMonFrontPic_Rhyhorn, 0x800, 111 - obj_tiles gMonFrontPic_Rhydon, 0x800, 112 - obj_tiles gMonFrontPic_Chansey, 0x800, 113 - obj_tiles gMonFrontPic_Tangela, 0x800, 114 - obj_tiles gMonFrontPic_Kangaskhan, 0x800, 115 - obj_tiles gMonFrontPic_Horsea, 0x800, 116 - obj_tiles gMonFrontPic_Seadra, 0x800, 117 - obj_tiles gMonFrontPic_Goldeen, 0x800, 118 - obj_tiles gMonFrontPic_Seaking, 0x800, 119 - obj_tiles gMonFrontPic_Staryu, 0x800, 120 - obj_tiles gMonFrontPic_Starmie, 0x800, 121 - obj_tiles gMonFrontPic_Mrmime, 0x800, 122 - obj_tiles gMonFrontPic_Scyther, 0x800, 123 - obj_tiles gMonFrontPic_Jynx, 0x800, 124 - obj_tiles gMonFrontPic_Electabuzz, 0x800, 125 - obj_tiles gMonFrontPic_Magmar, 0x800, 126 - obj_tiles gMonFrontPic_Pinsir, 0x800, 127 - obj_tiles gMonFrontPic_Tauros, 0x800, 128 - obj_tiles gMonFrontPic_Magikarp, 0x800, 129 - obj_tiles gMonFrontPic_Gyarados, 0x800, 130 - obj_tiles gMonFrontPic_Lapras, 0x800, 131 - obj_tiles gMonFrontPic_Ditto, 0x800, 132 - obj_tiles gMonFrontPic_Eevee, 0x800, 133 - obj_tiles gMonFrontPic_Vaporeon, 0x800, 134 - obj_tiles gMonFrontPic_Jolteon, 0x800, 135 - obj_tiles gMonFrontPic_Flareon, 0x800, 136 - obj_tiles gMonFrontPic_Porygon, 0x800, 137 - obj_tiles gMonFrontPic_Omanyte, 0x800, 138 - obj_tiles gMonFrontPic_Omastar, 0x800, 139 - obj_tiles gMonFrontPic_Kabuto, 0x800, 140 - obj_tiles gMonFrontPic_Kabutops, 0x800, 141 - obj_tiles gMonFrontPic_Aerodactyl, 0x800, 142 - obj_tiles gMonFrontPic_Snorlax, 0x800, 143 - obj_tiles gMonFrontPic_Articuno, 0x800, 144 - obj_tiles gMonFrontPic_Zapdos, 0x800, 145 - obj_tiles gMonFrontPic_Moltres, 0x800, 146 - obj_tiles gMonFrontPic_Dratini, 0x800, 147 - obj_tiles gMonFrontPic_Dragonair, 0x800, 148 - obj_tiles gMonFrontPic_Dragonite, 0x800, 149 - obj_tiles gMonFrontPic_Mewtwo, 0x800, 150 - obj_tiles gMonFrontPic_Mew, 0x800, 151 - obj_tiles gMonFrontPic_Chikorita, 0x800, 152 - obj_tiles gMonFrontPic_Bayleef, 0x800, 153 - obj_tiles gMonFrontPic_Meganium, 0x800, 154 - obj_tiles gMonFrontPic_Cyndaquil, 0x800, 155 - obj_tiles gMonFrontPic_Quilava, 0x800, 156 - obj_tiles gMonFrontPic_Typhlosion, 0x800, 157 - obj_tiles gMonFrontPic_Totodile, 0x800, 158 - obj_tiles gMonFrontPic_Croconaw, 0x800, 159 - obj_tiles gMonFrontPic_Feraligatr, 0x800, 160 - obj_tiles gMonFrontPic_Sentret, 0x800, 161 - obj_tiles gMonFrontPic_Furret, 0x800, 162 - obj_tiles gMonFrontPic_Hoothoot, 0x800, 163 - obj_tiles gMonFrontPic_Noctowl, 0x800, 164 - obj_tiles gMonFrontPic_Ledyba, 0x800, 165 - obj_tiles gMonFrontPic_Ledian, 0x800, 166 - obj_tiles gMonFrontPic_Spinarak, 0x800, 167 - obj_tiles gMonFrontPic_Ariados, 0x800, 168 - obj_tiles gMonFrontPic_Crobat, 0x800, 169 - obj_tiles gMonFrontPic_Chinchou, 0x800, 170 - obj_tiles gMonFrontPic_Lanturn, 0x800, 171 - obj_tiles gMonFrontPic_Pichu, 0x800, 172 - obj_tiles gMonFrontPic_Cleffa, 0x800, 173 - obj_tiles gMonFrontPic_Igglybuff, 0x800, 174 - obj_tiles gMonFrontPic_Togepi, 0x800, 175 - obj_tiles gMonFrontPic_Togetic, 0x800, 176 - obj_tiles gMonFrontPic_Natu, 0x800, 177 - obj_tiles gMonFrontPic_Xatu, 0x800, 178 - obj_tiles gMonFrontPic_Mareep, 0x800, 179 - obj_tiles gMonFrontPic_Flaaffy, 0x800, 180 - obj_tiles gMonFrontPic_Ampharos, 0x800, 181 - obj_tiles gMonFrontPic_Bellossom, 0x800, 182 - obj_tiles gMonFrontPic_Marill, 0x800, 183 - obj_tiles gMonFrontPic_Azumarill, 0x800, 184 - obj_tiles gMonFrontPic_Sudowoodo, 0x800, 185 - obj_tiles gMonFrontPic_Politoed, 0x800, 186 - obj_tiles gMonFrontPic_Hoppip, 0x800, 187 - obj_tiles gMonFrontPic_Skiploom, 0x800, 188 - obj_tiles gMonFrontPic_Jumpluff, 0x800, 189 - obj_tiles gMonFrontPic_Aipom, 0x800, 190 - obj_tiles gMonFrontPic_Sunkern, 0x800, 191 - obj_tiles gMonFrontPic_Sunflora, 0x800, 192 - obj_tiles gMonFrontPic_Yanma, 0x800, 193 - obj_tiles gMonFrontPic_Wooper, 0x800, 194 - obj_tiles gMonFrontPic_Quagsire, 0x800, 195 - obj_tiles gMonFrontPic_Espeon, 0x800, 196 - obj_tiles gMonFrontPic_Umbreon, 0x800, 197 - obj_tiles gMonFrontPic_Murkrow, 0x800, 198 - obj_tiles gMonFrontPic_Slowking, 0x800, 199 - obj_tiles gMonFrontPic_Misdreavus, 0x800, 200 - obj_tiles gMonFrontPic_UnownA, 0x800, 201 - obj_tiles gMonFrontPic_Wobbuffet, 0x800, 202 - obj_tiles gMonFrontPic_Girafarig, 0x800, 203 - obj_tiles gMonFrontPic_Pineco, 0x800, 204 - obj_tiles gMonFrontPic_Forretress, 0x800, 205 - obj_tiles gMonFrontPic_Dunsparce, 0x800, 206 - obj_tiles gMonFrontPic_Gligar, 0x800, 207 - obj_tiles gMonFrontPic_Steelix, 0x800, 208 - obj_tiles gMonFrontPic_Snubbull, 0x800, 209 - obj_tiles gMonFrontPic_Granbull, 0x800, 210 - obj_tiles gMonFrontPic_Qwilfish, 0x800, 211 - obj_tiles gMonFrontPic_Scizor, 0x800, 212 - obj_tiles gMonFrontPic_Shuckle, 0x800, 213 - obj_tiles gMonFrontPic_Heracross, 0x800, 214 - obj_tiles gMonFrontPic_Sneasel, 0x800, 215 - obj_tiles gMonFrontPic_Teddiursa, 0x800, 216 - obj_tiles gMonFrontPic_Ursaring, 0x800, 217 - obj_tiles gMonFrontPic_Slugma, 0x800, 218 - obj_tiles gMonFrontPic_Magcargo, 0x800, 219 - obj_tiles gMonFrontPic_Swinub, 0x800, 220 - obj_tiles gMonFrontPic_Piloswine, 0x800, 221 - obj_tiles gMonFrontPic_Corsola, 0x800, 222 - obj_tiles gMonFrontPic_Remoraid, 0x800, 223 - obj_tiles gMonFrontPic_Octillery, 0x800, 224 - obj_tiles gMonFrontPic_Delibird, 0x800, 225 - obj_tiles gMonFrontPic_Mantine, 0x800, 226 - obj_tiles gMonFrontPic_Skarmory, 0x800, 227 - obj_tiles gMonFrontPic_Houndour, 0x800, 228 - obj_tiles gMonFrontPic_Houndoom, 0x800, 229 - obj_tiles gMonFrontPic_Kingdra, 0x800, 230 - obj_tiles gMonFrontPic_Phanpy, 0x800, 231 - obj_tiles gMonFrontPic_Donphan, 0x800, 232 - obj_tiles gMonFrontPic_Porygon2, 0x800, 233 - obj_tiles gMonFrontPic_Stantler, 0x800, 234 - obj_tiles gMonFrontPic_Smeargle, 0x800, 235 - obj_tiles gMonFrontPic_Tyrogue, 0x800, 236 - obj_tiles gMonFrontPic_Hitmontop, 0x800, 237 - obj_tiles gMonFrontPic_Smoochum, 0x800, 238 - obj_tiles gMonFrontPic_Elekid, 0x800, 239 - obj_tiles gMonFrontPic_Magby, 0x800, 240 - obj_tiles gMonFrontPic_Miltank, 0x800, 241 - obj_tiles gMonFrontPic_Blissey, 0x800, 242 - obj_tiles gMonFrontPic_Raikou, 0x800, 243 - obj_tiles gMonFrontPic_Entei, 0x800, 244 - obj_tiles gMonFrontPic_Suicune, 0x800, 245 - obj_tiles gMonFrontPic_Larvitar, 0x800, 246 - obj_tiles gMonFrontPic_Pupitar, 0x800, 247 - obj_tiles gMonFrontPic_Tyranitar, 0x800, 248 - obj_tiles gMonFrontPic_Lugia, 0x800, 249 - obj_tiles gMonFrontPic_HoOh, 0x800, 250 - obj_tiles gMonFrontPic_Celebi, 0x800, 251 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 252 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 253 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 254 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 255 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 256 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 257 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 258 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 259 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 260 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 261 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 262 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 263 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 264 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 265 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 266 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 267 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 268 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 269 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 270 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 271 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 272 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 273 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 274 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 275 - obj_tiles gMonFrontPic_DoubleQuestionMark, 0x800, 276 - obj_tiles gMonFrontPic_Treecko, 0x800, 277 - obj_tiles gMonFrontPic_Grovyle, 0x800, 278 - obj_tiles gMonFrontPic_Sceptile, 0x800, 279 - obj_tiles gMonFrontPic_Torchic, 0x800, 280 - obj_tiles gMonFrontPic_Combusken, 0x800, 281 - obj_tiles gMonFrontPic_Blaziken, 0x800, 282 - obj_tiles gMonFrontPic_Mudkip, 0x800, 283 - obj_tiles gMonFrontPic_Marshtomp, 0x800, 284 - obj_tiles gMonFrontPic_Swampert, 0x800, 285 - obj_tiles gMonFrontPic_Poochyena, 0x800, 286 - obj_tiles gMonFrontPic_Mightyena, 0x800, 287 - obj_tiles gMonFrontPic_Zigzagoon, 0x800, 288 - obj_tiles gMonFrontPic_Linoone, 0x800, 289 - obj_tiles gMonFrontPic_Wurmple, 0x800, 290 - obj_tiles gMonFrontPic_Silcoon, 0x800, 291 - obj_tiles gMonFrontPic_Beautifly, 0x800, 292 - obj_tiles gMonFrontPic_Cascoon, 0x800, 293 - obj_tiles gMonFrontPic_Dustox, 0x800, 294 - obj_tiles gMonFrontPic_Lotad, 0x800, 295 - obj_tiles gMonFrontPic_Lombre, 0x800, 296 - obj_tiles gMonFrontPic_Ludicolo, 0x800, 297 - obj_tiles gMonFrontPic_Seedot, 0x800, 298 - obj_tiles gMonFrontPic_Nuzleaf, 0x800, 299 - obj_tiles gMonFrontPic_Shiftry, 0x800, 300 - obj_tiles gMonFrontPic_Nincada, 0x800, 301 - obj_tiles gMonFrontPic_Ninjask, 0x800, 302 - obj_tiles gMonFrontPic_Shedinja, 0x800, 303 - obj_tiles gMonFrontPic_Taillow, 0x800, 304 - obj_tiles gMonFrontPic_Swellow, 0x800, 305 - obj_tiles gMonFrontPic_Shroomish, 0x800, 306 - obj_tiles gMonFrontPic_Breloom, 0x800, 307 - obj_tiles gMonFrontPic_Spinda, 0x800, 308 - obj_tiles gMonFrontPic_Wingull, 0x800, 309 - obj_tiles gMonFrontPic_Pelipper, 0x800, 310 - obj_tiles gMonFrontPic_Surskit, 0x800, 311 - obj_tiles gMonFrontPic_Masquerain, 0x800, 312 - obj_tiles gMonFrontPic_Wailmer, 0x800, 313 - obj_tiles gMonFrontPic_Wailord, 0x800, 314 - obj_tiles gMonFrontPic_Skitty, 0x800, 315 - obj_tiles gMonFrontPic_Delcatty, 0x800, 316 - obj_tiles gMonFrontPic_Kecleon, 0x800, 317 - obj_tiles gMonFrontPic_Baltoy, 0x800, 318 - obj_tiles gMonFrontPic_Claydol, 0x800, 319 - obj_tiles gMonFrontPic_Nosepass, 0x800, 320 - obj_tiles gMonFrontPic_Torkoal, 0x800, 321 - obj_tiles gMonFrontPic_Sableye, 0x800, 322 - obj_tiles gMonFrontPic_Barboach, 0x800, 323 - obj_tiles gMonFrontPic_Whiscash, 0x800, 324 - obj_tiles gMonFrontPic_Luvdisc, 0x800, 325 - obj_tiles gMonFrontPic_Corphish, 0x800, 326 - obj_tiles gMonFrontPic_Crawdaunt, 0x800, 327 - obj_tiles gMonFrontPic_Feebas, 0x800, 328 - obj_tiles gMonFrontPic_Milotic, 0x800, 329 - obj_tiles gMonFrontPic_Carvanha, 0x800, 330 - obj_tiles gMonFrontPic_Sharpedo, 0x800, 331 - obj_tiles gMonFrontPic_Trapinch, 0x800, 332 - obj_tiles gMonFrontPic_Vibrava, 0x800, 333 - obj_tiles gMonFrontPic_Flygon, 0x800, 334 - obj_tiles gMonFrontPic_Makuhita, 0x800, 335 - obj_tiles gMonFrontPic_Hariyama, 0x800, 336 - obj_tiles gMonFrontPic_Electrike, 0x800, 337 - obj_tiles gMonFrontPic_Manectric, 0x800, 338 - obj_tiles gMonFrontPic_Numel, 0x800, 339 - obj_tiles gMonFrontPic_Camerupt, 0x800, 340 - obj_tiles gMonFrontPic_Spheal, 0x800, 341 - obj_tiles gMonFrontPic_Sealeo, 0x800, 342 - obj_tiles gMonFrontPic_Walrein, 0x800, 343 - obj_tiles gMonFrontPic_Cacnea, 0x800, 344 - obj_tiles gMonFrontPic_Cacturne, 0x800, 345 - obj_tiles gMonFrontPic_Snorunt, 0x800, 346 - obj_tiles gMonFrontPic_Glalie, 0x800, 347 - obj_tiles gMonFrontPic_Lunatone, 0x800, 348 - obj_tiles gMonFrontPic_Solrock, 0x800, 349 - obj_tiles gMonFrontPic_Azurill, 0x800, 350 - obj_tiles gMonFrontPic_Spoink, 0x800, 351 - obj_tiles gMonFrontPic_Grumpig, 0x800, 352 - obj_tiles gMonFrontPic_Plusle, 0x800, 353 - obj_tiles gMonFrontPic_Minun, 0x800, 354 - obj_tiles gMonFrontPic_Mawile, 0x800, 355 - obj_tiles gMonFrontPic_Meditite, 0x800, 356 - obj_tiles gMonFrontPic_Medicham, 0x800, 357 - obj_tiles gMonFrontPic_Swablu, 0x800, 358 - obj_tiles gMonFrontPic_Altaria, 0x800, 359 - obj_tiles gMonFrontPic_Wynaut, 0x800, 360 - obj_tiles gMonFrontPic_Duskull, 0x800, 361 - obj_tiles gMonFrontPic_Dusclops, 0x800, 362 - obj_tiles gMonFrontPic_Roselia, 0x800, 363 - obj_tiles gMonFrontPic_Slakoth, 0x800, 364 - obj_tiles gMonFrontPic_Vigoroth, 0x800, 365 - obj_tiles gMonFrontPic_Slaking, 0x800, 366 - obj_tiles gMonFrontPic_Gulpin, 0x800, 367 - obj_tiles gMonFrontPic_Swalot, 0x800, 368 - obj_tiles gMonFrontPic_Tropius, 0x800, 369 - obj_tiles gMonFrontPic_Whismur, 0x800, 370 - obj_tiles gMonFrontPic_Loudred, 0x800, 371 - obj_tiles gMonFrontPic_Exploud, 0x800, 372 - obj_tiles gMonFrontPic_Clamperl, 0x800, 373 - obj_tiles gMonFrontPic_Huntail, 0x800, 374 - obj_tiles gMonFrontPic_Gorebyss, 0x800, 375 - obj_tiles gMonFrontPic_Absol, 0x800, 376 - obj_tiles gMonFrontPic_Shuppet, 0x800, 377 - obj_tiles gMonFrontPic_Banette, 0x800, 378 - obj_tiles gMonFrontPic_Seviper, 0x800, 379 - obj_tiles gMonFrontPic_Zangoose, 0x800, 380 - obj_tiles gMonFrontPic_Relicanth, 0x800, 381 - obj_tiles gMonFrontPic_Aron, 0x800, 382 - obj_tiles gMonFrontPic_Lairon, 0x800, 383 - obj_tiles gMonFrontPic_Aggron, 0x800, 384 - obj_tiles gMonFrontPic_Castform, 0x800, 385 - obj_tiles gMonFrontPic_Volbeat, 0x800, 386 - obj_tiles gMonFrontPic_Illumise, 0x800, 387 - obj_tiles gMonFrontPic_Lileep, 0x800, 388 - obj_tiles gMonFrontPic_Cradily, 0x800, 389 - obj_tiles gMonFrontPic_Anorith, 0x800, 390 - obj_tiles gMonFrontPic_Armaldo, 0x800, 391 - obj_tiles gMonFrontPic_Ralts, 0x800, 392 - obj_tiles gMonFrontPic_Kirlia, 0x800, 393 - obj_tiles gMonFrontPic_Gardevoir, 0x800, 394 - obj_tiles gMonFrontPic_Bagon, 0x800, 395 - obj_tiles gMonFrontPic_Shelgon, 0x800, 396 - obj_tiles gMonFrontPic_Salamence, 0x800, 397 - obj_tiles gMonFrontPic_Beldum, 0x800, 398 - obj_tiles gMonFrontPic_Metang, 0x800, 399 - obj_tiles gMonFrontPic_Metagross, 0x800, 400 - obj_tiles gMonFrontPic_Regirock, 0x800, 401 - obj_tiles gMonFrontPic_Regice, 0x800, 402 - obj_tiles gMonFrontPic_Registeel, 0x800, 403 - obj_tiles gMonFrontPic_Kyogre, 0x800, 404 - obj_tiles gMonFrontPic_Groudon, 0x800, 405 - obj_tiles gMonFrontPic_Rayquaza, 0x800, 406 - obj_tiles gMonFrontPic_Latias, 0x800, 407 - obj_tiles gMonFrontPic_Latios, 0x800, 408 - obj_tiles gMonFrontPic_Jirachi, 0x800, 409 - obj_tiles gMonFrontPic_Deoxys, 0x800, 410 - obj_tiles gMonFrontPic_Chimecho, 0x800, 411 - obj_tiles gMonFrontPic_Egg, 0x800, 412 - obj_tiles gMonFrontPic_UnownB, 0x800, 413 - obj_tiles gMonFrontPic_UnownC, 0x800, 414 - obj_tiles gMonFrontPic_UnownD, 0x800, 415 - obj_tiles gMonFrontPic_UnownE, 0x800, 416 - obj_tiles gMonFrontPic_UnownF, 0x800, 417 - obj_tiles gMonFrontPic_UnownG, 0x800, 418 - obj_tiles gMonFrontPic_UnownH, 0x800, 419 - obj_tiles gMonFrontPic_UnownI, 0x800, 420 - obj_tiles gMonFrontPic_UnownJ, 0x800, 421 - obj_tiles gMonFrontPic_UnownK, 0x800, 422 - obj_tiles gMonFrontPic_UnownL, 0x800, 423 - obj_tiles gMonFrontPic_UnownM, 0x800, 424 - obj_tiles gMonFrontPic_UnownN, 0x800, 425 - obj_tiles gMonFrontPic_UnownO, 0x800, 426 - obj_tiles gMonFrontPic_UnownP, 0x800, 427 - obj_tiles gMonFrontPic_UnownQ, 0x800, 428 - obj_tiles gMonFrontPic_UnownR, 0x800, 429 - obj_tiles gMonFrontPic_UnownS, 0x800, 430 - obj_tiles gMonFrontPic_UnownT, 0x800, 431 - obj_tiles gMonFrontPic_UnownU, 0x800, 432 - obj_tiles gMonFrontPic_UnownV, 0x800, 433 - obj_tiles gMonFrontPic_UnownW, 0x800, 434 - obj_tiles gMonFrontPic_UnownX, 0x800, 435 - obj_tiles gMonFrontPic_UnownY, 0x800, 436 - obj_tiles gMonFrontPic_UnownZ, 0x800, 437 - obj_tiles gMonFrontPic_UnownExclamationMark, 0x800, 438 - obj_tiles gMonFrontPic_UnownQuestionMark, 0x800, 439 diff --git a/data/graphics/pokemon/mon_graphics.inc b/data/graphics/pokemon/mon_graphics.inc deleted file mode 100644 index 45ddfe1b5..000000000 --- a/data/graphics/pokemon/mon_graphics.inc +++ /dev/null @@ -1,9613 +0,0 @@ - .align 2 -gMonStillFrontPic_Bulbasaur:: @ 8C2FA08 - .incbin "graphics/pokemon/front_pics/bulbasaur_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Bulbasaur:: @ 8C2FCA0 - .incbin "graphics/pokemon/palettes/bulbasaur_palette.gbapal.lz" - - .align 2 -gMonBackPic_Bulbasaur:: @ 8C2FCC8 - .incbin "graphics/pokemon/back_pics/bulbasaur_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Bulbasaur:: @ 8C2FF78 - .incbin "graphics/pokemon/palettes/bulbasaur_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Bulbasaur:: @ 8C2FFA0 - .incbin "graphics/pokemon/icons/bulbasaur_icon.4bpp" - - .align 2 -gMonFootprint_Bulbasaur:: @ 8C303A0 - .incbin "graphics/pokemon/footprints/bulbasaur_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Ivysaur:: @ 8C303C0 - .incbin "graphics/pokemon/front_pics/ivysaur_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Ivysaur:: @ 8C30734 - .incbin "graphics/pokemon/palettes/ivysaur_palette.gbapal.lz" - - .align 2 -gMonBackPic_Ivysaur:: @ 8C3075C - .incbin "graphics/pokemon/back_pics/ivysaur_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Ivysaur:: @ 8C30AE8 - .incbin "graphics/pokemon/palettes/ivysaur_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Ivysaur:: @ 8C30B10 - .incbin "graphics/pokemon/icons/ivysaur_icon.4bpp" - - .align 2 -gMonFootprint_Ivysaur:: @ 8C30F10 - .incbin "graphics/pokemon/footprints/ivysaur_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Venusaur:: @ 8C30F30 - .incbin "graphics/pokemon/front_pics/venusaur_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Venusaur:: @ 8C314BC - .incbin "graphics/pokemon/palettes/venusaur_palette.gbapal.lz" - - .align 2 -gMonBackPic_Venusaur:: @ 8C314E4 - .incbin "graphics/pokemon/back_pics/venusaur_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Venusaur:: @ 8C319B4 - .incbin "graphics/pokemon/palettes/venusaur_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Venusaur:: @ 8C319DC - .incbin "graphics/pokemon/icons/venusaur_icon.4bpp" - - .align 2 -gMonFootprint_Venusaur:: @ 8C31DDC - .incbin "graphics/pokemon/footprints/venusaur_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Charmander:: @ 8C31DFC - .incbin "graphics/pokemon/front_pics/charmander_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Charmander:: @ 8C320AC - .incbin "graphics/pokemon/palettes/charmander_palette.gbapal.lz" - - .align 2 -gMonBackPic_Charmander:: @ 8C320D4 - .incbin "graphics/pokemon/back_pics/charmander_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Charmander:: @ 8C32368 - .incbin "graphics/pokemon/palettes/charmander_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Charmander:: @ 8C32390 - .incbin "graphics/pokemon/icons/charmander_icon.4bpp" - - .align 2 -gMonFootprint_Charmander:: @ 8C32790 - .incbin "graphics/pokemon/footprints/charmander_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Charmeleon:: @ 8C327B0 - .incbin "graphics/pokemon/front_pics/charmeleon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Charmeleon:: @ 8C32B58 - .incbin "graphics/pokemon/palettes/charmeleon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Charmeleon:: @ 8C32B80 - .incbin "graphics/pokemon/back_pics/charmeleon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Charmeleon:: @ 8C32E60 - .incbin "graphics/pokemon/palettes/charmeleon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Charmeleon:: @ 8C32E88 - .incbin "graphics/pokemon/icons/charmeleon_icon.4bpp" - - .align 2 -gMonFootprint_Charmeleon:: @ 8C33288 - .incbin "graphics/pokemon/footprints/charmeleon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Charizard:: @ 8C332A8 - .incbin "graphics/pokemon/front_pics/charizard_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Charizard:: @ 8C337F8 - .incbin "graphics/pokemon/palettes/charizard_palette.gbapal.lz" - - .align 2 -gMonBackPic_Charizard:: @ 8C33820 - .incbin "graphics/pokemon/back_pics/charizard_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Charizard:: @ 8C33C3C - .incbin "graphics/pokemon/palettes/charizard_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Charizard:: @ 8C33C64 - .incbin "graphics/pokemon/icons/charizard_icon.4bpp" - - .align 2 -gMonFootprint_Charizard:: @ 8C34064 - .incbin "graphics/pokemon/footprints/charizard_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Squirtle:: @ 8C34084 - .incbin "graphics/pokemon/front_pics/squirtle_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Squirtle:: @ 8C34360 - .incbin "graphics/pokemon/palettes/squirtle_palette.gbapal.lz" - - .align 2 -gMonBackPic_Squirtle:: @ 8C34388 - .incbin "graphics/pokemon/back_pics/squirtle_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Squirtle:: @ 8C34608 - .incbin "graphics/pokemon/palettes/squirtle_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Squirtle:: @ 8C34630 - .incbin "graphics/pokemon/icons/squirtle_icon.4bpp" - - .align 2 -gMonFootprint_Squirtle:: @ 8C34A30 - .incbin "graphics/pokemon/footprints/squirtle_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Wartortle:: @ 8C34A50 - .incbin "graphics/pokemon/front_pics/wartortle_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Wartortle:: @ 8C34DCC - .incbin "graphics/pokemon/palettes/wartortle_palette.gbapal.lz" - - .align 2 -gMonBackPic_Wartortle:: @ 8C34DF4 - .incbin "graphics/pokemon/back_pics/wartortle_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Wartortle:: @ 8C35128 - .incbin "graphics/pokemon/palettes/wartortle_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Wartortle:: @ 8C35150 - .incbin "graphics/pokemon/icons/wartortle_icon.4bpp" - - .align 2 -gMonFootprint_Wartortle:: @ 8C35550 - .incbin "graphics/pokemon/footprints/wartortle_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Blastoise:: @ 8C35570 - .incbin "graphics/pokemon/front_pics/blastoise_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Blastoise:: @ 8C35A74 - .incbin "graphics/pokemon/palettes/blastoise_palette.gbapal.lz" - - .align 2 -gMonBackPic_Blastoise:: @ 8C35A9C - .incbin "graphics/pokemon/back_pics/blastoise_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Blastoise:: @ 8C35EB8 - .incbin "graphics/pokemon/palettes/blastoise_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Blastoise:: @ 8C35EE0 - .incbin "graphics/pokemon/icons/blastoise_icon.4bpp" - - .align 2 -gMonFootprint_Blastoise:: @ 8C362E0 - .incbin "graphics/pokemon/footprints/blastoise_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Caterpie:: @ 8C36300 - .incbin "graphics/pokemon/front_pics/caterpie_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Caterpie:: @ 8C36560 - .incbin "graphics/pokemon/palettes/caterpie_palette.gbapal.lz" - - .align 2 -gMonBackPic_Caterpie:: @ 8C36588 - .incbin "graphics/pokemon/back_pics/caterpie_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Caterpie:: @ 8C36810 - .incbin "graphics/pokemon/palettes/caterpie_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Caterpie:: @ 8C36838 - .incbin "graphics/pokemon/icons/caterpie_icon.4bpp" - - .align 2 -gMonFootprint_Caterpie:: @ 8C36C38 - .incbin "graphics/pokemon/footprints/caterpie_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Metapod:: @ 8C36C58 - .incbin "graphics/pokemon/front_pics/metapod_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Metapod:: @ 8C36E70 - .incbin "graphics/pokemon/palettes/metapod_palette.gbapal.lz" - - .align 2 -gMonBackPic_Metapod:: @ 8C36E90 - .incbin "graphics/pokemon/back_pics/metapod_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Metapod:: @ 8C370D0 - .incbin "graphics/pokemon/palettes/metapod_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Metapod:: @ 8C370F0 - .incbin "graphics/pokemon/icons/metapod_icon.4bpp" - - .align 2 -gMonFootprint_Metapod:: @ 8C374F0 - .incbin "graphics/pokemon/footprints/metapod_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Butterfree:: @ 8C37510 - .incbin "graphics/pokemon/front_pics/butterfree_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Butterfree:: @ 8C37870 - .incbin "graphics/pokemon/palettes/butterfree_palette.gbapal.lz" - - .align 2 -gMonBackPic_Butterfree:: @ 8C37898 - .incbin "graphics/pokemon/back_pics/butterfree_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Butterfree:: @ 8C37CA8 - .incbin "graphics/pokemon/palettes/butterfree_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Butterfree:: @ 8C37CD0 - .incbin "graphics/pokemon/icons/butterfree_icon.4bpp" - - .align 2 -gMonFootprint_Butterfree:: @ 8C380D0 - .incbin "graphics/pokemon/footprints/butterfree_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Weedle:: @ 8C380F0 - .incbin "graphics/pokemon/front_pics/weedle_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Weedle:: @ 8C38330 - .incbin "graphics/pokemon/palettes/weedle_palette.gbapal.lz" - - .align 2 -gMonBackPic_Weedle:: @ 8C38358 - .incbin "graphics/pokemon/back_pics/weedle_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Weedle:: @ 8C385C0 - .incbin "graphics/pokemon/palettes/weedle_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Weedle:: @ 8C385E8 - .incbin "graphics/pokemon/icons/weedle_icon.4bpp" - - .align 2 -gMonFootprint_Weedle:: @ 8C389E8 - .incbin "graphics/pokemon/footprints/weedle_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Kakuna:: @ 8C38A08 - .incbin "graphics/pokemon/front_pics/kakuna_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Kakuna:: @ 8C38C54 - .incbin "graphics/pokemon/palettes/kakuna_palette.gbapal.lz" - - .align 2 -gMonBackPic_Kakuna:: @ 8C38C78 - .incbin "graphics/pokemon/back_pics/kakuna_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Kakuna:: @ 8C38EFC - .incbin "graphics/pokemon/palettes/kakuna_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Kakuna:: @ 8C38F20 - .incbin "graphics/pokemon/icons/kakuna_icon.4bpp" - - .align 2 -gMonFootprint_Kakuna:: @ 8C39320 - .incbin "graphics/pokemon/footprints/kakuna_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Beedrill:: @ 8C39340 - .incbin "graphics/pokemon/front_pics/beedrill_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Beedrill:: @ 8C39750 - .incbin "graphics/pokemon/palettes/beedrill_palette.gbapal.lz" - - .align 2 -gMonBackPic_Beedrill:: @ 8C39778 - .incbin "graphics/pokemon/back_pics/beedrill_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Beedrill:: @ 8C39AEC - .incbin "graphics/pokemon/palettes/beedrill_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Beedrill:: @ 8C39B14 - .incbin "graphics/pokemon/icons/beedrill_icon.4bpp" - - .align 2 -gMonFootprint_Beedrill:: @ 8C39F14 - .incbin "graphics/pokemon/footprints/beedrill_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Pidgey:: @ 8C39F34 - .incbin "graphics/pokemon/front_pics/pidgey_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Pidgey:: @ 8C3A220 - .incbin "graphics/pokemon/palettes/pidgey_palette.gbapal.lz" - - .align 2 -gMonBackPic_Pidgey:: @ 8C3A248 - .incbin "graphics/pokemon/back_pics/pidgey_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Pidgey:: @ 8C3A59C - .incbin "graphics/pokemon/palettes/pidgey_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Pidgey:: @ 8C3A5C4 - .incbin "graphics/pokemon/icons/pidgey_icon.4bpp" - - .align 2 -gMonFootprint_Pidgey:: @ 8C3A9C4 - .incbin "graphics/pokemon/footprints/pidgey_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Pidgeotto:: @ 8C3A9E4 - .incbin "graphics/pokemon/front_pics/pidgeotto_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Pidgeotto:: @ 8C3AD58 - .incbin "graphics/pokemon/palettes/pidgeotto_palette.gbapal.lz" - - .align 2 -gMonBackPic_Pidgeotto:: @ 8C3AD80 - .incbin "graphics/pokemon/back_pics/pidgeotto_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Pidgeotto:: @ 8C3B0CC - .incbin "graphics/pokemon/palettes/pidgeotto_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Pidgeotto:: @ 8C3B0F4 - .incbin "graphics/pokemon/icons/pidgeotto_icon.4bpp" - - .align 2 -gMonFootprint_Pidgeotto:: @ 8C3B4F4 - .incbin "graphics/pokemon/footprints/pidgeotto_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Pidgeot:: @ 8C3B514 - .incbin "graphics/pokemon/front_pics/pidgeot_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Pidgeot:: @ 8C3BA10 - .incbin "graphics/pokemon/palettes/pidgeot_palette.gbapal.lz" - - .align 2 -gMonBackPic_Pidgeot:: @ 8C3BA38 - .incbin "graphics/pokemon/back_pics/pidgeot_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Pidgeot:: @ 8C3BDC0 - .incbin "graphics/pokemon/palettes/pidgeot_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Pidgeot:: @ 8C3BDE8 - .incbin "graphics/pokemon/icons/pidgeot_icon.4bpp" - - .align 2 -gMonFootprint_Pidgeot:: @ 8C3C1E8 - .incbin "graphics/pokemon/footprints/pidgeot_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Rattata:: @ 8C3C208 - .incbin "graphics/pokemon/front_pics/rattata_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Rattata:: @ 8C3C454 - .incbin "graphics/pokemon/palettes/rattata_palette.gbapal.lz" - - .align 2 -gMonBackPic_Rattata:: @ 8C3C47C - .incbin "graphics/pokemon/back_pics/rattata_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Rattata:: @ 8C3C758 - .incbin "graphics/pokemon/palettes/rattata_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Rattata:: @ 8C3C780 - .incbin "graphics/pokemon/icons/rattata_icon.4bpp" - - .align 2 -gMonFootprint_Rattata:: @ 8C3CB80 - .incbin "graphics/pokemon/footprints/rattata_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Raticate:: @ 8C3CBA0 - .incbin "graphics/pokemon/front_pics/raticate_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Raticate:: @ 8C3CF28 - .incbin "graphics/pokemon/palettes/raticate_palette.gbapal.lz" - - .align 2 -gMonBackPic_Raticate:: @ 8C3CF50 - .incbin "graphics/pokemon/back_pics/raticate_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Raticate:: @ 8C3D280 - .incbin "graphics/pokemon/palettes/raticate_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Raticate:: @ 8C3D2A8 - .incbin "graphics/pokemon/icons/raticate_icon.4bpp" - - .align 2 -gMonFootprint_Raticate:: @ 8C3D6A8 - .incbin "graphics/pokemon/footprints/raticate_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Spearow:: @ 8C3D6C8 - .incbin "graphics/pokemon/front_pics/spearow_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Spearow:: @ 8C3D950 - .incbin "graphics/pokemon/palettes/spearow_palette.gbapal.lz" - - .align 2 -gMonBackPic_Spearow:: @ 8C3D978 - .incbin "graphics/pokemon/back_pics/spearow_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Spearow:: @ 8C3DC54 - .incbin "graphics/pokemon/palettes/spearow_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Spearow:: @ 8C3DC7C - .incbin "graphics/pokemon/icons/spearow_icon.4bpp" - - .align 2 -gMonFootprint_Spearow:: @ 8C3E07C - .incbin "graphics/pokemon/footprints/spearow_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Fearow:: @ 8C3E09C - .incbin "graphics/pokemon/front_pics/fearow_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Fearow:: @ 8C3E530 - .incbin "graphics/pokemon/palettes/fearow_palette.gbapal.lz" - - .align 2 -gMonBackPic_Fearow:: @ 8C3E558 - .incbin "graphics/pokemon/back_pics/fearow_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Fearow:: @ 8C3E850 - .incbin "graphics/pokemon/palettes/fearow_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Fearow:: @ 8C3E878 - .incbin "graphics/pokemon/icons/fearow_icon.4bpp" - - .align 2 -gMonFootprint_Fearow:: @ 8C3EC78 - .incbin "graphics/pokemon/footprints/fearow_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Ekans:: @ 8C3EC98 - .incbin "graphics/pokemon/front_pics/ekans_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Ekans:: @ 8C3EF98 - .incbin "graphics/pokemon/palettes/ekans_palette.gbapal.lz" - - .align 2 -gMonBackPic_Ekans:: @ 8C3EFC0 - .incbin "graphics/pokemon/back_pics/ekans_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Ekans:: @ 8C3F2B0 - .incbin "graphics/pokemon/palettes/ekans_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Ekans:: @ 8C3F2D8 - .incbin "graphics/pokemon/icons/ekans_icon.4bpp" - - .align 2 -gMonFootprint_Ekans:: @ 8C3F6D8 - .incbin "graphics/pokemon/footprints/ekans_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Arbok:: @ 8C3F6F8 - .incbin "graphics/pokemon/front_pics/arbok_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Arbok:: @ 8C3FB44 - .incbin "graphics/pokemon/palettes/arbok_palette.gbapal.lz" - - .align 2 -gMonBackPic_Arbok:: @ 8C3FB6C - .incbin "graphics/pokemon/back_pics/arbok_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Arbok:: @ 8C3FE0C - .incbin "graphics/pokemon/palettes/arbok_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Arbok:: @ 8C3FE34 - .incbin "graphics/pokemon/icons/arbok_icon.4bpp" - - .align 2 -gMonFootprint_Arbok:: @ 8C40234 - .incbin "graphics/pokemon/footprints/arbok_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Pikachu:: @ 8C40254 - .incbin "graphics/pokemon/front_pics/pikachu_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Pikachu:: @ 8C40524 - .incbin "graphics/pokemon/palettes/pikachu_palette.gbapal.lz" - - .align 2 -gMonBackPic_Pikachu:: @ 8C4054C - .incbin "graphics/pokemon/back_pics/pikachu_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Pikachu:: @ 8C40824 - .incbin "graphics/pokemon/palettes/pikachu_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Pikachu:: @ 8C4084C - .incbin "graphics/pokemon/icons/pikachu_icon.4bpp" - - .align 2 -gMonFootprint_Pikachu:: @ 8C40C4C - .incbin "graphics/pokemon/footprints/pikachu_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Raichu:: @ 8C40C6C - .incbin "graphics/pokemon/front_pics/raichu_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Raichu:: @ 8C41018 - .incbin "graphics/pokemon/palettes/raichu_palette.gbapal.lz" - - .align 2 -gMonBackPic_Raichu:: @ 8C41040 - .incbin "graphics/pokemon/back_pics/raichu_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Raichu:: @ 8C41360 - .incbin "graphics/pokemon/palettes/raichu_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Raichu:: @ 8C41388 - .incbin "graphics/pokemon/icons/raichu_icon.4bpp" - - .align 2 -gMonFootprint_Raichu:: @ 8C41788 - .incbin "graphics/pokemon/footprints/raichu_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Sandshrew:: @ 8C417A8 - .incbin "graphics/pokemon/front_pics/sandshrew_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Sandshrew:: @ 8C41A68 - .incbin "graphics/pokemon/palettes/sandshrew_palette.gbapal.lz" - - .align 2 -gMonBackPic_Sandshrew:: @ 8C41A90 - .incbin "graphics/pokemon/back_pics/sandshrew_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Sandshrew:: @ 8C41DB8 - .incbin "graphics/pokemon/palettes/sandshrew_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Sandshrew:: @ 8C41DE0 - .incbin "graphics/pokemon/icons/sandshrew_icon.4bpp" - - .align 2 -gMonFootprint_Sandshrew:: @ 8C421E0 - .incbin "graphics/pokemon/footprints/sandshrew_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Sandslash:: @ 8C42200 - .incbin "graphics/pokemon/front_pics/sandslash_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Sandslash:: @ 8C425EC - .incbin "graphics/pokemon/palettes/sandslash_palette.gbapal.lz" - - .align 2 -gMonBackPic_Sandslash:: @ 8C42614 - .incbin "graphics/pokemon/back_pics/sandslash_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Sandslash:: @ 8C42A30 - .incbin "graphics/pokemon/palettes/sandslash_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Sandslash:: @ 8C42A58 - .incbin "graphics/pokemon/icons/sandslash_icon.4bpp" - - .align 2 -gMonFootprint_Sandslash:: @ 8C42E58 - .incbin "graphics/pokemon/footprints/sandslash_footprint.1bpp" - - .align 2 -gMonStillFrontPic_NidoranF:: @ 8C42E78 - .incbin "graphics/pokemon/front_pics/nidoran_f_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_NidoranF:: @ 8C430F0 - .incbin "graphics/pokemon/palettes/nidoran_f_palette.gbapal.lz" - - .align 2 -gMonBackPic_NidoranF:: @ 8C43118 - .incbin "graphics/pokemon/back_pics/nidoran_f_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_NidoranF:: @ 8C433F0 - .incbin "graphics/pokemon/palettes/nidoran_f_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_NidoranF:: @ 8C43418 - .incbin "graphics/pokemon/icons/nidoran_f_icon.4bpp" - - .align 2 -gMonFootprint_NidoranF:: @ 8C43818 - .incbin "graphics/pokemon/footprints/nidoran_f_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Nidorina:: @ 8C43838 - .incbin "graphics/pokemon/front_pics/nidorina_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Nidorina:: @ 8C43B64 - .incbin "graphics/pokemon/palettes/nidorina_palette.gbapal.lz" - - .align 2 -gMonBackPic_Nidorina:: @ 8C43B8C - .incbin "graphics/pokemon/back_pics/nidorina_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Nidorina:: @ 8C43F20 - .incbin "graphics/pokemon/palettes/nidorina_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Nidorina:: @ 8C43F48 - .incbin "graphics/pokemon/icons/nidorina_icon.4bpp" - - .align 2 -gMonFootprint_Nidorina:: @ 8C44348 - .incbin "graphics/pokemon/footprints/nidorina_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Nidoqueen:: @ 8C44368 - .incbin "graphics/pokemon/front_pics/nidoqueen_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Nidoqueen:: @ 8C447F4 - .incbin "graphics/pokemon/palettes/nidoqueen_palette.gbapal.lz" - - .align 2 -gMonBackPic_Nidoqueen:: @ 8C4481C - .incbin "graphics/pokemon/back_pics/nidoqueen_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Nidoqueen:: @ 8C44BE0 - .incbin "graphics/pokemon/palettes/nidoqueen_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Nidoqueen:: @ 8C44C08 - .incbin "graphics/pokemon/icons/nidoqueen_icon.4bpp" - - .align 2 -gMonFootprint_Nidoqueen:: @ 8C45008 - .incbin "graphics/pokemon/footprints/nidoqueen_footprint.1bpp" - - .align 2 -gMonStillFrontPic_NidoranM:: @ 8C45028 - .incbin "graphics/pokemon/front_pics/nidoran_m_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_NidoranM:: @ 8C452F8 - .incbin "graphics/pokemon/palettes/nidoran_m_palette.gbapal.lz" - - .align 2 -gMonBackPic_NidoranM:: @ 8C45320 - .incbin "graphics/pokemon/back_pics/nidoran_m_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_NidoranM:: @ 8C45654 - .incbin "graphics/pokemon/palettes/nidoran_m_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_NidoranM:: @ 8C4567C - .incbin "graphics/pokemon/icons/nidoran_m_icon.4bpp" - - .align 2 -gMonFootprint_NidoranM:: @ 8C45A7C - .incbin "graphics/pokemon/footprints/nidoran_m_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Nidorino:: @ 8C45A9C - .incbin "graphics/pokemon/front_pics/nidorino_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Nidorino:: @ 8C45E30 - .incbin "graphics/pokemon/palettes/nidorino_palette.gbapal.lz" - - .align 2 -gMonBackPic_Nidorino:: @ 8C45E58 - .incbin "graphics/pokemon/back_pics/nidorino_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Nidorino:: @ 8C46214 - .incbin "graphics/pokemon/palettes/nidorino_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Nidorino:: @ 8C4623C - .incbin "graphics/pokemon/icons/nidorino_icon.4bpp" - - .align 2 -gMonFootprint_Nidorino:: @ 8C4663C - .incbin "graphics/pokemon/footprints/nidorino_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Nidoking:: @ 8C4665C - .incbin "graphics/pokemon/front_pics/nidoking_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Nidoking:: @ 8C46B54 - .incbin "graphics/pokemon/palettes/nidoking_palette.gbapal.lz" - - .align 2 -gMonBackPic_Nidoking:: @ 8C46B7C - .incbin "graphics/pokemon/back_pics/nidoking_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Nidoking:: @ 8C46FB8 - .incbin "graphics/pokemon/palettes/nidoking_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Nidoking:: @ 8C46FE0 - .incbin "graphics/pokemon/icons/nidoking_icon.4bpp" - - .align 2 -gMonFootprint_Nidoking:: @ 8C473E0 - .incbin "graphics/pokemon/footprints/nidoking_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Clefairy:: @ 8C47400 - .incbin "graphics/pokemon/front_pics/clefairy_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Clefairy:: @ 8C47688 - .incbin "graphics/pokemon/palettes/clefairy_palette.gbapal.lz" - - .align 2 -gMonBackPic_Clefairy:: @ 8C476B0 - .incbin "graphics/pokemon/back_pics/clefairy_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Clefairy:: @ 8C47980 - .incbin "graphics/pokemon/palettes/clefairy_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Clefairy:: @ 8C479A8 - .incbin "graphics/pokemon/icons/clefairy_icon.4bpp" - - .align 2 -gMonFootprint_Clefairy:: @ 8C47DA8 - .incbin "graphics/pokemon/footprints/clefairy_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Clefable:: @ 8C47DC8 - .incbin "graphics/pokemon/front_pics/clefable_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Clefable:: @ 8C48104 - .incbin "graphics/pokemon/palettes/clefable_palette.gbapal.lz" - - .align 2 -gMonBackPic_Clefable:: @ 8C4812C - .incbin "graphics/pokemon/back_pics/clefable_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Clefable:: @ 8C48464 - .incbin "graphics/pokemon/palettes/clefable_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Clefable:: @ 8C4848C - .incbin "graphics/pokemon/icons/clefable_icon.4bpp" - - .align 2 -gMonFootprint_Clefable:: @ 8C4888C - .incbin "graphics/pokemon/footprints/clefable_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Vulpix:: @ 8C488AC - .incbin "graphics/pokemon/front_pics/vulpix_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Vulpix:: @ 8C48BE8 - .incbin "graphics/pokemon/palettes/vulpix_palette.gbapal.lz" - - .align 2 -gMonBackPic_Vulpix:: @ 8C48C10 - .incbin "graphics/pokemon/back_pics/vulpix_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Vulpix:: @ 8C48F0C - .incbin "graphics/pokemon/palettes/vulpix_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Vulpix:: @ 8C48F34 - .incbin "graphics/pokemon/icons/vulpix_icon.4bpp" - - .align 2 -gMonFootprint_Vulpix:: @ 8C49334 - .incbin "graphics/pokemon/footprints/vulpix_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Ninetales:: @ 8C49354 - .incbin "graphics/pokemon/front_pics/ninetales_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Ninetales:: @ 8C49790 - .incbin "graphics/pokemon/palettes/ninetales_palette.gbapal.lz" - - .align 2 -gMonBackPic_Ninetales:: @ 8C497B0 - .incbin "graphics/pokemon/back_pics/ninetales_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Ninetales:: @ 8C49B30 - .incbin "graphics/pokemon/palettes/ninetales_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Ninetales:: @ 8C49B50 - .incbin "graphics/pokemon/icons/ninetales_icon.4bpp" - - .align 2 -gMonFootprint_Ninetales:: @ 8C49F50 - .incbin "graphics/pokemon/footprints/ninetales_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Jigglypuff:: @ 8C49F70 - .incbin "graphics/pokemon/front_pics/jigglypuff_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Jigglypuff:: @ 8C4A1E8 - .incbin "graphics/pokemon/palettes/jigglypuff_palette.gbapal.lz" - - .align 2 -gMonBackPic_Jigglypuff:: @ 8C4A210 - .incbin "graphics/pokemon/back_pics/jigglypuff_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Jigglypuff:: @ 8C4A46C - .incbin "graphics/pokemon/palettes/jigglypuff_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Jigglypuff:: @ 8C4A494 - .incbin "graphics/pokemon/icons/jigglypuff_icon.4bpp" - - .align 2 -gMonFootprint_Jigglypuff:: @ 8C4A894 - .incbin "graphics/pokemon/footprints/jigglypuff_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Wigglytuff:: @ 8C4A8B4 - .incbin "graphics/pokemon/front_pics/wigglytuff_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Wigglytuff:: @ 8C4AC08 - .incbin "graphics/pokemon/palettes/wigglytuff_palette.gbapal.lz" - - .align 2 -gMonBackPic_Wigglytuff:: @ 8C4AC30 - .incbin "graphics/pokemon/back_pics/wigglytuff_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Wigglytuff:: @ 8C4AED8 - .incbin "graphics/pokemon/palettes/wigglytuff_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Wigglytuff:: @ 8C4AF00 - .incbin "graphics/pokemon/icons/wigglytuff_icon.4bpp" - - .align 2 -gMonFootprint_Wigglytuff:: @ 8C4B300 - .incbin "graphics/pokemon/footprints/wigglytuff_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Zubat:: @ 8C4B320 - .incbin "graphics/pokemon/front_pics/zubat_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Zubat:: @ 8C4B5F8 - .incbin "graphics/pokemon/palettes/zubat_palette.gbapal.lz" - - .align 2 -gMonBackPic_Zubat:: @ 8C4B620 - .incbin "graphics/pokemon/back_pics/zubat_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Zubat:: @ 8C4B8DC - .incbin "graphics/pokemon/palettes/zubat_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Zubat:: @ 8C4B904 - .incbin "graphics/pokemon/icons/zubat_icon.4bpp" - - .align 2 -gMonFootprint_Zubat:: @ 8C4BD04 - .incbin "graphics/pokemon/footprints/zubat_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Golbat:: @ 8C4BD24 - .incbin "graphics/pokemon/front_pics/golbat_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Golbat:: @ 8C4C0C0 - .incbin "graphics/pokemon/palettes/golbat_palette.gbapal.lz" - - .align 2 -gMonBackPic_Golbat:: @ 8C4C0E8 - .incbin "graphics/pokemon/back_pics/golbat_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Golbat:: @ 8C4C3A4 - .incbin "graphics/pokemon/palettes/golbat_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Golbat:: @ 8C4C3CC - .incbin "graphics/pokemon/icons/golbat_icon.4bpp" - - .align 2 -gMonFootprint_Golbat:: @ 8C4C7CC - .incbin "graphics/pokemon/footprints/golbat_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Oddish:: @ 8C4C7EC - .incbin "graphics/pokemon/front_pics/oddish_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Oddish:: @ 8C4CA20 - .incbin "graphics/pokemon/palettes/oddish_palette.gbapal.lz" - - .align 2 -gMonBackPic_Oddish:: @ 8C4CA48 - .incbin "graphics/pokemon/back_pics/oddish_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Oddish:: @ 8C4CCC0 - .incbin "graphics/pokemon/palettes/oddish_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Oddish:: @ 8C4CCE8 - .incbin "graphics/pokemon/icons/oddish_icon.4bpp" - - .align 2 -gMonFootprint_Oddish:: @ 8C4D0E8 - .incbin "graphics/pokemon/footprints/oddish_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Gloom:: @ 8C4D108 - .incbin "graphics/pokemon/front_pics/gloom_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Gloom:: @ 8C4D480 - .incbin "graphics/pokemon/palettes/gloom_palette.gbapal.lz" - - .align 2 -gMonBackPic_Gloom:: @ 8C4D4A8 - .incbin "graphics/pokemon/back_pics/gloom_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Gloom:: @ 8C4D810 - .incbin "graphics/pokemon/palettes/gloom_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Gloom:: @ 8C4D838 - .incbin "graphics/pokemon/icons/gloom_icon.4bpp" - - .align 2 -gMonFootprint_Gloom:: @ 8C4DC38 - .incbin "graphics/pokemon/footprints/gloom_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Vileplume:: @ 8C4DC58 - .incbin "graphics/pokemon/front_pics/vileplume_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Vileplume:: @ 8C4DFD4 - .incbin "graphics/pokemon/palettes/vileplume_palette.gbapal.lz" - - .align 2 -gMonBackPic_Vileplume:: @ 8C4DFFC - .incbin "graphics/pokemon/back_pics/vileplume_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Vileplume:: @ 8C4E414 - .incbin "graphics/pokemon/palettes/vileplume_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Vileplume:: @ 8C4E43C - .incbin "graphics/pokemon/icons/vileplume_icon.4bpp" - - .align 2 -gMonFootprint_Vileplume:: @ 8C4E83C - .incbin "graphics/pokemon/footprints/vileplume_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Paras:: @ 8C4E85C - .incbin "graphics/pokemon/front_pics/paras_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Paras:: @ 8C4EAC8 - .incbin "graphics/pokemon/palettes/paras_palette.gbapal.lz" - - .align 2 -gMonBackPic_Paras:: @ 8C4EAF0 - .incbin "graphics/pokemon/back_pics/paras_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Paras:: @ 8C4ED90 - .incbin "graphics/pokemon/palettes/paras_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Paras:: @ 8C4EDB8 - .incbin "graphics/pokemon/icons/paras_icon.4bpp" - - .align 2 -gMonFootprint_Paras:: @ 8C4F1B8 - .incbin "graphics/pokemon/footprints/paras_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Parasect:: @ 8C4F1D8 - .incbin "graphics/pokemon/front_pics/parasect_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Parasect:: @ 8C4F59C - .incbin "graphics/pokemon/palettes/parasect_palette.gbapal.lz" - - .align 2 -gMonBackPic_Parasect:: @ 8C4F5C4 - .incbin "graphics/pokemon/back_pics/parasect_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Parasect:: @ 8C4F8C0 - .incbin "graphics/pokemon/palettes/parasect_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Parasect:: @ 8C4F8E8 - .incbin "graphics/pokemon/icons/parasect_icon.4bpp" - - .align 2 -gMonFootprint_Parasect:: @ 8C4FCE8 - .incbin "graphics/pokemon/footprints/parasect_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Venonat:: @ 8C4FD08 - .incbin "graphics/pokemon/front_pics/venonat_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Venonat:: @ 8C50080 - .incbin "graphics/pokemon/palettes/venonat_palette.gbapal.lz" - - .align 2 -gMonBackPic_Venonat:: @ 8C500A8 - .incbin "graphics/pokemon/back_pics/venonat_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Venonat:: @ 8C503D8 - .incbin "graphics/pokemon/palettes/venonat_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Venonat:: @ 8C50400 - .incbin "graphics/pokemon/icons/venonat_icon.4bpp" - - .align 2 -gMonFootprint_Venonat:: @ 8C50800 - .incbin "graphics/pokemon/footprints/venonat_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Venomoth:: @ 8C50820 - .incbin "graphics/pokemon/front_pics/venomoth_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Venomoth:: @ 8C50CC4 - .incbin "graphics/pokemon/palettes/venomoth_palette.gbapal.lz" - - .align 2 -gMonBackPic_Venomoth:: @ 8C50CEC - .incbin "graphics/pokemon/back_pics/venomoth_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Venomoth:: @ 8C510B0 - .incbin "graphics/pokemon/palettes/venomoth_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Venomoth:: @ 8C510D8 - .incbin "graphics/pokemon/icons/venomoth_icon.4bpp" - - .align 2 -gMonFootprint_Venomoth:: @ 8C514D8 - .incbin "graphics/pokemon/footprints/venomoth_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Diglett:: @ 8C514F8 - .incbin "graphics/pokemon/front_pics/diglett_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Diglett:: @ 8C51704 - .incbin "graphics/pokemon/palettes/diglett_palette.gbapal.lz" - - .align 2 -gMonBackPic_Diglett:: @ 8C5172C - .incbin "graphics/pokemon/back_pics/diglett_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Diglett:: @ 8C51938 - .incbin "graphics/pokemon/palettes/diglett_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Diglett:: @ 8C51960 - .incbin "graphics/pokemon/icons/diglett_icon.4bpp" - - .align 2 -gMonFootprint_Diglett:: @ 8C51D60 - .incbin "graphics/pokemon/footprints/diglett_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Dugtrio:: @ 8C51D80 - .incbin "graphics/pokemon/front_pics/dugtrio_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Dugtrio:: @ 8C520A4 - .incbin "graphics/pokemon/palettes/dugtrio_palette.gbapal.lz" - - .align 2 -gMonBackPic_Dugtrio:: @ 8C520CC - .incbin "graphics/pokemon/back_pics/dugtrio_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Dugtrio:: @ 8C52378 - .incbin "graphics/pokemon/palettes/dugtrio_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Dugtrio:: @ 8C523A0 - .incbin "graphics/pokemon/icons/dugtrio_icon.4bpp" - - .align 2 -gMonFootprint_Dugtrio:: @ 8C527A0 - .incbin "graphics/pokemon/footprints/dugtrio_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Meowth:: @ 8C527C0 - .incbin "graphics/pokemon/front_pics/meowth_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Meowth:: @ 8C52AAC - .incbin "graphics/pokemon/palettes/meowth_palette.gbapal.lz" - - .align 2 -gMonBackPic_Meowth:: @ 8C52AD4 - .incbin "graphics/pokemon/back_pics/meowth_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Meowth:: @ 8C52DB8 - .incbin "graphics/pokemon/palettes/meowth_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Meowth:: @ 8C52DE0 - .incbin "graphics/pokemon/icons/meowth_icon.4bpp" - - .align 2 -gMonFootprint_Meowth:: @ 8C531E0 - .incbin "graphics/pokemon/footprints/meowth_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Persian:: @ 8C53200 - .incbin "graphics/pokemon/front_pics/persian_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Persian:: @ 8C535B4 - .incbin "graphics/pokemon/palettes/persian_palette.gbapal.lz" - - .align 2 -gMonBackPic_Persian:: @ 8C535DC - .incbin "graphics/pokemon/back_pics/persian_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Persian:: @ 8C53940 - .incbin "graphics/pokemon/palettes/persian_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Persian:: @ 8C53968 - .incbin "graphics/pokemon/icons/persian_icon.4bpp" - - .align 2 -gMonFootprint_Persian:: @ 8C53D68 - .incbin "graphics/pokemon/footprints/persian_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Psyduck:: @ 8C53D88 - .incbin "graphics/pokemon/front_pics/psyduck_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Psyduck:: @ 8C54060 - .incbin "graphics/pokemon/palettes/psyduck_palette.gbapal.lz" - - .align 2 -gMonBackPic_Psyduck:: @ 8C54088 - .incbin "graphics/pokemon/back_pics/psyduck_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Psyduck:: @ 8C54324 - .incbin "graphics/pokemon/palettes/psyduck_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Psyduck:: @ 8C5434C - .incbin "graphics/pokemon/icons/psyduck_icon.4bpp" - - .align 2 -gMonFootprint_Psyduck:: @ 8C5474C - .incbin "graphics/pokemon/footprints/psyduck_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Golduck:: @ 8C5476C - .incbin "graphics/pokemon/front_pics/golduck_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Golduck:: @ 8C54B44 - .incbin "graphics/pokemon/palettes/golduck_palette.gbapal.lz" - - .align 2 -gMonBackPic_Golduck:: @ 8C54B6C - .incbin "graphics/pokemon/back_pics/golduck_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Golduck:: @ 8C54E98 - .incbin "graphics/pokemon/palettes/golduck_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Golduck:: @ 8C54EC0 - .incbin "graphics/pokemon/icons/golduck_icon.4bpp" - - .align 2 -gMonFootprint_Golduck:: @ 8C552C0 - .incbin "graphics/pokemon/footprints/golduck_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Mankey:: @ 8C552E0 - .incbin "graphics/pokemon/front_pics/mankey_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Mankey:: @ 8C555F8 - .incbin "graphics/pokemon/palettes/mankey_palette.gbapal.lz" - - .align 2 -gMonBackPic_Mankey:: @ 8C55620 - .incbin "graphics/pokemon/back_pics/mankey_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Mankey:: @ 8C55988 - .incbin "graphics/pokemon/palettes/mankey_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Mankey:: @ 8C559B0 - .incbin "graphics/pokemon/icons/mankey_icon.4bpp" - - .align 2 -gMonFootprint_Mankey:: @ 8C55DB0 - .incbin "graphics/pokemon/footprints/mankey_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Primeape:: @ 8C55DD0 - .incbin "graphics/pokemon/front_pics/primeape_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Primeape:: @ 8C56180 - .incbin "graphics/pokemon/palettes/primeape_palette.gbapal.lz" - - .align 2 -gMonBackPic_Primeape:: @ 8C561A8 - .incbin "graphics/pokemon/back_pics/primeape_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Primeape:: @ 8C56518 - .incbin "graphics/pokemon/palettes/primeape_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Primeape:: @ 8C56540 - .incbin "graphics/pokemon/icons/primeape_icon.4bpp" - - .align 2 -gMonFootprint_Primeape:: @ 8C56940 - .incbin "graphics/pokemon/footprints/primeape_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Growlithe:: @ 8C56960 - .incbin "graphics/pokemon/front_pics/growlithe_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Growlithe:: @ 8C56CB8 - .incbin "graphics/pokemon/palettes/growlithe_palette.gbapal.lz" - - .align 2 -gMonBackPic_Growlithe:: @ 8C56CE0 - .incbin "graphics/pokemon/back_pics/growlithe_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Growlithe:: @ 8C5701C - .incbin "graphics/pokemon/palettes/growlithe_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Growlithe:: @ 8C57044 - .incbin "graphics/pokemon/icons/growlithe_icon.4bpp" - - .align 2 -gMonFootprint_Growlithe:: @ 8C57444 - .incbin "graphics/pokemon/footprints/growlithe_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Arcanine:: @ 8C57464 - .incbin "graphics/pokemon/front_pics/arcanine_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Arcanine:: @ 8C57998 - .incbin "graphics/pokemon/palettes/arcanine_palette.gbapal.lz" - - .align 2 -gMonBackPic_Arcanine:: @ 8C579C0 - .incbin "graphics/pokemon/back_pics/arcanine_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Arcanine:: @ 8C57DA0 - .incbin "graphics/pokemon/palettes/arcanine_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Arcanine:: @ 8C57DC8 - .incbin "graphics/pokemon/icons/arcanine_icon.4bpp" - - .align 2 -gMonFootprint_Arcanine:: @ 8C581C8 - .incbin "graphics/pokemon/footprints/arcanine_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Poliwag:: @ 8C581E8 - .incbin "graphics/pokemon/front_pics/poliwag_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Poliwag:: @ 8C58470 - .incbin "graphics/pokemon/palettes/poliwag_palette.gbapal.lz" - - .align 2 -gMonBackPic_Poliwag:: @ 8C58498 - .incbin "graphics/pokemon/back_pics/poliwag_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Poliwag:: @ 8C58708 - .incbin "graphics/pokemon/palettes/poliwag_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Poliwag:: @ 8C58730 - .incbin "graphics/pokemon/icons/poliwag_icon.4bpp" - - .align 2 -gMonFootprint_Poliwag:: @ 8C58B30 - .incbin "graphics/pokemon/footprints/poliwag_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Poliwhirl:: @ 8C58B50 - .incbin "graphics/pokemon/front_pics/poliwhirl_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Poliwhirl:: @ 8C58F14 - .incbin "graphics/pokemon/palettes/poliwhirl_palette.gbapal.lz" - - .align 2 -gMonBackPic_Poliwhirl:: @ 8C58F3C - .incbin "graphics/pokemon/back_pics/poliwhirl_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Poliwhirl:: @ 8C591FC - .incbin "graphics/pokemon/palettes/poliwhirl_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Poliwhirl:: @ 8C59224 - .incbin "graphics/pokemon/icons/poliwhirl_icon.4bpp" - - .align 2 -gMonFootprint_Poliwhirl:: @ 8C59624 - .incbin "graphics/pokemon/footprints/poliwhirl_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Poliwrath:: @ 8C59644 - .incbin "graphics/pokemon/front_pics/poliwrath_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Poliwrath:: @ 8C59A0C - .incbin "graphics/pokemon/palettes/poliwrath_palette.gbapal.lz" - - .align 2 -gMonBackPic_Poliwrath:: @ 8C59A34 - .incbin "graphics/pokemon/back_pics/poliwrath_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Poliwrath:: @ 8C59D54 - .incbin "graphics/pokemon/palettes/poliwrath_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Poliwrath:: @ 8C59D7C - .incbin "graphics/pokemon/icons/poliwrath_icon.4bpp" - - .align 2 -gMonFootprint_Poliwrath:: @ 8C5A17C - .incbin "graphics/pokemon/footprints/poliwrath_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Abra:: @ 8C5A19C - .incbin "graphics/pokemon/front_pics/abra_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Abra:: @ 8C5A480 - .incbin "graphics/pokemon/palettes/abra_palette.gbapal.lz" - - .align 2 -gMonBackPic_Abra:: @ 8C5A4A4 - .incbin "graphics/pokemon/back_pics/abra_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Abra:: @ 8C5A7B8 - .incbin "graphics/pokemon/palettes/abra_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Abra:: @ 8C5A7DC - .incbin "graphics/pokemon/icons/abra_icon.4bpp" - - .align 2 -gMonFootprint_Abra:: @ 8C5ABDC - .incbin "graphics/pokemon/footprints/abra_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Kadabra:: @ 8C5ABFC - .incbin "graphics/pokemon/front_pics/kadabra_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Kadabra:: @ 8C5B060 - .incbin "graphics/pokemon/palettes/kadabra_palette.gbapal.lz" - - .align 2 -gMonBackPic_Kadabra:: @ 8C5B088 - .incbin "graphics/pokemon/back_pics/kadabra_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Kadabra:: @ 8C5B464 - .incbin "graphics/pokemon/palettes/kadabra_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Kadabra:: @ 8C5B48C - .incbin "graphics/pokemon/icons/kadabra_icon.4bpp" - - .align 2 -gMonFootprint_Kadabra:: @ 8C5B88C - .incbin "graphics/pokemon/footprints/kadabra_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Alakazam:: @ 8C5B8AC - .incbin "graphics/pokemon/front_pics/alakazam_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Alakazam:: @ 8C5BCA8 - .incbin "graphics/pokemon/palettes/alakazam_palette.gbapal.lz" - - .align 2 -gMonBackPic_Alakazam:: @ 8C5BCD0 - .incbin "graphics/pokemon/back_pics/alakazam_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Alakazam:: @ 8C5C114 - .incbin "graphics/pokemon/palettes/alakazam_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Alakazam:: @ 8C5C13C - .incbin "graphics/pokemon/icons/alakazam_icon.4bpp" - - .align 2 -gMonFootprint_Alakazam:: @ 8C5C53C - .incbin "graphics/pokemon/footprints/alakazam_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Machop:: @ 8C5C55C - .incbin "graphics/pokemon/front_pics/machop_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Machop:: @ 8C5C800 - .incbin "graphics/pokemon/palettes/machop_palette.gbapal.lz" - - .align 2 -gMonBackPic_Machop:: @ 8C5C828 - .incbin "graphics/pokemon/back_pics/machop_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Machop:: @ 8C5CB08 - .incbin "graphics/pokemon/palettes/machop_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Machop:: @ 8C5CB30 - .incbin "graphics/pokemon/icons/machop_icon.4bpp" - - .align 2 -gMonFootprint_Machop:: @ 8C5CF30 - .incbin "graphics/pokemon/footprints/machop_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Machoke:: @ 8C5CF50 - .incbin "graphics/pokemon/front_pics/machoke_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Machoke:: @ 8C5D300 - .incbin "graphics/pokemon/palettes/machoke_palette.gbapal.lz" - - .align 2 -gMonBackPic_Machoke:: @ 8C5D328 - .incbin "graphics/pokemon/back_pics/machoke_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Machoke:: @ 8C5D678 - .incbin "graphics/pokemon/palettes/machoke_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Machoke:: @ 8C5D6A0 - .incbin "graphics/pokemon/icons/machoke_icon.4bpp" - - .align 2 -gMonFootprint_Machoke:: @ 8C5DAA0 - .incbin "graphics/pokemon/footprints/machoke_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Machamp:: @ 8C5DAC0 - .incbin "graphics/pokemon/front_pics/machamp_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Machamp:: @ 8C5E010 - .incbin "graphics/pokemon/palettes/machamp_palette.gbapal.lz" - - .align 2 -gMonBackPic_Machamp:: @ 8C5E038 - .incbin "graphics/pokemon/back_pics/machamp_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Machamp:: @ 8C5E494 - .incbin "graphics/pokemon/palettes/machamp_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Machamp:: @ 8C5E4BC - .incbin "graphics/pokemon/icons/machamp_icon.4bpp" - - .align 2 -gMonFootprint_Machamp:: @ 8C5E8BC - .incbin "graphics/pokemon/footprints/machamp_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Bellsprout:: @ 8C5E8DC - .incbin "graphics/pokemon/front_pics/bellsprout_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Bellsprout:: @ 8C5EB5C - .incbin "graphics/pokemon/palettes/bellsprout_palette.gbapal.lz" - - .align 2 -gMonBackPic_Bellsprout:: @ 8C5EB84 - .incbin "graphics/pokemon/back_pics/bellsprout_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Bellsprout:: @ 8C5EE20 - .incbin "graphics/pokemon/palettes/bellsprout_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Bellsprout:: @ 8C5EE48 - .incbin "graphics/pokemon/icons/bellsprout_icon.4bpp" - - .align 2 -gMonFootprint_Bellsprout:: @ 8C5F248 - .incbin "graphics/pokemon/footprints/bellsprout_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Weepinbell:: @ 8C5F268 - .incbin "graphics/pokemon/front_pics/weepinbell_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Weepinbell:: @ 8C5F58C - .incbin "graphics/pokemon/palettes/weepinbell_palette.gbapal.lz" - - .align 2 -gMonBackPic_Weepinbell:: @ 8C5F5B4 - .incbin "graphics/pokemon/back_pics/weepinbell_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Weepinbell:: @ 8C5F8B0 - .incbin "graphics/pokemon/palettes/weepinbell_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Weepinbell:: @ 8C5F8D8 - .incbin "graphics/pokemon/icons/weepinbell_icon.4bpp" - - .align 2 -gMonFootprint_Weepinbell:: @ 8C5FCD8 - .incbin "graphics/pokemon/footprints/weepinbell_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Victreebel:: @ 8C5FCF8 - .incbin "graphics/pokemon/front_pics/victreebel_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Victreebel:: @ 8C60124 - .incbin "graphics/pokemon/palettes/victreebel_palette.gbapal.lz" - - .align 2 -gMonBackPic_Victreebel:: @ 8C6014C - .incbin "graphics/pokemon/back_pics/victreebel_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Victreebel:: @ 8C604E4 - .incbin "graphics/pokemon/palettes/victreebel_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Victreebel:: @ 8C6050C - .incbin "graphics/pokemon/icons/victreebel_icon.4bpp" - - .align 2 -gMonFootprint_Victreebel:: @ 8C6090C - .incbin "graphics/pokemon/footprints/victreebel_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Tentacool:: @ 8C6092C - .incbin "graphics/pokemon/front_pics/tentacool_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Tentacool:: @ 8C60BCC - .incbin "graphics/pokemon/palettes/tentacool_palette.gbapal.lz" - - .align 2 -gMonBackPic_Tentacool:: @ 8C60BF4 - .incbin "graphics/pokemon/back_pics/tentacool_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Tentacool:: @ 8C60EC0 - .incbin "graphics/pokemon/palettes/tentacool_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Tentacool:: @ 8C60EE8 - .incbin "graphics/pokemon/icons/tentacool_icon.4bpp" - - .align 2 -gMonFootprint_Tentacool:: @ 8C612E8 - .incbin "graphics/pokemon/footprints/tentacool_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Tentacruel:: @ 8C61308 - .incbin "graphics/pokemon/front_pics/tentacruel_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Tentacruel:: @ 8C617A4 - .incbin "graphics/pokemon/palettes/tentacruel_palette.gbapal.lz" - - .align 2 -gMonBackPic_Tentacruel:: @ 8C617CC - .incbin "graphics/pokemon/back_pics/tentacruel_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Tentacruel:: @ 8C61B68 - .incbin "graphics/pokemon/palettes/tentacruel_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Tentacruel:: @ 8C61B90 - .incbin "graphics/pokemon/icons/tentacruel_icon.4bpp" - - .align 2 -gMonFootprint_Tentacruel:: @ 8C61F90 - .incbin "graphics/pokemon/footprints/tentacruel_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Geodude:: @ 8C61FB0 - .incbin "graphics/pokemon/front_pics/geodude_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Geodude:: @ 8C6221C - .incbin "graphics/pokemon/palettes/geodude_palette.gbapal.lz" - - .align 2 -gMonBackPic_Geodude:: @ 8C62238 - .incbin "graphics/pokemon/back_pics/geodude_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Geodude:: @ 8C624CC - .incbin "graphics/pokemon/palettes/geodude_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Geodude:: @ 8C624E8 - .incbin "graphics/pokemon/icons/geodude_icon.4bpp" - - .align 2 -gMonFootprint_Geodude:: @ 8C628E8 - .incbin "graphics/pokemon/footprints/geodude_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Graveler:: @ 8C62908 - .incbin "graphics/pokemon/front_pics/graveler_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Graveler:: @ 8C62D10 - .incbin "graphics/pokemon/palettes/graveler_palette.gbapal.lz" - - .align 2 -gMonBackPic_Graveler:: @ 8C62D30 - .incbin "graphics/pokemon/back_pics/graveler_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Graveler:: @ 8C62FAC - .incbin "graphics/pokemon/palettes/graveler_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Graveler:: @ 8C62FCC - .incbin "graphics/pokemon/icons/graveler_icon.4bpp" - - .align 2 -gMonFootprint_Graveler:: @ 8C633CC - .incbin "graphics/pokemon/footprints/graveler_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Golem:: @ 8C633EC - .incbin "graphics/pokemon/front_pics/golem_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Golem:: @ 8C63868 - .incbin "graphics/pokemon/palettes/golem_palette.gbapal.lz" - - .align 2 -gMonBackPic_Golem:: @ 8C63890 - .incbin "graphics/pokemon/back_pics/golem_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Golem:: @ 8C63B50 - .incbin "graphics/pokemon/palettes/golem_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Golem:: @ 8C63B78 - .incbin "graphics/pokemon/icons/golem_icon.4bpp" - - .align 2 -gMonFootprint_Golem:: @ 8C63F78 - .incbin "graphics/pokemon/footprints/golem_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Ponyta:: @ 8C63F98 - .incbin "graphics/pokemon/front_pics/ponyta_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Ponyta:: @ 8C64340 - .incbin "graphics/pokemon/palettes/ponyta_palette.gbapal.lz" - - .align 2 -gMonBackPic_Ponyta:: @ 8C64368 - .incbin "graphics/pokemon/back_pics/ponyta_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Ponyta:: @ 8C646A4 - .incbin "graphics/pokemon/palettes/ponyta_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Ponyta:: @ 8C646CC - .incbin "graphics/pokemon/icons/ponyta_icon.4bpp" - - .align 2 -gMonFootprint_Ponyta:: @ 8C64ACC - .incbin "graphics/pokemon/footprints/ponyta_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Rapidash:: @ 8C64AEC - .incbin "graphics/pokemon/front_pics/rapidash_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Rapidash:: @ 8C64FBC - .incbin "graphics/pokemon/palettes/rapidash_palette.gbapal.lz" - - .align 2 -gMonBackPic_Rapidash:: @ 8C64FE4 - .incbin "graphics/pokemon/back_pics/rapidash_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Rapidash:: @ 8C653F4 - .incbin "graphics/pokemon/palettes/rapidash_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Rapidash:: @ 8C6541C - .incbin "graphics/pokemon/icons/rapidash_icon.4bpp" - - .align 2 -gMonFootprint_Rapidash:: @ 8C6581C - .incbin "graphics/pokemon/footprints/rapidash_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Slowpoke:: @ 8C6583C - .incbin "graphics/pokemon/front_pics/slowpoke_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Slowpoke:: @ 8C65B48 - .incbin "graphics/pokemon/palettes/slowpoke_palette.gbapal.lz" - - .align 2 -gMonBackPic_Slowpoke:: @ 8C65B70 - .incbin "graphics/pokemon/back_pics/slowpoke_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Slowpoke:: @ 8C65DD4 - .incbin "graphics/pokemon/palettes/slowpoke_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Slowpoke:: @ 8C65DFC - .incbin "graphics/pokemon/icons/slowpoke_icon.4bpp" - - .align 2 -gMonFootprint_Slowpoke:: @ 8C661FC - .incbin "graphics/pokemon/footprints/slowpoke_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Slowbro:: @ 8C6621C - .incbin "graphics/pokemon/front_pics/slowbro_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Slowbro:: @ 8C666DC - .incbin "graphics/pokemon/palettes/slowbro_palette.gbapal.lz" - - .align 2 -gMonBackPic_Slowbro:: @ 8C66704 - .incbin "graphics/pokemon/back_pics/slowbro_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Slowbro:: @ 8C66AA0 - .incbin "graphics/pokemon/palettes/slowbro_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Slowbro:: @ 8C66AC8 - .incbin "graphics/pokemon/icons/slowbro_icon.4bpp" - - .align 2 -gMonFootprint_Slowbro:: @ 8C66EC8 - .incbin "graphics/pokemon/footprints/slowbro_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Magnemite:: @ 8C66EE8 - .incbin "graphics/pokemon/front_pics/magnemite_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Magnemite:: @ 8C670C0 - .incbin "graphics/pokemon/palettes/magnemite_palette.gbapal.lz" - - .align 2 -gMonBackPic_Magnemite:: @ 8C670E8 - .incbin "graphics/pokemon/back_pics/magnemite_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Magnemite:: @ 8C672D0 - .incbin "graphics/pokemon/palettes/magnemite_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Magnemite:: @ 8C672F4 - .incbin "graphics/pokemon/icons/magnemite_icon.4bpp" - - .align 2 -gMonFootprint_Magnemite:: @ 8C676F4 - .incbin "graphics/pokemon/footprints/magnemite_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Magneton:: @ 8C67714 - .incbin "graphics/pokemon/front_pics/magneton_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Magneton:: @ 8C67B18 - .incbin "graphics/pokemon/palettes/magneton_palette.gbapal.lz" - - .align 2 -gMonBackPic_Magneton:: @ 8C67B40 - .incbin "graphics/pokemon/back_pics/magneton_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Magneton:: @ 8C67EC0 - .incbin "graphics/pokemon/palettes/magneton_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Magneton:: @ 8C67EE8 - .incbin "graphics/pokemon/icons/magneton_icon.4bpp" - - .align 2 -gMonFootprint_Magneton:: @ 8C682E8 - .incbin "graphics/pokemon/footprints/magneton_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Farfetchd:: @ 8C68308 - .incbin "graphics/pokemon/front_pics/farfetch_d_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Farfetchd:: @ 8C68684 - .incbin "graphics/pokemon/palettes/farfetch_d_palette.gbapal.lz" - - .align 2 -gMonBackPic_Farfetchd:: @ 8C686AC - .incbin "graphics/pokemon/back_pics/farfetch_d_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Farfetchd:: @ 8C68A18 - .incbin "graphics/pokemon/palettes/farfetch_d_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Farfetchd:: @ 8C68A40 - .incbin "graphics/pokemon/icons/farfetch_d_icon.4bpp" - - .align 2 -gMonFootprint_Farfetchd:: @ 8C68E40 - .incbin "graphics/pokemon/footprints/farfetch_d_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Doduo:: @ 8C68E60 - .incbin "graphics/pokemon/front_pics/doduo_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Doduo:: @ 8C691B4 - .incbin "graphics/pokemon/palettes/doduo_palette.gbapal.lz" - - .align 2 -gMonBackPic_Doduo:: @ 8C691D8 - .incbin "graphics/pokemon/back_pics/doduo_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Doduo:: @ 8C694F0 - .incbin "graphics/pokemon/palettes/doduo_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Doduo:: @ 8C69514 - .incbin "graphics/pokemon/icons/doduo_icon.4bpp" - - .align 2 -gMonFootprint_Doduo:: @ 8C69914 - .incbin "graphics/pokemon/footprints/doduo_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Dodrio:: @ 8C69934 - .incbin "graphics/pokemon/front_pics/dodrio_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Dodrio:: @ 8C69E10 - .incbin "graphics/pokemon/palettes/dodrio_palette.gbapal.lz" - - .align 2 -gMonBackPic_Dodrio:: @ 8C69E38 - .incbin "graphics/pokemon/back_pics/dodrio_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Dodrio:: @ 8C6A29C - .incbin "graphics/pokemon/palettes/dodrio_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Dodrio:: @ 8C6A2C4 - .incbin "graphics/pokemon/icons/dodrio_icon.4bpp" - - .align 2 -gMonFootprint_Dodrio:: @ 8C6A6C4 - .incbin "graphics/pokemon/footprints/dodrio_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Seel:: @ 8C6A6E4 - .incbin "graphics/pokemon/front_pics/seel_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Seel:: @ 8C6A9EC - .incbin "graphics/pokemon/palettes/seel_palette.gbapal.lz" - - .align 2 -gMonBackPic_Seel:: @ 8C6AA14 - .incbin "graphics/pokemon/back_pics/seel_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Seel:: @ 8C6AD00 - .incbin "graphics/pokemon/palettes/seel_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Seel:: @ 8C6AD28 - .incbin "graphics/pokemon/icons/seel_icon.4bpp" - - .align 2 -gMonFootprint_Seel:: @ 8C6B128 - .incbin "graphics/pokemon/footprints/seel_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Dewgong:: @ 8C6B148 - .incbin "graphics/pokemon/front_pics/dewgong_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Dewgong:: @ 8C6B510 - .incbin "graphics/pokemon/palettes/dewgong_palette.gbapal.lz" - - .align 2 -gMonBackPic_Dewgong:: @ 8C6B530 - .incbin "graphics/pokemon/back_pics/dewgong_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Dewgong:: @ 8C6B7C4 - .incbin "graphics/pokemon/palettes/dewgong_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Dewgong:: @ 8C6B7E4 - .incbin "graphics/pokemon/icons/dewgong_icon.4bpp" - - .align 2 -gMonFootprint_Dewgong:: @ 8C6BBE4 - .incbin "graphics/pokemon/footprints/dewgong_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Grimer:: @ 8C6BC04 - .incbin "graphics/pokemon/front_pics/grimer_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Grimer:: @ 8C6BF20 - .incbin "graphics/pokemon/palettes/grimer_palette.gbapal.lz" - - .align 2 -gMonBackPic_Grimer:: @ 8C6BF44 - .incbin "graphics/pokemon/back_pics/grimer_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Grimer:: @ 8C6C228 - .incbin "graphics/pokemon/palettes/grimer_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Grimer:: @ 8C6C24C - .incbin "graphics/pokemon/icons/grimer_icon.4bpp" - - .align 2 -gMonFootprint_Grimer:: @ 8C6C64C - .incbin "graphics/pokemon/footprints/grimer_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Muk:: @ 8C6C66C - .incbin "graphics/pokemon/front_pics/muk_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Muk:: @ 8C6CAB8 - .incbin "graphics/pokemon/palettes/muk_palette.gbapal.lz" - - .align 2 -gMonBackPic_Muk:: @ 8C6CADC - .incbin "graphics/pokemon/back_pics/muk_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Muk:: @ 8C6CE34 - .incbin "graphics/pokemon/palettes/muk_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Muk:: @ 8C6CE58 - .incbin "graphics/pokemon/icons/muk_icon.4bpp" - - .align 2 -gMonFootprint_Muk:: @ 8C6D258 - .incbin "graphics/pokemon/footprints/muk_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Shellder:: @ 8C6D278 - .incbin "graphics/pokemon/front_pics/shellder_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Shellder:: @ 8C6D4E0 - .incbin "graphics/pokemon/palettes/shellder_palette.gbapal.lz" - - .align 2 -gMonBackPic_Shellder:: @ 8C6D504 - .incbin "graphics/pokemon/back_pics/shellder_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Shellder:: @ 8C6D818 - .incbin "graphics/pokemon/palettes/shellder_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Shellder:: @ 8C6D83C - .incbin "graphics/pokemon/icons/shellder_icon.4bpp" - - .align 2 -gMonFootprint_Shellder:: @ 8C6DC3C - .incbin "graphics/pokemon/footprints/shellder_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Cloyster:: @ 8C6DC5C - .incbin "graphics/pokemon/front_pics/cloyster_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Cloyster:: @ 8C6E094 - .incbin "graphics/pokemon/palettes/cloyster_palette.gbapal.lz" - - .align 2 -gMonBackPic_Cloyster:: @ 8C6E0B8 - .incbin "graphics/pokemon/back_pics/cloyster_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Cloyster:: @ 8C6E4C4 - .incbin "graphics/pokemon/palettes/cloyster_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Cloyster:: @ 8C6E4E8 - .incbin "graphics/pokemon/icons/cloyster_icon.4bpp" - - .align 2 -gMonFootprint_Cloyster:: @ 8C6E8E8 - .incbin "graphics/pokemon/footprints/cloyster_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Gastly:: @ 8C6E908 - .incbin "graphics/pokemon/front_pics/gastly_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Gastly:: @ 8C6ECC0 - .incbin "graphics/pokemon/palettes/gastly_palette.gbapal.lz" - - .align 2 -gMonBackPic_Gastly:: @ 8C6ECE8 - .incbin "graphics/pokemon/back_pics/gastly_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Gastly:: @ 8C6F00C - .incbin "graphics/pokemon/palettes/gastly_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Gastly:: @ 8C6F034 - .incbin "graphics/pokemon/icons/gastly_icon.4bpp" - - .align 2 -gMonFootprint_Gastly:: @ 8C6F434 - .incbin "graphics/pokemon/footprints/gastly_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Haunter:: @ 8C6F454 - .incbin "graphics/pokemon/front_pics/haunter_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Haunter:: @ 8C6F854 - .incbin "graphics/pokemon/palettes/haunter_palette.gbapal.lz" - - .align 2 -gMonBackPic_Haunter:: @ 8C6F878 - .incbin "graphics/pokemon/back_pics/haunter_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Haunter:: @ 8C6FBA0 - .incbin "graphics/pokemon/palettes/haunter_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Haunter:: @ 8C6FBC4 - .incbin "graphics/pokemon/icons/haunter_icon.4bpp" - - .align 2 -gMonFootprint_Haunter:: @ 8C6FFC4 - .incbin "graphics/pokemon/footprints/haunter_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Gengar:: @ 8C6FFE4 - .incbin "graphics/pokemon/front_pics/gengar_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Gengar:: @ 8C70380 - .incbin "graphics/pokemon/palettes/gengar_palette.gbapal.lz" - - .align 2 -gMonBackPic_Gengar:: @ 8C703A4 - .incbin "graphics/pokemon/back_pics/gengar_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Gengar:: @ 8C7068C - .incbin "graphics/pokemon/palettes/gengar_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Gengar:: @ 8C706B0 - .incbin "graphics/pokemon/icons/gengar_icon.4bpp" - - .align 2 -gMonFootprint_Gengar:: @ 8C70AB0 - .incbin "graphics/pokemon/footprints/gengar_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Onix:: @ 8C70AD0 - .incbin "graphics/pokemon/front_pics/onix_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Onix:: @ 8C70F48 - .incbin "graphics/pokemon/palettes/onix_palette.gbapal.lz" - - .align 2 -gMonBackPic_Onix:: @ 8C70F64 - .incbin "graphics/pokemon/back_pics/onix_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Onix:: @ 8C712E0 - .incbin "graphics/pokemon/palettes/onix_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Onix:: @ 8C712FC - .incbin "graphics/pokemon/icons/onix_icon.4bpp" - - .align 2 -gMonFootprint_Onix:: @ 8C716FC - .incbin "graphics/pokemon/footprints/onix_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Drowzee:: @ 8C7171C - .incbin "graphics/pokemon/front_pics/drowzee_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Drowzee:: @ 8C71A94 - .incbin "graphics/pokemon/palettes/drowzee_palette.gbapal.lz" - - .align 2 -gMonBackPic_Drowzee:: @ 8C71AB8 - .incbin "graphics/pokemon/back_pics/drowzee_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Drowzee:: @ 8C71D14 - .incbin "graphics/pokemon/palettes/drowzee_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Drowzee:: @ 8C71D38 - .incbin "graphics/pokemon/icons/drowzee_icon.4bpp" - - .align 2 -gMonFootprint_Drowzee:: @ 8C72138 - .incbin "graphics/pokemon/footprints/drowzee_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Hypno:: @ 8C72158 - .incbin "graphics/pokemon/front_pics/hypno_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Hypno:: @ 8C72544 - .incbin "graphics/pokemon/palettes/hypno_palette.gbapal.lz" - - .align 2 -gMonBackPic_Hypno:: @ 8C72568 - .incbin "graphics/pokemon/back_pics/hypno_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Hypno:: @ 8C72898 - .incbin "graphics/pokemon/palettes/hypno_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Hypno:: @ 8C728BC - .incbin "graphics/pokemon/icons/hypno_icon.4bpp" - - .align 2 -gMonFootprint_Hypno:: @ 8C72CBC - .incbin "graphics/pokemon/footprints/hypno_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Krabby:: @ 8C72CDC - .incbin "graphics/pokemon/front_pics/krabby_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Krabby:: @ 8C72F94 - .incbin "graphics/pokemon/palettes/krabby_palette.gbapal.lz" - - .align 2 -gMonBackPic_Krabby:: @ 8C72FBC - .incbin "graphics/pokemon/back_pics/krabby_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Krabby:: @ 8C73348 - .incbin "graphics/pokemon/palettes/krabby_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Krabby:: @ 8C73370 - .incbin "graphics/pokemon/icons/krabby_icon.4bpp" - - .align 2 -gMonFootprint_Krabby:: @ 8C73770 - .incbin "graphics/pokemon/footprints/krabby_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Kingler:: @ 8C73790 - .incbin "graphics/pokemon/front_pics/kingler_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Kingler:: @ 8C73CC4 - .incbin "graphics/pokemon/palettes/kingler_palette.gbapal.lz" - - .align 2 -gMonBackPic_Kingler:: @ 8C73CE8 - .incbin "graphics/pokemon/back_pics/kingler_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Kingler:: @ 8C7406C - .incbin "graphics/pokemon/palettes/kingler_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Kingler:: @ 8C74090 - .incbin "graphics/pokemon/icons/kingler_icon.4bpp" - - .align 2 -gMonFootprint_Kingler:: @ 8C74490 - .incbin "graphics/pokemon/footprints/kingler_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Voltorb:: @ 8C744B0 - .incbin "graphics/pokemon/front_pics/voltorb_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Voltorb:: @ 8C746B8 - .incbin "graphics/pokemon/palettes/voltorb_palette.gbapal.lz" - - .align 2 -gMonBackPic_Voltorb:: @ 8C746DC - .incbin "graphics/pokemon/back_pics/voltorb_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Voltorb:: @ 8C74950 - .incbin "graphics/pokemon/palettes/voltorb_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Voltorb:: @ 8C74974 - .incbin "graphics/pokemon/icons/voltorb_icon.4bpp" - - .align 2 -gMonFootprint_Voltorb:: @ 8C74D74 - .incbin "graphics/pokemon/footprints/voltorb_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Electrode:: @ 8C74D94 - .incbin "graphics/pokemon/front_pics/electrode_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Electrode:: @ 8C75000 - .incbin "graphics/pokemon/palettes/electrode_palette.gbapal.lz" - - .align 2 -gMonBackPic_Electrode:: @ 8C75024 - .incbin "graphics/pokemon/back_pics/electrode_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Electrode:: @ 8C75294 - .incbin "graphics/pokemon/palettes/electrode_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Electrode:: @ 8C752B8 - .incbin "graphics/pokemon/icons/electrode_icon.4bpp" - - .align 2 -gMonFootprint_Electrode:: @ 8C756B8 - .incbin "graphics/pokemon/footprints/electrode_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Exeggcute:: @ 8C756D8 - .incbin "graphics/pokemon/front_pics/exeggcute_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Exeggcute:: @ 8C75ADC - .incbin "graphics/pokemon/palettes/exeggcute_palette.gbapal.lz" - - .align 2 -gMonBackPic_Exeggcute:: @ 8C75B00 - .incbin "graphics/pokemon/back_pics/exeggcute_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Exeggcute:: @ 8C75E08 - .incbin "graphics/pokemon/palettes/exeggcute_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Exeggcute:: @ 8C75E2C - .incbin "graphics/pokemon/icons/exeggcute_icon.4bpp" - - .align 2 -gMonFootprint_Exeggcute:: @ 8C7622C - .incbin "graphics/pokemon/footprints/exeggcute_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Exeggutor:: @ 8C7624C - .incbin "graphics/pokemon/front_pics/exeggutor_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Exeggutor:: @ 8C7674C - .incbin "graphics/pokemon/palettes/exeggutor_palette.gbapal.lz" - - .align 2 -gMonBackPic_Exeggutor:: @ 8C76774 - .incbin "graphics/pokemon/back_pics/exeggutor_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Exeggutor:: @ 8C76C14 - .incbin "graphics/pokemon/palettes/exeggutor_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Exeggutor:: @ 8C76C3C - .incbin "graphics/pokemon/icons/exeggutor_icon.4bpp" - - .align 2 -gMonFootprint_Exeggutor:: @ 8C7703C - .incbin "graphics/pokemon/footprints/exeggutor_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Cubone:: @ 8C7705C - .incbin "graphics/pokemon/front_pics/cubone_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Cubone:: @ 8C7732C - .incbin "graphics/pokemon/palettes/cubone_palette.gbapal.lz" - - .align 2 -gMonBackPic_Cubone:: @ 8C77354 - .incbin "graphics/pokemon/back_pics/cubone_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Cubone:: @ 8C77694 - .incbin "graphics/pokemon/palettes/cubone_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Cubone:: @ 8C776BC - .incbin "graphics/pokemon/icons/cubone_icon.4bpp" - - .align 2 -gMonFootprint_Cubone:: @ 8C77ABC - .incbin "graphics/pokemon/footprints/cubone_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Marowak:: @ 8C77ADC - .incbin "graphics/pokemon/front_pics/marowak_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Marowak:: @ 8C77E64 - .incbin "graphics/pokemon/palettes/marowak_palette.gbapal.lz" - - .align 2 -gMonBackPic_Marowak:: @ 8C77E8C - .incbin "graphics/pokemon/back_pics/marowak_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Marowak:: @ 8C781D4 - .incbin "graphics/pokemon/palettes/marowak_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Marowak:: @ 8C781FC - .incbin "graphics/pokemon/icons/marowak_icon.4bpp" - - .align 2 -gMonFootprint_Marowak:: @ 8C785FC - .incbin "graphics/pokemon/footprints/marowak_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Hitmonlee:: @ 8C7861C - .incbin "graphics/pokemon/front_pics/hitmonlee_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Hitmonlee:: @ 8C78A1C - .incbin "graphics/pokemon/palettes/hitmonlee_palette.gbapal.lz" - - .align 2 -gMonBackPic_Hitmonlee:: @ 8C78A44 - .incbin "graphics/pokemon/back_pics/hitmonlee_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Hitmonlee:: @ 8C78CE8 - .incbin "graphics/pokemon/palettes/hitmonlee_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Hitmonlee:: @ 8C78D10 - .incbin "graphics/pokemon/icons/hitmonlee_icon.4bpp" - - .align 2 -gMonFootprint_Hitmonlee:: @ 8C79110 - .incbin "graphics/pokemon/footprints/hitmonlee_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Hitmonchan:: @ 8C79130 - .incbin "graphics/pokemon/front_pics/hitmonchan_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Hitmonchan:: @ 8C79470 - .incbin "graphics/pokemon/palettes/hitmonchan_palette.gbapal.lz" - - .align 2 -gMonBackPic_Hitmonchan:: @ 8C79498 - .incbin "graphics/pokemon/back_pics/hitmonchan_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Hitmonchan:: @ 8C797DC - .incbin "graphics/pokemon/palettes/hitmonchan_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Hitmonchan:: @ 8C79804 - .incbin "graphics/pokemon/icons/hitmonchan_icon.4bpp" - - .align 2 -gMonFootprint_Hitmonchan:: @ 8C79C04 - .incbin "graphics/pokemon/footprints/hitmonchan_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Lickitung:: @ 8C79C24 - .incbin "graphics/pokemon/front_pics/lickitung_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Lickitung:: @ 8C79FDC - .incbin "graphics/pokemon/palettes/lickitung_palette.gbapal.lz" - - .align 2 -gMonBackPic_Lickitung:: @ 8C7A004 - .incbin "graphics/pokemon/back_pics/lickitung_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Lickitung:: @ 8C7A2C4 - .incbin "graphics/pokemon/palettes/lickitung_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Lickitung:: @ 8C7A2EC - .incbin "graphics/pokemon/icons/lickitung_icon.4bpp" - - .align 2 -gMonFootprint_Lickitung:: @ 8C7A6EC - .incbin "graphics/pokemon/footprints/lickitung_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Koffing:: @ 8C7A70C - .incbin "graphics/pokemon/front_pics/koffing_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Koffing:: @ 8C7AA68 - .incbin "graphics/pokemon/palettes/koffing_palette.gbapal.lz" - - .align 2 -gMonBackPic_Koffing:: @ 8C7AA90 - .incbin "graphics/pokemon/back_pics/koffing_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Koffing:: @ 8C7AD90 - .incbin "graphics/pokemon/palettes/koffing_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Koffing:: @ 8C7ADB8 - .incbin "graphics/pokemon/icons/koffing_icon.4bpp" - - .align 2 -gMonFootprint_Koffing:: @ 8C7B1B8 - .incbin "graphics/pokemon/footprints/koffing_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Weezing:: @ 8C7B1D8 - .incbin "graphics/pokemon/front_pics/weezing_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Weezing:: @ 8C7B660 - .incbin "graphics/pokemon/palettes/weezing_palette.gbapal.lz" - - .align 2 -gMonBackPic_Weezing:: @ 8C7B688 - .incbin "graphics/pokemon/back_pics/weezing_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Weezing:: @ 8C7B9B8 - .incbin "graphics/pokemon/palettes/weezing_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Weezing:: @ 8C7B9E0 - .incbin "graphics/pokemon/icons/weezing_icon.4bpp" - - .align 2 -gMonFootprint_Weezing:: @ 8C7BDE0 - .incbin "graphics/pokemon/footprints/weezing_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Rhyhorn:: @ 8C7BE00 - .incbin "graphics/pokemon/front_pics/rhyhorn_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Rhyhorn:: @ 8C7C204 - .incbin "graphics/pokemon/palettes/rhyhorn_palette.gbapal.lz" - - .align 2 -gMonBackPic_Rhyhorn:: @ 8C7C224 - .incbin "graphics/pokemon/back_pics/rhyhorn_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Rhyhorn:: @ 8C7C56C - .incbin "graphics/pokemon/palettes/rhyhorn_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Rhyhorn:: @ 8C7C58C - .incbin "graphics/pokemon/icons/rhyhorn_icon.4bpp" - - .align 2 -gMonFootprint_Rhyhorn:: @ 8C7C98C - .incbin "graphics/pokemon/footprints/rhyhorn_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Rhydon:: @ 8C7C9AC - .incbin "graphics/pokemon/front_pics/rhydon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Rhydon:: @ 8C7CEB4 - .incbin "graphics/pokemon/palettes/rhydon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Rhydon:: @ 8C7CEDC - .incbin "graphics/pokemon/back_pics/rhydon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Rhydon:: @ 8C7D32C - .incbin "graphics/pokemon/palettes/rhydon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Rhydon:: @ 8C7D354 - .incbin "graphics/pokemon/icons/rhydon_icon.4bpp" - - .align 2 -gMonFootprint_Rhydon:: @ 8C7D754 - .incbin "graphics/pokemon/footprints/rhydon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Chansey:: @ 8C7D774 - .incbin "graphics/pokemon/front_pics/chansey_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Chansey:: @ 8C7DAC8 - .incbin "graphics/pokemon/palettes/chansey_palette.gbapal.lz" - - .align 2 -gMonBackPic_Chansey:: @ 8C7DAEC - .incbin "graphics/pokemon/back_pics/chansey_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Chansey:: @ 8C7DDC0 - .incbin "graphics/pokemon/palettes/chansey_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Chansey:: @ 8C7DDE4 - .incbin "graphics/pokemon/icons/chansey_icon.4bpp" - - .align 2 -gMonFootprint_Chansey:: @ 8C7E1E4 - .incbin "graphics/pokemon/footprints/chansey_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Tangela:: @ 8C7E204 - .incbin "graphics/pokemon/front_pics/tangela_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Tangela:: @ 8C7E5D8 - .incbin "graphics/pokemon/palettes/tangela_palette.gbapal.lz" - - .align 2 -gMonBackPic_Tangela:: @ 8C7E5FC - .incbin "graphics/pokemon/back_pics/tangela_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Tangela:: @ 8C7E9A8 - .incbin "graphics/pokemon/palettes/tangela_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Tangela:: @ 8C7E9CC - .incbin "graphics/pokemon/icons/tangela_icon.4bpp" - - .align 2 -gMonFootprint_Tangela:: @ 8C7EDCC - .incbin "graphics/pokemon/footprints/tangela_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Kangaskhan:: @ 8C7EDEC - .incbin "graphics/pokemon/front_pics/kangaskhan_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Kangaskhan:: @ 8C7F2E4 - .incbin "graphics/pokemon/palettes/kangaskhan_palette.gbapal.lz" - - .align 2 -gMonBackPic_Kangaskhan:: @ 8C7F30C - .incbin "graphics/pokemon/back_pics/kangaskhan_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Kangaskhan:: @ 8C7F73C - .incbin "graphics/pokemon/palettes/kangaskhan_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Kangaskhan:: @ 8C7F764 - .incbin "graphics/pokemon/icons/kangaskhan_icon.4bpp" - - .align 2 -gMonFootprint_Kangaskhan:: @ 8C7FB64 - .incbin "graphics/pokemon/footprints/kangaskhan_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Horsea:: @ 8C7FB84 - .incbin "graphics/pokemon/front_pics/horsea_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Horsea:: @ 8C7FDFC - .incbin "graphics/pokemon/palettes/horsea_palette.gbapal.lz" - - .align 2 -gMonBackPic_Horsea:: @ 8C7FE24 - .incbin "graphics/pokemon/back_pics/horsea_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Horsea:: @ 8C80104 - .incbin "graphics/pokemon/palettes/horsea_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Horsea:: @ 8C8012C - .incbin "graphics/pokemon/icons/horsea_icon.4bpp" - - .align 2 -gMonFootprint_Horsea:: @ 8C8052C - .incbin "graphics/pokemon/footprints/horsea_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Seadra:: @ 8C8054C - .incbin "graphics/pokemon/front_pics/seadra_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Seadra:: @ 8C8090C - .incbin "graphics/pokemon/palettes/seadra_palette.gbapal.lz" - - .align 2 -gMonBackPic_Seadra:: @ 8C80934 - .incbin "graphics/pokemon/back_pics/seadra_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Seadra:: @ 8C80CD4 - .incbin "graphics/pokemon/palettes/seadra_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Seadra:: @ 8C80CFC - .incbin "graphics/pokemon/icons/seadra_icon.4bpp" - - .align 2 -gMonFootprint_Seadra:: @ 8C810FC - .incbin "graphics/pokemon/footprints/seadra_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Goldeen:: @ 8C8111C - .incbin "graphics/pokemon/front_pics/goldeen_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Goldeen:: @ 8C81484 - .incbin "graphics/pokemon/palettes/goldeen_palette.gbapal.lz" - - .align 2 -gMonBackPic_Goldeen:: @ 8C814AC - .incbin "graphics/pokemon/back_pics/goldeen_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Goldeen:: @ 8C8181C - .incbin "graphics/pokemon/palettes/goldeen_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Goldeen:: @ 8C81844 - .incbin "graphics/pokemon/icons/goldeen_icon.4bpp" - - .align 2 -gMonFootprint_Goldeen:: @ 8C81C44 - .incbin "graphics/pokemon/footprints/goldeen_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Seaking:: @ 8C81C64 - .incbin "graphics/pokemon/front_pics/seaking_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Seaking:: @ 8C820D8 - .incbin "graphics/pokemon/palettes/seaking_palette.gbapal.lz" - - .align 2 -gMonBackPic_Seaking:: @ 8C82100 - .incbin "graphics/pokemon/back_pics/seaking_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Seaking:: @ 8C82450 - .incbin "graphics/pokemon/palettes/seaking_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Seaking:: @ 8C82478 - .incbin "graphics/pokemon/icons/seaking_icon.4bpp" - - .align 2 -gMonFootprint_Seaking:: @ 8C82878 - .incbin "graphics/pokemon/footprints/seaking_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Staryu:: @ 8C82898 - .incbin "graphics/pokemon/front_pics/staryu_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Staryu:: @ 8C82B7C - .incbin "graphics/pokemon/palettes/staryu_palette.gbapal.lz" - - .align 2 -gMonBackPic_Staryu:: @ 8C82BA4 - .incbin "graphics/pokemon/back_pics/staryu_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Staryu:: @ 8C82E30 - .incbin "graphics/pokemon/palettes/staryu_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Staryu:: @ 8C82E58 - .incbin "graphics/pokemon/icons/staryu_icon.4bpp" - - .align 2 -gMonFootprint_Staryu:: @ 8C83258 - .incbin "graphics/pokemon/footprints/staryu_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Starmie:: @ 8C83278 - .incbin "graphics/pokemon/front_pics/starmie_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Starmie:: @ 8C836A0 - .incbin "graphics/pokemon/palettes/starmie_palette.gbapal.lz" - - .align 2 -gMonBackPic_Starmie:: @ 8C836C8 - .incbin "graphics/pokemon/back_pics/starmie_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Starmie:: @ 8C8396C - .incbin "graphics/pokemon/palettes/starmie_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Starmie:: @ 8C83994 - .incbin "graphics/pokemon/icons/starmie_icon.4bpp" - - .align 2 -gMonFootprint_Starmie:: @ 8C83D94 - .incbin "graphics/pokemon/footprints/starmie_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Mrmime:: @ 8C83DB4 - .incbin "graphics/pokemon/front_pics/mr_mime_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Mrmime:: @ 8C84164 - .incbin "graphics/pokemon/palettes/mr_mime_palette.gbapal.lz" - - .align 2 -gMonBackPic_Mrmime:: @ 8C8418C - .incbin "graphics/pokemon/back_pics/mr_mime_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Mrmime:: @ 8C844C0 - .incbin "graphics/pokemon/palettes/mr_mime_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Mrmime:: @ 8C844E8 - .incbin "graphics/pokemon/icons/mr_mime_icon.4bpp" - - .align 2 -gMonFootprint_Mrmime:: @ 8C848E8 - .incbin "graphics/pokemon/footprints/mr_mime_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Scyther:: @ 8C84908 - .incbin "graphics/pokemon/front_pics/scyther_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Scyther:: @ 8C84DB4 - .incbin "graphics/pokemon/palettes/scyther_palette.gbapal.lz" - - .align 2 -gMonBackPic_Scyther:: @ 8C84DDC - .incbin "graphics/pokemon/back_pics/scyther_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Scyther:: @ 8C85184 - .incbin "graphics/pokemon/palettes/scyther_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Scyther:: @ 8C851AC - .incbin "graphics/pokemon/icons/scyther_icon.4bpp" - - .align 2 -gMonFootprint_Scyther:: @ 8C855AC - .incbin "graphics/pokemon/footprints/scyther_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Jynx:: @ 8C855CC - .incbin "graphics/pokemon/front_pics/jynx_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Jynx:: @ 8C85A68 - .incbin "graphics/pokemon/palettes/jynx_palette.gbapal.lz" - - .align 2 -gMonBackPic_Jynx:: @ 8C85A90 - .incbin "graphics/pokemon/back_pics/jynx_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Jynx:: @ 8C85D88 - .incbin "graphics/pokemon/palettes/jynx_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Jynx:: @ 8C85DB0 - .incbin "graphics/pokemon/icons/jynx_icon.4bpp" - - .align 2 -gMonFootprint_Jynx:: @ 8C861B0 - .incbin "graphics/pokemon/footprints/jynx_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Electabuzz:: @ 8C861D0 - .incbin "graphics/pokemon/front_pics/electabuzz_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Electabuzz:: @ 8C8664C - .incbin "graphics/pokemon/palettes/electabuzz_palette.gbapal.lz" - - .align 2 -gMonBackPic_Electabuzz:: @ 8C86674 - .incbin "graphics/pokemon/back_pics/electabuzz_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Electabuzz:: @ 8C86984 - .incbin "graphics/pokemon/palettes/electabuzz_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Electabuzz:: @ 8C869AC - .incbin "graphics/pokemon/icons/electabuzz_icon.4bpp" - - .align 2 -gMonFootprint_Electabuzz:: @ 8C86DAC - .incbin "graphics/pokemon/footprints/electabuzz_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Magmar:: @ 8C86DCC - .incbin "graphics/pokemon/front_pics/magmar_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Magmar:: @ 8C87274 - .incbin "graphics/pokemon/palettes/magmar_palette.gbapal.lz" - - .align 2 -gMonBackPic_Magmar:: @ 8C8729C - .incbin "graphics/pokemon/back_pics/magmar_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Magmar:: @ 8C875E4 - .incbin "graphics/pokemon/palettes/magmar_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Magmar:: @ 8C8760C - .incbin "graphics/pokemon/icons/magmar_icon.4bpp" - - .align 2 -gMonFootprint_Magmar:: @ 8C87A0C - .incbin "graphics/pokemon/footprints/magmar_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Pinsir:: @ 8C87A2C - .incbin "graphics/pokemon/front_pics/pinsir_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Pinsir:: @ 8C87E54 - .incbin "graphics/pokemon/palettes/pinsir_palette.gbapal.lz" - - .align 2 -gMonBackPic_Pinsir:: @ 8C87E78 - .incbin "graphics/pokemon/back_pics/pinsir_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Pinsir:: @ 8C881CC - .incbin "graphics/pokemon/palettes/pinsir_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Pinsir:: @ 8C881F0 - .incbin "graphics/pokemon/icons/pinsir_icon.4bpp" - - .align 2 -gMonFootprint_Pinsir:: @ 8C885F0 - .incbin "graphics/pokemon/footprints/pinsir_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Tauros:: @ 8C88610 - .incbin "graphics/pokemon/front_pics/tauros_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Tauros:: @ 8C88AE0 - .incbin "graphics/pokemon/palettes/tauros_palette.gbapal.lz" - - .align 2 -gMonBackPic_Tauros:: @ 8C88B08 - .incbin "graphics/pokemon/back_pics/tauros_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Tauros:: @ 8C88DBC - .incbin "graphics/pokemon/palettes/tauros_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Tauros:: @ 8C88DE4 - .incbin "graphics/pokemon/icons/tauros_icon.4bpp" - - .align 2 -gMonFootprint_Tauros:: @ 8C891E4 - .incbin "graphics/pokemon/footprints/tauros_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Magikarp:: @ 8C89204 - .incbin "graphics/pokemon/front_pics/magikarp_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Magikarp:: @ 8C89554 - .incbin "graphics/pokemon/palettes/magikarp_palette.gbapal.lz" - - .align 2 -gMonBackPic_Magikarp:: @ 8C8957C - .incbin "graphics/pokemon/back_pics/magikarp_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Magikarp:: @ 8C898AC - .incbin "graphics/pokemon/palettes/magikarp_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Magikarp:: @ 8C898D4 - .incbin "graphics/pokemon/icons/magikarp_icon.4bpp" - - .align 2 -gMonFootprint_Magikarp:: @ 8C89CD4 - .incbin "graphics/pokemon/footprints/magikarp_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Gyarados:: @ 8C89CF4 - .incbin "graphics/pokemon/front_pics/gyarados_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Gyarados:: @ 8C8A25C - .incbin "graphics/pokemon/palettes/gyarados_palette.gbapal.lz" - - .align 2 -gMonBackPic_Gyarados:: @ 8C8A284 - .incbin "graphics/pokemon/back_pics/gyarados_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Gyarados:: @ 8C8A758 - .incbin "graphics/pokemon/palettes/gyarados_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Gyarados:: @ 8C8A780 - .incbin "graphics/pokemon/icons/gyarados_icon.4bpp" - - .align 2 -gMonFootprint_Gyarados:: @ 8C8AB80 - .incbin "graphics/pokemon/footprints/gyarados_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Lapras:: @ 8C8ABA0 - .incbin "graphics/pokemon/front_pics/lapras_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Lapras:: @ 8C8AF60 - .incbin "graphics/pokemon/palettes/lapras_palette.gbapal.lz" - - .align 2 -gMonBackPic_Lapras:: @ 8C8AF88 - .incbin "graphics/pokemon/back_pics/lapras_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Lapras:: @ 8C8B2CC - .incbin "graphics/pokemon/palettes/lapras_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Lapras:: @ 8C8B2F4 - .incbin "graphics/pokemon/icons/lapras_icon.4bpp" - - .align 2 -gMonFootprint_Lapras:: @ 8C8B6F4 - .incbin "graphics/pokemon/footprints/lapras_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Ditto:: @ 8C8B714 - .incbin "graphics/pokemon/front_pics/ditto_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Ditto:: @ 8C8B904 - .incbin "graphics/pokemon/palettes/ditto_palette.gbapal.lz" - - .align 2 -gMonBackPic_Ditto:: @ 8C8B924 - .incbin "graphics/pokemon/back_pics/ditto_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Ditto:: @ 8C8BB24 - .incbin "graphics/pokemon/palettes/ditto_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Ditto:: @ 8C8BB44 - .incbin "graphics/pokemon/icons/ditto_icon.4bpp" - - .align 2 -gMonFootprint_Ditto:: @ 8C8BF44 - .incbin "graphics/pokemon/footprints/ditto_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Eevee:: @ 8C8BF64 - .incbin "graphics/pokemon/front_pics/eevee_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Eevee:: @ 8C8C208 - .incbin "graphics/pokemon/palettes/eevee_palette.gbapal.lz" - - .align 2 -gMonBackPic_Eevee:: @ 8C8C22C - .incbin "graphics/pokemon/back_pics/eevee_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Eevee:: @ 8C8C554 - .incbin "graphics/pokemon/palettes/eevee_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Eevee:: @ 8C8C578 - .incbin "graphics/pokemon/icons/eevee_icon.4bpp" - - .align 2 -gMonFootprint_Eevee:: @ 8C8C978 - .incbin "graphics/pokemon/footprints/eevee_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Vaporeon:: @ 8C8C998 - .incbin "graphics/pokemon/front_pics/vaporeon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Vaporeon:: @ 8C8CD2C - .incbin "graphics/pokemon/palettes/vaporeon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Vaporeon:: @ 8C8CD54 - .incbin "graphics/pokemon/back_pics/vaporeon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Vaporeon:: @ 8C8D01C - .incbin "graphics/pokemon/palettes/vaporeon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Vaporeon:: @ 8C8D044 - .incbin "graphics/pokemon/icons/vaporeon_icon.4bpp" - - .align 2 -gMonFootprint_Vaporeon:: @ 8C8D444 - .incbin "graphics/pokemon/footprints/vaporeon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Jolteon:: @ 8C8D464 - .incbin "graphics/pokemon/front_pics/jolteon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Jolteon:: @ 8C8D804 - .incbin "graphics/pokemon/palettes/jolteon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Jolteon:: @ 8C8D82C - .incbin "graphics/pokemon/back_pics/jolteon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Jolteon:: @ 8C8DBBC - .incbin "graphics/pokemon/palettes/jolteon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Jolteon:: @ 8C8DBE4 - .incbin "graphics/pokemon/icons/jolteon_icon.4bpp" - - .align 2 -gMonFootprint_Jolteon:: @ 8C8DFE4 - .incbin "graphics/pokemon/footprints/jolteon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Flareon:: @ 8C8E004 - .incbin "graphics/pokemon/front_pics/flareon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Flareon:: @ 8C8E380 - .incbin "graphics/pokemon/palettes/flareon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Flareon:: @ 8C8E3A8 - .incbin "graphics/pokemon/back_pics/flareon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Flareon:: @ 8C8E738 - .incbin "graphics/pokemon/palettes/flareon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Flareon:: @ 8C8E760 - .incbin "graphics/pokemon/icons/flareon_icon.4bpp" - - .align 2 -gMonFootprint_Flareon:: @ 8C8EB60 - .incbin "graphics/pokemon/footprints/flareon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Porygon:: @ 8C8EB80 - .incbin "graphics/pokemon/front_pics/porygon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Porygon:: @ 8C8EE3C - .incbin "graphics/pokemon/palettes/porygon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Porygon:: @ 8C8EE60 - .incbin "graphics/pokemon/back_pics/porygon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Porygon:: @ 8C8F118 - .incbin "graphics/pokemon/palettes/porygon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Porygon:: @ 8C8F13C - .incbin "graphics/pokemon/icons/porygon_icon.4bpp" - - .align 2 -gMonFootprint_Porygon:: @ 8C8F53C - .incbin "graphics/pokemon/footprints/porygon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Omanyte:: @ 8C8F55C - .incbin "graphics/pokemon/front_pics/omanyte_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Omanyte:: @ 8C8F804 - .incbin "graphics/pokemon/palettes/omanyte_palette.gbapal.lz" - - .align 2 -gMonBackPic_Omanyte:: @ 8C8F82C - .incbin "graphics/pokemon/back_pics/omanyte_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Omanyte:: @ 8C8FB78 - .incbin "graphics/pokemon/palettes/omanyte_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Omanyte:: @ 8C8FBA0 - .incbin "graphics/pokemon/icons/omanyte_icon.4bpp" - - .align 2 -gMonFootprint_Omanyte:: @ 8C8FFA0 - .incbin "graphics/pokemon/footprints/omanyte_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Omastar:: @ 8C8FFC0 - .incbin "graphics/pokemon/front_pics/omastar_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Omastar:: @ 8C90380 - .incbin "graphics/pokemon/palettes/omastar_palette.gbapal.lz" - - .align 2 -gMonBackPic_Omastar:: @ 8C903A8 - .incbin "graphics/pokemon/back_pics/omastar_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Omastar:: @ 8C906E8 - .incbin "graphics/pokemon/palettes/omastar_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Omastar:: @ 8C90710 - .incbin "graphics/pokemon/icons/omastar_icon.4bpp" - - .align 2 -gMonFootprint_Omastar:: @ 8C90B10 - .incbin "graphics/pokemon/footprints/omastar_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Kabuto:: @ 8C90B30 - .incbin "graphics/pokemon/front_pics/kabuto_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Kabuto:: @ 8C90DA0 - .incbin "graphics/pokemon/palettes/kabuto_palette.gbapal.lz" - - .align 2 -gMonBackPic_Kabuto:: @ 8C90DC8 - .incbin "graphics/pokemon/back_pics/kabuto_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Kabuto:: @ 8C91060 - .incbin "graphics/pokemon/palettes/kabuto_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Kabuto:: @ 8C91088 - .incbin "graphics/pokemon/icons/kabuto_icon.4bpp" - - .align 2 -gMonFootprint_Kabuto:: @ 8C91488 - .incbin "graphics/pokemon/footprints/kabuto_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Kabutops:: @ 8C914A8 - .incbin "graphics/pokemon/front_pics/kabutops_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Kabutops:: @ 8C918A8 - .incbin "graphics/pokemon/palettes/kabutops_palette.gbapal.lz" - - .align 2 -gMonBackPic_Kabutops:: @ 8C918CC - .incbin "graphics/pokemon/back_pics/kabutops_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Kabutops:: @ 8C91C70 - .incbin "graphics/pokemon/palettes/kabutops_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Kabutops:: @ 8C91C94 - .incbin "graphics/pokemon/icons/kabutops_icon.4bpp" - - .align 2 -gMonFootprint_Kabutops:: @ 8C92094 - .incbin "graphics/pokemon/footprints/kabutops_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Aerodactyl:: @ 8C920B4 - .incbin "graphics/pokemon/front_pics/aerodactyl_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Aerodactyl:: @ 8C92534 - .incbin "graphics/pokemon/palettes/aerodactyl_palette.gbapal.lz" - - .align 2 -gMonBackPic_Aerodactyl:: @ 8C9255C - .incbin "graphics/pokemon/back_pics/aerodactyl_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Aerodactyl:: @ 8C92860 - .incbin "graphics/pokemon/palettes/aerodactyl_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Aerodactyl:: @ 8C92888 - .incbin "graphics/pokemon/icons/aerodactyl_icon.4bpp" - - .align 2 -gMonFootprint_Aerodactyl:: @ 8C92C88 - .incbin "graphics/pokemon/footprints/aerodactyl_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Snorlax:: @ 8C92CA8 - .incbin "graphics/pokemon/front_pics/snorlax_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Snorlax:: @ 8C930EC - .incbin "graphics/pokemon/palettes/snorlax_palette.gbapal.lz" - - .align 2 -gMonBackPic_Snorlax:: @ 8C93114 - .incbin "graphics/pokemon/back_pics/snorlax_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Snorlax:: @ 8C93330 - .incbin "graphics/pokemon/palettes/snorlax_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Snorlax:: @ 8C93358 - .incbin "graphics/pokemon/icons/snorlax_icon.4bpp" - - .align 2 -gMonFootprint_Snorlax:: @ 8C93758 - .incbin "graphics/pokemon/footprints/snorlax_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Articuno:: @ 8C93778 - .incbin "graphics/pokemon/front_pics/articuno_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Articuno:: @ 8C93C70 - .incbin "graphics/pokemon/palettes/articuno_palette.gbapal.lz" - - .align 2 -gMonBackPic_Articuno:: @ 8C93C98 - .incbin "graphics/pokemon/back_pics/articuno_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Articuno:: @ 8C93EF4 - .incbin "graphics/pokemon/palettes/articuno_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Articuno:: @ 8C93F1C - .incbin "graphics/pokemon/icons/articuno_icon.4bpp" - - .align 2 -gMonFootprint_Articuno:: @ 8C9431C - .incbin "graphics/pokemon/footprints/articuno_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Zapdos:: @ 8C9433C - .incbin "graphics/pokemon/front_pics/zapdos_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Zapdos:: @ 8C947B0 - .incbin "graphics/pokemon/palettes/zapdos_palette.gbapal.lz" - - .align 2 -gMonBackPic_Zapdos:: @ 8C947D8 - .incbin "graphics/pokemon/back_pics/zapdos_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Zapdos:: @ 8C94B14 - .incbin "graphics/pokemon/palettes/zapdos_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Zapdos:: @ 8C94B3C - .incbin "graphics/pokemon/icons/zapdos_icon.4bpp" - - .align 2 -gMonFootprint_Zapdos:: @ 8C94F3C - .incbin "graphics/pokemon/footprints/zapdos_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Moltres:: @ 8C94F5C - .incbin "graphics/pokemon/front_pics/moltres_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Moltres:: @ 8C9550C - .incbin "graphics/pokemon/palettes/moltres_palette.gbapal.lz" - - .align 2 -gMonBackPic_Moltres:: @ 8C95534 - .incbin "graphics/pokemon/back_pics/moltres_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Moltres:: @ 8C95870 - .incbin "graphics/pokemon/palettes/moltres_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Moltres:: @ 8C95898 - .incbin "graphics/pokemon/icons/moltres_icon.4bpp" - - .align 2 -gMonFootprint_Moltres:: @ 8C95C98 - .incbin "graphics/pokemon/footprints/moltres_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Dratini:: @ 8C95CB8 - .incbin "graphics/pokemon/front_pics/dratini_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Dratini:: @ 8C95F70 - .incbin "graphics/pokemon/palettes/dratini_palette.gbapal.lz" - - .align 2 -gMonBackPic_Dratini:: @ 8C95F94 - .incbin "graphics/pokemon/back_pics/dratini_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Dratini:: @ 8C96224 - .incbin "graphics/pokemon/palettes/dratini_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Dratini:: @ 8C96248 - .incbin "graphics/pokemon/icons/dratini_icon.4bpp" - - .align 2 -gMonFootprint_Dratini:: @ 8C96648 - .incbin "graphics/pokemon/footprints/dratini_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Dragonair:: @ 8C96668 - .incbin "graphics/pokemon/front_pics/dragonair_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Dragonair:: @ 8C969C8 - .incbin "graphics/pokemon/palettes/dragonair_palette.gbapal.lz" - - .align 2 -gMonBackPic_Dragonair:: @ 8C969F0 - .incbin "graphics/pokemon/back_pics/dragonair_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Dragonair:: @ 8C96D00 - .incbin "graphics/pokemon/palettes/dragonair_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Dragonair:: @ 8C96D28 - .incbin "graphics/pokemon/icons/dragonair_icon.4bpp" - - .align 2 -gMonFootprint_Dragonair:: @ 8C97128 - .incbin "graphics/pokemon/footprints/dragonair_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Dragonite:: @ 8C97148 - .incbin "graphics/pokemon/front_pics/dragonite_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Dragonite:: @ 8C976B8 - .incbin "graphics/pokemon/palettes/dragonite_palette.gbapal.lz" - - .align 2 -gMonBackPic_Dragonite:: @ 8C976E0 - .incbin "graphics/pokemon/back_pics/dragonite_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Dragonite:: @ 8C979DC - .incbin "graphics/pokemon/palettes/dragonite_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Dragonite:: @ 8C97A04 - .incbin "graphics/pokemon/icons/dragonite_icon.4bpp" - - .align 2 -gMonFootprint_Dragonite:: @ 8C97E04 - .incbin "graphics/pokemon/footprints/dragonite_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Mewtwo:: @ 8C97E24 - .incbin "graphics/pokemon/front_pics/mewtwo_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Mewtwo:: @ 8C98260 - .incbin "graphics/pokemon/palettes/mewtwo_palette.gbapal.lz" - - .align 2 -gMonBackPic_Mewtwo:: @ 8C98284 - .incbin "graphics/pokemon/back_pics/mewtwo_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Mewtwo:: @ 8C98650 - .incbin "graphics/pokemon/palettes/mewtwo_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Mewtwo:: @ 8C98674 - .incbin "graphics/pokemon/icons/mewtwo_icon.4bpp" - - .align 2 -gMonFootprint_Mewtwo:: @ 8C98A74 - .incbin "graphics/pokemon/footprints/mewtwo_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Mew:: @ 8C98A94 - .incbin "graphics/pokemon/front_pics/mew_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Mew:: @ 8C98D14 - .incbin "graphics/pokemon/palettes/mew_palette.gbapal.lz" - - .align 2 -gMonBackPic_Mew:: @ 8C98D38 - .incbin "graphics/pokemon/back_pics/mew_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Mew:: @ 8C99004 - .incbin "graphics/pokemon/palettes/mew_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Mew:: @ 8C99028 - .incbin "graphics/pokemon/icons/mew_icon.4bpp" - - .align 2 -gMonFootprint_Mew:: @ 8C99428 - .incbin "graphics/pokemon/footprints/mew_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Chikorita:: @ 8C99448 - .incbin "graphics/pokemon/front_pics/chikorita_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Chikorita:: @ 8C996B0 - .incbin "graphics/pokemon/palettes/chikorita_palette.gbapal.lz" - - .align 2 -gMonBackPic_Chikorita:: @ 8C996D8 - .incbin "graphics/pokemon/back_pics/chikorita_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Chikorita:: @ 8C9999C - .incbin "graphics/pokemon/palettes/chikorita_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Chikorita:: @ 8C999C4 - .incbin "graphics/pokemon/icons/chikorita_icon.4bpp" - - .align 2 -gMonFootprint_Chikorita:: @ 8C99DC4 - .incbin "graphics/pokemon/footprints/chikorita_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Bayleef:: @ 8C99DE4 - .incbin "graphics/pokemon/front_pics/bayleef_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Bayleef:: @ 8C9A1B8 - .incbin "graphics/pokemon/palettes/bayleef_palette.gbapal.lz" - - .align 2 -gMonBackPic_Bayleef:: @ 8C9A1E0 - .incbin "graphics/pokemon/back_pics/bayleef_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Bayleef:: @ 8C9A570 - .incbin "graphics/pokemon/palettes/bayleef_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Bayleef:: @ 8C9A598 - .incbin "graphics/pokemon/icons/bayleef_icon.4bpp" - - .align 2 -gMonFootprint_Bayleef:: @ 8C9A998 - .incbin "graphics/pokemon/footprints/bayleef_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Meganium:: @ 8C9A9B8 - .incbin "graphics/pokemon/front_pics/meganium_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Meganium:: @ 8C9AF14 - .incbin "graphics/pokemon/palettes/meganium_palette.gbapal.lz" - - .align 2 -gMonBackPic_Meganium:: @ 8C9AF3C - .incbin "graphics/pokemon/back_pics/meganium_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Meganium:: @ 8C9B28C - .incbin "graphics/pokemon/palettes/meganium_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Meganium:: @ 8C9B2B4 - .incbin "graphics/pokemon/icons/meganium_icon.4bpp" - - .align 2 -gMonFootprint_Meganium:: @ 8C9B6B4 - .incbin "graphics/pokemon/footprints/meganium_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Cyndaquil:: @ 8C9B6D4 - .incbin "graphics/pokemon/front_pics/cyndaquil_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Cyndaquil:: @ 8C9B960 - .incbin "graphics/pokemon/palettes/cyndaquil_palette.gbapal.lz" - - .align 2 -gMonBackPic_Cyndaquil:: @ 8C9B988 - .incbin "graphics/pokemon/back_pics/cyndaquil_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Cyndaquil:: @ 8C9BCB4 - .incbin "graphics/pokemon/palettes/cyndaquil_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Cyndaquil:: @ 8C9BCDC - .incbin "graphics/pokemon/icons/cyndaquil_icon.4bpp" - - .align 2 -gMonFootprint_Cyndaquil:: @ 8C9C0DC - .incbin "graphics/pokemon/footprints/cyndaquil_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Quilava:: @ 8C9C0FC - .incbin "graphics/pokemon/front_pics/quilava_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Quilava:: @ 8C9C418 - .incbin "graphics/pokemon/palettes/quilava_palette.gbapal.lz" - - .align 2 -gMonBackPic_Quilava:: @ 8C9C440 - .incbin "graphics/pokemon/back_pics/quilava_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Quilava:: @ 8C9C7B4 - .incbin "graphics/pokemon/palettes/quilava_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Quilava:: @ 8C9C7DC - .incbin "graphics/pokemon/icons/quilava_icon.4bpp" - - .align 2 -gMonFootprint_Quilava:: @ 8C9CBDC - .incbin "graphics/pokemon/footprints/quilava_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Typhlosion:: @ 8C9CBFC - .incbin "graphics/pokemon/front_pics/typhlosion_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Typhlosion:: @ 8C9D024 - .incbin "graphics/pokemon/palettes/typhlosion_palette.gbapal.lz" - - .align 2 -gMonBackPic_Typhlosion:: @ 8C9D04C - .incbin "graphics/pokemon/back_pics/typhlosion_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Typhlosion:: @ 8C9D450 - .incbin "graphics/pokemon/palettes/typhlosion_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Typhlosion:: @ 8C9D478 - .incbin "graphics/pokemon/icons/typhlosion_icon.4bpp" - - .align 2 -gMonFootprint_Typhlosion:: @ 8C9D878 - .incbin "graphics/pokemon/footprints/typhlosion_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Totodile:: @ 8C9D898 - .incbin "graphics/pokemon/front_pics/totodile_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Totodile:: @ 8C9DB3C - .incbin "graphics/pokemon/palettes/totodile_palette.gbapal.lz" - - .align 2 -gMonBackPic_Totodile:: @ 8C9DB64 - .incbin "graphics/pokemon/back_pics/totodile_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Totodile:: @ 8C9DE44 - .incbin "graphics/pokemon/palettes/totodile_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Totodile:: @ 8C9DE6C - .incbin "graphics/pokemon/icons/totodile_icon.4bpp" - - .align 2 -gMonFootprint_Totodile:: @ 8C9E26C - .incbin "graphics/pokemon/footprints/totodile_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Croconaw:: @ 8C9E28C - .incbin "graphics/pokemon/front_pics/croconaw_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Croconaw:: @ 8C9E5F4 - .incbin "graphics/pokemon/palettes/croconaw_palette.gbapal.lz" - - .align 2 -gMonBackPic_Croconaw:: @ 8C9E61C - .incbin "graphics/pokemon/back_pics/croconaw_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Croconaw:: @ 8C9E96C - .incbin "graphics/pokemon/palettes/croconaw_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Croconaw:: @ 8C9E994 - .incbin "graphics/pokemon/icons/croconaw_icon.4bpp" - - .align 2 -gMonFootprint_Croconaw:: @ 8C9ED94 - .incbin "graphics/pokemon/footprints/croconaw_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Feraligatr:: @ 8C9EDB4 - .incbin "graphics/pokemon/front_pics/feraligatr_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Feraligatr:: @ 8C9F320 - .incbin "graphics/pokemon/palettes/feraligatr_palette.gbapal.lz" - - .align 2 -gMonBackPic_Feraligatr:: @ 8C9F348 - .incbin "graphics/pokemon/back_pics/feraligatr_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Feraligatr:: @ 8C9F814 - .incbin "graphics/pokemon/palettes/feraligatr_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Feraligatr:: @ 8C9F83C - .incbin "graphics/pokemon/icons/feraligatr_icon.4bpp" - - .align 2 -gMonFootprint_Feraligatr:: @ 8C9FC3C - .incbin "graphics/pokemon/footprints/feraligatr_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Sentret:: @ 8C9FC5C - .incbin "graphics/pokemon/front_pics/sentret_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Sentret:: @ 8C9FF38 - .incbin "graphics/pokemon/palettes/sentret_palette.gbapal.lz" - - .align 2 -gMonBackPic_Sentret:: @ 8C9FF60 - .incbin "graphics/pokemon/back_pics/sentret_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Sentret:: @ 8CA0204 - .incbin "graphics/pokemon/palettes/sentret_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Sentret:: @ 8CA022C - .incbin "graphics/pokemon/icons/sentret_icon.4bpp" - - .align 2 -gMonFootprint_Sentret:: @ 8CA062C - .incbin "graphics/pokemon/footprints/sentret_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Furret:: @ 8CA064C - .incbin "graphics/pokemon/front_pics/furret_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Furret:: @ 8CA0980 - .incbin "graphics/pokemon/palettes/furret_palette.gbapal.lz" - - .align 2 -gMonBackPic_Furret:: @ 8CA09A8 - .incbin "graphics/pokemon/back_pics/furret_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Furret:: @ 8CA0CD0 - .incbin "graphics/pokemon/palettes/furret_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Furret:: @ 8CA0CF8 - .incbin "graphics/pokemon/icons/furret_icon.4bpp" - - .align 2 -gMonFootprint_Furret:: @ 8CA10F8 - .incbin "graphics/pokemon/footprints/furret_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Hoothoot:: @ 8CA1118 - .incbin "graphics/pokemon/front_pics/hoothoot_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Hoothoot:: @ 8CA139C - .incbin "graphics/pokemon/palettes/hoothoot_palette.gbapal.lz" - - .align 2 -gMonBackPic_Hoothoot:: @ 8CA13C4 - .incbin "graphics/pokemon/back_pics/hoothoot_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Hoothoot:: @ 8CA16CC - .incbin "graphics/pokemon/palettes/hoothoot_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Hoothoot:: @ 8CA16F4 - .incbin "graphics/pokemon/icons/hoothoot_icon.4bpp" - - .align 2 -gMonFootprint_Hoothoot:: @ 8CA1AF4 - .incbin "graphics/pokemon/footprints/hoothoot_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Noctowl:: @ 8CA1B14 - .incbin "graphics/pokemon/front_pics/noctowl_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Noctowl:: @ 8CA1E68 - .incbin "graphics/pokemon/palettes/noctowl_palette.gbapal.lz" - - .align 2 -gMonBackPic_Noctowl:: @ 8CA1E90 - .incbin "graphics/pokemon/back_pics/noctowl_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Noctowl:: @ 8CA21EC - .incbin "graphics/pokemon/palettes/noctowl_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Noctowl:: @ 8CA2214 - .incbin "graphics/pokemon/icons/noctowl_icon.4bpp" - - .align 2 -gMonFootprint_Noctowl:: @ 8CA2614 - .incbin "graphics/pokemon/footprints/noctowl_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Ledyba:: @ 8CA2634 - .incbin "graphics/pokemon/front_pics/ledyba_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Ledyba:: @ 8CA2928 - .incbin "graphics/pokemon/palettes/ledyba_palette.gbapal.lz" - - .align 2 -gMonBackPic_Ledyba:: @ 8CA2950 - .incbin "graphics/pokemon/back_pics/ledyba_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Ledyba:: @ 8CA2C80 - .incbin "graphics/pokemon/palettes/ledyba_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Ledyba:: @ 8CA2CA8 - .incbin "graphics/pokemon/icons/ledyba_icon.4bpp" - - .align 2 -gMonFootprint_Ledyba:: @ 8CA30A8 - .incbin "graphics/pokemon/footprints/ledyba_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Ledian:: @ 8CA30C8 - .incbin "graphics/pokemon/front_pics/ledian_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Ledian:: @ 8CA3450 - .incbin "graphics/pokemon/palettes/ledian_palette.gbapal.lz" - - .align 2 -gMonBackPic_Ledian:: @ 8CA3478 - .incbin "graphics/pokemon/back_pics/ledian_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Ledian:: @ 8CA37D0 - .incbin "graphics/pokemon/palettes/ledian_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Ledian:: @ 8CA37F8 - .incbin "graphics/pokemon/icons/ledian_icon.4bpp" - - .align 2 -gMonFootprint_Ledian:: @ 8CA3BF8 - .incbin "graphics/pokemon/footprints/ledian_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Spinarak:: @ 8CA3C18 - .incbin "graphics/pokemon/front_pics/spinarak_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Spinarak:: @ 8CA3E8C - .incbin "graphics/pokemon/palettes/spinarak_palette.gbapal.lz" - - .align 2 -gMonBackPic_Spinarak:: @ 8CA3EB4 - .incbin "graphics/pokemon/back_pics/spinarak_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Spinarak:: @ 8CA4118 - .incbin "graphics/pokemon/palettes/spinarak_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Spinarak:: @ 8CA4140 - .incbin "graphics/pokemon/icons/spinarak_icon.4bpp" - - .align 2 -gMonFootprint_Spinarak:: @ 8CA4540 - .incbin "graphics/pokemon/footprints/spinarak_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Ariados:: @ 8CA4560 - .incbin "graphics/pokemon/front_pics/ariados_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Ariados:: @ 8CA4920 - .incbin "graphics/pokemon/palettes/ariados_palette.gbapal.lz" - - .align 2 -gMonBackPic_Ariados:: @ 8CA4948 - .incbin "graphics/pokemon/back_pics/ariados_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Ariados:: @ 8CA4CC0 - .incbin "graphics/pokemon/palettes/ariados_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Ariados:: @ 8CA4CE8 - .incbin "graphics/pokemon/icons/ariados_icon.4bpp" - - .align 2 -gMonFootprint_Ariados:: @ 8CA50E8 - .incbin "graphics/pokemon/footprints/ariados_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Crobat:: @ 8CA5108 - .incbin "graphics/pokemon/front_pics/crobat_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Crobat:: @ 8CA54B8 - .incbin "graphics/pokemon/palettes/crobat_palette.gbapal.lz" - - .align 2 -gMonBackPic_Crobat:: @ 8CA54E0 - .incbin "graphics/pokemon/back_pics/crobat_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Crobat:: @ 8CA57E8 - .incbin "graphics/pokemon/palettes/crobat_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Crobat:: @ 8CA5810 - .incbin "graphics/pokemon/icons/crobat_icon.4bpp" - - .align 2 -gMonFootprint_Crobat:: @ 8CA5C10 - .incbin "graphics/pokemon/footprints/crobat_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Chinchou:: @ 8CA5C30 - .incbin "graphics/pokemon/front_pics/chinchou_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Chinchou:: @ 8CA5F08 - .incbin "graphics/pokemon/palettes/chinchou_palette.gbapal.lz" - - .align 2 -gMonBackPic_Chinchou:: @ 8CA5F30 - .incbin "graphics/pokemon/back_pics/chinchou_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Chinchou:: @ 8CA6228 - .incbin "graphics/pokemon/palettes/chinchou_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Chinchou:: @ 8CA6250 - .incbin "graphics/pokemon/icons/chinchou_icon.4bpp" - - .align 2 -gMonFootprint_Chinchou:: @ 8CA6650 - .incbin "graphics/pokemon/footprints/chinchou_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Lanturn:: @ 8CA6670 - .incbin "graphics/pokemon/front_pics/lanturn_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Lanturn:: @ 8CA69E0 - .incbin "graphics/pokemon/palettes/lanturn_palette.gbapal.lz" - - .align 2 -gMonBackPic_Lanturn:: @ 8CA6A08 - .incbin "graphics/pokemon/back_pics/lanturn_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Lanturn:: @ 8CA6D08 - .incbin "graphics/pokemon/palettes/lanturn_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Lanturn:: @ 8CA6D30 - .incbin "graphics/pokemon/icons/lanturn_icon.4bpp" - - .align 2 -gMonFootprint_Lanturn:: @ 8CA7130 - .incbin "graphics/pokemon/footprints/lanturn_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Pichu:: @ 8CA7150 - .incbin "graphics/pokemon/front_pics/pichu_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Pichu:: @ 8CA736C - .incbin "graphics/pokemon/palettes/pichu_palette.gbapal.lz" - - .align 2 -gMonBackPic_Pichu:: @ 8CA7394 - .incbin "graphics/pokemon/back_pics/pichu_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Pichu:: @ 8CA75F0 - .incbin "graphics/pokemon/palettes/pichu_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Pichu:: @ 8CA7618 - .incbin "graphics/pokemon/icons/pichu_icon.4bpp" - - .align 2 -gMonFootprint_Pichu:: @ 8CA7A18 - .incbin "graphics/pokemon/footprints/pichu_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Cleffa:: @ 8CA7A38 - .incbin "graphics/pokemon/front_pics/cleffa_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Cleffa:: @ 8CA7C18 - .incbin "graphics/pokemon/palettes/cleffa_palette.gbapal.lz" - - .align 2 -gMonBackPic_Cleffa:: @ 8CA7C40 - .incbin "graphics/pokemon/back_pics/cleffa_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Cleffa:: @ 8CA7E7C - .incbin "graphics/pokemon/palettes/cleffa_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Cleffa:: @ 8CA7EA4 - .incbin "graphics/pokemon/icons/cleffa_icon.4bpp" - - .align 2 -gMonFootprint_Cleffa:: @ 8CA82A4 - .incbin "graphics/pokemon/footprints/cleffa_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Igglybuff:: @ 8CA82C4 - .incbin "graphics/pokemon/front_pics/igglybuff_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Igglybuff:: @ 8CA84AC - .incbin "graphics/pokemon/palettes/igglybuff_palette.gbapal.lz" - - .align 2 -gMonBackPic_Igglybuff:: @ 8CA84D4 - .incbin "graphics/pokemon/back_pics/igglybuff_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Igglybuff:: @ 8CA8710 - .incbin "graphics/pokemon/palettes/igglybuff_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Igglybuff:: @ 8CA8738 - .incbin "graphics/pokemon/icons/igglybuff_icon.4bpp" - - .align 2 -gMonFootprint_Igglybuff:: @ 8CA8B38 - .incbin "graphics/pokemon/footprints/igglybuff_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Togepi:: @ 8CA8B58 - .incbin "graphics/pokemon/front_pics/togepi_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Togepi:: @ 8CA8D2C - .incbin "graphics/pokemon/palettes/togepi_palette.gbapal.lz" - - .align 2 -gMonBackPic_Togepi:: @ 8CA8D54 - .incbin "graphics/pokemon/back_pics/togepi_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Togepi:: @ 8CA8FC8 - .incbin "graphics/pokemon/palettes/togepi_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Togepi:: @ 8CA8FF0 - .incbin "graphics/pokemon/icons/togepi_icon.4bpp" - - .align 2 -gMonFootprint_Togepi:: @ 8CA93F0 - .incbin "graphics/pokemon/footprints/togepi_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Togetic:: @ 8CA9410 - .incbin "graphics/pokemon/front_pics/togetic_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Togetic:: @ 8CA9684 - .incbin "graphics/pokemon/palettes/togetic_palette.gbapal.lz" - - .align 2 -gMonBackPic_Togetic:: @ 8CA96AC - .incbin "graphics/pokemon/back_pics/togetic_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Togetic:: @ 8CA99D8 - .incbin "graphics/pokemon/palettes/togetic_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Togetic:: @ 8CA9A00 - .incbin "graphics/pokemon/icons/togetic_icon.4bpp" - - .align 2 -gMonFootprint_Togetic:: @ 8CA9E00 - .incbin "graphics/pokemon/footprints/togetic_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Natu:: @ 8CA9E20 - .incbin "graphics/pokemon/front_pics/natu_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Natu:: @ 8CA9FEC - .incbin "graphics/pokemon/palettes/natu_palette.gbapal.lz" - - .align 2 -gMonBackPic_Natu:: @ 8CAA014 - .incbin "graphics/pokemon/back_pics/natu_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Natu:: @ 8CAA228 - .incbin "graphics/pokemon/palettes/natu_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Natu:: @ 8CAA250 - .incbin "graphics/pokemon/icons/natu_icon.4bpp" - - .align 2 -gMonFootprint_Natu:: @ 8CAA650 - .incbin "graphics/pokemon/footprints/natu_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Xatu:: @ 8CAA670 - .incbin "graphics/pokemon/front_pics/xatu_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Xatu:: @ 8CAA94C - .incbin "graphics/pokemon/palettes/xatu_palette.gbapal.lz" - - .align 2 -gMonBackPic_Xatu:: @ 8CAA974 - .incbin "graphics/pokemon/back_pics/xatu_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Xatu:: @ 8CAACEC - .incbin "graphics/pokemon/palettes/xatu_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Xatu:: @ 8CAAD14 - .incbin "graphics/pokemon/icons/xatu_icon.4bpp" - - .align 2 -gMonFootprint_Xatu:: @ 8CAB114 - .incbin "graphics/pokemon/footprints/xatu_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Mareep:: @ 8CAB134 - .incbin "graphics/pokemon/front_pics/mareep_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Mareep:: @ 8CAB3E8 - .incbin "graphics/pokemon/palettes/mareep_palette.gbapal.lz" - - .align 2 -gMonBackPic_Mareep:: @ 8CAB410 - .incbin "graphics/pokemon/back_pics/mareep_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Mareep:: @ 8CAB704 - .incbin "graphics/pokemon/palettes/mareep_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Mareep:: @ 8CAB72C - .incbin "graphics/pokemon/icons/mareep_icon.4bpp" - - .align 2 -gMonFootprint_Mareep:: @ 8CABB2C - .incbin "graphics/pokemon/footprints/mareep_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Flaaffy:: @ 8CABB4C - .incbin "graphics/pokemon/front_pics/flaaffy_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Flaaffy:: @ 8CABE4C - .incbin "graphics/pokemon/palettes/flaaffy_palette.gbapal.lz" - - .align 2 -gMonBackPic_Flaaffy:: @ 8CABE74 - .incbin "graphics/pokemon/back_pics/flaaffy_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Flaaffy:: @ 8CAC190 - .incbin "graphics/pokemon/palettes/flaaffy_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Flaaffy:: @ 8CAC1B8 - .incbin "graphics/pokemon/icons/flaaffy_icon.4bpp" - - .align 2 -gMonFootprint_Flaaffy:: @ 8CAC5B8 - .incbin "graphics/pokemon/footprints/flaaffy_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Ampharos:: @ 8CAC5D8 - .incbin "graphics/pokemon/front_pics/ampharos_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Ampharos:: @ 8CAC934 - .incbin "graphics/pokemon/palettes/ampharos_palette.gbapal.lz" - - .align 2 -gMonBackPic_Ampharos:: @ 8CAC95C - .incbin "graphics/pokemon/back_pics/ampharos_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Ampharos:: @ 8CACCD4 - .incbin "graphics/pokemon/palettes/ampharos_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Ampharos:: @ 8CACCFC - .incbin "graphics/pokemon/icons/ampharos_icon.4bpp" - - .align 2 -gMonFootprint_Ampharos:: @ 8CAD0FC - .incbin "graphics/pokemon/footprints/ampharos_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Bellossom:: @ 8CAD11C - .incbin "graphics/pokemon/front_pics/bellossom_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Bellossom:: @ 8CAD38C - .incbin "graphics/pokemon/palettes/bellossom_palette.gbapal.lz" - - .align 2 -gMonBackPic_Bellossom:: @ 8CAD3B4 - .incbin "graphics/pokemon/back_pics/bellossom_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Bellossom:: @ 8CAD6D8 - .incbin "graphics/pokemon/palettes/bellossom_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Bellossom:: @ 8CAD700 - .incbin "graphics/pokemon/icons/bellossom_icon.4bpp" - - .align 2 -gMonFootprint_Bellossom:: @ 8CADB00 - .incbin "graphics/pokemon/footprints/bellossom_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Marill:: @ 8CADB20 - .incbin "graphics/pokemon/front_pics/marill_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Marill:: @ 8CADDE4 - .incbin "graphics/pokemon/palettes/marill_palette.gbapal.lz" - - .align 2 -gMonBackPic_Marill:: @ 8CADE0C - .incbin "graphics/pokemon/back_pics/marill_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Marill:: @ 8CAE0B8 - .incbin "graphics/pokemon/palettes/marill_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Marill:: @ 8CAE0E0 - .incbin "graphics/pokemon/icons/marill_icon.4bpp" - - .align 2 -gMonFootprint_Marill:: @ 8CAE4E0 - .incbin "graphics/pokemon/footprints/marill_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Azumarill:: @ 8CAE500 - .incbin "graphics/pokemon/front_pics/azumarill_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Azumarill:: @ 8CAE800 - .incbin "graphics/pokemon/palettes/azumarill_palette.gbapal.lz" - - .align 2 -gMonBackPic_Azumarill:: @ 8CAE828 - .incbin "graphics/pokemon/back_pics/azumarill_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Azumarill:: @ 8CAEAE4 - .incbin "graphics/pokemon/palettes/azumarill_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Azumarill:: @ 8CAEB0C - .incbin "graphics/pokemon/icons/azumarill_icon.4bpp" - - .align 2 -gMonFootprint_Azumarill:: @ 8CAEF0C - .incbin "graphics/pokemon/footprints/azumarill_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Sudowoodo:: @ 8CAEF2C - .incbin "graphics/pokemon/front_pics/sudowoodo_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Sudowoodo:: @ 8CAF244 - .incbin "graphics/pokemon/palettes/sudowoodo_palette.gbapal.lz" - - .align 2 -gMonBackPic_Sudowoodo:: @ 8CAF26C - .incbin "graphics/pokemon/back_pics/sudowoodo_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Sudowoodo:: @ 8CAF5C8 - .incbin "graphics/pokemon/palettes/sudowoodo_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Sudowoodo:: @ 8CAF5F0 - .incbin "graphics/pokemon/icons/sudowoodo_icon.4bpp" - - .align 2 -gMonFootprint_Sudowoodo:: @ 8CAF9F0 - .incbin "graphics/pokemon/footprints/sudowoodo_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Politoed:: @ 8CAFA10 - .incbin "graphics/pokemon/front_pics/politoed_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Politoed:: @ 8CAFD4C - .incbin "graphics/pokemon/palettes/politoed_palette.gbapal.lz" - - .align 2 -gMonBackPic_Politoed:: @ 8CAFD74 - .incbin "graphics/pokemon/back_pics/politoed_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Politoed:: @ 8CB0030 - .incbin "graphics/pokemon/palettes/politoed_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Politoed:: @ 8CB0058 - .incbin "graphics/pokemon/icons/politoed_icon.4bpp" - - .align 2 -gMonFootprint_Politoed:: @ 8CB0458 - .incbin "graphics/pokemon/footprints/politoed_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Hoppip:: @ 8CB0478 - .incbin "graphics/pokemon/front_pics/hoppip_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Hoppip:: @ 8CB072C - .incbin "graphics/pokemon/palettes/hoppip_palette.gbapal.lz" - - .align 2 -gMonBackPic_Hoppip:: @ 8CB0754 - .incbin "graphics/pokemon/back_pics/hoppip_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Hoppip:: @ 8CB0A34 - .incbin "graphics/pokemon/palettes/hoppip_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Hoppip:: @ 8CB0A5C - .incbin "graphics/pokemon/icons/hoppip_icon.4bpp" - - .align 2 -gMonFootprint_Hoppip:: @ 8CB0E5C - .incbin "graphics/pokemon/footprints/hoppip_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Skiploom:: @ 8CB0E7C - .incbin "graphics/pokemon/front_pics/skiploom_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Skiploom:: @ 8CB1104 - .incbin "graphics/pokemon/palettes/skiploom_palette.gbapal.lz" - - .align 2 -gMonBackPic_Skiploom:: @ 8CB112C - .incbin "graphics/pokemon/back_pics/skiploom_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Skiploom:: @ 8CB140C - .incbin "graphics/pokemon/palettes/skiploom_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Skiploom:: @ 8CB1434 - .incbin "graphics/pokemon/icons/skiploom_icon.4bpp" - - .align 2 -gMonFootprint_Skiploom:: @ 8CB1834 - .incbin "graphics/pokemon/footprints/skiploom_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Jumpluff:: @ 8CB1854 - .incbin "graphics/pokemon/front_pics/jumpluff_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Jumpluff:: @ 8CB1BC0 - .incbin "graphics/pokemon/palettes/jumpluff_palette.gbapal.lz" - - .align 2 -gMonBackPic_Jumpluff:: @ 8CB1BE8 - .incbin "graphics/pokemon/back_pics/jumpluff_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Jumpluff:: @ 8CB1FE0 - .incbin "graphics/pokemon/palettes/jumpluff_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Jumpluff:: @ 8CB2008 - .incbin "graphics/pokemon/icons/jumpluff_icon.4bpp" - - .align 2 -gMonFootprint_Jumpluff:: @ 8CB2408 - .incbin "graphics/pokemon/footprints/jumpluff_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Aipom:: @ 8CB2428 - .incbin "graphics/pokemon/front_pics/aipom_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Aipom:: @ 8CB2724 - .incbin "graphics/pokemon/palettes/aipom_palette.gbapal.lz" - - .align 2 -gMonBackPic_Aipom:: @ 8CB274C - .incbin "graphics/pokemon/back_pics/aipom_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Aipom:: @ 8CB2A40 - .incbin "graphics/pokemon/palettes/aipom_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Aipom:: @ 8CB2A68 - .incbin "graphics/pokemon/icons/aipom_icon.4bpp" - - .align 2 -gMonFootprint_Aipom:: @ 8CB2E68 - .incbin "graphics/pokemon/footprints/aipom_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Sunkern:: @ 8CB2E88 - .incbin "graphics/pokemon/front_pics/sunkern_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Sunkern:: @ 8CB30C0 - .incbin "graphics/pokemon/palettes/sunkern_palette.gbapal.lz" - - .align 2 -gMonBackPic_Sunkern:: @ 8CB30E8 - .incbin "graphics/pokemon/back_pics/sunkern_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Sunkern:: @ 8CB33AC - .incbin "graphics/pokemon/palettes/sunkern_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Sunkern:: @ 8CB33D4 - .incbin "graphics/pokemon/icons/sunkern_icon.4bpp" - - .align 2 -gMonFootprint_Sunkern:: @ 8CB37D4 - .incbin "graphics/pokemon/footprints/sunkern_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Sunflora:: @ 8CB37F4 - .incbin "graphics/pokemon/front_pics/sunflora_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Sunflora:: @ 8CB3B4C - .incbin "graphics/pokemon/palettes/sunflora_palette.gbapal.lz" - - .align 2 -gMonBackPic_Sunflora:: @ 8CB3B74 - .incbin "graphics/pokemon/back_pics/sunflora_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Sunflora:: @ 8CB3F14 - .incbin "graphics/pokemon/palettes/sunflora_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Sunflora:: @ 8CB3F3C - .incbin "graphics/pokemon/icons/sunflora_icon.4bpp" - - .align 2 -gMonFootprint_Sunflora:: @ 8CB433C - .incbin "graphics/pokemon/footprints/sunflora_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Yanma:: @ 8CB435C - .incbin "graphics/pokemon/front_pics/yanma_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Yanma:: @ 8CB46E0 - .incbin "graphics/pokemon/palettes/yanma_palette.gbapal.lz" - - .align 2 -gMonBackPic_Yanma:: @ 8CB4708 - .incbin "graphics/pokemon/back_pics/yanma_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Yanma:: @ 8CB4ABC - .incbin "graphics/pokemon/palettes/yanma_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Yanma:: @ 8CB4AE4 - .incbin "graphics/pokemon/icons/yanma_icon.4bpp" - - .align 2 -gMonFootprint_Yanma:: @ 8CB4EE4 - .incbin "graphics/pokemon/footprints/yanma_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Wooper:: @ 8CB4F04 - .incbin "graphics/pokemon/front_pics/wooper_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Wooper:: @ 8CB5144 - .incbin "graphics/pokemon/palettes/wooper_palette.gbapal.lz" - - .align 2 -gMonBackPic_Wooper:: @ 8CB516C - .incbin "graphics/pokemon/back_pics/wooper_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Wooper:: @ 8CB53F8 - .incbin "graphics/pokemon/palettes/wooper_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Wooper:: @ 8CB5420 - .incbin "graphics/pokemon/icons/wooper_icon.4bpp" - - .align 2 -gMonFootprint_Wooper:: @ 8CB5820 - .incbin "graphics/pokemon/footprints/wooper_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Quagsire:: @ 8CB5840 - .incbin "graphics/pokemon/front_pics/quagsire_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Quagsire:: @ 8CB5BB4 - .incbin "graphics/pokemon/palettes/quagsire_palette.gbapal.lz" - - .align 2 -gMonBackPic_Quagsire:: @ 8CB5BDC - .incbin "graphics/pokemon/back_pics/quagsire_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Quagsire:: @ 8CB5ED8 - .incbin "graphics/pokemon/palettes/quagsire_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Quagsire:: @ 8CB5F00 - .incbin "graphics/pokemon/icons/quagsire_icon.4bpp" - - .align 2 -gMonFootprint_Quagsire:: @ 8CB6300 - .incbin "graphics/pokemon/footprints/quagsire_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Espeon:: @ 8CB6320 - .incbin "graphics/pokemon/front_pics/espeon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Espeon:: @ 8CB6660 - .incbin "graphics/pokemon/palettes/espeon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Espeon:: @ 8CB6684 - .incbin "graphics/pokemon/back_pics/espeon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Espeon:: @ 8CB6960 - .incbin "graphics/pokemon/palettes/espeon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Espeon:: @ 8CB6984 - .incbin "graphics/pokemon/icons/espeon_icon.4bpp" - - .align 2 -gMonFootprint_Espeon:: @ 8CB6D84 - .incbin "graphics/pokemon/footprints/espeon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Umbreon:: @ 8CB6DA4 - .incbin "graphics/pokemon/front_pics/umbreon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Umbreon:: @ 8CB70B8 - .incbin "graphics/pokemon/palettes/umbreon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Umbreon:: @ 8CB70E0 - .incbin "graphics/pokemon/back_pics/umbreon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Umbreon:: @ 8CB73F4 - .incbin "graphics/pokemon/palettes/umbreon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Umbreon:: @ 8CB741C - .incbin "graphics/pokemon/icons/umbreon_icon.4bpp" - - .align 2 -gMonFootprint_Umbreon:: @ 8CB781C - .incbin "graphics/pokemon/footprints/umbreon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Murkrow:: @ 8CB783C - .incbin "graphics/pokemon/front_pics/murkrow_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Murkrow:: @ 8CB7B1C - .incbin "graphics/pokemon/palettes/murkrow_palette.gbapal.lz" - - .align 2 -gMonBackPic_Murkrow:: @ 8CB7B44 - .incbin "graphics/pokemon/back_pics/murkrow_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Murkrow:: @ 8CB7E5C - .incbin "graphics/pokemon/palettes/murkrow_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Murkrow:: @ 8CB7E84 - .incbin "graphics/pokemon/icons/murkrow_icon.4bpp" - - .align 2 -gMonFootprint_Murkrow:: @ 8CB8284 - .incbin "graphics/pokemon/footprints/murkrow_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Slowking:: @ 8CB82A4 - .incbin "graphics/pokemon/front_pics/slowking_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Slowking:: @ 8CB8658 - .incbin "graphics/pokemon/palettes/slowking_palette.gbapal.lz" - - .align 2 -gMonBackPic_Slowking:: @ 8CB8680 - .incbin "graphics/pokemon/back_pics/slowking_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Slowking:: @ 8CB8A0C - .incbin "graphics/pokemon/palettes/slowking_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Slowking:: @ 8CB8A34 - .incbin "graphics/pokemon/icons/slowking_icon.4bpp" - - .align 2 -gMonFootprint_Slowking:: @ 8CB8E34 - .incbin "graphics/pokemon/footprints/slowking_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Misdreavus:: @ 8CB8E54 - .incbin "graphics/pokemon/front_pics/misdreavus_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Misdreavus:: @ 8CB9114 - .incbin "graphics/pokemon/palettes/misdreavus_palette.gbapal.lz" - - .align 2 -gMonBackPic_Misdreavus:: @ 8CB913C - .incbin "graphics/pokemon/back_pics/misdreavus_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Misdreavus:: @ 8CB9460 - .incbin "graphics/pokemon/palettes/misdreavus_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Misdreavus:: @ 8CB9488 - .incbin "graphics/pokemon/icons/misdreavus_icon.4bpp" - - .align 2 -gMonFootprint_Misdreavus:: @ 8CB9888 - .incbin "graphics/pokemon/footprints/misdreavus_footprint.1bpp" - - .align 2 -gMonStillFrontPic_UnownA:: @ 8CB98A8 - .incbin "graphics/pokemon/front_pics/unown_a_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Unown:: @ 8CB9A7C - .incbin "graphics/pokemon/palettes/unown_palette.gbapal.lz" - - .align 2 -gMonBackPic_UnownA:: @ 8CB9A9C - .incbin "graphics/pokemon/back_pics/unown_a_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Unown:: @ 8CB9C9C - .incbin "graphics/pokemon/palettes/unown_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_UnownA:: @ 8CB9CBC - .incbin "graphics/pokemon/icons/unown_a_icon.4bpp" - - .align 2 -gMonFootprint_Unown:: @ 8CBA0BC - .incbin "graphics/pokemon/footprints/unown_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Wobbuffet:: @ 8CBA0DC - .incbin "graphics/pokemon/front_pics/wobbuffet_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Wobbuffet:: @ 8CBA42C - .incbin "graphics/pokemon/palettes/wobbuffet_palette.gbapal.lz" - - .align 2 -gMonBackPic_Wobbuffet:: @ 8CBA454 - .incbin "graphics/pokemon/back_pics/wobbuffet_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Wobbuffet:: @ 8CBA698 - .incbin "graphics/pokemon/palettes/wobbuffet_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Wobbuffet:: @ 8CBA6C0 - .incbin "graphics/pokemon/icons/wobbuffet_icon.4bpp" - - .align 2 -gMonFootprint_Wobbuffet:: @ 8CBAAC0 - .incbin "graphics/pokemon/footprints/wobbuffet_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Girafarig:: @ 8CBAAE0 - .incbin "graphics/pokemon/front_pics/girafarig_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Girafarig:: @ 8CBAEE4 - .incbin "graphics/pokemon/palettes/girafarig_palette.gbapal.lz" - - .align 2 -gMonBackPic_Girafarig:: @ 8CBAF0C - .incbin "graphics/pokemon/back_pics/girafarig_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Girafarig:: @ 8CBB2B8 - .incbin "graphics/pokemon/palettes/girafarig_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Girafarig:: @ 8CBB2E0 - .incbin "graphics/pokemon/icons/girafarig_icon.4bpp" - - .align 2 -gMonFootprint_Girafarig:: @ 8CBB6E0 - .incbin "graphics/pokemon/footprints/girafarig_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Pineco:: @ 8CBB700 - .incbin "graphics/pokemon/front_pics/pineco_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Pineco:: @ 8CBBA40 - .incbin "graphics/pokemon/palettes/pineco_palette.gbapal.lz" - - .align 2 -gMonBackPic_Pineco:: @ 8CBBA64 - .incbin "graphics/pokemon/back_pics/pineco_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Pineco:: @ 8CBBD3C - .incbin "graphics/pokemon/palettes/pineco_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Pineco:: @ 8CBBD60 - .incbin "graphics/pokemon/icons/pineco_icon.4bpp" - - .align 2 -gMonFootprint_Pineco:: @ 8CBC160 - .incbin "graphics/pokemon/footprints/pineco_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Forretress:: @ 8CBC180 - .incbin "graphics/pokemon/front_pics/forretress_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Forretress:: @ 8CBC59C - .incbin "graphics/pokemon/palettes/forretress_palette.gbapal.lz" - - .align 2 -gMonBackPic_Forretress:: @ 8CBC5C4 - .incbin "graphics/pokemon/back_pics/forretress_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Forretress:: @ 8CBC884 - .incbin "graphics/pokemon/palettes/forretress_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Forretress:: @ 8CBC8AC - .incbin "graphics/pokemon/icons/forretress_icon.4bpp" - - .align 2 -gMonFootprint_Forretress:: @ 8CBCCAC - .incbin "graphics/pokemon/footprints/forretress_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Dunsparce:: @ 8CBCCCC - .incbin "graphics/pokemon/front_pics/dunsparce_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Dunsparce:: @ 8CBCFDC - .incbin "graphics/pokemon/palettes/dunsparce_palette.gbapal.lz" - - .align 2 -gMonBackPic_Dunsparce:: @ 8CBD004 - .incbin "graphics/pokemon/back_pics/dunsparce_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Dunsparce:: @ 8CBD300 - .incbin "graphics/pokemon/palettes/dunsparce_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Dunsparce:: @ 8CBD328 - .incbin "graphics/pokemon/icons/dunsparce_icon.4bpp" - - .align 2 -gMonFootprint_Dunsparce:: @ 8CBD728 - .incbin "graphics/pokemon/footprints/dunsparce_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Gligar:: @ 8CBD748 - .incbin "graphics/pokemon/front_pics/gligar_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Gligar:: @ 8CBDB70 - .incbin "graphics/pokemon/palettes/gligar_palette.gbapal.lz" - - .align 2 -gMonBackPic_Gligar:: @ 8CBDB98 - .incbin "graphics/pokemon/back_pics/gligar_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Gligar:: @ 8CBDF70 - .incbin "graphics/pokemon/palettes/gligar_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Gligar:: @ 8CBDF98 - .incbin "graphics/pokemon/icons/gligar_icon.4bpp" - - .align 2 -gMonFootprint_Gligar:: @ 8CBE398 - .incbin "graphics/pokemon/footprints/gligar_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Steelix:: @ 8CBE3B8 - .incbin "graphics/pokemon/front_pics/steelix_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Steelix:: @ 8CBE880 - .incbin "graphics/pokemon/palettes/steelix_palette.gbapal.lz" - - .align 2 -gMonBackPic_Steelix:: @ 8CBE8A4 - .incbin "graphics/pokemon/back_pics/steelix_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Steelix:: @ 8CBECB0 - .incbin "graphics/pokemon/palettes/steelix_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Steelix:: @ 8CBECD4 - .incbin "graphics/pokemon/icons/steelix_icon.4bpp" - - .align 2 -gMonFootprint_Steelix:: @ 8CBF0D4 - .incbin "graphics/pokemon/footprints/steelix_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Snubbull:: @ 8CBF0F4 - .incbin "graphics/pokemon/front_pics/snubbull_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Snubbull:: @ 8CBF3C8 - .incbin "graphics/pokemon/palettes/snubbull_palette.gbapal.lz" - - .align 2 -gMonBackPic_Snubbull:: @ 8CBF3F0 - .incbin "graphics/pokemon/back_pics/snubbull_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Snubbull:: @ 8CBF718 - .incbin "graphics/pokemon/palettes/snubbull_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Snubbull:: @ 8CBF740 - .incbin "graphics/pokemon/icons/snubbull_icon.4bpp" - - .align 2 -gMonFootprint_Snubbull:: @ 8CBFB40 - .incbin "graphics/pokemon/footprints/snubbull_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Granbull:: @ 8CBFB60 - .incbin "graphics/pokemon/front_pics/granbull_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Granbull:: @ 8CBFEEC - .incbin "graphics/pokemon/palettes/granbull_palette.gbapal.lz" - - .align 2 -gMonBackPic_Granbull:: @ 8CBFF14 - .incbin "graphics/pokemon/back_pics/granbull_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Granbull:: @ 8CC0238 - .incbin "graphics/pokemon/palettes/granbull_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Granbull:: @ 8CC0260 - .incbin "graphics/pokemon/icons/granbull_icon.4bpp" - - .align 2 -gMonFootprint_Granbull:: @ 8CC0660 - .incbin "graphics/pokemon/footprints/granbull_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Qwilfish:: @ 8CC0680 - .incbin "graphics/pokemon/front_pics/qwilfish_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Qwilfish:: @ 8CC0940 - .incbin "graphics/pokemon/palettes/qwilfish_palette.gbapal.lz" - - .align 2 -gMonBackPic_Qwilfish:: @ 8CC0968 - .incbin "graphics/pokemon/back_pics/qwilfish_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Qwilfish:: @ 8CC0C48 - .incbin "graphics/pokemon/palettes/qwilfish_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Qwilfish:: @ 8CC0C70 - .incbin "graphics/pokemon/icons/qwilfish_icon.4bpp" - - .align 2 -gMonFootprint_Qwilfish:: @ 8CC1070 - .incbin "graphics/pokemon/footprints/qwilfish_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Scizor:: @ 8CC1090 - .incbin "graphics/pokemon/front_pics/scizor_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Scizor:: @ 8CC1578 - .incbin "graphics/pokemon/palettes/scizor_palette.gbapal.lz" - - .align 2 -gMonBackPic_Scizor:: @ 8CC15A0 - .incbin "graphics/pokemon/back_pics/scizor_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Scizor:: @ 8CC1920 - .incbin "graphics/pokemon/palettes/scizor_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Scizor:: @ 8CC1948 - .incbin "graphics/pokemon/icons/scizor_icon.4bpp" - - .align 2 -gMonFootprint_Scizor:: @ 8CC1D48 - .incbin "graphics/pokemon/footprints/scizor_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Shuckle:: @ 8CC1D68 - .incbin "graphics/pokemon/front_pics/shuckle_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Shuckle:: @ 8CC2030 - .incbin "graphics/pokemon/palettes/shuckle_palette.gbapal.lz" - - .align 2 -gMonBackPic_Shuckle:: @ 8CC2058 - .incbin "graphics/pokemon/back_pics/shuckle_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Shuckle:: @ 8CC22B0 - .incbin "graphics/pokemon/palettes/shuckle_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Shuckle:: @ 8CC22D8 - .incbin "graphics/pokemon/icons/shuckle_icon.4bpp" - - .align 2 -gMonFootprint_Shuckle:: @ 8CC26D8 - .incbin "graphics/pokemon/footprints/shuckle_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Heracross:: @ 8CC26F8 - .incbin "graphics/pokemon/front_pics/heracross_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Heracross:: @ 8CC2AE8 - .incbin "graphics/pokemon/palettes/heracross_palette.gbapal.lz" - - .align 2 -gMonBackPic_Heracross:: @ 8CC2B10 - .incbin "graphics/pokemon/back_pics/heracross_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Heracross:: @ 8CC2E80 - .incbin "graphics/pokemon/palettes/heracross_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Heracross:: @ 8CC2EA8 - .incbin "graphics/pokemon/icons/heracross_icon.4bpp" - - .align 2 -gMonFootprint_Heracross:: @ 8CC32A8 - .incbin "graphics/pokemon/footprints/heracross_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Sneasel:: @ 8CC32C8 - .incbin "graphics/pokemon/front_pics/sneasel_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Sneasel:: @ 8CC360C - .incbin "graphics/pokemon/palettes/sneasel_palette.gbapal.lz" - - .align 2 -gMonBackPic_Sneasel:: @ 8CC3634 - .incbin "graphics/pokemon/back_pics/sneasel_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Sneasel:: @ 8CC3958 - .incbin "graphics/pokemon/palettes/sneasel_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Sneasel:: @ 8CC3980 - .incbin "graphics/pokemon/icons/sneasel_icon.4bpp" - - .align 2 -gMonFootprint_Sneasel:: @ 8CC3D80 - .incbin "graphics/pokemon/footprints/sneasel_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Teddiursa:: @ 8CC3DA0 - .incbin "graphics/pokemon/front_pics/teddiursa_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Teddiursa:: @ 8CC400C - .incbin "graphics/pokemon/palettes/teddiursa_palette.gbapal.lz" - - .align 2 -gMonBackPic_Teddiursa:: @ 8CC4034 - .incbin "graphics/pokemon/back_pics/teddiursa_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Teddiursa:: @ 8CC42AC - .incbin "graphics/pokemon/palettes/teddiursa_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Teddiursa:: @ 8CC42D4 - .incbin "graphics/pokemon/icons/teddiursa_icon.4bpp" - - .align 2 -gMonFootprint_Teddiursa:: @ 8CC46D4 - .incbin "graphics/pokemon/footprints/teddiursa_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Ursaring:: @ 8CC46F4 - .incbin "graphics/pokemon/front_pics/ursaring_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Ursaring:: @ 8CC4B2C - .incbin "graphics/pokemon/palettes/ursaring_palette.gbapal.lz" - - .align 2 -gMonBackPic_Ursaring:: @ 8CC4B54 - .incbin "graphics/pokemon/back_pics/ursaring_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Ursaring:: @ 8CC4EDC - .incbin "graphics/pokemon/palettes/ursaring_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Ursaring:: @ 8CC4F04 - .incbin "graphics/pokemon/icons/ursaring_icon.4bpp" - - .align 2 -gMonFootprint_Ursaring:: @ 8CC5304 - .incbin "graphics/pokemon/footprints/ursaring_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Slugma:: @ 8CC5324 - .incbin "graphics/pokemon/front_pics/slugma_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Slugma:: @ 8CC5598 - .incbin "graphics/pokemon/palettes/slugma_palette.gbapal.lz" - - .align 2 -gMonBackPic_Slugma:: @ 8CC55BC - .incbin "graphics/pokemon/back_pics/slugma_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Slugma:: @ 8CC58A4 - .incbin "graphics/pokemon/palettes/slugma_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Slugma:: @ 8CC58C8 - .incbin "graphics/pokemon/icons/slugma_icon.4bpp" - - .align 2 -gMonFootprint_Slugma:: @ 8CC5CC8 - .incbin "graphics/pokemon/footprints/slugma_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Magcargo:: @ 8CC5CE8 - .incbin "graphics/pokemon/front_pics/magcargo_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Magcargo:: @ 8CC6030 - .incbin "graphics/pokemon/palettes/magcargo_palette.gbapal.lz" - - .align 2 -gMonBackPic_Magcargo:: @ 8CC6058 - .incbin "graphics/pokemon/back_pics/magcargo_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Magcargo:: @ 8CC6470 - .incbin "graphics/pokemon/palettes/magcargo_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Magcargo:: @ 8CC6498 - .incbin "graphics/pokemon/icons/magcargo_icon.4bpp" - - .align 2 -gMonFootprint_Magcargo:: @ 8CC6898 - .incbin "graphics/pokemon/footprints/magcargo_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Swinub:: @ 8CC68B8 - .incbin "graphics/pokemon/front_pics/swinub_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Swinub:: @ 8CC6AB4 - .incbin "graphics/pokemon/palettes/swinub_palette.gbapal.lz" - - .align 2 -gMonBackPic_Swinub:: @ 8CC6ADC - .incbin "graphics/pokemon/back_pics/swinub_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Swinub:: @ 8CC6D18 - .incbin "graphics/pokemon/palettes/swinub_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Swinub:: @ 8CC6D40 - .incbin "graphics/pokemon/icons/swinub_icon.4bpp" - - .align 2 -gMonFootprint_Swinub:: @ 8CC7140 - .incbin "graphics/pokemon/footprints/swinub_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Piloswine:: @ 8CC7160 - .incbin "graphics/pokemon/front_pics/piloswine_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Piloswine:: @ 8CC7488 - .incbin "graphics/pokemon/palettes/piloswine_palette.gbapal.lz" - - .align 2 -gMonBackPic_Piloswine:: @ 8CC74B0 - .incbin "graphics/pokemon/back_pics/piloswine_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Piloswine:: @ 8CC76FC - .incbin "graphics/pokemon/palettes/piloswine_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Piloswine:: @ 8CC7724 - .incbin "graphics/pokemon/icons/piloswine_icon.4bpp" - - .align 2 -gMonFootprint_Piloswine:: @ 8CC7B24 - .incbin "graphics/pokemon/footprints/piloswine_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Corsola:: @ 8CC7B44 - .incbin "graphics/pokemon/front_pics/corsola_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Corsola:: @ 8CC7E2C - .incbin "graphics/pokemon/palettes/corsola_palette.gbapal.lz" - - .align 2 -gMonBackPic_Corsola:: @ 8CC7E54 - .incbin "graphics/pokemon/back_pics/corsola_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Corsola:: @ 8CC8114 - .incbin "graphics/pokemon/palettes/corsola_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Corsola:: @ 8CC813C - .incbin "graphics/pokemon/icons/corsola_icon.4bpp" - - .align 2 -gMonFootprint_Corsola:: @ 8CC853C - .incbin "graphics/pokemon/footprints/corsola_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Remoraid:: @ 8CC855C - .incbin "graphics/pokemon/front_pics/remoraid_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Remoraid:: @ 8CC87C4 - .incbin "graphics/pokemon/palettes/remoraid_palette.gbapal.lz" - - .align 2 -gMonBackPic_Remoraid:: @ 8CC87EC - .incbin "graphics/pokemon/back_pics/remoraid_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Remoraid:: @ 8CC8B00 - .incbin "graphics/pokemon/palettes/remoraid_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Remoraid:: @ 8CC8B28 - .incbin "graphics/pokemon/icons/remoraid_icon.4bpp" - - .align 2 -gMonFootprint_Remoraid:: @ 8CC8F28 - .incbin "graphics/pokemon/footprints/remoraid_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Octillery:: @ 8CC8F48 - .incbin "graphics/pokemon/front_pics/octillery_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Octillery:: @ 8CC927C - .incbin "graphics/pokemon/palettes/octillery_palette.gbapal.lz" - - .align 2 -gMonBackPic_Octillery:: @ 8CC92A4 - .incbin "graphics/pokemon/back_pics/octillery_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Octillery:: @ 8CC955C - .incbin "graphics/pokemon/palettes/octillery_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Octillery:: @ 8CC9584 - .incbin "graphics/pokemon/icons/octillery_icon.4bpp" - - .align 2 -gMonFootprint_Octillery:: @ 8CC9984 - .incbin "graphics/pokemon/footprints/octillery_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Delibird:: @ 8CC99A4 - .incbin "graphics/pokemon/front_pics/delibird_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Delibird:: @ 8CC9D14 - .incbin "graphics/pokemon/palettes/delibird_palette.gbapal.lz" - - .align 2 -gMonBackPic_Delibird:: @ 8CC9D3C - .incbin "graphics/pokemon/back_pics/delibird_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Delibird:: @ 8CCA0FC - .incbin "graphics/pokemon/palettes/delibird_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Delibird:: @ 8CCA124 - .incbin "graphics/pokemon/icons/delibird_icon.4bpp" - - .align 2 -gMonFootprint_Delibird:: @ 8CCA524 - .incbin "graphics/pokemon/footprints/delibird_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Mantine:: @ 8CCA544 - .incbin "graphics/pokemon/front_pics/mantine_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Mantine:: @ 8CCA9E0 - .incbin "graphics/pokemon/palettes/mantine_palette.gbapal.lz" - - .align 2 -gMonBackPic_Mantine:: @ 8CCAA08 - .incbin "graphics/pokemon/back_pics/mantine_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Mantine:: @ 8CCACA8 - .incbin "graphics/pokemon/palettes/mantine_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Mantine:: @ 8CCACD0 - .incbin "graphics/pokemon/icons/mantine_icon.4bpp" - - .align 2 -gMonFootprint_Mantine:: @ 8CCB0D0 - .incbin "graphics/pokemon/footprints/mantine_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Skarmory:: @ 8CCB0F0 - .incbin "graphics/pokemon/front_pics/skarmory_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Skarmory:: @ 8CCB5D0 - .incbin "graphics/pokemon/palettes/skarmory_palette.gbapal.lz" - - .align 2 -gMonBackPic_Skarmory:: @ 8CCB5F8 - .incbin "graphics/pokemon/back_pics/skarmory_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Skarmory:: @ 8CCB8FC - .incbin "graphics/pokemon/palettes/skarmory_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Skarmory:: @ 8CCB924 - .incbin "graphics/pokemon/icons/skarmory_icon.4bpp" - - .align 2 -gMonFootprint_Skarmory:: @ 8CCBD24 - .incbin "graphics/pokemon/footprints/skarmory_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Houndour:: @ 8CCBD44 - .incbin "graphics/pokemon/front_pics/houndour_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Houndour:: @ 8CCBFFC - .incbin "graphics/pokemon/palettes/houndour_palette.gbapal.lz" - - .align 2 -gMonBackPic_Houndour:: @ 8CCC024 - .incbin "graphics/pokemon/back_pics/houndour_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Houndour:: @ 8CCC2A4 - .incbin "graphics/pokemon/palettes/houndour_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Houndour:: @ 8CCC2CC - .incbin "graphics/pokemon/icons/houndour_icon.4bpp" - - .align 2 -gMonFootprint_Houndour:: @ 8CCC6CC - .incbin "graphics/pokemon/footprints/houndour_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Houndoom:: @ 8CCC6EC - .incbin "graphics/pokemon/front_pics/houndoom_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Houndoom:: @ 8CCCAEC - .incbin "graphics/pokemon/palettes/houndoom_palette.gbapal.lz" - - .align 2 -gMonBackPic_Houndoom:: @ 8CCCB14 - .incbin "graphics/pokemon/back_pics/houndoom_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Houndoom:: @ 8CCCE38 - .incbin "graphics/pokemon/palettes/houndoom_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Houndoom:: @ 8CCCE60 - .incbin "graphics/pokemon/icons/houndoom_icon.4bpp" - - .align 2 -gMonFootprint_Houndoom:: @ 8CCD260 - .incbin "graphics/pokemon/footprints/houndoom_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Kingdra:: @ 8CCD280 - .incbin "graphics/pokemon/front_pics/kingdra_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Kingdra:: @ 8CCD6A0 - .incbin "graphics/pokemon/palettes/kingdra_palette.gbapal.lz" - - .align 2 -gMonBackPic_Kingdra:: @ 8CCD6C8 - .incbin "graphics/pokemon/back_pics/kingdra_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Kingdra:: @ 8CCDA7C - .incbin "graphics/pokemon/palettes/kingdra_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Kingdra:: @ 8CCDAA4 - .incbin "graphics/pokemon/icons/kingdra_icon.4bpp" - - .align 2 -gMonFootprint_Kingdra:: @ 8CCDEA4 - .incbin "graphics/pokemon/footprints/kingdra_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Phanpy:: @ 8CCDEC4 - .incbin "graphics/pokemon/front_pics/phanpy_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Phanpy:: @ 8CCE120 - .incbin "graphics/pokemon/palettes/phanpy_palette.gbapal.lz" - - .align 2 -gMonBackPic_Phanpy:: @ 8CCE148 - .incbin "graphics/pokemon/back_pics/phanpy_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Phanpy:: @ 8CCE40C - .incbin "graphics/pokemon/palettes/phanpy_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Phanpy:: @ 8CCE434 - .incbin "graphics/pokemon/icons/phanpy_icon.4bpp" - - .align 2 -gMonFootprint_Phanpy:: @ 8CCE834 - .incbin "graphics/pokemon/footprints/phanpy_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Donphan:: @ 8CCE854 - .incbin "graphics/pokemon/front_pics/donphan_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Donphan:: @ 8CCECC8 - .incbin "graphics/pokemon/palettes/donphan_palette.gbapal.lz" - - .align 2 -gMonBackPic_Donphan:: @ 8CCECF0 - .incbin "graphics/pokemon/back_pics/donphan_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Donphan:: @ 8CCEFEC - .incbin "graphics/pokemon/palettes/donphan_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Donphan:: @ 8CCF014 - .incbin "graphics/pokemon/icons/donphan_icon.4bpp" - - .align 2 -gMonFootprint_Donphan:: @ 8CCF414 - .incbin "graphics/pokemon/footprints/donphan_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Porygon2:: @ 8CCF434 - .incbin "graphics/pokemon/front_pics/porygon2_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Porygon2:: @ 8CCF6BC - .incbin "graphics/pokemon/palettes/porygon2_palette.gbapal.lz" - - .align 2 -gMonBackPic_Porygon2:: @ 8CCF6E4 - .incbin "graphics/pokemon/back_pics/porygon2_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Porygon2:: @ 8CCFA00 - .incbin "graphics/pokemon/palettes/porygon2_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Porygon2:: @ 8CCFA28 - .incbin "graphics/pokemon/icons/porygon2_icon.4bpp" - - .align 2 -gMonFootprint_Porygon2:: @ 8CCFE28 - .incbin "graphics/pokemon/footprints/porygon2_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Stantler:: @ 8CCFE48 - .incbin "graphics/pokemon/front_pics/stantler_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Stantler:: @ 8CD025C - .incbin "graphics/pokemon/palettes/stantler_palette.gbapal.lz" - - .align 2 -gMonBackPic_Stantler:: @ 8CD0284 - .incbin "graphics/pokemon/back_pics/stantler_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Stantler:: @ 8CD05D0 - .incbin "graphics/pokemon/palettes/stantler_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Stantler:: @ 8CD05F8 - .incbin "graphics/pokemon/icons/stantler_icon.4bpp" - - .align 2 -gMonFootprint_Stantler:: @ 8CD09F8 - .incbin "graphics/pokemon/footprints/stantler_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Smeargle:: @ 8CD0A18 - .incbin "graphics/pokemon/front_pics/smeargle_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Smeargle:: @ 8CD0DAC - .incbin "graphics/pokemon/palettes/smeargle_palette.gbapal.lz" - - .align 2 -gMonBackPic_Smeargle:: @ 8CD0DD4 - .incbin "graphics/pokemon/back_pics/smeargle_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Smeargle:: @ 8CD10F8 - .incbin "graphics/pokemon/palettes/smeargle_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Smeargle:: @ 8CD1120 - .incbin "graphics/pokemon/icons/smeargle_icon.4bpp" - - .align 2 -gMonFootprint_Smeargle:: @ 8CD1520 - .incbin "graphics/pokemon/footprints/smeargle_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Tyrogue:: @ 8CD1540 - .incbin "graphics/pokemon/front_pics/tyrogue_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Tyrogue:: @ 8CD17CC - .incbin "graphics/pokemon/palettes/tyrogue_palette.gbapal.lz" - - .align 2 -gMonBackPic_Tyrogue:: @ 8CD17F4 - .incbin "graphics/pokemon/back_pics/tyrogue_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Tyrogue:: @ 8CD1B10 - .incbin "graphics/pokemon/palettes/tyrogue_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Tyrogue:: @ 8CD1B38 - .incbin "graphics/pokemon/icons/tyrogue_icon.4bpp" - - .align 2 -gMonFootprint_Tyrogue:: @ 8CD1F38 - .incbin "graphics/pokemon/footprints/tyrogue_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Hitmontop:: @ 8CD1F58 - .incbin "graphics/pokemon/front_pics/hitmontop_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Hitmontop:: @ 8CD22E4 - .incbin "graphics/pokemon/palettes/hitmontop_palette.gbapal.lz" - - .align 2 -gMonBackPic_Hitmontop:: @ 8CD230C - .incbin "graphics/pokemon/back_pics/hitmontop_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Hitmontop:: @ 8CD2734 - .incbin "graphics/pokemon/palettes/hitmontop_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Hitmontop:: @ 8CD275C - .incbin "graphics/pokemon/icons/hitmontop_icon.4bpp" - - .align 2 -gMonFootprint_Hitmontop:: @ 8CD2B5C - .incbin "graphics/pokemon/footprints/hitmontop_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Smoochum:: @ 8CD2B7C - .incbin "graphics/pokemon/front_pics/smoochum_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Smoochum:: @ 8CD2DD4 - .incbin "graphics/pokemon/palettes/smoochum_palette.gbapal.lz" - - .align 2 -gMonBackPic_Smoochum:: @ 8CD2DFC - .incbin "graphics/pokemon/back_pics/smoochum_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Smoochum:: @ 8CD3074 - .incbin "graphics/pokemon/palettes/smoochum_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Smoochum:: @ 8CD309C - .incbin "graphics/pokemon/icons/smoochum_icon.4bpp" - - .align 2 -gMonFootprint_Smoochum:: @ 8CD349C - .incbin "graphics/pokemon/footprints/smoochum_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Elekid:: @ 8CD34BC - .incbin "graphics/pokemon/front_pics/elekid_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Elekid:: @ 8CD37C4 - .incbin "graphics/pokemon/palettes/elekid_palette.gbapal.lz" - - .align 2 -gMonBackPic_Elekid:: @ 8CD37EC - .incbin "graphics/pokemon/back_pics/elekid_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Elekid:: @ 8CD3B44 - .incbin "graphics/pokemon/palettes/elekid_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Elekid:: @ 8CD3B6C - .incbin "graphics/pokemon/icons/elekid_icon.4bpp" - - .align 2 -gMonFootprint_Elekid:: @ 8CD3F6C - .incbin "graphics/pokemon/footprints/elekid_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Magby:: @ 8CD3F8C - .incbin "graphics/pokemon/front_pics/magby_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Magby:: @ 8CD4210 - .incbin "graphics/pokemon/palettes/magby_palette.gbapal.lz" - - .align 2 -gMonBackPic_Magby:: @ 8CD4238 - .incbin "graphics/pokemon/back_pics/magby_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Magby:: @ 8CD44E4 - .incbin "graphics/pokemon/palettes/magby_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Magby:: @ 8CD450C - .incbin "graphics/pokemon/icons/magby_icon.4bpp" - - .align 2 -gMonFootprint_Magby:: @ 8CD490C - .incbin "graphics/pokemon/footprints/magby_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Miltank:: @ 8CD492C - .incbin "graphics/pokemon/front_pics/miltank_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Miltank:: @ 8CD4CDC - .incbin "graphics/pokemon/palettes/miltank_palette.gbapal.lz" - - .align 2 -gMonBackPic_Miltank:: @ 8CD4D04 - .incbin "graphics/pokemon/back_pics/miltank_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Miltank:: @ 8CD50A0 - .incbin "graphics/pokemon/palettes/miltank_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Miltank:: @ 8CD50C8 - .incbin "graphics/pokemon/icons/miltank_icon.4bpp" - - .align 2 -gMonFootprint_Miltank:: @ 8CD54C8 - .incbin "graphics/pokemon/footprints/miltank_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Blissey:: @ 8CD54E8 - .incbin "graphics/pokemon/front_pics/blissey_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Blissey:: @ 8CD58D0 - .incbin "graphics/pokemon/palettes/blissey_palette.gbapal.lz" - - .align 2 -gMonBackPic_Blissey:: @ 8CD58F8 - .incbin "graphics/pokemon/back_pics/blissey_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Blissey:: @ 8CD5BC4 - .incbin "graphics/pokemon/palettes/blissey_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Blissey:: @ 8CD5BEC - .incbin "graphics/pokemon/icons/blissey_icon.4bpp" - - .align 2 -gMonFootprint_Blissey:: @ 8CD5FEC - .incbin "graphics/pokemon/footprints/blissey_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Raikou:: @ 8CD600C - .incbin "graphics/pokemon/front_pics/raikou_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Raikou:: @ 8CD6588 - .incbin "graphics/pokemon/palettes/raikou_palette.gbapal.lz" - - .align 2 -gMonBackPic_Raikou:: @ 8CD65B0 - .incbin "graphics/pokemon/back_pics/raikou_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Raikou:: @ 8CD6958 - .incbin "graphics/pokemon/palettes/raikou_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Raikou:: @ 8CD6980 - .incbin "graphics/pokemon/icons/raikou_icon.4bpp" - - .align 2 -gMonFootprint_Raikou:: @ 8CD6D80 - .incbin "graphics/pokemon/footprints/raikou_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Entei:: @ 8CD6DA0 - .incbin "graphics/pokemon/front_pics/entei_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Entei:: @ 8CD739C - .incbin "graphics/pokemon/palettes/entei_palette.gbapal.lz" - - .align 2 -gMonBackPic_Entei:: @ 8CD73C4 - .incbin "graphics/pokemon/back_pics/entei_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Entei:: @ 8CD77E8 - .incbin "graphics/pokemon/palettes/entei_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Entei:: @ 8CD7810 - .incbin "graphics/pokemon/icons/entei_icon.4bpp" - - .align 2 -gMonFootprint_Entei:: @ 8CD7C10 - .incbin "graphics/pokemon/footprints/entei_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Suicune:: @ 8CD7C30 - .incbin "graphics/pokemon/front_pics/suicune_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Suicune:: @ 8CD81B4 - .incbin "graphics/pokemon/palettes/suicune_palette.gbapal.lz" - - .align 2 -gMonBackPic_Suicune:: @ 8CD81DC - .incbin "graphics/pokemon/back_pics/suicune_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Suicune:: @ 8CD86B8 - .incbin "graphics/pokemon/palettes/suicune_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Suicune:: @ 8CD86E0 - .incbin "graphics/pokemon/icons/suicune_icon.4bpp" - - .align 2 -gMonFootprint_Suicune:: @ 8CD8AE0 - .incbin "graphics/pokemon/footprints/suicune_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Larvitar:: @ 8CD8B00 - .incbin "graphics/pokemon/front_pics/larvitar_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Larvitar:: @ 8CD8D5C - .incbin "graphics/pokemon/palettes/larvitar_palette.gbapal.lz" - - .align 2 -gMonBackPic_Larvitar:: @ 8CD8D84 - .incbin "graphics/pokemon/back_pics/larvitar_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Larvitar:: @ 8CD9030 - .incbin "graphics/pokemon/palettes/larvitar_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Larvitar:: @ 8CD9058 - .incbin "graphics/pokemon/icons/larvitar_icon.4bpp" - - .align 2 -gMonFootprint_Larvitar:: @ 8CD9458 - .incbin "graphics/pokemon/footprints/larvitar_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Pupitar:: @ 8CD9478 - .incbin "graphics/pokemon/front_pics/pupitar_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Pupitar:: @ 8CD9768 - .incbin "graphics/pokemon/palettes/pupitar_palette.gbapal.lz" - - .align 2 -gMonBackPic_Pupitar:: @ 8CD9790 - .incbin "graphics/pokemon/back_pics/pupitar_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Pupitar:: @ 8CD9AC8 - .incbin "graphics/pokemon/palettes/pupitar_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Pupitar:: @ 8CD9AF0 - .incbin "graphics/pokemon/icons/pupitar_icon.4bpp" - - .align 2 -gMonFootprint_Pupitar:: @ 8CD9EF0 - .incbin "graphics/pokemon/footprints/pupitar_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Tyranitar:: @ 8CD9F10 - .incbin "graphics/pokemon/front_pics/tyranitar_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Tyranitar:: @ 8CDA44C - .incbin "graphics/pokemon/palettes/tyranitar_palette.gbapal.lz" - - .align 2 -gMonBackPic_Tyranitar:: @ 8CDA474 - .incbin "graphics/pokemon/back_pics/tyranitar_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Tyranitar:: @ 8CDA860 - .incbin "graphics/pokemon/palettes/tyranitar_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Tyranitar:: @ 8CDA888 - .incbin "graphics/pokemon/icons/tyranitar_icon.4bpp" - - .align 2 -gMonFootprint_Tyranitar:: @ 8CDAC88 - .incbin "graphics/pokemon/footprints/tyranitar_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Lugia:: @ 8CDACA8 - .incbin "graphics/pokemon/front_pics/lugia_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Lugia:: @ 8CDB16C - .incbin "graphics/pokemon/palettes/lugia_palette.gbapal.lz" - - .align 2 -gMonBackPic_Lugia:: @ 8CDB194 - .incbin "graphics/pokemon/back_pics/lugia_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Lugia:: @ 8CDB568 - .incbin "graphics/pokemon/palettes/lugia_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Lugia:: @ 8CDB590 - .incbin "graphics/pokemon/icons/lugia_icon.4bpp" - - .align 2 -gMonFootprint_Lugia:: @ 8CDB990 - .incbin "graphics/pokemon/footprints/lugia_footprint.1bpp" - - .align 2 -gMonStillFrontPic_HoOh:: @ 8CDB9B0 - .incbin "graphics/pokemon/front_pics/ho_oh_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_HoOh:: @ 8CDC004 - .incbin "graphics/pokemon/palettes/ho_oh_palette.gbapal.lz" - - .align 2 -gMonBackPic_HoOh:: @ 8CDC02C - .incbin "graphics/pokemon/back_pics/ho_oh_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_HoOh:: @ 8CDC43C - .incbin "graphics/pokemon/palettes/ho_oh_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_HoOh:: @ 8CDC464 - .incbin "graphics/pokemon/icons/ho_oh_icon.4bpp" - - .align 2 -gMonFootprint_HoOh:: @ 8CDC864 - .incbin "graphics/pokemon/footprints/ho_oh_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Celebi:: @ 8CDC884 - .incbin "graphics/pokemon/front_pics/celebi_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Celebi:: @ 8CDCAFC - .incbin "graphics/pokemon/palettes/celebi_palette.gbapal.lz" - - .align 2 -gMonBackPic_Celebi:: @ 8CDCB24 - .incbin "graphics/pokemon/back_pics/celebi_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Celebi:: @ 8CDCED0 - .incbin "graphics/pokemon/palettes/celebi_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Celebi:: @ 8CDCEF8 - .incbin "graphics/pokemon/icons/celebi_icon.4bpp" - - .align 2 -gMonFootprint_Celebi:: @ 8CDD2F8 - .incbin "graphics/pokemon/footprints/celebi_footprint.1bpp" - - .align 2 -gMonStillFrontPic_DoubleQuestionMark:: @ 8CDD318 - .incbin "graphics/pokemon/front_pics/double_question_mark_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_DoubleQuestionMark:: @ 8CDD498 - .incbin "graphics/pokemon/palettes/double_question_mark_palette.gbapal.lz" - - .align 2 -gMonBackPic_DoubleQuestionMark:: @ 8CDD4AC - .incbin "graphics/pokemon/back_pics/double_question_mark_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_DoubleQuestionMark:: @ 8CDD630 - .incbin "graphics/pokemon/palettes/double_question_mark_shiny_palette.gbapal.lz" - - .align 2 -gMonStillFrontPic_Treecko:: @ 8CDD644 - .incbin "graphics/pokemon/front_pics/treecko_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Treecko:: @ 8CDD94C - .incbin "graphics/pokemon/palettes/treecko_palette.gbapal.lz" - - .align 2 -gMonBackPic_Treecko:: @ 8CDD974 - .incbin "graphics/pokemon/back_pics/treecko_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Treecko:: @ 8CDDC74 - .incbin "graphics/pokemon/palettes/treecko_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Treecko:: @ 8CDDC9C - .incbin "graphics/pokemon/icons/treecko_icon.4bpp" - - .align 2 -gMonFootprint_Treecko:: @ 8CDE09C - .incbin "graphics/pokemon/footprints/treecko_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Grovyle:: @ 8CDE0BC - .incbin "graphics/pokemon/front_pics/grovyle_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Grovyle:: @ 8CDE548 - .incbin "graphics/pokemon/palettes/grovyle_palette.gbapal.lz" - - .align 2 -gMonBackPic_Grovyle:: @ 8CDE570 - .incbin "graphics/pokemon/back_pics/grovyle_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Grovyle:: @ 8CDE8AC - .incbin "graphics/pokemon/palettes/grovyle_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Grovyle:: @ 8CDE8D4 - .incbin "graphics/pokemon/icons/grovyle_icon.4bpp" - - .align 2 -gMonFootprint_Grovyle:: @ 8CDECD4 - .incbin "graphics/pokemon/footprints/grovyle_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Sceptile:: @ 8CDECF4 - .incbin "graphics/pokemon/front_pics/sceptile_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Sceptile:: @ 8CDF1F8 - .incbin "graphics/pokemon/palettes/sceptile_palette.gbapal.lz" - - .align 2 -gMonBackPic_Sceptile:: @ 8CDF220 - .incbin "graphics/pokemon/back_pics/sceptile_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Sceptile:: @ 8CDF61C - .incbin "graphics/pokemon/palettes/sceptile_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Sceptile:: @ 8CDF644 - .incbin "graphics/pokemon/icons/sceptile_icon.4bpp" - - .align 2 -gMonFootprint_Sceptile:: @ 8CDFA44 - .incbin "graphics/pokemon/footprints/sceptile_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Torchic:: @ 8CDFA64 - .incbin "graphics/pokemon/front_pics/torchic_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Torchic:: @ 8CDFD00 - .incbin "graphics/pokemon/palettes/torchic_palette.gbapal.lz" - - .align 2 -gMonBackPic_Torchic:: @ 8CDFD28 - .incbin "graphics/pokemon/back_pics/torchic_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Torchic:: @ 8CE0000 - .incbin "graphics/pokemon/palettes/torchic_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Torchic:: @ 8CE0028 - .incbin "graphics/pokemon/icons/torchic_icon.4bpp" - - .align 2 -gMonFootprint_Torchic:: @ 8CE0428 - .incbin "graphics/pokemon/footprints/torchic_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Combusken:: @ 8CE0448 - .incbin "graphics/pokemon/front_pics/combusken_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Combusken:: @ 8CE0834 - .incbin "graphics/pokemon/palettes/combusken_palette.gbapal.lz" - - .align 2 -gMonBackPic_Combusken:: @ 8CE085C - .incbin "graphics/pokemon/back_pics/combusken_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Combusken:: @ 8CE0C2C - .incbin "graphics/pokemon/palettes/combusken_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Combusken:: @ 8CE0C54 - .incbin "graphics/pokemon/icons/combusken_icon.4bpp" - - .align 2 -gMonFootprint_Combusken:: @ 8CE1054 - .incbin "graphics/pokemon/footprints/combusken_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Blaziken:: @ 8CE1074 - .incbin "graphics/pokemon/front_pics/blaziken_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Blaziken:: @ 8CE17C4 - .incbin "graphics/pokemon/palettes/blaziken_palette.gbapal.lz" - - .align 2 -gMonBackPic_Blaziken:: @ 8CE17EC - .incbin "graphics/pokemon/back_pics/blaziken_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Blaziken:: @ 8CE1BC8 - .incbin "graphics/pokemon/palettes/blaziken_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Blaziken:: @ 8CE1BF0 - .incbin "graphics/pokemon/icons/blaziken_icon.4bpp" - - .align 2 -gMonFootprint_Blaziken:: @ 8CE1FF0 - .incbin "graphics/pokemon/footprints/blaziken_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Mudkip:: @ 8CE2010 - .incbin "graphics/pokemon/front_pics/mudkip_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Mudkip:: @ 8CE22C8 - .incbin "graphics/pokemon/palettes/mudkip_palette.gbapal.lz" - - .align 2 -gMonBackPic_Mudkip:: @ 8CE22F0 - .incbin "graphics/pokemon/back_pics/mudkip_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Mudkip:: @ 8CE25D0 - .incbin "graphics/pokemon/palettes/mudkip_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Mudkip:: @ 8CE25F8 - .incbin "graphics/pokemon/icons/mudkip_icon.4bpp" - - .align 2 -gMonFootprint_Mudkip:: @ 8CE29F8 - .incbin "graphics/pokemon/footprints/mudkip_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Marshtomp:: @ 8CE2A18 - .incbin "graphics/pokemon/front_pics/marshtomp_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Marshtomp:: @ 8CE3078 - .incbin "graphics/pokemon/palettes/marshtomp_palette.gbapal.lz" - - .align 2 -gMonBackPic_Marshtomp:: @ 8CE30A0 - .incbin "graphics/pokemon/back_pics/marshtomp_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Marshtomp:: @ 8CE3450 - .incbin "graphics/pokemon/palettes/marshtomp_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Marshtomp:: @ 8CE3478 - .incbin "graphics/pokemon/icons/marshtomp_icon.4bpp" - - .align 2 -gMonFootprint_Marshtomp:: @ 8CE3878 - .incbin "graphics/pokemon/footprints/marshtomp_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Swampert:: @ 8CE3898 - .incbin "graphics/pokemon/front_pics/swampert_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Swampert:: @ 8CE3E14 - .incbin "graphics/pokemon/palettes/swampert_palette.gbapal.lz" - - .align 2 -gMonBackPic_Swampert:: @ 8CE3E3C - .incbin "graphics/pokemon/back_pics/swampert_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Swampert:: @ 8CE41F0 - .incbin "graphics/pokemon/palettes/swampert_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Swampert:: @ 8CE4218 - .incbin "graphics/pokemon/icons/swampert_icon.4bpp" - - .align 2 -gMonFootprint_Swampert:: @ 8CE4618 - .incbin "graphics/pokemon/footprints/swampert_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Poochyena:: @ 8CE4638 - .incbin "graphics/pokemon/front_pics/poochyena_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Poochyena:: @ 8CE4BDC - .incbin "graphics/pokemon/palettes/poochyena_palette.gbapal.lz" - - .align 2 -gMonBackPic_Poochyena:: @ 8CE4C04 - .incbin "graphics/pokemon/back_pics/poochyena_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Poochyena:: @ 8CE4F30 - .incbin "graphics/pokemon/palettes/poochyena_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Poochyena:: @ 8CE4F58 - .incbin "graphics/pokemon/icons/poochyena_icon.4bpp" - - .align 2 -gMonFootprint_Poochyena:: @ 8CE5358 - .incbin "graphics/pokemon/footprints/poochyena_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Mightyena:: @ 8CE5378 - .incbin "graphics/pokemon/front_pics/mightyena_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Mightyena:: @ 8CE57B0 - .incbin "graphics/pokemon/palettes/mightyena_palette.gbapal.lz" - - .align 2 -gMonBackPic_Mightyena:: @ 8CE57D8 - .incbin "graphics/pokemon/back_pics/mightyena_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Mightyena:: @ 8CE5B50 - .incbin "graphics/pokemon/palettes/mightyena_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Mightyena:: @ 8CE5B78 - .incbin "graphics/pokemon/icons/mightyena_icon.4bpp" - - .align 2 -gMonFootprint_Mightyena:: @ 8CE5F78 - .incbin "graphics/pokemon/footprints/mightyena_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Zigzagoon:: @ 8CE5F98 - .incbin "graphics/pokemon/front_pics/zigzagoon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Zigzagoon:: @ 8CE6368 - .incbin "graphics/pokemon/palettes/zigzagoon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Zigzagoon:: @ 8CE6390 - .incbin "graphics/pokemon/back_pics/zigzagoon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Zigzagoon:: @ 8CE66D0 - .incbin "graphics/pokemon/palettes/zigzagoon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Zigzagoon:: @ 8CE66F8 - .incbin "graphics/pokemon/icons/zigzagoon_icon.4bpp" - - .align 2 -gMonFootprint_Zigzagoon:: @ 8CE6AF8 - .incbin "graphics/pokemon/footprints/zigzagoon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Linoone:: @ 8CE6B18 - .incbin "graphics/pokemon/front_pics/linoone_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Linoone:: @ 8CE6E88 - .incbin "graphics/pokemon/palettes/linoone_palette.gbapal.lz" - - .align 2 -gMonBackPic_Linoone:: @ 8CE6EB0 - .incbin "graphics/pokemon/back_pics/linoone_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Linoone:: @ 8CE7184 - .incbin "graphics/pokemon/palettes/linoone_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Linoone:: @ 8CE71AC - .incbin "graphics/pokemon/icons/linoone_icon.4bpp" - - .align 2 -gMonFootprint_Linoone:: @ 8CE75AC - .incbin "graphics/pokemon/footprints/linoone_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Wurmple:: @ 8CE75CC - .incbin "graphics/pokemon/front_pics/wurmple_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Wurmple:: @ 8CE7854 - .incbin "graphics/pokemon/palettes/wurmple_palette.gbapal.lz" - - .align 2 -gMonBackPic_Wurmple:: @ 8CE787C - .incbin "graphics/pokemon/back_pics/wurmple_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Wurmple:: @ 8CE7AC8 - .incbin "graphics/pokemon/palettes/wurmple_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Wurmple:: @ 8CE7AF0 - .incbin "graphics/pokemon/icons/wurmple_icon.4bpp" - - .align 2 -gMonFootprint_Wurmple:: @ 8CE7EF0 - .incbin "graphics/pokemon/footprints/wurmple_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Silcoon:: @ 8CE7F10 - .incbin "graphics/pokemon/front_pics/silcoon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Silcoon:: @ 8CE8190 - .incbin "graphics/pokemon/palettes/silcoon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Silcoon:: @ 8CE81B8 - .incbin "graphics/pokemon/back_pics/silcoon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Silcoon:: @ 8CE83D4 - .incbin "graphics/pokemon/palettes/silcoon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Silcoon:: @ 8CE83FC - .incbin "graphics/pokemon/icons/silcoon_icon.4bpp" - - .align 2 -gMonFootprint_Silcoon:: @ 8CE87FC - .incbin "graphics/pokemon/footprints/silcoon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Beautifly:: @ 8CE881C - .incbin "graphics/pokemon/front_pics/beautifly_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Beautifly:: @ 8CE8B74 - .incbin "graphics/pokemon/palettes/beautifly_palette.gbapal.lz" - - .align 2 -gMonBackPic_Beautifly:: @ 8CE8B9C - .incbin "graphics/pokemon/back_pics/beautifly_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Beautifly:: @ 8CE8F4C - .incbin "graphics/pokemon/palettes/beautifly_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Beautifly:: @ 8CE8F74 - .incbin "graphics/pokemon/icons/beautifly_icon.4bpp" - - .align 2 -gMonFootprint_Beautifly:: @ 8CE9374 - .incbin "graphics/pokemon/footprints/beautifly_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Cascoon:: @ 8CE9394 - .incbin "graphics/pokemon/front_pics/cascoon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Cascoon:: @ 8CE9600 - .incbin "graphics/pokemon/palettes/cascoon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Cascoon:: @ 8CE9628 - .incbin "graphics/pokemon/back_pics/cascoon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Cascoon:: @ 8CE9838 - .incbin "graphics/pokemon/palettes/cascoon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Cascoon:: @ 8CE9860 - .incbin "graphics/pokemon/icons/cascoon_icon.4bpp" - - .align 2 -gMonFootprint_Cascoon:: @ 8CE9C60 - .incbin "graphics/pokemon/footprints/cascoon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Dustox:: @ 8CE9C80 - .incbin "graphics/pokemon/front_pics/dustox_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Dustox:: @ 8CE9FE8 - .incbin "graphics/pokemon/palettes/dustox_palette.gbapal.lz" - - .align 2 -gMonBackPic_Dustox:: @ 8CEA010 - .incbin "graphics/pokemon/back_pics/dustox_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Dustox:: @ 8CEA268 - .incbin "graphics/pokemon/palettes/dustox_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Dustox:: @ 8CEA290 - .incbin "graphics/pokemon/icons/dustox_icon.4bpp" - - .align 2 -gMonFootprint_Dustox:: @ 8CEA690 - .incbin "graphics/pokemon/footprints/dustox_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Lotad:: @ 8CEA6B0 - .incbin "graphics/pokemon/front_pics/lotad_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Lotad:: @ 8CEA910 - .incbin "graphics/pokemon/palettes/lotad_palette.gbapal.lz" - - .align 2 -gMonBackPic_Lotad:: @ 8CEA938 - .incbin "graphics/pokemon/back_pics/lotad_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Lotad:: @ 8CEAC20 - .incbin "graphics/pokemon/palettes/lotad_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Lotad:: @ 8CEAC48 - .incbin "graphics/pokemon/icons/lotad_icon.4bpp" - - .align 2 -gMonFootprint_Lotad:: @ 8CEB048 - .incbin "graphics/pokemon/footprints/lotad_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Lombre:: @ 8CEB068 - .incbin "graphics/pokemon/front_pics/lombre_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Lombre:: @ 8CEB380 - .incbin "graphics/pokemon/palettes/lombre_palette.gbapal.lz" - - .align 2 -gMonBackPic_Lombre:: @ 8CEB3A8 - .incbin "graphics/pokemon/back_pics/lombre_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Lombre:: @ 8CEB6A4 - .incbin "graphics/pokemon/palettes/lombre_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Lombre:: @ 8CEB6CC - .incbin "graphics/pokemon/icons/lombre_icon.4bpp" - - .align 2 -gMonFootprint_Lombre:: @ 8CEBACC - .incbin "graphics/pokemon/footprints/lombre_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Ludicolo:: @ 8CEBAEC - .incbin "graphics/pokemon/front_pics/ludicolo_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Ludicolo:: @ 8CEBFD0 - .incbin "graphics/pokemon/palettes/ludicolo_palette.gbapal.lz" - - .align 2 -gMonBackPic_Ludicolo:: @ 8CEBFF8 - .incbin "graphics/pokemon/back_pics/ludicolo_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Ludicolo:: @ 8CEC2F4 - .incbin "graphics/pokemon/palettes/ludicolo_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Ludicolo:: @ 8CEC31C - .incbin "graphics/pokemon/icons/ludicolo_icon.4bpp" - - .align 2 -gMonFootprint_Ludicolo:: @ 8CEC71C - .incbin "graphics/pokemon/footprints/ludicolo_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Seedot:: @ 8CEC73C - .incbin "graphics/pokemon/front_pics/seedot_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Seedot:: @ 8CEC9D0 - .incbin "graphics/pokemon/palettes/seedot_palette.gbapal.lz" - - .align 2 -gMonBackPic_Seedot:: @ 8CEC9F8 - .incbin "graphics/pokemon/back_pics/seedot_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Seedot:: @ 8CECCD8 - .incbin "graphics/pokemon/palettes/seedot_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Seedot:: @ 8CECD00 - .incbin "graphics/pokemon/icons/seedot_icon.4bpp" - - .align 2 -gMonFootprint_Seedot:: @ 8CED100 - .incbin "graphics/pokemon/footprints/seedot_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Nuzleaf:: @ 8CED120 - .incbin "graphics/pokemon/front_pics/nuzleaf_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Nuzleaf:: @ 8CED40C - .incbin "graphics/pokemon/palettes/nuzleaf_palette.gbapal.lz" - - .align 2 -gMonBackPic_Nuzleaf:: @ 8CED434 - .incbin "graphics/pokemon/back_pics/nuzleaf_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Nuzleaf:: @ 8CED6FC - .incbin "graphics/pokemon/palettes/nuzleaf_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Nuzleaf:: @ 8CED724 - .incbin "graphics/pokemon/icons/nuzleaf_icon.4bpp" - - .align 2 -gMonFootprint_Nuzleaf:: @ 8CEDB24 - .incbin "graphics/pokemon/footprints/nuzleaf_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Shiftry:: @ 8CEDB44 - .incbin "graphics/pokemon/front_pics/shiftry_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Shiftry:: @ 8CEE000 - .incbin "graphics/pokemon/palettes/shiftry_palette.gbapal.lz" - - .align 2 -gMonBackPic_Shiftry:: @ 8CEE028 - .incbin "graphics/pokemon/back_pics/shiftry_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Shiftry:: @ 8CEE2EC - .incbin "graphics/pokemon/palettes/shiftry_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Shiftry:: @ 8CEE314 - .incbin "graphics/pokemon/icons/shiftry_icon.4bpp" - - .align 2 -gMonFootprint_Shiftry:: @ 8CEE714 - .incbin "graphics/pokemon/footprints/shiftry_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Nincada:: @ 8CEE734 - .incbin "graphics/pokemon/front_pics/nincada_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Nincada:: @ 8CEE9D4 - .incbin "graphics/pokemon/palettes/nincada_palette.gbapal.lz" - - .align 2 -gMonBackPic_Nincada:: @ 8CEE9FC - .incbin "graphics/pokemon/back_pics/nincada_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Nincada:: @ 8CEECB4 - .incbin "graphics/pokemon/palettes/nincada_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Nincada:: @ 8CEECDC - .incbin "graphics/pokemon/icons/nincada_icon.4bpp" - - .align 2 -gMonFootprint_Nincada:: @ 8CEF0DC - .incbin "graphics/pokemon/footprints/nincada_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Ninjask:: @ 8CEF0FC - .incbin "graphics/pokemon/front_pics/ninjask_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Ninjask:: @ 8CEF46C - .incbin "graphics/pokemon/palettes/ninjask_palette.gbapal.lz" - - .align 2 -gMonBackPic_Ninjask:: @ 8CEF494 - .incbin "graphics/pokemon/back_pics/ninjask_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Ninjask:: @ 8CEF860 - .incbin "graphics/pokemon/palettes/ninjask_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Ninjask:: @ 8CEF888 - .incbin "graphics/pokemon/icons/ninjask_icon.4bpp" - - .align 2 -gMonFootprint_Ninjask:: @ 8CEFC88 - .incbin "graphics/pokemon/footprints/ninjask_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Shedinja:: @ 8CEFCA8 - .incbin "graphics/pokemon/front_pics/shedinja_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Shedinja:: @ 8CEFFC8 - .incbin "graphics/pokemon/palettes/shedinja_palette.gbapal.lz" - - .align 2 -gMonBackPic_Shedinja:: @ 8CEFFF0 - .incbin "graphics/pokemon/back_pics/shedinja_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Shedinja:: @ 8CF0390 - .incbin "graphics/pokemon/palettes/shedinja_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Shedinja:: @ 8CF03B8 - .incbin "graphics/pokemon/icons/shedinja_icon.4bpp" - - .align 2 -gMonFootprint_Shedinja:: @ 8CF07B8 - .incbin "graphics/pokemon/footprints/shedinja_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Taillow:: @ 8CF07D8 - .incbin "graphics/pokemon/front_pics/taillow_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Taillow:: @ 8CF0A30 - .incbin "graphics/pokemon/palettes/taillow_palette.gbapal.lz" - - .align 2 -gMonBackPic_Taillow:: @ 8CF0A58 - .incbin "graphics/pokemon/back_pics/taillow_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Taillow:: @ 8CF0C78 - .incbin "graphics/pokemon/palettes/taillow_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Taillow:: @ 8CF0CA0 - .incbin "graphics/pokemon/icons/taillow_icon.4bpp" - - .align 2 -gMonFootprint_Taillow:: @ 8CF10A0 - .incbin "graphics/pokemon/footprints/taillow_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Swellow:: @ 8CF10C0 - .incbin "graphics/pokemon/front_pics/swellow_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Swellow:: @ 8CF1484 - .incbin "graphics/pokemon/palettes/swellow_palette.gbapal.lz" - - .align 2 -gMonBackPic_Swellow:: @ 8CF14AC - .incbin "graphics/pokemon/back_pics/swellow_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Swellow:: @ 8CF17E4 - .incbin "graphics/pokemon/palettes/swellow_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Swellow:: @ 8CF180C - .incbin "graphics/pokemon/icons/swellow_icon.4bpp" - - .align 2 -gMonFootprint_Swellow:: @ 8CF1C0C - .incbin "graphics/pokemon/footprints/swellow_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Shroomish:: @ 8CF1C2C - .incbin "graphics/pokemon/front_pics/shroomish_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Shroomish:: @ 8CF1E94 - .incbin "graphics/pokemon/palettes/shroomish_palette.gbapal.lz" - - .align 2 -gMonBackPic_Shroomish:: @ 8CF1EBC - .incbin "graphics/pokemon/back_pics/shroomish_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Shroomish:: @ 8CF219C - .incbin "graphics/pokemon/palettes/shroomish_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Shroomish:: @ 8CF21C4 - .incbin "graphics/pokemon/icons/shroomish_icon.4bpp" - - .align 2 -gMonFootprint_Shroomish:: @ 8CF25C4 - .incbin "graphics/pokemon/footprints/shroomish_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Breloom:: @ 8CF25E4 - .incbin "graphics/pokemon/front_pics/breloom_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Breloom:: @ 8CF29CC - .incbin "graphics/pokemon/palettes/breloom_palette.gbapal.lz" - - .align 2 -gMonBackPic_Breloom:: @ 8CF29F4 - .incbin "graphics/pokemon/back_pics/breloom_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Breloom:: @ 8CF2DD4 - .incbin "graphics/pokemon/palettes/breloom_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Breloom:: @ 8CF2DFC - .incbin "graphics/pokemon/icons/breloom_icon.4bpp" - - .align 2 -gMonFootprint_Breloom:: @ 8CF31FC - .incbin "graphics/pokemon/footprints/breloom_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Spinda:: @ 8CF321C - .incbin "graphics/pokemon/front_pics/spinda_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Spinda:: @ 8CF3510 - .incbin "graphics/pokemon/palettes/spinda_palette.gbapal.lz" - - .align 2 -gMonBackPic_Spinda:: @ 8CF3538 - .incbin "graphics/pokemon/back_pics/spinda_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Spinda:: @ 8CF3874 - .incbin "graphics/pokemon/palettes/spinda_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Spinda:: @ 8CF389C - .incbin "graphics/pokemon/icons/spinda_icon.4bpp" - - .align 2 -gMonFootprint_Spinda:: @ 8CF3C9C - .incbin "graphics/pokemon/footprints/spinda_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Wingull:: @ 8CF3CBC - .incbin "graphics/pokemon/front_pics/wingull_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Wingull:: @ 8CF3EF8 - .incbin "graphics/pokemon/palettes/wingull_palette.gbapal.lz" - - .align 2 -gMonBackPic_Wingull:: @ 8CF3F20 - .incbin "graphics/pokemon/back_pics/wingull_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Wingull:: @ 8CF4270 - .incbin "graphics/pokemon/palettes/wingull_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Wingull:: @ 8CF4298 - .incbin "graphics/pokemon/icons/wingull_icon.4bpp" - - .align 2 -gMonFootprint_Wingull:: @ 8CF4698 - .incbin "graphics/pokemon/footprints/wingull_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Pelipper:: @ 8CF46B8 - .incbin "graphics/pokemon/front_pics/pelipper_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Pelipper:: @ 8CF4A50 - .incbin "graphics/pokemon/palettes/pelipper_palette.gbapal.lz" - - .align 2 -gMonBackPic_Pelipper:: @ 8CF4A78 - .incbin "graphics/pokemon/back_pics/pelipper_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Pelipper:: @ 8CF4DF8 - .incbin "graphics/pokemon/palettes/pelipper_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Pelipper:: @ 8CF4E20 - .incbin "graphics/pokemon/icons/pelipper_icon.4bpp" - - .align 2 -gMonFootprint_Pelipper:: @ 8CF5220 - .incbin "graphics/pokemon/footprints/pelipper_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Surskit:: @ 8CF5240 - .incbin "graphics/pokemon/front_pics/surskit_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Surskit:: @ 8CF544C - .incbin "graphics/pokemon/palettes/surskit_palette.gbapal.lz" - - .align 2 -gMonBackPic_Surskit:: @ 8CF5474 - .incbin "graphics/pokemon/back_pics/surskit_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Surskit:: @ 8CF56AC - .incbin "graphics/pokemon/palettes/surskit_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Surskit:: @ 8CF56D4 - .incbin "graphics/pokemon/icons/surskit_icon.4bpp" - - .align 2 -gMonFootprint_Surskit:: @ 8CF5AD4 - .incbin "graphics/pokemon/footprints/surskit_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Masquerain:: @ 8CF5AF4 - .incbin "graphics/pokemon/front_pics/masquerain_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Masquerain:: @ 8CF5E90 - .incbin "graphics/pokemon/palettes/masquerain_palette.gbapal.lz" - - .align 2 -gMonBackPic_Masquerain:: @ 8CF5EB8 - .incbin "graphics/pokemon/back_pics/masquerain_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Masquerain:: @ 8CF6210 - .incbin "graphics/pokemon/palettes/masquerain_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Masquerain:: @ 8CF6238 - .incbin "graphics/pokemon/icons/masquerain_icon.4bpp" - - .align 2 -gMonFootprint_Masquerain:: @ 8CF6638 - .incbin "graphics/pokemon/footprints/masquerain_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Wailmer:: @ 8CF6658 - .incbin "graphics/pokemon/front_pics/wailmer_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Wailmer:: @ 8CF6938 - .incbin "graphics/pokemon/palettes/wailmer_palette.gbapal.lz" - - .align 2 -gMonBackPic_Wailmer:: @ 8CF6960 - .incbin "graphics/pokemon/back_pics/wailmer_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Wailmer:: @ 8CF6B44 - .incbin "graphics/pokemon/palettes/wailmer_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Wailmer:: @ 8CF6B6C - .incbin "graphics/pokemon/icons/wailmer_icon.4bpp" - - .align 2 -gMonFootprint_Wailmer:: @ 8CF6F6C - .incbin "graphics/pokemon/footprints/wailmer_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Wailord:: @ 8CF6F8C - .incbin "graphics/pokemon/front_pics/wailord_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Wailord:: @ 8CF7350 - .incbin "graphics/pokemon/palettes/wailord_palette.gbapal.lz" - - .align 2 -gMonBackPic_Wailord:: @ 8CF7378 - .incbin "graphics/pokemon/back_pics/wailord_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Wailord:: @ 8CF7590 - .incbin "graphics/pokemon/palettes/wailord_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Wailord:: @ 8CF75B8 - .incbin "graphics/pokemon/icons/wailord_icon.4bpp" - - .align 2 -gMonFootprint_Wailord:: @ 8CF79B8 - .incbin "graphics/pokemon/footprints/wailord_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Skitty:: @ 8CF79D8 - .incbin "graphics/pokemon/front_pics/skitty_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Skitty:: @ 8CF7CD8 - .incbin "graphics/pokemon/palettes/skitty_palette.gbapal.lz" - - .align 2 -gMonBackPic_Skitty:: @ 8CF7D00 - .incbin "graphics/pokemon/back_pics/skitty_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Skitty:: @ 8CF8048 - .incbin "graphics/pokemon/palettes/skitty_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Skitty:: @ 8CF8070 - .incbin "graphics/pokemon/icons/skitty_icon.4bpp" - - .align 2 -gMonFootprint_Skitty:: @ 8CF8470 - .incbin "graphics/pokemon/footprints/skitty_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Delcatty:: @ 8CF8490 - .incbin "graphics/pokemon/front_pics/delcatty_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Delcatty:: @ 8CF881C - .incbin "graphics/pokemon/palettes/delcatty_palette.gbapal.lz" - - .align 2 -gMonBackPic_Delcatty:: @ 8CF8844 - .incbin "graphics/pokemon/back_pics/delcatty_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Delcatty:: @ 8CF8BE0 - .incbin "graphics/pokemon/palettes/delcatty_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Delcatty:: @ 8CF8C08 - .incbin "graphics/pokemon/icons/delcatty_icon.4bpp" - - .align 2 -gMonFootprint_Delcatty:: @ 8CF9008 - .incbin "graphics/pokemon/footprints/delcatty_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Kecleon:: @ 8CF9028 - .incbin "graphics/pokemon/front_pics/kecleon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Kecleon:: @ 8CF93A8 - .incbin "graphics/pokemon/palettes/kecleon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Kecleon:: @ 8CF93D0 - .incbin "graphics/pokemon/back_pics/kecleon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Kecleon:: @ 8CF97A8 - .incbin "graphics/pokemon/palettes/kecleon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Kecleon:: @ 8CF97D0 - .incbin "graphics/pokemon/icons/kecleon_icon.4bpp" - - .align 2 -gMonFootprint_Kecleon:: @ 8CF9BD0 - .incbin "graphics/pokemon/footprints/kecleon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Baltoy:: @ 8CF9BF0 - .incbin "graphics/pokemon/front_pics/baltoy_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Baltoy:: @ 8CF9E14 - .incbin "graphics/pokemon/palettes/baltoy_palette.gbapal.lz" - - .align 2 -gMonBackPic_Baltoy:: @ 8CF9E34 - .incbin "graphics/pokemon/back_pics/baltoy_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Baltoy:: @ 8CFA0DC - .incbin "graphics/pokemon/palettes/baltoy_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Baltoy:: @ 8CFA0FC - .incbin "graphics/pokemon/icons/baltoy_icon.4bpp" - - .align 2 -gMonFootprint_Baltoy:: @ 8CFA4FC - .incbin "graphics/pokemon/footprints/baltoy_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Claydol:: @ 8CFA51C - .incbin "graphics/pokemon/front_pics/claydol_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Claydol:: @ 8CFA8D4 - .incbin "graphics/pokemon/palettes/claydol_palette.gbapal.lz" - - .align 2 -gMonBackPic_Claydol:: @ 8CFA8FC - .incbin "graphics/pokemon/back_pics/claydol_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Claydol:: @ 8CFACD0 - .incbin "graphics/pokemon/palettes/claydol_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Claydol:: @ 8CFACF8 - .incbin "graphics/pokemon/icons/claydol_icon.4bpp" - - .align 2 -gMonFootprint_Claydol:: @ 8CFB0F8 - .incbin "graphics/pokemon/footprints/claydol_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Nosepass:: @ 8CFB118 - .incbin "graphics/pokemon/front_pics/nosepass_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Nosepass:: @ 8CFB3E4 - .incbin "graphics/pokemon/palettes/nosepass_palette.gbapal.lz" - - .align 2 -gMonBackPic_Nosepass:: @ 8CFB40C - .incbin "graphics/pokemon/back_pics/nosepass_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Nosepass:: @ 8CFB6AC - .incbin "graphics/pokemon/palettes/nosepass_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Nosepass:: @ 8CFB6D4 - .incbin "graphics/pokemon/icons/nosepass_icon.4bpp" - - .align 2 -gMonFootprint_Nosepass:: @ 8CFBAD4 - .incbin "graphics/pokemon/footprints/nosepass_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Torkoal:: @ 8CFBAF4 - .incbin "graphics/pokemon/front_pics/torkoal_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Torkoal:: @ 8CFBFA0 - .incbin "graphics/pokemon/palettes/torkoal_palette.gbapal.lz" - - .align 2 -gMonBackPic_Torkoal:: @ 8CFBFC8 - .incbin "graphics/pokemon/back_pics/torkoal_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Torkoal:: @ 8CFC290 - .incbin "graphics/pokemon/palettes/torkoal_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Torkoal:: @ 8CFC2B8 - .incbin "graphics/pokemon/icons/torkoal_icon.4bpp" - - .align 2 -gMonFootprint_Torkoal:: @ 8CFC6B8 - .incbin "graphics/pokemon/footprints/torkoal_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Sableye:: @ 8CFC6D8 - .incbin "graphics/pokemon/front_pics/sableye_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Sableye:: @ 8CFC9AC - .incbin "graphics/pokemon/palettes/sableye_palette.gbapal.lz" - - .align 2 -gMonBackPic_Sableye:: @ 8CFC9D4 - .incbin "graphics/pokemon/back_pics/sableye_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Sableye:: @ 8CFCCFC - .incbin "graphics/pokemon/palettes/sableye_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Sableye:: @ 8CFCD24 - .incbin "graphics/pokemon/icons/sableye_icon.4bpp" - - .align 2 -gMonFootprint_Sableye:: @ 8CFD124 - .incbin "graphics/pokemon/footprints/sableye_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Barboach:: @ 8CFD144 - .incbin "graphics/pokemon/front_pics/barboach_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Barboach:: @ 8CFD3D4 - .incbin "graphics/pokemon/palettes/barboach_palette.gbapal.lz" - - .align 2 -gMonBackPic_Barboach:: @ 8CFD3FC - .incbin "graphics/pokemon/back_pics/barboach_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Barboach:: @ 8CFD68C - .incbin "graphics/pokemon/palettes/barboach_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Barboach:: @ 8CFD6B4 - .incbin "graphics/pokemon/icons/barboach_icon.4bpp" - - .align 2 -gMonFootprint_Barboach:: @ 8CFDAB4 - .incbin "graphics/pokemon/footprints/barboach_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Whiscash:: @ 8CFDAD4 - .incbin "graphics/pokemon/front_pics/whiscash_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Whiscash:: @ 8CFDE4C - .incbin "graphics/pokemon/palettes/whiscash_palette.gbapal.lz" - - .align 2 -gMonBackPic_Whiscash:: @ 8CFDE74 - .incbin "graphics/pokemon/back_pics/whiscash_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Whiscash:: @ 8CFE1C0 - .incbin "graphics/pokemon/palettes/whiscash_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Whiscash:: @ 8CFE1E8 - .incbin "graphics/pokemon/icons/whiscash_icon.4bpp" - - .align 2 -gMonFootprint_Whiscash:: @ 8CFE5E8 - .incbin "graphics/pokemon/footprints/whiscash_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Luvdisc:: @ 8CFE608 - .incbin "graphics/pokemon/front_pics/luvdisc_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Luvdisc:: @ 8CFE7C8 - .incbin "graphics/pokemon/palettes/luvdisc_palette.gbapal.lz" - - .align 2 -gMonBackPic_Luvdisc:: @ 8CFE7EC - .incbin "graphics/pokemon/back_pics/luvdisc_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Luvdisc:: @ 8CFE9C0 - .incbin "graphics/pokemon/palettes/luvdisc_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Luvdisc:: @ 8CFE9E4 - .incbin "graphics/pokemon/icons/luvdisc_icon.4bpp" - - .align 2 -gMonFootprint_Luvdisc:: @ 8CFEDE4 - .incbin "graphics/pokemon/footprints/luvdisc_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Corphish:: @ 8CFEE04 - .incbin "graphics/pokemon/front_pics/corphish_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Corphish:: @ 8CFF160 - .incbin "graphics/pokemon/palettes/corphish_palette.gbapal.lz" - - .align 2 -gMonBackPic_Corphish:: @ 8CFF188 - .incbin "graphics/pokemon/back_pics/corphish_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Corphish:: @ 8CFF4A4 - .incbin "graphics/pokemon/palettes/corphish_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Corphish:: @ 8CFF4CC - .incbin "graphics/pokemon/icons/corphish_icon.4bpp" - - .align 2 -gMonFootprint_Corphish:: @ 8CFF8CC - .incbin "graphics/pokemon/footprints/corphish_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Crawdaunt:: @ 8CFF8EC - .incbin "graphics/pokemon/front_pics/crawdaunt_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Crawdaunt:: @ 8CFFD7C - .incbin "graphics/pokemon/palettes/crawdaunt_palette.gbapal.lz" - - .align 2 -gMonBackPic_Crawdaunt:: @ 8CFFDA4 - .incbin "graphics/pokemon/back_pics/crawdaunt_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Crawdaunt:: @ 8D00188 - .incbin "graphics/pokemon/palettes/crawdaunt_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Crawdaunt:: @ 8D001B0 - .incbin "graphics/pokemon/icons/crawdaunt_icon.4bpp" - - .align 2 -gMonFootprint_Crawdaunt:: @ 8D005B0 - .incbin "graphics/pokemon/footprints/crawdaunt_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Feebas:: @ 8D005D0 - .incbin "graphics/pokemon/front_pics/feebas_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Feebas:: @ 8D0085C - .incbin "graphics/pokemon/palettes/feebas_palette.gbapal.lz" - - .align 2 -gMonBackPic_Feebas:: @ 8D00884 - .incbin "graphics/pokemon/back_pics/feebas_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Feebas:: @ 8D00BBC - .incbin "graphics/pokemon/palettes/feebas_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Feebas:: @ 8D00BE4 - .incbin "graphics/pokemon/icons/feebas_icon.4bpp" - - .align 2 -gMonFootprint_Feebas:: @ 8D00FE4 - .incbin "graphics/pokemon/footprints/feebas_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Milotic:: @ 8D01004 - .incbin "graphics/pokemon/front_pics/milotic_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Milotic:: @ 8D01494 - .incbin "graphics/pokemon/palettes/milotic_palette.gbapal.lz" - - .align 2 -gMonBackPic_Milotic:: @ 8D014BC - .incbin "graphics/pokemon/back_pics/milotic_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Milotic:: @ 8D017B0 - .incbin "graphics/pokemon/palettes/milotic_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Milotic:: @ 8D017D8 - .incbin "graphics/pokemon/icons/milotic_icon.4bpp" - - .align 2 -gMonFootprint_Milotic:: @ 8D01BD8 - .incbin "graphics/pokemon/footprints/milotic_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Carvanha:: @ 8D01BF8 - .incbin "graphics/pokemon/front_pics/carvanha_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Carvanha:: @ 8D01F24 - .incbin "graphics/pokemon/palettes/carvanha_palette.gbapal.lz" - - .align 2 -gMonBackPic_Carvanha:: @ 8D01F4C - .incbin "graphics/pokemon/back_pics/carvanha_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Carvanha:: @ 8D0225C - .incbin "graphics/pokemon/palettes/carvanha_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Carvanha:: @ 8D02284 - .incbin "graphics/pokemon/icons/carvanha_icon.4bpp" - - .align 2 -gMonFootprint_Carvanha:: @ 8D02684 - .incbin "graphics/pokemon/footprints/carvanha_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Sharpedo:: @ 8D026A4 - .incbin "graphics/pokemon/front_pics/sharpedo_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Sharpedo:: @ 8D02A34 - .incbin "graphics/pokemon/palettes/sharpedo_palette.gbapal.lz" - - .align 2 -gMonBackPic_Sharpedo:: @ 8D02A5C - .incbin "graphics/pokemon/back_pics/sharpedo_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Sharpedo:: @ 8D02DB4 - .incbin "graphics/pokemon/palettes/sharpedo_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Sharpedo:: @ 8D02DDC - .incbin "graphics/pokemon/icons/sharpedo_icon.4bpp" - - .align 2 -gMonFootprint_Sharpedo:: @ 8D031DC - .incbin "graphics/pokemon/footprints/sharpedo_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Trapinch:: @ 8D031FC - .incbin "graphics/pokemon/front_pics/trapinch_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Trapinch:: @ 8D03418 - .incbin "graphics/pokemon/palettes/trapinch_palette.gbapal.lz" - - .align 2 -gMonBackPic_Trapinch:: @ 8D03440 - .incbin "graphics/pokemon/back_pics/trapinch_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Trapinch:: @ 8D03660 - .incbin "graphics/pokemon/palettes/trapinch_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Trapinch:: @ 8D03688 - .incbin "graphics/pokemon/icons/trapinch_icon.4bpp" - - .align 2 -gMonFootprint_Trapinch:: @ 8D03A88 - .incbin "graphics/pokemon/footprints/trapinch_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Vibrava:: @ 8D03AA8 - .incbin "graphics/pokemon/front_pics/vibrava_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Vibrava:: @ 8D03E18 - .incbin "graphics/pokemon/palettes/vibrava_palette.gbapal.lz" - - .align 2 -gMonBackPic_Vibrava:: @ 8D03E40 - .incbin "graphics/pokemon/back_pics/vibrava_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Vibrava:: @ 8D040B8 - .incbin "graphics/pokemon/palettes/vibrava_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Vibrava:: @ 8D040E0 - .incbin "graphics/pokemon/icons/vibrava_icon.4bpp" - - .align 2 -gMonFootprint_Vibrava:: @ 8D044E0 - .incbin "graphics/pokemon/footprints/vibrava_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Flygon:: @ 8D04500 - .incbin "graphics/pokemon/front_pics/flygon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Flygon:: @ 8D049F0 - .incbin "graphics/pokemon/palettes/flygon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Flygon:: @ 8D04A18 - .incbin "graphics/pokemon/back_pics/flygon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Flygon:: @ 8D04E54 - .incbin "graphics/pokemon/palettes/flygon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Flygon:: @ 8D04E7C - .incbin "graphics/pokemon/icons/flygon_icon.4bpp" - - .align 2 -gMonFootprint_Flygon:: @ 8D0527C - .incbin "graphics/pokemon/footprints/flygon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Makuhita:: @ 8D0529C - .incbin "graphics/pokemon/front_pics/makuhita_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Makuhita:: @ 8D055B4 - .incbin "graphics/pokemon/palettes/makuhita_palette.gbapal.lz" - - .align 2 -gMonBackPic_Makuhita:: @ 8D055DC - .incbin "graphics/pokemon/back_pics/makuhita_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Makuhita:: @ 8D058CC - .incbin "graphics/pokemon/palettes/makuhita_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Makuhita:: @ 8D058F0 - .incbin "graphics/pokemon/icons/makuhita_icon.4bpp" - - .align 2 -gMonFootprint_Makuhita:: @ 8D05CF0 - .incbin "graphics/pokemon/footprints/makuhita_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Hariyama:: @ 8D05D10 - .incbin "graphics/pokemon/front_pics/hariyama_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Hariyama:: @ 8D061C0 - .incbin "graphics/pokemon/palettes/hariyama_palette.gbapal.lz" - - .align 2 -gMonBackPic_Hariyama:: @ 8D061E8 - .incbin "graphics/pokemon/back_pics/hariyama_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Hariyama:: @ 8D065C8 - .incbin "graphics/pokemon/palettes/hariyama_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Hariyama:: @ 8D065F0 - .incbin "graphics/pokemon/icons/hariyama_icon.4bpp" - - .align 2 -gMonFootprint_Hariyama:: @ 8D069F0 - .incbin "graphics/pokemon/footprints/hariyama_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Electrike:: @ 8D06A10 - .incbin "graphics/pokemon/front_pics/electrike_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Electrike:: @ 8D06CA0 - .incbin "graphics/pokemon/palettes/electrike_palette.gbapal.lz" - - .align 2 -gMonBackPic_Electrike:: @ 8D06CC8 - .incbin "graphics/pokemon/back_pics/electrike_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Electrike:: @ 8D06F54 - .incbin "graphics/pokemon/palettes/electrike_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Electrike:: @ 8D06F7C - .incbin "graphics/pokemon/icons/electrike_icon.4bpp" - - .align 2 -gMonFootprint_Electrike:: @ 8D0737C - .incbin "graphics/pokemon/footprints/electrike_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Manectric:: @ 8D0739C - .incbin "graphics/pokemon/front_pics/manectric_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Manectric:: @ 8D076CC - .incbin "graphics/pokemon/palettes/manectric_palette.gbapal.lz" - - .align 2 -gMonBackPic_Manectric:: @ 8D076F4 - .incbin "graphics/pokemon/back_pics/manectric_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Manectric:: @ 8D07920 - .incbin "graphics/pokemon/palettes/manectric_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Manectric:: @ 8D07948 - .incbin "graphics/pokemon/icons/manectric_icon.4bpp" - - .align 2 -gMonFootprint_Manectric:: @ 8D07D48 - .incbin "graphics/pokemon/footprints/manectric_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Numel:: @ 8D07D68 - .incbin "graphics/pokemon/front_pics/numel_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Numel:: @ 8D08038 - .incbin "graphics/pokemon/palettes/numel_palette.gbapal.lz" - - .align 2 -gMonBackPic_Numel:: @ 8D08060 - .incbin "graphics/pokemon/back_pics/numel_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Numel:: @ 8D0831C - .incbin "graphics/pokemon/palettes/numel_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Numel:: @ 8D08344 - .incbin "graphics/pokemon/icons/numel_icon.4bpp" - - .align 2 -gMonFootprint_Numel:: @ 8D08744 - .incbin "graphics/pokemon/footprints/numel_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Camerupt:: @ 8D08764 - .incbin "graphics/pokemon/front_pics/camerupt_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Camerupt:: @ 8D08B7C - .incbin "graphics/pokemon/palettes/camerupt_palette.gbapal.lz" - - .align 2 -gMonBackPic_Camerupt:: @ 8D08BA4 - .incbin "graphics/pokemon/back_pics/camerupt_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Camerupt:: @ 8D08E68 - .incbin "graphics/pokemon/palettes/camerupt_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Camerupt:: @ 8D08E90 - .incbin "graphics/pokemon/icons/camerupt_icon.4bpp" - - .align 2 -gMonFootprint_Camerupt:: @ 8D09290 - .incbin "graphics/pokemon/footprints/camerupt_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Spheal:: @ 8D092B0 - .incbin "graphics/pokemon/front_pics/spheal_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Spheal:: @ 8D09524 - .incbin "graphics/pokemon/palettes/spheal_palette.gbapal.lz" - - .align 2 -gMonBackPic_Spheal:: @ 8D0954C - .incbin "graphics/pokemon/back_pics/spheal_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Spheal:: @ 8D09748 - .incbin "graphics/pokemon/palettes/spheal_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Spheal:: @ 8D09770 - .incbin "graphics/pokemon/icons/spheal_icon.4bpp" - - .align 2 -gMonFootprint_Spheal:: @ 8D09B70 - .incbin "graphics/pokemon/footprints/spheal_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Sealeo:: @ 8D09B90 - .incbin "graphics/pokemon/front_pics/sealeo_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Sealeo:: @ 8D09F10 - .incbin "graphics/pokemon/palettes/sealeo_palette.gbapal.lz" - - .align 2 -gMonBackPic_Sealeo:: @ 8D09F38 - .incbin "graphics/pokemon/back_pics/sealeo_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Sealeo:: @ 8D0A1B4 - .incbin "graphics/pokemon/palettes/sealeo_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Sealeo:: @ 8D0A1DC - .incbin "graphics/pokemon/icons/sealeo_icon.4bpp" - - .align 2 -gMonFootprint_Sealeo:: @ 8D0A5DC - .incbin "graphics/pokemon/footprints/sealeo_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Walrein:: @ 8D0A5FC - .incbin "graphics/pokemon/front_pics/walrein_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Walrein:: @ 8D0AD70 - .incbin "graphics/pokemon/palettes/walrein_palette.gbapal.lz" - - .align 2 -gMonBackPic_Walrein:: @ 8D0AD98 - .incbin "graphics/pokemon/back_pics/walrein_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Walrein:: @ 8D0B120 - .incbin "graphics/pokemon/palettes/walrein_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Walrein:: @ 8D0B148 - .incbin "graphics/pokemon/icons/walrein_icon.4bpp" - - .align 2 -gMonFootprint_Walrein:: @ 8D0B548 - .incbin "graphics/pokemon/footprints/walrein_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Cacnea:: @ 8D0B568 - .incbin "graphics/pokemon/front_pics/cacnea_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Cacnea:: @ 8D0B878 - .incbin "graphics/pokemon/palettes/cacnea_palette.gbapal.lz" - - .align 2 -gMonBackPic_Cacnea:: @ 8D0B8A0 - .incbin "graphics/pokemon/back_pics/cacnea_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Cacnea:: @ 8D0BC00 - .incbin "graphics/pokemon/palettes/cacnea_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Cacnea:: @ 8D0BC28 - .incbin "graphics/pokemon/icons/cacnea_icon.4bpp" - - .align 2 -gMonFootprint_Cacnea:: @ 8D0C028 - .incbin "graphics/pokemon/footprints/cacnea_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Cacturne:: @ 8D0C048 - .incbin "graphics/pokemon/front_pics/cacturne_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Cacturne:: @ 8D0C480 - .incbin "graphics/pokemon/palettes/cacturne_palette.gbapal.lz" - - .align 2 -gMonBackPic_Cacturne:: @ 8D0C4A8 - .incbin "graphics/pokemon/back_pics/cacturne_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Cacturne:: @ 8D0C7A8 - .incbin "graphics/pokemon/palettes/cacturne_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Cacturne:: @ 8D0C7D0 - .incbin "graphics/pokemon/icons/cacturne_icon.4bpp" - - .align 2 -gMonFootprint_Cacturne:: @ 8D0CBD0 - .incbin "graphics/pokemon/footprints/cacturne_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Snorunt:: @ 8D0CBF0 - .incbin "graphics/pokemon/front_pics/snorunt_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Snorunt:: @ 8D0CEB4 - .incbin "graphics/pokemon/palettes/snorunt_palette.gbapal.lz" - - .align 2 -gMonBackPic_Snorunt:: @ 8D0CEDC - .incbin "graphics/pokemon/back_pics/snorunt_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Snorunt:: @ 8D0D1C0 - .incbin "graphics/pokemon/palettes/snorunt_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Snorunt:: @ 8D0D1E8 - .incbin "graphics/pokemon/icons/snorunt_icon.4bpp" - - .align 2 -gMonFootprint_Snorunt:: @ 8D0D5E8 - .incbin "graphics/pokemon/footprints/snorunt_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Glalie:: @ 8D0D608 - .incbin "graphics/pokemon/front_pics/glalie_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Glalie:: @ 8D0D9D0 - .incbin "graphics/pokemon/palettes/glalie_palette.gbapal.lz" - - .align 2 -gMonBackPic_Glalie:: @ 8D0D9F8 - .incbin "graphics/pokemon/back_pics/glalie_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Glalie:: @ 8D0DDA8 - .incbin "graphics/pokemon/palettes/glalie_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Glalie:: @ 8D0DDD0 - .incbin "graphics/pokemon/icons/glalie_icon.4bpp" - - .align 2 -gMonFootprint_Glalie:: @ 8D0E1D0 - .incbin "graphics/pokemon/footprints/glalie_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Lunatone:: @ 8D0E1F0 - .incbin "graphics/pokemon/front_pics/lunatone_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Lunatone:: @ 8D0E518 - .incbin "graphics/pokemon/palettes/lunatone_palette.gbapal.lz" - - .align 2 -gMonBackPic_Lunatone:: @ 8D0E540 - .incbin "graphics/pokemon/back_pics/lunatone_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Lunatone:: @ 8D0E898 - .incbin "graphics/pokemon/palettes/lunatone_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Lunatone:: @ 8D0E8C0 - .incbin "graphics/pokemon/icons/lunatone_icon.4bpp" - - .align 2 -gMonFootprint_Lunatone:: @ 8D0ECC0 - .incbin "graphics/pokemon/footprints/lunatone_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Solrock:: @ 8D0ECE0 - .incbin "graphics/pokemon/front_pics/solrock_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Solrock:: @ 8D0F12C - .incbin "graphics/pokemon/palettes/solrock_palette.gbapal.lz" - - .align 2 -gMonBackPic_Solrock:: @ 8D0F154 - .incbin "graphics/pokemon/back_pics/solrock_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Solrock:: @ 8D0F540 - .incbin "graphics/pokemon/palettes/solrock_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Solrock:: @ 8D0F568 - .incbin "graphics/pokemon/icons/solrock_icon.4bpp" - - .align 2 -gMonFootprint_Solrock:: @ 8D0F968 - .incbin "graphics/pokemon/footprints/solrock_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Azurill:: @ 8D0F988 - .incbin "graphics/pokemon/front_pics/azurill_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Azurill:: @ 8D0FC50 - .incbin "graphics/pokemon/palettes/azurill_palette.gbapal.lz" - - .align 2 -gMonBackPic_Azurill:: @ 8D0FC78 - .incbin "graphics/pokemon/back_pics/azurill_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Azurill:: @ 8D0FF90 - .incbin "graphics/pokemon/palettes/azurill_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Azurill:: @ 8D0FFB8 - .incbin "graphics/pokemon/icons/azurill_icon.4bpp" - - .align 2 -gMonFootprint_Azurill:: @ 8D103B8 - .incbin "graphics/pokemon/footprints/azurill_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Spoink:: @ 8D103D8 - .incbin "graphics/pokemon/front_pics/spoink_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Spoink:: @ 8D10644 - .incbin "graphics/pokemon/palettes/spoink_palette.gbapal.lz" - - .align 2 -gMonBackPic_Spoink:: @ 8D1066C - .incbin "graphics/pokemon/back_pics/spoink_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Spoink:: @ 8D108AC - .incbin "graphics/pokemon/palettes/spoink_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Spoink:: @ 8D108D4 - .incbin "graphics/pokemon/icons/spoink_icon.4bpp" - - .align 2 -gMonFootprint_Spoink:: @ 8D10CD4 - .incbin "graphics/pokemon/footprints/spoink_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Grumpig:: @ 8D10CF4 - .incbin "graphics/pokemon/front_pics/grumpig_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Grumpig:: @ 8D110B0 - .incbin "graphics/pokemon/palettes/grumpig_palette.gbapal.lz" - - .align 2 -gMonBackPic_Grumpig:: @ 8D110D8 - .incbin "graphics/pokemon/back_pics/grumpig_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Grumpig:: @ 8D11438 - .incbin "graphics/pokemon/palettes/grumpig_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Grumpig:: @ 8D11460 - .incbin "graphics/pokemon/icons/grumpig_icon.4bpp" - - .align 2 -gMonFootprint_Grumpig:: @ 8D11860 - .incbin "graphics/pokemon/footprints/grumpig_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Plusle:: @ 8D11880 - .incbin "graphics/pokemon/front_pics/plusle_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Plusle:: @ 8D11B0C - .incbin "graphics/pokemon/palettes/plusle_palette.gbapal.lz" - - .align 2 -gMonBackPic_Plusle:: @ 8D11B34 - .incbin "graphics/pokemon/back_pics/plusle_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Plusle:: @ 8D11DEC - .incbin "graphics/pokemon/palettes/plusle_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Plusle:: @ 8D11E14 - .incbin "graphics/pokemon/icons/plusle_icon.4bpp" - - .align 2 -gMonFootprint_Plusle:: @ 8D12214 - .incbin "graphics/pokemon/footprints/plusle_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Minun:: @ 8D12234 - .incbin "graphics/pokemon/front_pics/minun_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Minun:: @ 8D1249C - .incbin "graphics/pokemon/palettes/minun_palette.gbapal.lz" - - .align 2 -gMonBackPic_Minun:: @ 8D124C4 - .incbin "graphics/pokemon/back_pics/minun_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Minun:: @ 8D1278C - .incbin "graphics/pokemon/palettes/minun_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Minun:: @ 8D127B4 - .incbin "graphics/pokemon/icons/minun_icon.4bpp" - - .align 2 -gMonFootprint_Minun:: @ 8D12BB4 - .incbin "graphics/pokemon/footprints/minun_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Mawile:: @ 8D12BD4 - .incbin "graphics/pokemon/front_pics/mawile_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Mawile:: @ 8D12F90 - .incbin "graphics/pokemon/palettes/mawile_palette.gbapal.lz" - - .align 2 -gMonBackPic_Mawile:: @ 8D12FB8 - .incbin "graphics/pokemon/back_pics/mawile_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Mawile:: @ 8D133B8 - .incbin "graphics/pokemon/palettes/mawile_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Mawile:: @ 8D133E0 - .incbin "graphics/pokemon/icons/mawile_icon.4bpp" - - .align 2 -gMonFootprint_Mawile:: @ 8D137E0 - .incbin "graphics/pokemon/footprints/mawile_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Meditite:: @ 8D13800 - .incbin "graphics/pokemon/front_pics/meditite_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Meditite:: @ 8D13AB8 - .incbin "graphics/pokemon/palettes/meditite_palette.gbapal.lz" - - .align 2 -gMonBackPic_Meditite:: @ 8D13AE0 - .incbin "graphics/pokemon/back_pics/meditite_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Meditite:: @ 8D13DA8 - .incbin "graphics/pokemon/palettes/meditite_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Meditite:: @ 8D13DCC - .incbin "graphics/pokemon/icons/meditite_icon.4bpp" - - .align 2 -gMonFootprint_Meditite:: @ 8D141CC - .incbin "graphics/pokemon/footprints/meditite_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Medicham:: @ 8D141EC - .incbin "graphics/pokemon/front_pics/medicham_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Medicham:: @ 8D1451C - .incbin "graphics/pokemon/palettes/medicham_palette.gbapal.lz" - - .align 2 -gMonBackPic_Medicham:: @ 8D14544 - .incbin "graphics/pokemon/back_pics/medicham_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Medicham:: @ 8D1487C - .incbin "graphics/pokemon/palettes/medicham_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Medicham:: @ 8D148A4 - .incbin "graphics/pokemon/icons/medicham_icon.4bpp" - - .align 2 -gMonFootprint_Medicham:: @ 8D14CA4 - .incbin "graphics/pokemon/footprints/medicham_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Swablu:: @ 8D14CC4 - .incbin "graphics/pokemon/front_pics/swablu_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Swablu:: @ 8D15274 - .incbin "graphics/pokemon/palettes/swablu_palette.gbapal.lz" - - .align 2 -gMonBackPic_Swablu:: @ 8D1529C - .incbin "graphics/pokemon/back_pics/swablu_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Swablu:: @ 8D15654 - .incbin "graphics/pokemon/palettes/swablu_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Swablu:: @ 8D1567C - .incbin "graphics/pokemon/icons/swablu_icon.4bpp" - - .align 2 -gMonFootprint_Swablu:: @ 8D15A7C - .incbin "graphics/pokemon/footprints/swablu_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Altaria:: @ 8D15A9C - .incbin "graphics/pokemon/front_pics/altaria_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Altaria:: @ 8D15E78 - .incbin "graphics/pokemon/palettes/altaria_palette.gbapal.lz" - - .align 2 -gMonBackPic_Altaria:: @ 8D15EA0 - .incbin "graphics/pokemon/back_pics/altaria_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Altaria:: @ 8D16218 - .incbin "graphics/pokemon/palettes/altaria_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Altaria:: @ 8D16240 - .incbin "graphics/pokemon/icons/altaria_icon.4bpp" - - .align 2 -gMonFootprint_Altaria:: @ 8D16640 - .incbin "graphics/pokemon/footprints/altaria_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Wynaut:: @ 8D16660 - .incbin "graphics/pokemon/front_pics/wynaut_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Wynaut:: @ 8D168F8 - .incbin "graphics/pokemon/palettes/wynaut_palette.gbapal.lz" - - .align 2 -gMonBackPic_Wynaut:: @ 8D16920 - .incbin "graphics/pokemon/back_pics/wynaut_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Wynaut:: @ 8D16BB0 - .incbin "graphics/pokemon/palettes/wynaut_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Wynaut:: @ 8D16BD8 - .incbin "graphics/pokemon/icons/wynaut_icon.4bpp" - - .align 2 -gMonFootprint_Wynaut:: @ 8D16FD8 - .incbin "graphics/pokemon/footprints/wynaut_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Duskull:: @ 8D16FF8 - .incbin "graphics/pokemon/front_pics/duskull_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Duskull:: @ 8D172E8 - .incbin "graphics/pokemon/palettes/duskull_palette.gbapal.lz" - - .align 2 -gMonBackPic_Duskull:: @ 8D17310 - .incbin "graphics/pokemon/back_pics/duskull_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Duskull:: @ 8D175C0 - .incbin "graphics/pokemon/palettes/duskull_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Duskull:: @ 8D175E8 - .incbin "graphics/pokemon/icons/duskull_icon.4bpp" - - .align 2 -gMonFootprint_Duskull:: @ 8D179E8 - .incbin "graphics/pokemon/footprints/duskull_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Dusclops:: @ 8D17A08 - .incbin "graphics/pokemon/front_pics/dusclops_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Dusclops:: @ 8D17DA8 - .incbin "graphics/pokemon/palettes/dusclops_palette.gbapal.lz" - - .align 2 -gMonBackPic_Dusclops:: @ 8D17DD0 - .incbin "graphics/pokemon/back_pics/dusclops_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Dusclops:: @ 8D180BC - .incbin "graphics/pokemon/palettes/dusclops_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Dusclops:: @ 8D180E4 - .incbin "graphics/pokemon/icons/dusclops_icon.4bpp" - - .align 2 -gMonFootprint_Dusclops:: @ 8D184E4 - .incbin "graphics/pokemon/footprints/dusclops_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Roselia:: @ 8D18504 - .incbin "graphics/pokemon/front_pics/roselia_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Roselia:: @ 8D18870 - .incbin "graphics/pokemon/palettes/roselia_palette.gbapal.lz" - - .align 2 -gMonBackPic_Roselia:: @ 8D18898 - .incbin "graphics/pokemon/back_pics/roselia_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Roselia:: @ 8D18C60 - .incbin "graphics/pokemon/palettes/roselia_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Roselia:: @ 8D18C88 - .incbin "graphics/pokemon/icons/roselia_icon.4bpp" - - .align 2 -gMonFootprint_Roselia:: @ 8D19088 - .incbin "graphics/pokemon/footprints/roselia_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Slakoth:: @ 8D190A8 - .incbin "graphics/pokemon/front_pics/slakoth_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Slakoth:: @ 8D19390 - .incbin "graphics/pokemon/palettes/slakoth_palette.gbapal.lz" - - .align 2 -gMonBackPic_Slakoth:: @ 8D193B8 - .incbin "graphics/pokemon/back_pics/slakoth_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Slakoth:: @ 8D196A0 - .incbin "graphics/pokemon/palettes/slakoth_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Slakoth:: @ 8D196C8 - .incbin "graphics/pokemon/icons/slakoth_icon.4bpp" - - .align 2 -gMonFootprint_Slakoth:: @ 8D19AC8 - .incbin "graphics/pokemon/footprints/slakoth_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Vigoroth:: @ 8D19AE8 - .incbin "graphics/pokemon/front_pics/vigoroth_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Vigoroth:: @ 8D19EE4 - .incbin "graphics/pokemon/palettes/vigoroth_palette.gbapal.lz" - - .align 2 -gMonBackPic_Vigoroth:: @ 8D19F0C - .incbin "graphics/pokemon/back_pics/vigoroth_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Vigoroth:: @ 8D1A1D4 - .incbin "graphics/pokemon/palettes/vigoroth_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Vigoroth:: @ 8D1A1FC - .incbin "graphics/pokemon/icons/vigoroth_icon.4bpp" - - .align 2 -gMonFootprint_Vigoroth:: @ 8D1A5FC - .incbin "graphics/pokemon/footprints/vigoroth_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Slaking:: @ 8D1A61C - .incbin "graphics/pokemon/front_pics/slaking_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Slaking:: @ 8D1AAF0 - .incbin "graphics/pokemon/palettes/slaking_palette.gbapal.lz" - - .align 2 -gMonBackPic_Slaking:: @ 8D1AB18 - .incbin "graphics/pokemon/back_pics/slaking_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Slaking:: @ 8D1AEDC - .incbin "graphics/pokemon/palettes/slaking_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Slaking:: @ 8D1AF04 - .incbin "graphics/pokemon/icons/slaking_icon.4bpp" - - .align 2 -gMonFootprint_Slaking:: @ 8D1B304 - .incbin "graphics/pokemon/footprints/slaking_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Gulpin:: @ 8D1B324 - .incbin "graphics/pokemon/front_pics/gulpin_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Gulpin:: @ 8D1B53C - .incbin "graphics/pokemon/palettes/gulpin_palette.gbapal.lz" - - .align 2 -gMonBackPic_Gulpin:: @ 8D1B564 - .incbin "graphics/pokemon/back_pics/gulpin_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Gulpin:: @ 8D1B7E8 - .incbin "graphics/pokemon/palettes/gulpin_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Gulpin:: @ 8D1B810 - .incbin "graphics/pokemon/icons/gulpin_icon.4bpp" - - .align 2 -gMonFootprint_Gulpin:: @ 8D1BC10 - .incbin "graphics/pokemon/footprints/gulpin_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Swalot:: @ 8D1BC30 - .incbin "graphics/pokemon/front_pics/swalot_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Swalot:: @ 8D1BF74 - .incbin "graphics/pokemon/palettes/swalot_palette.gbapal.lz" - - .align 2 -gMonBackPic_Swalot:: @ 8D1BF9C - .incbin "graphics/pokemon/back_pics/swalot_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Swalot:: @ 8D1C2E4 - .incbin "graphics/pokemon/palettes/swalot_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Swalot:: @ 8D1C30C - .incbin "graphics/pokemon/icons/swalot_icon.4bpp" - - .align 2 -gMonFootprint_Swalot:: @ 8D1C70C - .incbin "graphics/pokemon/footprints/swalot_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Tropius:: @ 8D1C72C - .incbin "graphics/pokemon/front_pics/tropius_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Tropius:: @ 8D1CCA4 - .incbin "graphics/pokemon/palettes/tropius_palette.gbapal.lz" - - .align 2 -gMonBackPic_Tropius:: @ 8D1CCCC - .incbin "graphics/pokemon/back_pics/tropius_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Tropius:: @ 8D1CFF0 - .incbin "graphics/pokemon/palettes/tropius_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Tropius:: @ 8D1D018 - .incbin "graphics/pokemon/icons/tropius_icon.4bpp" - - .align 2 -gMonFootprint_Tropius:: @ 8D1D418 - .incbin "graphics/pokemon/footprints/tropius_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Whismur:: @ 8D1D438 - .incbin "graphics/pokemon/front_pics/whismur_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Whismur:: @ 8D1D6CC - .incbin "graphics/pokemon/palettes/whismur_palette.gbapal.lz" - - .align 2 -gMonBackPic_Whismur:: @ 8D1D6F4 - .incbin "graphics/pokemon/back_pics/whismur_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Whismur:: @ 8D1D964 - .incbin "graphics/pokemon/palettes/whismur_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Whismur:: @ 8D1D98C - .incbin "graphics/pokemon/icons/whismur_icon.4bpp" - - .align 2 -gMonFootprint_Whismur:: @ 8D1DD8C - .incbin "graphics/pokemon/footprints/whismur_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Loudred:: @ 8D1DDAC - .incbin "graphics/pokemon/front_pics/loudred_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Loudred:: @ 8D1E224 - .incbin "graphics/pokemon/palettes/loudred_palette.gbapal.lz" - - .align 2 -gMonBackPic_Loudred:: @ 8D1E24C - .incbin "graphics/pokemon/back_pics/loudred_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Loudred:: @ 8D1E5BC - .incbin "graphics/pokemon/palettes/loudred_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Loudred:: @ 8D1E5E4 - .incbin "graphics/pokemon/icons/loudred_icon.4bpp" - - .align 2 -gMonFootprint_Loudred:: @ 8D1E9E4 - .incbin "graphics/pokemon/footprints/loudred_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Exploud:: @ 8D1EA04 - .incbin "graphics/pokemon/front_pics/exploud_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Exploud:: @ 8D1EF6C - .incbin "graphics/pokemon/palettes/exploud_palette.gbapal.lz" - - .align 2 -gMonBackPic_Exploud:: @ 8D1EF94 - .incbin "graphics/pokemon/back_pics/exploud_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Exploud:: @ 8D1F3A0 - .incbin "graphics/pokemon/palettes/exploud_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Exploud:: @ 8D1F3C8 - .incbin "graphics/pokemon/icons/exploud_icon.4bpp" - - .align 2 -gMonFootprint_Exploud:: @ 8D1F7C8 - .incbin "graphics/pokemon/footprints/exploud_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Clamperl:: @ 8D1F7E8 - .incbin "graphics/pokemon/front_pics/clamperl_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Clamperl:: @ 8D1FAC0 - .incbin "graphics/pokemon/palettes/clamperl_palette.gbapal.lz" - - .align 2 -gMonBackPic_Clamperl:: @ 8D1FAE8 - .incbin "graphics/pokemon/back_pics/clamperl_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Clamperl:: @ 8D1FD7C - .incbin "graphics/pokemon/palettes/clamperl_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Clamperl:: @ 8D1FDA4 - .incbin "graphics/pokemon/icons/clamperl_icon.4bpp" - - .align 2 -gMonFootprint_Clamperl:: @ 8D201A4 - .incbin "graphics/pokemon/footprints/clamperl_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Huntail:: @ 8D201C4 - .incbin "graphics/pokemon/front_pics/huntail_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Huntail:: @ 8D20590 - .incbin "graphics/pokemon/palettes/huntail_palette.gbapal.lz" - - .align 2 -gMonBackPic_Huntail:: @ 8D205B8 - .incbin "graphics/pokemon/back_pics/huntail_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Huntail:: @ 8D2090C - .incbin "graphics/pokemon/palettes/huntail_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Huntail:: @ 8D20934 - .incbin "graphics/pokemon/icons/huntail_icon.4bpp" - - .align 2 -gMonFootprint_Huntail:: @ 8D20D34 - .incbin "graphics/pokemon/footprints/huntail_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Gorebyss:: @ 8D20D54 - .incbin "graphics/pokemon/front_pics/gorebyss_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Gorebyss:: @ 8D21064 - .incbin "graphics/pokemon/palettes/gorebyss_palette.gbapal.lz" - - .align 2 -gMonBackPic_Gorebyss:: @ 8D2108C - .incbin "graphics/pokemon/back_pics/gorebyss_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Gorebyss:: @ 8D21374 - .incbin "graphics/pokemon/palettes/gorebyss_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Gorebyss:: @ 8D2139C - .incbin "graphics/pokemon/icons/gorebyss_icon.4bpp" - - .align 2 -gMonFootprint_Gorebyss:: @ 8D2179C - .incbin "graphics/pokemon/footprints/gorebyss_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Absol:: @ 8D217BC - .incbin "graphics/pokemon/front_pics/absol_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Absol:: @ 8D21BEC - .incbin "graphics/pokemon/palettes/absol_palette.gbapal.lz" - - .align 2 -gMonBackPic_Absol:: @ 8D21C14 - .incbin "graphics/pokemon/back_pics/absol_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Absol:: @ 8D21F74 - .incbin "graphics/pokemon/palettes/absol_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Absol:: @ 8D21F9C - .incbin "graphics/pokemon/icons/absol_icon.4bpp" - - .align 2 -gMonFootprint_Absol:: @ 8D2239C - .incbin "graphics/pokemon/footprints/absol_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Shuppet:: @ 8D223BC - .incbin "graphics/pokemon/front_pics/shuppet_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Shuppet:: @ 8D225F4 - .incbin "graphics/pokemon/palettes/shuppet_palette.gbapal.lz" - - .align 2 -gMonBackPic_Shuppet:: @ 8D2261C - .incbin "graphics/pokemon/back_pics/shuppet_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Shuppet:: @ 8D228B4 - .incbin "graphics/pokemon/palettes/shuppet_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Shuppet:: @ 8D228DC - .incbin "graphics/pokemon/icons/shuppet_icon.4bpp" - - .align 2 -gMonFootprint_Shuppet:: @ 8D22CDC - .incbin "graphics/pokemon/footprints/shuppet_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Banette:: @ 8D22CFC - .incbin "graphics/pokemon/front_pics/banette_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Banette:: @ 8D22FB0 - .incbin "graphics/pokemon/palettes/banette_palette.gbapal.lz" - - .align 2 -gMonBackPic_Banette:: @ 8D22FD8 - .incbin "graphics/pokemon/back_pics/banette_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Banette:: @ 8D23254 - .incbin "graphics/pokemon/palettes/banette_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Banette:: @ 8D2327C - .incbin "graphics/pokemon/icons/banette_icon.4bpp" - - .align 2 -gMonFootprint_Banette:: @ 8D2367C - .incbin "graphics/pokemon/footprints/banette_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Seviper:: @ 8D2369C - .incbin "graphics/pokemon/front_pics/seviper_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Seviper:: @ 8D23ABC - .incbin "graphics/pokemon/palettes/seviper_palette.gbapal.lz" - - .align 2 -gMonBackPic_Seviper:: @ 8D23AE4 - .incbin "graphics/pokemon/back_pics/seviper_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Seviper:: @ 8D23F70 - .incbin "graphics/pokemon/palettes/seviper_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Seviper:: @ 8D23F98 - .incbin "graphics/pokemon/icons/seviper_icon.4bpp" - - .align 2 -gMonFootprint_Seviper:: @ 8D24398 - .incbin "graphics/pokemon/footprints/seviper_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Zangoose:: @ 8D243B8 - .incbin "graphics/pokemon/front_pics/zangoose_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Zangoose:: @ 8D24784 - .incbin "graphics/pokemon/palettes/zangoose_palette.gbapal.lz" - - .align 2 -gMonBackPic_Zangoose:: @ 8D247AC - .incbin "graphics/pokemon/back_pics/zangoose_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Zangoose:: @ 8D24B20 - .incbin "graphics/pokemon/palettes/zangoose_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Zangoose:: @ 8D24B48 - .incbin "graphics/pokemon/icons/zangoose_icon.4bpp" - - .align 2 -gMonFootprint_Zangoose:: @ 8D24F48 - .incbin "graphics/pokemon/footprints/zangoose_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Relicanth:: @ 8D24F68 - .incbin "graphics/pokemon/front_pics/relicanth_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Relicanth:: @ 8D252FC - .incbin "graphics/pokemon/palettes/relicanth_palette.gbapal.lz" - - .align 2 -gMonBackPic_Relicanth:: @ 8D25324 - .incbin "graphics/pokemon/back_pics/relicanth_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Relicanth:: @ 8D2567C - .incbin "graphics/pokemon/palettes/relicanth_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Relicanth:: @ 8D256A4 - .incbin "graphics/pokemon/icons/relicanth_icon.4bpp" - - .align 2 -gMonFootprint_Relicanth:: @ 8D25AA4 - .incbin "graphics/pokemon/footprints/relicanth_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Aron:: @ 8D25AC4 - .incbin "graphics/pokemon/front_pics/aron_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Aron:: @ 8D25CAC - .incbin "graphics/pokemon/palettes/aron_palette.gbapal.lz" - - .align 2 -gMonBackPic_Aron:: @ 8D25CD4 - .incbin "graphics/pokemon/back_pics/aron_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Aron:: @ 8D25EFC - .incbin "graphics/pokemon/palettes/aron_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Aron:: @ 8D25F24 - .incbin "graphics/pokemon/icons/aron_icon.4bpp" - - .align 2 -gMonFootprint_Aron:: @ 8D26324 - .incbin "graphics/pokemon/footprints/aron_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Lairon:: @ 8D26344 - .incbin "graphics/pokemon/front_pics/lairon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Lairon:: @ 8D26710 - .incbin "graphics/pokemon/palettes/lairon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Lairon:: @ 8D26738 - .incbin "graphics/pokemon/back_pics/lairon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Lairon:: @ 8D26A24 - .incbin "graphics/pokemon/palettes/lairon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Lairon:: @ 8D26A4C - .incbin "graphics/pokemon/icons/lairon_icon.4bpp" - - .align 2 -gMonFootprint_Lairon:: @ 8D26E4C - .incbin "graphics/pokemon/footprints/lairon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Aggron:: @ 8D26E6C - .incbin "graphics/pokemon/front_pics/aggron_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Aggron:: @ 8D273E8 - .incbin "graphics/pokemon/palettes/aggron_palette.gbapal.lz" - - .align 2 -gMonBackPic_Aggron:: @ 8D27410 - .incbin "graphics/pokemon/back_pics/aggron_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Aggron:: @ 8D27838 - .incbin "graphics/pokemon/palettes/aggron_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Aggron:: @ 8D27860 - .incbin "graphics/pokemon/icons/aggron_icon.4bpp" - - .align 2 -gMonFootprint_Aggron:: @ 8D27C60 - .incbin "graphics/pokemon/footprints/aggron_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Castform:: @ 8D27C80 - .incbin "graphics/pokemon/front_pics/castform_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Castform:: @ 8D28708 - .incbin "graphics/pokemon/palettes/castform_palette.gbapal.lz" - - .align 2 -gMonBackPic_Castform:: @ 8D28788 - .incbin "graphics/pokemon/back_pics/castform_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Castform:: @ 8D29144 - .incbin "graphics/pokemon/palettes/castform_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Castform:: @ 8D291C0 - .incbin "graphics/pokemon/icons/castform_icon.4bpp" - - .align 2 -gMonFootprint_Castform:: @ 8D295C0 - .incbin "graphics/pokemon/footprints/castform_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Volbeat:: @ 8D295E0 - .incbin "graphics/pokemon/front_pics/volbeat_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Volbeat:: @ 8D29970 - .incbin "graphics/pokemon/palettes/volbeat_palette.gbapal.lz" - - .align 2 -gMonBackPic_Volbeat:: @ 8D29998 - .incbin "graphics/pokemon/back_pics/volbeat_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Volbeat:: @ 8D29CF8 - .incbin "graphics/pokemon/palettes/volbeat_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Volbeat:: @ 8D29D20 - .incbin "graphics/pokemon/icons/volbeat_icon.4bpp" - - .align 2 -gMonFootprint_Volbeat:: @ 8D2A120 - .incbin "graphics/pokemon/footprints/volbeat_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Illumise:: @ 8D2A140 - .incbin "graphics/pokemon/front_pics/illumise_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Illumise:: @ 8D2A4B4 - .incbin "graphics/pokemon/palettes/illumise_palette.gbapal.lz" - - .align 2 -gMonBackPic_Illumise:: @ 8D2A4DC - .incbin "graphics/pokemon/back_pics/illumise_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Illumise:: @ 8D2A7F8 - .incbin "graphics/pokemon/palettes/illumise_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Illumise:: @ 8D2A820 - .incbin "graphics/pokemon/icons/illumise_icon.4bpp" - - .align 2 -gMonFootprint_Illumise:: @ 8D2AC20 - .incbin "graphics/pokemon/footprints/illumise_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Lileep:: @ 8D2AC40 - .incbin "graphics/pokemon/front_pics/lileep_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Lileep:: @ 8D2AF84 - .incbin "graphics/pokemon/palettes/lileep_palette.gbapal.lz" - - .align 2 -gMonBackPic_Lileep:: @ 8D2AFAC - .incbin "graphics/pokemon/back_pics/lileep_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Lileep:: @ 8D2B2F0 - .incbin "graphics/pokemon/palettes/lileep_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Lileep:: @ 8D2B318 - .incbin "graphics/pokemon/icons/lileep_icon.4bpp" - - .align 2 -gMonFootprint_Lileep:: @ 8D2B718 - .incbin "graphics/pokemon/footprints/lileep_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Cradily:: @ 8D2B738 - .incbin "graphics/pokemon/front_pics/cradily_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Cradily:: @ 8D2BB54 - .incbin "graphics/pokemon/palettes/cradily_palette.gbapal.lz" - - .align 2 -gMonBackPic_Cradily:: @ 8D2BB7C - .incbin "graphics/pokemon/back_pics/cradily_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Cradily:: @ 8D2BF78 - .incbin "graphics/pokemon/palettes/cradily_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Cradily:: @ 8D2BFA0 - .incbin "graphics/pokemon/icons/cradily_icon.4bpp" - - .align 2 -gMonFootprint_Cradily:: @ 8D2C3A0 - .incbin "graphics/pokemon/footprints/cradily_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Anorith:: @ 8D2C3C0 - .incbin "graphics/pokemon/front_pics/anorith_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Anorith:: @ 8D2C6E4 - .incbin "graphics/pokemon/palettes/anorith_palette.gbapal.lz" - - .align 2 -gMonBackPic_Anorith:: @ 8D2C70C - .incbin "graphics/pokemon/back_pics/anorith_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Anorith:: @ 8D2C954 - .incbin "graphics/pokemon/palettes/anorith_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Anorith:: @ 8D2C97C - .incbin "graphics/pokemon/icons/anorith_icon.4bpp" - - .align 2 -gMonFootprint_Anorith:: @ 8D2CD7C - .incbin "graphics/pokemon/footprints/anorith_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Armaldo:: @ 8D2CD9C - .incbin "graphics/pokemon/front_pics/armaldo_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Armaldo:: @ 8D2D31C - .incbin "graphics/pokemon/palettes/armaldo_palette.gbapal.lz" - - .align 2 -gMonBackPic_Armaldo:: @ 8D2D344 - .incbin "graphics/pokemon/back_pics/armaldo_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Armaldo:: @ 8D2D77C - .incbin "graphics/pokemon/palettes/armaldo_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Armaldo:: @ 8D2D7A4 - .incbin "graphics/pokemon/icons/armaldo_icon.4bpp" - - .align 2 -gMonFootprint_Armaldo:: @ 8D2DBA4 - .incbin "graphics/pokemon/footprints/armaldo_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Ralts:: @ 8D2DBC4 - .incbin "graphics/pokemon/front_pics/ralts_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Ralts:: @ 8D2DDF4 - .incbin "graphics/pokemon/palettes/ralts_palette.gbapal.lz" - - .align 2 -gMonBackPic_Ralts:: @ 8D2DE1C - .incbin "graphics/pokemon/back_pics/ralts_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Ralts:: @ 8D2E058 - .incbin "graphics/pokemon/palettes/ralts_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Ralts:: @ 8D2E080 - .incbin "graphics/pokemon/icons/ralts_icon.4bpp" - - .align 2 -gMonFootprint_Ralts:: @ 8D2E480 - .incbin "graphics/pokemon/footprints/ralts_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Kirlia:: @ 8D2E4A0 - .incbin "graphics/pokemon/front_pics/kirlia_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Kirlia:: @ 8D2E79C - .incbin "graphics/pokemon/palettes/kirlia_palette.gbapal.lz" - - .align 2 -gMonBackPic_Kirlia:: @ 8D2E7C4 - .incbin "graphics/pokemon/back_pics/kirlia_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Kirlia:: @ 8D2EB38 - .incbin "graphics/pokemon/palettes/kirlia_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Kirlia:: @ 8D2EB60 - .incbin "graphics/pokemon/icons/kirlia_icon.4bpp" - - .align 2 -gMonFootprint_Kirlia:: @ 8D2EF60 - .incbin "graphics/pokemon/footprints/kirlia_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Gardevoir:: @ 8D2EF80 - .incbin "graphics/pokemon/front_pics/gardevoir_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Gardevoir:: @ 8D2F2FC - .incbin "graphics/pokemon/palettes/gardevoir_palette.gbapal.lz" - - .align 2 -gMonBackPic_Gardevoir:: @ 8D2F324 - .incbin "graphics/pokemon/back_pics/gardevoir_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Gardevoir:: @ 8D2F658 - .incbin "graphics/pokemon/palettes/gardevoir_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Gardevoir:: @ 8D2F680 - .incbin "graphics/pokemon/icons/gardevoir_icon.4bpp" - - .align 2 -gMonFootprint_Gardevoir:: @ 8D2FA80 - .incbin "graphics/pokemon/footprints/gardevoir_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Bagon:: @ 8D2FAA0 - .incbin "graphics/pokemon/front_pics/bagon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Bagon:: @ 8D2FD18 - .incbin "graphics/pokemon/palettes/bagon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Bagon:: @ 8D2FD40 - .incbin "graphics/pokemon/back_pics/bagon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Bagon:: @ 8D30028 - .incbin "graphics/pokemon/palettes/bagon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Bagon:: @ 8D30050 - .incbin "graphics/pokemon/icons/bagon_icon.4bpp" - - .align 2 -gMonFootprint_Bagon:: @ 8D30450 - .incbin "graphics/pokemon/footprints/bagon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Shelgon:: @ 8D30470 - .incbin "graphics/pokemon/front_pics/shelgon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Shelgon:: @ 8D30774 - .incbin "graphics/pokemon/palettes/shelgon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Shelgon:: @ 8D3079C - .incbin "graphics/pokemon/back_pics/shelgon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Shelgon:: @ 8D30A84 - .incbin "graphics/pokemon/palettes/shelgon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Shelgon:: @ 8D30AAC - .incbin "graphics/pokemon/icons/shelgon_icon.4bpp" - - .align 2 -gMonFootprint_Shelgon:: @ 8D30EAC - .incbin "graphics/pokemon/footprints/shelgon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Salamence:: @ 8D30ECC - .incbin "graphics/pokemon/front_pics/salamence_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Salamence:: @ 8D31330 - .incbin "graphics/pokemon/palettes/salamence_palette.gbapal.lz" - - .align 2 -gMonBackPic_Salamence:: @ 8D31358 - .incbin "graphics/pokemon/back_pics/salamence_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Salamence:: @ 8D3163C - .incbin "graphics/pokemon/palettes/salamence_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Salamence:: @ 8D31664 - .incbin "graphics/pokemon/icons/salamence_icon.4bpp" - - .align 2 -gMonFootprint_Salamence:: @ 8D31A64 - .incbin "graphics/pokemon/footprints/salamence_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Beldum:: @ 8D31A84 - .incbin "graphics/pokemon/front_pics/beldum_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Beldum:: @ 8D31CF4 - .incbin "graphics/pokemon/palettes/beldum_palette.gbapal.lz" - - .align 2 -gMonBackPic_Beldum:: @ 8D31D1C - .incbin "graphics/pokemon/back_pics/beldum_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Beldum:: @ 8D3200C - .incbin "graphics/pokemon/palettes/beldum_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Beldum:: @ 8D32034 - .incbin "graphics/pokemon/icons/beldum_icon.4bpp" - - .align 2 -gMonFootprint_Beldum:: @ 8D32434 - .incbin "graphics/pokemon/footprints/beldum_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Metang:: @ 8D32454 - .incbin "graphics/pokemon/front_pics/metang_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Metang:: @ 8D328B0 - .incbin "graphics/pokemon/palettes/metang_palette.gbapal.lz" - - .align 2 -gMonBackPic_Metang:: @ 8D328D8 - .incbin "graphics/pokemon/back_pics/metang_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Metang:: @ 8D32BFC - .incbin "graphics/pokemon/palettes/metang_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Metang:: @ 8D32C24 - .incbin "graphics/pokemon/icons/metang_icon.4bpp" - - .align 2 -gMonFootprint_Metang:: @ 8D33024 - .incbin "graphics/pokemon/footprints/metang_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Metagross:: @ 8D33044 - .incbin "graphics/pokemon/front_pics/metagross_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Metagross:: @ 8D334A8 - .incbin "graphics/pokemon/palettes/metagross_palette.gbapal.lz" - - .align 2 -gMonBackPic_Metagross:: @ 8D334D0 - .incbin "graphics/pokemon/back_pics/metagross_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Metagross:: @ 8D3379C - .incbin "graphics/pokemon/palettes/metagross_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Metagross:: @ 8D337C4 - .incbin "graphics/pokemon/icons/metagross_icon.4bpp" - - .align 2 -gMonFootprint_Metagross:: @ 8D33BC4 - .incbin "graphics/pokemon/footprints/metagross_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Regirock:: @ 8D33BE4 - .incbin "graphics/pokemon/front_pics/regirock_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Regirock:: @ 8D340A0 - .incbin "graphics/pokemon/palettes/regirock_palette.gbapal.lz" - - .align 2 -gMonBackPic_Regirock:: @ 8D340C8 - .incbin "graphics/pokemon/back_pics/regirock_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Regirock:: @ 8D34514 - .incbin "graphics/pokemon/palettes/regirock_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Regirock:: @ 8D3453C - .incbin "graphics/pokemon/icons/regirock_icon.4bpp" - - .align 2 -gMonFootprint_Regirock:: @ 8D3493C - .incbin "graphics/pokemon/footprints/regirock_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Regice:: @ 8D3495C - .incbin "graphics/pokemon/front_pics/regice_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Regice:: @ 8D34DA4 - .incbin "graphics/pokemon/palettes/regice_palette.gbapal.lz" - - .align 2 -gMonBackPic_Regice:: @ 8D34DCC - .incbin "graphics/pokemon/back_pics/regice_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Regice:: @ 8D350BC - .incbin "graphics/pokemon/palettes/regice_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Regice:: @ 8D350E4 - .incbin "graphics/pokemon/icons/regice_icon.4bpp" - - .align 2 -gMonFootprint_Regice:: @ 8D354E4 - .incbin "graphics/pokemon/footprints/regice_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Registeel:: @ 8D35504 - .incbin "graphics/pokemon/front_pics/registeel_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Registeel:: @ 8D3598C - .incbin "graphics/pokemon/palettes/registeel_palette.gbapal.lz" - - .align 2 -gMonBackPic_Registeel:: @ 8D359B4 - .incbin "graphics/pokemon/back_pics/registeel_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Registeel:: @ 8D35CEC - .incbin "graphics/pokemon/palettes/registeel_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Registeel:: @ 8D35D14 - .incbin "graphics/pokemon/icons/registeel_icon.4bpp" - - .align 2 -gMonFootprint_Registeel:: @ 8D36114 - .incbin "graphics/pokemon/footprints/registeel_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Kyogre:: @ 8D36134 - .incbin "graphics/pokemon/front_pics/kyogre_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Kyogre:: @ 8D365A4 - .incbin "graphics/pokemon/palettes/kyogre_palette.gbapal.lz" - - .align 2 -gMonBackPic_Kyogre:: @ 8D365CC - .incbin "graphics/pokemon/back_pics/kyogre_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Kyogre:: @ 8D36844 - .incbin "graphics/pokemon/palettes/kyogre_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Kyogre:: @ 8D3686C - .incbin "graphics/pokemon/icons/kyogre_icon.4bpp" - - .align 2 -gMonFootprint_Kyogre:: @ 8D36C6C - .incbin "graphics/pokemon/footprints/kyogre_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Groudon:: @ 8D36C8C - .incbin "graphics/pokemon/front_pics/groudon_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Groudon:: @ 8D37220 - .incbin "graphics/pokemon/palettes/groudon_palette.gbapal.lz" - - .align 2 -gMonBackPic_Groudon:: @ 8D37248 - .incbin "graphics/pokemon/back_pics/groudon_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Groudon:: @ 8D376B0 - .incbin "graphics/pokemon/palettes/groudon_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Groudon:: @ 8D376D8 - .incbin "graphics/pokemon/icons/groudon_icon.4bpp" - - .align 2 -gMonFootprint_Groudon:: @ 8D37AD8 - .incbin "graphics/pokemon/footprints/groudon_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Rayquaza:: @ 8D37AF8 - .incbin "graphics/pokemon/front_pics/rayquaza_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Rayquaza:: @ 8D382E4 - .incbin "graphics/pokemon/palettes/rayquaza_palette.gbapal.lz" - - .align 2 -gMonBackPic_Rayquaza:: @ 8D3830C - .incbin "graphics/pokemon/back_pics/rayquaza_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Rayquaza:: @ 8D38644 - .incbin "graphics/pokemon/palettes/rayquaza_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Rayquaza:: @ 8D3866C - .incbin "graphics/pokemon/icons/rayquaza_icon.4bpp" - - .align 2 -gMonFootprint_Rayquaza:: @ 8D38A6C - .incbin "graphics/pokemon/footprints/rayquaza_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Latias:: @ 8D38A8C - .incbin "graphics/pokemon/front_pics/latias_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Latias:: @ 8D38EB0 - .incbin "graphics/pokemon/palettes/latias_palette.gbapal.lz" - - .align 2 -gMonBackPic_Latias:: @ 8D38ED8 - .incbin "graphics/pokemon/back_pics/latias_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Latias:: @ 8D391D4 - .incbin "graphics/pokemon/palettes/latias_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Latias:: @ 8D391FC - .incbin "graphics/pokemon/icons/latias_icon.4bpp" - - .align 2 -gMonFootprint_Latias:: @ 8D395FC - .incbin "graphics/pokemon/footprints/latias_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Latios:: @ 8D3961C - .incbin "graphics/pokemon/front_pics/latios_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Latios:: @ 8D39A70 - .incbin "graphics/pokemon/palettes/latios_palette.gbapal.lz" - - .align 2 -gMonBackPic_Latios:: @ 8D39A98 - .incbin "graphics/pokemon/back_pics/latios_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Latios:: @ 8D39DF8 - .incbin "graphics/pokemon/palettes/latios_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Latios:: @ 8D39E20 - .incbin "graphics/pokemon/icons/latios_icon.4bpp" - - .align 2 -gMonFootprint_Latios:: @ 8D3A220 - .incbin "graphics/pokemon/footprints/latios_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Jirachi:: @ 8D3A240 - .incbin "graphics/pokemon/front_pics/jirachi_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Jirachi:: @ 8D3A54C - .incbin "graphics/pokemon/palettes/jirachi_palette.gbapal.lz" - - .align 2 -gMonBackPic_Jirachi:: @ 8D3A574 - .incbin "graphics/pokemon/back_pics/jirachi_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Jirachi:: @ 8D3A914 - .incbin "graphics/pokemon/palettes/jirachi_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Jirachi:: @ 8D3A93C - .incbin "graphics/pokemon/icons/jirachi_icon.4bpp" - - .align 2 -gMonFootprint_Jirachi:: @ 8D3AD3C - .incbin "graphics/pokemon/footprints/jirachi_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Deoxys:: @ 8D3AD5C - .incbin "graphics/pokemon/front_pics/deoxys_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Deoxys:: @ 8D3B138 - .incbin "graphics/pokemon/palettes/deoxys_palette.gbapal.lz" - - .align 2 -gMonBackPic_Deoxys:: @ 8D3B160 - .incbin "graphics/pokemon/back_pics/deoxys_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Deoxys:: @ 8D3B7D0 - .incbin "graphics/pokemon/palettes/deoxys_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Deoxys:: @ 8D3B7F8 - .incbin "graphics/pokemon/icons/deoxys_icon.4bpp" - - .incbin "baserom.gba", 0xd3bbf8, 0x8000 - - .align 2 -gMonFootprint_Deoxys:: @ 8D43BF8 - .incbin "graphics/pokemon/footprints/deoxys_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Chimecho:: @ 8D43C18 - .incbin "graphics/pokemon/front_pics/chimecho_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Chimecho:: @ 8D43E64 - .incbin "graphics/pokemon/palettes/chimecho_palette.gbapal.lz" - - .align 2 -gMonBackPic_Chimecho:: @ 8D43E8C - .incbin "graphics/pokemon/back_pics/chimecho_back_pic.4bpp.lz" - - .align 2 -gMonShinyPalette_Chimecho:: @ 8D44100 - .incbin "graphics/pokemon/palettes/chimecho_shiny_palette.gbapal.lz" - - .align 2 -gMonIcon_Chimecho:: @ 8D44128 - .incbin "graphics/pokemon/icons/chimecho_icon.4bpp" - - .align 2 -gMonFootprint_Chimecho:: @ 8D44528 - .incbin "graphics/pokemon/footprints/chimecho_footprint.1bpp" - - .align 2 -gMonStillFrontPic_Egg:: @ 8D44548 - .incbin "graphics/pokemon/front_pics/egg_still_front_pic.4bpp.lz" - - .align 2 -gMonPalette_Egg:: @ 8D446FC - .incbin "graphics/pokemon/palettes/egg_palette.gbapal.lz" - - .align 2 -gMonStillFrontPic_UnownB:: @ 8D4471C - .incbin "graphics/pokemon/front_pics/unown_b_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownB:: @ 8D448F4 - .incbin "graphics/pokemon/back_pics/unown_b_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownB:: @ 8D44AF8 - .incbin "graphics/pokemon/icons/unown_B_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownC:: @ 8D44EF8 - .incbin "graphics/pokemon/front_pics/unown_c_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownC:: @ 8D4510C - .incbin "graphics/pokemon/back_pics/unown_c_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownC:: @ 8D453B8 - .incbin "graphics/pokemon/icons/unown_C_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownD:: @ 8D457B8 - .incbin "graphics/pokemon/front_pics/unown_d_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownD:: @ 8D459B0 - .incbin "graphics/pokemon/back_pics/unown_d_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownD:: @ 8D45C08 - .incbin "graphics/pokemon/icons/unown_D_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownE:: @ 8D46008 - .incbin "graphics/pokemon/front_pics/unown_e_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownE:: @ 8D461C0 - .incbin "graphics/pokemon/back_pics/unown_e_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownE:: @ 8D463C0 - .incbin "graphics/pokemon/icons/unown_E_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownF:: @ 8D467C0 - .incbin "graphics/pokemon/front_pics/unown_f_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownF:: @ 8D469B4 - .incbin "graphics/pokemon/back_pics/unown_f_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownF:: @ 8D46BD0 - .incbin "graphics/pokemon/icons/unown_F_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownG:: @ 8D46FD0 - .incbin "graphics/pokemon/front_pics/unown_g_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownG:: @ 8D471AC - .incbin "graphics/pokemon/back_pics/unown_g_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownG:: @ 8D473F8 - .incbin "graphics/pokemon/icons/unown_G_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownH:: @ 8D477F8 - .incbin "graphics/pokemon/front_pics/unown_h_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownH:: @ 8D47A3C - .incbin "graphics/pokemon/back_pics/unown_h_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownH:: @ 8D47D00 - .incbin "graphics/pokemon/icons/unown_H_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownI:: @ 8D48100 - .incbin "graphics/pokemon/front_pics/unown_i_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownI:: @ 8D48298 - .incbin "graphics/pokemon/back_pics/unown_i_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownI:: @ 8D48440 - .incbin "graphics/pokemon/icons/unown_I_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownJ:: @ 8D48840 - .incbin "graphics/pokemon/front_pics/unown_j_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownJ:: @ 8D48A04 - .incbin "graphics/pokemon/back_pics/unown_j_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownJ:: @ 8D48BEC - .incbin "graphics/pokemon/icons/unown_J_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownK:: @ 8D48FEC - .incbin "graphics/pokemon/front_pics/unown_k_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownK:: @ 8D491BC - .incbin "graphics/pokemon/back_pics/unown_k_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownK:: @ 8D493B4 - .incbin "graphics/pokemon/icons/unown_K_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownL:: @ 8D497B4 - .incbin "graphics/pokemon/front_pics/unown_l_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownL:: @ 8D49964 - .incbin "graphics/pokemon/back_pics/unown_l_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownL:: @ 8D49B38 - .incbin "graphics/pokemon/icons/unown_L_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownM:: @ 8D49F38 - .incbin "graphics/pokemon/front_pics/unown_m_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownM:: @ 8D4A15C - .incbin "graphics/pokemon/back_pics/unown_m_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownM:: @ 8D4A404 - .incbin "graphics/pokemon/icons/unown_M_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownN:: @ 8D4A804 - .incbin "graphics/pokemon/front_pics/unown_n_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownN:: @ 8D4A9FC - .incbin "graphics/pokemon/back_pics/unown_n_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownN:: @ 8D4AC68 - .incbin "graphics/pokemon/icons/unown_N_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownO:: @ 8D4B068 - .incbin "graphics/pokemon/front_pics/unown_o_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownO:: @ 8D4B2A0 - .incbin "graphics/pokemon/back_pics/unown_o_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownO:: @ 8D4B560 - .incbin "graphics/pokemon/icons/unown_O_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownP:: @ 8D4B960 - .incbin "graphics/pokemon/front_pics/unown_p_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownP:: @ 8D4BB00 - .incbin "graphics/pokemon/back_pics/unown_p_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownP:: @ 8D4BCC4 - .incbin "graphics/pokemon/icons/unown_P_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownQ:: @ 8D4C0C4 - .incbin "graphics/pokemon/front_pics/unown_q_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownQ:: @ 8D4C278 - .incbin "graphics/pokemon/back_pics/unown_q_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownQ:: @ 8D4C444 - .incbin "graphics/pokemon/icons/unown_Q_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownR:: @ 8D4C844 - .incbin "graphics/pokemon/front_pics/unown_r_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownR:: @ 8D4C9E8 - .incbin "graphics/pokemon/back_pics/unown_r_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownR:: @ 8D4CBB0 - .incbin "graphics/pokemon/icons/unown_R_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownS:: @ 8D4CFB0 - .incbin "graphics/pokemon/front_pics/unown_s_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownS:: @ 8D4D198 - .incbin "graphics/pokemon/back_pics/unown_s_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownS:: @ 8D4D3EC - .incbin "graphics/pokemon/icons/unown_S_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownT:: @ 8D4D7EC - .incbin "graphics/pokemon/front_pics/unown_t_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownT:: @ 8D4D99C - .incbin "graphics/pokemon/back_pics/unown_t_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownT:: @ 8D4DB50 - .incbin "graphics/pokemon/icons/unown_T_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownU:: @ 8D4DF50 - .incbin "graphics/pokemon/front_pics/unown_u_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownU:: @ 8D4E168 - .incbin "graphics/pokemon/back_pics/unown_u_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownU:: @ 8D4E3BC - .incbin "graphics/pokemon/icons/unown_U_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownV:: @ 8D4E7BC - .incbin "graphics/pokemon/front_pics/unown_v_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownV:: @ 8D4E9A0 - .incbin "graphics/pokemon/back_pics/unown_v_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownV:: @ 8D4EBD0 - .incbin "graphics/pokemon/icons/unown_V_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownW:: @ 8D4EFD0 - .incbin "graphics/pokemon/front_pics/unown_w_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownW:: @ 8D4F1A4 - .incbin "graphics/pokemon/back_pics/unown_w_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownW:: @ 8D4F3A8 - .incbin "graphics/pokemon/icons/unown_W_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownX:: @ 8D4F7A8 - .incbin "graphics/pokemon/front_pics/unown_x_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownX:: @ 8D4F96C - .incbin "graphics/pokemon/back_pics/unown_x_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownX:: @ 8D4FB5C - .incbin "graphics/pokemon/icons/unown_X_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownY:: @ 8D4FF5C - .incbin "graphics/pokemon/front_pics/unown_y_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownY:: @ 8D50134 - .incbin "graphics/pokemon/back_pics/unown_y_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownY:: @ 8D50328 - .incbin "graphics/pokemon/icons/unown_Y_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownZ:: @ 8D50728 - .incbin "graphics/pokemon/front_pics/unown_z_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownZ:: @ 8D508D8 - .incbin "graphics/pokemon/back_pics/unown_z_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownZ:: @ 8D50AB4 - .incbin "graphics/pokemon/icons/unown_Z_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownExclamationMark:: @ 8D50EB4 - .incbin "graphics/pokemon/front_pics/unown_exclamation_mark_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownExclamationMark:: @ 8D51044 - .incbin "graphics/pokemon/back_pics/unown_exclamation_mark_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownExclamationMark:: @ 8D5120C - .incbin "graphics/pokemon/icons/unown_exclamation_mark_icon.4bpp" - - .align 2 -gMonStillFrontPic_UnownQuestionMark:: @ 8D5160C - .incbin "graphics/pokemon/front_pics/unown_question_mark_still_front_pic.4bpp.lz" - - .align 2 -gMonBackPic_UnownQuestionMark:: @ 8D517C8 - .incbin "graphics/pokemon/back_pics/unown_question_mark_back_pic.4bpp.lz" - - .align 2 -gMonIcon_UnownQuestionMark:: @ 8D519C8 - .incbin "graphics/pokemon/icons/unown_question_mark_icon.4bpp" diff --git a/data/graphics/pokemon/mon_icon_palette_indices.inc b/data/graphics/pokemon/mon_icon_palette_indices.inc deleted file mode 100644 index f1d57466c..000000000 --- a/data/graphics/pokemon/mon_icon_palette_indices.inc +++ /dev/null @@ -1,442 +0,0 @@ - .align 2 -gMonIconPaletteIndices:: @ 857C388 - .byte 0 @ ?????????? - .byte 1 @ Bulbasaur - .byte 1 @ Ivysaur - .byte 1 @ Venusaur - .byte 0 @ Charmander - .byte 0 @ Charmeleon - .byte 0 @ Charizard - .byte 0 @ Squirtle - .byte 2 @ Wartortle - .byte 2 @ Blastoise - .byte 1 @ Caterpie - .byte 1 @ Metapod - .byte 0 @ Butterfree - .byte 1 @ Weedle - .byte 2 @ Kakuna - .byte 2 @ Beedrill - .byte 0 @ Pidgey - .byte 0 @ Pidgeotto - .byte 0 @ Pidgeot - .byte 2 @ Rattata - .byte 1 @ Raticate - .byte 0 @ Spearow - .byte 0 @ Fearow - .byte 2 @ Ekans - .byte 2 @ Arbok - .byte 2 @ Pikachu - .byte 0 @ Raichu - .byte 2 @ Sandshrew - .byte 2 @ Sandslash - .byte 2 @ Nidoran♀ - .byte 2 @ Nidorina - .byte 2 @ Nidoqueen - .byte 2 @ Nidoran♂ - .byte 2 @ Nidorino - .byte 2 @ Nidoking - .byte 0 @ Clefairy - .byte 0 @ Clefable - .byte 2 @ Vulpix - .byte 1 @ Ninetales - .byte 0 @ Jigglypuff - .byte 0 @ Wigglytuff - .byte 2 @ Zubat - .byte 2 @ Golbat - .byte 1 @ Oddish - .byte 0 @ Gloom - .byte 0 @ Vileplume - .byte 0 @ Paras - .byte 0 @ Parasect - .byte 0 @ Venonat - .byte 2 @ Venomoth - .byte 2 @ Diglett - .byte 2 @ Dugtrio - .byte 1 @ Meowth - .byte 1 @ Persian - .byte 1 @ Psyduck - .byte 2 @ Golduck - .byte 1 @ Mankey - .byte 2 @ Primeape - .byte 0 @ Growlithe - .byte 0 @ Arcanine - .byte 0 @ Poliwag - .byte 0 @ Poliwhirl - .byte 0 @ Poliwrath - .byte 2 @ Abra - .byte 2 @ Kadabra - .byte 2 @ Alakazam - .byte 0 @ Machop - .byte 2 @ Machoke - .byte 0 @ Machamp - .byte 1 @ Bellsprout - .byte 1 @ Weepinbell - .byte 1 @ Victreebel - .byte 2 @ Tentacool - .byte 2 @ Tentacruel - .byte 1 @ Geodude - .byte 1 @ Graveler - .byte 1 @ Golem - .byte 0 @ Ponyta - .byte 0 @ Rapidash - .byte 0 @ Slowpoke - .byte 0 @ Slowbro - .byte 0 @ Magnemite - .byte 0 @ Magneton - .byte 1 @ Farfetch'd - .byte 2 @ Doduo - .byte 2 @ Dodrio - .byte 2 @ Seel - .byte 2 @ Dewgong - .byte 2 @ Grimer - .byte 2 @ Muk - .byte 2 @ Shellder - .byte 2 @ Cloyster - .byte 2 @ Gastly - .byte 2 @ Haunter - .byte 2 @ Gengar - .byte 2 @ Onix - .byte 2 @ Drowzee - .byte 1 @ Hypno - .byte 2 @ Krabby - .byte 2 @ Kingler - .byte 0 @ Voltorb - .byte 0 @ Electrode - .byte 0 @ Exeggcute - .byte 1 @ Exeggutor - .byte 1 @ Cubone - .byte 1 @ Marowak - .byte 2 @ Hitmonlee - .byte 2 @ Hitmonchan - .byte 1 @ Lickitung - .byte 2 @ Koffing - .byte 2 @ Weezing - .byte 1 @ Rhyhorn - .byte 1 @ Rhydon - .byte 0 @ Chansey - .byte 0 @ Tangela - .byte 1 @ Kangaskhan - .byte 0 @ Horsea - .byte 0 @ Seadra - .byte 0 @ Goldeen - .byte 0 @ Seaking - .byte 2 @ Staryu - .byte 2 @ Starmie - .byte 0 @ Mr. mime - .byte 1 @ Scyther - .byte 2 @ Jynx - .byte 1 @ Electabuzz - .byte 0 @ Magmar - .byte 2 @ Pinsir - .byte 2 @ Tauros - .byte 0 @ Magikarp - .byte 0 @ Gyarados - .byte 2 @ Lapras - .byte 2 @ Ditto - .byte 2 @ Eevee - .byte 0 @ Vaporeon - .byte 0 @ Jolteon - .byte 0 @ Flareon - .byte 0 @ Porygon - .byte 0 @ Omanyte - .byte 0 @ Omastar - .byte 2 @ Kabuto - .byte 2 @ Kabutops - .byte 0 @ Aerodactyl - .byte 1 @ Snorlax - .byte 0 @ Articuno - .byte 0 @ Zapdos - .byte 0 @ Moltres - .byte 0 @ Dratini - .byte 0 @ Dragonair - .byte 2 @ Dragonite - .byte 2 @ Mewtwo - .byte 0 @ Mew - .byte 1 @ Chikorita - .byte 1 @ Bayleef - .byte 1 @ Meganium - .byte 1 @ Cyndaquil - .byte 1 @ Quilava - .byte 1 @ Typhlosion - .byte 2 @ Totodile - .byte 2 @ Croconaw - .byte 2 @ Feraligatr - .byte 2 @ Sentret - .byte 2 @ Furret - .byte 2 @ Hoothoot - .byte 2 @ Noctowl - .byte 0 @ Ledyba - .byte 0 @ Ledian - .byte 1 @ Spinarak - .byte 0 @ Ariados - .byte 2 @ Crobat - .byte 2 @ Chinchou - .byte 0 @ Lanturn - .byte 0 @ Pichu - .byte 0 @ Cleffa - .byte 1 @ Igglybuff - .byte 2 @ Togepi - .byte 2 @ Togetic - .byte 0 @ Natu - .byte 0 @ Xatu - .byte 2 @ Mareep - .byte 0 @ Flaaffy - .byte 0 @ Ampharos - .byte 1 @ Bellossom - .byte 2 @ Marill - .byte 2 @ Azumarill - .byte 1 @ Sudowoodo - .byte 1 @ Politoed - .byte 1 @ Hoppip - .byte 1 @ Skiploom - .byte 2 @ Jumpluff - .byte 2 @ Aipom - .byte 1 @ Sunkern - .byte 1 @ Sunflora - .byte 1 @ Yanma - .byte 0 @ Wooper - .byte 0 @ Quagsire - .byte 2 @ Espeon - .byte 2 @ Umbreon - .byte 2 @ Murkrow - .byte 0 @ Slowking - .byte 0 @ Misdreavus - .byte 0 @ Unown A - .byte 0 @ Wobbuffet - .byte 1 @ Girafarig - .byte 0 @ Pineco - .byte 2 @ Forretress - .byte 2 @ Dunsparce - .byte 2 @ Gligar - .byte 0 @ Steelix - .byte 0 @ Snubbull - .byte 2 @ Granbull - .byte 0 @ Qwilfish - .byte 0 @ Scizor - .byte 1 @ Shuckle - .byte 2 @ Heracross - .byte 0 @ Sneasel - .byte 0 @ Teddiursa - .byte 2 @ Ursaring - .byte 0 @ Slugma - .byte 0 @ Magcargo - .byte 2 @ Swinub - .byte 2 @ Piloswine - .byte 0 @ Corsola - .byte 0 @ Remoraid - .byte 0 @ Octillery - .byte 0 @ Delibird - .byte 2 @ Mantine - .byte 0 @ Skarmory - .byte 0 @ Houndour - .byte 0 @ Houndoom - .byte 0 @ Kingdra - .byte 0 @ Phanpy - .byte 0 @ Donphan - .byte 0 @ Porygon2 - .byte 2 @ Stantler - .byte 1 @ Smeargle - .byte 2 @ Tyrogue - .byte 2 @ Hitmontop - .byte 1 @ Smoochum - .byte 1 @ Elekid - .byte 1 @ Magby - .byte 1 @ Miltank - .byte 1 @ Blissey - .byte 0 @ Raikou - .byte 2 @ Entei - .byte 0 @ Suicune - .byte 1 @ Larvitar - .byte 0 @ Pupitar - .byte 1 @ Tyranitar - .byte 0 @ Lugia - .byte 1 @ Ho-Oh - .byte 1 @ Celebi - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 0 @ ? - .byte 1 @ Treecko - .byte 0 @ Grovyle - .byte 1 @ Sceptile - .byte 0 @ Torchic - .byte 0 @ Combusken - .byte 0 @ Blaziken - .byte 0 @ Mudkip - .byte 0 @ Marshtomp - .byte 0 @ Swampert - .byte 2 @ Poochyena - .byte 2 @ Mightyena - .byte 2 @ Zigzagoon - .byte 2 @ Linoone - .byte 0 @ Wurmple - .byte 2 @ Silcoon - .byte 0 @ Beautifly - .byte 2 @ Cascoon - .byte 1 @ Dustox - .byte 1 @ Lotad - .byte 1 @ Lombre - .byte 1 @ Ludicolo - .byte 1 @ Seedot - .byte 1 @ Nuzleaf - .byte 0 @ Shiftry - .byte 1 @ Nincada - .byte 1 @ Ninjask - .byte 1 @ Shedinja - .byte 2 @ Taillow - .byte 2 @ Swellow - .byte 1 @ Shroomish - .byte 1 @ Breloom - .byte 1 @ Spinda - .byte 0 @ Wingull - .byte 0 @ Pelipper - .byte 2 @ Surskit - .byte 0 @ Masquerain - .byte 2 @ Wailmer - .byte 0 @ Wailord - .byte 0 @ Skitty - .byte 2 @ Delcatty - .byte 1 @ Kecleon - .byte 1 @ Baltoy - .byte 0 @ Claydol - .byte 0 @ Nosepass - .byte 1 @ Torkoal - .byte 2 @ Sableye - .byte 0 @ Barboach - .byte 0 @ Whiscash - .byte 0 @ Luvdisc - .byte 0 @ Corphish - .byte 0 @ Crawdaunt - .byte 2 @ Feebas - .byte 0 @ Milotic - .byte 0 @ Carvanha - .byte 0 @ Sharpedo - .byte 1 @ Trapinch - .byte 1 @ Vibrava - .byte 1 @ Flygon - .byte 2 @ Makuhita - .byte 1 @ Hariyama - .byte 1 @ Electrike - .byte 0 @ Manectric - .byte 1 @ Numel - .byte 0 @ Camerupt - .byte 2 @ Spheal - .byte 2 @ Sealeo - .byte 0 @ Walrein - .byte 1 @ Cacnea - .byte 1 @ Cacturne - .byte 2 @ Snorunt - .byte 0 @ Glalie - .byte 1 @ Lunatone - .byte 0 @ Solrock - .byte 2 @ Azurill - .byte 0 @ Spoink - .byte 2 @ Grumpig - .byte 0 @ Plusle - .byte 0 @ Minun - .byte 2 @ Mawile - .byte 0 @ Meditite - .byte 0 @ Medicham - .byte 0 @ Swablu - .byte 0 @ Altaria - .byte 0 @ Wynaut - .byte 0 @ Duskull - .byte 0 @ Dusclops - .byte 0 @ Roselia - .byte 2 @ Slakoth - .byte 2 @ Vigoroth - .byte 1 @ Slaking - .byte 1 @ Gulpin - .byte 2 @ Swalot - .byte 1 @ Tropius - .byte 0 @ Whismur - .byte 2 @ Loudred - .byte 2 @ Exploud - .byte 0 @ Clamperl - .byte 0 @ Huntail - .byte 0 @ Gorebyss - .byte 0 @ Absol - .byte 0 @ Shuppet - .byte 0 @ Banette - .byte 2 @ Seviper - .byte 0 @ Zangoose - .byte 1 @ Relicanth - .byte 2 @ Aron - .byte 2 @ Lairon - .byte 2 @ Aggron - .byte 0 @ Castform - .byte 0 @ Volbeat - .byte 2 @ Illumise - .byte 2 @ Lileep - .byte 0 @ Cradily - .byte 0 @ Anorith - .byte 0 @ Armaldo - .byte 1 @ Ralts - .byte 1 @ Kirlia - .byte 1 @ Gardevoir - .byte 2 @ Bagon - .byte 2 @ Shelgon - .byte 0 @ Salamence - .byte 0 @ Beldum - .byte 0 @ Metang - .byte 0 @ Metagross - .byte 2 @ Regirock - .byte 2 @ Regice - .byte 2 @ Registeel - .byte 2 @ Kyogre - .byte 0 @ Groudon - .byte 1 @ Rayquaza - .byte 0 @ Latias - .byte 2 @ Latios - .byte 0 @ Jirachi - .byte 0 @ Deoxys - .byte 0 @ Chimecho - .byte 1 @ Egg - .byte 0 @ Unown B - .byte 0 @ Unown C - .byte 0 @ Unown D - .byte 0 @ Unown E - .byte 0 @ Unown F - .byte 0 @ Unown G - .byte 0 @ Unown H - .byte 0 @ Unown I - .byte 0 @ Unown J - .byte 0 @ Unown K - .byte 0 @ Unown L - .byte 0 @ Unown M - .byte 0 @ Unown N - .byte 0 @ Unown O - .byte 0 @ Unown P - .byte 0 @ Unown Q - .byte 0 @ Unown R - .byte 0 @ Unown S - .byte 0 @ Unown T - .byte 0 @ Unown U - .byte 0 @ Unown V - .byte 0 @ Unown W - .byte 0 @ Unown X - .byte 0 @ Unown Y - .byte 0 @ Unown Z - .byte 0 @ Unown Exclamation Mark - .byte 0 @ Unown Question Mark diff --git a/data/graphics/pokemon/mon_icon_palette_table.inc b/data/graphics/pokemon/mon_icon_palette_table.inc deleted file mode 100644 index eb7919423..000000000 --- a/data/graphics/pokemon/mon_icon_palette_table.inc +++ /dev/null @@ -1,11 +0,0 @@ - .align 2 -gMonIconPaletteTable:: @ 857C540 - obj_pal gMonIconPalettes + 0 * 32, 56000 - obj_pal gMonIconPalettes + 1 * 32, 56001 - obj_pal gMonIconPalettes + 2 * 32, 56002 - -@ These palettes are actually part of the title screen BG palette and are not -@ used for Pokémon icons. - obj_pal gMonIconPalettes + 3 * 32, 56003 - obj_pal gMonIconPalettes + 4 * 32, 56004 - obj_pal gMonIconPalettes + 5 * 32, 56005 diff --git a/data/graphics/pokemon/mon_icon_table.inc b/data/graphics/pokemon/mon_icon_table.inc deleted file mode 100644 index 06a86de43..000000000 --- a/data/graphics/pokemon/mon_icon_table.inc +++ /dev/null @@ -1,442 +0,0 @@ - .align 2 -gMonIconTable:: @ 857BCA8 - .4byte gMonIcon_Bulbasaur - .4byte gMonIcon_Bulbasaur - .4byte gMonIcon_Ivysaur - .4byte gMonIcon_Venusaur - .4byte gMonIcon_Charmander - .4byte gMonIcon_Charmeleon - .4byte gMonIcon_Charizard - .4byte gMonIcon_Squirtle - .4byte gMonIcon_Wartortle - .4byte gMonIcon_Blastoise - .4byte gMonIcon_Caterpie - .4byte gMonIcon_Metapod - .4byte gMonIcon_Butterfree - .4byte gMonIcon_Weedle - .4byte gMonIcon_Kakuna - .4byte gMonIcon_Beedrill - .4byte gMonIcon_Pidgey - .4byte gMonIcon_Pidgeotto - .4byte gMonIcon_Pidgeot - .4byte gMonIcon_Rattata - .4byte gMonIcon_Raticate - .4byte gMonIcon_Spearow - .4byte gMonIcon_Fearow - .4byte gMonIcon_Ekans - .4byte gMonIcon_Arbok - .4byte gMonIcon_Pikachu - .4byte gMonIcon_Raichu - .4byte gMonIcon_Sandshrew - .4byte gMonIcon_Sandslash - .4byte gMonIcon_NidoranF - .4byte gMonIcon_Nidorina - .4byte gMonIcon_Nidoqueen - .4byte gMonIcon_NidoranM - .4byte gMonIcon_Nidorino - .4byte gMonIcon_Nidoking - .4byte gMonIcon_Clefairy - .4byte gMonIcon_Clefable - .4byte gMonIcon_Vulpix - .4byte gMonIcon_Ninetales - .4byte gMonIcon_Jigglypuff - .4byte gMonIcon_Wigglytuff - .4byte gMonIcon_Zubat - .4byte gMonIcon_Golbat - .4byte gMonIcon_Oddish - .4byte gMonIcon_Gloom - .4byte gMonIcon_Vileplume - .4byte gMonIcon_Paras - .4byte gMonIcon_Parasect - .4byte gMonIcon_Venonat - .4byte gMonIcon_Venomoth - .4byte gMonIcon_Diglett - .4byte gMonIcon_Dugtrio - .4byte gMonIcon_Meowth - .4byte gMonIcon_Persian - .4byte gMonIcon_Psyduck - .4byte gMonIcon_Golduck - .4byte gMonIcon_Mankey - .4byte gMonIcon_Primeape - .4byte gMonIcon_Growlithe - .4byte gMonIcon_Arcanine - .4byte gMonIcon_Poliwag - .4byte gMonIcon_Poliwhirl - .4byte gMonIcon_Poliwrath - .4byte gMonIcon_Abra - .4byte gMonIcon_Kadabra - .4byte gMonIcon_Alakazam - .4byte gMonIcon_Machop - .4byte gMonIcon_Machoke - .4byte gMonIcon_Machamp - .4byte gMonIcon_Bellsprout - .4byte gMonIcon_Weepinbell - .4byte gMonIcon_Victreebel - .4byte gMonIcon_Tentacool - .4byte gMonIcon_Tentacruel - .4byte gMonIcon_Geodude - .4byte gMonIcon_Graveler - .4byte gMonIcon_Golem - .4byte gMonIcon_Ponyta - .4byte gMonIcon_Rapidash - .4byte gMonIcon_Slowpoke - .4byte gMonIcon_Slowbro - .4byte gMonIcon_Magnemite - .4byte gMonIcon_Magneton - .4byte gMonIcon_Farfetchd - .4byte gMonIcon_Doduo - .4byte gMonIcon_Dodrio - .4byte gMonIcon_Seel - .4byte gMonIcon_Dewgong - .4byte gMonIcon_Grimer - .4byte gMonIcon_Muk - .4byte gMonIcon_Shellder - .4byte gMonIcon_Cloyster - .4byte gMonIcon_Gastly - .4byte gMonIcon_Haunter - .4byte gMonIcon_Gengar - .4byte gMonIcon_Onix - .4byte gMonIcon_Drowzee - .4byte gMonIcon_Hypno - .4byte gMonIcon_Krabby - .4byte gMonIcon_Kingler - .4byte gMonIcon_Voltorb - .4byte gMonIcon_Electrode - .4byte gMonIcon_Exeggcute - .4byte gMonIcon_Exeggutor - .4byte gMonIcon_Cubone - .4byte gMonIcon_Marowak - .4byte gMonIcon_Hitmonlee - .4byte gMonIcon_Hitmonchan - .4byte gMonIcon_Lickitung - .4byte gMonIcon_Koffing - .4byte gMonIcon_Weezing - .4byte gMonIcon_Rhyhorn - .4byte gMonIcon_Rhydon - .4byte gMonIcon_Chansey - .4byte gMonIcon_Tangela - .4byte gMonIcon_Kangaskhan - .4byte gMonIcon_Horsea - .4byte gMonIcon_Seadra - .4byte gMonIcon_Goldeen - .4byte gMonIcon_Seaking - .4byte gMonIcon_Staryu - .4byte gMonIcon_Starmie - .4byte gMonIcon_Mrmime - .4byte gMonIcon_Scyther - .4byte gMonIcon_Jynx - .4byte gMonIcon_Electabuzz - .4byte gMonIcon_Magmar - .4byte gMonIcon_Pinsir - .4byte gMonIcon_Tauros - .4byte gMonIcon_Magikarp - .4byte gMonIcon_Gyarados - .4byte gMonIcon_Lapras - .4byte gMonIcon_Ditto - .4byte gMonIcon_Eevee - .4byte gMonIcon_Vaporeon - .4byte gMonIcon_Jolteon - .4byte gMonIcon_Flareon - .4byte gMonIcon_Porygon - .4byte gMonIcon_Omanyte - .4byte gMonIcon_Omastar - .4byte gMonIcon_Kabuto - .4byte gMonIcon_Kabutops - .4byte gMonIcon_Aerodactyl - .4byte gMonIcon_Snorlax - .4byte gMonIcon_Articuno - .4byte gMonIcon_Zapdos - .4byte gMonIcon_Moltres - .4byte gMonIcon_Dratini - .4byte gMonIcon_Dragonair - .4byte gMonIcon_Dragonite - .4byte gMonIcon_Mewtwo - .4byte gMonIcon_Mew - .4byte gMonIcon_Chikorita - .4byte gMonIcon_Bayleef - .4byte gMonIcon_Meganium - .4byte gMonIcon_Cyndaquil - .4byte gMonIcon_Quilava - .4byte gMonIcon_Typhlosion - .4byte gMonIcon_Totodile - .4byte gMonIcon_Croconaw - .4byte gMonIcon_Feraligatr - .4byte gMonIcon_Sentret - .4byte gMonIcon_Furret - .4byte gMonIcon_Hoothoot - .4byte gMonIcon_Noctowl - .4byte gMonIcon_Ledyba - .4byte gMonIcon_Ledian - .4byte gMonIcon_Spinarak - .4byte gMonIcon_Ariados - .4byte gMonIcon_Crobat - .4byte gMonIcon_Chinchou - .4byte gMonIcon_Lanturn - .4byte gMonIcon_Pichu - .4byte gMonIcon_Cleffa - .4byte gMonIcon_Igglybuff - .4byte gMonIcon_Togepi - .4byte gMonIcon_Togetic - .4byte gMonIcon_Natu - .4byte gMonIcon_Xatu - .4byte gMonIcon_Mareep - .4byte gMonIcon_Flaaffy - .4byte gMonIcon_Ampharos - .4byte gMonIcon_Bellossom - .4byte gMonIcon_Marill - .4byte gMonIcon_Azumarill - .4byte gMonIcon_Sudowoodo - .4byte gMonIcon_Politoed - .4byte gMonIcon_Hoppip - .4byte gMonIcon_Skiploom - .4byte gMonIcon_Jumpluff - .4byte gMonIcon_Aipom - .4byte gMonIcon_Sunkern - .4byte gMonIcon_Sunflora - .4byte gMonIcon_Yanma - .4byte gMonIcon_Wooper - .4byte gMonIcon_Quagsire - .4byte gMonIcon_Espeon - .4byte gMonIcon_Umbreon - .4byte gMonIcon_Murkrow - .4byte gMonIcon_Slowking - .4byte gMonIcon_Misdreavus - .4byte gMonIcon_UnownA - .4byte gMonIcon_Wobbuffet - .4byte gMonIcon_Girafarig - .4byte gMonIcon_Pineco - .4byte gMonIcon_Forretress - .4byte gMonIcon_Dunsparce - .4byte gMonIcon_Gligar - .4byte gMonIcon_Steelix - .4byte gMonIcon_Snubbull - .4byte gMonIcon_Granbull - .4byte gMonIcon_Qwilfish - .4byte gMonIcon_Scizor - .4byte gMonIcon_Shuckle - .4byte gMonIcon_Heracross - .4byte gMonIcon_Sneasel - .4byte gMonIcon_Teddiursa - .4byte gMonIcon_Ursaring - .4byte gMonIcon_Slugma - .4byte gMonIcon_Magcargo - .4byte gMonIcon_Swinub - .4byte gMonIcon_Piloswine - .4byte gMonIcon_Corsola - .4byte gMonIcon_Remoraid - .4byte gMonIcon_Octillery - .4byte gMonIcon_Delibird - .4byte gMonIcon_Mantine - .4byte gMonIcon_Skarmory - .4byte gMonIcon_Houndour - .4byte gMonIcon_Houndoom - .4byte gMonIcon_Kingdra - .4byte gMonIcon_Phanpy - .4byte gMonIcon_Donphan - .4byte gMonIcon_Porygon2 - .4byte gMonIcon_Stantler - .4byte gMonIcon_Smeargle - .4byte gMonIcon_Tyrogue - .4byte gMonIcon_Hitmontop - .4byte gMonIcon_Smoochum - .4byte gMonIcon_Elekid - .4byte gMonIcon_Magby - .4byte gMonIcon_Miltank - .4byte gMonIcon_Blissey - .4byte gMonIcon_Raikou - .4byte gMonIcon_Entei - .4byte gMonIcon_Suicune - .4byte gMonIcon_Larvitar - .4byte gMonIcon_Pupitar - .4byte gMonIcon_Tyranitar - .4byte gMonIcon_Lugia - .4byte gMonIcon_HoOh - .4byte gMonIcon_Celebi - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_QuestionMark - .4byte gMonIcon_Treecko - .4byte gMonIcon_Grovyle - .4byte gMonIcon_Sceptile - .4byte gMonIcon_Torchic - .4byte gMonIcon_Combusken - .4byte gMonIcon_Blaziken - .4byte gMonIcon_Mudkip - .4byte gMonIcon_Marshtomp - .4byte gMonIcon_Swampert - .4byte gMonIcon_Poochyena - .4byte gMonIcon_Mightyena - .4byte gMonIcon_Zigzagoon - .4byte gMonIcon_Linoone - .4byte gMonIcon_Wurmple - .4byte gMonIcon_Silcoon - .4byte gMonIcon_Beautifly - .4byte gMonIcon_Cascoon - .4byte gMonIcon_Dustox - .4byte gMonIcon_Lotad - .4byte gMonIcon_Lombre - .4byte gMonIcon_Ludicolo - .4byte gMonIcon_Seedot - .4byte gMonIcon_Nuzleaf - .4byte gMonIcon_Shiftry - .4byte gMonIcon_Nincada - .4byte gMonIcon_Ninjask - .4byte gMonIcon_Shedinja - .4byte gMonIcon_Taillow - .4byte gMonIcon_Swellow - .4byte gMonIcon_Shroomish - .4byte gMonIcon_Breloom - .4byte gMonIcon_Spinda - .4byte gMonIcon_Wingull - .4byte gMonIcon_Pelipper - .4byte gMonIcon_Surskit - .4byte gMonIcon_Masquerain - .4byte gMonIcon_Wailmer - .4byte gMonIcon_Wailord - .4byte gMonIcon_Skitty - .4byte gMonIcon_Delcatty - .4byte gMonIcon_Kecleon - .4byte gMonIcon_Baltoy - .4byte gMonIcon_Claydol - .4byte gMonIcon_Nosepass - .4byte gMonIcon_Torkoal - .4byte gMonIcon_Sableye - .4byte gMonIcon_Barboach - .4byte gMonIcon_Whiscash - .4byte gMonIcon_Luvdisc - .4byte gMonIcon_Corphish - .4byte gMonIcon_Crawdaunt - .4byte gMonIcon_Feebas - .4byte gMonIcon_Milotic - .4byte gMonIcon_Carvanha - .4byte gMonIcon_Sharpedo - .4byte gMonIcon_Trapinch - .4byte gMonIcon_Vibrava - .4byte gMonIcon_Flygon - .4byte gMonIcon_Makuhita - .4byte gMonIcon_Hariyama - .4byte gMonIcon_Electrike - .4byte gMonIcon_Manectric - .4byte gMonIcon_Numel - .4byte gMonIcon_Camerupt - .4byte gMonIcon_Spheal - .4byte gMonIcon_Sealeo - .4byte gMonIcon_Walrein - .4byte gMonIcon_Cacnea - .4byte gMonIcon_Cacturne - .4byte gMonIcon_Snorunt - .4byte gMonIcon_Glalie - .4byte gMonIcon_Lunatone - .4byte gMonIcon_Solrock - .4byte gMonIcon_Azurill - .4byte gMonIcon_Spoink - .4byte gMonIcon_Grumpig - .4byte gMonIcon_Plusle - .4byte gMonIcon_Minun - .4byte gMonIcon_Mawile - .4byte gMonIcon_Meditite - .4byte gMonIcon_Medicham - .4byte gMonIcon_Swablu - .4byte gMonIcon_Altaria - .4byte gMonIcon_Wynaut - .4byte gMonIcon_Duskull - .4byte gMonIcon_Dusclops - .4byte gMonIcon_Roselia - .4byte gMonIcon_Slakoth - .4byte gMonIcon_Vigoroth - .4byte gMonIcon_Slaking - .4byte gMonIcon_Gulpin - .4byte gMonIcon_Swalot - .4byte gMonIcon_Tropius - .4byte gMonIcon_Whismur - .4byte gMonIcon_Loudred - .4byte gMonIcon_Exploud - .4byte gMonIcon_Clamperl - .4byte gMonIcon_Huntail - .4byte gMonIcon_Gorebyss - .4byte gMonIcon_Absol - .4byte gMonIcon_Shuppet - .4byte gMonIcon_Banette - .4byte gMonIcon_Seviper - .4byte gMonIcon_Zangoose - .4byte gMonIcon_Relicanth - .4byte gMonIcon_Aron - .4byte gMonIcon_Lairon - .4byte gMonIcon_Aggron - .4byte gMonIcon_Castform - .4byte gMonIcon_Volbeat - .4byte gMonIcon_Illumise - .4byte gMonIcon_Lileep - .4byte gMonIcon_Cradily - .4byte gMonIcon_Anorith - .4byte gMonIcon_Armaldo - .4byte gMonIcon_Ralts - .4byte gMonIcon_Kirlia - .4byte gMonIcon_Gardevoir - .4byte gMonIcon_Bagon - .4byte gMonIcon_Shelgon - .4byte gMonIcon_Salamence - .4byte gMonIcon_Beldum - .4byte gMonIcon_Metang - .4byte gMonIcon_Metagross - .4byte gMonIcon_Regirock - .4byte gMonIcon_Regice - .4byte gMonIcon_Registeel - .4byte gMonIcon_Kyogre - .4byte gMonIcon_Groudon - .4byte gMonIcon_Rayquaza - .4byte gMonIcon_Latias - .4byte gMonIcon_Latios - .4byte gMonIcon_Jirachi - .4byte gMonIcon_Deoxys - .4byte gMonIcon_Chimecho - .4byte gMonIcon_Egg - .4byte gMonIcon_UnownB - .4byte gMonIcon_UnownC - .4byte gMonIcon_UnownD - .4byte gMonIcon_UnownE - .4byte gMonIcon_UnownF - .4byte gMonIcon_UnownG - .4byte gMonIcon_UnownH - .4byte gMonIcon_UnownI - .4byte gMonIcon_UnownJ - .4byte gMonIcon_UnownK - .4byte gMonIcon_UnownL - .4byte gMonIcon_UnownM - .4byte gMonIcon_UnownN - .4byte gMonIcon_UnownO - .4byte gMonIcon_UnownP - .4byte gMonIcon_UnownQ - .4byte gMonIcon_UnownR - .4byte gMonIcon_UnownS - .4byte gMonIcon_UnownT - .4byte gMonIcon_UnownU - .4byte gMonIcon_UnownV - .4byte gMonIcon_UnownW - .4byte gMonIcon_UnownX - .4byte gMonIcon_UnownY - .4byte gMonIcon_UnownZ - .4byte gMonIcon_UnownExclamationMark - .4byte gMonIcon_UnownQuestionMark diff --git a/data/graphics/pokemon/mon_palette_table.inc b/data/graphics/pokemon/mon_palette_table.inc deleted file mode 100644 index d636d13ec..000000000 --- a/data/graphics/pokemon/mon_palette_table.inc +++ /dev/null @@ -1,442 +0,0 @@ - .align 2 -gMonPaletteTable:: @ 8303678 - obj_pal gMonPalette_CircledQuestionMark, 0 - obj_pal gMonPalette_Bulbasaur, 1 - obj_pal gMonPalette_Ivysaur, 2 - obj_pal gMonPalette_Venusaur, 3 - obj_pal gMonPalette_Charmander, 4 - obj_pal gMonPalette_Charmeleon, 5 - obj_pal gMonPalette_Charizard, 6 - obj_pal gMonPalette_Squirtle, 7 - obj_pal gMonPalette_Wartortle, 8 - obj_pal gMonPalette_Blastoise, 9 - obj_pal gMonPalette_Caterpie, 10 - obj_pal gMonPalette_Metapod, 11 - obj_pal gMonPalette_Butterfree, 12 - obj_pal gMonPalette_Weedle, 13 - obj_pal gMonPalette_Kakuna, 14 - obj_pal gMonPalette_Beedrill, 15 - obj_pal gMonPalette_Pidgey, 16 - obj_pal gMonPalette_Pidgeotto, 17 - obj_pal gMonPalette_Pidgeot, 18 - obj_pal gMonPalette_Rattata, 19 - obj_pal gMonPalette_Raticate, 20 - obj_pal gMonPalette_Spearow, 21 - obj_pal gMonPalette_Fearow, 22 - obj_pal gMonPalette_Ekans, 23 - obj_pal gMonPalette_Arbok, 24 - obj_pal gMonPalette_Pikachu, 25 - obj_pal gMonPalette_Raichu, 26 - obj_pal gMonPalette_Sandshrew, 27 - obj_pal gMonPalette_Sandslash, 28 - obj_pal gMonPalette_NidoranF, 29 - obj_pal gMonPalette_Nidorina, 30 - obj_pal gMonPalette_Nidoqueen, 31 - obj_pal gMonPalette_NidoranM, 32 - obj_pal gMonPalette_Nidorino, 33 - obj_pal gMonPalette_Nidoking, 34 - obj_pal gMonPalette_Clefairy, 35 - obj_pal gMonPalette_Clefable, 36 - obj_pal gMonPalette_Vulpix, 37 - obj_pal gMonPalette_Ninetales, 38 - obj_pal gMonPalette_Jigglypuff, 39 - obj_pal gMonPalette_Wigglytuff, 40 - obj_pal gMonPalette_Zubat, 41 - obj_pal gMonPalette_Golbat, 42 - obj_pal gMonPalette_Oddish, 43 - obj_pal gMonPalette_Gloom, 44 - obj_pal gMonPalette_Vileplume, 45 - obj_pal gMonPalette_Paras, 46 - obj_pal gMonPalette_Parasect, 47 - obj_pal gMonPalette_Venonat, 48 - obj_pal gMonPalette_Venomoth, 49 - obj_pal gMonPalette_Diglett, 50 - obj_pal gMonPalette_Dugtrio, 51 - obj_pal gMonPalette_Meowth, 52 - obj_pal gMonPalette_Persian, 53 - obj_pal gMonPalette_Psyduck, 54 - obj_pal gMonPalette_Golduck, 55 - obj_pal gMonPalette_Mankey, 56 - obj_pal gMonPalette_Primeape, 57 - obj_pal gMonPalette_Growlithe, 58 - obj_pal gMonPalette_Arcanine, 59 - obj_pal gMonPalette_Poliwag, 60 - obj_pal gMonPalette_Poliwhirl, 61 - obj_pal gMonPalette_Poliwrath, 62 - obj_pal gMonPalette_Abra, 63 - obj_pal gMonPalette_Kadabra, 64 - obj_pal gMonPalette_Alakazam, 65 - obj_pal gMonPalette_Machop, 66 - obj_pal gMonPalette_Machoke, 67 - obj_pal gMonPalette_Machamp, 68 - obj_pal gMonPalette_Bellsprout, 69 - obj_pal gMonPalette_Weepinbell, 70 - obj_pal gMonPalette_Victreebel, 71 - obj_pal gMonPalette_Tentacool, 72 - obj_pal gMonPalette_Tentacruel, 73 - obj_pal gMonPalette_Geodude, 74 - obj_pal gMonPalette_Graveler, 75 - obj_pal gMonPalette_Golem, 76 - obj_pal gMonPalette_Ponyta, 77 - obj_pal gMonPalette_Rapidash, 78 - obj_pal gMonPalette_Slowpoke, 79 - obj_pal gMonPalette_Slowbro, 80 - obj_pal gMonPalette_Magnemite, 81 - obj_pal gMonPalette_Magneton, 82 - obj_pal gMonPalette_Farfetchd, 83 - obj_pal gMonPalette_Doduo, 84 - obj_pal gMonPalette_Dodrio, 85 - obj_pal gMonPalette_Seel, 86 - obj_pal gMonPalette_Dewgong, 87 - obj_pal gMonPalette_Grimer, 88 - obj_pal gMonPalette_Muk, 89 - obj_pal gMonPalette_Shellder, 90 - obj_pal gMonPalette_Cloyster, 91 - obj_pal gMonPalette_Gastly, 92 - obj_pal gMonPalette_Haunter, 93 - obj_pal gMonPalette_Gengar, 94 - obj_pal gMonPalette_Onix, 95 - obj_pal gMonPalette_Drowzee, 96 - obj_pal gMonPalette_Hypno, 97 - obj_pal gMonPalette_Krabby, 98 - obj_pal gMonPalette_Kingler, 99 - obj_pal gMonPalette_Voltorb, 100 - obj_pal gMonPalette_Electrode, 101 - obj_pal gMonPalette_Exeggcute, 102 - obj_pal gMonPalette_Exeggutor, 103 - obj_pal gMonPalette_Cubone, 104 - obj_pal gMonPalette_Marowak, 105 - obj_pal gMonPalette_Hitmonlee, 106 - obj_pal gMonPalette_Hitmonchan, 107 - obj_pal gMonPalette_Lickitung, 108 - obj_pal gMonPalette_Koffing, 109 - obj_pal gMonPalette_Weezing, 110 - obj_pal gMonPalette_Rhyhorn, 111 - obj_pal gMonPalette_Rhydon, 112 - obj_pal gMonPalette_Chansey, 113 - obj_pal gMonPalette_Tangela, 114 - obj_pal gMonPalette_Kangaskhan, 115 - obj_pal gMonPalette_Horsea, 116 - obj_pal gMonPalette_Seadra, 117 - obj_pal gMonPalette_Goldeen, 118 - obj_pal gMonPalette_Seaking, 119 - obj_pal gMonPalette_Staryu, 120 - obj_pal gMonPalette_Starmie, 121 - obj_pal gMonPalette_Mrmime, 122 - obj_pal gMonPalette_Scyther, 123 - obj_pal gMonPalette_Jynx, 124 - obj_pal gMonPalette_Electabuzz, 125 - obj_pal gMonPalette_Magmar, 126 - obj_pal gMonPalette_Pinsir, 127 - obj_pal gMonPalette_Tauros, 128 - obj_pal gMonPalette_Magikarp, 129 - obj_pal gMonPalette_Gyarados, 130 - obj_pal gMonPalette_Lapras, 131 - obj_pal gMonPalette_Ditto, 132 - obj_pal gMonPalette_Eevee, 133 - obj_pal gMonPalette_Vaporeon, 134 - obj_pal gMonPalette_Jolteon, 135 - obj_pal gMonPalette_Flareon, 136 - obj_pal gMonPalette_Porygon, 137 - obj_pal gMonPalette_Omanyte, 138 - obj_pal gMonPalette_Omastar, 139 - obj_pal gMonPalette_Kabuto, 140 - obj_pal gMonPalette_Kabutops, 141 - obj_pal gMonPalette_Aerodactyl, 142 - obj_pal gMonPalette_Snorlax, 143 - obj_pal gMonPalette_Articuno, 144 - obj_pal gMonPalette_Zapdos, 145 - obj_pal gMonPalette_Moltres, 146 - obj_pal gMonPalette_Dratini, 147 - obj_pal gMonPalette_Dragonair, 148 - obj_pal gMonPalette_Dragonite, 149 - obj_pal gMonPalette_Mewtwo, 150 - obj_pal gMonPalette_Mew, 151 - obj_pal gMonPalette_Chikorita, 152 - obj_pal gMonPalette_Bayleef, 153 - obj_pal gMonPalette_Meganium, 154 - obj_pal gMonPalette_Cyndaquil, 155 - obj_pal gMonPalette_Quilava, 156 - obj_pal gMonPalette_Typhlosion, 157 - obj_pal gMonPalette_Totodile, 158 - obj_pal gMonPalette_Croconaw, 159 - obj_pal gMonPalette_Feraligatr, 160 - obj_pal gMonPalette_Sentret, 161 - obj_pal gMonPalette_Furret, 162 - obj_pal gMonPalette_Hoothoot, 163 - obj_pal gMonPalette_Noctowl, 164 - obj_pal gMonPalette_Ledyba, 165 - obj_pal gMonPalette_Ledian, 166 - obj_pal gMonPalette_Spinarak, 167 - obj_pal gMonPalette_Ariados, 168 - obj_pal gMonPalette_Crobat, 169 - obj_pal gMonPalette_Chinchou, 170 - obj_pal gMonPalette_Lanturn, 171 - obj_pal gMonPalette_Pichu, 172 - obj_pal gMonPalette_Cleffa, 173 - obj_pal gMonPalette_Igglybuff, 174 - obj_pal gMonPalette_Togepi, 175 - obj_pal gMonPalette_Togetic, 176 - obj_pal gMonPalette_Natu, 177 - obj_pal gMonPalette_Xatu, 178 - obj_pal gMonPalette_Mareep, 179 - obj_pal gMonPalette_Flaaffy, 180 - obj_pal gMonPalette_Ampharos, 181 - obj_pal gMonPalette_Bellossom, 182 - obj_pal gMonPalette_Marill, 183 - obj_pal gMonPalette_Azumarill, 184 - obj_pal gMonPalette_Sudowoodo, 185 - obj_pal gMonPalette_Politoed, 186 - obj_pal gMonPalette_Hoppip, 187 - obj_pal gMonPalette_Skiploom, 188 - obj_pal gMonPalette_Jumpluff, 189 - obj_pal gMonPalette_Aipom, 190 - obj_pal gMonPalette_Sunkern, 191 - obj_pal gMonPalette_Sunflora, 192 - obj_pal gMonPalette_Yanma, 193 - obj_pal gMonPalette_Wooper, 194 - obj_pal gMonPalette_Quagsire, 195 - obj_pal gMonPalette_Espeon, 196 - obj_pal gMonPalette_Umbreon, 197 - obj_pal gMonPalette_Murkrow, 198 - obj_pal gMonPalette_Slowking, 199 - obj_pal gMonPalette_Misdreavus, 200 - obj_pal gMonPalette_Unown, 201 - obj_pal gMonPalette_Wobbuffet, 202 - obj_pal gMonPalette_Girafarig, 203 - obj_pal gMonPalette_Pineco, 204 - obj_pal gMonPalette_Forretress, 205 - obj_pal gMonPalette_Dunsparce, 206 - obj_pal gMonPalette_Gligar, 207 - obj_pal gMonPalette_Steelix, 208 - obj_pal gMonPalette_Snubbull, 209 - obj_pal gMonPalette_Granbull, 210 - obj_pal gMonPalette_Qwilfish, 211 - obj_pal gMonPalette_Scizor, 212 - obj_pal gMonPalette_Shuckle, 213 - obj_pal gMonPalette_Heracross, 214 - obj_pal gMonPalette_Sneasel, 215 - obj_pal gMonPalette_Teddiursa, 216 - obj_pal gMonPalette_Ursaring, 217 - obj_pal gMonPalette_Slugma, 218 - obj_pal gMonPalette_Magcargo, 219 - obj_pal gMonPalette_Swinub, 220 - obj_pal gMonPalette_Piloswine, 221 - obj_pal gMonPalette_Corsola, 222 - obj_pal gMonPalette_Remoraid, 223 - obj_pal gMonPalette_Octillery, 224 - obj_pal gMonPalette_Delibird, 225 - obj_pal gMonPalette_Mantine, 226 - obj_pal gMonPalette_Skarmory, 227 - obj_pal gMonPalette_Houndour, 228 - obj_pal gMonPalette_Houndoom, 229 - obj_pal gMonPalette_Kingdra, 230 - obj_pal gMonPalette_Phanpy, 231 - obj_pal gMonPalette_Donphan, 232 - obj_pal gMonPalette_Porygon2, 233 - obj_pal gMonPalette_Stantler, 234 - obj_pal gMonPalette_Smeargle, 235 - obj_pal gMonPalette_Tyrogue, 236 - obj_pal gMonPalette_Hitmontop, 237 - obj_pal gMonPalette_Smoochum, 238 - obj_pal gMonPalette_Elekid, 239 - obj_pal gMonPalette_Magby, 240 - obj_pal gMonPalette_Miltank, 241 - obj_pal gMonPalette_Blissey, 242 - obj_pal gMonPalette_Raikou, 243 - obj_pal gMonPalette_Entei, 244 - obj_pal gMonPalette_Suicune, 245 - obj_pal gMonPalette_Larvitar, 246 - obj_pal gMonPalette_Pupitar, 247 - obj_pal gMonPalette_Tyranitar, 248 - obj_pal gMonPalette_Lugia, 249 - obj_pal gMonPalette_HoOh, 250 - obj_pal gMonPalette_Celebi, 251 - obj_pal gMonPalette_DoubleQuestionMark, 252 - obj_pal gMonPalette_DoubleQuestionMark, 253 - obj_pal gMonPalette_DoubleQuestionMark, 254 - obj_pal gMonPalette_DoubleQuestionMark, 255 - obj_pal gMonPalette_DoubleQuestionMark, 256 - obj_pal gMonPalette_DoubleQuestionMark, 257 - obj_pal gMonPalette_DoubleQuestionMark, 258 - obj_pal gMonPalette_DoubleQuestionMark, 259 - obj_pal gMonPalette_DoubleQuestionMark, 260 - obj_pal gMonPalette_DoubleQuestionMark, 261 - obj_pal gMonPalette_DoubleQuestionMark, 262 - obj_pal gMonPalette_DoubleQuestionMark, 263 - obj_pal gMonPalette_DoubleQuestionMark, 264 - obj_pal gMonPalette_DoubleQuestionMark, 265 - obj_pal gMonPalette_DoubleQuestionMark, 266 - obj_pal gMonPalette_DoubleQuestionMark, 267 - obj_pal gMonPalette_DoubleQuestionMark, 268 - obj_pal gMonPalette_DoubleQuestionMark, 269 - obj_pal gMonPalette_DoubleQuestionMark, 270 - obj_pal gMonPalette_DoubleQuestionMark, 271 - obj_pal gMonPalette_DoubleQuestionMark, 272 - obj_pal gMonPalette_DoubleQuestionMark, 273 - obj_pal gMonPalette_DoubleQuestionMark, 274 - obj_pal gMonPalette_DoubleQuestionMark, 275 - obj_pal gMonPalette_DoubleQuestionMark, 276 - obj_pal gMonPalette_Treecko, 277 - obj_pal gMonPalette_Grovyle, 278 - obj_pal gMonPalette_Sceptile, 279 - obj_pal gMonPalette_Torchic, 280 - obj_pal gMonPalette_Combusken, 281 - obj_pal gMonPalette_Blaziken, 282 - obj_pal gMonPalette_Mudkip, 283 - obj_pal gMonPalette_Marshtomp, 284 - obj_pal gMonPalette_Swampert, 285 - obj_pal gMonPalette_Poochyena, 286 - obj_pal gMonPalette_Mightyena, 287 - obj_pal gMonPalette_Zigzagoon, 288 - obj_pal gMonPalette_Linoone, 289 - obj_pal gMonPalette_Wurmple, 290 - obj_pal gMonPalette_Silcoon, 291 - obj_pal gMonPalette_Beautifly, 292 - obj_pal gMonPalette_Cascoon, 293 - obj_pal gMonPalette_Dustox, 294 - obj_pal gMonPalette_Lotad, 295 - obj_pal gMonPalette_Lombre, 296 - obj_pal gMonPalette_Ludicolo, 297 - obj_pal gMonPalette_Seedot, 298 - obj_pal gMonPalette_Nuzleaf, 299 - obj_pal gMonPalette_Shiftry, 300 - obj_pal gMonPalette_Nincada, 301 - obj_pal gMonPalette_Ninjask, 302 - obj_pal gMonPalette_Shedinja, 303 - obj_pal gMonPalette_Taillow, 304 - obj_pal gMonPalette_Swellow, 305 - obj_pal gMonPalette_Shroomish, 306 - obj_pal gMonPalette_Breloom, 307 - obj_pal gMonPalette_Spinda, 308 - obj_pal gMonPalette_Wingull, 309 - obj_pal gMonPalette_Pelipper, 310 - obj_pal gMonPalette_Surskit, 311 - obj_pal gMonPalette_Masquerain, 312 - obj_pal gMonPalette_Wailmer, 313 - obj_pal gMonPalette_Wailord, 314 - obj_pal gMonPalette_Skitty, 315 - obj_pal gMonPalette_Delcatty, 316 - obj_pal gMonPalette_Kecleon, 317 - obj_pal gMonPalette_Baltoy, 318 - obj_pal gMonPalette_Claydol, 319 - obj_pal gMonPalette_Nosepass, 320 - obj_pal gMonPalette_Torkoal, 321 - obj_pal gMonPalette_Sableye, 322 - obj_pal gMonPalette_Barboach, 323 - obj_pal gMonPalette_Whiscash, 324 - obj_pal gMonPalette_Luvdisc, 325 - obj_pal gMonPalette_Corphish, 326 - obj_pal gMonPalette_Crawdaunt, 327 - obj_pal gMonPalette_Feebas, 328 - obj_pal gMonPalette_Milotic, 329 - obj_pal gMonPalette_Carvanha, 330 - obj_pal gMonPalette_Sharpedo, 331 - obj_pal gMonPalette_Trapinch, 332 - obj_pal gMonPalette_Vibrava, 333 - obj_pal gMonPalette_Flygon, 334 - obj_pal gMonPalette_Makuhita, 335 - obj_pal gMonPalette_Hariyama, 336 - obj_pal gMonPalette_Electrike, 337 - obj_pal gMonPalette_Manectric, 338 - obj_pal gMonPalette_Numel, 339 - obj_pal gMonPalette_Camerupt, 340 - obj_pal gMonPalette_Spheal, 341 - obj_pal gMonPalette_Sealeo, 342 - obj_pal gMonPalette_Walrein, 343 - obj_pal gMonPalette_Cacnea, 344 - obj_pal gMonPalette_Cacturne, 345 - obj_pal gMonPalette_Snorunt, 346 - obj_pal gMonPalette_Glalie, 347 - obj_pal gMonPalette_Lunatone, 348 - obj_pal gMonPalette_Solrock, 349 - obj_pal gMonPalette_Azurill, 350 - obj_pal gMonPalette_Spoink, 351 - obj_pal gMonPalette_Grumpig, 352 - obj_pal gMonPalette_Plusle, 353 - obj_pal gMonPalette_Minun, 354 - obj_pal gMonPalette_Mawile, 355 - obj_pal gMonPalette_Meditite, 356 - obj_pal gMonPalette_Medicham, 357 - obj_pal gMonPalette_Swablu, 358 - obj_pal gMonPalette_Altaria, 359 - obj_pal gMonPalette_Wynaut, 360 - obj_pal gMonPalette_Duskull, 361 - obj_pal gMonPalette_Dusclops, 362 - obj_pal gMonPalette_Roselia, 363 - obj_pal gMonPalette_Slakoth, 364 - obj_pal gMonPalette_Vigoroth, 365 - obj_pal gMonPalette_Slaking, 366 - obj_pal gMonPalette_Gulpin, 367 - obj_pal gMonPalette_Swalot, 368 - obj_pal gMonPalette_Tropius, 369 - obj_pal gMonPalette_Whismur, 370 - obj_pal gMonPalette_Loudred, 371 - obj_pal gMonPalette_Exploud, 372 - obj_pal gMonPalette_Clamperl, 373 - obj_pal gMonPalette_Huntail, 374 - obj_pal gMonPalette_Gorebyss, 375 - obj_pal gMonPalette_Absol, 376 - obj_pal gMonPalette_Shuppet, 377 - obj_pal gMonPalette_Banette, 378 - obj_pal gMonPalette_Seviper, 379 - obj_pal gMonPalette_Zangoose, 380 - obj_pal gMonPalette_Relicanth, 381 - obj_pal gMonPalette_Aron, 382 - obj_pal gMonPalette_Lairon, 383 - obj_pal gMonPalette_Aggron, 384 - obj_pal gMonPalette_Castform, 385 - obj_pal gMonPalette_Volbeat, 386 - obj_pal gMonPalette_Illumise, 387 - obj_pal gMonPalette_Lileep, 388 - obj_pal gMonPalette_Cradily, 389 - obj_pal gMonPalette_Anorith, 390 - obj_pal gMonPalette_Armaldo, 391 - obj_pal gMonPalette_Ralts, 392 - obj_pal gMonPalette_Kirlia, 393 - obj_pal gMonPalette_Gardevoir, 394 - obj_pal gMonPalette_Bagon, 395 - obj_pal gMonPalette_Shelgon, 396 - obj_pal gMonPalette_Salamence, 397 - obj_pal gMonPalette_Beldum, 398 - obj_pal gMonPalette_Metang, 399 - obj_pal gMonPalette_Metagross, 400 - obj_pal gMonPalette_Regirock, 401 - obj_pal gMonPalette_Regice, 402 - obj_pal gMonPalette_Registeel, 403 - obj_pal gMonPalette_Kyogre, 404 - obj_pal gMonPalette_Groudon, 405 - obj_pal gMonPalette_Rayquaza, 406 - obj_pal gMonPalette_Latias, 407 - obj_pal gMonPalette_Latios, 408 - obj_pal gMonPalette_Jirachi, 409 - obj_pal gMonPalette_Deoxys, 410 - obj_pal gMonPalette_Chimecho, 411 - obj_pal gMonPalette_Egg, 412 - obj_pal gMonPalette_Unown, 413 - obj_pal gMonPalette_Unown, 414 - obj_pal gMonPalette_Unown, 415 - obj_pal gMonPalette_Unown, 416 - obj_pal gMonPalette_Unown, 417 - obj_pal gMonPalette_Unown, 418 - obj_pal gMonPalette_Unown, 419 - obj_pal gMonPalette_Unown, 420 - obj_pal gMonPalette_Unown, 421 - obj_pal gMonPalette_Unown, 422 - obj_pal gMonPalette_Unown, 423 - obj_pal gMonPalette_Unown, 424 - obj_pal gMonPalette_Unown, 425 - obj_pal gMonPalette_Unown, 426 - obj_pal gMonPalette_Unown, 427 - obj_pal gMonPalette_Unown, 428 - obj_pal gMonPalette_Unown, 429 - obj_pal gMonPalette_Unown, 430 - obj_pal gMonPalette_Unown, 431 - obj_pal gMonPalette_Unown, 432 - obj_pal gMonPalette_Unown, 433 - obj_pal gMonPalette_Unown, 434 - obj_pal gMonPalette_Unown, 435 - obj_pal gMonPalette_Unown, 436 - obj_pal gMonPalette_Unown, 437 - obj_pal gMonPalette_Unown, 438 - obj_pal gMonPalette_Unown, 439 diff --git a/data/graphics/pokemon/mon_shiny_palette_table.inc b/data/graphics/pokemon/mon_shiny_palette_table.inc deleted file mode 100644 index 724820221..000000000 --- a/data/graphics/pokemon/mon_shiny_palette_table.inc +++ /dev/null @@ -1,442 +0,0 @@ - .align 2 -gMonShinyPaletteTable:: @ 8304438 - obj_pal gMonShinyPalette_CircledQuestionMark, 500 - obj_pal gMonShinyPalette_Bulbasaur, 501 - obj_pal gMonShinyPalette_Ivysaur, 502 - obj_pal gMonShinyPalette_Venusaur, 503 - obj_pal gMonShinyPalette_Charmander, 504 - obj_pal gMonShinyPalette_Charmeleon, 505 - obj_pal gMonShinyPalette_Charizard, 506 - obj_pal gMonShinyPalette_Squirtle, 507 - obj_pal gMonShinyPalette_Wartortle, 508 - obj_pal gMonShinyPalette_Blastoise, 509 - obj_pal gMonShinyPalette_Caterpie, 510 - obj_pal gMonShinyPalette_Metapod, 511 - obj_pal gMonShinyPalette_Butterfree, 512 - obj_pal gMonShinyPalette_Weedle, 513 - obj_pal gMonShinyPalette_Kakuna, 514 - obj_pal gMonShinyPalette_Beedrill, 515 - obj_pal gMonShinyPalette_Pidgey, 516 - obj_pal gMonShinyPalette_Pidgeotto, 517 - obj_pal gMonShinyPalette_Pidgeot, 518 - obj_pal gMonShinyPalette_Rattata, 519 - obj_pal gMonShinyPalette_Raticate, 520 - obj_pal gMonShinyPalette_Spearow, 521 - obj_pal gMonShinyPalette_Fearow, 522 - obj_pal gMonShinyPalette_Ekans, 523 - obj_pal gMonShinyPalette_Arbok, 524 - obj_pal gMonShinyPalette_Pikachu, 525 - obj_pal gMonShinyPalette_Raichu, 526 - obj_pal gMonShinyPalette_Sandshrew, 527 - obj_pal gMonShinyPalette_Sandslash, 528 - obj_pal gMonShinyPalette_NidoranF, 529 - obj_pal gMonShinyPalette_Nidorina, 530 - obj_pal gMonShinyPalette_Nidoqueen, 531 - obj_pal gMonShinyPalette_NidoranM, 532 - obj_pal gMonShinyPalette_Nidorino, 533 - obj_pal gMonShinyPalette_Nidoking, 534 - obj_pal gMonShinyPalette_Clefairy, 535 - obj_pal gMonShinyPalette_Clefable, 536 - obj_pal gMonShinyPalette_Vulpix, 537 - obj_pal gMonShinyPalette_Ninetales, 538 - obj_pal gMonShinyPalette_Jigglypuff, 539 - obj_pal gMonShinyPalette_Wigglytuff, 540 - obj_pal gMonShinyPalette_Zubat, 541 - obj_pal gMonShinyPalette_Golbat, 542 - obj_pal gMonShinyPalette_Oddish, 543 - obj_pal gMonShinyPalette_Gloom, 544 - obj_pal gMonShinyPalette_Vileplume, 545 - obj_pal gMonShinyPalette_Paras, 546 - obj_pal gMonShinyPalette_Parasect, 547 - obj_pal gMonShinyPalette_Venonat, 548 - obj_pal gMonShinyPalette_Venomoth, 549 - obj_pal gMonShinyPalette_Diglett, 550 - obj_pal gMonShinyPalette_Dugtrio, 551 - obj_pal gMonShinyPalette_Meowth, 552 - obj_pal gMonShinyPalette_Persian, 553 - obj_pal gMonShinyPalette_Psyduck, 554 - obj_pal gMonShinyPalette_Golduck, 555 - obj_pal gMonShinyPalette_Mankey, 556 - obj_pal gMonShinyPalette_Primeape, 557 - obj_pal gMonShinyPalette_Growlithe, 558 - obj_pal gMonShinyPalette_Arcanine, 559 - obj_pal gMonShinyPalette_Poliwag, 560 - obj_pal gMonShinyPalette_Poliwhirl, 561 - obj_pal gMonShinyPalette_Poliwrath, 562 - obj_pal gMonShinyPalette_Abra, 563 - obj_pal gMonShinyPalette_Kadabra, 564 - obj_pal gMonShinyPalette_Alakazam, 565 - obj_pal gMonShinyPalette_Machop, 566 - obj_pal gMonShinyPalette_Machoke, 567 - obj_pal gMonShinyPalette_Machamp, 568 - obj_pal gMonShinyPalette_Bellsprout, 569 - obj_pal gMonShinyPalette_Weepinbell, 570 - obj_pal gMonShinyPalette_Victreebel, 571 - obj_pal gMonShinyPalette_Tentacool, 572 - obj_pal gMonShinyPalette_Tentacruel, 573 - obj_pal gMonShinyPalette_Geodude, 574 - obj_pal gMonShinyPalette_Graveler, 575 - obj_pal gMonShinyPalette_Golem, 576 - obj_pal gMonShinyPalette_Ponyta, 577 - obj_pal gMonShinyPalette_Rapidash, 578 - obj_pal gMonShinyPalette_Slowpoke, 579 - obj_pal gMonShinyPalette_Slowbro, 580 - obj_pal gMonShinyPalette_Magnemite, 581 - obj_pal gMonShinyPalette_Magneton, 582 - obj_pal gMonShinyPalette_Farfetchd, 583 - obj_pal gMonShinyPalette_Doduo, 584 - obj_pal gMonShinyPalette_Dodrio, 585 - obj_pal gMonShinyPalette_Seel, 586 - obj_pal gMonShinyPalette_Dewgong, 587 - obj_pal gMonShinyPalette_Grimer, 588 - obj_pal gMonShinyPalette_Muk, 589 - obj_pal gMonShinyPalette_Shellder, 590 - obj_pal gMonShinyPalette_Cloyster, 591 - obj_pal gMonShinyPalette_Gastly, 592 - obj_pal gMonShinyPalette_Haunter, 593 - obj_pal gMonShinyPalette_Gengar, 594 - obj_pal gMonShinyPalette_Onix, 595 - obj_pal gMonShinyPalette_Drowzee, 596 - obj_pal gMonShinyPalette_Hypno, 597 - obj_pal gMonShinyPalette_Krabby, 598 - obj_pal gMonShinyPalette_Kingler, 599 - obj_pal gMonShinyPalette_Voltorb, 600 - obj_pal gMonShinyPalette_Electrode, 601 - obj_pal gMonShinyPalette_Exeggcute, 602 - obj_pal gMonShinyPalette_Exeggutor, 603 - obj_pal gMonShinyPalette_Cubone, 604 - obj_pal gMonShinyPalette_Marowak, 605 - obj_pal gMonShinyPalette_Hitmonlee, 606 - obj_pal gMonShinyPalette_Hitmonchan, 607 - obj_pal gMonShinyPalette_Lickitung, 608 - obj_pal gMonShinyPalette_Koffing, 609 - obj_pal gMonShinyPalette_Weezing, 610 - obj_pal gMonShinyPalette_Rhyhorn, 611 - obj_pal gMonShinyPalette_Rhydon, 612 - obj_pal gMonShinyPalette_Chansey, 613 - obj_pal gMonShinyPalette_Tangela, 614 - obj_pal gMonShinyPalette_Kangaskhan, 615 - obj_pal gMonShinyPalette_Horsea, 616 - obj_pal gMonShinyPalette_Seadra, 617 - obj_pal gMonShinyPalette_Goldeen, 618 - obj_pal gMonShinyPalette_Seaking, 619 - obj_pal gMonShinyPalette_Staryu, 620 - obj_pal gMonShinyPalette_Starmie, 621 - obj_pal gMonShinyPalette_Mrmime, 622 - obj_pal gMonShinyPalette_Scyther, 623 - obj_pal gMonShinyPalette_Jynx, 624 - obj_pal gMonShinyPalette_Electabuzz, 625 - obj_pal gMonShinyPalette_Magmar, 626 - obj_pal gMonShinyPalette_Pinsir, 627 - obj_pal gMonShinyPalette_Tauros, 628 - obj_pal gMonShinyPalette_Magikarp, 629 - obj_pal gMonShinyPalette_Gyarados, 630 - obj_pal gMonShinyPalette_Lapras, 631 - obj_pal gMonShinyPalette_Ditto, 632 - obj_pal gMonShinyPalette_Eevee, 633 - obj_pal gMonShinyPalette_Vaporeon, 634 - obj_pal gMonShinyPalette_Jolteon, 635 - obj_pal gMonShinyPalette_Flareon, 636 - obj_pal gMonShinyPalette_Porygon, 637 - obj_pal gMonShinyPalette_Omanyte, 638 - obj_pal gMonShinyPalette_Omastar, 639 - obj_pal gMonShinyPalette_Kabuto, 640 - obj_pal gMonShinyPalette_Kabutops, 641 - obj_pal gMonShinyPalette_Aerodactyl, 642 - obj_pal gMonShinyPalette_Snorlax, 643 - obj_pal gMonShinyPalette_Articuno, 644 - obj_pal gMonShinyPalette_Zapdos, 645 - obj_pal gMonShinyPalette_Moltres, 646 - obj_pal gMonShinyPalette_Dratini, 647 - obj_pal gMonShinyPalette_Dragonair, 648 - obj_pal gMonShinyPalette_Dragonite, 649 - obj_pal gMonShinyPalette_Mewtwo, 650 - obj_pal gMonShinyPalette_Mew, 651 - obj_pal gMonShinyPalette_Chikorita, 652 - obj_pal gMonShinyPalette_Bayleef, 653 - obj_pal gMonShinyPalette_Meganium, 654 - obj_pal gMonShinyPalette_Cyndaquil, 655 - obj_pal gMonShinyPalette_Quilava, 656 - obj_pal gMonShinyPalette_Typhlosion, 657 - obj_pal gMonShinyPalette_Totodile, 658 - obj_pal gMonShinyPalette_Croconaw, 659 - obj_pal gMonShinyPalette_Feraligatr, 660 - obj_pal gMonShinyPalette_Sentret, 661 - obj_pal gMonShinyPalette_Furret, 662 - obj_pal gMonShinyPalette_Hoothoot, 663 - obj_pal gMonShinyPalette_Noctowl, 664 - obj_pal gMonShinyPalette_Ledyba, 665 - obj_pal gMonShinyPalette_Ledian, 666 - obj_pal gMonShinyPalette_Spinarak, 667 - obj_pal gMonShinyPalette_Ariados, 668 - obj_pal gMonShinyPalette_Crobat, 669 - obj_pal gMonShinyPalette_Chinchou, 670 - obj_pal gMonShinyPalette_Lanturn, 671 - obj_pal gMonShinyPalette_Pichu, 672 - obj_pal gMonShinyPalette_Cleffa, 673 - obj_pal gMonShinyPalette_Igglybuff, 674 - obj_pal gMonShinyPalette_Togepi, 675 - obj_pal gMonShinyPalette_Togetic, 676 - obj_pal gMonShinyPalette_Natu, 677 - obj_pal gMonShinyPalette_Xatu, 678 - obj_pal gMonShinyPalette_Mareep, 679 - obj_pal gMonShinyPalette_Flaaffy, 680 - obj_pal gMonShinyPalette_Ampharos, 681 - obj_pal gMonShinyPalette_Bellossom, 682 - obj_pal gMonShinyPalette_Marill, 683 - obj_pal gMonShinyPalette_Azumarill, 684 - obj_pal gMonShinyPalette_Sudowoodo, 685 - obj_pal gMonShinyPalette_Politoed, 686 - obj_pal gMonShinyPalette_Hoppip, 687 - obj_pal gMonShinyPalette_Skiploom, 688 - obj_pal gMonShinyPalette_Jumpluff, 689 - obj_pal gMonShinyPalette_Aipom, 690 - obj_pal gMonShinyPalette_Sunkern, 691 - obj_pal gMonShinyPalette_Sunflora, 692 - obj_pal gMonShinyPalette_Yanma, 693 - obj_pal gMonShinyPalette_Wooper, 694 - obj_pal gMonShinyPalette_Quagsire, 695 - obj_pal gMonShinyPalette_Espeon, 696 - obj_pal gMonShinyPalette_Umbreon, 697 - obj_pal gMonShinyPalette_Murkrow, 698 - obj_pal gMonShinyPalette_Slowking, 699 - obj_pal gMonShinyPalette_Misdreavus, 700 - obj_pal gMonShinyPalette_Unown, 701 - obj_pal gMonShinyPalette_Wobbuffet, 702 - obj_pal gMonShinyPalette_Girafarig, 703 - obj_pal gMonShinyPalette_Pineco, 704 - obj_pal gMonShinyPalette_Forretress, 705 - obj_pal gMonShinyPalette_Dunsparce, 706 - obj_pal gMonShinyPalette_Gligar, 707 - obj_pal gMonShinyPalette_Steelix, 708 - obj_pal gMonShinyPalette_Snubbull, 709 - obj_pal gMonShinyPalette_Granbull, 710 - obj_pal gMonShinyPalette_Qwilfish, 711 - obj_pal gMonShinyPalette_Scizor, 712 - obj_pal gMonShinyPalette_Shuckle, 713 - obj_pal gMonShinyPalette_Heracross, 714 - obj_pal gMonShinyPalette_Sneasel, 715 - obj_pal gMonShinyPalette_Teddiursa, 716 - obj_pal gMonShinyPalette_Ursaring, 717 - obj_pal gMonShinyPalette_Slugma, 718 - obj_pal gMonShinyPalette_Magcargo, 719 - obj_pal gMonShinyPalette_Swinub, 720 - obj_pal gMonShinyPalette_Piloswine, 721 - obj_pal gMonShinyPalette_Corsola, 722 - obj_pal gMonShinyPalette_Remoraid, 723 - obj_pal gMonShinyPalette_Octillery, 724 - obj_pal gMonShinyPalette_Delibird, 725 - obj_pal gMonShinyPalette_Mantine, 726 - obj_pal gMonShinyPalette_Skarmory, 727 - obj_pal gMonShinyPalette_Houndour, 728 - obj_pal gMonShinyPalette_Houndoom, 729 - obj_pal gMonShinyPalette_Kingdra, 730 - obj_pal gMonShinyPalette_Phanpy, 731 - obj_pal gMonShinyPalette_Donphan, 732 - obj_pal gMonShinyPalette_Porygon2, 733 - obj_pal gMonShinyPalette_Stantler, 734 - obj_pal gMonShinyPalette_Smeargle, 735 - obj_pal gMonShinyPalette_Tyrogue, 736 - obj_pal gMonShinyPalette_Hitmontop, 737 - obj_pal gMonShinyPalette_Smoochum, 738 - obj_pal gMonShinyPalette_Elekid, 739 - obj_pal gMonShinyPalette_Magby, 740 - obj_pal gMonShinyPalette_Miltank, 741 - obj_pal gMonShinyPalette_Blissey, 742 - obj_pal gMonShinyPalette_Raikou, 743 - obj_pal gMonShinyPalette_Entei, 744 - obj_pal gMonShinyPalette_Suicune, 745 - obj_pal gMonShinyPalette_Larvitar, 746 - obj_pal gMonShinyPalette_Pupitar, 747 - obj_pal gMonShinyPalette_Tyranitar, 748 - obj_pal gMonShinyPalette_Lugia, 749 - obj_pal gMonShinyPalette_HoOh, 750 - obj_pal gMonShinyPalette_Celebi, 751 - obj_pal gMonShinyPalette_DoubleQuestionMark, 752 - obj_pal gMonShinyPalette_DoubleQuestionMark, 753 - obj_pal gMonShinyPalette_DoubleQuestionMark, 754 - obj_pal gMonShinyPalette_DoubleQuestionMark, 755 - obj_pal gMonShinyPalette_DoubleQuestionMark, 756 - obj_pal gMonShinyPalette_DoubleQuestionMark, 757 - obj_pal gMonShinyPalette_DoubleQuestionMark, 758 - obj_pal gMonShinyPalette_DoubleQuestionMark, 759 - obj_pal gMonShinyPalette_DoubleQuestionMark, 760 - obj_pal gMonShinyPalette_DoubleQuestionMark, 761 - obj_pal gMonShinyPalette_DoubleQuestionMark, 762 - obj_pal gMonShinyPalette_DoubleQuestionMark, 763 - obj_pal gMonShinyPalette_DoubleQuestionMark, 764 - obj_pal gMonShinyPalette_DoubleQuestionMark, 765 - obj_pal gMonShinyPalette_DoubleQuestionMark, 766 - obj_pal gMonShinyPalette_DoubleQuestionMark, 767 - obj_pal gMonShinyPalette_DoubleQuestionMark, 768 - obj_pal gMonShinyPalette_DoubleQuestionMark, 769 - obj_pal gMonShinyPalette_DoubleQuestionMark, 770 - obj_pal gMonShinyPalette_DoubleQuestionMark, 771 - obj_pal gMonShinyPalette_DoubleQuestionMark, 772 - obj_pal gMonShinyPalette_DoubleQuestionMark, 773 - obj_pal gMonShinyPalette_DoubleQuestionMark, 774 - obj_pal gMonShinyPalette_DoubleQuestionMark, 775 - obj_pal gMonShinyPalette_DoubleQuestionMark, 776 - obj_pal gMonShinyPalette_Treecko, 777 - obj_pal gMonShinyPalette_Grovyle, 778 - obj_pal gMonShinyPalette_Sceptile, 779 - obj_pal gMonShinyPalette_Torchic, 780 - obj_pal gMonShinyPalette_Combusken, 781 - obj_pal gMonShinyPalette_Blaziken, 782 - obj_pal gMonShinyPalette_Mudkip, 783 - obj_pal gMonShinyPalette_Marshtomp, 784 - obj_pal gMonShinyPalette_Swampert, 785 - obj_pal gMonShinyPalette_Poochyena, 786 - obj_pal gMonShinyPalette_Mightyena, 787 - obj_pal gMonShinyPalette_Zigzagoon, 788 - obj_pal gMonShinyPalette_Linoone, 789 - obj_pal gMonShinyPalette_Wurmple, 790 - obj_pal gMonShinyPalette_Silcoon, 791 - obj_pal gMonShinyPalette_Beautifly, 792 - obj_pal gMonShinyPalette_Cascoon, 793 - obj_pal gMonShinyPalette_Dustox, 794 - obj_pal gMonShinyPalette_Lotad, 795 - obj_pal gMonShinyPalette_Lombre, 796 - obj_pal gMonShinyPalette_Ludicolo, 797 - obj_pal gMonShinyPalette_Seedot, 798 - obj_pal gMonShinyPalette_Nuzleaf, 799 - obj_pal gMonShinyPalette_Shiftry, 800 - obj_pal gMonShinyPalette_Nincada, 801 - obj_pal gMonShinyPalette_Ninjask, 802 - obj_pal gMonShinyPalette_Shedinja, 803 - obj_pal gMonShinyPalette_Taillow, 804 - obj_pal gMonShinyPalette_Swellow, 805 - obj_pal gMonShinyPalette_Shroomish, 806 - obj_pal gMonShinyPalette_Breloom, 807 - obj_pal gMonShinyPalette_Spinda, 808 - obj_pal gMonShinyPalette_Wingull, 809 - obj_pal gMonShinyPalette_Pelipper, 810 - obj_pal gMonShinyPalette_Surskit, 811 - obj_pal gMonShinyPalette_Masquerain, 812 - obj_pal gMonShinyPalette_Wailmer, 813 - obj_pal gMonShinyPalette_Wailord, 814 - obj_pal gMonShinyPalette_Skitty, 815 - obj_pal gMonShinyPalette_Delcatty, 816 - obj_pal gMonShinyPalette_Kecleon, 817 - obj_pal gMonShinyPalette_Baltoy, 818 - obj_pal gMonShinyPalette_Claydol, 819 - obj_pal gMonShinyPalette_Nosepass, 820 - obj_pal gMonShinyPalette_Torkoal, 821 - obj_pal gMonShinyPalette_Sableye, 822 - obj_pal gMonShinyPalette_Barboach, 823 - obj_pal gMonShinyPalette_Whiscash, 824 - obj_pal gMonShinyPalette_Luvdisc, 825 - obj_pal gMonShinyPalette_Corphish, 826 - obj_pal gMonShinyPalette_Crawdaunt, 827 - obj_pal gMonShinyPalette_Feebas, 828 - obj_pal gMonShinyPalette_Milotic, 829 - obj_pal gMonShinyPalette_Carvanha, 830 - obj_pal gMonShinyPalette_Sharpedo, 831 - obj_pal gMonShinyPalette_Trapinch, 832 - obj_pal gMonShinyPalette_Vibrava, 833 - obj_pal gMonShinyPalette_Flygon, 834 - obj_pal gMonShinyPalette_Makuhita, 835 - obj_pal gMonShinyPalette_Hariyama, 836 - obj_pal gMonShinyPalette_Electrike, 837 - obj_pal gMonShinyPalette_Manectric, 838 - obj_pal gMonShinyPalette_Numel, 839 - obj_pal gMonShinyPalette_Camerupt, 840 - obj_pal gMonShinyPalette_Spheal, 841 - obj_pal gMonShinyPalette_Sealeo, 842 - obj_pal gMonShinyPalette_Walrein, 843 - obj_pal gMonShinyPalette_Cacnea, 844 - obj_pal gMonShinyPalette_Cacturne, 845 - obj_pal gMonShinyPalette_Snorunt, 846 - obj_pal gMonShinyPalette_Glalie, 847 - obj_pal gMonShinyPalette_Lunatone, 848 - obj_pal gMonShinyPalette_Solrock, 849 - obj_pal gMonShinyPalette_Azurill, 850 - obj_pal gMonShinyPalette_Spoink, 851 - obj_pal gMonShinyPalette_Grumpig, 852 - obj_pal gMonShinyPalette_Plusle, 853 - obj_pal gMonShinyPalette_Minun, 854 - obj_pal gMonShinyPalette_Mawile, 855 - obj_pal gMonShinyPalette_Meditite, 856 - obj_pal gMonShinyPalette_Medicham, 857 - obj_pal gMonShinyPalette_Swablu, 858 - obj_pal gMonShinyPalette_Altaria, 859 - obj_pal gMonShinyPalette_Wynaut, 860 - obj_pal gMonShinyPalette_Duskull, 861 - obj_pal gMonShinyPalette_Dusclops, 862 - obj_pal gMonShinyPalette_Roselia, 863 - obj_pal gMonShinyPalette_Slakoth, 864 - obj_pal gMonShinyPalette_Vigoroth, 865 - obj_pal gMonShinyPalette_Slaking, 866 - obj_pal gMonShinyPalette_Gulpin, 867 - obj_pal gMonShinyPalette_Swalot, 868 - obj_pal gMonShinyPalette_Tropius, 869 - obj_pal gMonShinyPalette_Whismur, 870 - obj_pal gMonShinyPalette_Loudred, 871 - obj_pal gMonShinyPalette_Exploud, 872 - obj_pal gMonShinyPalette_Clamperl, 873 - obj_pal gMonShinyPalette_Huntail, 874 - obj_pal gMonShinyPalette_Gorebyss, 875 - obj_pal gMonShinyPalette_Absol, 876 - obj_pal gMonShinyPalette_Shuppet, 877 - obj_pal gMonShinyPalette_Banette, 878 - obj_pal gMonShinyPalette_Seviper, 879 - obj_pal gMonShinyPalette_Zangoose, 880 - obj_pal gMonShinyPalette_Relicanth, 881 - obj_pal gMonShinyPalette_Aron, 882 - obj_pal gMonShinyPalette_Lairon, 883 - obj_pal gMonShinyPalette_Aggron, 884 - obj_pal gMonShinyPalette_Castform, 885 - obj_pal gMonShinyPalette_Volbeat, 886 - obj_pal gMonShinyPalette_Illumise, 887 - obj_pal gMonShinyPalette_Lileep, 888 - obj_pal gMonShinyPalette_Cradily, 889 - obj_pal gMonShinyPalette_Anorith, 890 - obj_pal gMonShinyPalette_Armaldo, 891 - obj_pal gMonShinyPalette_Ralts, 892 - obj_pal gMonShinyPalette_Kirlia, 893 - obj_pal gMonShinyPalette_Gardevoir, 894 - obj_pal gMonShinyPalette_Bagon, 895 - obj_pal gMonShinyPalette_Shelgon, 896 - obj_pal gMonShinyPalette_Salamence, 897 - obj_pal gMonShinyPalette_Beldum, 898 - obj_pal gMonShinyPalette_Metang, 899 - obj_pal gMonShinyPalette_Metagross, 900 - obj_pal gMonShinyPalette_Regirock, 901 - obj_pal gMonShinyPalette_Regice, 902 - obj_pal gMonShinyPalette_Registeel, 903 - obj_pal gMonShinyPalette_Kyogre, 904 - obj_pal gMonShinyPalette_Groudon, 905 - obj_pal gMonShinyPalette_Rayquaza, 906 - obj_pal gMonShinyPalette_Latias, 907 - obj_pal gMonShinyPalette_Latios, 908 - obj_pal gMonShinyPalette_Jirachi, 909 - obj_pal gMonShinyPalette_Deoxys, 910 - obj_pal gMonShinyPalette_Chimecho, 911 - obj_pal gMonPalette_Egg, 912 - obj_pal gMonShinyPalette_Unown, 913 - obj_pal gMonShinyPalette_Unown, 914 - obj_pal gMonShinyPalette_Unown, 915 - obj_pal gMonShinyPalette_Unown, 916 - obj_pal gMonShinyPalette_Unown, 917 - obj_pal gMonShinyPalette_Unown, 918 - obj_pal gMonShinyPalette_Unown, 919 - obj_pal gMonShinyPalette_Unown, 920 - obj_pal gMonShinyPalette_Unown, 921 - obj_pal gMonShinyPalette_Unown, 922 - obj_pal gMonShinyPalette_Unown, 923 - obj_pal gMonShinyPalette_Unown, 924 - obj_pal gMonShinyPalette_Unown, 925 - obj_pal gMonShinyPalette_Unown, 926 - obj_pal gMonShinyPalette_Unown, 927 - obj_pal gMonShinyPalette_Unown, 928 - obj_pal gMonShinyPalette_Unown, 929 - obj_pal gMonShinyPalette_Unown, 930 - obj_pal gMonShinyPalette_Unown, 931 - obj_pal gMonShinyPalette_Unown, 932 - obj_pal gMonShinyPalette_Unown, 933 - obj_pal gMonShinyPalette_Unown, 934 - obj_pal gMonShinyPalette_Unown, 935 - obj_pal gMonShinyPalette_Unown, 936 - obj_pal gMonShinyPalette_Unown, 937 - obj_pal gMonShinyPalette_Unown, 938 - obj_pal gMonShinyPalette_Unown, 939 diff --git a/data/graphics/pokemon/mon_still_front_pic_table.inc b/data/graphics/pokemon/mon_still_front_pic_table.inc deleted file mode 100644 index 448729955..000000000 --- a/data/graphics/pokemon/mon_still_front_pic_table.inc +++ /dev/null @@ -1,442 +0,0 @@ - .align 2 -gMonStillFrontPicTable:: @ 8301418 - obj_tiles gMonStillFrontPic_CircledQuestionMark, 0x800, 0 - obj_tiles gMonStillFrontPic_Bulbasaur, 0x800, 1 - obj_tiles gMonStillFrontPic_Ivysaur, 0x800, 2 - obj_tiles gMonStillFrontPic_Venusaur, 0x800, 3 - obj_tiles gMonStillFrontPic_Charmander, 0x800, 4 - obj_tiles gMonStillFrontPic_Charmeleon, 0x800, 5 - obj_tiles gMonStillFrontPic_Charizard, 0x800, 6 - obj_tiles gMonStillFrontPic_Squirtle, 0x800, 7 - obj_tiles gMonStillFrontPic_Wartortle, 0x800, 8 - obj_tiles gMonStillFrontPic_Blastoise, 0x800, 9 - obj_tiles gMonStillFrontPic_Caterpie, 0x800, 10 - obj_tiles gMonStillFrontPic_Metapod, 0x800, 11 - obj_tiles gMonStillFrontPic_Butterfree, 0x800, 12 - obj_tiles gMonStillFrontPic_Weedle, 0x800, 13 - obj_tiles gMonStillFrontPic_Kakuna, 0x800, 14 - obj_tiles gMonStillFrontPic_Beedrill, 0x800, 15 - obj_tiles gMonStillFrontPic_Pidgey, 0x800, 16 - obj_tiles gMonStillFrontPic_Pidgeotto, 0x800, 17 - obj_tiles gMonStillFrontPic_Pidgeot, 0x800, 18 - obj_tiles gMonStillFrontPic_Rattata, 0x800, 19 - obj_tiles gMonStillFrontPic_Raticate, 0x800, 20 - obj_tiles gMonStillFrontPic_Spearow, 0x800, 21 - obj_tiles gMonStillFrontPic_Fearow, 0x800, 22 - obj_tiles gMonStillFrontPic_Ekans, 0x800, 23 - obj_tiles gMonStillFrontPic_Arbok, 0x800, 24 - obj_tiles gMonStillFrontPic_Pikachu, 0x800, 25 - obj_tiles gMonStillFrontPic_Raichu, 0x800, 26 - obj_tiles gMonStillFrontPic_Sandshrew, 0x800, 27 - obj_tiles gMonStillFrontPic_Sandslash, 0x800, 28 - obj_tiles gMonStillFrontPic_NidoranF, 0x800, 29 - obj_tiles gMonStillFrontPic_Nidorina, 0x800, 30 - obj_tiles gMonStillFrontPic_Nidoqueen, 0x800, 31 - obj_tiles gMonStillFrontPic_NidoranM, 0x800, 32 - obj_tiles gMonStillFrontPic_Nidorino, 0x800, 33 - obj_tiles gMonStillFrontPic_Nidoking, 0x800, 34 - obj_tiles gMonStillFrontPic_Clefairy, 0x800, 35 - obj_tiles gMonStillFrontPic_Clefable, 0x800, 36 - obj_tiles gMonStillFrontPic_Vulpix, 0x800, 37 - obj_tiles gMonStillFrontPic_Ninetales, 0x800, 38 - obj_tiles gMonStillFrontPic_Jigglypuff, 0x800, 39 - obj_tiles gMonStillFrontPic_Wigglytuff, 0x800, 40 - obj_tiles gMonStillFrontPic_Zubat, 0x800, 41 - obj_tiles gMonStillFrontPic_Golbat, 0x800, 42 - obj_tiles gMonStillFrontPic_Oddish, 0x800, 43 - obj_tiles gMonStillFrontPic_Gloom, 0x800, 44 - obj_tiles gMonStillFrontPic_Vileplume, 0x800, 45 - obj_tiles gMonStillFrontPic_Paras, 0x800, 46 - obj_tiles gMonStillFrontPic_Parasect, 0x800, 47 - obj_tiles gMonStillFrontPic_Venonat, 0x800, 48 - obj_tiles gMonStillFrontPic_Venomoth, 0x800, 49 - obj_tiles gMonStillFrontPic_Diglett, 0x800, 50 - obj_tiles gMonStillFrontPic_Dugtrio, 0x800, 51 - obj_tiles gMonStillFrontPic_Meowth, 0x800, 52 - obj_tiles gMonStillFrontPic_Persian, 0x800, 53 - obj_tiles gMonStillFrontPic_Psyduck, 0x800, 54 - obj_tiles gMonStillFrontPic_Golduck, 0x800, 55 - obj_tiles gMonStillFrontPic_Mankey, 0x800, 56 - obj_tiles gMonStillFrontPic_Primeape, 0x800, 57 - obj_tiles gMonStillFrontPic_Growlithe, 0x800, 58 - obj_tiles gMonStillFrontPic_Arcanine, 0x800, 59 - obj_tiles gMonStillFrontPic_Poliwag, 0x800, 60 - obj_tiles gMonStillFrontPic_Poliwhirl, 0x800, 61 - obj_tiles gMonStillFrontPic_Poliwrath, 0x800, 62 - obj_tiles gMonStillFrontPic_Abra, 0x800, 63 - obj_tiles gMonStillFrontPic_Kadabra, 0x800, 64 - obj_tiles gMonStillFrontPic_Alakazam, 0x800, 65 - obj_tiles gMonStillFrontPic_Machop, 0x800, 66 - obj_tiles gMonStillFrontPic_Machoke, 0x800, 67 - obj_tiles gMonStillFrontPic_Machamp, 0x800, 68 - obj_tiles gMonStillFrontPic_Bellsprout, 0x800, 69 - obj_tiles gMonStillFrontPic_Weepinbell, 0x800, 70 - obj_tiles gMonStillFrontPic_Victreebel, 0x800, 71 - obj_tiles gMonStillFrontPic_Tentacool, 0x800, 72 - obj_tiles gMonStillFrontPic_Tentacruel, 0x800, 73 - obj_tiles gMonStillFrontPic_Geodude, 0x800, 74 - obj_tiles gMonStillFrontPic_Graveler, 0x800, 75 - obj_tiles gMonStillFrontPic_Golem, 0x800, 76 - obj_tiles gMonStillFrontPic_Ponyta, 0x800, 77 - obj_tiles gMonStillFrontPic_Rapidash, 0x800, 78 - obj_tiles gMonStillFrontPic_Slowpoke, 0x800, 79 - obj_tiles gMonStillFrontPic_Slowbro, 0x800, 80 - obj_tiles gMonStillFrontPic_Magnemite, 0x800, 81 - obj_tiles gMonStillFrontPic_Magneton, 0x800, 82 - obj_tiles gMonStillFrontPic_Farfetchd, 0x800, 83 - obj_tiles gMonStillFrontPic_Doduo, 0x800, 84 - obj_tiles gMonStillFrontPic_Dodrio, 0x800, 85 - obj_tiles gMonStillFrontPic_Seel, 0x800, 86 - obj_tiles gMonStillFrontPic_Dewgong, 0x800, 87 - obj_tiles gMonStillFrontPic_Grimer, 0x800, 88 - obj_tiles gMonStillFrontPic_Muk, 0x800, 89 - obj_tiles gMonStillFrontPic_Shellder, 0x800, 90 - obj_tiles gMonStillFrontPic_Cloyster, 0x800, 91 - obj_tiles gMonStillFrontPic_Gastly, 0x800, 92 - obj_tiles gMonStillFrontPic_Haunter, 0x800, 93 - obj_tiles gMonStillFrontPic_Gengar, 0x800, 94 - obj_tiles gMonStillFrontPic_Onix, 0x800, 95 - obj_tiles gMonStillFrontPic_Drowzee, 0x800, 96 - obj_tiles gMonStillFrontPic_Hypno, 0x800, 97 - obj_tiles gMonStillFrontPic_Krabby, 0x800, 98 - obj_tiles gMonStillFrontPic_Kingler, 0x800, 99 - obj_tiles gMonStillFrontPic_Voltorb, 0x800, 100 - obj_tiles gMonStillFrontPic_Electrode, 0x800, 101 - obj_tiles gMonStillFrontPic_Exeggcute, 0x800, 102 - obj_tiles gMonStillFrontPic_Exeggutor, 0x800, 103 - obj_tiles gMonStillFrontPic_Cubone, 0x800, 104 - obj_tiles gMonStillFrontPic_Marowak, 0x800, 105 - obj_tiles gMonStillFrontPic_Hitmonlee, 0x800, 106 - obj_tiles gMonStillFrontPic_Hitmonchan, 0x800, 107 - obj_tiles gMonStillFrontPic_Lickitung, 0x800, 108 - obj_tiles gMonStillFrontPic_Koffing, 0x800, 109 - obj_tiles gMonStillFrontPic_Weezing, 0x800, 110 - obj_tiles gMonStillFrontPic_Rhyhorn, 0x800, 111 - obj_tiles gMonStillFrontPic_Rhydon, 0x800, 112 - obj_tiles gMonStillFrontPic_Chansey, 0x800, 113 - obj_tiles gMonStillFrontPic_Tangela, 0x800, 114 - obj_tiles gMonStillFrontPic_Kangaskhan, 0x800, 115 - obj_tiles gMonStillFrontPic_Horsea, 0x800, 116 - obj_tiles gMonStillFrontPic_Seadra, 0x800, 117 - obj_tiles gMonStillFrontPic_Goldeen, 0x800, 118 - obj_tiles gMonStillFrontPic_Seaking, 0x800, 119 - obj_tiles gMonStillFrontPic_Staryu, 0x800, 120 - obj_tiles gMonStillFrontPic_Starmie, 0x800, 121 - obj_tiles gMonStillFrontPic_Mrmime, 0x800, 122 - obj_tiles gMonStillFrontPic_Scyther, 0x800, 123 - obj_tiles gMonStillFrontPic_Jynx, 0x800, 124 - obj_tiles gMonStillFrontPic_Electabuzz, 0x800, 125 - obj_tiles gMonStillFrontPic_Magmar, 0x800, 126 - obj_tiles gMonStillFrontPic_Pinsir, 0x800, 127 - obj_tiles gMonStillFrontPic_Tauros, 0x800, 128 - obj_tiles gMonStillFrontPic_Magikarp, 0x800, 129 - obj_tiles gMonStillFrontPic_Gyarados, 0x800, 130 - obj_tiles gMonStillFrontPic_Lapras, 0x800, 131 - obj_tiles gMonStillFrontPic_Ditto, 0x800, 132 - obj_tiles gMonStillFrontPic_Eevee, 0x800, 133 - obj_tiles gMonStillFrontPic_Vaporeon, 0x800, 134 - obj_tiles gMonStillFrontPic_Jolteon, 0x800, 135 - obj_tiles gMonStillFrontPic_Flareon, 0x800, 136 - obj_tiles gMonStillFrontPic_Porygon, 0x800, 137 - obj_tiles gMonStillFrontPic_Omanyte, 0x800, 138 - obj_tiles gMonStillFrontPic_Omastar, 0x800, 139 - obj_tiles gMonStillFrontPic_Kabuto, 0x800, 140 - obj_tiles gMonStillFrontPic_Kabutops, 0x800, 141 - obj_tiles gMonStillFrontPic_Aerodactyl, 0x800, 142 - obj_tiles gMonStillFrontPic_Snorlax, 0x800, 143 - obj_tiles gMonStillFrontPic_Articuno, 0x800, 144 - obj_tiles gMonStillFrontPic_Zapdos, 0x800, 145 - obj_tiles gMonStillFrontPic_Moltres, 0x800, 146 - obj_tiles gMonStillFrontPic_Dratini, 0x800, 147 - obj_tiles gMonStillFrontPic_Dragonair, 0x800, 148 - obj_tiles gMonStillFrontPic_Dragonite, 0x800, 149 - obj_tiles gMonStillFrontPic_Mewtwo, 0x800, 150 - obj_tiles gMonStillFrontPic_Mew, 0x800, 151 - obj_tiles gMonStillFrontPic_Chikorita, 0x800, 152 - obj_tiles gMonStillFrontPic_Bayleef, 0x800, 153 - obj_tiles gMonStillFrontPic_Meganium, 0x800, 154 - obj_tiles gMonStillFrontPic_Cyndaquil, 0x800, 155 - obj_tiles gMonStillFrontPic_Quilava, 0x800, 156 - obj_tiles gMonStillFrontPic_Typhlosion, 0x800, 157 - obj_tiles gMonStillFrontPic_Totodile, 0x800, 158 - obj_tiles gMonStillFrontPic_Croconaw, 0x800, 159 - obj_tiles gMonStillFrontPic_Feraligatr, 0x800, 160 - obj_tiles gMonStillFrontPic_Sentret, 0x800, 161 - obj_tiles gMonStillFrontPic_Furret, 0x800, 162 - obj_tiles gMonStillFrontPic_Hoothoot, 0x800, 163 - obj_tiles gMonStillFrontPic_Noctowl, 0x800, 164 - obj_tiles gMonStillFrontPic_Ledyba, 0x800, 165 - obj_tiles gMonStillFrontPic_Ledian, 0x800, 166 - obj_tiles gMonStillFrontPic_Spinarak, 0x800, 167 - obj_tiles gMonStillFrontPic_Ariados, 0x800, 168 - obj_tiles gMonStillFrontPic_Crobat, 0x800, 169 - obj_tiles gMonStillFrontPic_Chinchou, 0x800, 170 - obj_tiles gMonStillFrontPic_Lanturn, 0x800, 171 - obj_tiles gMonStillFrontPic_Pichu, 0x800, 172 - obj_tiles gMonStillFrontPic_Cleffa, 0x800, 173 - obj_tiles gMonStillFrontPic_Igglybuff, 0x800, 174 - obj_tiles gMonStillFrontPic_Togepi, 0x800, 175 - obj_tiles gMonStillFrontPic_Togetic, 0x800, 176 - obj_tiles gMonStillFrontPic_Natu, 0x800, 177 - obj_tiles gMonStillFrontPic_Xatu, 0x800, 178 - obj_tiles gMonStillFrontPic_Mareep, 0x800, 179 - obj_tiles gMonStillFrontPic_Flaaffy, 0x800, 180 - obj_tiles gMonStillFrontPic_Ampharos, 0x800, 181 - obj_tiles gMonStillFrontPic_Bellossom, 0x800, 182 - obj_tiles gMonStillFrontPic_Marill, 0x800, 183 - obj_tiles gMonStillFrontPic_Azumarill, 0x800, 184 - obj_tiles gMonStillFrontPic_Sudowoodo, 0x800, 185 - obj_tiles gMonStillFrontPic_Politoed, 0x800, 186 - obj_tiles gMonStillFrontPic_Hoppip, 0x800, 187 - obj_tiles gMonStillFrontPic_Skiploom, 0x800, 188 - obj_tiles gMonStillFrontPic_Jumpluff, 0x800, 189 - obj_tiles gMonStillFrontPic_Aipom, 0x800, 190 - obj_tiles gMonStillFrontPic_Sunkern, 0x800, 191 - obj_tiles gMonStillFrontPic_Sunflora, 0x800, 192 - obj_tiles gMonStillFrontPic_Yanma, 0x800, 193 - obj_tiles gMonStillFrontPic_Wooper, 0x800, 194 - obj_tiles gMonStillFrontPic_Quagsire, 0x800, 195 - obj_tiles gMonStillFrontPic_Espeon, 0x800, 196 - obj_tiles gMonStillFrontPic_Umbreon, 0x800, 197 - obj_tiles gMonStillFrontPic_Murkrow, 0x800, 198 - obj_tiles gMonStillFrontPic_Slowking, 0x800, 199 - obj_tiles gMonStillFrontPic_Misdreavus, 0x800, 200 - obj_tiles gMonStillFrontPic_UnownA, 0x800, 201 - obj_tiles gMonStillFrontPic_Wobbuffet, 0x800, 202 - obj_tiles gMonStillFrontPic_Girafarig, 0x800, 203 - obj_tiles gMonStillFrontPic_Pineco, 0x800, 204 - obj_tiles gMonStillFrontPic_Forretress, 0x800, 205 - obj_tiles gMonStillFrontPic_Dunsparce, 0x800, 206 - obj_tiles gMonStillFrontPic_Gligar, 0x800, 207 - obj_tiles gMonStillFrontPic_Steelix, 0x800, 208 - obj_tiles gMonStillFrontPic_Snubbull, 0x800, 209 - obj_tiles gMonStillFrontPic_Granbull, 0x800, 210 - obj_tiles gMonStillFrontPic_Qwilfish, 0x800, 211 - obj_tiles gMonStillFrontPic_Scizor, 0x800, 212 - obj_tiles gMonStillFrontPic_Shuckle, 0x800, 213 - obj_tiles gMonStillFrontPic_Heracross, 0x800, 214 - obj_tiles gMonStillFrontPic_Sneasel, 0x800, 215 - obj_tiles gMonStillFrontPic_Teddiursa, 0x800, 216 - obj_tiles gMonStillFrontPic_Ursaring, 0x800, 217 - obj_tiles gMonStillFrontPic_Slugma, 0x800, 218 - obj_tiles gMonStillFrontPic_Magcargo, 0x800, 219 - obj_tiles gMonStillFrontPic_Swinub, 0x800, 220 - obj_tiles gMonStillFrontPic_Piloswine, 0x800, 221 - obj_tiles gMonStillFrontPic_Corsola, 0x800, 222 - obj_tiles gMonStillFrontPic_Remoraid, 0x800, 223 - obj_tiles gMonStillFrontPic_Octillery, 0x800, 224 - obj_tiles gMonStillFrontPic_Delibird, 0x800, 225 - obj_tiles gMonStillFrontPic_Mantine, 0x800, 226 - obj_tiles gMonStillFrontPic_Skarmory, 0x800, 227 - obj_tiles gMonStillFrontPic_Houndour, 0x800, 228 - obj_tiles gMonStillFrontPic_Houndoom, 0x800, 229 - obj_tiles gMonStillFrontPic_Kingdra, 0x800, 230 - obj_tiles gMonStillFrontPic_Phanpy, 0x800, 231 - obj_tiles gMonStillFrontPic_Donphan, 0x800, 232 - obj_tiles gMonStillFrontPic_Porygon2, 0x800, 233 - obj_tiles gMonStillFrontPic_Stantler, 0x800, 234 - obj_tiles gMonStillFrontPic_Smeargle, 0x800, 235 - obj_tiles gMonStillFrontPic_Tyrogue, 0x800, 236 - obj_tiles gMonStillFrontPic_Hitmontop, 0x800, 237 - obj_tiles gMonStillFrontPic_Smoochum, 0x800, 238 - obj_tiles gMonStillFrontPic_Elekid, 0x800, 239 - obj_tiles gMonStillFrontPic_Magby, 0x800, 240 - obj_tiles gMonStillFrontPic_Miltank, 0x800, 241 - obj_tiles gMonStillFrontPic_Blissey, 0x800, 242 - obj_tiles gMonStillFrontPic_Raikou, 0x800, 243 - obj_tiles gMonStillFrontPic_Entei, 0x800, 244 - obj_tiles gMonStillFrontPic_Suicune, 0x800, 245 - obj_tiles gMonStillFrontPic_Larvitar, 0x800, 246 - obj_tiles gMonStillFrontPic_Pupitar, 0x800, 247 - obj_tiles gMonStillFrontPic_Tyranitar, 0x800, 248 - obj_tiles gMonStillFrontPic_Lugia, 0x800, 249 - obj_tiles gMonStillFrontPic_HoOh, 0x800, 250 - obj_tiles gMonStillFrontPic_Celebi, 0x800, 251 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 252 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 253 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 254 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 255 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 256 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 257 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 258 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 259 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 260 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 261 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 262 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 263 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 264 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 265 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 266 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 267 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 268 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 269 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 270 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 271 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 272 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 273 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 274 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 275 - obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 276 - obj_tiles gMonStillFrontPic_Treecko, 0x800, 277 - obj_tiles gMonStillFrontPic_Grovyle, 0x800, 278 - obj_tiles gMonStillFrontPic_Sceptile, 0x800, 279 - obj_tiles gMonStillFrontPic_Torchic, 0x800, 280 - obj_tiles gMonStillFrontPic_Combusken, 0x800, 281 - obj_tiles gMonStillFrontPic_Blaziken, 0x800, 282 - obj_tiles gMonStillFrontPic_Mudkip, 0x800, 283 - obj_tiles gMonStillFrontPic_Marshtomp, 0x800, 284 - obj_tiles gMonStillFrontPic_Swampert, 0x800, 285 - obj_tiles gMonStillFrontPic_Poochyena, 0x800, 286 - obj_tiles gMonStillFrontPic_Mightyena, 0x800, 287 - obj_tiles gMonStillFrontPic_Zigzagoon, 0x800, 288 - obj_tiles gMonStillFrontPic_Linoone, 0x800, 289 - obj_tiles gMonStillFrontPic_Wurmple, 0x800, 290 - obj_tiles gMonStillFrontPic_Silcoon, 0x800, 291 - obj_tiles gMonStillFrontPic_Beautifly, 0x800, 292 - obj_tiles gMonStillFrontPic_Cascoon, 0x800, 293 - obj_tiles gMonStillFrontPic_Dustox, 0x800, 294 - obj_tiles gMonStillFrontPic_Lotad, 0x800, 295 - obj_tiles gMonStillFrontPic_Lombre, 0x800, 296 - obj_tiles gMonStillFrontPic_Ludicolo, 0x800, 297 - obj_tiles gMonStillFrontPic_Seedot, 0x800, 298 - obj_tiles gMonStillFrontPic_Nuzleaf, 0x800, 299 - obj_tiles gMonStillFrontPic_Shiftry, 0x800, 300 - obj_tiles gMonStillFrontPic_Nincada, 0x800, 301 - obj_tiles gMonStillFrontPic_Ninjask, 0x800, 302 - obj_tiles gMonStillFrontPic_Shedinja, 0x800, 303 - obj_tiles gMonStillFrontPic_Taillow, 0x800, 304 - obj_tiles gMonStillFrontPic_Swellow, 0x800, 305 - obj_tiles gMonStillFrontPic_Shroomish, 0x800, 306 - obj_tiles gMonStillFrontPic_Breloom, 0x800, 307 - obj_tiles gMonStillFrontPic_Spinda, 0x800, 308 - obj_tiles gMonStillFrontPic_Wingull, 0x800, 309 - obj_tiles gMonStillFrontPic_Pelipper, 0x800, 310 - obj_tiles gMonStillFrontPic_Surskit, 0x800, 311 - obj_tiles gMonStillFrontPic_Masquerain, 0x800, 312 - obj_tiles gMonStillFrontPic_Wailmer, 0x800, 313 - obj_tiles gMonStillFrontPic_Wailord, 0x800, 314 - obj_tiles gMonStillFrontPic_Skitty, 0x800, 315 - obj_tiles gMonStillFrontPic_Delcatty, 0x800, 316 - obj_tiles gMonStillFrontPic_Kecleon, 0x800, 317 - obj_tiles gMonStillFrontPic_Baltoy, 0x800, 318 - obj_tiles gMonStillFrontPic_Claydol, 0x800, 319 - obj_tiles gMonStillFrontPic_Nosepass, 0x800, 320 - obj_tiles gMonStillFrontPic_Torkoal, 0x800, 321 - obj_tiles gMonStillFrontPic_Sableye, 0x800, 322 - obj_tiles gMonStillFrontPic_Barboach, 0x800, 323 - obj_tiles gMonStillFrontPic_Whiscash, 0x800, 324 - obj_tiles gMonStillFrontPic_Luvdisc, 0x800, 325 - obj_tiles gMonStillFrontPic_Corphish, 0x800, 326 - obj_tiles gMonStillFrontPic_Crawdaunt, 0x800, 327 - obj_tiles gMonStillFrontPic_Feebas, 0x800, 328 - obj_tiles gMonStillFrontPic_Milotic, 0x800, 329 - obj_tiles gMonStillFrontPic_Carvanha, 0x800, 330 - obj_tiles gMonStillFrontPic_Sharpedo, 0x800, 331 - obj_tiles gMonStillFrontPic_Trapinch, 0x800, 332 - obj_tiles gMonStillFrontPic_Vibrava, 0x800, 333 - obj_tiles gMonStillFrontPic_Flygon, 0x800, 334 - obj_tiles gMonStillFrontPic_Makuhita, 0x800, 335 - obj_tiles gMonStillFrontPic_Hariyama, 0x800, 336 - obj_tiles gMonStillFrontPic_Electrike, 0x800, 337 - obj_tiles gMonStillFrontPic_Manectric, 0x800, 338 - obj_tiles gMonStillFrontPic_Numel, 0x800, 339 - obj_tiles gMonStillFrontPic_Camerupt, 0x800, 340 - obj_tiles gMonStillFrontPic_Spheal, 0x800, 341 - obj_tiles gMonStillFrontPic_Sealeo, 0x800, 342 - obj_tiles gMonStillFrontPic_Walrein, 0x800, 343 - obj_tiles gMonStillFrontPic_Cacnea, 0x800, 344 - obj_tiles gMonStillFrontPic_Cacturne, 0x800, 345 - obj_tiles gMonStillFrontPic_Snorunt, 0x800, 346 - obj_tiles gMonStillFrontPic_Glalie, 0x800, 347 - obj_tiles gMonStillFrontPic_Lunatone, 0x800, 348 - obj_tiles gMonStillFrontPic_Solrock, 0x800, 349 - obj_tiles gMonStillFrontPic_Azurill, 0x800, 350 - obj_tiles gMonStillFrontPic_Spoink, 0x800, 351 - obj_tiles gMonStillFrontPic_Grumpig, 0x800, 352 - obj_tiles gMonStillFrontPic_Plusle, 0x800, 353 - obj_tiles gMonStillFrontPic_Minun, 0x800, 354 - obj_tiles gMonStillFrontPic_Mawile, 0x800, 355 - obj_tiles gMonStillFrontPic_Meditite, 0x800, 356 - obj_tiles gMonStillFrontPic_Medicham, 0x800, 357 - obj_tiles gMonStillFrontPic_Swablu, 0x800, 358 - obj_tiles gMonStillFrontPic_Altaria, 0x800, 359 - obj_tiles gMonStillFrontPic_Wynaut, 0x800, 360 - obj_tiles gMonStillFrontPic_Duskull, 0x800, 361 - obj_tiles gMonStillFrontPic_Dusclops, 0x800, 362 - obj_tiles gMonStillFrontPic_Roselia, 0x800, 363 - obj_tiles gMonStillFrontPic_Slakoth, 0x800, 364 - obj_tiles gMonStillFrontPic_Vigoroth, 0x800, 365 - obj_tiles gMonStillFrontPic_Slaking, 0x800, 366 - obj_tiles gMonStillFrontPic_Gulpin, 0x800, 367 - obj_tiles gMonStillFrontPic_Swalot, 0x800, 368 - obj_tiles gMonStillFrontPic_Tropius, 0x800, 369 - obj_tiles gMonStillFrontPic_Whismur, 0x800, 370 - obj_tiles gMonStillFrontPic_Loudred, 0x800, 371 - obj_tiles gMonStillFrontPic_Exploud, 0x800, 372 - obj_tiles gMonStillFrontPic_Clamperl, 0x800, 373 - obj_tiles gMonStillFrontPic_Huntail, 0x800, 374 - obj_tiles gMonStillFrontPic_Gorebyss, 0x800, 375 - obj_tiles gMonStillFrontPic_Absol, 0x800, 376 - obj_tiles gMonStillFrontPic_Shuppet, 0x800, 377 - obj_tiles gMonStillFrontPic_Banette, 0x800, 378 - obj_tiles gMonStillFrontPic_Seviper, 0x800, 379 - obj_tiles gMonStillFrontPic_Zangoose, 0x800, 380 - obj_tiles gMonStillFrontPic_Relicanth, 0x800, 381 - obj_tiles gMonStillFrontPic_Aron, 0x800, 382 - obj_tiles gMonStillFrontPic_Lairon, 0x800, 383 - obj_tiles gMonStillFrontPic_Aggron, 0x800, 384 - obj_tiles gMonStillFrontPic_Castform, 0x800, 385 - obj_tiles gMonStillFrontPic_Volbeat, 0x800, 386 - obj_tiles gMonStillFrontPic_Illumise, 0x800, 387 - obj_tiles gMonStillFrontPic_Lileep, 0x800, 388 - obj_tiles gMonStillFrontPic_Cradily, 0x800, 389 - obj_tiles gMonStillFrontPic_Anorith, 0x800, 390 - obj_tiles gMonStillFrontPic_Armaldo, 0x800, 391 - obj_tiles gMonStillFrontPic_Ralts, 0x800, 392 - obj_tiles gMonStillFrontPic_Kirlia, 0x800, 393 - obj_tiles gMonStillFrontPic_Gardevoir, 0x800, 394 - obj_tiles gMonStillFrontPic_Bagon, 0x800, 395 - obj_tiles gMonStillFrontPic_Shelgon, 0x800, 396 - obj_tiles gMonStillFrontPic_Salamence, 0x800, 397 - obj_tiles gMonStillFrontPic_Beldum, 0x800, 398 - obj_tiles gMonStillFrontPic_Metang, 0x800, 399 - obj_tiles gMonStillFrontPic_Metagross, 0x800, 400 - obj_tiles gMonStillFrontPic_Regirock, 0x800, 401 - obj_tiles gMonStillFrontPic_Regice, 0x800, 402 - obj_tiles gMonStillFrontPic_Registeel, 0x800, 403 - obj_tiles gMonStillFrontPic_Kyogre, 0x800, 404 - obj_tiles gMonStillFrontPic_Groudon, 0x800, 405 - obj_tiles gMonStillFrontPic_Rayquaza, 0x800, 406 - obj_tiles gMonStillFrontPic_Latias, 0x800, 407 - obj_tiles gMonStillFrontPic_Latios, 0x800, 408 - obj_tiles gMonStillFrontPic_Jirachi, 0x800, 409 - obj_tiles gMonStillFrontPic_Deoxys, 0x800, 410 - obj_tiles gMonStillFrontPic_Chimecho, 0x800, 411 - obj_tiles gMonStillFrontPic_Egg, 0x800, 412 - obj_tiles gMonStillFrontPic_UnownB, 0x800, 413 - obj_tiles gMonStillFrontPic_UnownC, 0x800, 414 - obj_tiles gMonStillFrontPic_UnownD, 0x800, 415 - obj_tiles gMonStillFrontPic_UnownE, 0x800, 416 - obj_tiles gMonStillFrontPic_UnownF, 0x800, 417 - obj_tiles gMonStillFrontPic_UnownG, 0x800, 418 - obj_tiles gMonStillFrontPic_UnownH, 0x800, 419 - obj_tiles gMonStillFrontPic_UnownI, 0x800, 420 - obj_tiles gMonStillFrontPic_UnownJ, 0x800, 421 - obj_tiles gMonStillFrontPic_UnownK, 0x800, 422 - obj_tiles gMonStillFrontPic_UnownL, 0x800, 423 - obj_tiles gMonStillFrontPic_UnownM, 0x800, 424 - obj_tiles gMonStillFrontPic_UnownN, 0x800, 425 - obj_tiles gMonStillFrontPic_UnownO, 0x800, 426 - obj_tiles gMonStillFrontPic_UnownP, 0x800, 427 - obj_tiles gMonStillFrontPic_UnownQ, 0x800, 428 - obj_tiles gMonStillFrontPic_UnownR, 0x800, 429 - obj_tiles gMonStillFrontPic_UnownS, 0x800, 430 - obj_tiles gMonStillFrontPic_UnownT, 0x800, 431 - obj_tiles gMonStillFrontPic_UnownU, 0x800, 432 - obj_tiles gMonStillFrontPic_UnownV, 0x800, 433 - obj_tiles gMonStillFrontPic_UnownW, 0x800, 434 - obj_tiles gMonStillFrontPic_UnownX, 0x800, 435 - obj_tiles gMonStillFrontPic_UnownY, 0x800, 436 - obj_tiles gMonStillFrontPic_UnownZ, 0x800, 437 - obj_tiles gMonStillFrontPic_UnownExclamationMark, 0x800, 438 - obj_tiles gMonStillFrontPic_UnownQuestionMark, 0x800, 439 diff --git a/data/graphics/pokemon/palette_table.inc b/data/graphics/pokemon/palette_table.inc new file mode 100644 index 000000000..d636d13ec --- /dev/null +++ b/data/graphics/pokemon/palette_table.inc @@ -0,0 +1,442 @@ + .align 2 +gMonPaletteTable:: @ 8303678 + obj_pal gMonPalette_CircledQuestionMark, 0 + obj_pal gMonPalette_Bulbasaur, 1 + obj_pal gMonPalette_Ivysaur, 2 + obj_pal gMonPalette_Venusaur, 3 + obj_pal gMonPalette_Charmander, 4 + obj_pal gMonPalette_Charmeleon, 5 + obj_pal gMonPalette_Charizard, 6 + obj_pal gMonPalette_Squirtle, 7 + obj_pal gMonPalette_Wartortle, 8 + obj_pal gMonPalette_Blastoise, 9 + obj_pal gMonPalette_Caterpie, 10 + obj_pal gMonPalette_Metapod, 11 + obj_pal gMonPalette_Butterfree, 12 + obj_pal gMonPalette_Weedle, 13 + obj_pal gMonPalette_Kakuna, 14 + obj_pal gMonPalette_Beedrill, 15 + obj_pal gMonPalette_Pidgey, 16 + obj_pal gMonPalette_Pidgeotto, 17 + obj_pal gMonPalette_Pidgeot, 18 + obj_pal gMonPalette_Rattata, 19 + obj_pal gMonPalette_Raticate, 20 + obj_pal gMonPalette_Spearow, 21 + obj_pal gMonPalette_Fearow, 22 + obj_pal gMonPalette_Ekans, 23 + obj_pal gMonPalette_Arbok, 24 + obj_pal gMonPalette_Pikachu, 25 + obj_pal gMonPalette_Raichu, 26 + obj_pal gMonPalette_Sandshrew, 27 + obj_pal gMonPalette_Sandslash, 28 + obj_pal gMonPalette_NidoranF, 29 + obj_pal gMonPalette_Nidorina, 30 + obj_pal gMonPalette_Nidoqueen, 31 + obj_pal gMonPalette_NidoranM, 32 + obj_pal gMonPalette_Nidorino, 33 + obj_pal gMonPalette_Nidoking, 34 + obj_pal gMonPalette_Clefairy, 35 + obj_pal gMonPalette_Clefable, 36 + obj_pal gMonPalette_Vulpix, 37 + obj_pal gMonPalette_Ninetales, 38 + obj_pal gMonPalette_Jigglypuff, 39 + obj_pal gMonPalette_Wigglytuff, 40 + obj_pal gMonPalette_Zubat, 41 + obj_pal gMonPalette_Golbat, 42 + obj_pal gMonPalette_Oddish, 43 + obj_pal gMonPalette_Gloom, 44 + obj_pal gMonPalette_Vileplume, 45 + obj_pal gMonPalette_Paras, 46 + obj_pal gMonPalette_Parasect, 47 + obj_pal gMonPalette_Venonat, 48 + obj_pal gMonPalette_Venomoth, 49 + obj_pal gMonPalette_Diglett, 50 + obj_pal gMonPalette_Dugtrio, 51 + obj_pal gMonPalette_Meowth, 52 + obj_pal gMonPalette_Persian, 53 + obj_pal gMonPalette_Psyduck, 54 + obj_pal gMonPalette_Golduck, 55 + obj_pal gMonPalette_Mankey, 56 + obj_pal gMonPalette_Primeape, 57 + obj_pal gMonPalette_Growlithe, 58 + obj_pal gMonPalette_Arcanine, 59 + obj_pal gMonPalette_Poliwag, 60 + obj_pal gMonPalette_Poliwhirl, 61 + obj_pal gMonPalette_Poliwrath, 62 + obj_pal gMonPalette_Abra, 63 + obj_pal gMonPalette_Kadabra, 64 + obj_pal gMonPalette_Alakazam, 65 + obj_pal gMonPalette_Machop, 66 + obj_pal gMonPalette_Machoke, 67 + obj_pal gMonPalette_Machamp, 68 + obj_pal gMonPalette_Bellsprout, 69 + obj_pal gMonPalette_Weepinbell, 70 + obj_pal gMonPalette_Victreebel, 71 + obj_pal gMonPalette_Tentacool, 72 + obj_pal gMonPalette_Tentacruel, 73 + obj_pal gMonPalette_Geodude, 74 + obj_pal gMonPalette_Graveler, 75 + obj_pal gMonPalette_Golem, 76 + obj_pal gMonPalette_Ponyta, 77 + obj_pal gMonPalette_Rapidash, 78 + obj_pal gMonPalette_Slowpoke, 79 + obj_pal gMonPalette_Slowbro, 80 + obj_pal gMonPalette_Magnemite, 81 + obj_pal gMonPalette_Magneton, 82 + obj_pal gMonPalette_Farfetchd, 83 + obj_pal gMonPalette_Doduo, 84 + obj_pal gMonPalette_Dodrio, 85 + obj_pal gMonPalette_Seel, 86 + obj_pal gMonPalette_Dewgong, 87 + obj_pal gMonPalette_Grimer, 88 + obj_pal gMonPalette_Muk, 89 + obj_pal gMonPalette_Shellder, 90 + obj_pal gMonPalette_Cloyster, 91 + obj_pal gMonPalette_Gastly, 92 + obj_pal gMonPalette_Haunter, 93 + obj_pal gMonPalette_Gengar, 94 + obj_pal gMonPalette_Onix, 95 + obj_pal gMonPalette_Drowzee, 96 + obj_pal gMonPalette_Hypno, 97 + obj_pal gMonPalette_Krabby, 98 + obj_pal gMonPalette_Kingler, 99 + obj_pal gMonPalette_Voltorb, 100 + obj_pal gMonPalette_Electrode, 101 + obj_pal gMonPalette_Exeggcute, 102 + obj_pal gMonPalette_Exeggutor, 103 + obj_pal gMonPalette_Cubone, 104 + obj_pal gMonPalette_Marowak, 105 + obj_pal gMonPalette_Hitmonlee, 106 + obj_pal gMonPalette_Hitmonchan, 107 + obj_pal gMonPalette_Lickitung, 108 + obj_pal gMonPalette_Koffing, 109 + obj_pal gMonPalette_Weezing, 110 + obj_pal gMonPalette_Rhyhorn, 111 + obj_pal gMonPalette_Rhydon, 112 + obj_pal gMonPalette_Chansey, 113 + obj_pal gMonPalette_Tangela, 114 + obj_pal gMonPalette_Kangaskhan, 115 + obj_pal gMonPalette_Horsea, 116 + obj_pal gMonPalette_Seadra, 117 + obj_pal gMonPalette_Goldeen, 118 + obj_pal gMonPalette_Seaking, 119 + obj_pal gMonPalette_Staryu, 120 + obj_pal gMonPalette_Starmie, 121 + obj_pal gMonPalette_Mrmime, 122 + obj_pal gMonPalette_Scyther, 123 + obj_pal gMonPalette_Jynx, 124 + obj_pal gMonPalette_Electabuzz, 125 + obj_pal gMonPalette_Magmar, 126 + obj_pal gMonPalette_Pinsir, 127 + obj_pal gMonPalette_Tauros, 128 + obj_pal gMonPalette_Magikarp, 129 + obj_pal gMonPalette_Gyarados, 130 + obj_pal gMonPalette_Lapras, 131 + obj_pal gMonPalette_Ditto, 132 + obj_pal gMonPalette_Eevee, 133 + obj_pal gMonPalette_Vaporeon, 134 + obj_pal gMonPalette_Jolteon, 135 + obj_pal gMonPalette_Flareon, 136 + obj_pal gMonPalette_Porygon, 137 + obj_pal gMonPalette_Omanyte, 138 + obj_pal gMonPalette_Omastar, 139 + obj_pal gMonPalette_Kabuto, 140 + obj_pal gMonPalette_Kabutops, 141 + obj_pal gMonPalette_Aerodactyl, 142 + obj_pal gMonPalette_Snorlax, 143 + obj_pal gMonPalette_Articuno, 144 + obj_pal gMonPalette_Zapdos, 145 + obj_pal gMonPalette_Moltres, 146 + obj_pal gMonPalette_Dratini, 147 + obj_pal gMonPalette_Dragonair, 148 + obj_pal gMonPalette_Dragonite, 149 + obj_pal gMonPalette_Mewtwo, 150 + obj_pal gMonPalette_Mew, 151 + obj_pal gMonPalette_Chikorita, 152 + obj_pal gMonPalette_Bayleef, 153 + obj_pal gMonPalette_Meganium, 154 + obj_pal gMonPalette_Cyndaquil, 155 + obj_pal gMonPalette_Quilava, 156 + obj_pal gMonPalette_Typhlosion, 157 + obj_pal gMonPalette_Totodile, 158 + obj_pal gMonPalette_Croconaw, 159 + obj_pal gMonPalette_Feraligatr, 160 + obj_pal gMonPalette_Sentret, 161 + obj_pal gMonPalette_Furret, 162 + obj_pal gMonPalette_Hoothoot, 163 + obj_pal gMonPalette_Noctowl, 164 + obj_pal gMonPalette_Ledyba, 165 + obj_pal gMonPalette_Ledian, 166 + obj_pal gMonPalette_Spinarak, 167 + obj_pal gMonPalette_Ariados, 168 + obj_pal gMonPalette_Crobat, 169 + obj_pal gMonPalette_Chinchou, 170 + obj_pal gMonPalette_Lanturn, 171 + obj_pal gMonPalette_Pichu, 172 + obj_pal gMonPalette_Cleffa, 173 + obj_pal gMonPalette_Igglybuff, 174 + obj_pal gMonPalette_Togepi, 175 + obj_pal gMonPalette_Togetic, 176 + obj_pal gMonPalette_Natu, 177 + obj_pal gMonPalette_Xatu, 178 + obj_pal gMonPalette_Mareep, 179 + obj_pal gMonPalette_Flaaffy, 180 + obj_pal gMonPalette_Ampharos, 181 + obj_pal gMonPalette_Bellossom, 182 + obj_pal gMonPalette_Marill, 183 + obj_pal gMonPalette_Azumarill, 184 + obj_pal gMonPalette_Sudowoodo, 185 + obj_pal gMonPalette_Politoed, 186 + obj_pal gMonPalette_Hoppip, 187 + obj_pal gMonPalette_Skiploom, 188 + obj_pal gMonPalette_Jumpluff, 189 + obj_pal gMonPalette_Aipom, 190 + obj_pal gMonPalette_Sunkern, 191 + obj_pal gMonPalette_Sunflora, 192 + obj_pal gMonPalette_Yanma, 193 + obj_pal gMonPalette_Wooper, 194 + obj_pal gMonPalette_Quagsire, 195 + obj_pal gMonPalette_Espeon, 196 + obj_pal gMonPalette_Umbreon, 197 + obj_pal gMonPalette_Murkrow, 198 + obj_pal gMonPalette_Slowking, 199 + obj_pal gMonPalette_Misdreavus, 200 + obj_pal gMonPalette_Unown, 201 + obj_pal gMonPalette_Wobbuffet, 202 + obj_pal gMonPalette_Girafarig, 203 + obj_pal gMonPalette_Pineco, 204 + obj_pal gMonPalette_Forretress, 205 + obj_pal gMonPalette_Dunsparce, 206 + obj_pal gMonPalette_Gligar, 207 + obj_pal gMonPalette_Steelix, 208 + obj_pal gMonPalette_Snubbull, 209 + obj_pal gMonPalette_Granbull, 210 + obj_pal gMonPalette_Qwilfish, 211 + obj_pal gMonPalette_Scizor, 212 + obj_pal gMonPalette_Shuckle, 213 + obj_pal gMonPalette_Heracross, 214 + obj_pal gMonPalette_Sneasel, 215 + obj_pal gMonPalette_Teddiursa, 216 + obj_pal gMonPalette_Ursaring, 217 + obj_pal gMonPalette_Slugma, 218 + obj_pal gMonPalette_Magcargo, 219 + obj_pal gMonPalette_Swinub, 220 + obj_pal gMonPalette_Piloswine, 221 + obj_pal gMonPalette_Corsola, 222 + obj_pal gMonPalette_Remoraid, 223 + obj_pal gMonPalette_Octillery, 224 + obj_pal gMonPalette_Delibird, 225 + obj_pal gMonPalette_Mantine, 226 + obj_pal gMonPalette_Skarmory, 227 + obj_pal gMonPalette_Houndour, 228 + obj_pal gMonPalette_Houndoom, 229 + obj_pal gMonPalette_Kingdra, 230 + obj_pal gMonPalette_Phanpy, 231 + obj_pal gMonPalette_Donphan, 232 + obj_pal gMonPalette_Porygon2, 233 + obj_pal gMonPalette_Stantler, 234 + obj_pal gMonPalette_Smeargle, 235 + obj_pal gMonPalette_Tyrogue, 236 + obj_pal gMonPalette_Hitmontop, 237 + obj_pal gMonPalette_Smoochum, 238 + obj_pal gMonPalette_Elekid, 239 + obj_pal gMonPalette_Magby, 240 + obj_pal gMonPalette_Miltank, 241 + obj_pal gMonPalette_Blissey, 242 + obj_pal gMonPalette_Raikou, 243 + obj_pal gMonPalette_Entei, 244 + obj_pal gMonPalette_Suicune, 245 + obj_pal gMonPalette_Larvitar, 246 + obj_pal gMonPalette_Pupitar, 247 + obj_pal gMonPalette_Tyranitar, 248 + obj_pal gMonPalette_Lugia, 249 + obj_pal gMonPalette_HoOh, 250 + obj_pal gMonPalette_Celebi, 251 + obj_pal gMonPalette_DoubleQuestionMark, 252 + obj_pal gMonPalette_DoubleQuestionMark, 253 + obj_pal gMonPalette_DoubleQuestionMark, 254 + obj_pal gMonPalette_DoubleQuestionMark, 255 + obj_pal gMonPalette_DoubleQuestionMark, 256 + obj_pal gMonPalette_DoubleQuestionMark, 257 + obj_pal gMonPalette_DoubleQuestionMark, 258 + obj_pal gMonPalette_DoubleQuestionMark, 259 + obj_pal gMonPalette_DoubleQuestionMark, 260 + obj_pal gMonPalette_DoubleQuestionMark, 261 + obj_pal gMonPalette_DoubleQuestionMark, 262 + obj_pal gMonPalette_DoubleQuestionMark, 263 + obj_pal gMonPalette_DoubleQuestionMark, 264 + obj_pal gMonPalette_DoubleQuestionMark, 265 + obj_pal gMonPalette_DoubleQuestionMark, 266 + obj_pal gMonPalette_DoubleQuestionMark, 267 + obj_pal gMonPalette_DoubleQuestionMark, 268 + obj_pal gMonPalette_DoubleQuestionMark, 269 + obj_pal gMonPalette_DoubleQuestionMark, 270 + obj_pal gMonPalette_DoubleQuestionMark, 271 + obj_pal gMonPalette_DoubleQuestionMark, 272 + obj_pal gMonPalette_DoubleQuestionMark, 273 + obj_pal gMonPalette_DoubleQuestionMark, 274 + obj_pal gMonPalette_DoubleQuestionMark, 275 + obj_pal gMonPalette_DoubleQuestionMark, 276 + obj_pal gMonPalette_Treecko, 277 + obj_pal gMonPalette_Grovyle, 278 + obj_pal gMonPalette_Sceptile, 279 + obj_pal gMonPalette_Torchic, 280 + obj_pal gMonPalette_Combusken, 281 + obj_pal gMonPalette_Blaziken, 282 + obj_pal gMonPalette_Mudkip, 283 + obj_pal gMonPalette_Marshtomp, 284 + obj_pal gMonPalette_Swampert, 285 + obj_pal gMonPalette_Poochyena, 286 + obj_pal gMonPalette_Mightyena, 287 + obj_pal gMonPalette_Zigzagoon, 288 + obj_pal gMonPalette_Linoone, 289 + obj_pal gMonPalette_Wurmple, 290 + obj_pal gMonPalette_Silcoon, 291 + obj_pal gMonPalette_Beautifly, 292 + obj_pal gMonPalette_Cascoon, 293 + obj_pal gMonPalette_Dustox, 294 + obj_pal gMonPalette_Lotad, 295 + obj_pal gMonPalette_Lombre, 296 + obj_pal gMonPalette_Ludicolo, 297 + obj_pal gMonPalette_Seedot, 298 + obj_pal gMonPalette_Nuzleaf, 299 + obj_pal gMonPalette_Shiftry, 300 + obj_pal gMonPalette_Nincada, 301 + obj_pal gMonPalette_Ninjask, 302 + obj_pal gMonPalette_Shedinja, 303 + obj_pal gMonPalette_Taillow, 304 + obj_pal gMonPalette_Swellow, 305 + obj_pal gMonPalette_Shroomish, 306 + obj_pal gMonPalette_Breloom, 307 + obj_pal gMonPalette_Spinda, 308 + obj_pal gMonPalette_Wingull, 309 + obj_pal gMonPalette_Pelipper, 310 + obj_pal gMonPalette_Surskit, 311 + obj_pal gMonPalette_Masquerain, 312 + obj_pal gMonPalette_Wailmer, 313 + obj_pal gMonPalette_Wailord, 314 + obj_pal gMonPalette_Skitty, 315 + obj_pal gMonPalette_Delcatty, 316 + obj_pal gMonPalette_Kecleon, 317 + obj_pal gMonPalette_Baltoy, 318 + obj_pal gMonPalette_Claydol, 319 + obj_pal gMonPalette_Nosepass, 320 + obj_pal gMonPalette_Torkoal, 321 + obj_pal gMonPalette_Sableye, 322 + obj_pal gMonPalette_Barboach, 323 + obj_pal gMonPalette_Whiscash, 324 + obj_pal gMonPalette_Luvdisc, 325 + obj_pal gMonPalette_Corphish, 326 + obj_pal gMonPalette_Crawdaunt, 327 + obj_pal gMonPalette_Feebas, 328 + obj_pal gMonPalette_Milotic, 329 + obj_pal gMonPalette_Carvanha, 330 + obj_pal gMonPalette_Sharpedo, 331 + obj_pal gMonPalette_Trapinch, 332 + obj_pal gMonPalette_Vibrava, 333 + obj_pal gMonPalette_Flygon, 334 + obj_pal gMonPalette_Makuhita, 335 + obj_pal gMonPalette_Hariyama, 336 + obj_pal gMonPalette_Electrike, 337 + obj_pal gMonPalette_Manectric, 338 + obj_pal gMonPalette_Numel, 339 + obj_pal gMonPalette_Camerupt, 340 + obj_pal gMonPalette_Spheal, 341 + obj_pal gMonPalette_Sealeo, 342 + obj_pal gMonPalette_Walrein, 343 + obj_pal gMonPalette_Cacnea, 344 + obj_pal gMonPalette_Cacturne, 345 + obj_pal gMonPalette_Snorunt, 346 + obj_pal gMonPalette_Glalie, 347 + obj_pal gMonPalette_Lunatone, 348 + obj_pal gMonPalette_Solrock, 349 + obj_pal gMonPalette_Azurill, 350 + obj_pal gMonPalette_Spoink, 351 + obj_pal gMonPalette_Grumpig, 352 + obj_pal gMonPalette_Plusle, 353 + obj_pal gMonPalette_Minun, 354 + obj_pal gMonPalette_Mawile, 355 + obj_pal gMonPalette_Meditite, 356 + obj_pal gMonPalette_Medicham, 357 + obj_pal gMonPalette_Swablu, 358 + obj_pal gMonPalette_Altaria, 359 + obj_pal gMonPalette_Wynaut, 360 + obj_pal gMonPalette_Duskull, 361 + obj_pal gMonPalette_Dusclops, 362 + obj_pal gMonPalette_Roselia, 363 + obj_pal gMonPalette_Slakoth, 364 + obj_pal gMonPalette_Vigoroth, 365 + obj_pal gMonPalette_Slaking, 366 + obj_pal gMonPalette_Gulpin, 367 + obj_pal gMonPalette_Swalot, 368 + obj_pal gMonPalette_Tropius, 369 + obj_pal gMonPalette_Whismur, 370 + obj_pal gMonPalette_Loudred, 371 + obj_pal gMonPalette_Exploud, 372 + obj_pal gMonPalette_Clamperl, 373 + obj_pal gMonPalette_Huntail, 374 + obj_pal gMonPalette_Gorebyss, 375 + obj_pal gMonPalette_Absol, 376 + obj_pal gMonPalette_Shuppet, 377 + obj_pal gMonPalette_Banette, 378 + obj_pal gMonPalette_Seviper, 379 + obj_pal gMonPalette_Zangoose, 380 + obj_pal gMonPalette_Relicanth, 381 + obj_pal gMonPalette_Aron, 382 + obj_pal gMonPalette_Lairon, 383 + obj_pal gMonPalette_Aggron, 384 + obj_pal gMonPalette_Castform, 385 + obj_pal gMonPalette_Volbeat, 386 + obj_pal gMonPalette_Illumise, 387 + obj_pal gMonPalette_Lileep, 388 + obj_pal gMonPalette_Cradily, 389 + obj_pal gMonPalette_Anorith, 390 + obj_pal gMonPalette_Armaldo, 391 + obj_pal gMonPalette_Ralts, 392 + obj_pal gMonPalette_Kirlia, 393 + obj_pal gMonPalette_Gardevoir, 394 + obj_pal gMonPalette_Bagon, 395 + obj_pal gMonPalette_Shelgon, 396 + obj_pal gMonPalette_Salamence, 397 + obj_pal gMonPalette_Beldum, 398 + obj_pal gMonPalette_Metang, 399 + obj_pal gMonPalette_Metagross, 400 + obj_pal gMonPalette_Regirock, 401 + obj_pal gMonPalette_Regice, 402 + obj_pal gMonPalette_Registeel, 403 + obj_pal gMonPalette_Kyogre, 404 + obj_pal gMonPalette_Groudon, 405 + obj_pal gMonPalette_Rayquaza, 406 + obj_pal gMonPalette_Latias, 407 + obj_pal gMonPalette_Latios, 408 + obj_pal gMonPalette_Jirachi, 409 + obj_pal gMonPalette_Deoxys, 410 + obj_pal gMonPalette_Chimecho, 411 + obj_pal gMonPalette_Egg, 412 + obj_pal gMonPalette_Unown, 413 + obj_pal gMonPalette_Unown, 414 + obj_pal gMonPalette_Unown, 415 + obj_pal gMonPalette_Unown, 416 + obj_pal gMonPalette_Unown, 417 + obj_pal gMonPalette_Unown, 418 + obj_pal gMonPalette_Unown, 419 + obj_pal gMonPalette_Unown, 420 + obj_pal gMonPalette_Unown, 421 + obj_pal gMonPalette_Unown, 422 + obj_pal gMonPalette_Unown, 423 + obj_pal gMonPalette_Unown, 424 + obj_pal gMonPalette_Unown, 425 + obj_pal gMonPalette_Unown, 426 + obj_pal gMonPalette_Unown, 427 + obj_pal gMonPalette_Unown, 428 + obj_pal gMonPalette_Unown, 429 + obj_pal gMonPalette_Unown, 430 + obj_pal gMonPalette_Unown, 431 + obj_pal gMonPalette_Unown, 432 + obj_pal gMonPalette_Unown, 433 + obj_pal gMonPalette_Unown, 434 + obj_pal gMonPalette_Unown, 435 + obj_pal gMonPalette_Unown, 436 + obj_pal gMonPalette_Unown, 437 + obj_pal gMonPalette_Unown, 438 + obj_pal gMonPalette_Unown, 439 diff --git a/data/graphics/pokemon/shiny_palette_table.inc b/data/graphics/pokemon/shiny_palette_table.inc new file mode 100644 index 000000000..724820221 --- /dev/null +++ b/data/graphics/pokemon/shiny_palette_table.inc @@ -0,0 +1,442 @@ + .align 2 +gMonShinyPaletteTable:: @ 8304438 + obj_pal gMonShinyPalette_CircledQuestionMark, 500 + obj_pal gMonShinyPalette_Bulbasaur, 501 + obj_pal gMonShinyPalette_Ivysaur, 502 + obj_pal gMonShinyPalette_Venusaur, 503 + obj_pal gMonShinyPalette_Charmander, 504 + obj_pal gMonShinyPalette_Charmeleon, 505 + obj_pal gMonShinyPalette_Charizard, 506 + obj_pal gMonShinyPalette_Squirtle, 507 + obj_pal gMonShinyPalette_Wartortle, 508 + obj_pal gMonShinyPalette_Blastoise, 509 + obj_pal gMonShinyPalette_Caterpie, 510 + obj_pal gMonShinyPalette_Metapod, 511 + obj_pal gMonShinyPalette_Butterfree, 512 + obj_pal gMonShinyPalette_Weedle, 513 + obj_pal gMonShinyPalette_Kakuna, 514 + obj_pal gMonShinyPalette_Beedrill, 515 + obj_pal gMonShinyPalette_Pidgey, 516 + obj_pal gMonShinyPalette_Pidgeotto, 517 + obj_pal gMonShinyPalette_Pidgeot, 518 + obj_pal gMonShinyPalette_Rattata, 519 + obj_pal gMonShinyPalette_Raticate, 520 + obj_pal gMonShinyPalette_Spearow, 521 + obj_pal gMonShinyPalette_Fearow, 522 + obj_pal gMonShinyPalette_Ekans, 523 + obj_pal gMonShinyPalette_Arbok, 524 + obj_pal gMonShinyPalette_Pikachu, 525 + obj_pal gMonShinyPalette_Raichu, 526 + obj_pal gMonShinyPalette_Sandshrew, 527 + obj_pal gMonShinyPalette_Sandslash, 528 + obj_pal gMonShinyPalette_NidoranF, 529 + obj_pal gMonShinyPalette_Nidorina, 530 + obj_pal gMonShinyPalette_Nidoqueen, 531 + obj_pal gMonShinyPalette_NidoranM, 532 + obj_pal gMonShinyPalette_Nidorino, 533 + obj_pal gMonShinyPalette_Nidoking, 534 + obj_pal gMonShinyPalette_Clefairy, 535 + obj_pal gMonShinyPalette_Clefable, 536 + obj_pal gMonShinyPalette_Vulpix, 537 + obj_pal gMonShinyPalette_Ninetales, 538 + obj_pal gMonShinyPalette_Jigglypuff, 539 + obj_pal gMonShinyPalette_Wigglytuff, 540 + obj_pal gMonShinyPalette_Zubat, 541 + obj_pal gMonShinyPalette_Golbat, 542 + obj_pal gMonShinyPalette_Oddish, 543 + obj_pal gMonShinyPalette_Gloom, 544 + obj_pal gMonShinyPalette_Vileplume, 545 + obj_pal gMonShinyPalette_Paras, 546 + obj_pal gMonShinyPalette_Parasect, 547 + obj_pal gMonShinyPalette_Venonat, 548 + obj_pal gMonShinyPalette_Venomoth, 549 + obj_pal gMonShinyPalette_Diglett, 550 + obj_pal gMonShinyPalette_Dugtrio, 551 + obj_pal gMonShinyPalette_Meowth, 552 + obj_pal gMonShinyPalette_Persian, 553 + obj_pal gMonShinyPalette_Psyduck, 554 + obj_pal gMonShinyPalette_Golduck, 555 + obj_pal gMonShinyPalette_Mankey, 556 + obj_pal gMonShinyPalette_Primeape, 557 + obj_pal gMonShinyPalette_Growlithe, 558 + obj_pal gMonShinyPalette_Arcanine, 559 + obj_pal gMonShinyPalette_Poliwag, 560 + obj_pal gMonShinyPalette_Poliwhirl, 561 + obj_pal gMonShinyPalette_Poliwrath, 562 + obj_pal gMonShinyPalette_Abra, 563 + obj_pal gMonShinyPalette_Kadabra, 564 + obj_pal gMonShinyPalette_Alakazam, 565 + obj_pal gMonShinyPalette_Machop, 566 + obj_pal gMonShinyPalette_Machoke, 567 + obj_pal gMonShinyPalette_Machamp, 568 + obj_pal gMonShinyPalette_Bellsprout, 569 + obj_pal gMonShinyPalette_Weepinbell, 570 + obj_pal gMonShinyPalette_Victreebel, 571 + obj_pal gMonShinyPalette_Tentacool, 572 + obj_pal gMonShinyPalette_Tentacruel, 573 + obj_pal gMonShinyPalette_Geodude, 574 + obj_pal gMonShinyPalette_Graveler, 575 + obj_pal gMonShinyPalette_Golem, 576 + obj_pal gMonShinyPalette_Ponyta, 577 + obj_pal gMonShinyPalette_Rapidash, 578 + obj_pal gMonShinyPalette_Slowpoke, 579 + obj_pal gMonShinyPalette_Slowbro, 580 + obj_pal gMonShinyPalette_Magnemite, 581 + obj_pal gMonShinyPalette_Magneton, 582 + obj_pal gMonShinyPalette_Farfetchd, 583 + obj_pal gMonShinyPalette_Doduo, 584 + obj_pal gMonShinyPalette_Dodrio, 585 + obj_pal gMonShinyPalette_Seel, 586 + obj_pal gMonShinyPalette_Dewgong, 587 + obj_pal gMonShinyPalette_Grimer, 588 + obj_pal gMonShinyPalette_Muk, 589 + obj_pal gMonShinyPalette_Shellder, 590 + obj_pal gMonShinyPalette_Cloyster, 591 + obj_pal gMonShinyPalette_Gastly, 592 + obj_pal gMonShinyPalette_Haunter, 593 + obj_pal gMonShinyPalette_Gengar, 594 + obj_pal gMonShinyPalette_Onix, 595 + obj_pal gMonShinyPalette_Drowzee, 596 + obj_pal gMonShinyPalette_Hypno, 597 + obj_pal gMonShinyPalette_Krabby, 598 + obj_pal gMonShinyPalette_Kingler, 599 + obj_pal gMonShinyPalette_Voltorb, 600 + obj_pal gMonShinyPalette_Electrode, 601 + obj_pal gMonShinyPalette_Exeggcute, 602 + obj_pal gMonShinyPalette_Exeggutor, 603 + obj_pal gMonShinyPalette_Cubone, 604 + obj_pal gMonShinyPalette_Marowak, 605 + obj_pal gMonShinyPalette_Hitmonlee, 606 + obj_pal gMonShinyPalette_Hitmonchan, 607 + obj_pal gMonShinyPalette_Lickitung, 608 + obj_pal gMonShinyPalette_Koffing, 609 + obj_pal gMonShinyPalette_Weezing, 610 + obj_pal gMonShinyPalette_Rhyhorn, 611 + obj_pal gMonShinyPalette_Rhydon, 612 + obj_pal gMonShinyPalette_Chansey, 613 + obj_pal gMonShinyPalette_Tangela, 614 + obj_pal gMonShinyPalette_Kangaskhan, 615 + obj_pal gMonShinyPalette_Horsea, 616 + obj_pal gMonShinyPalette_Seadra, 617 + obj_pal gMonShinyPalette_Goldeen, 618 + obj_pal gMonShinyPalette_Seaking, 619 + obj_pal gMonShinyPalette_Staryu, 620 + obj_pal gMonShinyPalette_Starmie, 621 + obj_pal gMonShinyPalette_Mrmime, 622 + obj_pal gMonShinyPalette_Scyther, 623 + obj_pal gMonShinyPalette_Jynx, 624 + obj_pal gMonShinyPalette_Electabuzz, 625 + obj_pal gMonShinyPalette_Magmar, 626 + obj_pal gMonShinyPalette_Pinsir, 627 + obj_pal gMonShinyPalette_Tauros, 628 + obj_pal gMonShinyPalette_Magikarp, 629 + obj_pal gMonShinyPalette_Gyarados, 630 + obj_pal gMonShinyPalette_Lapras, 631 + obj_pal gMonShinyPalette_Ditto, 632 + obj_pal gMonShinyPalette_Eevee, 633 + obj_pal gMonShinyPalette_Vaporeon, 634 + obj_pal gMonShinyPalette_Jolteon, 635 + obj_pal gMonShinyPalette_Flareon, 636 + obj_pal gMonShinyPalette_Porygon, 637 + obj_pal gMonShinyPalette_Omanyte, 638 + obj_pal gMonShinyPalette_Omastar, 639 + obj_pal gMonShinyPalette_Kabuto, 640 + obj_pal gMonShinyPalette_Kabutops, 641 + obj_pal gMonShinyPalette_Aerodactyl, 642 + obj_pal gMonShinyPalette_Snorlax, 643 + obj_pal gMonShinyPalette_Articuno, 644 + obj_pal gMonShinyPalette_Zapdos, 645 + obj_pal gMonShinyPalette_Moltres, 646 + obj_pal gMonShinyPalette_Dratini, 647 + obj_pal gMonShinyPalette_Dragonair, 648 + obj_pal gMonShinyPalette_Dragonite, 649 + obj_pal gMonShinyPalette_Mewtwo, 650 + obj_pal gMonShinyPalette_Mew, 651 + obj_pal gMonShinyPalette_Chikorita, 652 + obj_pal gMonShinyPalette_Bayleef, 653 + obj_pal gMonShinyPalette_Meganium, 654 + obj_pal gMonShinyPalette_Cyndaquil, 655 + obj_pal gMonShinyPalette_Quilava, 656 + obj_pal gMonShinyPalette_Typhlosion, 657 + obj_pal gMonShinyPalette_Totodile, 658 + obj_pal gMonShinyPalette_Croconaw, 659 + obj_pal gMonShinyPalette_Feraligatr, 660 + obj_pal gMonShinyPalette_Sentret, 661 + obj_pal gMonShinyPalette_Furret, 662 + obj_pal gMonShinyPalette_Hoothoot, 663 + obj_pal gMonShinyPalette_Noctowl, 664 + obj_pal gMonShinyPalette_Ledyba, 665 + obj_pal gMonShinyPalette_Ledian, 666 + obj_pal gMonShinyPalette_Spinarak, 667 + obj_pal gMonShinyPalette_Ariados, 668 + obj_pal gMonShinyPalette_Crobat, 669 + obj_pal gMonShinyPalette_Chinchou, 670 + obj_pal gMonShinyPalette_Lanturn, 671 + obj_pal gMonShinyPalette_Pichu, 672 + obj_pal gMonShinyPalette_Cleffa, 673 + obj_pal gMonShinyPalette_Igglybuff, 674 + obj_pal gMonShinyPalette_Togepi, 675 + obj_pal gMonShinyPalette_Togetic, 676 + obj_pal gMonShinyPalette_Natu, 677 + obj_pal gMonShinyPalette_Xatu, 678 + obj_pal gMonShinyPalette_Mareep, 679 + obj_pal gMonShinyPalette_Flaaffy, 680 + obj_pal gMonShinyPalette_Ampharos, 681 + obj_pal gMonShinyPalette_Bellossom, 682 + obj_pal gMonShinyPalette_Marill, 683 + obj_pal gMonShinyPalette_Azumarill, 684 + obj_pal gMonShinyPalette_Sudowoodo, 685 + obj_pal gMonShinyPalette_Politoed, 686 + obj_pal gMonShinyPalette_Hoppip, 687 + obj_pal gMonShinyPalette_Skiploom, 688 + obj_pal gMonShinyPalette_Jumpluff, 689 + obj_pal gMonShinyPalette_Aipom, 690 + obj_pal gMonShinyPalette_Sunkern, 691 + obj_pal gMonShinyPalette_Sunflora, 692 + obj_pal gMonShinyPalette_Yanma, 693 + obj_pal gMonShinyPalette_Wooper, 694 + obj_pal gMonShinyPalette_Quagsire, 695 + obj_pal gMonShinyPalette_Espeon, 696 + obj_pal gMonShinyPalette_Umbreon, 697 + obj_pal gMonShinyPalette_Murkrow, 698 + obj_pal gMonShinyPalette_Slowking, 699 + obj_pal gMonShinyPalette_Misdreavus, 700 + obj_pal gMonShinyPalette_Unown, 701 + obj_pal gMonShinyPalette_Wobbuffet, 702 + obj_pal gMonShinyPalette_Girafarig, 703 + obj_pal gMonShinyPalette_Pineco, 704 + obj_pal gMonShinyPalette_Forretress, 705 + obj_pal gMonShinyPalette_Dunsparce, 706 + obj_pal gMonShinyPalette_Gligar, 707 + obj_pal gMonShinyPalette_Steelix, 708 + obj_pal gMonShinyPalette_Snubbull, 709 + obj_pal gMonShinyPalette_Granbull, 710 + obj_pal gMonShinyPalette_Qwilfish, 711 + obj_pal gMonShinyPalette_Scizor, 712 + obj_pal gMonShinyPalette_Shuckle, 713 + obj_pal gMonShinyPalette_Heracross, 714 + obj_pal gMonShinyPalette_Sneasel, 715 + obj_pal gMonShinyPalette_Teddiursa, 716 + obj_pal gMonShinyPalette_Ursaring, 717 + obj_pal gMonShinyPalette_Slugma, 718 + obj_pal gMonShinyPalette_Magcargo, 719 + obj_pal gMonShinyPalette_Swinub, 720 + obj_pal gMonShinyPalette_Piloswine, 721 + obj_pal gMonShinyPalette_Corsola, 722 + obj_pal gMonShinyPalette_Remoraid, 723 + obj_pal gMonShinyPalette_Octillery, 724 + obj_pal gMonShinyPalette_Delibird, 725 + obj_pal gMonShinyPalette_Mantine, 726 + obj_pal gMonShinyPalette_Skarmory, 727 + obj_pal gMonShinyPalette_Houndour, 728 + obj_pal gMonShinyPalette_Houndoom, 729 + obj_pal gMonShinyPalette_Kingdra, 730 + obj_pal gMonShinyPalette_Phanpy, 731 + obj_pal gMonShinyPalette_Donphan, 732 + obj_pal gMonShinyPalette_Porygon2, 733 + obj_pal gMonShinyPalette_Stantler, 734 + obj_pal gMonShinyPalette_Smeargle, 735 + obj_pal gMonShinyPalette_Tyrogue, 736 + obj_pal gMonShinyPalette_Hitmontop, 737 + obj_pal gMonShinyPalette_Smoochum, 738 + obj_pal gMonShinyPalette_Elekid, 739 + obj_pal gMonShinyPalette_Magby, 740 + obj_pal gMonShinyPalette_Miltank, 741 + obj_pal gMonShinyPalette_Blissey, 742 + obj_pal gMonShinyPalette_Raikou, 743 + obj_pal gMonShinyPalette_Entei, 744 + obj_pal gMonShinyPalette_Suicune, 745 + obj_pal gMonShinyPalette_Larvitar, 746 + obj_pal gMonShinyPalette_Pupitar, 747 + obj_pal gMonShinyPalette_Tyranitar, 748 + obj_pal gMonShinyPalette_Lugia, 749 + obj_pal gMonShinyPalette_HoOh, 750 + obj_pal gMonShinyPalette_Celebi, 751 + obj_pal gMonShinyPalette_DoubleQuestionMark, 752 + obj_pal gMonShinyPalette_DoubleQuestionMark, 753 + obj_pal gMonShinyPalette_DoubleQuestionMark, 754 + obj_pal gMonShinyPalette_DoubleQuestionMark, 755 + obj_pal gMonShinyPalette_DoubleQuestionMark, 756 + obj_pal gMonShinyPalette_DoubleQuestionMark, 757 + obj_pal gMonShinyPalette_DoubleQuestionMark, 758 + obj_pal gMonShinyPalette_DoubleQuestionMark, 759 + obj_pal gMonShinyPalette_DoubleQuestionMark, 760 + obj_pal gMonShinyPalette_DoubleQuestionMark, 761 + obj_pal gMonShinyPalette_DoubleQuestionMark, 762 + obj_pal gMonShinyPalette_DoubleQuestionMark, 763 + obj_pal gMonShinyPalette_DoubleQuestionMark, 764 + obj_pal gMonShinyPalette_DoubleQuestionMark, 765 + obj_pal gMonShinyPalette_DoubleQuestionMark, 766 + obj_pal gMonShinyPalette_DoubleQuestionMark, 767 + obj_pal gMonShinyPalette_DoubleQuestionMark, 768 + obj_pal gMonShinyPalette_DoubleQuestionMark, 769 + obj_pal gMonShinyPalette_DoubleQuestionMark, 770 + obj_pal gMonShinyPalette_DoubleQuestionMark, 771 + obj_pal gMonShinyPalette_DoubleQuestionMark, 772 + obj_pal gMonShinyPalette_DoubleQuestionMark, 773 + obj_pal gMonShinyPalette_DoubleQuestionMark, 774 + obj_pal gMonShinyPalette_DoubleQuestionMark, 775 + obj_pal gMonShinyPalette_DoubleQuestionMark, 776 + obj_pal gMonShinyPalette_Treecko, 777 + obj_pal gMonShinyPalette_Grovyle, 778 + obj_pal gMonShinyPalette_Sceptile, 779 + obj_pal gMonShinyPalette_Torchic, 780 + obj_pal gMonShinyPalette_Combusken, 781 + obj_pal gMonShinyPalette_Blaziken, 782 + obj_pal gMonShinyPalette_Mudkip, 783 + obj_pal gMonShinyPalette_Marshtomp, 784 + obj_pal gMonShinyPalette_Swampert, 785 + obj_pal gMonShinyPalette_Poochyena, 786 + obj_pal gMonShinyPalette_Mightyena, 787 + obj_pal gMonShinyPalette_Zigzagoon, 788 + obj_pal gMonShinyPalette_Linoone, 789 + obj_pal gMonShinyPalette_Wurmple, 790 + obj_pal gMonShinyPalette_Silcoon, 791 + obj_pal gMonShinyPalette_Beautifly, 792 + obj_pal gMonShinyPalette_Cascoon, 793 + obj_pal gMonShinyPalette_Dustox, 794 + obj_pal gMonShinyPalette_Lotad, 795 + obj_pal gMonShinyPalette_Lombre, 796 + obj_pal gMonShinyPalette_Ludicolo, 797 + obj_pal gMonShinyPalette_Seedot, 798 + obj_pal gMonShinyPalette_Nuzleaf, 799 + obj_pal gMonShinyPalette_Shiftry, 800 + obj_pal gMonShinyPalette_Nincada, 801 + obj_pal gMonShinyPalette_Ninjask, 802 + obj_pal gMonShinyPalette_Shedinja, 803 + obj_pal gMonShinyPalette_Taillow, 804 + obj_pal gMonShinyPalette_Swellow, 805 + obj_pal gMonShinyPalette_Shroomish, 806 + obj_pal gMonShinyPalette_Breloom, 807 + obj_pal gMonShinyPalette_Spinda, 808 + obj_pal gMonShinyPalette_Wingull, 809 + obj_pal gMonShinyPalette_Pelipper, 810 + obj_pal gMonShinyPalette_Surskit, 811 + obj_pal gMonShinyPalette_Masquerain, 812 + obj_pal gMonShinyPalette_Wailmer, 813 + obj_pal gMonShinyPalette_Wailord, 814 + obj_pal gMonShinyPalette_Skitty, 815 + obj_pal gMonShinyPalette_Delcatty, 816 + obj_pal gMonShinyPalette_Kecleon, 817 + obj_pal gMonShinyPalette_Baltoy, 818 + obj_pal gMonShinyPalette_Claydol, 819 + obj_pal gMonShinyPalette_Nosepass, 820 + obj_pal gMonShinyPalette_Torkoal, 821 + obj_pal gMonShinyPalette_Sableye, 822 + obj_pal gMonShinyPalette_Barboach, 823 + obj_pal gMonShinyPalette_Whiscash, 824 + obj_pal gMonShinyPalette_Luvdisc, 825 + obj_pal gMonShinyPalette_Corphish, 826 + obj_pal gMonShinyPalette_Crawdaunt, 827 + obj_pal gMonShinyPalette_Feebas, 828 + obj_pal gMonShinyPalette_Milotic, 829 + obj_pal gMonShinyPalette_Carvanha, 830 + obj_pal gMonShinyPalette_Sharpedo, 831 + obj_pal gMonShinyPalette_Trapinch, 832 + obj_pal gMonShinyPalette_Vibrava, 833 + obj_pal gMonShinyPalette_Flygon, 834 + obj_pal gMonShinyPalette_Makuhita, 835 + obj_pal gMonShinyPalette_Hariyama, 836 + obj_pal gMonShinyPalette_Electrike, 837 + obj_pal gMonShinyPalette_Manectric, 838 + obj_pal gMonShinyPalette_Numel, 839 + obj_pal gMonShinyPalette_Camerupt, 840 + obj_pal gMonShinyPalette_Spheal, 841 + obj_pal gMonShinyPalette_Sealeo, 842 + obj_pal gMonShinyPalette_Walrein, 843 + obj_pal gMonShinyPalette_Cacnea, 844 + obj_pal gMonShinyPalette_Cacturne, 845 + obj_pal gMonShinyPalette_Snorunt, 846 + obj_pal gMonShinyPalette_Glalie, 847 + obj_pal gMonShinyPalette_Lunatone, 848 + obj_pal gMonShinyPalette_Solrock, 849 + obj_pal gMonShinyPalette_Azurill, 850 + obj_pal gMonShinyPalette_Spoink, 851 + obj_pal gMonShinyPalette_Grumpig, 852 + obj_pal gMonShinyPalette_Plusle, 853 + obj_pal gMonShinyPalette_Minun, 854 + obj_pal gMonShinyPalette_Mawile, 855 + obj_pal gMonShinyPalette_Meditite, 856 + obj_pal gMonShinyPalette_Medicham, 857 + obj_pal gMonShinyPalette_Swablu, 858 + obj_pal gMonShinyPalette_Altaria, 859 + obj_pal gMonShinyPalette_Wynaut, 860 + obj_pal gMonShinyPalette_Duskull, 861 + obj_pal gMonShinyPalette_Dusclops, 862 + obj_pal gMonShinyPalette_Roselia, 863 + obj_pal gMonShinyPalette_Slakoth, 864 + obj_pal gMonShinyPalette_Vigoroth, 865 + obj_pal gMonShinyPalette_Slaking, 866 + obj_pal gMonShinyPalette_Gulpin, 867 + obj_pal gMonShinyPalette_Swalot, 868 + obj_pal gMonShinyPalette_Tropius, 869 + obj_pal gMonShinyPalette_Whismur, 870 + obj_pal gMonShinyPalette_Loudred, 871 + obj_pal gMonShinyPalette_Exploud, 872 + obj_pal gMonShinyPalette_Clamperl, 873 + obj_pal gMonShinyPalette_Huntail, 874 + obj_pal gMonShinyPalette_Gorebyss, 875 + obj_pal gMonShinyPalette_Absol, 876 + obj_pal gMonShinyPalette_Shuppet, 877 + obj_pal gMonShinyPalette_Banette, 878 + obj_pal gMonShinyPalette_Seviper, 879 + obj_pal gMonShinyPalette_Zangoose, 880 + obj_pal gMonShinyPalette_Relicanth, 881 + obj_pal gMonShinyPalette_Aron, 882 + obj_pal gMonShinyPalette_Lairon, 883 + obj_pal gMonShinyPalette_Aggron, 884 + obj_pal gMonShinyPalette_Castform, 885 + obj_pal gMonShinyPalette_Volbeat, 886 + obj_pal gMonShinyPalette_Illumise, 887 + obj_pal gMonShinyPalette_Lileep, 888 + obj_pal gMonShinyPalette_Cradily, 889 + obj_pal gMonShinyPalette_Anorith, 890 + obj_pal gMonShinyPalette_Armaldo, 891 + obj_pal gMonShinyPalette_Ralts, 892 + obj_pal gMonShinyPalette_Kirlia, 893 + obj_pal gMonShinyPalette_Gardevoir, 894 + obj_pal gMonShinyPalette_Bagon, 895 + obj_pal gMonShinyPalette_Shelgon, 896 + obj_pal gMonShinyPalette_Salamence, 897 + obj_pal gMonShinyPalette_Beldum, 898 + obj_pal gMonShinyPalette_Metang, 899 + obj_pal gMonShinyPalette_Metagross, 900 + obj_pal gMonShinyPalette_Regirock, 901 + obj_pal gMonShinyPalette_Regice, 902 + obj_pal gMonShinyPalette_Registeel, 903 + obj_pal gMonShinyPalette_Kyogre, 904 + obj_pal gMonShinyPalette_Groudon, 905 + obj_pal gMonShinyPalette_Rayquaza, 906 + obj_pal gMonShinyPalette_Latias, 907 + obj_pal gMonShinyPalette_Latios, 908 + obj_pal gMonShinyPalette_Jirachi, 909 + obj_pal gMonShinyPalette_Deoxys, 910 + obj_pal gMonShinyPalette_Chimecho, 911 + obj_pal gMonPalette_Egg, 912 + obj_pal gMonShinyPalette_Unown, 913 + obj_pal gMonShinyPalette_Unown, 914 + obj_pal gMonShinyPalette_Unown, 915 + obj_pal gMonShinyPalette_Unown, 916 + obj_pal gMonShinyPalette_Unown, 917 + obj_pal gMonShinyPalette_Unown, 918 + obj_pal gMonShinyPalette_Unown, 919 + obj_pal gMonShinyPalette_Unown, 920 + obj_pal gMonShinyPalette_Unown, 921 + obj_pal gMonShinyPalette_Unown, 922 + obj_pal gMonShinyPalette_Unown, 923 + obj_pal gMonShinyPalette_Unown, 924 + obj_pal gMonShinyPalette_Unown, 925 + obj_pal gMonShinyPalette_Unown, 926 + obj_pal gMonShinyPalette_Unown, 927 + obj_pal gMonShinyPalette_Unown, 928 + obj_pal gMonShinyPalette_Unown, 929 + obj_pal gMonShinyPalette_Unown, 930 + obj_pal gMonShinyPalette_Unown, 931 + obj_pal gMonShinyPalette_Unown, 932 + obj_pal gMonShinyPalette_Unown, 933 + obj_pal gMonShinyPalette_Unown, 934 + obj_pal gMonShinyPalette_Unown, 935 + obj_pal gMonShinyPalette_Unown, 936 + obj_pal gMonShinyPalette_Unown, 937 + obj_pal gMonShinyPalette_Unown, 938 + obj_pal gMonShinyPalette_Unown, 939 diff --git a/data/graphics/pokemon/still_front_pic_table.inc b/data/graphics/pokemon/still_front_pic_table.inc new file mode 100644 index 000000000..448729955 --- /dev/null +++ b/data/graphics/pokemon/still_front_pic_table.inc @@ -0,0 +1,442 @@ + .align 2 +gMonStillFrontPicTable:: @ 8301418 + obj_tiles gMonStillFrontPic_CircledQuestionMark, 0x800, 0 + obj_tiles gMonStillFrontPic_Bulbasaur, 0x800, 1 + obj_tiles gMonStillFrontPic_Ivysaur, 0x800, 2 + obj_tiles gMonStillFrontPic_Venusaur, 0x800, 3 + obj_tiles gMonStillFrontPic_Charmander, 0x800, 4 + obj_tiles gMonStillFrontPic_Charmeleon, 0x800, 5 + obj_tiles gMonStillFrontPic_Charizard, 0x800, 6 + obj_tiles gMonStillFrontPic_Squirtle, 0x800, 7 + obj_tiles gMonStillFrontPic_Wartortle, 0x800, 8 + obj_tiles gMonStillFrontPic_Blastoise, 0x800, 9 + obj_tiles gMonStillFrontPic_Caterpie, 0x800, 10 + obj_tiles gMonStillFrontPic_Metapod, 0x800, 11 + obj_tiles gMonStillFrontPic_Butterfree, 0x800, 12 + obj_tiles gMonStillFrontPic_Weedle, 0x800, 13 + obj_tiles gMonStillFrontPic_Kakuna, 0x800, 14 + obj_tiles gMonStillFrontPic_Beedrill, 0x800, 15 + obj_tiles gMonStillFrontPic_Pidgey, 0x800, 16 + obj_tiles gMonStillFrontPic_Pidgeotto, 0x800, 17 + obj_tiles gMonStillFrontPic_Pidgeot, 0x800, 18 + obj_tiles gMonStillFrontPic_Rattata, 0x800, 19 + obj_tiles gMonStillFrontPic_Raticate, 0x800, 20 + obj_tiles gMonStillFrontPic_Spearow, 0x800, 21 + obj_tiles gMonStillFrontPic_Fearow, 0x800, 22 + obj_tiles gMonStillFrontPic_Ekans, 0x800, 23 + obj_tiles gMonStillFrontPic_Arbok, 0x800, 24 + obj_tiles gMonStillFrontPic_Pikachu, 0x800, 25 + obj_tiles gMonStillFrontPic_Raichu, 0x800, 26 + obj_tiles gMonStillFrontPic_Sandshrew, 0x800, 27 + obj_tiles gMonStillFrontPic_Sandslash, 0x800, 28 + obj_tiles gMonStillFrontPic_NidoranF, 0x800, 29 + obj_tiles gMonStillFrontPic_Nidorina, 0x800, 30 + obj_tiles gMonStillFrontPic_Nidoqueen, 0x800, 31 + obj_tiles gMonStillFrontPic_NidoranM, 0x800, 32 + obj_tiles gMonStillFrontPic_Nidorino, 0x800, 33 + obj_tiles gMonStillFrontPic_Nidoking, 0x800, 34 + obj_tiles gMonStillFrontPic_Clefairy, 0x800, 35 + obj_tiles gMonStillFrontPic_Clefable, 0x800, 36 + obj_tiles gMonStillFrontPic_Vulpix, 0x800, 37 + obj_tiles gMonStillFrontPic_Ninetales, 0x800, 38 + obj_tiles gMonStillFrontPic_Jigglypuff, 0x800, 39 + obj_tiles gMonStillFrontPic_Wigglytuff, 0x800, 40 + obj_tiles gMonStillFrontPic_Zubat, 0x800, 41 + obj_tiles gMonStillFrontPic_Golbat, 0x800, 42 + obj_tiles gMonStillFrontPic_Oddish, 0x800, 43 + obj_tiles gMonStillFrontPic_Gloom, 0x800, 44 + obj_tiles gMonStillFrontPic_Vileplume, 0x800, 45 + obj_tiles gMonStillFrontPic_Paras, 0x800, 46 + obj_tiles gMonStillFrontPic_Parasect, 0x800, 47 + obj_tiles gMonStillFrontPic_Venonat, 0x800, 48 + obj_tiles gMonStillFrontPic_Venomoth, 0x800, 49 + obj_tiles gMonStillFrontPic_Diglett, 0x800, 50 + obj_tiles gMonStillFrontPic_Dugtrio, 0x800, 51 + obj_tiles gMonStillFrontPic_Meowth, 0x800, 52 + obj_tiles gMonStillFrontPic_Persian, 0x800, 53 + obj_tiles gMonStillFrontPic_Psyduck, 0x800, 54 + obj_tiles gMonStillFrontPic_Golduck, 0x800, 55 + obj_tiles gMonStillFrontPic_Mankey, 0x800, 56 + obj_tiles gMonStillFrontPic_Primeape, 0x800, 57 + obj_tiles gMonStillFrontPic_Growlithe, 0x800, 58 + obj_tiles gMonStillFrontPic_Arcanine, 0x800, 59 + obj_tiles gMonStillFrontPic_Poliwag, 0x800, 60 + obj_tiles gMonStillFrontPic_Poliwhirl, 0x800, 61 + obj_tiles gMonStillFrontPic_Poliwrath, 0x800, 62 + obj_tiles gMonStillFrontPic_Abra, 0x800, 63 + obj_tiles gMonStillFrontPic_Kadabra, 0x800, 64 + obj_tiles gMonStillFrontPic_Alakazam, 0x800, 65 + obj_tiles gMonStillFrontPic_Machop, 0x800, 66 + obj_tiles gMonStillFrontPic_Machoke, 0x800, 67 + obj_tiles gMonStillFrontPic_Machamp, 0x800, 68 + obj_tiles gMonStillFrontPic_Bellsprout, 0x800, 69 + obj_tiles gMonStillFrontPic_Weepinbell, 0x800, 70 + obj_tiles gMonStillFrontPic_Victreebel, 0x800, 71 + obj_tiles gMonStillFrontPic_Tentacool, 0x800, 72 + obj_tiles gMonStillFrontPic_Tentacruel, 0x800, 73 + obj_tiles gMonStillFrontPic_Geodude, 0x800, 74 + obj_tiles gMonStillFrontPic_Graveler, 0x800, 75 + obj_tiles gMonStillFrontPic_Golem, 0x800, 76 + obj_tiles gMonStillFrontPic_Ponyta, 0x800, 77 + obj_tiles gMonStillFrontPic_Rapidash, 0x800, 78 + obj_tiles gMonStillFrontPic_Slowpoke, 0x800, 79 + obj_tiles gMonStillFrontPic_Slowbro, 0x800, 80 + obj_tiles gMonStillFrontPic_Magnemite, 0x800, 81 + obj_tiles gMonStillFrontPic_Magneton, 0x800, 82 + obj_tiles gMonStillFrontPic_Farfetchd, 0x800, 83 + obj_tiles gMonStillFrontPic_Doduo, 0x800, 84 + obj_tiles gMonStillFrontPic_Dodrio, 0x800, 85 + obj_tiles gMonStillFrontPic_Seel, 0x800, 86 + obj_tiles gMonStillFrontPic_Dewgong, 0x800, 87 + obj_tiles gMonStillFrontPic_Grimer, 0x800, 88 + obj_tiles gMonStillFrontPic_Muk, 0x800, 89 + obj_tiles gMonStillFrontPic_Shellder, 0x800, 90 + obj_tiles gMonStillFrontPic_Cloyster, 0x800, 91 + obj_tiles gMonStillFrontPic_Gastly, 0x800, 92 + obj_tiles gMonStillFrontPic_Haunter, 0x800, 93 + obj_tiles gMonStillFrontPic_Gengar, 0x800, 94 + obj_tiles gMonStillFrontPic_Onix, 0x800, 95 + obj_tiles gMonStillFrontPic_Drowzee, 0x800, 96 + obj_tiles gMonStillFrontPic_Hypno, 0x800, 97 + obj_tiles gMonStillFrontPic_Krabby, 0x800, 98 + obj_tiles gMonStillFrontPic_Kingler, 0x800, 99 + obj_tiles gMonStillFrontPic_Voltorb, 0x800, 100 + obj_tiles gMonStillFrontPic_Electrode, 0x800, 101 + obj_tiles gMonStillFrontPic_Exeggcute, 0x800, 102 + obj_tiles gMonStillFrontPic_Exeggutor, 0x800, 103 + obj_tiles gMonStillFrontPic_Cubone, 0x800, 104 + obj_tiles gMonStillFrontPic_Marowak, 0x800, 105 + obj_tiles gMonStillFrontPic_Hitmonlee, 0x800, 106 + obj_tiles gMonStillFrontPic_Hitmonchan, 0x800, 107 + obj_tiles gMonStillFrontPic_Lickitung, 0x800, 108 + obj_tiles gMonStillFrontPic_Koffing, 0x800, 109 + obj_tiles gMonStillFrontPic_Weezing, 0x800, 110 + obj_tiles gMonStillFrontPic_Rhyhorn, 0x800, 111 + obj_tiles gMonStillFrontPic_Rhydon, 0x800, 112 + obj_tiles gMonStillFrontPic_Chansey, 0x800, 113 + obj_tiles gMonStillFrontPic_Tangela, 0x800, 114 + obj_tiles gMonStillFrontPic_Kangaskhan, 0x800, 115 + obj_tiles gMonStillFrontPic_Horsea, 0x800, 116 + obj_tiles gMonStillFrontPic_Seadra, 0x800, 117 + obj_tiles gMonStillFrontPic_Goldeen, 0x800, 118 + obj_tiles gMonStillFrontPic_Seaking, 0x800, 119 + obj_tiles gMonStillFrontPic_Staryu, 0x800, 120 + obj_tiles gMonStillFrontPic_Starmie, 0x800, 121 + obj_tiles gMonStillFrontPic_Mrmime, 0x800, 122 + obj_tiles gMonStillFrontPic_Scyther, 0x800, 123 + obj_tiles gMonStillFrontPic_Jynx, 0x800, 124 + obj_tiles gMonStillFrontPic_Electabuzz, 0x800, 125 + obj_tiles gMonStillFrontPic_Magmar, 0x800, 126 + obj_tiles gMonStillFrontPic_Pinsir, 0x800, 127 + obj_tiles gMonStillFrontPic_Tauros, 0x800, 128 + obj_tiles gMonStillFrontPic_Magikarp, 0x800, 129 + obj_tiles gMonStillFrontPic_Gyarados, 0x800, 130 + obj_tiles gMonStillFrontPic_Lapras, 0x800, 131 + obj_tiles gMonStillFrontPic_Ditto, 0x800, 132 + obj_tiles gMonStillFrontPic_Eevee, 0x800, 133 + obj_tiles gMonStillFrontPic_Vaporeon, 0x800, 134 + obj_tiles gMonStillFrontPic_Jolteon, 0x800, 135 + obj_tiles gMonStillFrontPic_Flareon, 0x800, 136 + obj_tiles gMonStillFrontPic_Porygon, 0x800, 137 + obj_tiles gMonStillFrontPic_Omanyte, 0x800, 138 + obj_tiles gMonStillFrontPic_Omastar, 0x800, 139 + obj_tiles gMonStillFrontPic_Kabuto, 0x800, 140 + obj_tiles gMonStillFrontPic_Kabutops, 0x800, 141 + obj_tiles gMonStillFrontPic_Aerodactyl, 0x800, 142 + obj_tiles gMonStillFrontPic_Snorlax, 0x800, 143 + obj_tiles gMonStillFrontPic_Articuno, 0x800, 144 + obj_tiles gMonStillFrontPic_Zapdos, 0x800, 145 + obj_tiles gMonStillFrontPic_Moltres, 0x800, 146 + obj_tiles gMonStillFrontPic_Dratini, 0x800, 147 + obj_tiles gMonStillFrontPic_Dragonair, 0x800, 148 + obj_tiles gMonStillFrontPic_Dragonite, 0x800, 149 + obj_tiles gMonStillFrontPic_Mewtwo, 0x800, 150 + obj_tiles gMonStillFrontPic_Mew, 0x800, 151 + obj_tiles gMonStillFrontPic_Chikorita, 0x800, 152 + obj_tiles gMonStillFrontPic_Bayleef, 0x800, 153 + obj_tiles gMonStillFrontPic_Meganium, 0x800, 154 + obj_tiles gMonStillFrontPic_Cyndaquil, 0x800, 155 + obj_tiles gMonStillFrontPic_Quilava, 0x800, 156 + obj_tiles gMonStillFrontPic_Typhlosion, 0x800, 157 + obj_tiles gMonStillFrontPic_Totodile, 0x800, 158 + obj_tiles gMonStillFrontPic_Croconaw, 0x800, 159 + obj_tiles gMonStillFrontPic_Feraligatr, 0x800, 160 + obj_tiles gMonStillFrontPic_Sentret, 0x800, 161 + obj_tiles gMonStillFrontPic_Furret, 0x800, 162 + obj_tiles gMonStillFrontPic_Hoothoot, 0x800, 163 + obj_tiles gMonStillFrontPic_Noctowl, 0x800, 164 + obj_tiles gMonStillFrontPic_Ledyba, 0x800, 165 + obj_tiles gMonStillFrontPic_Ledian, 0x800, 166 + obj_tiles gMonStillFrontPic_Spinarak, 0x800, 167 + obj_tiles gMonStillFrontPic_Ariados, 0x800, 168 + obj_tiles gMonStillFrontPic_Crobat, 0x800, 169 + obj_tiles gMonStillFrontPic_Chinchou, 0x800, 170 + obj_tiles gMonStillFrontPic_Lanturn, 0x800, 171 + obj_tiles gMonStillFrontPic_Pichu, 0x800, 172 + obj_tiles gMonStillFrontPic_Cleffa, 0x800, 173 + obj_tiles gMonStillFrontPic_Igglybuff, 0x800, 174 + obj_tiles gMonStillFrontPic_Togepi, 0x800, 175 + obj_tiles gMonStillFrontPic_Togetic, 0x800, 176 + obj_tiles gMonStillFrontPic_Natu, 0x800, 177 + obj_tiles gMonStillFrontPic_Xatu, 0x800, 178 + obj_tiles gMonStillFrontPic_Mareep, 0x800, 179 + obj_tiles gMonStillFrontPic_Flaaffy, 0x800, 180 + obj_tiles gMonStillFrontPic_Ampharos, 0x800, 181 + obj_tiles gMonStillFrontPic_Bellossom, 0x800, 182 + obj_tiles gMonStillFrontPic_Marill, 0x800, 183 + obj_tiles gMonStillFrontPic_Azumarill, 0x800, 184 + obj_tiles gMonStillFrontPic_Sudowoodo, 0x800, 185 + obj_tiles gMonStillFrontPic_Politoed, 0x800, 186 + obj_tiles gMonStillFrontPic_Hoppip, 0x800, 187 + obj_tiles gMonStillFrontPic_Skiploom, 0x800, 188 + obj_tiles gMonStillFrontPic_Jumpluff, 0x800, 189 + obj_tiles gMonStillFrontPic_Aipom, 0x800, 190 + obj_tiles gMonStillFrontPic_Sunkern, 0x800, 191 + obj_tiles gMonStillFrontPic_Sunflora, 0x800, 192 + obj_tiles gMonStillFrontPic_Yanma, 0x800, 193 + obj_tiles gMonStillFrontPic_Wooper, 0x800, 194 + obj_tiles gMonStillFrontPic_Quagsire, 0x800, 195 + obj_tiles gMonStillFrontPic_Espeon, 0x800, 196 + obj_tiles gMonStillFrontPic_Umbreon, 0x800, 197 + obj_tiles gMonStillFrontPic_Murkrow, 0x800, 198 + obj_tiles gMonStillFrontPic_Slowking, 0x800, 199 + obj_tiles gMonStillFrontPic_Misdreavus, 0x800, 200 + obj_tiles gMonStillFrontPic_UnownA, 0x800, 201 + obj_tiles gMonStillFrontPic_Wobbuffet, 0x800, 202 + obj_tiles gMonStillFrontPic_Girafarig, 0x800, 203 + obj_tiles gMonStillFrontPic_Pineco, 0x800, 204 + obj_tiles gMonStillFrontPic_Forretress, 0x800, 205 + obj_tiles gMonStillFrontPic_Dunsparce, 0x800, 206 + obj_tiles gMonStillFrontPic_Gligar, 0x800, 207 + obj_tiles gMonStillFrontPic_Steelix, 0x800, 208 + obj_tiles gMonStillFrontPic_Snubbull, 0x800, 209 + obj_tiles gMonStillFrontPic_Granbull, 0x800, 210 + obj_tiles gMonStillFrontPic_Qwilfish, 0x800, 211 + obj_tiles gMonStillFrontPic_Scizor, 0x800, 212 + obj_tiles gMonStillFrontPic_Shuckle, 0x800, 213 + obj_tiles gMonStillFrontPic_Heracross, 0x800, 214 + obj_tiles gMonStillFrontPic_Sneasel, 0x800, 215 + obj_tiles gMonStillFrontPic_Teddiursa, 0x800, 216 + obj_tiles gMonStillFrontPic_Ursaring, 0x800, 217 + obj_tiles gMonStillFrontPic_Slugma, 0x800, 218 + obj_tiles gMonStillFrontPic_Magcargo, 0x800, 219 + obj_tiles gMonStillFrontPic_Swinub, 0x800, 220 + obj_tiles gMonStillFrontPic_Piloswine, 0x800, 221 + obj_tiles gMonStillFrontPic_Corsola, 0x800, 222 + obj_tiles gMonStillFrontPic_Remoraid, 0x800, 223 + obj_tiles gMonStillFrontPic_Octillery, 0x800, 224 + obj_tiles gMonStillFrontPic_Delibird, 0x800, 225 + obj_tiles gMonStillFrontPic_Mantine, 0x800, 226 + obj_tiles gMonStillFrontPic_Skarmory, 0x800, 227 + obj_tiles gMonStillFrontPic_Houndour, 0x800, 228 + obj_tiles gMonStillFrontPic_Houndoom, 0x800, 229 + obj_tiles gMonStillFrontPic_Kingdra, 0x800, 230 + obj_tiles gMonStillFrontPic_Phanpy, 0x800, 231 + obj_tiles gMonStillFrontPic_Donphan, 0x800, 232 + obj_tiles gMonStillFrontPic_Porygon2, 0x800, 233 + obj_tiles gMonStillFrontPic_Stantler, 0x800, 234 + obj_tiles gMonStillFrontPic_Smeargle, 0x800, 235 + obj_tiles gMonStillFrontPic_Tyrogue, 0x800, 236 + obj_tiles gMonStillFrontPic_Hitmontop, 0x800, 237 + obj_tiles gMonStillFrontPic_Smoochum, 0x800, 238 + obj_tiles gMonStillFrontPic_Elekid, 0x800, 239 + obj_tiles gMonStillFrontPic_Magby, 0x800, 240 + obj_tiles gMonStillFrontPic_Miltank, 0x800, 241 + obj_tiles gMonStillFrontPic_Blissey, 0x800, 242 + obj_tiles gMonStillFrontPic_Raikou, 0x800, 243 + obj_tiles gMonStillFrontPic_Entei, 0x800, 244 + obj_tiles gMonStillFrontPic_Suicune, 0x800, 245 + obj_tiles gMonStillFrontPic_Larvitar, 0x800, 246 + obj_tiles gMonStillFrontPic_Pupitar, 0x800, 247 + obj_tiles gMonStillFrontPic_Tyranitar, 0x800, 248 + obj_tiles gMonStillFrontPic_Lugia, 0x800, 249 + obj_tiles gMonStillFrontPic_HoOh, 0x800, 250 + obj_tiles gMonStillFrontPic_Celebi, 0x800, 251 + obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 252 + obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 253 + obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 254 + obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 255 + obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 256 + obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 257 + obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 258 + obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 259 + obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 260 + obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 261 + obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 262 + obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 263 + obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 264 + obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 265 + obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 266 + obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 267 + obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 268 + obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 269 + obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 270 + obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 271 + obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 272 + obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 273 + obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 274 + obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 275 + obj_tiles gMonStillFrontPic_DoubleQuestionMark, 0x800, 276 + obj_tiles gMonStillFrontPic_Treecko, 0x800, 277 + obj_tiles gMonStillFrontPic_Grovyle, 0x800, 278 + obj_tiles gMonStillFrontPic_Sceptile, 0x800, 279 + obj_tiles gMonStillFrontPic_Torchic, 0x800, 280 + obj_tiles gMonStillFrontPic_Combusken, 0x800, 281 + obj_tiles gMonStillFrontPic_Blaziken, 0x800, 282 + obj_tiles gMonStillFrontPic_Mudkip, 0x800, 283 + obj_tiles gMonStillFrontPic_Marshtomp, 0x800, 284 + obj_tiles gMonStillFrontPic_Swampert, 0x800, 285 + obj_tiles gMonStillFrontPic_Poochyena, 0x800, 286 + obj_tiles gMonStillFrontPic_Mightyena, 0x800, 287 + obj_tiles gMonStillFrontPic_Zigzagoon, 0x800, 288 + obj_tiles gMonStillFrontPic_Linoone, 0x800, 289 + obj_tiles gMonStillFrontPic_Wurmple, 0x800, 290 + obj_tiles gMonStillFrontPic_Silcoon, 0x800, 291 + obj_tiles gMonStillFrontPic_Beautifly, 0x800, 292 + obj_tiles gMonStillFrontPic_Cascoon, 0x800, 293 + obj_tiles gMonStillFrontPic_Dustox, 0x800, 294 + obj_tiles gMonStillFrontPic_Lotad, 0x800, 295 + obj_tiles gMonStillFrontPic_Lombre, 0x800, 296 + obj_tiles gMonStillFrontPic_Ludicolo, 0x800, 297 + obj_tiles gMonStillFrontPic_Seedot, 0x800, 298 + obj_tiles gMonStillFrontPic_Nuzleaf, 0x800, 299 + obj_tiles gMonStillFrontPic_Shiftry, 0x800, 300 + obj_tiles gMonStillFrontPic_Nincada, 0x800, 301 + obj_tiles gMonStillFrontPic_Ninjask, 0x800, 302 + obj_tiles gMonStillFrontPic_Shedinja, 0x800, 303 + obj_tiles gMonStillFrontPic_Taillow, 0x800, 304 + obj_tiles gMonStillFrontPic_Swellow, 0x800, 305 + obj_tiles gMonStillFrontPic_Shroomish, 0x800, 306 + obj_tiles gMonStillFrontPic_Breloom, 0x800, 307 + obj_tiles gMonStillFrontPic_Spinda, 0x800, 308 + obj_tiles gMonStillFrontPic_Wingull, 0x800, 309 + obj_tiles gMonStillFrontPic_Pelipper, 0x800, 310 + obj_tiles gMonStillFrontPic_Surskit, 0x800, 311 + obj_tiles gMonStillFrontPic_Masquerain, 0x800, 312 + obj_tiles gMonStillFrontPic_Wailmer, 0x800, 313 + obj_tiles gMonStillFrontPic_Wailord, 0x800, 314 + obj_tiles gMonStillFrontPic_Skitty, 0x800, 315 + obj_tiles gMonStillFrontPic_Delcatty, 0x800, 316 + obj_tiles gMonStillFrontPic_Kecleon, 0x800, 317 + obj_tiles gMonStillFrontPic_Baltoy, 0x800, 318 + obj_tiles gMonStillFrontPic_Claydol, 0x800, 319 + obj_tiles gMonStillFrontPic_Nosepass, 0x800, 320 + obj_tiles gMonStillFrontPic_Torkoal, 0x800, 321 + obj_tiles gMonStillFrontPic_Sableye, 0x800, 322 + obj_tiles gMonStillFrontPic_Barboach, 0x800, 323 + obj_tiles gMonStillFrontPic_Whiscash, 0x800, 324 + obj_tiles gMonStillFrontPic_Luvdisc, 0x800, 325 + obj_tiles gMonStillFrontPic_Corphish, 0x800, 326 + obj_tiles gMonStillFrontPic_Crawdaunt, 0x800, 327 + obj_tiles gMonStillFrontPic_Feebas, 0x800, 328 + obj_tiles gMonStillFrontPic_Milotic, 0x800, 329 + obj_tiles gMonStillFrontPic_Carvanha, 0x800, 330 + obj_tiles gMonStillFrontPic_Sharpedo, 0x800, 331 + obj_tiles gMonStillFrontPic_Trapinch, 0x800, 332 + obj_tiles gMonStillFrontPic_Vibrava, 0x800, 333 + obj_tiles gMonStillFrontPic_Flygon, 0x800, 334 + obj_tiles gMonStillFrontPic_Makuhita, 0x800, 335 + obj_tiles gMonStillFrontPic_Hariyama, 0x800, 336 + obj_tiles gMonStillFrontPic_Electrike, 0x800, 337 + obj_tiles gMonStillFrontPic_Manectric, 0x800, 338 + obj_tiles gMonStillFrontPic_Numel, 0x800, 339 + obj_tiles gMonStillFrontPic_Camerupt, 0x800, 340 + obj_tiles gMonStillFrontPic_Spheal, 0x800, 341 + obj_tiles gMonStillFrontPic_Sealeo, 0x800, 342 + obj_tiles gMonStillFrontPic_Walrein, 0x800, 343 + obj_tiles gMonStillFrontPic_Cacnea, 0x800, 344 + obj_tiles gMonStillFrontPic_Cacturne, 0x800, 345 + obj_tiles gMonStillFrontPic_Snorunt, 0x800, 346 + obj_tiles gMonStillFrontPic_Glalie, 0x800, 347 + obj_tiles gMonStillFrontPic_Lunatone, 0x800, 348 + obj_tiles gMonStillFrontPic_Solrock, 0x800, 349 + obj_tiles gMonStillFrontPic_Azurill, 0x800, 350 + obj_tiles gMonStillFrontPic_Spoink, 0x800, 351 + obj_tiles gMonStillFrontPic_Grumpig, 0x800, 352 + obj_tiles gMonStillFrontPic_Plusle, 0x800, 353 + obj_tiles gMonStillFrontPic_Minun, 0x800, 354 + obj_tiles gMonStillFrontPic_Mawile, 0x800, 355 + obj_tiles gMonStillFrontPic_Meditite, 0x800, 356 + obj_tiles gMonStillFrontPic_Medicham, 0x800, 357 + obj_tiles gMonStillFrontPic_Swablu, 0x800, 358 + obj_tiles gMonStillFrontPic_Altaria, 0x800, 359 + obj_tiles gMonStillFrontPic_Wynaut, 0x800, 360 + obj_tiles gMonStillFrontPic_Duskull, 0x800, 361 + obj_tiles gMonStillFrontPic_Dusclops, 0x800, 362 + obj_tiles gMonStillFrontPic_Roselia, 0x800, 363 + obj_tiles gMonStillFrontPic_Slakoth, 0x800, 364 + obj_tiles gMonStillFrontPic_Vigoroth, 0x800, 365 + obj_tiles gMonStillFrontPic_Slaking, 0x800, 366 + obj_tiles gMonStillFrontPic_Gulpin, 0x800, 367 + obj_tiles gMonStillFrontPic_Swalot, 0x800, 368 + obj_tiles gMonStillFrontPic_Tropius, 0x800, 369 + obj_tiles gMonStillFrontPic_Whismur, 0x800, 370 + obj_tiles gMonStillFrontPic_Loudred, 0x800, 371 + obj_tiles gMonStillFrontPic_Exploud, 0x800, 372 + obj_tiles gMonStillFrontPic_Clamperl, 0x800, 373 + obj_tiles gMonStillFrontPic_Huntail, 0x800, 374 + obj_tiles gMonStillFrontPic_Gorebyss, 0x800, 375 + obj_tiles gMonStillFrontPic_Absol, 0x800, 376 + obj_tiles gMonStillFrontPic_Shuppet, 0x800, 377 + obj_tiles gMonStillFrontPic_Banette, 0x800, 378 + obj_tiles gMonStillFrontPic_Seviper, 0x800, 379 + obj_tiles gMonStillFrontPic_Zangoose, 0x800, 380 + obj_tiles gMonStillFrontPic_Relicanth, 0x800, 381 + obj_tiles gMonStillFrontPic_Aron, 0x800, 382 + obj_tiles gMonStillFrontPic_Lairon, 0x800, 383 + obj_tiles gMonStillFrontPic_Aggron, 0x800, 384 + obj_tiles gMonStillFrontPic_Castform, 0x800, 385 + obj_tiles gMonStillFrontPic_Volbeat, 0x800, 386 + obj_tiles gMonStillFrontPic_Illumise, 0x800, 387 + obj_tiles gMonStillFrontPic_Lileep, 0x800, 388 + obj_tiles gMonStillFrontPic_Cradily, 0x800, 389 + obj_tiles gMonStillFrontPic_Anorith, 0x800, 390 + obj_tiles gMonStillFrontPic_Armaldo, 0x800, 391 + obj_tiles gMonStillFrontPic_Ralts, 0x800, 392 + obj_tiles gMonStillFrontPic_Kirlia, 0x800, 393 + obj_tiles gMonStillFrontPic_Gardevoir, 0x800, 394 + obj_tiles gMonStillFrontPic_Bagon, 0x800, 395 + obj_tiles gMonStillFrontPic_Shelgon, 0x800, 396 + obj_tiles gMonStillFrontPic_Salamence, 0x800, 397 + obj_tiles gMonStillFrontPic_Beldum, 0x800, 398 + obj_tiles gMonStillFrontPic_Metang, 0x800, 399 + obj_tiles gMonStillFrontPic_Metagross, 0x800, 400 + obj_tiles gMonStillFrontPic_Regirock, 0x800, 401 + obj_tiles gMonStillFrontPic_Regice, 0x800, 402 + obj_tiles gMonStillFrontPic_Registeel, 0x800, 403 + obj_tiles gMonStillFrontPic_Kyogre, 0x800, 404 + obj_tiles gMonStillFrontPic_Groudon, 0x800, 405 + obj_tiles gMonStillFrontPic_Rayquaza, 0x800, 406 + obj_tiles gMonStillFrontPic_Latias, 0x800, 407 + obj_tiles gMonStillFrontPic_Latios, 0x800, 408 + obj_tiles gMonStillFrontPic_Jirachi, 0x800, 409 + obj_tiles gMonStillFrontPic_Deoxys, 0x800, 410 + obj_tiles gMonStillFrontPic_Chimecho, 0x800, 411 + obj_tiles gMonStillFrontPic_Egg, 0x800, 412 + obj_tiles gMonStillFrontPic_UnownB, 0x800, 413 + obj_tiles gMonStillFrontPic_UnownC, 0x800, 414 + obj_tiles gMonStillFrontPic_UnownD, 0x800, 415 + obj_tiles gMonStillFrontPic_UnownE, 0x800, 416 + obj_tiles gMonStillFrontPic_UnownF, 0x800, 417 + obj_tiles gMonStillFrontPic_UnownG, 0x800, 418 + obj_tiles gMonStillFrontPic_UnownH, 0x800, 419 + obj_tiles gMonStillFrontPic_UnownI, 0x800, 420 + obj_tiles gMonStillFrontPic_UnownJ, 0x800, 421 + obj_tiles gMonStillFrontPic_UnownK, 0x800, 422 + obj_tiles gMonStillFrontPic_UnownL, 0x800, 423 + obj_tiles gMonStillFrontPic_UnownM, 0x800, 424 + obj_tiles gMonStillFrontPic_UnownN, 0x800, 425 + obj_tiles gMonStillFrontPic_UnownO, 0x800, 426 + obj_tiles gMonStillFrontPic_UnownP, 0x800, 427 + obj_tiles gMonStillFrontPic_UnownQ, 0x800, 428 + obj_tiles gMonStillFrontPic_UnownR, 0x800, 429 + obj_tiles gMonStillFrontPic_UnownS, 0x800, 430 + obj_tiles gMonStillFrontPic_UnownT, 0x800, 431 + obj_tiles gMonStillFrontPic_UnownU, 0x800, 432 + obj_tiles gMonStillFrontPic_UnownV, 0x800, 433 + obj_tiles gMonStillFrontPic_UnownW, 0x800, 434 + obj_tiles gMonStillFrontPic_UnownX, 0x800, 435 + obj_tiles gMonStillFrontPic_UnownY, 0x800, 436 + obj_tiles gMonStillFrontPic_UnownZ, 0x800, 437 + obj_tiles gMonStillFrontPic_UnownExclamationMark, 0x800, 438 + obj_tiles gMonStillFrontPic_UnownQuestionMark, 0x800, 439 diff --git a/data/graphics/trainers/back_pic_palette_table.inc b/data/graphics/trainers/back_pic_palette_table.inc new file mode 100644 index 000000000..46e56f2ac --- /dev/null +++ b/data/graphics/trainers/back_pic_palette_table.inc @@ -0,0 +1,10 @@ + .align 2 +gTrainerBackPicPaletteTable:: @ 8305D8C + obj_pal gTrainerPalette_Brendan, 0 + obj_pal gTrainerPalette_May, 1 + obj_pal gTrainerBackPicPalette_Red, 2 + obj_pal gTrainerBackPicPalette_Leaf, 3 + obj_pal gTrainerPalette_RubySapphireBrendan, 4 + obj_pal gTrainerPalette_RubySapphireMay, 5 + obj_pal gTrainerPalette_Wally, 6 + obj_pal gTrainerPalette_Steven, 7 diff --git a/data/graphics/trainers/back_pic_table.inc b/data/graphics/trainers/back_pic_table.inc new file mode 100644 index 000000000..e67c2a073 --- /dev/null +++ b/data/graphics/trainers/back_pic_table.inc @@ -0,0 +1,10 @@ + .align 2 +gTrainerBackPicTable:: @ 8305D4C + obj_tiles gTrainerBackPic_Brendan, 0x2000, 0 + obj_tiles gTrainerBackPic_May, 0x2000, 1 + obj_tiles gTrainerBackPic_Red, 0x2800, 2 + obj_tiles gTrainerBackPic_Leaf, 0x2800, 3 + obj_tiles gTrainerBackPic_RubySapphireBrendan, 0x2000, 4 + obj_tiles gTrainerBackPic_RubySapphireMay, 0x2000, 5 + obj_tiles gTrainerBackPic_Wally, 0x2000, 6 + obj_tiles gTrainerBackPic_Steven, 0x2000, 7 diff --git a/data/graphics/trainers/front_pic_palette_table.inc b/data/graphics/trainers/front_pic_palette_table.inc new file mode 100644 index 000000000..44cf98dab --- /dev/null +++ b/data/graphics/trainers/front_pic_palette_table.inc @@ -0,0 +1,95 @@ + .align 2 +gTrainerFrontPicPaletteTable:: @ 830593C + obj_pal gTrainerPalette_Hiker, 0 + obj_pal gTrainerPalette_AquaGruntM, 1 + obj_pal gTrainerPalette_PokemonBreederF, 2 + obj_pal gTrainerPalette_CoolTrainerM, 3 + obj_pal gTrainerPalette_BirdKeeper, 4 + obj_pal gTrainerPalette_Collector, 5 + obj_pal gTrainerPalette_AquaGruntF, 6 + obj_pal gTrainerPalette_SwimmerM, 7 + obj_pal gTrainerPalette_MagmaGruntM, 8 + obj_pal gTrainerPalette_ExpertM, 9 + obj_pal gTrainerPalette_AquaAdminM, 10 + obj_pal gTrainerPalette_BlackBelt, 11 + obj_pal gTrainerPalette_AquaAdminF, 12 + obj_pal gTrainerPalette_AquaLeaderArchie, 13 + obj_pal gTrainerPalette_HexManiac, 14 + obj_pal gTrainerPalette_AromaLady, 15 + obj_pal gTrainerPalette_RuinManiac, 16 + obj_pal gTrainerPalette_Interviewer, 17 + obj_pal gTrainerPalette_TuberF, 18 + obj_pal gTrainerPalette_TuberM, 19 + obj_pal gTrainerPalette_CoolTrainerF, 20 + obj_pal gTrainerPalette_Lady, 21 + obj_pal gTrainerPalette_Beauty, 22 + obj_pal gTrainerPalette_RichBoy, 23 + obj_pal gTrainerPalette_ExpertF, 24 + obj_pal gTrainerPalette_Pokemaniac, 25 + obj_pal gTrainerPalette_MagmaGruntF, 26 + obj_pal gTrainerPalette_Guitarist, 27 + obj_pal gTrainerPalette_Kindler, 28 + obj_pal gTrainerPalette_Camper, 29 + obj_pal gTrainerPalette_Picnicker, 30 + obj_pal gTrainerPalette_BugManiac, 31 + obj_pal gTrainerPalette_PokemonBreederM, 32 + obj_pal gTrainerPalette_PsychicM, 33 + obj_pal gTrainerPalette_PsychicF, 34 + obj_pal gTrainerPalette_Gentleman, 35 + obj_pal gTrainerPalette_EliteFourSidney, 36 + obj_pal gTrainerPalette_EliteFourPhoebe, 37 + obj_pal gTrainerPalette_EliteFourGlacia, 38 + obj_pal gTrainerPalette_EliteFourDrake, 39 + obj_pal gTrainerPalette_LeaderRoxanne, 40 + obj_pal gTrainerPalette_LeaderBrawly, 41 + obj_pal gTrainerPalette_LeaderWattson, 42 + obj_pal gTrainerPalette_LeaderFlannery, 43 + obj_pal gTrainerPalette_LeaderNorman, 44 + obj_pal gTrainerPalette_LeaderWinona, 45 + obj_pal gTrainerPalette_LeaderTateAndLiza, 46 + obj_pal gTrainerPalette_LeaderJuan, 47 + obj_pal gTrainerPalette_SchoolKidM, 48 + obj_pal gTrainerPalette_SchoolKidF, 49 + obj_pal gTrainerPalette_SrAndJr, 50 + obj_pal gTrainerPalette_WinstrateM, 51 + obj_pal gTrainerPalette_WinstrateF, 52 + obj_pal gTrainerPalette_Youngster, 53 + obj_pal gTrainerPalette_ChampionWallace, 54 + obj_pal gTrainerPalette_Fisherman, 55 + obj_pal gTrainerPalette_CyclingTriathleteM, 56 + obj_pal gTrainerPalette_CyclingTriathleteF, 57 + obj_pal gTrainerPalette_RunningTriathleteM, 58 + obj_pal gTrainerPalette_RunningTriathleteF, 59 + obj_pal gTrainerPalette_SwimmingTriathleteM, 60 + obj_pal gTrainerPalette_SwimmingTriathleteF, 61 + obj_pal gTrainerPalette_DragonTamer, 62 + obj_pal gTrainerPalette_NinjaBoy, 63 + obj_pal gTrainerPalette_BattleGirl, 64 + obj_pal gTrainerPalette_ParasolLady, 65 + obj_pal gTrainerPalette_SwimmerF, 66 + obj_pal gTrainerPalette_Twins, 67 + obj_pal gTrainerPalette_Sailor, 68 + obj_pal gTrainerPalette_MagmaAdmin, 69 + obj_pal gTrainerPalette_Wally, 70 + obj_pal gTrainerPalette_Brendan, 71 + obj_pal gTrainerPalette_May, 72 + obj_pal gTrainerPalette_BugCatcher, 73 + obj_pal gTrainerPalette_PokemonRangerM, 74 + obj_pal gTrainerPalette_PokemonRangerF, 75 + obj_pal gTrainerPalette_MagmaLeaderMaxie, 76 + obj_pal gTrainerPalette_Lass, 77 + obj_pal gTrainerPalette_YoungCouple, 78 + obj_pal gTrainerPalette_OldCouple, 79 + obj_pal gTrainerPalette_SisAndBro, 80 + obj_pal gTrainerPalette_Steven, 81 + obj_pal gTrainerPalette_SalonMaidenAnabel, 82 + obj_pal gTrainerPalette_DomeAceTucker, 83 + obj_pal gTrainerPalette_PalaceMavenSpenser, 84 + obj_pal gTrainerPalette_ArenaTycoonGreta, 85 + obj_pal gTrainerPalette_FactoryHeadNoland, 86 + obj_pal gTrainerPalette_PikeQueenLucy, 87 + obj_pal gTrainerPalette_PyramidKingBrandon, 88 + obj_pal gTrainerPalette_Red, 89 + obj_pal gTrainerPalette_Leaf, 90 + obj_pal gTrainerPalette_RubySapphireBrendan, 91 + obj_pal gTrainerPalette_RubySapphireMay, 92 diff --git a/data/graphics/trainers/front_pic_table.inc b/data/graphics/trainers/front_pic_table.inc new file mode 100644 index 000000000..91294d170 --- /dev/null +++ b/data/graphics/trainers/front_pic_table.inc @@ -0,0 +1,95 @@ + .align 2 +gTrainerFrontPicTable:: @ 8305654 + obj_tiles gTrainerFrontPic_Hiker, 0x800, 0 + obj_tiles gTrainerFrontPic_AquaGruntM, 0x800, 1 + obj_tiles gTrainerFrontPic_PokemonBreederF, 0x800, 2 + obj_tiles gTrainerFrontPic_CoolTrainerM, 0x800, 3 + obj_tiles gTrainerFrontPic_BirdKeeper, 0x800, 4 + obj_tiles gTrainerFrontPic_Collector, 0x800, 5 + obj_tiles gTrainerFrontPic_AquaGruntF, 0x800, 6 + obj_tiles gTrainerFrontPic_SwimmerM, 0x800, 7 + obj_tiles gTrainerFrontPic_MagmaGruntM, 0x800, 8 + obj_tiles gTrainerFrontPic_ExpertM, 0x800, 9 + obj_tiles gTrainerFrontPic_AquaAdminM, 0x800, 10 + obj_tiles gTrainerFrontPic_BlackBelt, 0x800, 11 + obj_tiles gTrainerFrontPic_AquaAdminF, 0x800, 12 + obj_tiles gTrainerFrontPic_AquaLeaderArchie, 0x800, 13 + obj_tiles gTrainerFrontPic_HexManiac, 0x800, 14 + obj_tiles gTrainerFrontPic_AromaLady, 0x800, 15 + obj_tiles gTrainerFrontPic_RuinManiac, 0x800, 16 + obj_tiles gTrainerFrontPic_Interviewer, 0x800, 17 + obj_tiles gTrainerFrontPic_TuberF, 0x800, 18 + obj_tiles gTrainerFrontPic_TuberM, 0x800, 19 + obj_tiles gTrainerFrontPic_CoolTrainerF, 0x800, 20 + obj_tiles gTrainerFrontPic_Lady, 0x800, 21 + obj_tiles gTrainerFrontPic_Beauty, 0x800, 22 + obj_tiles gTrainerFrontPic_RichBoy, 0x800, 23 + obj_tiles gTrainerFrontPic_ExpertF, 0x800, 24 + obj_tiles gTrainerFrontPic_Pokemaniac, 0x800, 25 + obj_tiles gTrainerFrontPic_MagmaGruntF, 0x800, 26 + obj_tiles gTrainerFrontPic_Guitarist, 0x800, 27 + obj_tiles gTrainerFrontPic_Kindler, 0x800, 28 + obj_tiles gTrainerFrontPic_Camper, 0x800, 29 + obj_tiles gTrainerFrontPic_Picnicker, 0x800, 30 + obj_tiles gTrainerFrontPic_BugManiac, 0x800, 31 + obj_tiles gTrainerFrontPic_PokemonBreederM, 0x800, 32 + obj_tiles gTrainerFrontPic_PsychicM, 0x800, 33 + obj_tiles gTrainerFrontPic_PsychicF, 0x800, 34 + obj_tiles gTrainerFrontPic_Gentleman, 0x800, 35 + obj_tiles gTrainerFrontPic_EliteFourSidney, 0x800, 36 + obj_tiles gTrainerFrontPic_EliteFourPhoebe, 0x800, 37 + obj_tiles gTrainerFrontPic_EliteFourGlacia, 0x800, 38 + obj_tiles gTrainerFrontPic_EliteFourDrake, 0x800, 39 + obj_tiles gTrainerFrontPic_LeaderRoxanne, 0x800, 40 + obj_tiles gTrainerFrontPic_LeaderBrawly, 0x800, 41 + obj_tiles gTrainerFrontPic_LeaderWattson, 0x800, 42 + obj_tiles gTrainerFrontPic_LeaderFlannery, 0x800, 43 + obj_tiles gTrainerFrontPic_LeaderNorman, 0x800, 44 + obj_tiles gTrainerFrontPic_LeaderWinona, 0x800, 45 + obj_tiles gTrainerFrontPic_LeaderTateAndLiza, 0x800, 46 + obj_tiles gTrainerFrontPic_LeaderJuan, 0x800, 47 + obj_tiles gTrainerFrontPic_SchoolKidM, 0x800, 48 + obj_tiles gTrainerFrontPic_SchoolKidF, 0x800, 49 + obj_tiles gTrainerFrontPic_SrAndJr, 0x1000, 50 + obj_tiles gTrainerFrontPic_WinstrateM, 0x1000, 51 + obj_tiles gTrainerFrontPic_WinstrateF, 0x800, 52 + obj_tiles gTrainerFrontPic_Youngster, 0x800, 53 + obj_tiles gTrainerFrontPic_ChampionWallace, 0x1000, 54 + obj_tiles gTrainerFrontPic_Fisherman, 0x800, 55 + obj_tiles gTrainerFrontPic_CyclingTriathleteM, 0x1000, 56 + obj_tiles gTrainerFrontPic_CyclingTriathleteF, 0x800, 57 + obj_tiles gTrainerFrontPic_RunningTriathleteM, 0x800, 58 + obj_tiles gTrainerFrontPic_RunningTriathleteF, 0x800, 59 + obj_tiles gTrainerFrontPic_SwimmingTriathleteM, 0x800, 60 + obj_tiles gTrainerFrontPic_SwimmingTriathleteF, 0x800, 61 + obj_tiles gTrainerFrontPic_DragonTamer, 0x800, 62 + obj_tiles gTrainerFrontPic_NinjaBoy, 0x800, 63 + obj_tiles gTrainerFrontPic_BattleGirl, 0x1000, 64 + obj_tiles gTrainerFrontPic_ParasolLady, 0x800, 65 + obj_tiles gTrainerFrontPic_SwimmerF, 0x800, 66 + obj_tiles gTrainerFrontPic_Twins, 0x800, 67 + obj_tiles gTrainerFrontPic_Sailor, 0x800, 68 + obj_tiles gTrainerFrontPic_MagmaAdmin, 0x800, 69 + obj_tiles gTrainerFrontPic_Wally, 0x800, 70 + obj_tiles gTrainerFrontPic_Brendan, 0x800, 71 + obj_tiles gTrainerFrontPic_May, 0x800, 72 + obj_tiles gTrainerFrontPic_BugCatcher, 0x800, 73 + obj_tiles gTrainerFrontPic_PokemonRangerM, 0x800, 74 + obj_tiles gTrainerFrontPic_PokemonRangerF, 0x800, 75 + obj_tiles gTrainerFrontPic_MagmaLeaderMaxie, 0x800, 76 + obj_tiles gTrainerFrontPic_Lass, 0x800, 77 + obj_tiles gTrainerFrontPic_YoungCouple, 0x800, 78 + obj_tiles gTrainerFrontPic_OldCouple, 0x800, 79 + obj_tiles gTrainerFrontPic_SisAndBro, 0x800, 80 + obj_tiles gTrainerFrontPic_Steven, 0x800, 81 + obj_tiles gTrainerFrontPic_SalonMaidenAnabel, 0x800, 82 + obj_tiles gTrainerFrontPic_DomeAceTucker, 0x800, 83 + obj_tiles gTrainerFrontPic_PalaceMavenSpenser, 0x800, 84 + obj_tiles gTrainerFrontPic_ArenaTycoonGreta, 0x1000, 85 + obj_tiles gTrainerFrontPic_FactoryHeadNoland, 0x800, 86 + obj_tiles gTrainerFrontPic_PikeQueenLucy, 0x800, 87 + obj_tiles gTrainerFrontPic_PyramidKingBrandon, 0x800, 88 + obj_tiles gTrainerFrontPic_Red, 0x800, 89 + obj_tiles gTrainerFrontPic_Leaf, 0x800, 90 + obj_tiles gTrainerFrontPic_RubySapphireBrendan, 0x800, 91 + obj_tiles gTrainerFrontPic_RubySapphireMay, 0x800, 92 diff --git a/data/graphics/trainers/graphics.inc b/data/graphics/trainers/graphics.inc new file mode 100644 index 000000000..897cb9ffb --- /dev/null +++ b/data/graphics/trainers/graphics.inc @@ -0,0 +1,783 @@ + .align 2 +gTrainerFrontPic_Hiker:: @ 8D51DC8 + .incbin "graphics/trainers/front_pics/hiker_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_Hiker:: @ 8D52248 + .incbin "graphics/trainers/palettes/hiker.gbapal.lz" + + .align 2 +gTrainerFrontPic_AquaGruntM:: @ 8D52270 + .incbin "graphics/trainers/front_pics/aqua_grunt_m_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_AquaGruntM:: @ 8D525D0 + .incbin "graphics/trainers/palettes/aqua_grunt_m.gbapal.lz" + + .align 2 +gTrainerFrontPic_PokemonBreederF:: @ 8D525F8 + .incbin "graphics/trainers/front_pics/pokemon_breeder_f_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_PokemonBreederF:: @ 8D5292C + .incbin "graphics/trainers/palettes/pokemon_breeder_f.gbapal.lz" + + .align 2 +gTrainerFrontPic_CoolTrainerM:: @ 8D52954 + .incbin "graphics/trainers/front_pics/cool_trainer_m_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_CoolTrainerM:: @ 8D52C3C + .incbin "graphics/trainers/palettes/cool_trainer_m.gbapal.lz" + + .align 2 +gTrainerFrontPic_BirdKeeper:: @ 8D52C64 + .incbin "graphics/trainers/front_pics/bird_keeper_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_BirdKeeper:: @ 8D52F9C + .incbin "graphics/trainers/palettes/bird_keeper.gbapal.lz" + + .align 2 +gTrainerFrontPic_Collector:: @ 8D52FC4 + .incbin "graphics/trainers/front_pics/collector_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_Collector:: @ 8D533C8 + .incbin "graphics/trainers/palettes/collector.gbapal.lz" + + .align 2 +gTrainerFrontPic_AquaGruntF:: @ 8D533F0 + .incbin "graphics/trainers/front_pics/aqua_grunt_f_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_AquaGruntF:: @ 8D5372C + .incbin "graphics/trainers/palettes/aqua_grunt_f.gbapal.lz" + + .align 2 +gTrainerFrontPic_SwimmerM:: @ 8D53754 + .incbin "graphics/trainers/front_pics/swimmer_m_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_SwimmerM:: @ 8D53A14 + .incbin "graphics/trainers/palettes/swimmer_m.gbapal.lz" + + .align 2 +gTrainerFrontPic_MagmaGruntM:: @ 8D53A3C + .incbin "graphics/trainers/front_pics/magma_grunt_m_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_MagmaGruntM:: @ 8D53DBC + .incbin "graphics/trainers/palettes/magma_grunt_m.gbapal.lz" + + .align 2 +gTrainerFrontPic_ExpertM:: @ 8D53DE4 + .incbin "graphics/trainers/front_pics/expert_m_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_ExpertM:: @ 8D54124 + .incbin "graphics/trainers/palettes/expert_m.gbapal.lz" + + .align 2 +gTrainerFrontPic_AquaAdminM:: @ 8D5414C + .incbin "graphics/trainers/front_pics/aqua_admin_m_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_AquaAdminM:: @ 8D54500 + .incbin "graphics/trainers/palettes/aqua_admin_m.gbapal.lz" + + .align 2 +gTrainerFrontPic_BlackBelt:: @ 8D54528 + .incbin "graphics/trainers/front_pics/black_belt_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_BlackBelt:: @ 8D5488C + .incbin "graphics/trainers/palettes/black_belt.gbapal.lz" + + .align 2 +gTrainerFrontPic_AquaAdminF:: @ 8D548B4 + .incbin "graphics/trainers/front_pics/aqua_admin_f_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_AquaAdminF:: @ 8D54C78 + .incbin "graphics/trainers/palettes/aqua_admin_f.gbapal.lz" + + .align 2 +gTrainerFrontPic_AquaLeaderArchie:: @ 8D54CA0 + .incbin "graphics/trainers/front_pics/aqua_leader_archie_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_AquaLeaderArchie:: @ 8D54FDC + .incbin "graphics/trainers/palettes/aqua_leader_archie.gbapal.lz" + + .align 2 +gTrainerFrontPic_HexManiac:: @ 8D55004 + .incbin "graphics/trainers/front_pics/hex_maniac_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_HexManiac:: @ 8D55370 + .incbin "graphics/trainers/palettes/hex_maniac.gbapal.lz" + + .align 2 +gTrainerFrontPic_AromaLady:: @ 8D55398 + .incbin "graphics/trainers/front_pics/aroma_lady_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_AromaLady:: @ 8D5565C + .incbin "graphics/trainers/palettes/aroma_lady.gbapal.lz" + + .align 2 +gTrainerFrontPic_RuinManiac:: @ 8D55684 + .incbin "graphics/trainers/front_pics/ruin_maniac_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_RuinManiac:: @ 8D55A20 + .incbin "graphics/trainers/palettes/ruin_maniac.gbapal.lz" + + .align 2 +gTrainerFrontPic_Interviewer:: @ 8D55A48 + .incbin "graphics/trainers/front_pics/interviewer_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_Interviewer:: @ 8D55EEC + .incbin "graphics/trainers/palettes/interviewer.gbapal.lz" + + .align 2 +gTrainerFrontPic_TuberF:: @ 8D55F14 + .incbin "graphics/trainers/front_pics/tuber_f_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_TuberF:: @ 8D561B8 + .incbin "graphics/trainers/palettes/tuber_f.gbapal.lz" + + .align 2 +gTrainerFrontPic_TuberM:: @ 8D561E0 + .incbin "graphics/trainers/front_pics/tuber_m_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_TuberM:: @ 8D5646C + .incbin "graphics/trainers/palettes/tuber_m.gbapal.lz" + + .align 2 +gTrainerFrontPic_CoolTrainerF:: @ 8D56494 + .incbin "graphics/trainers/front_pics/cool_trainer_f_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_CoolTrainerF:: @ 8D567A8 + .incbin "graphics/trainers/palettes/cool_trainer_f.gbapal.lz" + + .align 2 +gTrainerFrontPic_Lady:: @ 8D567D0 + .incbin "graphics/trainers/front_pics/lady_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_Lady:: @ 8D56B84 + .incbin "graphics/trainers/palettes/lady.gbapal.lz" + + .align 2 +gTrainerFrontPic_Beauty:: @ 8D56BAC + .incbin "graphics/trainers/front_pics/beauty_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_Beauty:: @ 8D56E94 + .incbin "graphics/trainers/palettes/beauty.gbapal.lz" + + .align 2 +gTrainerFrontPic_RichBoy:: @ 8D56EBC + .incbin "graphics/trainers/front_pics/rich_boy_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_RichBoy:: @ 8D57170 + .incbin "graphics/trainers/palettes/rich_boy.gbapal.lz" + + .align 2 +gTrainerFrontPic_ExpertF:: @ 8D57198 + .incbin "graphics/trainers/front_pics/expert_f_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_ExpertF:: @ 8D574B4 + .incbin "graphics/trainers/palettes/expert_f.gbapal.lz" + + .align 2 +gTrainerFrontPic_Pokemaniac:: @ 8D574DC + .incbin "graphics/trainers/front_pics/pokemaniac_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_Pokemaniac:: @ 8D5784C + .incbin "graphics/trainers/palettes/pokemaniac.gbapal.lz" + + .align 2 +gTrainerFrontPic_MagmaGruntF:: @ 8D57874 + .incbin "graphics/trainers/front_pics/magma_grunt_f_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_MagmaGruntF:: @ 8D57C00 + .incbin "graphics/trainers/palettes/magma_grunt_f.gbapal.lz" + + .align 2 +gTrainerFrontPic_Guitarist:: @ 8D57C28 + .incbin "graphics/trainers/front_pics/guitarist_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_Guitarist:: @ 8D57FAC + .incbin "graphics/trainers/palettes/guitarist.gbapal.lz" + + .align 2 +gTrainerFrontPic_Kindler:: @ 8D57FD4 + .incbin "graphics/trainers/front_pics/kindler_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_Kindler:: @ 8D58340 + .incbin "graphics/trainers/palettes/kindler.gbapal.lz" + + .align 2 +gTrainerFrontPic_Camper:: @ 8D58368 + .incbin "graphics/trainers/front_pics/camper_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_Camper:: @ 8D58650 + .incbin "graphics/trainers/palettes/camper.gbapal.lz" + + .align 2 +gTrainerFrontPic_Picnicker:: @ 8D58678 + .incbin "graphics/trainers/front_pics/picnicker_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_Picnicker:: @ 8D58958 + .incbin "graphics/trainers/palettes/picnicker.gbapal.lz" + + .align 2 +gTrainerFrontPic_BugManiac:: @ 8D58980 + .incbin "graphics/trainers/front_pics/bug_maniac_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_BugManiac:: @ 8D58DD0 + .incbin "graphics/trainers/palettes/bug_maniac.gbapal.lz" + + .align 2 +gTrainerFrontPic_PokemonBreederM:: @ 8D58DF8 + .incbin "graphics/trainers/front_pics/pokemon_breeder_m_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_PokemonBreederM:: @ 8D59128 + .incbin "graphics/trainers/palettes/pokemon_breeder_m.gbapal.lz" + + .align 2 +gTrainerFrontPic_PsychicM:: @ 8D59150 + .incbin "graphics/trainers/front_pics/psychic_m_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_PsychicM:: @ 8D5947C + .incbin "graphics/trainers/palettes/psychic_m.gbapal.lz" + + .align 2 +gTrainerFrontPic_PsychicF:: @ 8D594A4 + .incbin "graphics/trainers/front_pics/psychic_f_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_PsychicF:: @ 8D597CC + .incbin "graphics/trainers/palettes/psychic_f.gbapal.lz" + + .align 2 +gTrainerFrontPic_Gentleman:: @ 8D597F4 + .incbin "graphics/trainers/front_pics/gentleman_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_Gentleman:: @ 8D59AF4 + .incbin "graphics/trainers/palettes/gentleman.gbapal.lz" + + .align 2 +gTrainerFrontPic_EliteFourSidney:: @ 8D59B1C + .incbin "graphics/trainers/front_pics/elite_four_sidney_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_EliteFourSidney:: @ 8D59E50 + .incbin "graphics/trainers/palettes/elite_four_sidney.gbapal.lz" + + .align 2 +gTrainerFrontPic_EliteFourPhoebe:: @ 8D59E78 + .incbin "graphics/trainers/front_pics/elite_four_phoebe_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_EliteFourPhoebe:: @ 8D5A178 + .incbin "graphics/trainers/palettes/elite_four_phoebe.gbapal.lz" + + .align 2 +gTrainerFrontPic_EliteFourGlacia:: @ 8D5A1A0 + .incbin "graphics/trainers/front_pics/elite_four_glacia_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_EliteFourGlacia:: @ 8D5A524 + .incbin "graphics/trainers/palettes/elite_four_glacia.gbapal.lz" + + .align 2 +gTrainerFrontPic_EliteFourDrake:: @ 8D5A54C + .incbin "graphics/trainers/front_pics/elite_four_drake_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_EliteFourDrake:: @ 8D5A8F4 + .incbin "graphics/trainers/palettes/elite_four_drake.gbapal.lz" + + .align 2 +gTrainerFrontPic_LeaderRoxanne:: @ 8D5A91C + .incbin "graphics/trainers/front_pics/leader_roxanne_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_LeaderRoxanne:: @ 8D5AC08 + .incbin "graphics/trainers/palettes/leader_roxanne.gbapal.lz" + + .align 2 +gTrainerFrontPic_LeaderBrawly:: @ 8D5AC30 + .incbin "graphics/trainers/front_pics/leader_brawly_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_LeaderBrawly:: @ 8D5AFC4 + .incbin "graphics/trainers/palettes/leader_brawly.gbapal.lz" + + .align 2 +gTrainerFrontPic_LeaderWattson:: @ 8D5AFEC + .incbin "graphics/trainers/front_pics/leader_wattson_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_LeaderWattson:: @ 8D5B334 + .incbin "graphics/trainers/palettes/leader_wattson.gbapal.lz" + + .align 2 +gTrainerFrontPic_LeaderFlannery:: @ 8D5B35C + .incbin "graphics/trainers/front_pics/leader_flannery_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_LeaderFlannery:: @ 8D5B6DC + .incbin "graphics/trainers/palettes/leader_flannery.gbapal.lz" + + .align 2 +gTrainerFrontPic_LeaderNorman:: @ 8D5B704 + .incbin "graphics/trainers/front_pics/leader_norman_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_LeaderNorman:: @ 8D5BA40 + .incbin "graphics/trainers/palettes/leader_norman.gbapal.lz" + + .align 2 +gTrainerFrontPic_LeaderWinona:: @ 8D5BA68 + .incbin "graphics/trainers/front_pics/leader_winona_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_LeaderWinona:: @ 8D5BDE8 + .incbin "graphics/trainers/palettes/leader_winona.gbapal.lz" + + .align 2 +gTrainerFrontPic_LeaderTateAndLiza:: @ 8D5BE10 + .incbin "graphics/trainers/front_pics/leader_tate_and_liza_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_LeaderTateAndLiza:: @ 8D5C254 + .incbin "graphics/trainers/palettes/leader_tate_and_liza.gbapal.lz" + + .align 2 +gTrainerFrontPic_LeaderJuan:: @ 8D5C27C + .incbin "graphics/trainers/front_pics/leader_juan_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_LeaderJuan:: @ 8D5C624 + .incbin "graphics/trainers/palettes/leader_juan.gbapal.lz" + + .align 2 +gTrainerFrontPic_SchoolKidM:: @ 8D5C64C + .incbin "graphics/trainers/front_pics/school_kid_m_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_SchoolKidM:: @ 8D5C90C + .incbin "graphics/trainers/palettes/school_kid_m.gbapal.lz" + + .align 2 +gTrainerFrontPic_SchoolKidF:: @ 8D5C934 + .incbin "graphics/trainers/front_pics/school_kid_f_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_SchoolKidF:: @ 8D5CBD0 + .incbin "graphics/trainers/palettes/school_kid_f.gbapal.lz" + + .align 2 +gTrainerFrontPic_SrAndJr:: @ 8D5CBF8 + .incbin "graphics/trainers/front_pics/sr_and_jr_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_SrAndJr:: @ 8D5D068 + .incbin "graphics/trainers/palettes/sr_and_jr.gbapal.lz" + + .align 2 +gTrainerFrontPic_WinstrateM:: @ 8D5D090 + .incbin "graphics/trainers/front_pics/winstrate_m_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_WinstrateM:: @ 8D5D44C + .incbin "graphics/trainers/palettes/winstrate_m.gbapal.lz" + + .align 2 +gTrainerFrontPic_WinstrateF:: @ 8D5D474 + .incbin "graphics/trainers/front_pics/winstrate_f_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_WinstrateF:: @ 8D5D840 + .incbin "graphics/trainers/palettes/winstrate_f.gbapal.lz" + + .align 2 +gTrainerFrontPic_Youngster:: @ 8D5D868 + .incbin "graphics/trainers/front_pics/youngster_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_Youngster:: @ 8D5DB10 + .incbin "graphics/trainers/palettes/youngster.gbapal.lz" + + .align 2 +gTrainerFrontPic_ChampionWallace:: @ 8D5DB38 + .incbin "graphics/trainers/front_pics/champion_wallace_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_ChampionWallace:: @ 8D5DF8C + .incbin "graphics/trainers/palettes/champion_wallace.gbapal.lz" + + .align 2 +gTrainerFrontPic_Fisherman:: @ 8D5DFB4 + .incbin "graphics/trainers/front_pics/fisherman_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_Fisherman:: @ 8D5E398 + .incbin "graphics/trainers/palettes/fisherman.gbapal.lz" + + .align 2 +gTrainerFrontPic_CyclingTriathleteM:: @ 8D5E3C0 + .incbin "graphics/trainers/front_pics/cycling_triathlete_m_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_CyclingTriathleteM:: @ 8D5E7D0 + .incbin "graphics/trainers/palettes/cycling_triathlete_m.gbapal.lz" + + .align 2 +gTrainerFrontPic_CyclingTriathleteF:: @ 8D5E7F8 + .incbin "graphics/trainers/front_pics/cycling_triathlete_f_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_CyclingTriathleteF:: @ 8D5EC04 + .incbin "graphics/trainers/palettes/cycling_triathlete_f.gbapal.lz" + + .align 2 +gTrainerFrontPic_RunningTriathleteM:: @ 8D5EC2C + .incbin "graphics/trainers/front_pics/running_triathlete_m_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_RunningTriathleteM:: @ 8D5EEE4 + .incbin "graphics/trainers/palettes/running_triathlete_m.gbapal.lz" + + .align 2 +gTrainerFrontPic_RunningTriathleteF:: @ 8D5EF0C + .incbin "graphics/trainers/front_pics/running_triathlete_f_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_RunningTriathleteF:: @ 8D5F1B0 + .incbin "graphics/trainers/palettes/running_triathlete_f.gbapal.lz" + + .align 2 +gTrainerFrontPic_SwimmingTriathleteM:: @ 8D5F1D8 + .incbin "graphics/trainers/front_pics/swimming_triathlete_m_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_SwimmingTriathleteM:: @ 8D5F504 + .incbin "graphics/trainers/palettes/swimming_triathlete_m.gbapal.lz" + + .align 2 +gTrainerFrontPic_SwimmingTriathleteF:: @ 8D5F52C + .incbin "graphics/trainers/front_pics/swimming_triathlete_f_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_SwimmingTriathleteF:: @ 8D5F808 + .incbin "graphics/trainers/palettes/swimming_triathlete_f.gbapal.lz" + + .align 2 +gTrainerFrontPic_DragonTamer:: @ 8D5F830 + .incbin "graphics/trainers/front_pics/dragon_tamer_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_DragonTamer:: @ 8D5FB84 + .incbin "graphics/trainers/palettes/dragon_tamer.gbapal.lz" + + .align 2 +gTrainerFrontPic_NinjaBoy:: @ 8D5FBAC + .incbin "graphics/trainers/front_pics/ninja_boy_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_NinjaBoy:: @ 8D5FE88 + .incbin "graphics/trainers/palettes/ninja_boy.gbapal.lz" + + .align 2 +gTrainerFrontPic_BattleGirl:: @ 8D5FEB0 + .incbin "graphics/trainers/front_pics/battle_girl_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_BattleGirl:: @ 8D601D0 + .incbin "graphics/trainers/palettes/battle_girl.gbapal.lz" + + .align 2 +gTrainerFrontPic_ParasolLady:: @ 8D601F8 + .incbin "graphics/trainers/front_pics/parasol_lady_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_ParasolLady:: @ 8D60530 + .incbin "graphics/trainers/palettes/parasol_lady.gbapal.lz" + + .align 2 +gTrainerFrontPic_SwimmerF:: @ 8D60558 + .incbin "graphics/trainers/front_pics/swimmer_f_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_SwimmerF:: @ 8D60828 + .incbin "graphics/trainers/palettes/swimmer_f.gbapal.lz" + + .align 2 +gTrainerFrontPic_Twins:: @ 8D60850 + .incbin "graphics/trainers/front_pics/twins_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_Twins:: @ 8D60C14 + .incbin "graphics/trainers/palettes/twins.gbapal.lz" + + .align 2 +gTrainerFrontPic_Sailor:: @ 8D60C3C + .incbin "graphics/trainers/front_pics/sailor_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_Sailor:: @ 8D60FEC + .incbin "graphics/trainers/palettes/sailor.gbapal.lz" + + .align 2 +gTrainerFrontPic_MagmaAdmin:: @ 8D61014 + .incbin "graphics/trainers/front_pics/magma_admin_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_MagmaAdmin:: @ 8D613EC + .incbin "graphics/trainers/palettes/magma_admin.gbapal.lz" + + .align 2 +gTrainerFrontPic_Wally:: @ 8D61414 + .incbin "graphics/trainers/front_pics/wally_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_Wally:: @ 8D616E4 + .incbin "graphics/trainers/palettes/wally.gbapal.lz" + + .align 2 +gTrainerFrontPic_Brendan:: @ 8D6170C + .incbin "graphics/trainers/front_pics/brendan_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_Brendan:: @ 8D61A30 + .incbin "graphics/trainers/palettes/brendan.gbapal.lz" + + .align 2 +gTrainerFrontPic_May:: @ 8D61A58 + .incbin "graphics/trainers/front_pics/may_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_May:: @ 8D61D58 + .incbin "graphics/trainers/palettes/may.gbapal.lz" + + .align 2 +gTrainerFrontPic_BugCatcher:: @ 8D61D80 + .incbin "graphics/trainers/front_pics/bug_catcher_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_BugCatcher:: @ 8D620AC + .incbin "graphics/trainers/palettes/bug_catcher.gbapal.lz" + + .align 2 +gTrainerFrontPic_PokemonRangerM:: @ 8D620D4 + .incbin "graphics/trainers/front_pics/pokemon_ranger_m_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_PokemonRangerM:: @ 8D6241C + .incbin "graphics/trainers/palettes/pokemon_ranger_m.gbapal.lz" + + .align 2 +gTrainerFrontPic_PokemonRangerF:: @ 8D62444 + .incbin "graphics/trainers/front_pics/pokemon_ranger_f_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_PokemonRangerF:: @ 8D62778 + .incbin "graphics/trainers/palettes/pokemon_ranger_f.gbapal.lz" + + .align 2 +gTrainerFrontPic_MagmaLeaderMaxie:: @ 8D627A0 + .incbin "graphics/trainers/front_pics/magma_leader_maxie_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_MagmaLeaderMaxie:: @ 8D62A94 + .incbin "graphics/trainers/palettes/magma_leader_maxie.gbapal.lz" + + .align 2 +gTrainerFrontPic_Lass:: @ 8D62ABC + .incbin "graphics/trainers/front_pics/lass_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_Lass:: @ 8D62D94 + .incbin "graphics/trainers/palettes/lass.gbapal.lz" + + .align 2 +gTrainerFrontPic_YoungCouple:: @ 8D62DBC + .incbin "graphics/trainers/front_pics/young_couple_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_YoungCouple:: @ 8D6317C + .incbin "graphics/trainers/palettes/young_couple.gbapal.lz" + + .align 2 +gTrainerFrontPic_OldCouple:: @ 8D631A4 + .incbin "graphics/trainers/front_pics/old_couple_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_OldCouple:: @ 8D636B4 + .incbin "graphics/trainers/palettes/old_couple.gbapal.lz" + + .align 2 +gTrainerFrontPic_SisAndBro:: @ 8D636DC + .incbin "graphics/trainers/front_pics/sis_and_bro_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_SisAndBro:: @ 8D63B28 + .incbin "graphics/trainers/palettes/sis_and_bro.gbapal.lz" + + .align 2 +gTrainerFrontPic_Steven:: @ 8D63B50 + .incbin "graphics/trainers/front_pics/steven_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_Steven:: @ 8D63E88 + .incbin "graphics/trainers/palettes/steven.gbapal.lz" + + .align 2 +gTrainerFrontPic_SalonMaidenAnabel:: @ 8D63EB0 + .incbin "graphics/trainers/front_pics/salon_maiden_anabel_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_SalonMaidenAnabel:: @ 8D641B8 + .incbin "graphics/trainers/palettes/salon_maiden_anabel.gbapal.lz" + + .align 2 +gTrainerFrontPic_DomeAceTucker:: @ 8D641E0 + .incbin "graphics/trainers/front_pics/dome_ace_tucker_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_DomeAceTucker:: @ 8D645E4 + .incbin "graphics/trainers/palettes/dome_ace_tucker.gbapal.lz" + + .align 2 +gTrainerFrontPic_PalaceMavenSpenser:: @ 8D6460C + .incbin "graphics/trainers/front_pics/palace_maven_spenser_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_PalaceMavenSpenser:: @ 8D649B0 + .incbin "graphics/trainers/palettes/palace_maven_spenser.gbapal.lz" + + .align 2 +gTrainerFrontPic_ArenaTycoonGreta:: @ 8D649D8 + .incbin "graphics/trainers/front_pics/arena_tycoon_greta_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_ArenaTycoonGreta:: @ 8D64D08 + .incbin "graphics/trainers/palettes/arena_tycoon_greta.gbapal.lz" + + .align 2 +gTrainerFrontPic_FactoryHeadNoland:: @ 8D64D30 + .incbin "graphics/trainers/front_pics/factory_head_noland_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_FactoryHeadNoland:: @ 8D650AC + .incbin "graphics/trainers/palettes/factory_head_noland.gbapal.lz" + + .align 2 +gTrainerFrontPic_PikeQueenLucy:: @ 8D650D4 + .incbin "graphics/trainers/front_pics/pike_queen_lucy_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_PikeQueenLucy:: @ 8D653C8 + .incbin "graphics/trainers/palettes/pike_queen_lucy.gbapal.lz" + + .align 2 +gTrainerFrontPic_PyramidKingBrandon:: @ 8D653F0 + .incbin "graphics/trainers/front_pics/pyramid_king_brandon_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_PyramidKingBrandon:: @ 8D6575C + .incbin "graphics/trainers/palettes/pyramid_king_brandon.gbapal.lz" + + .align 2 +gTrainerFrontPic_Red:: @ 8D65784 + .incbin "graphics/trainers/front_pics/red_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_Red:: @ 8D65A90 + .incbin "graphics/trainers/palettes/red.gbapal.lz" + + .align 2 +gTrainerFrontPic_Leaf:: @ 8D65AB8 + .incbin "graphics/trainers/front_pics/leaf_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_Leaf:: @ 8D65DF4 + .incbin "graphics/trainers/palettes/leaf.gbapal.lz" + + .align 2 +gTrainerFrontPic_RubySapphireBrendan:: @ 8D65E1C + .incbin "graphics/trainers/front_pics/ruby_sapphire_brendan_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_RubySapphireBrendan:: @ 8D66130 + .incbin "graphics/trainers/palettes/ruby_sapphire_brendan.gbapal.lz" + + .align 2 +gTrainerFrontPic_RubySapphireMay:: @ 8D66158 + .incbin "graphics/trainers/front_pics/ruby_sapphire_may_front_pic.4bpp.lz" + + .align 2 +gTrainerPalette_RubySapphireMay:: @ 8D66458 + .incbin "graphics/trainers/palettes/ruby_sapphire_may.gbapal.lz" + + .align 2 +gTrainerBackPic_Brendan:: @ 8D66480 + .incbin "graphics/trainers/back_pics/brendan_back_pic.4bpp" + + .align 2 +gTrainerBackPic_May:: @ 8D68480 + .incbin "graphics/trainers/back_pics/may_back_pic.4bpp" + + .align 2 +gTrainerBackPic_Red:: @ 8D6A480 + .incbin "graphics/trainers/back_pics/red_back_pic.4bpp" + + .align 2 +gTrainerBackPic_Leaf:: @ 8D6CC80 + .incbin "graphics/trainers/back_pics/leaf_back_pic.4bpp" + + .align 2 +gTrainerBackPic_RubySapphireBrendan:: @ 8D6F480 + .incbin "graphics/trainers/back_pics/ruby_sapphire_brendan_back_pic.4bpp" + + .align 2 +gTrainerBackPic_RubySapphireMay:: @ 8D71480 + .incbin "graphics/trainers/back_pics/ruby_sapphire_may_back_pic.4bpp" + + .align 2 +gTrainerBackPic_Wally:: @ 8D73480 + .incbin "graphics/trainers/back_pics/wally_back_pic.4bpp" + + .align 2 +gTrainerBackPic_Steven:: @ 8D75480 + .incbin "graphics/trainers/back_pics/steven_back_pic.4bpp" + + .align 2 +gTrainerBackPicPalette_Red:: @ 8D77480 + .incbin "graphics/trainers/palettes/red_back_pic.gbapal.lz" + + .align 2 +gTrainerBackPicPalette_Leaf:: @ 8D774A8 + .incbin "graphics/trainers/palettes/leaf_back_pic.gbapal.lz" diff --git a/data/graphics/trainers/trainer_back_pic_palette_table.inc b/data/graphics/trainers/trainer_back_pic_palette_table.inc deleted file mode 100644 index 46e56f2ac..000000000 --- a/data/graphics/trainers/trainer_back_pic_palette_table.inc +++ /dev/null @@ -1,10 +0,0 @@ - .align 2 -gTrainerBackPicPaletteTable:: @ 8305D8C - obj_pal gTrainerPalette_Brendan, 0 - obj_pal gTrainerPalette_May, 1 - obj_pal gTrainerBackPicPalette_Red, 2 - obj_pal gTrainerBackPicPalette_Leaf, 3 - obj_pal gTrainerPalette_RubySapphireBrendan, 4 - obj_pal gTrainerPalette_RubySapphireMay, 5 - obj_pal gTrainerPalette_Wally, 6 - obj_pal gTrainerPalette_Steven, 7 diff --git a/data/graphics/trainers/trainer_back_pic_table.inc b/data/graphics/trainers/trainer_back_pic_table.inc deleted file mode 100644 index e67c2a073..000000000 --- a/data/graphics/trainers/trainer_back_pic_table.inc +++ /dev/null @@ -1,10 +0,0 @@ - .align 2 -gTrainerBackPicTable:: @ 8305D4C - obj_tiles gTrainerBackPic_Brendan, 0x2000, 0 - obj_tiles gTrainerBackPic_May, 0x2000, 1 - obj_tiles gTrainerBackPic_Red, 0x2800, 2 - obj_tiles gTrainerBackPic_Leaf, 0x2800, 3 - obj_tiles gTrainerBackPic_RubySapphireBrendan, 0x2000, 4 - obj_tiles gTrainerBackPic_RubySapphireMay, 0x2000, 5 - obj_tiles gTrainerBackPic_Wally, 0x2000, 6 - obj_tiles gTrainerBackPic_Steven, 0x2000, 7 diff --git a/data/graphics/trainers/trainer_front_pic_palette_table.inc b/data/graphics/trainers/trainer_front_pic_palette_table.inc deleted file mode 100644 index 44cf98dab..000000000 --- a/data/graphics/trainers/trainer_front_pic_palette_table.inc +++ /dev/null @@ -1,95 +0,0 @@ - .align 2 -gTrainerFrontPicPaletteTable:: @ 830593C - obj_pal gTrainerPalette_Hiker, 0 - obj_pal gTrainerPalette_AquaGruntM, 1 - obj_pal gTrainerPalette_PokemonBreederF, 2 - obj_pal gTrainerPalette_CoolTrainerM, 3 - obj_pal gTrainerPalette_BirdKeeper, 4 - obj_pal gTrainerPalette_Collector, 5 - obj_pal gTrainerPalette_AquaGruntF, 6 - obj_pal gTrainerPalette_SwimmerM, 7 - obj_pal gTrainerPalette_MagmaGruntM, 8 - obj_pal gTrainerPalette_ExpertM, 9 - obj_pal gTrainerPalette_AquaAdminM, 10 - obj_pal gTrainerPalette_BlackBelt, 11 - obj_pal gTrainerPalette_AquaAdminF, 12 - obj_pal gTrainerPalette_AquaLeaderArchie, 13 - obj_pal gTrainerPalette_HexManiac, 14 - obj_pal gTrainerPalette_AromaLady, 15 - obj_pal gTrainerPalette_RuinManiac, 16 - obj_pal gTrainerPalette_Interviewer, 17 - obj_pal gTrainerPalette_TuberF, 18 - obj_pal gTrainerPalette_TuberM, 19 - obj_pal gTrainerPalette_CoolTrainerF, 20 - obj_pal gTrainerPalette_Lady, 21 - obj_pal gTrainerPalette_Beauty, 22 - obj_pal gTrainerPalette_RichBoy, 23 - obj_pal gTrainerPalette_ExpertF, 24 - obj_pal gTrainerPalette_Pokemaniac, 25 - obj_pal gTrainerPalette_MagmaGruntF, 26 - obj_pal gTrainerPalette_Guitarist, 27 - obj_pal gTrainerPalette_Kindler, 28 - obj_pal gTrainerPalette_Camper, 29 - obj_pal gTrainerPalette_Picnicker, 30 - obj_pal gTrainerPalette_BugManiac, 31 - obj_pal gTrainerPalette_PokemonBreederM, 32 - obj_pal gTrainerPalette_PsychicM, 33 - obj_pal gTrainerPalette_PsychicF, 34 - obj_pal gTrainerPalette_Gentleman, 35 - obj_pal gTrainerPalette_EliteFourSidney, 36 - obj_pal gTrainerPalette_EliteFourPhoebe, 37 - obj_pal gTrainerPalette_EliteFourGlacia, 38 - obj_pal gTrainerPalette_EliteFourDrake, 39 - obj_pal gTrainerPalette_LeaderRoxanne, 40 - obj_pal gTrainerPalette_LeaderBrawly, 41 - obj_pal gTrainerPalette_LeaderWattson, 42 - obj_pal gTrainerPalette_LeaderFlannery, 43 - obj_pal gTrainerPalette_LeaderNorman, 44 - obj_pal gTrainerPalette_LeaderWinona, 45 - obj_pal gTrainerPalette_LeaderTateAndLiza, 46 - obj_pal gTrainerPalette_LeaderJuan, 47 - obj_pal gTrainerPalette_SchoolKidM, 48 - obj_pal gTrainerPalette_SchoolKidF, 49 - obj_pal gTrainerPalette_SrAndJr, 50 - obj_pal gTrainerPalette_WinstrateM, 51 - obj_pal gTrainerPalette_WinstrateF, 52 - obj_pal gTrainerPalette_Youngster, 53 - obj_pal gTrainerPalette_ChampionWallace, 54 - obj_pal gTrainerPalette_Fisherman, 55 - obj_pal gTrainerPalette_CyclingTriathleteM, 56 - obj_pal gTrainerPalette_CyclingTriathleteF, 57 - obj_pal gTrainerPalette_RunningTriathleteM, 58 - obj_pal gTrainerPalette_RunningTriathleteF, 59 - obj_pal gTrainerPalette_SwimmingTriathleteM, 60 - obj_pal gTrainerPalette_SwimmingTriathleteF, 61 - obj_pal gTrainerPalette_DragonTamer, 62 - obj_pal gTrainerPalette_NinjaBoy, 63 - obj_pal gTrainerPalette_BattleGirl, 64 - obj_pal gTrainerPalette_ParasolLady, 65 - obj_pal gTrainerPalette_SwimmerF, 66 - obj_pal gTrainerPalette_Twins, 67 - obj_pal gTrainerPalette_Sailor, 68 - obj_pal gTrainerPalette_MagmaAdmin, 69 - obj_pal gTrainerPalette_Wally, 70 - obj_pal gTrainerPalette_Brendan, 71 - obj_pal gTrainerPalette_May, 72 - obj_pal gTrainerPalette_BugCatcher, 73 - obj_pal gTrainerPalette_PokemonRangerM, 74 - obj_pal gTrainerPalette_PokemonRangerF, 75 - obj_pal gTrainerPalette_MagmaLeaderMaxie, 76 - obj_pal gTrainerPalette_Lass, 77 - obj_pal gTrainerPalette_YoungCouple, 78 - obj_pal gTrainerPalette_OldCouple, 79 - obj_pal gTrainerPalette_SisAndBro, 80 - obj_pal gTrainerPalette_Steven, 81 - obj_pal gTrainerPalette_SalonMaidenAnabel, 82 - obj_pal gTrainerPalette_DomeAceTucker, 83 - obj_pal gTrainerPalette_PalaceMavenSpenser, 84 - obj_pal gTrainerPalette_ArenaTycoonGreta, 85 - obj_pal gTrainerPalette_FactoryHeadNoland, 86 - obj_pal gTrainerPalette_PikeQueenLucy, 87 - obj_pal gTrainerPalette_PyramidKingBrandon, 88 - obj_pal gTrainerPalette_Red, 89 - obj_pal gTrainerPalette_Leaf, 90 - obj_pal gTrainerPalette_RubySapphireBrendan, 91 - obj_pal gTrainerPalette_RubySapphireMay, 92 diff --git a/data/graphics/trainers/trainer_front_pic_table.inc b/data/graphics/trainers/trainer_front_pic_table.inc deleted file mode 100644 index 91294d170..000000000 --- a/data/graphics/trainers/trainer_front_pic_table.inc +++ /dev/null @@ -1,95 +0,0 @@ - .align 2 -gTrainerFrontPicTable:: @ 8305654 - obj_tiles gTrainerFrontPic_Hiker, 0x800, 0 - obj_tiles gTrainerFrontPic_AquaGruntM, 0x800, 1 - obj_tiles gTrainerFrontPic_PokemonBreederF, 0x800, 2 - obj_tiles gTrainerFrontPic_CoolTrainerM, 0x800, 3 - obj_tiles gTrainerFrontPic_BirdKeeper, 0x800, 4 - obj_tiles gTrainerFrontPic_Collector, 0x800, 5 - obj_tiles gTrainerFrontPic_AquaGruntF, 0x800, 6 - obj_tiles gTrainerFrontPic_SwimmerM, 0x800, 7 - obj_tiles gTrainerFrontPic_MagmaGruntM, 0x800, 8 - obj_tiles gTrainerFrontPic_ExpertM, 0x800, 9 - obj_tiles gTrainerFrontPic_AquaAdminM, 0x800, 10 - obj_tiles gTrainerFrontPic_BlackBelt, 0x800, 11 - obj_tiles gTrainerFrontPic_AquaAdminF, 0x800, 12 - obj_tiles gTrainerFrontPic_AquaLeaderArchie, 0x800, 13 - obj_tiles gTrainerFrontPic_HexManiac, 0x800, 14 - obj_tiles gTrainerFrontPic_AromaLady, 0x800, 15 - obj_tiles gTrainerFrontPic_RuinManiac, 0x800, 16 - obj_tiles gTrainerFrontPic_Interviewer, 0x800, 17 - obj_tiles gTrainerFrontPic_TuberF, 0x800, 18 - obj_tiles gTrainerFrontPic_TuberM, 0x800, 19 - obj_tiles gTrainerFrontPic_CoolTrainerF, 0x800, 20 - obj_tiles gTrainerFrontPic_Lady, 0x800, 21 - obj_tiles gTrainerFrontPic_Beauty, 0x800, 22 - obj_tiles gTrainerFrontPic_RichBoy, 0x800, 23 - obj_tiles gTrainerFrontPic_ExpertF, 0x800, 24 - obj_tiles gTrainerFrontPic_Pokemaniac, 0x800, 25 - obj_tiles gTrainerFrontPic_MagmaGruntF, 0x800, 26 - obj_tiles gTrainerFrontPic_Guitarist, 0x800, 27 - obj_tiles gTrainerFrontPic_Kindler, 0x800, 28 - obj_tiles gTrainerFrontPic_Camper, 0x800, 29 - obj_tiles gTrainerFrontPic_Picnicker, 0x800, 30 - obj_tiles gTrainerFrontPic_BugManiac, 0x800, 31 - obj_tiles gTrainerFrontPic_PokemonBreederM, 0x800, 32 - obj_tiles gTrainerFrontPic_PsychicM, 0x800, 33 - obj_tiles gTrainerFrontPic_PsychicF, 0x800, 34 - obj_tiles gTrainerFrontPic_Gentleman, 0x800, 35 - obj_tiles gTrainerFrontPic_EliteFourSidney, 0x800, 36 - obj_tiles gTrainerFrontPic_EliteFourPhoebe, 0x800, 37 - obj_tiles gTrainerFrontPic_EliteFourGlacia, 0x800, 38 - obj_tiles gTrainerFrontPic_EliteFourDrake, 0x800, 39 - obj_tiles gTrainerFrontPic_LeaderRoxanne, 0x800, 40 - obj_tiles gTrainerFrontPic_LeaderBrawly, 0x800, 41 - obj_tiles gTrainerFrontPic_LeaderWattson, 0x800, 42 - obj_tiles gTrainerFrontPic_LeaderFlannery, 0x800, 43 - obj_tiles gTrainerFrontPic_LeaderNorman, 0x800, 44 - obj_tiles gTrainerFrontPic_LeaderWinona, 0x800, 45 - obj_tiles gTrainerFrontPic_LeaderTateAndLiza, 0x800, 46 - obj_tiles gTrainerFrontPic_LeaderJuan, 0x800, 47 - obj_tiles gTrainerFrontPic_SchoolKidM, 0x800, 48 - obj_tiles gTrainerFrontPic_SchoolKidF, 0x800, 49 - obj_tiles gTrainerFrontPic_SrAndJr, 0x1000, 50 - obj_tiles gTrainerFrontPic_WinstrateM, 0x1000, 51 - obj_tiles gTrainerFrontPic_WinstrateF, 0x800, 52 - obj_tiles gTrainerFrontPic_Youngster, 0x800, 53 - obj_tiles gTrainerFrontPic_ChampionWallace, 0x1000, 54 - obj_tiles gTrainerFrontPic_Fisherman, 0x800, 55 - obj_tiles gTrainerFrontPic_CyclingTriathleteM, 0x1000, 56 - obj_tiles gTrainerFrontPic_CyclingTriathleteF, 0x800, 57 - obj_tiles gTrainerFrontPic_RunningTriathleteM, 0x800, 58 - obj_tiles gTrainerFrontPic_RunningTriathleteF, 0x800, 59 - obj_tiles gTrainerFrontPic_SwimmingTriathleteM, 0x800, 60 - obj_tiles gTrainerFrontPic_SwimmingTriathleteF, 0x800, 61 - obj_tiles gTrainerFrontPic_DragonTamer, 0x800, 62 - obj_tiles gTrainerFrontPic_NinjaBoy, 0x800, 63 - obj_tiles gTrainerFrontPic_BattleGirl, 0x1000, 64 - obj_tiles gTrainerFrontPic_ParasolLady, 0x800, 65 - obj_tiles gTrainerFrontPic_SwimmerF, 0x800, 66 - obj_tiles gTrainerFrontPic_Twins, 0x800, 67 - obj_tiles gTrainerFrontPic_Sailor, 0x800, 68 - obj_tiles gTrainerFrontPic_MagmaAdmin, 0x800, 69 - obj_tiles gTrainerFrontPic_Wally, 0x800, 70 - obj_tiles gTrainerFrontPic_Brendan, 0x800, 71 - obj_tiles gTrainerFrontPic_May, 0x800, 72 - obj_tiles gTrainerFrontPic_BugCatcher, 0x800, 73 - obj_tiles gTrainerFrontPic_PokemonRangerM, 0x800, 74 - obj_tiles gTrainerFrontPic_PokemonRangerF, 0x800, 75 - obj_tiles gTrainerFrontPic_MagmaLeaderMaxie, 0x800, 76 - obj_tiles gTrainerFrontPic_Lass, 0x800, 77 - obj_tiles gTrainerFrontPic_YoungCouple, 0x800, 78 - obj_tiles gTrainerFrontPic_OldCouple, 0x800, 79 - obj_tiles gTrainerFrontPic_SisAndBro, 0x800, 80 - obj_tiles gTrainerFrontPic_Steven, 0x800, 81 - obj_tiles gTrainerFrontPic_SalonMaidenAnabel, 0x800, 82 - obj_tiles gTrainerFrontPic_DomeAceTucker, 0x800, 83 - obj_tiles gTrainerFrontPic_PalaceMavenSpenser, 0x800, 84 - obj_tiles gTrainerFrontPic_ArenaTycoonGreta, 0x1000, 85 - obj_tiles gTrainerFrontPic_FactoryHeadNoland, 0x800, 86 - obj_tiles gTrainerFrontPic_PikeQueenLucy, 0x800, 87 - obj_tiles gTrainerFrontPic_PyramidKingBrandon, 0x800, 88 - obj_tiles gTrainerFrontPic_Red, 0x800, 89 - obj_tiles gTrainerFrontPic_Leaf, 0x800, 90 - obj_tiles gTrainerFrontPic_RubySapphireBrendan, 0x800, 91 - obj_tiles gTrainerFrontPic_RubySapphireMay, 0x800, 92 diff --git a/data/graphics/trainers/trainer_graphics.inc b/data/graphics/trainers/trainer_graphics.inc deleted file mode 100644 index 897cb9ffb..000000000 --- a/data/graphics/trainers/trainer_graphics.inc +++ /dev/null @@ -1,783 +0,0 @@ - .align 2 -gTrainerFrontPic_Hiker:: @ 8D51DC8 - .incbin "graphics/trainers/front_pics/hiker_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Hiker:: @ 8D52248 - .incbin "graphics/trainers/palettes/hiker.gbapal.lz" - - .align 2 -gTrainerFrontPic_AquaGruntM:: @ 8D52270 - .incbin "graphics/trainers/front_pics/aqua_grunt_m_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_AquaGruntM:: @ 8D525D0 - .incbin "graphics/trainers/palettes/aqua_grunt_m.gbapal.lz" - - .align 2 -gTrainerFrontPic_PokemonBreederF:: @ 8D525F8 - .incbin "graphics/trainers/front_pics/pokemon_breeder_f_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_PokemonBreederF:: @ 8D5292C - .incbin "graphics/trainers/palettes/pokemon_breeder_f.gbapal.lz" - - .align 2 -gTrainerFrontPic_CoolTrainerM:: @ 8D52954 - .incbin "graphics/trainers/front_pics/cool_trainer_m_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_CoolTrainerM:: @ 8D52C3C - .incbin "graphics/trainers/palettes/cool_trainer_m.gbapal.lz" - - .align 2 -gTrainerFrontPic_BirdKeeper:: @ 8D52C64 - .incbin "graphics/trainers/front_pics/bird_keeper_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_BirdKeeper:: @ 8D52F9C - .incbin "graphics/trainers/palettes/bird_keeper.gbapal.lz" - - .align 2 -gTrainerFrontPic_Collector:: @ 8D52FC4 - .incbin "graphics/trainers/front_pics/collector_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Collector:: @ 8D533C8 - .incbin "graphics/trainers/palettes/collector.gbapal.lz" - - .align 2 -gTrainerFrontPic_AquaGruntF:: @ 8D533F0 - .incbin "graphics/trainers/front_pics/aqua_grunt_f_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_AquaGruntF:: @ 8D5372C - .incbin "graphics/trainers/palettes/aqua_grunt_f.gbapal.lz" - - .align 2 -gTrainerFrontPic_SwimmerM:: @ 8D53754 - .incbin "graphics/trainers/front_pics/swimmer_m_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_SwimmerM:: @ 8D53A14 - .incbin "graphics/trainers/palettes/swimmer_m.gbapal.lz" - - .align 2 -gTrainerFrontPic_MagmaGruntM:: @ 8D53A3C - .incbin "graphics/trainers/front_pics/magma_grunt_m_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_MagmaGruntM:: @ 8D53DBC - .incbin "graphics/trainers/palettes/magma_grunt_m.gbapal.lz" - - .align 2 -gTrainerFrontPic_ExpertM:: @ 8D53DE4 - .incbin "graphics/trainers/front_pics/expert_m_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_ExpertM:: @ 8D54124 - .incbin "graphics/trainers/palettes/expert_m.gbapal.lz" - - .align 2 -gTrainerFrontPic_AquaAdminM:: @ 8D5414C - .incbin "graphics/trainers/front_pics/aqua_admin_m_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_AquaAdminM:: @ 8D54500 - .incbin "graphics/trainers/palettes/aqua_admin_m.gbapal.lz" - - .align 2 -gTrainerFrontPic_BlackBelt:: @ 8D54528 - .incbin "graphics/trainers/front_pics/black_belt_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_BlackBelt:: @ 8D5488C - .incbin "graphics/trainers/palettes/black_belt.gbapal.lz" - - .align 2 -gTrainerFrontPic_AquaAdminF:: @ 8D548B4 - .incbin "graphics/trainers/front_pics/aqua_admin_f_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_AquaAdminF:: @ 8D54C78 - .incbin "graphics/trainers/palettes/aqua_admin_f.gbapal.lz" - - .align 2 -gTrainerFrontPic_AquaLeaderArchie:: @ 8D54CA0 - .incbin "graphics/trainers/front_pics/aqua_leader_archie_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_AquaLeaderArchie:: @ 8D54FDC - .incbin "graphics/trainers/palettes/aqua_leader_archie.gbapal.lz" - - .align 2 -gTrainerFrontPic_HexManiac:: @ 8D55004 - .incbin "graphics/trainers/front_pics/hex_maniac_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_HexManiac:: @ 8D55370 - .incbin "graphics/trainers/palettes/hex_maniac.gbapal.lz" - - .align 2 -gTrainerFrontPic_AromaLady:: @ 8D55398 - .incbin "graphics/trainers/front_pics/aroma_lady_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_AromaLady:: @ 8D5565C - .incbin "graphics/trainers/palettes/aroma_lady.gbapal.lz" - - .align 2 -gTrainerFrontPic_RuinManiac:: @ 8D55684 - .incbin "graphics/trainers/front_pics/ruin_maniac_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_RuinManiac:: @ 8D55A20 - .incbin "graphics/trainers/palettes/ruin_maniac.gbapal.lz" - - .align 2 -gTrainerFrontPic_Interviewer:: @ 8D55A48 - .incbin "graphics/trainers/front_pics/interviewer_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Interviewer:: @ 8D55EEC - .incbin "graphics/trainers/palettes/interviewer.gbapal.lz" - - .align 2 -gTrainerFrontPic_TuberF:: @ 8D55F14 - .incbin "graphics/trainers/front_pics/tuber_f_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_TuberF:: @ 8D561B8 - .incbin "graphics/trainers/palettes/tuber_f.gbapal.lz" - - .align 2 -gTrainerFrontPic_TuberM:: @ 8D561E0 - .incbin "graphics/trainers/front_pics/tuber_m_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_TuberM:: @ 8D5646C - .incbin "graphics/trainers/palettes/tuber_m.gbapal.lz" - - .align 2 -gTrainerFrontPic_CoolTrainerF:: @ 8D56494 - .incbin "graphics/trainers/front_pics/cool_trainer_f_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_CoolTrainerF:: @ 8D567A8 - .incbin "graphics/trainers/palettes/cool_trainer_f.gbapal.lz" - - .align 2 -gTrainerFrontPic_Lady:: @ 8D567D0 - .incbin "graphics/trainers/front_pics/lady_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Lady:: @ 8D56B84 - .incbin "graphics/trainers/palettes/lady.gbapal.lz" - - .align 2 -gTrainerFrontPic_Beauty:: @ 8D56BAC - .incbin "graphics/trainers/front_pics/beauty_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Beauty:: @ 8D56E94 - .incbin "graphics/trainers/palettes/beauty.gbapal.lz" - - .align 2 -gTrainerFrontPic_RichBoy:: @ 8D56EBC - .incbin "graphics/trainers/front_pics/rich_boy_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_RichBoy:: @ 8D57170 - .incbin "graphics/trainers/palettes/rich_boy.gbapal.lz" - - .align 2 -gTrainerFrontPic_ExpertF:: @ 8D57198 - .incbin "graphics/trainers/front_pics/expert_f_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_ExpertF:: @ 8D574B4 - .incbin "graphics/trainers/palettes/expert_f.gbapal.lz" - - .align 2 -gTrainerFrontPic_Pokemaniac:: @ 8D574DC - .incbin "graphics/trainers/front_pics/pokemaniac_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Pokemaniac:: @ 8D5784C - .incbin "graphics/trainers/palettes/pokemaniac.gbapal.lz" - - .align 2 -gTrainerFrontPic_MagmaGruntF:: @ 8D57874 - .incbin "graphics/trainers/front_pics/magma_grunt_f_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_MagmaGruntF:: @ 8D57C00 - .incbin "graphics/trainers/palettes/magma_grunt_f.gbapal.lz" - - .align 2 -gTrainerFrontPic_Guitarist:: @ 8D57C28 - .incbin "graphics/trainers/front_pics/guitarist_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Guitarist:: @ 8D57FAC - .incbin "graphics/trainers/palettes/guitarist.gbapal.lz" - - .align 2 -gTrainerFrontPic_Kindler:: @ 8D57FD4 - .incbin "graphics/trainers/front_pics/kindler_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Kindler:: @ 8D58340 - .incbin "graphics/trainers/palettes/kindler.gbapal.lz" - - .align 2 -gTrainerFrontPic_Camper:: @ 8D58368 - .incbin "graphics/trainers/front_pics/camper_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Camper:: @ 8D58650 - .incbin "graphics/trainers/palettes/camper.gbapal.lz" - - .align 2 -gTrainerFrontPic_Picnicker:: @ 8D58678 - .incbin "graphics/trainers/front_pics/picnicker_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Picnicker:: @ 8D58958 - .incbin "graphics/trainers/palettes/picnicker.gbapal.lz" - - .align 2 -gTrainerFrontPic_BugManiac:: @ 8D58980 - .incbin "graphics/trainers/front_pics/bug_maniac_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_BugManiac:: @ 8D58DD0 - .incbin "graphics/trainers/palettes/bug_maniac.gbapal.lz" - - .align 2 -gTrainerFrontPic_PokemonBreederM:: @ 8D58DF8 - .incbin "graphics/trainers/front_pics/pokemon_breeder_m_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_PokemonBreederM:: @ 8D59128 - .incbin "graphics/trainers/palettes/pokemon_breeder_m.gbapal.lz" - - .align 2 -gTrainerFrontPic_PsychicM:: @ 8D59150 - .incbin "graphics/trainers/front_pics/psychic_m_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_PsychicM:: @ 8D5947C - .incbin "graphics/trainers/palettes/psychic_m.gbapal.lz" - - .align 2 -gTrainerFrontPic_PsychicF:: @ 8D594A4 - .incbin "graphics/trainers/front_pics/psychic_f_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_PsychicF:: @ 8D597CC - .incbin "graphics/trainers/palettes/psychic_f.gbapal.lz" - - .align 2 -gTrainerFrontPic_Gentleman:: @ 8D597F4 - .incbin "graphics/trainers/front_pics/gentleman_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Gentleman:: @ 8D59AF4 - .incbin "graphics/trainers/palettes/gentleman.gbapal.lz" - - .align 2 -gTrainerFrontPic_EliteFourSidney:: @ 8D59B1C - .incbin "graphics/trainers/front_pics/elite_four_sidney_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_EliteFourSidney:: @ 8D59E50 - .incbin "graphics/trainers/palettes/elite_four_sidney.gbapal.lz" - - .align 2 -gTrainerFrontPic_EliteFourPhoebe:: @ 8D59E78 - .incbin "graphics/trainers/front_pics/elite_four_phoebe_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_EliteFourPhoebe:: @ 8D5A178 - .incbin "graphics/trainers/palettes/elite_four_phoebe.gbapal.lz" - - .align 2 -gTrainerFrontPic_EliteFourGlacia:: @ 8D5A1A0 - .incbin "graphics/trainers/front_pics/elite_four_glacia_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_EliteFourGlacia:: @ 8D5A524 - .incbin "graphics/trainers/palettes/elite_four_glacia.gbapal.lz" - - .align 2 -gTrainerFrontPic_EliteFourDrake:: @ 8D5A54C - .incbin "graphics/trainers/front_pics/elite_four_drake_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_EliteFourDrake:: @ 8D5A8F4 - .incbin "graphics/trainers/palettes/elite_four_drake.gbapal.lz" - - .align 2 -gTrainerFrontPic_LeaderRoxanne:: @ 8D5A91C - .incbin "graphics/trainers/front_pics/leader_roxanne_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_LeaderRoxanne:: @ 8D5AC08 - .incbin "graphics/trainers/palettes/leader_roxanne.gbapal.lz" - - .align 2 -gTrainerFrontPic_LeaderBrawly:: @ 8D5AC30 - .incbin "graphics/trainers/front_pics/leader_brawly_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_LeaderBrawly:: @ 8D5AFC4 - .incbin "graphics/trainers/palettes/leader_brawly.gbapal.lz" - - .align 2 -gTrainerFrontPic_LeaderWattson:: @ 8D5AFEC - .incbin "graphics/trainers/front_pics/leader_wattson_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_LeaderWattson:: @ 8D5B334 - .incbin "graphics/trainers/palettes/leader_wattson.gbapal.lz" - - .align 2 -gTrainerFrontPic_LeaderFlannery:: @ 8D5B35C - .incbin "graphics/trainers/front_pics/leader_flannery_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_LeaderFlannery:: @ 8D5B6DC - .incbin "graphics/trainers/palettes/leader_flannery.gbapal.lz" - - .align 2 -gTrainerFrontPic_LeaderNorman:: @ 8D5B704 - .incbin "graphics/trainers/front_pics/leader_norman_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_LeaderNorman:: @ 8D5BA40 - .incbin "graphics/trainers/palettes/leader_norman.gbapal.lz" - - .align 2 -gTrainerFrontPic_LeaderWinona:: @ 8D5BA68 - .incbin "graphics/trainers/front_pics/leader_winona_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_LeaderWinona:: @ 8D5BDE8 - .incbin "graphics/trainers/palettes/leader_winona.gbapal.lz" - - .align 2 -gTrainerFrontPic_LeaderTateAndLiza:: @ 8D5BE10 - .incbin "graphics/trainers/front_pics/leader_tate_and_liza_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_LeaderTateAndLiza:: @ 8D5C254 - .incbin "graphics/trainers/palettes/leader_tate_and_liza.gbapal.lz" - - .align 2 -gTrainerFrontPic_LeaderJuan:: @ 8D5C27C - .incbin "graphics/trainers/front_pics/leader_juan_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_LeaderJuan:: @ 8D5C624 - .incbin "graphics/trainers/palettes/leader_juan.gbapal.lz" - - .align 2 -gTrainerFrontPic_SchoolKidM:: @ 8D5C64C - .incbin "graphics/trainers/front_pics/school_kid_m_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_SchoolKidM:: @ 8D5C90C - .incbin "graphics/trainers/palettes/school_kid_m.gbapal.lz" - - .align 2 -gTrainerFrontPic_SchoolKidF:: @ 8D5C934 - .incbin "graphics/trainers/front_pics/school_kid_f_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_SchoolKidF:: @ 8D5CBD0 - .incbin "graphics/trainers/palettes/school_kid_f.gbapal.lz" - - .align 2 -gTrainerFrontPic_SrAndJr:: @ 8D5CBF8 - .incbin "graphics/trainers/front_pics/sr_and_jr_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_SrAndJr:: @ 8D5D068 - .incbin "graphics/trainers/palettes/sr_and_jr.gbapal.lz" - - .align 2 -gTrainerFrontPic_WinstrateM:: @ 8D5D090 - .incbin "graphics/trainers/front_pics/winstrate_m_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_WinstrateM:: @ 8D5D44C - .incbin "graphics/trainers/palettes/winstrate_m.gbapal.lz" - - .align 2 -gTrainerFrontPic_WinstrateF:: @ 8D5D474 - .incbin "graphics/trainers/front_pics/winstrate_f_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_WinstrateF:: @ 8D5D840 - .incbin "graphics/trainers/palettes/winstrate_f.gbapal.lz" - - .align 2 -gTrainerFrontPic_Youngster:: @ 8D5D868 - .incbin "graphics/trainers/front_pics/youngster_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Youngster:: @ 8D5DB10 - .incbin "graphics/trainers/palettes/youngster.gbapal.lz" - - .align 2 -gTrainerFrontPic_ChampionWallace:: @ 8D5DB38 - .incbin "graphics/trainers/front_pics/champion_wallace_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_ChampionWallace:: @ 8D5DF8C - .incbin "graphics/trainers/palettes/champion_wallace.gbapal.lz" - - .align 2 -gTrainerFrontPic_Fisherman:: @ 8D5DFB4 - .incbin "graphics/trainers/front_pics/fisherman_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Fisherman:: @ 8D5E398 - .incbin "graphics/trainers/palettes/fisherman.gbapal.lz" - - .align 2 -gTrainerFrontPic_CyclingTriathleteM:: @ 8D5E3C0 - .incbin "graphics/trainers/front_pics/cycling_triathlete_m_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_CyclingTriathleteM:: @ 8D5E7D0 - .incbin "graphics/trainers/palettes/cycling_triathlete_m.gbapal.lz" - - .align 2 -gTrainerFrontPic_CyclingTriathleteF:: @ 8D5E7F8 - .incbin "graphics/trainers/front_pics/cycling_triathlete_f_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_CyclingTriathleteF:: @ 8D5EC04 - .incbin "graphics/trainers/palettes/cycling_triathlete_f.gbapal.lz" - - .align 2 -gTrainerFrontPic_RunningTriathleteM:: @ 8D5EC2C - .incbin "graphics/trainers/front_pics/running_triathlete_m_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_RunningTriathleteM:: @ 8D5EEE4 - .incbin "graphics/trainers/palettes/running_triathlete_m.gbapal.lz" - - .align 2 -gTrainerFrontPic_RunningTriathleteF:: @ 8D5EF0C - .incbin "graphics/trainers/front_pics/running_triathlete_f_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_RunningTriathleteF:: @ 8D5F1B0 - .incbin "graphics/trainers/palettes/running_triathlete_f.gbapal.lz" - - .align 2 -gTrainerFrontPic_SwimmingTriathleteM:: @ 8D5F1D8 - .incbin "graphics/trainers/front_pics/swimming_triathlete_m_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_SwimmingTriathleteM:: @ 8D5F504 - .incbin "graphics/trainers/palettes/swimming_triathlete_m.gbapal.lz" - - .align 2 -gTrainerFrontPic_SwimmingTriathleteF:: @ 8D5F52C - .incbin "graphics/trainers/front_pics/swimming_triathlete_f_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_SwimmingTriathleteF:: @ 8D5F808 - .incbin "graphics/trainers/palettes/swimming_triathlete_f.gbapal.lz" - - .align 2 -gTrainerFrontPic_DragonTamer:: @ 8D5F830 - .incbin "graphics/trainers/front_pics/dragon_tamer_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_DragonTamer:: @ 8D5FB84 - .incbin "graphics/trainers/palettes/dragon_tamer.gbapal.lz" - - .align 2 -gTrainerFrontPic_NinjaBoy:: @ 8D5FBAC - .incbin "graphics/trainers/front_pics/ninja_boy_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_NinjaBoy:: @ 8D5FE88 - .incbin "graphics/trainers/palettes/ninja_boy.gbapal.lz" - - .align 2 -gTrainerFrontPic_BattleGirl:: @ 8D5FEB0 - .incbin "graphics/trainers/front_pics/battle_girl_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_BattleGirl:: @ 8D601D0 - .incbin "graphics/trainers/palettes/battle_girl.gbapal.lz" - - .align 2 -gTrainerFrontPic_ParasolLady:: @ 8D601F8 - .incbin "graphics/trainers/front_pics/parasol_lady_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_ParasolLady:: @ 8D60530 - .incbin "graphics/trainers/palettes/parasol_lady.gbapal.lz" - - .align 2 -gTrainerFrontPic_SwimmerF:: @ 8D60558 - .incbin "graphics/trainers/front_pics/swimmer_f_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_SwimmerF:: @ 8D60828 - .incbin "graphics/trainers/palettes/swimmer_f.gbapal.lz" - - .align 2 -gTrainerFrontPic_Twins:: @ 8D60850 - .incbin "graphics/trainers/front_pics/twins_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Twins:: @ 8D60C14 - .incbin "graphics/trainers/palettes/twins.gbapal.lz" - - .align 2 -gTrainerFrontPic_Sailor:: @ 8D60C3C - .incbin "graphics/trainers/front_pics/sailor_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Sailor:: @ 8D60FEC - .incbin "graphics/trainers/palettes/sailor.gbapal.lz" - - .align 2 -gTrainerFrontPic_MagmaAdmin:: @ 8D61014 - .incbin "graphics/trainers/front_pics/magma_admin_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_MagmaAdmin:: @ 8D613EC - .incbin "graphics/trainers/palettes/magma_admin.gbapal.lz" - - .align 2 -gTrainerFrontPic_Wally:: @ 8D61414 - .incbin "graphics/trainers/front_pics/wally_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Wally:: @ 8D616E4 - .incbin "graphics/trainers/palettes/wally.gbapal.lz" - - .align 2 -gTrainerFrontPic_Brendan:: @ 8D6170C - .incbin "graphics/trainers/front_pics/brendan_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Brendan:: @ 8D61A30 - .incbin "graphics/trainers/palettes/brendan.gbapal.lz" - - .align 2 -gTrainerFrontPic_May:: @ 8D61A58 - .incbin "graphics/trainers/front_pics/may_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_May:: @ 8D61D58 - .incbin "graphics/trainers/palettes/may.gbapal.lz" - - .align 2 -gTrainerFrontPic_BugCatcher:: @ 8D61D80 - .incbin "graphics/trainers/front_pics/bug_catcher_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_BugCatcher:: @ 8D620AC - .incbin "graphics/trainers/palettes/bug_catcher.gbapal.lz" - - .align 2 -gTrainerFrontPic_PokemonRangerM:: @ 8D620D4 - .incbin "graphics/trainers/front_pics/pokemon_ranger_m_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_PokemonRangerM:: @ 8D6241C - .incbin "graphics/trainers/palettes/pokemon_ranger_m.gbapal.lz" - - .align 2 -gTrainerFrontPic_PokemonRangerF:: @ 8D62444 - .incbin "graphics/trainers/front_pics/pokemon_ranger_f_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_PokemonRangerF:: @ 8D62778 - .incbin "graphics/trainers/palettes/pokemon_ranger_f.gbapal.lz" - - .align 2 -gTrainerFrontPic_MagmaLeaderMaxie:: @ 8D627A0 - .incbin "graphics/trainers/front_pics/magma_leader_maxie_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_MagmaLeaderMaxie:: @ 8D62A94 - .incbin "graphics/trainers/palettes/magma_leader_maxie.gbapal.lz" - - .align 2 -gTrainerFrontPic_Lass:: @ 8D62ABC - .incbin "graphics/trainers/front_pics/lass_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Lass:: @ 8D62D94 - .incbin "graphics/trainers/palettes/lass.gbapal.lz" - - .align 2 -gTrainerFrontPic_YoungCouple:: @ 8D62DBC - .incbin "graphics/trainers/front_pics/young_couple_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_YoungCouple:: @ 8D6317C - .incbin "graphics/trainers/palettes/young_couple.gbapal.lz" - - .align 2 -gTrainerFrontPic_OldCouple:: @ 8D631A4 - .incbin "graphics/trainers/front_pics/old_couple_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_OldCouple:: @ 8D636B4 - .incbin "graphics/trainers/palettes/old_couple.gbapal.lz" - - .align 2 -gTrainerFrontPic_SisAndBro:: @ 8D636DC - .incbin "graphics/trainers/front_pics/sis_and_bro_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_SisAndBro:: @ 8D63B28 - .incbin "graphics/trainers/palettes/sis_and_bro.gbapal.lz" - - .align 2 -gTrainerFrontPic_Steven:: @ 8D63B50 - .incbin "graphics/trainers/front_pics/steven_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Steven:: @ 8D63E88 - .incbin "graphics/trainers/palettes/steven.gbapal.lz" - - .align 2 -gTrainerFrontPic_SalonMaidenAnabel:: @ 8D63EB0 - .incbin "graphics/trainers/front_pics/salon_maiden_anabel_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_SalonMaidenAnabel:: @ 8D641B8 - .incbin "graphics/trainers/palettes/salon_maiden_anabel.gbapal.lz" - - .align 2 -gTrainerFrontPic_DomeAceTucker:: @ 8D641E0 - .incbin "graphics/trainers/front_pics/dome_ace_tucker_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_DomeAceTucker:: @ 8D645E4 - .incbin "graphics/trainers/palettes/dome_ace_tucker.gbapal.lz" - - .align 2 -gTrainerFrontPic_PalaceMavenSpenser:: @ 8D6460C - .incbin "graphics/trainers/front_pics/palace_maven_spenser_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_PalaceMavenSpenser:: @ 8D649B0 - .incbin "graphics/trainers/palettes/palace_maven_spenser.gbapal.lz" - - .align 2 -gTrainerFrontPic_ArenaTycoonGreta:: @ 8D649D8 - .incbin "graphics/trainers/front_pics/arena_tycoon_greta_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_ArenaTycoonGreta:: @ 8D64D08 - .incbin "graphics/trainers/palettes/arena_tycoon_greta.gbapal.lz" - - .align 2 -gTrainerFrontPic_FactoryHeadNoland:: @ 8D64D30 - .incbin "graphics/trainers/front_pics/factory_head_noland_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_FactoryHeadNoland:: @ 8D650AC - .incbin "graphics/trainers/palettes/factory_head_noland.gbapal.lz" - - .align 2 -gTrainerFrontPic_PikeQueenLucy:: @ 8D650D4 - .incbin "graphics/trainers/front_pics/pike_queen_lucy_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_PikeQueenLucy:: @ 8D653C8 - .incbin "graphics/trainers/palettes/pike_queen_lucy.gbapal.lz" - - .align 2 -gTrainerFrontPic_PyramidKingBrandon:: @ 8D653F0 - .incbin "graphics/trainers/front_pics/pyramid_king_brandon_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_PyramidKingBrandon:: @ 8D6575C - .incbin "graphics/trainers/palettes/pyramid_king_brandon.gbapal.lz" - - .align 2 -gTrainerFrontPic_Red:: @ 8D65784 - .incbin "graphics/trainers/front_pics/red_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Red:: @ 8D65A90 - .incbin "graphics/trainers/palettes/red.gbapal.lz" - - .align 2 -gTrainerFrontPic_Leaf:: @ 8D65AB8 - .incbin "graphics/trainers/front_pics/leaf_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_Leaf:: @ 8D65DF4 - .incbin "graphics/trainers/palettes/leaf.gbapal.lz" - - .align 2 -gTrainerFrontPic_RubySapphireBrendan:: @ 8D65E1C - .incbin "graphics/trainers/front_pics/ruby_sapphire_brendan_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_RubySapphireBrendan:: @ 8D66130 - .incbin "graphics/trainers/palettes/ruby_sapphire_brendan.gbapal.lz" - - .align 2 -gTrainerFrontPic_RubySapphireMay:: @ 8D66158 - .incbin "graphics/trainers/front_pics/ruby_sapphire_may_front_pic.4bpp.lz" - - .align 2 -gTrainerPalette_RubySapphireMay:: @ 8D66458 - .incbin "graphics/trainers/palettes/ruby_sapphire_may.gbapal.lz" - - .align 2 -gTrainerBackPic_Brendan:: @ 8D66480 - .incbin "graphics/trainers/back_pics/brendan_back_pic.4bpp" - - .align 2 -gTrainerBackPic_May:: @ 8D68480 - .incbin "graphics/trainers/back_pics/may_back_pic.4bpp" - - .align 2 -gTrainerBackPic_Red:: @ 8D6A480 - .incbin "graphics/trainers/back_pics/red_back_pic.4bpp" - - .align 2 -gTrainerBackPic_Leaf:: @ 8D6CC80 - .incbin "graphics/trainers/back_pics/leaf_back_pic.4bpp" - - .align 2 -gTrainerBackPic_RubySapphireBrendan:: @ 8D6F480 - .incbin "graphics/trainers/back_pics/ruby_sapphire_brendan_back_pic.4bpp" - - .align 2 -gTrainerBackPic_RubySapphireMay:: @ 8D71480 - .incbin "graphics/trainers/back_pics/ruby_sapphire_may_back_pic.4bpp" - - .align 2 -gTrainerBackPic_Wally:: @ 8D73480 - .incbin "graphics/trainers/back_pics/wally_back_pic.4bpp" - - .align 2 -gTrainerBackPic_Steven:: @ 8D75480 - .incbin "graphics/trainers/back_pics/steven_back_pic.4bpp" - - .align 2 -gTrainerBackPicPalette_Red:: @ 8D77480 - .incbin "graphics/trainers/palettes/red_back_pic.gbapal.lz" - - .align 2 -gTrainerBackPicPalette_Leaf:: @ 8D774A8 - .incbin "graphics/trainers/palettes/leaf_back_pic.gbapal.lz" diff --git a/data/pokedex.s b/data/pokedex.s index e81a3d78a..3ba94dbc5 100644 --- a/data/pokedex.s +++ b/data/pokedex.s @@ -95,7 +95,7 @@ gUnknown_0856E688:: @ 856E688 .incbin "baserom.gba", 0x56e688, 0xc @ 856E694 - .include "data/graphics/pokemon/mon_footprint_table.inc" + .include "data/graphics/pokemon/footprint_table.inc" gUnknown_0856ED08:: @ 856ED08 .incbin "baserom.gba", 0x56ed08, 0x28 diff --git a/data/pokemon_icon.s b/data/pokemon_icon.s index ab3824f35..831664bb7 100644 --- a/data/pokemon_icon.s +++ b/data/pokemon_icon.s @@ -5,13 +5,13 @@ .align 2, 0 @ 857BCA8 - .include "data/graphics/pokemon/mon_icon_table.inc" + .include "data/graphics/pokemon/icon_table.inc" @ 857C388 - .include "data/graphics/pokemon/mon_icon_palette_indices.inc" + .include "data/graphics/pokemon/icon_palette_indices.inc" @ 857C540 - .include "data/graphics/pokemon/mon_icon_palette_table.inc" + .include "data/graphics/pokemon/icon_palette_table.inc" gUnknown_0857C570:: @ 857C570 .incbin "baserom.gba", 0x57c570, 0x44 -- cgit v1.2.3 From d5e7ddddb7f744a2be6410fdf7a333b4010ed478 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Fri, 6 Oct 2017 01:57:52 -0500 Subject: Extract baseroms from data2c --- data/data2b.s | 34 +- data/data2c.s | 137 ++++++-- data/graphics/pokemon/animation_delay_table.inc | 412 ++++++++++++++++++++++++ data/graphics/pokemon/front_anim_ids_table.inc | 412 ++++++++++++++++++++++++ data/pokemon_icon.s | 3 +- 5 files changed, 971 insertions(+), 27 deletions(-) create mode 100644 data/graphics/pokemon/animation_delay_table.inc create mode 100644 data/graphics/pokemon/front_anim_ids_table.inc diff --git a/data/data2b.s b/data/data2b.s index 02ef511bf..0d964fcf5 100644 --- a/data/data2b.s +++ b/data/data2b.s @@ -23,14 +23,23 @@ gUnknown_082FF3A8:: @ 82FF3A8 .byte 0x00, 0x88, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 .byte 0x00, 0x90, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 .byte 0x00, 0x98, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_082FF3C8:: @ 82FF3C8 .byte 0x00, 0xa0, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 .byte 0x00, 0xa8, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 .byte 0x00, 0xb0, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 .byte 0x00, 0xb8, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_082FF3E8:: @ 82FF3E8 .byte 0x00, 0xc0, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 .byte 0x00, 0xc8, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 .byte 0x00, 0xd0, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 .byte 0x00, 0xd8, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 + + .align 2 +gUnknown_082FF408:: @ 82FF408 .byte 0x00, 0xe0, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 .byte 0x00, 0xe8, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 .byte 0x00, 0xf0, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00 @@ -42,32 +51,53 @@ gUnknown_082FF428:: @ 82FF428 obj_frame_tiles gTrainerBackPic_Brendan + 0x0800, 0x0800 obj_frame_tiles gTrainerBackPic_Brendan + 0x1000, 0x0800 obj_frame_tiles gTrainerBackPic_Brendan + 0x1800, 0x0800 + + .align 2 +gUnknown_082FF448:: @ 82FF448 obj_frame_tiles gTrainerBackPic_May, 0x0800 obj_frame_tiles gTrainerBackPic_May + 0x0800, 0x0800 obj_frame_tiles gTrainerBackPic_May + 0x1000, 0x0800 obj_frame_tiles gTrainerBackPic_May + 0x1800, 0x0800 + + .align 2 +gUnknown_082FF468:: @ 82FF468 obj_frame_tiles gTrainerBackPic_Red, 0x0800 obj_frame_tiles gTrainerBackPic_Red + 0x0800, 0x0800 obj_frame_tiles gTrainerBackPic_Red + 0x1000, 0x0800 obj_frame_tiles gTrainerBackPic_Red + 0x1800, 0x0800 obj_frame_tiles gTrainerBackPic_Red + 0x2000, 0x0800 + + .align 2 +gUnknown_082FF490:: @ 82FF490 obj_frame_tiles gTrainerBackPic_Leaf, 0x0800 obj_frame_tiles gTrainerBackPic_Leaf + 0x0800, 0x0800 obj_frame_tiles gTrainerBackPic_Leaf + 0x1000, 0x0800 obj_frame_tiles gTrainerBackPic_Leaf + 0x1800, 0x0800 obj_frame_tiles gTrainerBackPic_Leaf + 0x2000, 0x0800 + + .align 2 +gUnknown_082FF4B8:: @ 82FF4B8 obj_frame_tiles gTrainerBackPic_RubySapphireBrendan, 0x0800 obj_frame_tiles gTrainerBackPic_RubySapphireBrendan + 0x0800, 0x0800 obj_frame_tiles gTrainerBackPic_RubySapphireBrendan + 0x1000, 0x0800 obj_frame_tiles gTrainerBackPic_RubySapphireBrendan + 0x1800, 0x0800 + + .align 2 +gUnknown_082FF4D8:: @ 82FF4D8 obj_frame_tiles gTrainerBackPic_RubySapphireMay, 0x0800 obj_frame_tiles gTrainerBackPic_RubySapphireMay + 0x0800, 0x0800 obj_frame_tiles gTrainerBackPic_RubySapphireMay + 0x1000, 0x0800 obj_frame_tiles gTrainerBackPic_RubySapphireMay + 0x1800, 0x0800 + + .align 2 +gUnknown_082FF4F8:: @ 82FF4F8 obj_frame_tiles gTrainerBackPic_Wally, 0x0800 obj_frame_tiles gTrainerBackPic_Wally + 0x0800, 0x0800 obj_frame_tiles gTrainerBackPic_Wally + 0x1000, 0x0800 obj_frame_tiles gTrainerBackPic_Wally + 0x1800, 0x0800 + + .align 2 +gUnknown_082FF518:: @ 82FF518 obj_frame_tiles gTrainerBackPic_Steven, 0x0800 obj_frame_tiles gTrainerBackPic_Steven + 0x0800, 0x0800 obj_frame_tiles gTrainerBackPic_Steven + 0x1000, 0x0800 @@ -4478,7 +4508,9 @@ gUnknown_08305D0C:: @ 8305D0C @ 8305DCC .include "data/enemy_mon_elevation.inc" - .incbin "baserom.gba", 0x305f68, 0x3b44 + .incbin "baserom.gba", 0x305f68, 0x2d54 + + .incbin "baserom.gba", 0x308cbc, 0xdf0 gUnknown_08309AAC:: @ 8309AAC .incbin "baserom.gba", 0x309aac, 0x6e0 diff --git a/data/data2c.s b/data/data2c.s index 26f237c1c..be715493c 100644 --- a/data/data2c.s +++ b/data/data2c.s @@ -11,8 +11,9 @@ @ 831C898 .include "data/battle_moves.inc" - @ 0x31d93c unreferenced unknown data -.byte 0x34, 0x00, 0x10, 0x00, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00 +@ 0x31d93c +@ unreferenced unknown data + .byte 0x34, 0x00, 0x10, 0x00, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00 @ 831D94C .include "data/pokedex_order.inc" @@ -53,56 +54,142 @@ @ 832937C .include "data/level_up_learnset_pointers.inc" -gMonFrontAnimIdsTable:: @ 83299EC - .incbin "baserom.gba", 0x3299ec, 0x19b +@ 83299EC + .include "data/graphics/pokemon/front_anim_ids_table.inc" -gMonAnimationDelayTable:: @ 8329B87 - .incbin "baserom.gba", 0x329b87, 0x19b +@ 8329B87 + .include "data/graphics/pokemon/animation_delay_table.inc" + .align 1 gUnknown_08329D22:: @ 8329D22 - .incbin "baserom.gba", 0x329d22, 0x4 +@ Masks for getting PP Up count, also PP Max values + .byte 0x03, 0x0c, 0x30, 0xc0 + .align 1 gUnknown_08329D26:: @ 8329D26 - .incbin "baserom.gba", 0x329d26, 0x4 +@ Masks for setting PP Up count + .byte 0xfc, 0xf3, 0xcf, 0x3f + .align 1 gUnknown_08329D2A:: @ 8329D2A - .incbin "baserom.gba", 0x329d2a, 0x4 +@ Values added to PP Up count + .byte 0x01, 0x04, 0x10, 0x40 + .align 1 gStatStageRatios:: @ 8329D2E - .incbin "baserom.gba", 0x329d2e, 0x1a - + .byte 0x0a, 0x28 + .byte 0x0a, 0x23 + .byte 0x0a, 0x1e + .byte 0x0a, 0x19 + .byte 0x0a, 0x14 + .byte 0x0a, 0x0f + .byte 0x0a, 0x0a + .byte 0x0f, 0x0a + .byte 0x14, 0x0a + .byte 0x19, 0x0a + .byte 0x1e, 0x0a + .byte 0x23, 0x0a + .byte 0x28, 0x0a + + .align 1 gUnknown_08329D48:: @ 8329D48 - .incbin "baserom.gba", 0x329d48, 0xc + .2byte 0x0032, 0x005f, 0x005a, 0x00b4, 0x005f, 0x005a + .align 1 gUnknown_08329D54:: @ 8329D54 - .incbin "baserom.gba", 0x329d54, 0x20 + .2byte 0x0003, 0x000a, 0x001b, 0x002b, 0x001e, 0x0043, 0x0042, 0x0019 + .2byte 0x0012, 0x000c, 0x001c, 0x0047, 0x001f, 0x0036, 0x0002, 0x0014 + .align 1 gHoldEffectToType:: @ 8329D74 - .incbin "baserom.gba", 0x329d74, 0x24 + .byte 0x1f, 0x06 + .byte 0x2a, 0x08 + .byte 0x2e, 0x04 + .byte 0x2f, 0x05 + .byte 0x30, 0x0c + .byte 0x31, 0x11 + .byte 0x32, 0x01 + .byte 0x33, 0x0d + .byte 0x34, 0x0b + .byte 0x35, 0x02 + .byte 0x36, 0x03 + .byte 0x37, 0x0f + .byte 0x38, 0x07 + .byte 0x39, 0x0e + .byte 0x3a, 0x0a + .byte 0x3b, 0x10 + .byte 0x3c, 0x00 + .byte 0x00, 0x00 + .align 2 gUnknown_08329D98:: @ 8329D98 - .incbin "baserom.gba", 0x329d98, 0x60 + spr_template 0xffff, 0x0000, gUnknown_0831ACB0, NULL, gUnknown_082FF3A8, gUnknown_082FF618, sub_8039BB4 + spr_template 0xffff, 0x0000, gUnknown_0831ACA8, NULL, gUnknown_082FF3C8, gUnknown_082FF694, oac_poke_opponent + spr_template 0xffff, 0x0000, gUnknown_0831ACB0, NULL, gUnknown_082FF3E8, gUnknown_082FF618, sub_8039BB4 + spr_template 0xffff, 0x0000, gUnknown_0831ACA8, NULL, gUnknown_082FF408, gUnknown_082FF694, oac_poke_opponent + .align 2 gUnknown_08329DF8:: @ 8329DF8 - .incbin "baserom.gba", 0x329df8, 0xc0 + spr_template 0xffff, 0x0000, gUnknown_0831ACB0, NULL, gUnknown_082FF428, gUnknown_082FF618, sub_8039BB4 + spr_template 0xffff, 0x0000, gUnknown_0831ACB0, NULL, gUnknown_082FF448, gUnknown_082FF618, sub_8039BB4 + spr_template 0xffff, 0x0000, gUnknown_0831ACB0, NULL, gUnknown_082FF468, gUnknown_082FF618, sub_8039BB4 + spr_template 0xffff, 0x0000, gUnknown_0831ACB0, NULL, gUnknown_082FF490, gUnknown_082FF618, sub_8039BB4 + spr_template 0xffff, 0x0000, gUnknown_0831ACB0, NULL, gUnknown_082FF4B8, gUnknown_082FF618, sub_8039BB4 + spr_template 0xffff, 0x0000, gUnknown_0831ACB0, NULL, gUnknown_082FF4D8, gUnknown_082FF618, sub_8039BB4 + spr_template 0xffff, 0x0000, gUnknown_0831ACB0, NULL, gUnknown_082FF4F8, gUnknown_082FF618, sub_8039BB4 + spr_template 0xffff, 0x0000, gUnknown_0831ACB0, NULL, gUnknown_082FF518, gUnknown_082FF618, sub_8039BB4 gSecretBaseTrainerClasses:: @ 8329EB8 - .incbin "baserom.gba", 0x329eb8, 0xa + .byte TRAINER_CLASS_YOUNGSTER, TRAINER_CLASS_BUG_CATCHER, TRAINER_CLASS_RICH_BOY, TRAINER_CLASS_CAMPER, TRAINER_CLASS_COOLTRAINER_1 + .byte TRAINER_CLASS_LASS, TRAINER_CLASS_SCHOOL_KID_2, TRAINER_CLASS_LADY, TRAINER_CLASS_PICNICKER, TRAINER_CLASS_COOLTRAINER_2 gUnknown_08329EC2:: @ 8329EC2 - .incbin "baserom.gba", 0x329ec2, 0x6 + .byte 0x1a, 0x1b, 0x1c, 0x1d, 0x1f, 0x1e gUnknown_08329EC8:: @ 8329EC8 - .incbin "baserom.gba", 0x329ec8, 0x6 + .byte 1, 1, 3, 2, 4, 6 gUnknown_08329ECE:: @ 8329ECE - .incbin "baserom.gba", 0x329ece, 0x1c - +@ Happiness deltas + .byte 0x05, 0x03, 0x02 + .byte 0x05, 0x03, 0x02 + .byte 0x01, 0x01, 0x00 + .byte 0x03, 0x02, 0x01 + .byte 0x01, 0x01, 0x00 + .byte 0x01, 0x01, 0x01 + .byte 0xff, 0xff, 0xff + .byte 0xfb, 0xfb, 0xf6 + .byte 0xfb, 0xfb, 0xf6 + + .align 1 gHMMoves:: @ 8329EEA - .incbin "baserom.gba", 0x329eea, 0x12 - + .2byte MOVE_CUT + .2byte MOVE_FLY + .2byte MOVE_SURF + .2byte MOVE_STRENGTH + .2byte MOVE_FLASH + .2byte MOVE_ROCK_SMASH + .2byte MOVE_WATERFALL + .2byte MOVE_DIVE + .2byte 0xffff + + .align 1 gAlteringCaveWildMonHeldItems:: @ 8329EFC - .incbin "baserom.gba", 0x329efc, 0x2c + .2byte 0, ITEM_NONE + .2byte SPECIES_MAREEP, ITEM_GANLON_BERRY + .2byte SPECIES_PINECO, ITEM_APICOT_BERRY + .2byte SPECIES_HOUNDOUR, ITEM_BIG_MUSHROOM + .2byte SPECIES_TEDDIURSA, ITEM_PETAYA_BERRY + .2byte SPECIES_AIPOM, ITEM_BERRY_JUICE + .2byte SPECIES_SHUCKLE, ITEM_BERRY_JUICE + .2byte SPECIES_STANTLER, ITEM_PETAYA_BERRY + .2byte SPECIES_SMEARGLE, ITEM_SALAC_BERRY + .align 2 +gUnknown_08329F20:: @ 8329F20 + .byte 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00 + + .align 2 gUnknown_08329F28:: @ 8329F28 - .incbin "baserom.gba", 0x329f28, 0x18 + spr_template 0xffff, 0xffff, gUnknown_08329F20, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy + diff --git a/data/graphics/pokemon/animation_delay_table.inc b/data/graphics/pokemon/animation_delay_table.inc new file mode 100644 index 000000000..55d602bab --- /dev/null +++ b/data/graphics/pokemon/animation_delay_table.inc @@ -0,0 +1,412 @@ +gMonAnimationDelayTable:: @ 8329B87 + .byte 0x00 @ SPECIES_BULBASAUR + .byte 0x00 @ SPECIES_IVYSAUR + .byte 0x00 @ SPECIES_VENUSAUR + .byte 0x00 @ SPECIES_CHARMANDER + .byte 0x00 @ SPECIES_CHARMELEON + .byte 0x00 @ SPECIES_CHARIZARD + .byte 0x00 @ SPECIES_SQUIRTLE + .byte 0x00 @ SPECIES_WARTORTLE + .byte 0x32 @ SPECIES_BLASTOISE + .byte 0x00 @ SPECIES_CATERPIE + .byte 0x00 @ SPECIES_METAPOD + .byte 0x00 @ SPECIES_BUTTERFREE + .byte 0x0a @ SPECIES_WEEDLE + .byte 0x14 @ SPECIES_KAKUNA + .byte 0x23 @ SPECIES_BEEDRILL + .byte 0x00 @ SPECIES_PIDGEY + .byte 0x19 @ SPECIES_PIDGEOTTO + .byte 0x00 @ SPECIES_PIDGEOT + .byte 0x00 @ SPECIES_RATTATA + .byte 0x00 @ SPECIES_RATICATE + .byte 0x00 @ SPECIES_SPEAROW + .byte 0x02 @ SPECIES_FEAROW + .byte 0x1e @ SPECIES_EKANS + .byte 0x00 @ SPECIES_ARBOK + .byte 0x00 @ SPECIES_PIKACHU + .byte 0x00 @ SPECIES_RAICHU + .byte 0x00 @ SPECIES_SANDSHREW + .byte 0x00 @ SPECIES_SANDSLASH + .byte 0x1c @ SPECIES_NIDORAN_F + .byte 0x00 @ SPECIES_NIDORINA + .byte 0x00 @ SPECIES_NIDOQUEEN + .byte 0x00 @ SPECIES_NIDORAN_M + .byte 0x00 @ SPECIES_NIDORINO + .byte 0x19 @ SPECIES_NIDOKING + .byte 0x00 @ SPECIES_CLEFAIRY + .byte 0x00 @ SPECIES_CLEFABLE + .byte 0x00 @ SPECIES_VULPIX + .byte 0x00 @ SPECIES_NINETALES + .byte 0x00 @ SPECIES_JIGGLYPUFF + .byte 0x00 @ SPECIES_WIGGLYTUFF + .byte 0x00 @ SPECIES_ZUBAT + .byte 0x00 @ SPECIES_GOLBAT + .byte 0x00 @ SPECIES_ODDISH + .byte 0x00 @ SPECIES_GLOOM + .byte 0x00 @ SPECIES_VILEPLUME + .byte 0x0a @ SPECIES_PARAS + .byte 0x2d @ SPECIES_PARASECT + .byte 0x14 @ SPECIES_VENONAT + .byte 0x00 @ SPECIES_VENOMOTH + .byte 0x19 @ SPECIES_DIGLETT + .byte 0x23 @ SPECIES_DUGTRIO + .byte 0x28 @ SPECIES_MEOWTH + .byte 0x14 @ SPECIES_PERSIAN + .byte 0x00 @ SPECIES_PSYDUCK + .byte 0x00 @ SPECIES_GOLDUCK + .byte 0x14 @ SPECIES_MANKEY + .byte 0x00 @ SPECIES_PRIMEAPE + .byte 0x1e @ SPECIES_GROWLITHE + .byte 0x28 @ SPECIES_ARCANINE + .byte 0x00 @ SPECIES_POLIWAG + .byte 0x05 @ SPECIES_POLIWHIRL + .byte 0x00 @ SPECIES_POLIWRATH + .byte 0x00 @ SPECIES_ABRA + .byte 0x00 @ SPECIES_KADABRA + .byte 0x00 @ SPECIES_ALAKAZAM + .byte 0x00 @ SPECIES_MACHOP + .byte 0x00 @ SPECIES_MACHOKE + .byte 0x00 @ SPECIES_MACHAMP + .byte 0x00 @ SPECIES_BELLSPROUT + .byte 0x03 @ SPECIES_WEEPINBELL + .byte 0x00 @ SPECIES_VICTREEBEL + .byte 0x00 @ SPECIES_TENTACOOL + .byte 0x00 @ SPECIES_TENTACRUEL + .byte 0x00 @ SPECIES_GEODUDE + .byte 0x00 @ SPECIES_GRAVELER + .byte 0x00 @ SPECIES_GOLEM + .byte 0x00 @ SPECIES_PONYTA + .byte 0x00 @ SPECIES_RAPIDASH + .byte 0x00 @ SPECIES_SLOWPOKE + .byte 0x00 @ SPECIES_SLOWBRO + .byte 0x00 @ SPECIES_MAGNEMITE + .byte 0x00 @ SPECIES_MAGNETON + .byte 0x00 @ SPECIES_FARFETCH_D + .byte 0x00 @ SPECIES_DODUO + .byte 0x00 @ SPECIES_DODRIO + .byte 0x00 @ SPECIES_SEEL + .byte 0x00 @ SPECIES_DEWGONG + .byte 0x00 @ SPECIES_GRIMER + .byte 0x2d @ SPECIES_MUK + .byte 0x14 @ SPECIES_SHELLDER + .byte 0x00 @ SPECIES_CLOYSTER + .byte 0x00 @ SPECIES_GASTLY + .byte 0x17 @ SPECIES_HAUNTER + .byte 0x00 @ SPECIES_GENGAR + .byte 0x00 @ SPECIES_ONIX + .byte 0x30 @ SPECIES_DROWZEE + .byte 0x28 @ SPECIES_HYPNO + .byte 0x00 @ SPECIES_KRABBY + .byte 0x00 @ SPECIES_KINGLER + .byte 0x00 @ SPECIES_VOLTORB + .byte 0x00 @ SPECIES_ELECTRODE + .byte 0x00 @ SPECIES_EXEGGCUTE + .byte 0x00 @ SPECIES_EXEGGUTOR + .byte 0x00 @ SPECIES_CUBONE + .byte 0x00 @ SPECIES_MAROWAK + .byte 0x00 @ SPECIES_HITMONLEE + .byte 0x19 @ SPECIES_HITMONCHAN + .byte 0x00 @ SPECIES_LICKITUNG + .byte 0x00 @ SPECIES_KOFFING + .byte 0x00 @ SPECIES_WEEZING + .byte 0x00 @ SPECIES_RHYHORN + .byte 0x00 @ SPECIES_RHYDON + .byte 0x00 @ SPECIES_CHANSEY + .byte 0x00 @ SPECIES_TANGELA + .byte 0x00 @ SPECIES_KANGASKHAN + .byte 0x00 @ SPECIES_HORSEA + .byte 0x00 @ SPECIES_SEADRA + .byte 0x00 @ SPECIES_GOLDEEN + .byte 0x00 @ SPECIES_SEAKING + .byte 0x00 @ SPECIES_STARYU + .byte 0x00 @ SPECIES_STARMIE + .byte 0x00 @ SPECIES_MR_MIME + .byte 0x0a @ SPECIES_SCYTHER + .byte 0x00 @ SPECIES_JYNX + .byte 0x00 @ SPECIES_ELECTABUZZ + .byte 0x00 @ SPECIES_MAGMAR + .byte 0x00 @ SPECIES_PINSIR + .byte 0x0a @ SPECIES_TAUROS + .byte 0x00 @ SPECIES_MAGIKARP + .byte 0x00 @ SPECIES_GYARADOS + .byte 0x00 @ SPECIES_LAPRAS + .byte 0x00 @ SPECIES_DITTO + .byte 0x00 @ SPECIES_EEVEE + .byte 0x00 @ SPECIES_VAPOREON + .byte 0x00 @ SPECIES_JOLTEON + .byte 0x00 @ SPECIES_FLAREON + .byte 0x00 @ SPECIES_PORYGON + .byte 0x00 @ SPECIES_OMANYTE + .byte 0x00 @ SPECIES_OMASTAR + .byte 0x00 @ SPECIES_KABUTO + .byte 0x00 @ SPECIES_KABUTOPS + .byte 0x00 @ SPECIES_AERODACTYL + .byte 0x00 @ SPECIES_SNORLAX + .byte 0x00 @ SPECIES_ARTICUNO + .byte 0x00 @ SPECIES_ZAPDOS + .byte 0x00 @ SPECIES_MOLTRES + .byte 0x00 @ SPECIES_DRATINI + .byte 0x00 @ SPECIES_DRAGONAIR + .byte 0x00 @ SPECIES_DRAGONITE + .byte 0x00 @ SPECIES_MEWTWO + .byte 0x00 @ SPECIES_MEW + .byte 0x00 @ SPECIES_CHIKORITA + .byte 0x00 @ SPECIES_BAYLEEF + .byte 0x00 @ SPECIES_MEGANIUM + .byte 0x00 @ SPECIES_CYNDAQUIL + .byte 0x00 @ SPECIES_QUILAVA + .byte 0x14 @ SPECIES_TYPHLOSION + .byte 0x00 @ SPECIES_TOTODILE + .byte 0x00 @ SPECIES_CROCONAW + .byte 0x05 @ SPECIES_FERALIGATR + .byte 0x00 @ SPECIES_SENTRET + .byte 0x00 @ SPECIES_FURRET + .byte 0x00 @ SPECIES_HOOTHOOT + .byte 0x00 @ SPECIES_NOCTOWL + .byte 0x00 @ SPECIES_LEDYBA + .byte 0x00 @ SPECIES_LEDIAN + .byte 0x00 @ SPECIES_SPINARAK + .byte 0x00 @ SPECIES_ARIADOS + .byte 0x00 @ SPECIES_CROBAT + .byte 0x00 @ SPECIES_CHINCHOU + .byte 0x00 @ SPECIES_LANTURN + .byte 0x00 @ SPECIES_PICHU + .byte 0x00 @ SPECIES_CLEFFA + .byte 0x00 @ SPECIES_IGGLYBUFF + .byte 0x00 @ SPECIES_TOGEPI + .byte 0x00 @ SPECIES_TOGETIC + .byte 0x1e @ SPECIES_NATU + .byte 0x00 @ SPECIES_XATU + .byte 0x32 @ SPECIES_MAREEP + .byte 0x00 @ SPECIES_FLAAFFY + .byte 0x0a @ SPECIES_AMPHAROS + .byte 0x00 @ SPECIES_BELLOSSOM + .byte 0x00 @ SPECIES_MARILL + .byte 0x00 @ SPECIES_AZUMARILL + .byte 0x00 @ SPECIES_SUDOWOODO + .byte 0x28 @ SPECIES_POLITOED + .byte 0x00 @ SPECIES_HOPPIP + .byte 0x00 @ SPECIES_SKIPLOOM + .byte 0x00 @ SPECIES_JUMPLUFF + .byte 0x00 @ SPECIES_AIPOM + .byte 0x00 @ SPECIES_SUNKERN + .byte 0x00 @ SPECIES_SUNFLORA + .byte 0x00 @ SPECIES_YANMA + .byte 0x00 @ SPECIES_WOOPER + .byte 0x00 @ SPECIES_QUAGSIRE + .byte 0x00 @ SPECIES_ESPEON + .byte 0x00 @ SPECIES_UMBREON + .byte 0x00 @ SPECIES_MURKROW + .byte 0x00 @ SPECIES_SLOWKING + .byte 0x00 @ SPECIES_MISDREAVUS + .byte 0x00 @ SPECIES_UNOWN + .byte 0x00 @ SPECIES_WOBBUFFET + .byte 0x00 @ SPECIES_GIRAFARIG + .byte 0x00 @ SPECIES_PINECO + .byte 0x00 @ SPECIES_FORRETRESS + .byte 0x0a @ SPECIES_DUNSPARCE + .byte 0x00 @ SPECIES_GLIGAR + .byte 0x2d @ SPECIES_STEELIX + .byte 0x00 @ SPECIES_SNUBBULL + .byte 0x00 @ SPECIES_GRANBULL + .byte 0x27 @ SPECIES_QWILFISH + .byte 0x13 @ SPECIES_SCIZOR + .byte 0x00 @ SPECIES_SHUCKLE + .byte 0x00 @ SPECIES_HERACROSS + .byte 0x00 @ SPECIES_SNEASEL + .byte 0x00 @ SPECIES_TEDDIURSA + .byte 0x00 @ SPECIES_URSARING + .byte 0x00 @ SPECIES_SLUGMA + .byte 0x00 @ SPECIES_MAGCARGO + .byte 0x00 @ SPECIES_SWINUB + .byte 0x00 @ SPECIES_PILOSWINE + .byte 0x00 @ SPECIES_CORSOLA + .byte 0x00 @ SPECIES_REMORAID + .byte 0x14 @ SPECIES_OCTILLERY + .byte 0x00 @ SPECIES_DELIBIRD + .byte 0x00 @ SPECIES_MANTINE + .byte 0x00 @ SPECIES_SKARMORY + .byte 0x00 @ SPECIES_HOUNDOUR + .byte 0x00 @ SPECIES_HOUNDOOM + .byte 0x00 @ SPECIES_KINGDRA + .byte 0x00 @ SPECIES_PHANPY + .byte 0x00 @ SPECIES_DONPHAN + .byte 0x00 @ SPECIES_PORYGON2 + .byte 0x00 @ SPECIES_STANTLER + .byte 0x00 @ SPECIES_SMEARGLE + .byte 0x00 @ SPECIES_TYROGUE + .byte 0x00 @ SPECIES_HITMONTOP + .byte 0x28 @ SPECIES_SMOOCHUM + .byte 0x00 @ SPECIES_ELEKID + .byte 0x00 @ SPECIES_MAGBY + .byte 0x00 @ SPECIES_MILTANK + .byte 0x00 @ SPECIES_BLISSEY + .byte 0x00 @ SPECIES_RAIKOU + .byte 0x00 @ SPECIES_ENTEI + .byte 0x00 @ SPECIES_SUICUNE + .byte 0x00 @ SPECIES_LARVITAR + .byte 0x00 @ SPECIES_PUPITAR + .byte 0x0a @ SPECIES_TYRANITAR + .byte 0x14 @ SPECIES_LUGIA + .byte 0x00 @ SPECIES_HO_OH + .byte 0x00 @ SPECIES_CELEBI + .byte 0x00 @ 252 + .byte 0x00 @ 253 + .byte 0x00 @ 254 + .byte 0x00 @ 255 + .byte 0x00 @ 256 + .byte 0x00 @ 257 + .byte 0x00 @ 258 + .byte 0x00 @ 259 + .byte 0x00 @ 260 + .byte 0x00 @ 261 + .byte 0x00 @ 262 + .byte 0x00 @ 263 + .byte 0x00 @ 264 + .byte 0x00 @ 265 + .byte 0x00 @ 266 + .byte 0x00 @ 267 + .byte 0x00 @ 268 + .byte 0x00 @ 269 + .byte 0x00 @ 270 + .byte 0x00 @ 271 + .byte 0x00 @ 272 + .byte 0x00 @ 273 + .byte 0x00 @ 274 + .byte 0x00 @ 275 + .byte 0x00 @ 276 + .byte 0x00 @ SPECIES_TREECKO + .byte 0x00 @ SPECIES_GROVYLE + .byte 0x00 @ SPECIES_SCEPTILE + .byte 0x00 @ SPECIES_TORCHIC + .byte 0x00 @ SPECIES_COMBUSKEN + .byte 0x00 @ SPECIES_BLAZIKEN + .byte 0x00 @ SPECIES_MUDKIP + .byte 0x00 @ SPECIES_MARSHTOMP + .byte 0x00 @ SPECIES_SWAMPERT + .byte 0x00 @ SPECIES_POOCHYENA + .byte 0x00 @ SPECIES_MIGHTYENA + .byte 0x00 @ SPECIES_ZIGZAGOON + .byte 0x00 @ SPECIES_LINOONE + .byte 0x00 @ SPECIES_WURMPLE + .byte 0x00 @ SPECIES_SILCOON + .byte 0x00 @ SPECIES_BEAUTIFLY + .byte 0x00 @ SPECIES_CASCOON + .byte 0x00 @ SPECIES_DUSTOX + .byte 0x00 @ SPECIES_LOTAD + .byte 0x00 @ SPECIES_LOMBRE + .byte 0x00 @ SPECIES_LUDICOLO + .byte 0x00 @ SPECIES_SEEDOT + .byte 0x00 @ SPECIES_NUZLEAF + .byte 0x00 @ SPECIES_SHIFTRY + .byte 0x00 @ SPECIES_NINCADA + .byte 0x00 @ SPECIES_NINJASK + .byte 0x00 @ SPECIES_SHEDINJA + .byte 0x00 @ SPECIES_TAILLOW + .byte 0x00 @ SPECIES_SWELLOW + .byte 0x00 @ SPECIES_SHROOMISH + .byte 0x00 @ SPECIES_BRELOOM + .byte 0x00 @ SPECIES_SPINDA + .byte 0x00 @ SPECIES_WINGULL + .byte 0x00 @ SPECIES_PELIPPER + .byte 0x00 @ SPECIES_SURSKIT + .byte 0x00 @ SPECIES_MASQUERAIN + .byte 0x00 @ SPECIES_WAILMER + .byte 0x0a @ SPECIES_WAILORD + .byte 0x00 @ SPECIES_SKITTY + .byte 0x00 @ SPECIES_DELCATTY + .byte 0x1e @ SPECIES_KECLEON + .byte 0x00 @ SPECIES_BALTOY + .byte 0x00 @ SPECIES_CLAYDOL + .byte 0x00 @ SPECIES_NOSEPASS + .byte 0x00 @ SPECIES_TORKOAL + .byte 0x00 @ SPECIES_SABLEYE + .byte 0x00 @ SPECIES_BARBOACH + .byte 0x00 @ SPECIES_WHISCASH + .byte 0x00 @ SPECIES_LUVDISC + .byte 0x00 @ SPECIES_CORPHISH + .byte 0x00 @ SPECIES_CRAWDAUNT + .byte 0x00 @ SPECIES_FEEBAS + .byte 0x2d @ SPECIES_MILOTIC + .byte 0x00 @ SPECIES_CARVANHA + .byte 0x00 @ SPECIES_SHARPEDO + .byte 0x00 @ SPECIES_TRAPINCH + .byte 0x00 @ SPECIES_VIBRAVA + .byte 0x00 @ SPECIES_FLYGON + .byte 0x00 @ SPECIES_MAKUHITA + .byte 0x00 @ SPECIES_HARIYAMA + .byte 0x00 @ SPECIES_ELECTRIKE + .byte 0x00 @ SPECIES_MANECTRIC + .byte 0x00 @ SPECIES_NUMEL + .byte 0x00 @ SPECIES_CAMERUPT + .byte 0x0f @ SPECIES_SPHEAL + .byte 0x00 @ SPECIES_SEALEO + .byte 0x00 @ SPECIES_WALREIN + .byte 0x00 @ SPECIES_CACNEA + .byte 0x00 @ SPECIES_CACTURNE + .byte 0x14 @ SPECIES_SNORUNT + .byte 0x00 @ SPECIES_GLALIE + .byte 0x00 @ SPECIES_LUNATONE + .byte 0x00 @ SPECIES_SOLROCK + .byte 0x00 @ SPECIES_AZURILL + .byte 0x00 @ SPECIES_SPOINK + .byte 0x0f @ SPECIES_GRUMPIG + .byte 0x00 @ SPECIES_PLUSLE + .byte 0x00 @ SPECIES_MINUN + .byte 0x00 @ SPECIES_MAWILE + .byte 0x00 @ SPECIES_MEDITITE + .byte 0x00 @ SPECIES_MEDICHAM + .byte 0x00 @ SPECIES_SWABLU + .byte 0x00 @ SPECIES_ALTARIA + .byte 0x0f @ SPECIES_WYNAUT + .byte 0x00 @ SPECIES_DUSKULL + .byte 0x1e @ SPECIES_DUSCLOPS + .byte 0x00 @ SPECIES_ROSELIA + .byte 0x00 @ SPECIES_SLAKOTH + .byte 0x00 @ SPECIES_VIGOROTH + .byte 0x00 @ SPECIES_SLAKING + .byte 0x00 @ SPECIES_GULPIN + .byte 0x00 @ SPECIES_SWALOT + .byte 0x00 @ SPECIES_TROPIUS + .byte 0x00 @ SPECIES_WHISMUR + .byte 0x00 @ SPECIES_LOUDRED + .byte 0x00 @ SPECIES_EXPLOUD + .byte 0x00 @ SPECIES_CLAMPERL + .byte 0x00 @ SPECIES_HUNTAIL + .byte 0x00 @ SPECIES_GOREBYSS + .byte 0x2d @ SPECIES_ABSOL + .byte 0x00 @ SPECIES_SHUPPET + .byte 0x00 @ SPECIES_BANETTE + .byte 0x00 @ SPECIES_SEVIPER + .byte 0x00 @ SPECIES_ZANGOOSE + .byte 0x00 @ SPECIES_RELICANTH + .byte 0x00 @ SPECIES_ARON + .byte 0x00 @ SPECIES_LAIRON + .byte 0x00 @ SPECIES_AGGRON + .byte 0x00 @ SPECIES_CASTFORM + .byte 0x00 @ SPECIES_VOLBEAT + .byte 0x00 @ SPECIES_ILLUMISE + .byte 0x00 @ SPECIES_LILEEP + .byte 0x00 @ SPECIES_CRADILY + .byte 0x00 @ SPECIES_ANORITH + .byte 0x00 @ SPECIES_ARMALDO + .byte 0x00 @ SPECIES_RALTS + .byte 0x00 @ SPECIES_KIRLIA + .byte 0x00 @ SPECIES_GARDEVOIR + .byte 0x00 @ SPECIES_BAGON + .byte 0x00 @ SPECIES_SHELGON + .byte 0x46 @ SPECIES_SALAMENCE + .byte 0x00 @ SPECIES_BELDUM + .byte 0x00 @ SPECIES_METANG + .byte 0x00 @ SPECIES_METAGROSS + .byte 0x00 @ SPECIES_REGIROCK + .byte 0x00 @ SPECIES_REGICE + .byte 0x00 @ SPECIES_REGISTEEL + .byte 0x3c @ SPECIES_KYOGRE + .byte 0x00 @ SPECIES_GROUDON + .byte 0x3c @ SPECIES_RAYQUAZA + .byte 0x00 @ SPECIES_LATIAS + .byte 0x00 @ SPECIES_LATIOS + .byte 0x00 @ SPECIES_JIRACHI + .byte 0x00 @ SPECIES_DEOXYS + .byte 0x00 @ SPECIES_CHIMECHO diff --git a/data/graphics/pokemon/front_anim_ids_table.inc b/data/graphics/pokemon/front_anim_ids_table.inc new file mode 100644 index 000000000..6e2d7fe0e --- /dev/null +++ b/data/graphics/pokemon/front_anim_ids_table.inc @@ -0,0 +1,412 @@ +gMonFrontAnimIdsTable:: @ 83299EC + .byte 0x06 @ SPECIES_BULBASAUR + .byte 0x17 @ SPECIES_IVYSAUR + .byte 0x2f @ SPECIES_VENUSAUR + .byte 0x52 @ SPECIES_CHARMANDER + .byte 0x25 @ SPECIES_CHARMELEON + .byte 0x10 @ SPECIES_CHARIZARD + .byte 0x0b @ SPECIES_SQUIRTLE + .byte 0x13 @ SPECIES_WARTORTLE + .byte 0x19 @ SPECIES_BLASTOISE + .byte 0x0b @ SPECIES_CATERPIE + .byte 0x0b @ SPECIES_METAPOD + .byte 0x1d @ SPECIES_BUTTERFREE + .byte 0x46 @ SPECIES_WEEDLE + .byte 0x20 @ SPECIES_KAKUNA + .byte 0x02 @ SPECIES_BEEDRILL + .byte 0x47 @ SPECIES_PIDGEY + .byte 0x17 @ SPECIES_PIDGEOTTO + .byte 0x29 @ SPECIES_PIDGEOT + .byte 0x43 @ SPECIES_RATTATA + .byte 0x2b @ SPECIES_RATICATE + .byte 0x18 @ SPECIES_SPEAROW + .byte 0x2b @ SPECIES_FEAROW + .byte 0x16 @ SPECIES_EKANS + .byte 0x17 @ SPECIES_ARBOK + .byte 0x2c @ SPECIES_PIKACHU + .byte 0x17 @ SPECIES_RAICHU + .byte 0x2d @ SPECIES_SANDSHREW + .byte 0x17 @ SPECIES_SANDSLASH + .byte 0x00 @ SPECIES_NIDORAN_F + .byte 0x17 @ SPECIES_NIDORINA + .byte 0x0f @ SPECIES_NIDOQUEEN + .byte 0x09 @ SPECIES_NIDORAN_M + .byte 0x13 @ SPECIES_NIDORINO + .byte 0x0f @ SPECIES_NIDOKING + .byte 0x00 @ SPECIES_CLEFAIRY + .byte 0x4a @ SPECIES_CLEFABLE + .byte 0x17 @ SPECIES_VULPIX + .byte 0x10 @ SPECIES_NINETALES + .byte 0x48 @ SPECIES_JIGGLYPUFF + .byte 0x31 @ SPECIES_WIGGLYTUFF + .byte 0x00 @ SPECIES_ZUBAT + .byte 0x1d @ SPECIES_GOLBAT + .byte 0x00 @ SPECIES_ODDISH + .byte 0x45 @ SPECIES_GLOOM + .byte 0x49 @ SPECIES_VILEPLUME + .byte 0x46 @ SPECIES_PARAS + .byte 0x0f @ SPECIES_PARASECT + .byte 0x06 @ SPECIES_VENONAT + .byte 0x4b @ SPECIES_VENOMOTH + .byte 0x10 @ SPECIES_DIGLETT + .byte 0x4c @ SPECIES_DUGTRIO + .byte 0x52 @ SPECIES_MEOWTH + .byte 0x17 @ SPECIES_PERSIAN + .byte 0x06 @ SPECIES_PSYDUCK + .byte 0x4c @ SPECIES_GOLDUCK + .byte 0x32 @ SPECIES_MANKEY + .byte 0x48 @ SPECIES_PRIMEAPE + .byte 0x25 @ SPECIES_GROWLITHE + .byte 0x02 @ SPECIES_ARCANINE + .byte 0x00 @ SPECIES_POLIWAG + .byte 0x32 @ SPECIES_POLIWHIRL + .byte 0x19 @ SPECIES_POLIWRATH + .byte 0x31 @ SPECIES_ABRA + .byte 0x09 @ SPECIES_KADABRA + .byte 0x17 @ SPECIES_ALAKAZAM + .byte 0x00 @ SPECIES_MACHOP + .byte 0x10 @ SPECIES_MACHOKE + .byte 0x31 @ SPECIES_MACHAMP + .byte 0x17 @ SPECIES_BELLSPROUT + .byte 0x0d @ SPECIES_WEEPINBELL + .byte 0x32 @ SPECIES_VICTREEBEL + .byte 0x00 @ SPECIES_TENTACOOL + .byte 0x00 @ SPECIES_TENTACRUEL + .byte 0x48 @ SPECIES_GEODUDE + .byte 0x48 @ SPECIES_GRAVELER + .byte 0x2f @ SPECIES_GOLEM + .byte 0x20 @ SPECIES_PONYTA + .byte 0x11 @ SPECIES_RAPIDASH + .byte 0x45 @ SPECIES_SLOWPOKE + .byte 0x0b @ SPECIES_SLOWBRO + .byte 0x54 @ SPECIES_MAGNEMITE + .byte 0x2c @ SPECIES_MAGNETON + .byte 0x48 @ SPECIES_FARFETCH_D + .byte 0x4c @ SPECIES_DODUO + .byte 0x41 @ SPECIES_DODRIO + .byte 0x0b @ SPECIES_SEEL + .byte 0x45 @ SPECIES_DEWGONG + .byte 0x46 @ SPECIES_GRIMER + .byte 0x30 @ SPECIES_MUK + .byte 0x12 @ SPECIES_SHELLDER + .byte 0x1d @ SPECIES_CLOYSTER + .byte 0x15 @ SPECIES_GASTLY + .byte 0x35 @ SPECIES_HAUNTER + .byte 0x3a @ SPECIES_GENGAR + .byte 0x43 @ SPECIES_ONIX + .byte 0x4f @ SPECIES_DROWZEE + .byte 0x09 @ SPECIES_HYPNO + .byte 0x03 @ SPECIES_KRABBY + .byte 0x4b @ SPECIES_KINGLER + .byte 0x00 @ SPECIES_VOLTORB + .byte 0x00 @ SPECIES_ELECTRODE + .byte 0x46 @ SPECIES_EXEGGCUTE + .byte 0x32 @ SPECIES_EXEGGUTOR + .byte 0x48 @ SPECIES_CUBONE + .byte 0x05 @ SPECIES_MAROWAK + .byte 0x16 @ SPECIES_HITMONLEE + .byte 0x09 @ SPECIES_HITMONCHAN + .byte 0x45 @ SPECIES_LICKITUNG + .byte 0x13 @ SPECIES_KOFFING + .byte 0x04 @ SPECIES_WEEZING + .byte 0x10 @ SPECIES_RHYHORN + .byte 0x13 @ SPECIES_RHYDON + .byte 0x45 @ SPECIES_CHANSEY + .byte 0x48 @ SPECIES_TANGELA + .byte 0x17 @ SPECIES_KANGASKHAN + .byte 0x12 @ SPECIES_HORSEA + .byte 0x04 @ SPECIES_SEADRA + .byte 0x0d @ SPECIES_GOLDEEN + .byte 0x1c @ SPECIES_SEAKING + .byte 0x4e @ SPECIES_STARYU + .byte 0x12 @ SPECIES_STARMIE + .byte 0x46 @ SPECIES_MR_MIME + .byte 0x02 @ SPECIES_SCYTHER + .byte 0x17 @ SPECIES_JYNX + .byte 0x2c @ SPECIES_ELECTABUZZ + .byte 0x0f @ SPECIES_MAGMAR + .byte 0x09 @ SPECIES_PINSIR + .byte 0x19 @ SPECIES_TAUROS + .byte 0x05 @ SPECIES_MAGIKARP + .byte 0x48 @ SPECIES_GYARADOS + .byte 0x17 @ SPECIES_LAPRAS + .byte 0x01 @ SPECIES_DITTO + .byte 0x17 @ SPECIES_EEVEE + .byte 0x17 @ SPECIES_VAPOREON + .byte 0x00 @ SPECIES_JOLTEON + .byte 0x17 @ SPECIES_FLAREON + .byte 0x52 @ SPECIES_PORYGON + .byte 0x51 @ SPECIES_OMANYTE + .byte 0x09 @ SPECIES_OMASTAR + .byte 0x1d @ SPECIES_KABUTO + .byte 0x0f @ SPECIES_KABUTOPS + .byte 0x47 @ SPECIES_AERODACTYL + .byte 0x0b @ SPECIES_SNORLAX + .byte 0x09 @ SPECIES_ARTICUNO + .byte 0x2c @ SPECIES_ZAPDOS + .byte 0x45 @ SPECIES_MOLTRES + .byte 0x00 @ SPECIES_DRATINI + .byte 0x10 @ SPECIES_DRAGONAIR + .byte 0x47 @ SPECIES_DRAGONITE + .byte 0x09 @ SPECIES_MEWTWO + .byte 0x0d @ SPECIES_MEW + .byte 0x00 @ SPECIES_CHIKORITA + .byte 0x00 @ SPECIES_BAYLEEF + .byte 0x17 @ SPECIES_MEGANIUM + .byte 0x52 @ SPECIES_CYNDAQUIL + .byte 0x17 @ SPECIES_QUILAVA + .byte 0x10 @ SPECIES_TYPHLOSION + .byte 0x31 @ SPECIES_TOTODILE + .byte 0x0f @ SPECIES_CROCONAW + .byte 0x0f @ SPECIES_FERALIGATR + .byte 0x00 @ SPECIES_SENTRET + .byte 0x32 @ SPECIES_FURRET + .byte 0x47 @ SPECIES_HOOTHOOT + .byte 0x17 @ SPECIES_NOCTOWL + .byte 0x52 @ SPECIES_LEDYBA + .byte 0x47 @ SPECIES_LEDIAN + .byte 0x4f @ SPECIES_SPINARAK + .byte 0x0f @ SPECIES_ARIADOS + .byte 0x00 @ SPECIES_CROBAT + .byte 0x45 @ SPECIES_CHINCHOU + .byte 0x51 @ SPECIES_LANTURN + .byte 0x1e @ SPECIES_PICHU + .byte 0x52 @ SPECIES_CLEFFA + .byte 0x0c @ SPECIES_IGGLYBUFF + .byte 0x0b @ SPECIES_TOGEPI + .byte 0x00 @ SPECIES_TOGETIC + .byte 0x31 @ SPECIES_NATU + .byte 0x09 @ SPECIES_XATU + .byte 0x00 @ SPECIES_MAREEP + .byte 0x1e @ SPECIES_FLAAFFY + .byte 0x2c @ SPECIES_AMPHAROS + .byte 0x0b @ SPECIES_BELLOSSOM + .byte 0x00 @ SPECIES_MARILL + .byte 0x4a @ SPECIES_AZUMARILL + .byte 0x46 @ SPECIES_SUDOWOODO + .byte 0x32 @ SPECIES_POLITOED + .byte 0x1c @ SPECIES_HOPPIP + .byte 0x18 @ SPECIES_SKIPLOOM + .byte 0x51 @ SPECIES_JUMPLUFF + .byte 0x32 @ SPECIES_AIPOM + .byte 0x52 @ SPECIES_SUNKERN + .byte 0x00 @ SPECIES_SUNFLORA + .byte 0x2b @ SPECIES_YANMA + .byte 0x00 @ SPECIES_WOOPER + .byte 0x16 @ SPECIES_QUAGSIRE + .byte 0x09 @ SPECIES_ESPEON + .byte 0x10 @ SPECIES_UMBREON + .byte 0x00 @ SPECIES_MURKROW + .byte 0x13 @ SPECIES_SLOWKING + .byte 0x1c @ SPECIES_MISDREAVUS + .byte 0x0a @ SPECIES_UNOWN + .byte 0x30 @ SPECIES_WOBBUFFET + .byte 0x1e @ SPECIES_GIRAFARIG + .byte 0x0b @ SPECIES_PINECO + .byte 0x10 @ SPECIES_FORRETRESS + .byte 0x00 @ SPECIES_DUNSPARCE + .byte 0x13 @ SPECIES_GLIGAR + .byte 0x0f @ SPECIES_STEELIX + .byte 0x17 @ SPECIES_SNUBBULL + .byte 0x10 @ SPECIES_GRANBULL + .byte 0x3a @ SPECIES_QWILFISH + .byte 0x02 @ SPECIES_SCIZOR + .byte 0x0b @ SPECIES_SHUCKLE + .byte 0x41 @ SPECIES_HERACROSS + .byte 0x16 @ SPECIES_SNEASEL + .byte 0x17 @ SPECIES_TEDDIURSA + .byte 0x10 @ SPECIES_URSARING + .byte 0x17 @ SPECIES_SLUGMA + .byte 0x17 @ SPECIES_MAGCARGO + .byte 0x00 @ SPECIES_SWINUB + .byte 0x0f @ SPECIES_PILOSWINE + .byte 0x03 @ SPECIES_CORSOLA + .byte 0x52 @ SPECIES_REMORAID + .byte 0x17 @ SPECIES_OCTILLERY + .byte 0x52 @ SPECIES_DELIBIRD + .byte 0x0d @ SPECIES_MANTINE + .byte 0x17 @ SPECIES_SKARMORY + .byte 0x17 @ SPECIES_HOUNDOUR + .byte 0x10 @ SPECIES_HOUNDOOM + .byte 0x42 @ SPECIES_KINGDRA + .byte 0x32 @ SPECIES_PHANPY + .byte 0x19 @ SPECIES_DONPHAN + .byte 0x00 @ SPECIES_PORYGON2 + .byte 0x00 @ SPECIES_STANTLER + .byte 0x31 @ SPECIES_SMEARGLE + .byte 0x16 @ SPECIES_TYROGUE + .byte 0x02 @ SPECIES_HITMONTOP + .byte 0x09 @ SPECIES_SMOOCHUM + .byte 0x2c @ SPECIES_ELEKID + .byte 0x00 @ SPECIES_MAGBY + .byte 0x45 @ SPECIES_MILTANK + .byte 0x00 @ SPECIES_BLISSEY + .byte 0x2c @ SPECIES_RAIKOU + .byte 0x09 @ SPECIES_ENTEI + .byte 0x10 @ SPECIES_SUICUNE + .byte 0x52 @ SPECIES_LARVITAR + .byte 0x10 @ SPECIES_PUPITAR + .byte 0x0f @ SPECIES_TYRANITAR + .byte 0x3a @ SPECIES_LUGIA + .byte 0x09 @ SPECIES_HO_OH + .byte 0x18 @ SPECIES_CELEBI + .byte 0x00 @ 252 + .byte 0x00 @ 253 + .byte 0x00 @ 254 + .byte 0x00 @ 255 + .byte 0x00 @ 256 + .byte 0x00 @ 257 + .byte 0x00 @ 258 + .byte 0x00 @ 259 + .byte 0x00 @ 260 + .byte 0x00 @ 261 + .byte 0x00 @ 262 + .byte 0x00 @ 263 + .byte 0x00 @ 264 + .byte 0x00 @ 265 + .byte 0x00 @ 266 + .byte 0x00 @ 267 + .byte 0x00 @ 268 + .byte 0x00 @ 269 + .byte 0x00 @ 270 + .byte 0x00 @ 271 + .byte 0x00 @ 272 + .byte 0x00 @ 273 + .byte 0x00 @ 274 + .byte 0x00 @ 275 + .byte 0x00 @ 276 + .byte 0x00 @ SPECIES_TREECKO + .byte 0x17 @ SPECIES_GROVYLE + .byte 0x10 @ SPECIES_SCEPTILE + .byte 0x16 @ SPECIES_TORCHIC + .byte 0x06 @ SPECIES_COMBUSKEN + .byte 0x0f @ SPECIES_BLAZIKEN + .byte 0x01 @ SPECIES_MUDKIP + .byte 0x04 @ SPECIES_MARSHTOMP + .byte 0x1e @ SPECIES_SWAMPERT + .byte 0x10 @ SPECIES_POOCHYENA + .byte 0x10 @ SPECIES_MIGHTYENA + .byte 0x03 @ SPECIES_ZIGZAGOON + .byte 0x09 @ SPECIES_LINOONE + .byte 0x00 @ SPECIES_WURMPLE + .byte 0x00 @ SPECIES_SILCOON + .byte 0x04 @ SPECIES_BEAUTIFLY + .byte 0x04 @ SPECIES_CASCOON + .byte 0x06 @ SPECIES_DUSTOX + .byte 0x00 @ SPECIES_LOTAD + .byte 0x00 @ SPECIES_LOMBRE + .byte 0x49 @ SPECIES_LUDICOLO + .byte 0x05 @ SPECIES_SEEDOT + .byte 0x00 @ SPECIES_NUZLEAF + .byte 0x02 @ SPECIES_SHIFTRY + .byte 0x00 @ SPECIES_NINCADA + .byte 0x46 @ SPECIES_NINJASK + .byte 0x1c @ SPECIES_SHEDINJA + .byte 0x1e @ SPECIES_TAILLOW + .byte 0x01 @ SPECIES_SWELLOW + .byte 0x00 @ SPECIES_SHROOMISH + .byte 0x00 @ SPECIES_BRELOOM + .byte 0x31 @ SPECIES_SPINDA + .byte 0x1b @ SPECIES_WINGULL + .byte 0x1c @ SPECIES_PELIPPER + .byte 0x00 @ SPECIES_SURSKIT + .byte 0x00 @ SPECIES_MASQUERAIN + .byte 0x01 @ SPECIES_WAILMER + .byte 0x1c @ SPECIES_WAILORD + .byte 0x00 @ SPECIES_SKITTY + .byte 0x17 @ SPECIES_DELCATTY + .byte 0x35 @ SPECIES_KECLEON + .byte 0x1d @ SPECIES_BALTOY + .byte 0x51 @ SPECIES_CLAYDOL + .byte 0x49 @ SPECIES_NOSEPASS + .byte 0x17 @ SPECIES_TORKOAL + .byte 0x15 @ SPECIES_SABLEYE + .byte 0x49 @ SPECIES_BARBOACH + .byte 0x49 @ SPECIES_WHISCASH + .byte 0x1d @ SPECIES_LUVDISC + .byte 0x10 @ SPECIES_CORPHISH + .byte 0x09 @ SPECIES_CRAWDAUNT + .byte 0x49 @ SPECIES_FEEBAS + .byte 0x22 @ SPECIES_MILOTIC + .byte 0x49 @ SPECIES_CARVANHA + .byte 0x56 @ SPECIES_SHARPEDO + .byte 0x10 @ SPECIES_TRAPINCH + .byte 0x0f @ SPECIES_VIBRAVA + .byte 0x4b @ SPECIES_FLYGON + .byte 0x0b @ SPECIES_MAKUHITA + .byte 0x34 @ SPECIES_HARIYAMA + .byte 0x00 @ SPECIES_ELECTRIKE + .byte 0x00 @ SPECIES_MANECTRIC + .byte 0x04 @ SPECIES_NUMEL + .byte 0x10 @ SPECIES_CAMERUPT + .byte 0x53 @ SPECIES_SPHEAL + .byte 0x17 @ SPECIES_SEALEO + .byte 0x0f @ SPECIES_WALREIN + .byte 0x49 @ SPECIES_CACNEA + .byte 0x04 @ SPECIES_CACTURNE + .byte 0x45 @ SPECIES_SNORUNT + .byte 0x0a @ SPECIES_GLALIE + .byte 0x0e @ SPECIES_LUNATONE + .byte 0x08 @ SPECIES_SOLROCK + .byte 0x00 @ SPECIES_AZURILL + .byte 0x56 @ SPECIES_SPOINK + .byte 0x32 @ SPECIES_GRUMPIG + .byte 0x00 @ SPECIES_PLUSLE + .byte 0x01 @ SPECIES_MINUN + .byte 0x00 @ SPECIES_MAWILE + .byte 0x05 @ SPECIES_MEDITITE + .byte 0x45 @ SPECIES_MEDICHAM + .byte 0x04 @ SPECIES_SWABLU + .byte 0x16 @ SPECIES_ALTARIA + .byte 0x32 @ SPECIES_WYNAUT + .byte 0x0a @ SPECIES_DUSKULL + .byte 0x02 @ SPECIES_DUSCLOPS + .byte 0x45 @ SPECIES_ROSELIA + .byte 0x45 @ SPECIES_SLAKOTH + .byte 0x31 @ SPECIES_VIGOROTH + .byte 0x45 @ SPECIES_SLAKING + .byte 0x00 @ SPECIES_GULPIN + .byte 0x45 @ SPECIES_SWALOT + .byte 0x10 @ SPECIES_TROPIUS + .byte 0x03 @ SPECIES_WHISMUR + .byte 0x49 @ SPECIES_LOUDRED + .byte 0x19 @ SPECIES_EXPLOUD + .byte 0x12 @ SPECIES_CLAMPERL + .byte 0x09 @ SPECIES_HUNTAIL + .byte 0x1c @ SPECIES_GOREBYSS + .byte 0x11 @ SPECIES_ABSOL + .byte 0x1c @ SPECIES_SHUPPET + .byte 0x0d @ SPECIES_BANETTE + .byte 0x17 @ SPECIES_SEVIPER + .byte 0x09 @ SPECIES_ZANGOOSE + .byte 0x1a @ SPECIES_RELICANTH + .byte 0x45 @ SPECIES_ARON + .byte 0x00 @ SPECIES_LAIRON + .byte 0x19 @ SPECIES_AGGRON + .byte 0x1d @ SPECIES_CASTFORM + .byte 0x00 @ SPECIES_VOLBEAT + .byte 0x05 @ SPECIES_ILLUMISE + .byte 0x17 @ SPECIES_LILEEP + .byte 0x19 @ SPECIES_CRADILY + .byte 0x12 @ SPECIES_ANORITH + .byte 0x10 @ SPECIES_ARMALDO + .byte 0x45 @ SPECIES_RALTS + .byte 0x00 @ SPECIES_KIRLIA + .byte 0x00 @ SPECIES_GARDEVOIR + .byte 0x19 @ SPECIES_BAGON + .byte 0x04 @ SPECIES_SHELGON + .byte 0x0f @ SPECIES_SALAMENCE + .byte 0x0f @ SPECIES_BELDUM + .byte 0x04 @ SPECIES_METANG + .byte 0x10 @ SPECIES_METAGROSS + .byte 0x01 @ SPECIES_REGIROCK + .byte 0x44 @ SPECIES_REGICE + .byte 0x09 @ SPECIES_REGISTEEL + .byte 0x2d @ SPECIES_KYOGRE + .byte 0x10 @ SPECIES_GROUDON + .byte 0x0f @ SPECIES_RAYQUAZA + .byte 0x2d @ SPECIES_LATIAS + .byte 0x10 @ SPECIES_LATIOS + .byte 0x0d @ SPECIES_JIRACHI + .byte 0x1b @ SPECIES_DEOXYS + .byte 0x1d @ SPECIES_CHIMECHO diff --git a/data/pokemon_icon.s b/data/pokemon_icon.s index 831664bb7..9d6c7ac2e 100644 --- a/data/pokemon_icon.s +++ b/data/pokemon_icon.s @@ -17,7 +17,8 @@ gUnknown_0857C570:: @ 857C570 .incbin "baserom.gba", 0x57c570, 0x44 gUnknown_0857C5B4:: @ 857C5B4 - .incbin "baserom.gba", 0x57c5b4, 0x34 + .incbin "baserom.gba", 0x57c5b4, 0x14 + .incbin "baserom.gba", 0x57c5c8, 0x20 gUnknown_0857C5E8:: @ 857C5E8 .incbin "baserom.gba", 0x57c5e8, 0x8 -- cgit v1.2.3 From db63fc1a093472ebb5b7d5a75781037026bf2fe5 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 7 Oct 2017 15:15:47 +0200 Subject: battle message huge take off --- asm/battle_frontier_2.s | 4 +- asm/battle_link_817C95C.s | 14 +- asm/battle_message.s | 694 -------------- data/battle_message.s | 2083 ------------------------------------------ include/battle.h | 2 +- include/battle_message.h | 16 +- include/battle_string_ids.h | 385 ++++++++ ld_script.txt | 3 +- src/battle_2.c | 9 +- src/battle_message.c | 1428 +++++++++++++++++++++++++++++ src/battle_script_commands.c | 27 +- sym_ewram.txt | 21 +- 12 files changed, 1857 insertions(+), 2829 deletions(-) delete mode 100644 data/battle_message.s create mode 100644 include/battle_string_ids.h create mode 100644 src/battle_message.c diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s index de5617167..9e01d22d1 100755 --- a/asm/battle_frontier_2.s +++ b/asm/battle_frontier_2.s @@ -20577,7 +20577,7 @@ _081A5328: movs r0, 0x1 negs r0, r0 strb r0, [r1, 0x1] - ldr r0, =gText_JapaneseHonorific + ldr r0, =gText_PlayerMon1Name bl BattleStringExpandPlaceholdersToDisplayedString ldr r4, =gDisplayedStringBattle adds r0, r4, 0 @@ -20586,7 +20586,7 @@ _081A5328: ldr r0, =gText_Vs movs r1, 0x10 bl sub_814F9EC - ldr r0, =gText_RivalBuffer + ldr r0, =gText_OpponentMon1Name bl BattleStringExpandPlaceholdersToDisplayedString adds r0, r4, 0 movs r1, 0x11 diff --git a/asm/battle_link_817C95C.s b/asm/battle_link_817C95C.s index 39ae59d8b..ec5baadd9 100644 --- a/asm/battle_link_817C95C.s +++ b/asm/battle_link_817C95C.s @@ -665,7 +665,7 @@ _0817D16C: bl _0817DFAC .pool _0817D1B8: - ldr r1, =gUnknown_02022F5C + ldr r1, =gBattleTextBuff1 + 4 ldrb r0, [r1] cmp r0, 0 beq _0817D1C4 @@ -917,7 +917,7 @@ _0817D3C0: bne _0817D3CC bl _0817E0A6 _0817D3CC: - ldr r1, =gUnknown_02022F6A + ldr r1, =gBattleTextBuff2 + 2 ldrh r0, [r1] cmp r0, 0xD1 bne _0817D3E8 @@ -946,7 +946,7 @@ _0817D3FE: ldrb r1, [r1] cmp r0, r1 bne _0817D436 - ldr r1, =gUnknown_02022F6A + ldr r1, =gBattleTextBuff2 + 2 ldrh r0, [r1] cmp r0, 0xD1 bne _0817D42C @@ -988,7 +988,7 @@ _0817D45C: bne _0817D468 bl _0817E0A6 _0817D468: - ldr r1, =gUnknown_02022F6A + ldr r1, =gBattleTextBuff2 + 2 ldrh r0, [r1] cmp r0, 0xD3 bne _0817D484 @@ -2182,7 +2182,7 @@ _0817DE10: b _0817DFAA .pool _0817DE58: - ldr r1, =gUnknown_02022F5A + ldr r1, =gBattleTextBuff1 + 2 ldrh r0, [r1] cmp r0, 0x73 bne _0817DE82 @@ -2204,7 +2204,7 @@ _0817DE58: ands r0, r2 strb r0, [r1] _0817DE82: - ldr r2, =gUnknown_02022F5A + ldr r2, =gBattleTextBuff1 + 2 ldrh r0, [r2] cmp r0, 0x71 bne _0817DEAA @@ -2225,7 +2225,7 @@ _0817DE82: ands r0, r2 strb r0, [r1] _0817DEAA: - ldr r1, =gUnknown_02022F5A + ldr r1, =gBattleTextBuff1 + 2 ldrh r0, [r1] cmp r0, 0x36 beq _0817DEB4 diff --git a/asm/battle_message.s b/asm/battle_message.s index b114a36f8..9afa6e399 100644 --- a/asm/battle_message.s +++ b/asm/battle_message.s @@ -5,700 +5,6 @@ .text - thumb_func_start BufferStringBattle -BufferStringBattle: @ 814E0C4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 16 - lsrs r6, r0, 16 - movs r7, 0 - ldr r4, =gStringInfo - ldr r0, =gActiveBank - mov r8, r0 - ldrb r1, [r0] - lsls r1, 9 - ldr r0, =gBattleBufferA + 4 - adds r1, r0 - str r1, [r4] - ldr r2, =gLastUsedItem - ldrh r0, [r1, 0x4] - strh r0, [r2] - ldr r2, =gLastUsedAbility - ldrb r0, [r1, 0x6] - strb r0, [r2] - ldr r5, =gBattleScripting - ldrb r0, [r1, 0x7] - strb r0, [r5, 0x17] - ldr r3, =gBattleStruct - ldr r0, [r3] - adds r0, 0x52 - ldrb r1, [r1, 0x8] - strb r1, [r0] - ldr r0, [r3] - adds r0, 0xB1 - ldr r1, [r4] - ldrb r1, [r1, 0x9] - strb r1, [r0] - ldr r1, =gStringBank - ldr r2, [r4] - ldrb r0, [r2, 0xA] - strb r0, [r1] - ldr r0, [r3] - adds r0, 0x8E - ldrb r1, [r2, 0xB] - strb r1, [r0] - movs r2, 0 - mov r12, r8 - mov r9, r5 - ldr r1, =gBattleTextBuff1 - mov r10, r1 - ldr r3, =gAbilitiesPerBank -_0814E126: - adds r0, r2, r3 - ldr r1, [r4] - adds r1, 0xC - adds r1, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x3 - ble _0814E126 - movs r2, 0 - ldr r0, =gBattleTextBuff1 - mov r8, r0 - ldr r3, =gStringInfo - ldr r5, =gBattleTextBuff2 - ldr r4, =gBattleTextBuff3 -_0814E144: - mov r0, r8 - adds r1, r2, r0 - ldr r0, [r3] - adds r0, 0x10 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r1, r2, r5 - ldr r0, [r3] - adds r0, 0x20 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r1, r2, r4 - ldr r0, [r3] - adds r0, 0x30 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r2, 0x1 - cmp r2, 0xF - ble _0814E144 - cmp r6, 0x5 - bls _0814E176 - b _0814E6B8 -_0814E176: - lsls r0, r6, 2 - ldr r1, =_0814E1B4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0814E1B4: - .4byte _0814E1CC - .4byte _0814E2AC - .4byte _0814E394 - .4byte _0814E430 - .4byte _0814E4F8 - .4byte _0814E55C -_0814E1CC: - ldr r0, =gBattleTypeFlags - ldr r2, [r0] - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _0814E26C - ldr r0, =0x02000002 - ands r0, r2 - cmp r0, 0 - beq _0814E248 - movs r0, 0x80 - lsls r0, 16 - ands r0, r2 - cmp r0, 0 - bne _0814E260 - movs r0, 0x40 - ands r0, r2 - cmp r0, 0 - beq _0814E214 - movs r0, 0x80 - lsls r0, 17 - ands r2, r0 - ldr r7, =gText_TwoTrainersWantToBattle - cmp r2, 0 - bne _0814E200 - b _0814E6D8 -_0814E200: - ldr r7, =gText_TwoTrainersWantToBattle3 - b _0814E6D8 - .pool -_0814E214: - ldr r0, =gTrainerBattleOpponent_A - ldrh r1, [r0] - movs r0, 0xC0 - lsls r0, 4 - cmp r1, r0 - bne _0814E22C - ldr r7, =gText_TrainerXYWantsToBattle - b _0814E6D8 - .pool -_0814E22C: - movs r0, 0x80 - lsls r0, 17 - ands r2, r0 - ldr r7, =gText_TrainerXWantsToBattle - cmp r2, 0 - bne _0814E23A - b _0814E6D8 -_0814E23A: - ldr r7, =gText_TrainerWantsToBattle - b _0814E6D8 - .pool -_0814E248: - movs r0, 0x80 - lsls r0, 15 - ands r0, r2 - cmp r0, 0 - bne _0814E260 - movs r0, 0x80 - lsls r0, 8 - ands r2, r0 - ldr r7, =gText_TrainerXYWantsToBattle - cmp r2, 0 - bne _0814E260 - b _0814E6D8 -_0814E260: - ldr r7, =gText_TwoTrainersWantToBattle2 - b _0814E6D8 - .pool -_0814E26C: - movs r0, 0x80 - lsls r0, 6 - ands r0, r2 - cmp r0, 0 - beq _0814E280 - ldr r7, =gText_WildPkmnAppeared2 - b _0814E6D8 - .pool -_0814E280: - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - beq _0814E290 - ldr r7, =gText_TwoWildPkmnAppeared - b _0814E6D8 - .pool -_0814E290: - movs r0, 0x80 - lsls r0, 2 - ands r2, r0 - ldr r7, =gText_WildPkmnAppeared - cmp r2, 0 - bne _0814E29E - b _0814E6D8 -_0814E29E: - ldr r7, =gText_WildPkmnAppearedPause - b _0814E6D8 - .pool -_0814E2AC: - mov r1, r12 - ldrb r0, [r1] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _0814E310 - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0814E308 - movs r0, 0x80 - lsls r0, 15 - ands r0, r1 - cmp r0, 0 - beq _0814E2DC - ldr r7, =gText_TrainerXYSentOutZGoN - b _0814E6D8 - .pool -_0814E2DC: - movs r0, 0x80 - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _0814E2F0 - ldr r7, =gText_GoTwoPkmn - b _0814E6D8 - .pool -_0814E2F0: - movs r0, 0x40 - ands r1, r0 - ldr r7, =gText_GoTwoPkmn - cmp r1, 0 - bne _0814E2FC - b _0814E6D8 -_0814E2FC: - ldr r7, =gText_EnemySentOutPkmnGoPkmn - b _0814E6D8 - .pool -_0814E308: - ldr r7, =gText_GoPkmn - b _0814E6D8 - .pool -_0814E310: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0814E368 - movs r0, 0x80 - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - bne _0814E330 - movs r0, 0x80 - lsls r0, 16 - ands r0, r1 - cmp r0, 0 - beq _0814E33C -_0814E330: - ldr r7, =gText_TwoTrainersSentPkmn - b _0814E6D8 - .pool -_0814E33C: - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0814E34C - ldr r7, =gText_TwoTrainersSentOutPkmn - b _0814E6D8 - .pool -_0814E34C: - ldr r0, =0x02000002 - ands r1, r0 - ldr r7, =gText_TrainerXYSentOutTwoPkmn - cmp r1, 0 - bne _0814E358 - b _0814E6D8 -_0814E358: - ldr r7, =gText_TrainerXSentOutTwoPkmn - b _0814E6D8 - .pool -_0814E368: - ldr r0, =0x02000002 - ands r1, r0 - cmp r1, 0 - beq _0814E380 - ldr r0, =gTrainerBattleOpponent_A - ldrh r1, [r0] - movs r0, 0xC0 - lsls r0, 4 - ldr r7, =gText_TrainerXSentOutPkmn - cmp r1, r0 - beq _0814E380 - b _0814E6D8 -_0814E380: - ldr r7, =gText_TrainerXYSentOutPkmn - b _0814E6D8 - .pool -_0814E394: - mov r1, r12 - ldrb r0, [r1] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _0814E3EC - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, 0xB1 - ldrb r2, [r0] - cmp r2, 0 - bne _0814E3BC - ldr r7, =gText_PkmnThatsEnough - b _0814E6D8 - .pool -_0814E3BC: - cmp r2, 0x1 - beq _0814E3CC - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0814E3D8 -_0814E3CC: - ldr r7, =gText_PkmnComeBack - b _0814E6D8 - .pool -_0814E3D8: - ldr r7, =gText_PkmnGoodComeBack - cmp r2, 0x2 - beq _0814E3E0 - b _0814E6D8 -_0814E3E0: - ldr r7, =gText_PkmnOkComeBack - b _0814E6D8 - .pool -_0814E3EC: - ldr r0, =gTrainerBattleOpponent_A - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 4 - ldr r2, =gBattleTypeFlags - cmp r1, r0 - beq _0814E406 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 18 - ands r0, r1 - cmp r0, 0 - beq _0814E428 -_0814E406: - ldr r0, [r2] - movs r1, 0x40 - ands r0, r1 - ldr r7, =gText_TrainerXWithdrewPkmn - cmp r0, 0 - bne _0814E414 - b _0814E6D8 -_0814E414: - ldr r7, =gText_TrainerXWithdrewPkmn2 - b _0814E6D8 - .pool -_0814E428: - ldr r7, =gText_TrainerXYWithdrewPkmn - b _0814E6D8 - .pool -_0814E430: - mov r4, r9 - ldrb r0, [r4, 0x17] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _0814E488 - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, 0xB1 - ldrb r2, [r0] - cmp r2, 0 - beq _0814E456 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0814E468 -_0814E456: - ldr r7, =gText_GoPkmn2 - b _0814E6D8 - .pool -_0814E468: - cmp r2, 0x1 - bne _0814E474 - ldr r7, =gText_DoItPkmn - b _0814E6D8 - .pool -_0814E474: - ldr r7, =gText_YourFoesWeakGetEmPkmn - cmp r2, 0x2 - beq _0814E47C - b _0814E6D8 -_0814E47C: - ldr r7, =gText_GoForItPkmn - b _0814E6D8 - .pool -_0814E488: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - ldr r0, =0x02000002 - ands r0, r1 - cmp r0, 0 - beq _0814E4DC - movs r0, 0x80 - lsls r0, 16 - ands r0, r1 - cmp r0, 0 - beq _0814E4AC - ldrb r0, [r4, 0x17] - b _0814E4EA - .pool -_0814E4AC: - movs r0, 0x40 - ands r1, r0 - cmp r1, 0 - beq _0814E4BC - ldr r7, =gText_TrainerXSentOutPkmn3 - b _0814E6D8 - .pool -_0814E4BC: - ldr r0, =gTrainerBattleOpponent_A - ldrh r1, [r0] - movs r0, 0xC0 - lsls r0, 4 - ldr r7, =gText_TrainerXSentOutPkmn2 - cmp r1, r0 - beq _0814E4CC - b _0814E6D8 -_0814E4CC: - ldr r7, =gText_TrainerXYSentOutPkmn2 - b _0814E6D8 - .pool -_0814E4DC: - movs r0, 0x80 - lsls r0, 8 - ands r1, r0 - cmp r1, 0 - beq _0814E4CC - mov r1, r9 - ldrb r0, [r1, 0x17] -_0814E4EA: - ldr r7, =gText_TrainerXYSentOutPkmn3 - cmp r0, 0x1 - beq _0814E4F2 - b _0814E6D8 -_0814E4F2: - b _0814E4CC - .pool -_0814E4F8: - mov r0, r10 - bl sub_814F8F8 - ldr r0, =gStringInfo - ldr r2, [r0] - ldrh r1, [r2] - movs r0, 0xB1 - lsls r0, 1 - cmp r1, r0 - bls _0814E534 - ldr r0, =gBattleTextBuff2 - ldr r1, =gBattleStruct - ldr r1, [r1] - adds r1, 0x8E - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - ldr r2, =gText_UnknownMoveTypes - adds r1, r2 - bl StringCopy - b _0814E544 - .pool -_0814E534: - ldr r0, =gBattleTextBuff2 - ldrh r2, [r2] - movs r1, 0xD - muls r1, r2 - ldr r2, =gMoveNames - adds r1, r2 - bl StringCopy -_0814E544: - ldr r0, =gBattleTextBuff2 - bl sub_814F950 - ldr r7, =gText_XUsedY2 - b _0814E6D8 - .pool -_0814E55C: - ldr r4, =gBattleTextBuff1 - ldrb r1, [r4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0814E5C4 - movs r0, 0x7F - ands r0, r1 - strb r0, [r4] - mov r1, r12 - ldrb r0, [r1] - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0814E58A - ldrb r1, [r4] - cmp r1, 0x3 - beq _0814E58A - movs r0, 0x3 - eors r0, r1 - strb r0, [r4] -_0814E58A: - ldr r0, =gBattleTextBuff1 - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _0814E5A4 - ldr r7, =gText_GotAwaySafely - b _0814E6D8 - .pool -_0814E5A4: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - ldr r7, =gText_WildFled - cmp r0, 0 - bne _0814E5B4 - b _0814E6D8 -_0814E5B4: - ldr r7, =gText_TwoWildFled - b _0814E6D8 - .pool -_0814E5C4: - mov r1, r12 - ldrb r0, [r1] - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0814E5E0 - ldrb r1, [r4] - cmp r1, 0x3 - beq _0814E5E0 - movs r0, 0x3 - eors r0, r1 - strb r0, [r4] -_0814E5E0: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0814E638 - ldr r0, =gBattleTextBuff1 - ldrb r0, [r0] - cmp r0, 0x2 - beq _0814E628 - cmp r0, 0x2 - bgt _0814E608 - cmp r0, 0x1 - beq _0814E60E - b _0814E6D8 - .pool -_0814E608: - cmp r0, 0x3 - beq _0814E630 - b _0814E6D8 -_0814E60E: - movs r0, 0x80 - lsls r0, 16 - ands r1, r0 - ldr r7, =gText_PlayerBeatTwo - cmp r1, 0 - beq _0814E6D8 - ldr r7, =gText_TwoEnemiesDefeated - b _0814E6D8 - .pool -_0814E628: - ldr r7, =gText_PlayerLostToTwo - b _0814E6D8 - .pool -_0814E630: - ldr r7, =gText_PlayerBattledToDrawVsTwo - b _0814E6D8 - .pool -_0814E638: - ldr r0, =gTrainerBattleOpponent_A - ldrh r1, [r0] - movs r0, 0xC0 - lsls r0, 4 - cmp r1, r0 - bne _0814E680 - ldr r0, =gBattleTextBuff1 - ldrb r0, [r0] - cmp r0, 0x2 - beq _0814E670 - cmp r0, 0x2 - bgt _0814E660 - cmp r0, 0x1 - beq _0814E666 - b _0814E6D8 - .pool -_0814E660: - cmp r0, 0x3 - beq _0814E678 - b _0814E6D8 -_0814E666: - ldr r7, =gText_PlayerDefeatedXY - b _0814E6D8 - .pool -_0814E670: - ldr r7, =gText_PlayerLostAgainst2 - b _0814E6D8 - .pool -_0814E678: - ldr r7, =gText_PlayerBattledToDraw2 - b _0814E6D8 - .pool -_0814E680: - ldr r0, =gBattleTextBuff1 - ldrb r0, [r0] - cmp r0, 0x2 - beq _0814E6A8 - cmp r0, 0x2 - bgt _0814E698 - cmp r0, 0x1 - beq _0814E69E - b _0814E6D8 - .pool -_0814E698: - cmp r0, 0x3 - beq _0814E6B0 - b _0814E6D8 -_0814E69E: - ldr r7, =gText_PlayerDefeated - b _0814E6D8 - .pool -_0814E6A8: - ldr r7, =gText_PlayerLostAgainst - b _0814E6D8 - .pool -_0814E6B0: - ldr r7, =gText_PlayerBattledToDraw - b _0814E6D8 - .pool -_0814E6B8: - movs r0, 0xBE - lsls r0, 1 - cmp r6, r0 - bls _0814E6CC - ldr r1, =gDisplayedStringBattle - movs r0, 0xFF - strb r0, [r1] - b _0814E6DE - .pool -_0814E6CC: - ldr r1, =gBattleStringsTable - adds r0, r6, 0 - subs r0, 0xC - lsls r0, 2 - adds r0, r1 - ldr r7, [r0] -_0814E6D8: - adds r0, r7, 0 - bl BattleStringExpandPlaceholdersToDisplayedString -_0814E6DE: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end BufferStringBattle - thumb_func_start BattleStringExpandPlaceholdersToDisplayedString BattleStringExpandPlaceholdersToDisplayedString: @ 814E6F0 push {lr} diff --git a/data/battle_message.s b/data/battle_message.s deleted file mode 100644 index 4c72557d8..000000000 --- a/data/battle_message.s +++ /dev/null @@ -1,2083 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -gText_Buffer36:: @ 85C9B78 - .string "{STRING 36}$" - -gText_PkmnGainedEXP:: @ 85C9B7B - .string "{STRING 0} gained{PLAYER}\n{STRING 52} EXP. Points!\p$" - -gText_EmptyString4:: @ 85C9B98 - .string "$" - -gText_ABoosted:: @ 85C9B99 - .string " a boosted$" - -gText_PkmnGrewToLv:: @ 85C9BA4 - .string "{STRING 0} grew to\nLV. {PLAYER}!{UNKNOWN_A}\p$" - -gText_PkmnLearnedMove:: @ 85C9BBA - .string "{STRING 0} learned\n{PLAYER}!{UNKNOWN_A}\p$" - -gText_TryToLearnMove1:: @ 85C9BCC - .string "{STRING 0} is trying to\nlearn {PLAYER}.\p$" - -gText_TryToLearnMove2:: @ 85C9BE7 - .string "But, {STRING 0} can’t learn\nmore than four moves.\p$" - -gText_TryToLearnMove3:: @ 85C9C12 - .string "Delete a move to make\nroom for {PLAYER}?$" - -gText_PkmnForgotMove:: @ 85C9C35 - .string "{STRING 0} forgot\n{PLAYER}.\p$" - -gText_StopLearningMove:: @ 85C9C44 - .string "{PAUSE 32}Stop learning\n{PLAYER}?$" - -gText_DidNotLearnMove:: @ 85C9C59 - .string "{STRING 0} did not learn\n{PLAYER}.\p$" - -gText_UseNextPkmn:: @ 85C9C6F - .string "Use next POKéMON?$" - -gText_AttackMissed:: @ 85C9C81 - .string "{STRING 15}’s\nattack missed!$" - -gText_PkmnProtectedItself:: @ 85C9C95 - .string "{STRING 16}\nprotected itself!$" - -gText_AvoidedDamage:: @ 85C9CAA - .string "{STRING 16} avoided\ndamage with {STRING 25}!$" - -gText_PkmnMakesGroundMiss:: @ 85C9CC5 - .string "{STRING 16} makes GROUND\nmoves miss with {STRING 25}!$" - -gText_PkmnAvoidedAttack:: @ 85C9CE9 - .string "{STRING 16} avoided\nthe attack!$" - -gText_ItDoesntAffect:: @ 85C9D00 - .string "It doesn’t affect\n{STRING 16}…$" - -gText_PkmnFainted:: @ 85C9D16 - .string "{STRING 15}\nfainted!\p$" - -gText_PkmnFainted2:: @ 85C9D23 - .string "{STRING 16}\nfainted!\p$" - -gText_PlayerGotMoney:: @ 85C9D30 - .string "{STRING 35} got ¥{STRING 0}\nfor winning!\p$" - -gText_PlayerWhiteout:: @ 85C9D49 - .string "{STRING 35} is out of\nusable POKéMON!\p$" - -gText_PlayerWhiteout2:: @ 85C9D67 - .string "{STRING 35} whited out!{PAUSE_UNTIL_PRESS}$" - -gText_PreventsEscape:: @ 85C9D78 - .string "{STRING 19} prevents\nescape with {STRING 26}!\p$" - -gText_CantEscape2:: @ 85C9D95 - .string "Can’t escape!\p$" - -gText_PkmnCantEscape2:: @ 85C9DA4 - .string "{STRING 15} can’t escape!$" - -gText_HitXTimes:: @ 85C9DB5 - .string "Hit {STRING 0} time(s)!$" - -gText_PkmnFellAsleep:: @ 85C9DC5 - .string "{STRING 17}\nfell asleep!$" - -gText_PkmnMadeSleep:: @ 85C9DD5 - .string "{STRING 19}’s {STRING 26}\nmade {STRING 17} sleep!$" - -gText_PkmnAlreadyAsleep:: @ 85C9DEC - .string "{STRING 16} is\nalready asleep!$" - -gText_PkmnAlreadyAsleep2:: @ 85C9E02 - .string "{STRING 15} is\nalready asleep!$" - -gText_PkmnWasntAffected:: @ 85C9E18 - .string "{STRING 16}\nwasn’t affected!$" - -gText_PkmnWasPoisoned:: @ 85C9E2C - .string "{STRING 17}\nwas poisoned!$" - -gText_PkmnPoisonedBy:: @ 85C9E3D - .string "{STRING 19}’s {STRING 26}\npoisoned {STRING 17}!$" - -gText_PkmnHurtByPoison:: @ 85C9E52 - .string "{STRING 15} is hurt\nby poison!$" - -gText_PkmnAlreadyPoisoned:: @ 85C9E68 - .string "{STRING 16} is already\npoisoned.$" - -gText_PkmnBadlyPoisoned:: @ 85C9E80 - .string "{STRING 17} is badly\npoisoned!$" - -gText_PkmnEnergyDrained:: @ 85C9E96 - .string "{STRING 16} had its\nenergy drained!$" - -gText_PkmnWasBurned:: @ 85C9EB1 - .string "{STRING 17} was burned!$" - -gText_PkmnBurnedBy:: @ 85C9EC0 - .string "{STRING 19}’s {STRING 26}\nburned {STRING 17}!$" - -gText_PkmnHurtByBurn:: @ 85C9ED3 - .string "{STRING 15} is hurt\nby its burn!$" - -gText_PkmnAlreadyHasBurn:: @ 85C9EEB - .string "{STRING 16} already\nhas a burn.$" - -gText_PkmnWasFrozen:: @ 85C9F02 - .string "{STRING 17} was\nfrozen solid!$" - -gText_PkmnFrozenBy:: @ 85C9F17 - .string "{STRING 19}’s {STRING 26}\nfroze {STRING 17} solid!$" - -gText_PkmnIsFrozen:: @ 85C9F2F - .string "{STRING 15} is\nfrozen solid!$" - -gText_PkmnWasDefrosted:: @ 85C9F43 - .string "{STRING 16} was\ndefrosted!$" - -gText_PkmnWasDefrosted2:: @ 85C9F55 - .string "{STRING 15} was\ndefrosted!$" - -gText_PkmnWasDefrostedBy:: @ 85C9F67 - .string "{STRING 15} was\ndefrosted by {STRING 20}!$" - -gText_PkmnWasParalyzed:: @ 85C9F7F - .string "{STRING 17} is paralyzed!\nIt may be unable to move!$" - -gText_PkmnWasParalyzedBy:: @ 85C9FAA - .string "{STRING 19}’s {STRING 26}\nparalyzed {STRING 17}!\lIt may be unable to move!$" - -gText_PkmnIsParalyzed:: @ 85C9FDA - .string "{STRING 15} is paralyzed!\nIt can’t move!$" - -gText_PkmnIsAlreadyParalyzed:: @ 85C9FFA - .string "{STRING 16} is\nalready paralyzed!$" - -gText_PkmnHealedParalysis:: @ 85CA013 - .string "{STRING 16} was\nhealed of paralysis!$" - -gText_PkmnDreamEaten:: @ 85CA02F - .string "{STRING 16}’s\ndream was eaten!$" - -gText_StatsWontIncrease:: @ 85CA045 - .string "{STRING 15}’s {STRING 0}\nwon’t go higher!$" - -gText_StatsWontDecrease:: @ 85CA05E - .string "{STRING 16}’s {STRING 0}\nwon’t go lower!$" - -gText_TeamStoppedWorking:: @ 85CA076 - .string "Your team’s {STRING 0}\nstopped working!$" - -gText_FoeStoppedWorking:: @ 85CA096 - .string "The foe’s {STRING 0}\nstopped working!$" - -gText_PkmnIsConfused:: @ 85CA0B4 - .string "{STRING 15} is\nconfused!$" - -gText_PkmnHealedConfusion:: @ 85CA0C4 - .string "{STRING 15} snapped\nout of confusion!$" - -gText_PkmnWasConfused:: @ 85CA0E1 - .string "{STRING 17} became\nconfused!$" - -gText_PkmnAlreadyConfused:: @ 85CA0F5 - .string "{STRING 16} is\nalready confused!$" - -gText_PkmnFellInLove:: @ 85CA10D - .string "{STRING 16}\nfell in love!$" - -gText_PkmnInLove:: @ 85CA11E - .string "{STRING 15} is in love\nwith {STRING 19}!$" - -gText_PkmnImmobilizedByLove:: @ 85CA135 - .string "{STRING 15} is\nimmobilized by love!$" - -gText_PkmnBlownAway:: @ 85CA150 - .string "{STRING 16} was\nblown away!$" - -gText_PkmnChangedType:: @ 85CA163 - .string "{STRING 15} transformed\ninto the {STRING 0} type!$" - -gText_PkmnFlinched:: @ 85CA184 - .string "{STRING 15} flinched!$" - -gText_PkmnRegainedHealth:: @ 85CA191 - .string "{STRING 16} regained\nhealth!$" - -gText_PkmnHPFull:: @ 85CA1A5 - .string "{STRING 16}’s\nHP is full!$" - -gText_PkmnRaisedSpDef:: @ 85CA1B6 - .string "{STRING 42}’s {STRING 20}\nraised SP. DEF!$" - -gText_PkmnRaisedSpDefALittle:: @ 85CA1CE - .string "{STRING 42}’s {STRING 20}\nraised SP. DEF a little!$" - -gText_PkmnRaisedDef:: @ 85CA1EF - .string "{STRING 42}’s {STRING 20}\nraised DEFENSE!$" - -gText_PkmnRaisedDefALittle:: @ 85CA207 - .string "{STRING 42}’s {STRING 20}\nraised DEFENSE a little!$" - -gText_PkmnCoveredByVeil:: @ 85CA228 - .string "{STRING 42}’s party is covered\nby a veil!$" - -gText_PkmnUsedSafeguard:: @ 85CA249 - .string "{STRING 16}’s party is protected\nby SAFEGUARD!$" - -gText_PkmnSafeguardExpired:: @ 85CA26F - .string "{STRING 44}’s party is no longer\nprotected by SAFEGUARD!$" - -gText_PkmnWentToSleep:: @ 85CA29F - .string "{STRING 15} went\nto sleep!$" - -gText_PkmnSleptHealthy:: @ 85CA2B1 - .string "{STRING 15} slept and\nbecame healthy!$" - -gText_PkmnWhippedWhirlwind:: @ 85CA2CE - .string "{STRING 15} whipped\nup a whirlwind!$" - -gText_PkmnTookSunlight:: @ 85CA2E9 - .string "{STRING 15} took\nin sunlight!$" - -gText_PkmnLoweredHead:: @ 85CA2FE - .string "{STRING 15} lowered\nits head!$" - -gText_PkmnIsGlowing:: @ 85CA313 - .string "{STRING 15} is glowing!$" - -gText_PkmnFlewHigh:: @ 85CA322 - .string "{STRING 15} flew\nup high!$" - -gText_PkmnDugHole:: @ 85CA333 - .string "{STRING 15} dug a hole!$" - -gText_PkmnHidUnderwater:: @ 85CA342 - .string "{STRING 15} hid\nunderwater!$" - -gText_PkmnSprangUp:: @ 85CA355 - .string "{STRING 15} sprang up!$" - -gText_PkmnSqueezedByBind:: @ 85CA363 - .string "{STRING 16} was squeezed by\n{STRING 15}’s BIND!$" - -gText_PkmnTrappedInVortex:: @ 85CA381 - .string "{STRING 16} was trapped\nin the vortex!$" - -gText_PkmnTrappedBySandTomb:: @ 85CA39F - .string "{STRING 16} was trapped\nby SAND TOMB!$" - -gText_PkmnWrappedBy:: @ 85CA3BC - .string "{STRING 16} was WRAPPED by\n{STRING 15}!$" - -gText_PkmnClamped:: @ 85CA3D2 - .string "{STRING 15} CLAMPED\n{STRING 16}!$" - -gText_PkmnHurtBy:: @ 85CA3E1 - .string "{STRING 15} is hurt\nby {STRING 0}!$" - -gText_PkmnFreedFrom:: @ 85CA3F3 - .string "{STRING 15} was freed\nfrom {STRING 0}!$" - -gText_PkmnCrashed:: @ 85CA409 - .string "{STRING 15} kept going\nand crashed!$" - -gText_PkmnShroudedInMist:: @ 85CA424 - .string "{STRING 42} became\nshrouded in MIST!$" - -gText_PkmnProtectedByMist:: @ 85CA440 - .string "{STRING 19} is protected\nby MIST!$" - -gText_PkmnGettingPumped:: @ 85CA459 - .string "{STRING 15} is getting\npumped!$" - -gText_PkmnHitWithRecoil:: @ 85CA46F - .string "{STRING 15} is hit\nwith recoil!$" - -gText_PkmnProtectedItself2:: @ 85CA486 - .string "{STRING 15} protected\nitself!$" - -gText_PkmnBuffetedBySandstorm:: @ 85CA49B - .string "{STRING 15} is buffeted\nby the sandstorm!$" - -gText_PkmnPeltedByHail:: @ 85CA4BC - .string "{STRING 15} is pelted\nby HAIL!$" - -gText_PkmnsXWoreOff:: @ 85CA4D2 - .string "{STRING 40}’s {STRING 0}\nwore off!$" - -gText_PkmnSeeded:: @ 85CA4E4 - .string "{STRING 16} was seeded!$" - -gText_PkmnEvadedAttack:: @ 85CA4F3 - .string "{STRING 16} evaded\nthe attack!$" - -gText_PkmnSappedByLeechSeed:: @ 85CA509 - .string "{STRING 15}’s health is\nsapped by LEECH SEED!$" - -gText_PkmnFastAsleep:: @ 85CA52E - .string "{STRING 15} is fast\nasleep.$" - -gText_PkmnWokeUp:: @ 85CA541 - .string "{STRING 15} woke up!$" - -gText_PkmnUproarKeptAwake:: @ 85CA54D - .string "But {STRING 19}’s UPROAR\nkept it awake!$" - -gText_PkmnWokeUpInUproar:: @ 85CA56C - .string "{STRING 15} woke up\nin the UPROAR!$" - -gText_PkmnCausedUproar:: @ 85CA586 - .string "{STRING 15} caused\nan UPROAR!$" - -gText_PkmnMakingUproar:: @ 85CA59B - .string "{STRING 15} is making\nan UPROAR!$" - -gText_PkmnCalmedDown:: @ 85CA5B3 - .string "{STRING 15} calmed down.$" - -gText_PkmnCantSleepInUproar:: @ 85CA5C3 - .string "But {STRING 16} can’t\nsleep in an UPROAR!$" - -gText_PkmnStockpiled:: @ 85CA5E4 - .string "{STRING 15} STOCKPILED\n{STRING 0}!$" - -gText_PkmnCantStockpile:: @ 85CA5F6 - .string "{STRING 15} can’t\nSTOCKPILE any more!$" - -gText_PkmnCantSleepInUproar2:: @ 85CA613 - .string "But {STRING 16} can’t\nsleep in an UPROAR!$" - -gText_UproarKeptPkmnAwake:: @ 85CA634 - .string "But the UPROAR kept\n{STRING 16} awake!$" - -gText_PkmnStayedAwakeUsing:: @ 85CA652 - .string "{STRING 16} stayed awake\nusing its {STRING 25}!$" - -gText_PkmnStoringEnergy:: @ 85CA670 - .string "{STRING 15} is storing\nenergy!$" - -gText_PkmnUnleashedEnergy:: @ 85CA686 - .string "{STRING 15} unleashed\nenergy!$" - -gText_PkmnFatigueConfusion:: @ 85CA69B - .string "{STRING 15} became\nconfused due to fatigue!$" - -gText_PkmnPickedUpItem:: @ 85CA6BE - .string "{STRING 35} picked up\n¥{STRING 0}!\p$" - -gText_PkmnUnaffected:: @ 85CA6D1 - .string "{STRING 16} is\nunaffected!$" - -gText_PkmnTransformedInto:: @ 85CA6E3 - .string "{STRING 15} transformed\ninto {STRING 0}!$" - -gText_PkmnMadeSubstitute:: @ 85CA6FB - .string "{STRING 15} made\na SUBSTITUTE!$" - -gText_PkmnHasSubstitute:: @ 85CA711 - .string "{STRING 15} already\nhas a SUBSTITUTE!$" - -gText_SubstituteDamaged:: @ 85CA72E - .string "The SUBSTITUTE took damage\nfor {STRING 16}!\p$" - -gText_PkmnSubstituteFaded:: @ 85CA752 - .string "{STRING 16}’s\nSUBSTITUTE faded!\p$" - -gText_PkmnMustRecharge:: @ 85CA76A - .string "{STRING 15} must\nrecharge!$" - -gText_PkmnRageBuilding:: @ 85CA76C - .string "{STRING 16}’s RAGE\nis building!$" - -gText_PkmnMoveWasDisabled:: @ 85CA793 - .string "{STRING 16}’s {STRING 0}\nwas disabled!$" - -gText_PkmnMoveDisabledNoMore:: @ 85CA7A9 - .string "{STRING 15} is disabled\nno more!$" - -gText_PkmnGotEncore:: @ 85CA7C1 - .string "{STRING 16} got\nan ENCORE!$" - -gText_PkmnEncoreEnded:: @ 85CA7D3 - .string "{STRING 15}’s ENCORE\nended!$" - -gText_PkmnTookAim:: @ 85CA7E6 - .string "{STRING 15} took aim\nat {STRING 16}!$" - -gText_PkmnSketchedMove:: @ 85CA7F9 - .string "{STRING 15} SKETCHED\n{STRING 0}!$" - -gText_PkmnTryingToTakeFoe:: @ 85CA809 - .string "{STRING 15} is trying\nto take its foe with it!$" - -gText_PkmnTookFoe:: @ 85CA82F - .string "{STRING 16} took\n{STRING 15} with it!$" - -gText_PkmnReducedPP:: @ 85CA843 - .string "Reduced {STRING 16}’s\n{STRING 0} by {PLAYER}!$" - -gText_PkmnStoleItem:: @ 85CA85A - .string "{STRING 15} stole\n{STRING 16}’s {STRING 22}!$" - -gText_PkmnCantEscape:: @ 85CA86C - .string "{STRING 16} can’t\nescape now!$" - -gText_PkmnFellIntoNightmare:: @ 85CA881 - .string "{STRING 16} fell into\na NIGHTMARE!$" - -gText_PkmnLockedInNightmare:: @ 85CA89B - .string "{STRING 15} is locked\nin a NIGHTMARE!$" - -gText_PkmnLaidCurse:: @ 85CA8B8 - .string "{STRING 15} cut its own HP and\nlaid a CURSE on {STRING 16}!$" - -gText_PkmnAfflictedByCurse:: @ 85CA8E2 - .string "{STRING 15} is afflicted\nby the CURSE!$" - -gText_SpikesScattered:: @ 85CA900 - .string "SPIKES were scattered all around\nthe opponent’s side!$" - -gText_PkmnHurtBySpikes:: @ 85CA936 - .string "{STRING 19} is hurt\nby SPIKES!$" - -gText_PkmnIdentified:: @ 85CA94C - .string "{STRING 15} identified\n{STRING 16}!$" - -gText_PkmnPerishCountFell:: @ 85CA95E - .string "{STRING 15}’s PERISH count\nfell to {STRING 0}!$" - -gText_PkmnBracedItself:: @ 85CA97C - .string "{STRING 15} braced\nitself!$" - -gText_PkmnEnduredHit:: @ 85CA98E - .string "{STRING 16} ENDURED\nthe hit!$" - -gText_MagnitudeStrength:: @ 85CA9A2 - .string "MAGNITUDE {STRING 0}!$" - -gText_PkmnCutHPMaxedAttack:: @ 85CA9B0 - .string "{STRING 15} cut its own HP\nand maximized ATTACK!$" - -gText_PkmnCopiedStatChanges:: @ 85CA9D8 - .string "{STRING 15} copied\n{STRING 16}’s stat changes!$" - -gText_PkmnGotFree:: @ 85CA9F5 - .string "{STRING 15} got free of\n{STRING 16}’s {STRING 0}!$" - -gText_PkmnShedLeechSeed:: @ 85CAA0D - .string "{STRING 15} shed\nLEECH SEED!$" - -gText_PkmnBlewAwaySpikes:: @ 85CAA21 - .string "{STRING 15} blew away\nSPIKES!$" - -gText_PkmnFledFromBattle:: @ 85CAA36 - .string "{STRING 15} fled from\nbattle!$" - -gText_PkmnForesawAttack:: @ 85CAA4B - .string "{STRING 15} foresaw\nan attack!$" - -gText_PkmnTookAttack:: @ 85CAA61 - .string "{STRING 16} took the\n{STRING 0} attack!$" - -gText_PkmnChoseXAsDestiny:: @ 85CAA78 - .string "{STRING 15} chose\n{STRING 20} as its destiny!$" - -gText_PkmnAttack:: @ 85CAA94 - .string "{STRING 0}’s attack!$" - -gText_PkmnCenterAttention:: @ 85CAAA1 - .string "{STRING 15} became the\ncenter of attention!$" - -gText_PkmnChargingPower:: @ 85CAAC4 - .string "{STRING 15} began\ncharging power!$" - -gText_NaturePowerTurnedInto:: @ 85CAADD - .string "NATURE POWER turned into\n{STRING 20}!$" - -gText_PkmnStatusNormal:: @ 85CAAFA - .string "{STRING 15}’s status\nreturned to normal!$" - -gText_PkmnSubjectedToTorment:: @ 85CAB1A - .string "{STRING 16} was subjected\nto TORMENT!$" - -gText_PkmnTighteningFocus:: @ 85CAB37 - .string "{STRING 15} is tightening\nits focus!$" - -gText_PkmnFellForTaunt:: @ 85CAB53 - .string "{STRING 16} fell for\nthe TAUNT!$" - -gText_PkmnReadyToHelp:: @ 85CAB6A - .string "{STRING 15} is ready to\nhelp {STRING 16}!$" - -gText_PkmnSwitchedItems:: @ 85CAB82 - .string "{STRING 15} switched\nitems with its opponent!$" - -gText_PkmnObtainedX:: @ 85CABA7 - .string "{STRING 15} obtained\n{STRING 0}.$" - -gText_PkmnObtainedX2:: @ 85CABB7 - .string "{STRING 16} obtained\n{PLAYER}.$" - -gText_PkmnObtainedXYObtainedZ:: @ 85CABC7 - .string "{STRING 15} obtained\n{STRING 0}.\p{STRING 16} obtained\n{PLAYER}.$" - -gText_PkmnCopiedFoe:: @ 85CAB82 - .string "{STRING 15} copied\n{STRING 16}’s {STRING 25}!$" - -gText_PkmnMadeWish:: @ 85CABFA - .string "{STRING 15} made a WISH!$" - -gText_PkmnWishCameTrue:: @ 85CAC0A - .string "{STRING 0}’s WISH\ncame true!$" - -gText_PkmnPlantedRoots:: @ 85CAC1F - .string "{STRING 15} planted its roots!$" - -gText_PkmnAbsorbedNutrients:: @ 85CAC35 - .string "{STRING 15} absorbed\nnutrients with its roots!$" - -gText_PkmnAnchoredItself:: @ 85CAC5B - .string "{STRING 16} anchored\nitself with its roots!$" - -gText_PkmnWasMadeDrowsy:: @ 85CAC7E - .string "{STRING 15} made\n{STRING 16} drowsy!$" - -gText_PkmnKnockedOff:: @ 85CAC91 - .string "{STRING 15} knocked off\n{STRING 16}’s {STRING 22}!$" - -gText_PkmnSwappedAbilities:: @ 85CACA9 - .string "{STRING 15} swapped abilities\nwith its opponent!$" - -gText_PkmnSealedOpponentMove:: @ 85CACD1 - .string "{STRING 15} sealed the\nopponent’s move(s)!$" - -gText_PkmnWantsGrudge:: @ 85CACF3 - .string "{STRING 15} wants the\nopponent to bear a GRUDGE!$" - -gText_PkmnLostPPGrudge:: @ 85CAD1B - .string "{STRING 15}’s {STRING 0} lost\nall its PP due to the GRUDGE!$" - -gText_PkmnShroudedItself:: @ 85CAD46 - .string "{STRING 15} shrouded\nitself in {STRING 20}!$" - -gText_PkmnMoveBounced:: @ 85CAD60 - .string "{STRING 15}’s {STRING 20}\nwas bounced back by MAGIC COAT!$" - -gText_PkmnWaitsForTarget:: @ 85CAD88 - .string "{STRING 15} waits for a target\nto make a move!$" - -gText_PkmnSnatchedMove:: @ 85CADAE - .string "{STRING 16} SNATCHED\n{STRING 19}’s move!$" - -gText_ElectricityWeakened:: @ 85CADC5 - .string "Electricity’s power was\nweakened!$" - -gText_FireWeakened:: @ 85CADE7 - .string "Fire’s power was\nweakened!$" - -gText_XFoundOneY:: @ 85CAE02 - .string "{STRING 15} found\none {STRING 22}!$" - -gText_SoothingAroma:: @ 85CAE13 - .string "A soothing aroma wafted\nthrough the area!$" - -gText_ItemsCantBeUsedNow:: @ 85CAE3D - .string "Items can’t be used now.{PAUSE 64}$" - -gText_ForXCommaYZ:: @ 85CAE59 - .string "For {STRING 19},\n{STRING 22} {STRING 0}$" - -gText_PkmnUsedXToGetPumped:: @ 85CAE67 - .string "{STRING 19} used\n{STRING 22} to get pumped!$" - -gText_PkmnLostFocus:: @ 85CAE81 - .string "{STRING 15} lost its\nfocus and couldn’t move!$" - -gText_PkmnWasDraggedOut:: @ 85CAEA6 - .string "{STRING 16} was\ndragged out!\p$" - -gText_TheWallShattered:: @ 85CAEBB - .string "The wall shattered!$" - -gText_ButNoEffect:: @ 85CAECF - .string "But it had no effect!$" - -gText_PkmnHasNoMovesLeft:: @ 85CAEE5 - .string "{STRING 18} has no\nmoves left!\p$" - -gText_PkmnMoveIsDisabled:: @ 85CAEFC - .string "{STRING 18}’s {STRING 20}\nis disabled!\p$" - -gText_PkmnCantUseMoveTorment:: @ 85CAF12 - .string "{STRING 18} can’t use the same\nmove in a row due to the TORMENT!\p$" - -gText_PkmnCantUseMoveTaunt:: @ 85CAF4B - .string "{STRING 18} can’t use\n{STRING 20} after the TAUNT!\p$" - -gText_PkmnCantUseMoveSealed:: @ 85CAF6D - .string "{STRING 18} can’t use the\nsealed {STRING 20}!\p$" - -gText_PkmnMadeItRain:: @ 85CAF8A - .string "{STRING 19}’s {STRING 26}\nmade it rain!$" - -gText_PkmnRaisedSpeed:: @ 85CAFA0 - .string "{STRING 19}’s {STRING 26}\nraised its SPEED!$" - -gText_PkmnProtectedBy:: @ 85CAFBA - .string "{STRING 16} was protected\nby {STRING 25}!$" - -gText_PkmnPreventsUsage:: @ 85CAFD2 - .string "{STRING 16}’s {STRING 25}\nprevents {STRING 15}\lfrom using {STRING 20}!$" - -gText_PkmnRestoredHPUsing:: @ 85CAFF5 - .string "{STRING 16} restored HP\nusing its {STRING 25}!$" - -gText_PkmnsXMadeYUseless:: @ 85CB012 - .string "{STRING 16}’s {STRING 25}\nmade {STRING 20} useless!$" - -gText_PkmnChangedTypeWith:: @ 85CB02B - .string "{STRING 16}’s {STRING 25}\nmade it the {STRING 0} type!$" - -gText_PkmnPreventsParalysisWith:: @ 85CB048 - .string "{STRING 17}’s {STRING 25}\nprevents paralysis!$" - -gText_PkmnPreventsRomanceWith:: @ 85CB064 - .string "{STRING 16}’s {STRING 25}\nprevents romance!$" - -gText_PkmnPreventsPoisoningWith:: @ 85CB07E - .string "{STRING 17}’s {STRING 25}\nprevents poisoning!$" - -gText_PkmnPreventsConfusionWith:: @ 85CB09A - .string "{STRING 16}’s {STRING 25}\nprevents confusion!$" - -gText_PkmnRaisedFirePowerWith:: @ 85CB0B6 - .string "{STRING 16}’s {STRING 25}\nraised its FIRE power!$" - -gText_PkmnAnchorsItselfWith:: @ 85CB0D5 - .string "{STRING 16} anchors\nitself with {STRING 25}!$" - -gText_PkmnCutsAttackWith:: @ 85CB0F0 - .string "{STRING 19}’s {STRING 26}\ncuts {STRING 16}’s ATTACK!$" - -gText_PkmnPreventsStatLossWith:: @ 85CB10A - .string "{STRING 19}’s {STRING 26}\nprevents stat loss!$" - -gText_PkmnHurtsWith:: @ 85CB126 - .string "{STRING 16}’s {STRING 25}\nhurt {STRING 15}!$" - -gText_PkmnTraced:: @ 85CB137 - .string "{STRING 19} TRACED\n{STRING 0}’s {PLAYER}!$" - -gText_PkmnsXPreventsBurns:: @ 85CB14A - .string "{STRING 17}’s {STRING 27}\nprevents burns!$" - -gText_PkmnsXBlocksY:: @ 85CB162 - .string "{STRING 16}’s {STRING 25}\nblocks {STRING 20}!$" - -gText_PkmnsXBlocksY2:: @ 85CB175 - .string "{STRING 19}’s {STRING 26}\nblocks {STRING 20}!$" - -gText_PkmnsXRestoredHPALittle2:: @ 85CB188 - .string "{STRING 15}’s {STRING 24}\nrestored its HP a little!$" - -gText_PkmnsXWhippedUpSandstorm:: @ 85CB1AA - .string "{STRING 19}’s {STRING 26}\nwhipped up a sandstorm!$" - -gText_PkmnsXIntensifiedSun:: @ 85CB1CA - .string "{STRING 19}’s {STRING 26}\nintensified the sun’s rays!$" - -gText_PkmnsXPreventsYLoss:: @ 85CB1EE - .string "{STRING 19}’s {STRING 26}\nprevents {STRING 0} loss!$" - -gText_PkmnsXInfatuatedY:: @ 85CB208 - .string "{STRING 16}’s {STRING 25}\ninfatuated {STRING 15}!$" - -gText_PkmnsXMadeYIneffective:: @ 85CB21F - .string "{STRING 16}’s {STRING 25}\nmade {STRING 20} ineffective!$" - -gText_PkmnsXCuredYProblem:: @ 85CB23C - .string "{STRING 19}’s {STRING 26}\ncured its {STRING 0} problem!$" - -gText_ItSuckedLiquidOoze:: @ 85CB25A - .string "It sucked up the\nLIQUID OOZE!$" - -gText_PkmnTransformed:: @ 85CB278 - .string "{STRING 19} transformed!$" - -gText_PkmnsXTookAttack:: @ 85CB288 - .string "{STRING 16}’s {STRING 25}\ntook the attack!$" - -gText_PkmnsXPreventsSwitching:: @ 85CB2A1 - .string "{STRING 0}’s {STRING 23}\nprevents switching!\p$" - -gText_PreventedFromWorking:: @ 85CB2BE - .string "{STRING 16}’s {STRING 25}\nprevented {STRING 19}’s\l{STRING 0} from working!$" - -gText_PkmnsXMadeItIneffective:: @ 85CB2E6 - .string "{STRING 19}’s {STRING 26}\nmade it ineffective!$" - -gText_PkmnsXPreventsFlinching:: @ 85CB303 - .string "{STRING 17}’s {STRING 27}\nprevents flinching!$" - -gText_PkmnsXPreventsYsZ:: @ 85CB31F - .string "{STRING 15}’s {STRING 24}\nprevents {STRING 16}’s\l{STRING 25} from working!$" - -gText_PkmnsXCuredItsYProblem:: @ 85CB346 - .string "{STRING 19}’s {STRING 26}\ncured its {STRING 0} problem!$" - -gText_PkmnsXHadNoEffectOnY:: @ 85CB364 - .string "{STRING 19}’s {STRING 26}\nhad no effect on {STRING 17}!$" - -gText_StatSharply:: @ 85CB381 - .string "sharply $" - -gText_StatRose:: @ 85CB38A - .string "rose!$" - -gText_StatHarshly:: @ 85CB390 - .string "harshly $" - -gText_StatFell:: @ 85CB399 - .string "fell!$" - -gText_PkmnsStatChanged:: @ 85CB39F - .string "{STRING 15}’s {STRING 0}\n{PLAYER}$" - -gText_PkmnsStatChanged2:: @ 85CB3AA - .string "{STRING 16}’s {STRING 0}\n{PLAYER}$" - -gText_UsingXTheYOfZN:: @ 85CB3B5 - .string "Using {STRING 22}, the {STRING 0}\nof {STRING 19} {PLAYER}$" - -gText_PkmnsStatChanged3:: @ 85CB3CF - .string "{STRING 15}’s {STRING 0}\n{PLAYER}$" - -gText_PkmnsStatChanged4:: @ 85CB3DA - .string "{STRING 16}’s {STRING 0}\n{PLAYER}$" - -gText_StatsWontIncrease2:: @ 85CB3E5 - .string "{STRING 15}’s stats won’t\ngo any higher!$" - -gText_StatsWontDecrease2:: @ 85CB405 - .string "{STRING 16}’s stats won’t\ngo any lower!$" - -gText_CriticalHit:: @ 85CB424 - .string "A critical hit!$" - -gText_OneHitKO:: @ 85CB434 - .string "It’s a one-hit KO!$" - -gText_123Poof:: @ 85CB447 - .string "{PAUSE 32}1, {PAUSE 15}2, and{PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE 0x0038}Poof!\p$" - -gText_AndEllipsis:: @ 85CB473 - .string "And…\p$" - -gText_HMMovesCantBeForgotten:: @ 85CB479 - .string "HM moves can’t be\nforgotten now.\p$" - -gText_NotVeryEffective:: @ 85CB49B - .string "It’s not very effective…$" - -gText_SuperEffective:: @ 85CB4B4 - .string "It’s super effective!$" - -gText_GotAwaySafely:: @ 85CB4CA - .string "{PLAY_SE 0x0011}Got away safely!\p$" - -gText_PkmnFledUsingIts:: @ 85CB4E0 - .string "{PLAY_SE 0x0011}{STRING 15} fled\nusing its {STRING 22}!\p$" - -gText_PkmnFledUsing:: @ 85CB4FB - .string "{PLAY_SE 0x0011}{STRING 15} fled\nusing {STRING 24}!\p$" - -gText_WildPkmnFled:: @ 85CB512 - .string "{PLAY_SE 0x0011}Wild {STRING 0} fled!$" - -gText_PlayerDefeated:: @ 85CB524 - .string "Player defeated\n{STRING 32}!$" - -gText_PlayerBeatTwo:: @ 85CB538 - .string "Player beat {STRING 32}\nand {STRING 33}!$" - -gText_PlayerLostAgainst:: @ 85CB54F - .string "Player lost against\n{STRING 32}!$" - -gText_PlayerLostToTwo:: @ 85CB567 - .string "Player lost to {STRING 32}\nand {STRING 33}!$" - -gText_PlayerBattledToDraw:: @ 85CB581 - .string "Player battled to a draw against\n{STRING 32}!$" - -gText_PlayerBattledToDrawVsTwo:: @ 85CB5A6 - .string "Player battled to a draw against\n{STRING 32} and {STRING 33}!$" - -gText_WildFled:: @ 85CB5D2 - .string "{PLAY_SE 0x0011}{STRING 32} fled!$" - -gText_TwoWildFled:: @ 85CB5DF - .string "{PLAY_SE 0x0011}{STRING 32} and\n{STRING 33} fled!$" - -gText_NoRunningFromTrainers:: @ 85CB5F3 - .string "No! There’s no running\nfrom a TRAINER battle!\p$" - -gText_CantEscape:: @ 85CB622 - .string "Can’t escape!\p$" - -gText_DontLeaveBirch:: @ 85CB631 - .string "PROF. BIRCH: Don’t leave me like this!\p$" - -gText_ButNothingHappened:: @ 85CB659 - .string "But nothing happened!$" - -gText_ButItFailed:: @ 85CB66F - .string "But it failed!$" - -gText_ItHurtConfusion:: @ 85CB67E - .string "It hurt itself in its\nconfusion!$" - -gText_MirrorMoveFailed:: @ 85CB69F - .string "The MIRROR MOVE failed!$" - -gText_StartedToRain:: @ 85CB6B7 - .string "It started to rain!$" - -gText_DownpourStarted:: @ 85CB6CB - .string "A downpour started!$" - -gText_RainContinues:: @ 85CB6DF - .string "Rain continues to fall.$" - -gText_DownpourContinues:: @ 85CB6F7 - .string "The downpour continues.$" - -gText_RainStopped:: @ 85CB70F - .string "The rain stopped.$" - -gText_SandstormBrewed:: @ 85CB721 - .string "A sandstorm brewed!$" - -gText_SandstormRages:: @ 85CB735 - .string "The sandstorm rages.$" - -gText_SandstormSubsided:: @ 85CB74A - .string "The sandstorm subsided.$" - -gText_SunlightGotBright:: @ 85CB762 - .string "The sunlight got bright!$" - -gText_SunlightStrong:: @ 85CB77B - .string "The sunlight is strong.$" - -gText_SunlightFaded:: @ 85CB793 - .string "The sunlight faded.$" - -gText_StartedHail:: @ 85CB7A7 - .string "It started to hail!$" - -gText_HailContinues:: @ 85CB7BB - .string "Hail continues to fall.$" - -gText_HailStopped:: @ 85CB7D3 - .string "The hail stopped.$" - -gText_FailedToSpitUp:: @ 85CB7E5 - .string "But it failed to SPIT UP\na thing!$" - -gText_FailedToSwallow:: @ 85CB807 - .string "But it failed to SWALLOW\na thing!$" - -gText_WindBecameHeatWave:: @ 85CB829 - .string "The wind turned into a\nHEAT WAVE!$" - -gText_StatChangesGone:: @ 85CB84B - .string "All stat changes were\neliminated!$" - -gText_CoinsScattered:: @ 85CB86D - .string "Coins scattered everywhere!$" - -gText_TooWeakForSubstitute:: @ 85CB889 - .string "It was too weak to make\na SUBSTITUTE!$" - -gText_SharedPain:: @ 85CB8AF - .string "The battlers shared\ntheir pain!$" - -gText_BellChimed:: @ 85CB8CF - .string "A bell chimed!$" - -gText_FaintInThree:: @ 85CB8DE - .string "All affected POKéMON will\nfaint in three turns!$" - -gText_NoPPLeft:: @ 85CB90E - .string "There’s no PP left for\nthis move!\p$" - -gText_ButNoPPLeft:: @ 85CB931 - .string "But there was no PP left\nfor the move!$" - -gText_PkmnIgnoresAsleep:: @ 85CB958 - .string "{STRING 15} ignored\norders while asleep!$" - -gText_PkmnIgnoredOrders:: @ 85CB978 - .string "{STRING 15} ignored\norders!$" - -gText_PkmnBeganToNap:: @ 85CB98B - .string "{STRING 15} began to nap!$" - -gText_PkmnLoafing:: @ 85CB99C - .string "{STRING 15} is\nloafing around!$" - -gText_PkmnWontObey:: @ 85CB9B2 - .string "{STRING 15} won’t\nobey!$" - -gText_PkmnTurnedAway:: @ 85CB9C1 - .string "{STRING 15} turned away!$" - -gText_PkmnPretendNotNotice:: @ 85CB9D1 - .string "{STRING 15} pretended\nnot to notice!$" - -gText_EnemyAboutToSwitchPkmn:: @ 85CB9ED - .string "{STRING 28} {STRING 29} is\nabout to use {PLAYER}.\pWill {STRING 35} change\nPOKéMON?$" - -gText_PkmnLearnedMove2:: @ 85CBA1F - .string "{STRING 15} learned\n{STRING 0}!$" - -gText_PlayerDefeatedXY:: @ 85CBA2E - .string "Player defeated\n{STRING 28} {STRING 29}!\p$" - -gText_CreptCloser:: @ 85CBA46 - .string "{STRING 35} crept closer to\n{RIVAL}!$" - -gText_CantGetCloser:: @ 85CBA5D - .string "{STRING 35} can’t get any closer!$" - -gText_PkmnWatchingCarefully:: @ 85CBA76 - .string "{RIVAL} is watching\ncarefully!$" - -gText_PkmnCuriousAboutX:: @ 85CBA90 - .string "{RIVAL} is curious about\nthe {STRING 0}!$" - -gText_PkmnEnthralledByX:: @ 85CBAAC - .string "{RIVAL} is enthralled by\nthe {STRING 0}!$" - -gText_PkmnIgnoredX:: @ 85CBAC8 - .string "{RIVAL} completely ignored\nthe {STRING 0}!$" - -gText_ThrewPokeblockAtPkmn:: @ 85CBAE6 - .string "{STRING 35} threw a {POKEBLOCK}\nat the {RIVAL}!$" - -gText_OutOfSafariBalls:: @ 85CBB02 - .string "{PLAY_SE 0x0049}ANNOUNCER: You’re out of\nSAFARI BALLS! Game over!\p$" - - .string "{RIVAL} appeared!\p$" - -gText_WildPkmnAppeared:: @ 85CBB47 - .string "Wild {RIVAL} appeared!\p$" - -gText_WildPkmnAppeared2:: @ 85CBB5A - .string "Wild {RIVAL} appeared!\p$" - -gText_WildPkmnAppearedPause:: @ 85CBB6D - .string "Wild {RIVAL} appeared!{PAUSE 127}$" - -gText_TwoWildPkmnAppeared:: @ 85CBB82 - .string "Wild {RIVAL} and\n{AQUA} appeared!\p$" - -gText_TrainerXYWantsToBattle:: @ 85CBB9C - .string "{STRING 28} {STRING 29}\nwould like to battle!\p$" - -gText_TrainerXWantsToBattle:: @ 85CBBB9 - .string "{STRING 32}\nwants to battle!$" - -gText_TwoTrainersWantToBattle:: @ 85CBBCD - .string "{STRING 32} and {STRING 33}\nwant to battle!$" - -gText_TrainerXYSentOutPkmn:: @ 85CBBE7 - .string "{STRING 28} {STRING 29} sent\nout {RIVAL}!$" - -gText_TrainerXYSentOutTwoPkmn:: @ 85CBBFA - .string "{STRING 28} {STRING 29} sent\nout {RIVAL} and {AQUA}!$" - -gText_TrainerXYSentOutPkmn2:: @ 85CBC14 - .string "{STRING 28} {STRING 29} sent\nout {STRING 0}!$" - -gText_TrainerXSentOutPkmn:: @ 85CBC27 - .string "{STRING 32} sent out\n{RIVAL}!$" - -gText_TrainerXSentOutTwoPkmn:: @ 85CBC37 - .string "{STRING 32} sent out\n{RIVAL} and {AQUA}!$" - -gText_TwoTrainersSentOutPkmn:: @ 85CBC4E - .string "{STRING 32} sent out {STRING 10}!\n{STRING 33} sent out {STRING 12}!$" - -gText_TrainerXSentOutPkmn2:: @ 85CBC6E - .string "{STRING 32} sent out\n{STRING 0}!$" - -gText_TrainerXSentOutPkmn3:: @ 85CBC7E - .string "{STRING 34} sent out\n{STRING 0}!$" - -gText_GoPkmn:: @ 85CBC8E - .string "Go! {STRING 5}!$" - -gText_GoTwoPkmn:: @ 85CBC96 - .string "Go! {STRING 5} and\n{VERSION}!$" - -gText_GoPkmn2:: @ 85CBCA5 - .string "Go! {STRING 0}!$" - -gText_DoItPkmn:: @ 85CBCAD - .string "Do it! {STRING 0}!$" - -gText_GoForItPkmn:: @ 85CBCB8 - .string "Go for it, {STRING 0}!$" - -gText_YourFoesWeakGetEmPkmn:: @ 85CBCC7 - .string "Your foe’s weak!\nGet ’em, {STRING 0}!$" - -gText_EnemySentOutPkmnGoPkmn:: @ 85CBCE5 - .string "{STRING 31} sent out {STRING 11}!\nGo! {STRING 9}!$" - -gText_PkmnThatsEnough:: @ 85CBCFD - .string "{STRING 0}, that’s enough!\nCome back!$" - -gText_PkmnComeBack:: @ 85CBD1B - .string "{STRING 0}, come back!$" - -gText_PkmnOkComeBack:: @ 85CBD2A - .string "{STRING 0}, OK!\nCome back!$" - -gText_PkmnGoodComeBack:: @ 85CBD3D - .string "{STRING 0}, good!\nCome back!$" - -gText_TrainerXYWithdrewPkmn:: @ 85CBD52 - .string "{STRING 28} {STRING 29}\nwithdrew {STRING 0}!$" - -gText_TrainerXWithdrewPkmn:: @ 85CBD65 - .string "{STRING 32} withdrew\n{STRING 0}!$" - -gText_TrainerXWithdrewPkmn2:: @ 85CBD75 - .string "{STRING 34} withdrew\n{STRING 0}!$" - -gText_WildPkmnPrefix:: @ 85CBD85 - .string "Wild $" - -gText_FoePkmnPrefix:: @ 85CBD8B - .string "Foe $" - - .string "$" - -gText_FoePkmnPrefix2:: @ 85CBD91 - .string "Foe$" - -gText_AllyPkmnPrefix:: @ 85CBD95 - .string "Ally$" - -gText_FoePkmnPrefix3:: @ 85CBD9A - .string "Foe$" - -gText_AllyPkmnPrefix2:: @ 85CBD9E - .string "Ally$" - -gText_FoePkmnPrefix4:: @ 85CBDA3 - .string "Foe$" - -gText_AllyPkmnPrefix3:: @ 85CBDA7 - .string "Ally$" - -gText_XUsedY2:: @ 85CBDAC - .string "{STRING 15} used\n{PLAYER}$" - -gText_ExclamationMark:: @ 85CBDB7 - .string "!$" - -gText_ExclamationMark2:: @ 85CBDB9 - .string "!$" - -gText_ExclamationMark3:: @ 85CBDBB - .string "!$" - -gText_ExclamationMark4:: @ 85CBDBD - .string "!$" - -gText_ExclamationMark5:: @ 85CBDBF - .string "!$" - -gText_HP2:: @ 85CBDC1 - .string "HP$" - -gText_Attack2:: @ 85CBDC4 - .string "ATTACK$" - -gText_Defense2:: @ 85CBDCB - .string "DEFENSE$" - -gText_Speed:: @ 85CBDD3 - .string "SPEED$" - -gText_SpAtk2:: @ 85CBDD9 - .string "SP. ATK$" - -gText_SpDef2:: @ 85CBDE1 - .string "SP. DEF$" - -gText_Accuracy:: @ 85CBDE9 - .string "accuracy$" - -gText_Evasiveness:: @ 85CBDF2 - .string "evasiveness$" - - .align 2 -gStatNamesTable:: @ 85CBE00 - .4byte gText_HP2 - .4byte gText_Attack2 - .4byte gText_Defense2 - .4byte gText_Speed - .4byte gText_SpAtk2 - .4byte gText_SpDef2 - .4byte gText_Accuracy - .4byte gText_Evasiveness - -gText_PokeblockWasTooSpicy:: @ 85CBE20 - .string "was too spicy!$" - -gText_PokeblockWasTooDry:: @ 85CBE2F - .string "was too dry!$" - -gText_PokeblockWasTooSweet:: @ 85CBE3C - .string "was too sweet!$" - -gText_PokeblockWasTooBitter:: @ 85CBE4B - .string "was too bitter!$" - -gText_PokeblockWasTooSour:: @ 85CBE5B - .string "was too sour!$" - - .align 2 -gPokeblockWasTooXStringTable:: @ 85CBE6C - .4byte gText_PokeblockWasTooSpicy - .4byte gText_PokeblockWasTooDry - .4byte gText_PokeblockWasTooSweet - .4byte gText_PokeblockWasTooBitter - .4byte gText_PokeblockWasTooSour - -gText_XUsedY:: @ 85CBE80 - .string "{STRING 35} used\n{STRING 22}!$" - -gText_WallyUsedY:: @ 85CBE8C - .string "WALLY used\n{STRING 22}!$" - -gText_XYUsedZ:: @ 85CBE9B - .string "{STRING 28} {STRING 29}\nused {STRING 22}!$" - -gText_TrainerBlockedBall:: @ 85CBEAA - .string "The TRAINER blocked the BALL!$" - -gText_DontBeAThief:: @ 85CBEC8 - .string "Don’t be a thief!$" - -gText_ItDodgedBall:: @ 85CBEDA - .string "It dodged the thrown BALL!\nThis POKéMON can’t be caught!$" - -gText_YouMissedPkmn:: @ 85CBF13 - .string "You missed the POKéMON!$" - -gText_PkmnBrokeFree:: @ 85CBF2B - .string "Oh, no!\nThe POKéMON broke free!$" - -gText_ItAppearedCaught:: @ 85CBF4B - .string "Aww!\nIt appeared to be caught!$" - -gText_AarghAlmostHadIt:: @ 85CBF6A - .string "Aargh!\nAlmost had it!$" - -gText_ShootSoClose:: @ 85CBF80 - .string "Shoot!\nIt was so close, too!$" - -gText_GotchaPkmnCaught:: @ 85CBF9D - .string "Gotcha!\n{RIVAL} was caught!{UNKNOWN_A}{PLAY_BGM BGM_KACHI22}\p$" - -gText_GotchaPkmnCaught2:: @ 85CBFBB - .string "Gotcha!\n{RIVAL} was caught!{UNKNOWN_A}{PLAY_BGM BGM_KACHI22}{PAUSE 127}$" - -gText_GiveNicknameCaptured:: @ 85CBFDB - .string "Give a nickname to the\ncaptured {RIVAL}?$" - -gText_PkmnSentToPC:: @ 85CBFFF - .string "{RIVAL} was sent to\n{STRING 39} PC.$" - -gText_Someones:: @ 85CC015 - .string "someone’s$" - -gText_Lanettes:: @ 85CC01F - .string "LANETTE’s$" - -gText_PkmnDataAddedToDex:: @ 85CC029 - .string "{RIVAL}’s data was\nadded to the POKéDEX.\p$" - -gText_ItIsRaining:: @ 85CC04E - .string "It is raining.$" - -gText_SandstormIsRaging:: @ 85CC05D - .string "A sandstorm is raging.$" - -gText_BoxIsFull:: @ 85CC074 - .string "The BOX is full!\nYou can’t catch any more!\p$" - -gText_EnigmaBerry:: @ 85CC0A0 - .string "ENIGMA BERRY$" - -gText_BerrySuffix:: @ 85CC0AD - .string " BERRY$" - -gText_PkmnsXCuredParalysis:: @ 85CC0B4 - .string "{STRING 19}’s {STRING 22}\ncured paralysis!$" - -gText_PkmnsXCuredPoison:: @ 85CC0CD - .string "{STRING 19}’s {STRING 22}\ncured poison!$" - -gText_PkmnsXHealedBurn:: @ 85CC0E3 - .string "{STRING 19}’s {STRING 22}\nhealed its burn!$" - -gText_PkmnsXDefrostedIt:: @ 85CC0FC - .string "{STRING 19}’s {STRING 22}\ndefrosted it!$" - -gText_PkmnsXWokeIt:: @ 85CC112 - .string "{STRING 19}’s {STRING 22}\nwoke it from its sleep!$" - -gText_PkmnsXSnappedOut:: @ 85CC132 - .string "{STRING 19}’s {STRING 22}\nsnapped it out of confusion!$" - -gText_PkmnsXCuredProblem:: @ 85CC157 - .string "{STRING 19}’s {STRING 22}\ncured its {STRING 0} problem!$" - -gText_PkmnsXNormalizedStatus:: @ 85CC175 - .string "{STRING 19}’s {STRING 22}\nnormalized its status!$" - -gText_PkmnsXRestoredHealth:: @ 85CC194 - .string "{STRING 19}’s {STRING 22}\nrestored health!$" - -gText_PkmnsXRestoredPP:: @ 85CC1AD - .string "{STRING 19}’s {STRING 22}\nrestored {STRING 0}’s PP!$" - -gText_PkmnsXRestoredStatus:: @ 85CC1C7 - .string "{STRING 19}’s {STRING 22}\nrestored its status!$" - -gText_PkmnsXRestoredHPALittle:: @ 85CC1E4 - .string "{STRING 19}’s {STRING 22}\nrestored its HP a little!$" - -gText_XAllowsOnlyY:: @ 85CC206 - .string "{STRING 22} allows the\nuse of only {STRING 20}!\p$" - -gText_PkmnHungOnWithX:: @ 85CC225 - .string "{STRING 16} hung on\nusing its {STRING 22}!$" - -gText_EmptyString3:: @ 85CC23E - .string "$" - -gText_YouThrowABallNowRight:: @ 85CC23F - .string "You throw a BALL now, right?\nI… I’ll do my best!$" - - .align 2 -gBattleStringsTable:: @ 85CC270 - .4byte gText_Buffer36 - .4byte gText_PkmnGainedEXP - .4byte gText_PkmnGrewToLv - .4byte gText_PkmnLearnedMove - .4byte gText_TryToLearnMove1 - .4byte gText_TryToLearnMove2 - .4byte gText_TryToLearnMove3 - .4byte gText_PkmnForgotMove - .4byte gText_StopLearningMove - .4byte gText_DidNotLearnMove - .4byte gText_PkmnLearnedMove2 - .4byte gText_AttackMissed - .4byte gText_PkmnProtectedItself - .4byte gText_StatsWontIncrease2 - .4byte gText_AvoidedDamage - .4byte gText_ItDoesntAffect - .4byte gText_PkmnFainted - .4byte gText_PkmnFainted2 - .4byte gText_PlayerGotMoney - .4byte gText_PlayerWhiteout - .4byte gText_PlayerWhiteout2 - .4byte gText_PreventsEscape - .4byte gText_HitXTimes - .4byte gText_PkmnFellAsleep - .4byte gText_PkmnMadeSleep - .4byte gText_PkmnAlreadyAsleep - .4byte gText_PkmnAlreadyAsleep2 - .4byte gText_PkmnWasntAffected - .4byte gText_PkmnWasPoisoned - .4byte gText_PkmnPoisonedBy - .4byte gText_PkmnHurtByPoison - .4byte gText_PkmnAlreadyPoisoned - .4byte gText_PkmnBadlyPoisoned - .4byte gText_PkmnEnergyDrained - .4byte gText_PkmnWasBurned - .4byte gText_PkmnBurnedBy - .4byte gText_PkmnHurtByBurn - .4byte gText_PkmnWasFrozen - .4byte gText_PkmnFrozenBy - .4byte gText_PkmnIsFrozen - .4byte gText_PkmnWasDefrosted - .4byte gText_PkmnWasDefrosted2 - .4byte gText_PkmnWasDefrostedBy - .4byte gText_PkmnWasParalyzed - .4byte gText_PkmnWasParalyzedBy - .4byte gText_PkmnIsParalyzed - .4byte gText_PkmnIsAlreadyParalyzed - .4byte gText_PkmnHealedParalysis - .4byte gText_PkmnDreamEaten - .4byte gText_StatsWontIncrease - .4byte gText_StatsWontDecrease - .4byte gText_TeamStoppedWorking - .4byte gText_FoeStoppedWorking - .4byte gText_PkmnIsConfused - .4byte gText_PkmnHealedConfusion - .4byte gText_PkmnWasConfused - .4byte gText_PkmnAlreadyConfused - .4byte gText_PkmnFellInLove - .4byte gText_PkmnInLove - .4byte gText_PkmnImmobilizedByLove - .4byte gText_PkmnBlownAway - .4byte gText_PkmnChangedType - .4byte gText_PkmnFlinched - .4byte gText_PkmnRegainedHealth - .4byte gText_PkmnHPFull - .4byte gText_PkmnRaisedSpDef - .4byte gText_PkmnRaisedDef - .4byte gText_PkmnCoveredByVeil - .4byte gText_PkmnUsedSafeguard - .4byte gText_PkmnSafeguardExpired - .4byte gText_PkmnWentToSleep - .4byte gText_PkmnSleptHealthy - .4byte gText_PkmnWhippedWhirlwind - .4byte gText_PkmnTookSunlight - .4byte gText_PkmnLoweredHead - .4byte gText_PkmnIsGlowing - .4byte gText_PkmnFlewHigh - .4byte gText_PkmnDugHole - .4byte gText_PkmnSqueezedByBind - .4byte gText_PkmnTrappedInVortex - .4byte gText_PkmnWrappedBy - .4byte gText_PkmnClamped - .4byte gText_PkmnHurtBy - .4byte gText_PkmnFreedFrom - .4byte gText_PkmnCrashed - .4byte gText_PkmnShroudedInMist - .4byte gText_PkmnProtectedByMist - .4byte gText_PkmnGettingPumped - .4byte gText_PkmnHitWithRecoil - .4byte gText_PkmnProtectedItself2 - .4byte gText_PkmnBuffetedBySandstorm - .4byte gText_PkmnPeltedByHail - .4byte gText_PkmnSeeded - .4byte gText_PkmnEvadedAttack - .4byte gText_PkmnSappedByLeechSeed - .4byte gText_PkmnFastAsleep - .4byte gText_PkmnWokeUp - .4byte gText_PkmnUproarKeptAwake - .4byte gText_PkmnWokeUpInUproar - .4byte gText_PkmnCausedUproar - .4byte gText_PkmnMakingUproar - .4byte gText_PkmnCalmedDown - .4byte gText_PkmnCantSleepInUproar - .4byte gText_PkmnStockpiled - .4byte gText_PkmnCantStockpile - .4byte gText_PkmnCantSleepInUproar2 - .4byte gText_UproarKeptPkmnAwake - .4byte gText_PkmnStayedAwakeUsing - .4byte gText_PkmnStoringEnergy - .4byte gText_PkmnUnleashedEnergy - .4byte gText_PkmnFatigueConfusion - .4byte gText_PkmnPickedUpItem - .4byte gText_PkmnUnaffected - .4byte gText_PkmnTransformedInto - .4byte gText_PkmnMadeSubstitute - .4byte gText_PkmnHasSubstitute - .4byte gText_SubstituteDamaged - .4byte gText_PkmnSubstituteFaded - .4byte gText_PkmnMustRecharge - .4byte gText_PkmnRageBuilding - .4byte gText_PkmnMoveWasDisabled - .4byte gText_PkmnMoveIsDisabled - .4byte gText_PkmnMoveDisabledNoMore - .4byte gText_PkmnGotEncore - .4byte gText_PkmnEncoreEnded - .4byte gText_PkmnTookAim - .4byte gText_PkmnSketchedMove - .4byte gText_PkmnTryingToTakeFoe - .4byte gText_PkmnTookFoe - .4byte gText_PkmnReducedPP - .4byte gText_PkmnStoleItem - .4byte gText_PkmnCantEscape - .4byte gText_PkmnFellIntoNightmare - .4byte gText_PkmnLockedInNightmare - .4byte gText_PkmnLaidCurse - .4byte gText_PkmnAfflictedByCurse - .4byte gText_SpikesScattered - .4byte gText_PkmnHurtBySpikes - .4byte gText_PkmnIdentified - .4byte gText_PkmnPerishCountFell - .4byte gText_PkmnBracedItself - .4byte gText_PkmnEnduredHit - .4byte gText_MagnitudeStrength - .4byte gText_PkmnCutHPMaxedAttack - .4byte gText_PkmnCopiedStatChanges - .4byte gText_PkmnGotFree - .4byte gText_PkmnShedLeechSeed - .4byte gText_PkmnBlewAwaySpikes - .4byte gText_PkmnFledFromBattle - .4byte gText_PkmnForesawAttack - .4byte gText_PkmnTookAttack - .4byte gText_PkmnAttack - .4byte gText_PkmnCenterAttention - .4byte gText_PkmnChargingPower - .4byte gText_NaturePowerTurnedInto - .4byte gText_PkmnStatusNormal - .4byte gText_PkmnHasNoMovesLeft - .4byte gText_PkmnSubjectedToTorment - .4byte gText_PkmnCantUseMoveTorment - .4byte gText_PkmnTighteningFocus - .4byte gText_PkmnFellForTaunt - .4byte gText_PkmnCantUseMoveTaunt - .4byte gText_PkmnReadyToHelp - .4byte gText_PkmnSwitchedItems - .4byte gText_PkmnCopiedFoe - .4byte gText_PkmnMadeWish - .4byte gText_PkmnWishCameTrue - .4byte gText_PkmnPlantedRoots - .4byte gText_PkmnAbsorbedNutrients - .4byte gText_PkmnAnchoredItself - .4byte gText_PkmnWasMadeDrowsy - .4byte gText_PkmnKnockedOff - .4byte gText_PkmnSwappedAbilities - .4byte gText_PkmnSealedOpponentMove - .4byte gText_PkmnCantUseMoveSealed - .4byte gText_PkmnWantsGrudge - .4byte gText_PkmnLostPPGrudge - .4byte gText_PkmnShroudedItself - .4byte gText_PkmnMoveBounced - .4byte gText_PkmnWaitsForTarget - .4byte gText_PkmnSnatchedMove - .4byte gText_PkmnMadeItRain - .4byte gText_PkmnRaisedSpeed - .4byte gText_PkmnProtectedBy - .4byte gText_PkmnPreventsUsage - .4byte gText_PkmnRestoredHPUsing - .4byte gText_PkmnChangedTypeWith - .4byte gText_PkmnPreventsParalysisWith - .4byte gText_PkmnPreventsRomanceWith - .4byte gText_PkmnPreventsPoisoningWith - .4byte gText_PkmnPreventsConfusionWith - .4byte gText_PkmnRaisedFirePowerWith - .4byte gText_PkmnAnchorsItselfWith - .4byte gText_PkmnCutsAttackWith - .4byte gText_PkmnPreventsStatLossWith - .4byte gText_PkmnHurtsWith - .4byte gText_PkmnTraced - .4byte gText_StatSharply - .4byte gText_StatRose - .4byte gText_StatHarshly - .4byte gText_StatFell - .4byte gText_PkmnsStatChanged - .4byte gText_PkmnsStatChanged2 - .4byte gText_PkmnsStatChanged3 - .4byte gText_PkmnsStatChanged4 - .4byte gText_CriticalHit - .4byte gText_OneHitKO - .4byte gText_123Poof - .4byte gText_AndEllipsis - .4byte gText_NotVeryEffective - .4byte gText_SuperEffective - .4byte gText_GotAwaySafely - .4byte gText_WildPkmnFled - .4byte gText_NoRunningFromTrainers - .4byte gText_CantEscape - .4byte gText_DontLeaveBirch - .4byte gText_ButNothingHappened - .4byte gText_ButItFailed - .4byte gText_ItHurtConfusion - .4byte gText_MirrorMoveFailed - .4byte gText_StartedToRain - .4byte gText_DownpourStarted - .4byte gText_RainContinues - .4byte gText_DownpourContinues - .4byte gText_RainStopped - .4byte gText_SandstormBrewed - .4byte gText_SandstormRages - .4byte gText_SandstormSubsided - .4byte gText_SunlightGotBright - .4byte gText_SunlightStrong - .4byte gText_SunlightFaded - .4byte gText_StartedHail - .4byte gText_HailContinues - .4byte gText_HailStopped - .4byte gText_FailedToSpitUp - .4byte gText_FailedToSwallow - .4byte gText_WindBecameHeatWave - .4byte gText_StatChangesGone - .4byte gText_CoinsScattered - .4byte gText_TooWeakForSubstitute - .4byte gText_SharedPain - .4byte gText_BellChimed - .4byte gText_FaintInThree - .4byte gText_NoPPLeft - .4byte gText_ButNoPPLeft - .4byte gText_XUsedY - .4byte gText_WallyUsedY - .4byte gText_TrainerBlockedBall - .4byte gText_DontBeAThief - .4byte gText_ItDodgedBall - .4byte gText_YouMissedPkmn - .4byte gText_PkmnBrokeFree - .4byte gText_ItAppearedCaught - .4byte gText_AarghAlmostHadIt - .4byte gText_ShootSoClose - .4byte gText_GotchaPkmnCaught - .4byte gText_GotchaPkmnCaught2 - .4byte gText_GiveNicknameCaptured - .4byte gText_PkmnSentToPC - .4byte gText_PkmnDataAddedToDex - .4byte gText_ItIsRaining - .4byte gText_SandstormIsRaging - .4byte gText_CantEscape2 - .4byte gText_PkmnIgnoresAsleep - .4byte gText_PkmnIgnoredOrders - .4byte gText_PkmnBeganToNap - .4byte gText_PkmnLoafing - .4byte gText_PkmnWontObey - .4byte gText_PkmnTurnedAway - .4byte gText_PkmnPretendNotNotice - .4byte gText_EnemyAboutToSwitchPkmn - .4byte gText_CreptCloser - .4byte gText_CantGetCloser - .4byte gText_PkmnWatchingCarefully - .4byte gText_PkmnCuriousAboutX - .4byte gText_PkmnEnthralledByX - .4byte gText_PkmnIgnoredX - .4byte gText_ThrewPokeblockAtPkmn - .4byte gText_OutOfSafariBalls - .4byte gText_PkmnsXCuredParalysis - .4byte gText_PkmnsXCuredPoison - .4byte gText_PkmnsXHealedBurn - .4byte gText_PkmnsXDefrostedIt - .4byte gText_PkmnsXWokeIt - .4byte gText_PkmnsXSnappedOut - .4byte gText_PkmnsXCuredProblem - .4byte gText_PkmnsXRestoredHealth - .4byte gText_PkmnsXRestoredPP - .4byte gText_PkmnsXRestoredStatus - .4byte gText_PkmnsXRestoredHPALittle - .4byte gText_XAllowsOnlyY - .4byte gText_PkmnHungOnWithX - .4byte gText_EmptyString3 - .4byte gText_PkmnsXPreventsBurns - .4byte gText_PkmnsXBlocksY - .4byte gText_PkmnsXRestoredHPALittle2 - .4byte gText_PkmnsXWhippedUpSandstorm - .4byte gText_PkmnsXPreventsYLoss - .4byte gText_PkmnsXInfatuatedY - .4byte gText_PkmnsXMadeYIneffective - .4byte gText_PkmnsXCuredYProblem - .4byte gText_ItSuckedLiquidOoze - .4byte gText_PkmnTransformed - .4byte gText_ElectricityWeakened - .4byte gText_FireWeakened - .4byte gText_PkmnHidUnderwater - .4byte gText_PkmnSprangUp - .4byte gText_HMMovesCantBeForgotten - .4byte gText_XFoundOneY - .4byte gText_PlayerDefeatedXY - .4byte gText_SoothingAroma - .4byte gText_ItemsCantBeUsedNow - .4byte gText_ForXCommaYZ - .4byte gText_UsingXTheYOfZN - .4byte gText_PkmnUsedXToGetPumped - .4byte gText_PkmnsXMadeYUseless - .4byte gText_PkmnTrappedBySandTomb - .4byte gText_EmptyString4 - .4byte gText_ABoosted - .4byte gText_PkmnsXIntensifiedSun - .4byte gText_PkmnMakesGroundMiss - .4byte gText_YouThrowABallNowRight - .4byte gText_PkmnsXTookAttack - .4byte gText_PkmnChoseXAsDestiny - .4byte gText_PkmnLostFocus - .4byte gText_UseNextPkmn - .4byte gText_PkmnFledUsingIts - .4byte gText_PkmnFledUsing - .4byte gText_PkmnWasDraggedOut - .4byte gText_PreventedFromWorking - .4byte gText_PkmnsXNormalizedStatus - .4byte gText_XYUsedZ - .4byte gText_BoxIsFull - .4byte gText_PkmnAvoidedAttack - .4byte gText_PkmnsXMadeItIneffective - .4byte gText_PkmnsXPreventsFlinching - .4byte gText_PkmnAlreadyHasBurn - .4byte gText_StatsWontDecrease2 - .4byte gText_PkmnsXBlocksY2 - .4byte gText_PkmnsXWoreOff - .4byte gText_PkmnRaisedDefALittle - .4byte gText_PkmnRaisedSpDefALittle - .4byte gText_TheWallShattered - .4byte gText_PkmnsXPreventsYsZ - .4byte gText_PkmnsXCuredItsYProblem - .4byte gText_PkmnCantEscape2 - .4byte gText_PkmnObtainedX - .4byte gText_PkmnObtainedX2 - .4byte gText_PkmnObtainedXYObtainedZ - .4byte gText_ButNoEffect - .4byte gText_PkmnsXHadNoEffectOnY - .4byte gText_TwoEnemiesDefeated - .4byte gText_String48 - .4byte gText_PkmnIncapableOfPower - .4byte gText_GlintAppearsInEye - .4byte gText_PkmnGettingIntoPosition - .4byte gText_PkmnBeganGrowlingDeeply - .4byte gText_PkmnEagerForMore - .4byte gText_DefeatedOpponentByReferee - .4byte gText_LostToOpponentByReferee - .4byte gText_TiedOpponentByReferee - .4byte gText_QuestionForfeitMatch - .4byte gText_ForfeitedMatch - .4byte gText_PkmnTransferredSomeonesPC - .4byte gText_PkmnTransferredLanettesPC - .4byte gText_PkmnBoxSomeonesPCFull - .4byte gText_PkmnBoxLanettesPCFull - .4byte gText_String37 - .4byte gText_String49 - - .align 2 -gMissStringIds:: @ 85CC834 - .2byte 0x0017, 0x0018, 0x0159, 0x001a, 0x014c - -gUnknown_085CC83E:: @ 85CC83E - .2byte 0x00e2, 0x00e3, 0x0021 - .2byte 0x0112, 0x0165, 0x00e8, 0x00e9, 0x00e5, 0x00ed, 0x00f0, 0x00f3 - .2byte 0x00ee, 0x00f4, 0x0066, 0x0067, 0x00ef, 0x00f5, 0x00ea, 0x00eb - .2byte 0x00ec, 0x0065, 0x0098, 0x00e5, 0x00e5, 0x004e, 0x0160, 0x004d - .2byte 0x0161, 0x004f, 0x0068, 0x0069, 0x001b, 0x006a, 0x0139, 0x0052 - .2byte 0x0053, 0x0070, 0x0071, 0x0073, 0x0074, 0x006c, 0x006e, 0x00f7 - .2byte 0x004c, 0x0075, 0x0076, 0x0077, 0x00d5, 0x00d6, 0x003d, 0x0130 - .2byte 0x0145, 0x0146, 0x00d7, 0x00d8, 0x003e, 0x0130, 0x0054, 0x0055 - .2byte 0x0056, 0x0057, 0x0058, 0x0059, 0x013d, 0x013e, 0x005a, 0x005c - .2byte 0x005b, 0x005d, 0x005b, 0x0148, 0x0061, 0x00e5, 0x0063, 0x00e5 - .2byte 0x007d, 0x00e5, 0x007e, 0x00fb, 0x0028, 0x0029, 0x0037, 0x0038 - .2byte 0x0023, 0x0024, 0x002e, 0x002f, 0x0031, 0x0032, 0x0035, 0x0036 - .2byte 0x0017, 0x007c, 0x0045, 0x0136, 0x002d, 0x0139, 0x013b, 0x013c - .2byte 0x00fd, 0x00fd, 0x00fd, 0x00fd, 0x0142, 0x00a1, 0x014f, 0x0107 - .2byte 0x0108, 0x0109, 0x010a, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110 - .2byte 0x0110, 0x0110, 0x0110, 0x0111, 0x0110, 0x0110, 0x0110, 0x00f1 - .2byte 0x0110, 0x0110, 0x0110, 0x0116, 0x0117, 0x0118, 0x0119, 0x016d - .2byte 0x011b, 0x011c, 0x011e, 0x011f, 0x0120, 0x0128, 0x0123, 0x0126 - .2byte 0x0125, 0x0124, 0x0127, 0x0129, 0x0156, 0x0131, 0x0163, 0x016a - .2byte 0x00c7, 0x0163, 0x016a, 0x00c9, 0x0163, 0x016a, 0x0166, 0x0167 - .2byte 0x0168, 0x00cb, 0x0137, 0x0177, 0x0178, 0x0179, 0x017a - -gTrappingMoves:: @ 85CC982 - .2byte MOVE_BIND, MOVE_WRAP, MOVE_FIRE_SPIN, MOVE_CLAMP, MOVE_WHIRLPOOL, MOVE_SAND_TOMB, 0xffff - -gText_PkmnIsEvolving:: @ 85CC990 - .string "What?\n{STR_VAR_1} is evolving!$" - -gText_CongratsPkmnEvolved:: @ 85CC9A6 - .string "Congratulations! Your {STR_VAR_1}\nevolved into {STR_VAR_2}!{UNKNOWN_A}\p$" - -gText_PkmnStoppedEvolving:: @ 85CC9D3 - .string "Huh? {STR_VAR_1}\nstopped evolving!\p$" - -gText_EllipsisQuestionMark:: @ 85CC9EE - .string "……?\p$" - -gText_WhatWillPkmnDo:: @ 85CC9F3 - .string "What will\n{STRING 18} do?$" - -gText_WhatWillPkmnDo2:: @ 85CCA04 - .string "What will\n{STRING 35} do?$" - -gText_WhatWillWallyDo:: @ 85CCA15 - .string "What will\nWALLY do?$" - -gText_LinkStandby:: @ 85CCA29 - .string "{PAUSE 16}Link standby…$" - -gText_BattleMenu:: @ 85CCA3A - .string "FIGHT{CLEAR_TO 56}BAG\nPOKéMON{CLEAR_TO 56}RUN$" - -gText_SafariZoneMenu:: @ 85CCA54 - .string "BALL{CLEAR_TO 56}{POKEBLOCK}\nGO NEAR{CLEAR_TO 56}RUN$" - -gText_MoveInterfacePP:: @ 85CCA6F - .string "PP $" - -gText_MoveInterfaceType:: @ 85CCA73 - .string "TYPE/$" - - .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}PP\nTYPE/$" - .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}$" - .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}Which move should\nbe forgotten?$" - -gText_BattleYesNoChoice:: @ 85CCABB - .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}Yes\nNo$" - -gText_BattleSwitchWhich:: @ 85CCACA - .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}Switch\nwhich?$" - - .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}$" - .string "{UP_ARROW}$" - .string "{ESCAPE 4}$" - .string "-$" - -gText_HP:: @ 85CCAF1 - .string "HP$" - -gText_Attack:: @ 85CCAF4 - .string "ATTACK$" - -gText_Defense:: @ 85CCAFB - .string "DEFENSE$" - -gText_SpAtk:: @ 85CCB03 - .string "SP. ATK$" - -gText_SpDef:: @ 85CCB0B - .string "SP. DEF$" - - .align 2 - .4byte gText_HP - .4byte gText_SpAtk - .4byte gText_Attack - .4byte gText_SpDef - .4byte gText_Defense - .4byte gText_Speed - -gText_SafariBalls:: @ 85CCB2C - .string "{HIGHLIGHT DARK_GREY}SAFARI BALLS$" - -gText_SafariBallLeft:: @ 85CCB3C - .string "{HIGHLIGHT DARK_GREY}Left: $" - .string "{HIGHLIGHT DARK_GREY}$" -gText_Sleep:: - .string "sleep$" -gText_Poison:: - .string "poison$" -gText_Burn:: - .string "burn$" -gText_Paralysis:: - .string "paralysis$" -gText_Ice:: - .string "ice$" -gText_Confusion:: - .string "confusion$" -gText_Love:: - .string "love$" - -gText_SpaceAndSpace:: @ 85CCB79 - .string " and $" - -gText_CommaSpace:: @ 85CCB7F - .string ", $" - -gText_Space2:: @ 85CCB82 - .string " $" - -gText_ScrollTextUp:: @ 85CCB84 - .string "\l$" - -gText_NewLine:: @ 85CCB86 - .string "\n$" - -gText_Are:: @ 85CCB88 - .string "are$" - -gText_Are2:: @ 85CCB8C - .string "are$" - -gText_BadEgg:: @ 85CCB90 - .string "Bad EGG$" - -gText_BattleWallyName:: @ 85CCB98 - .string "WALLY$" - -gText_Win:: @ 85CCB9E - .string "{HIGHLIGHT TRANSPARENT}Win$" - -gText_Loss:: @ 85CCBA5 - .string "{HIGHLIGHT TRANSPARENT}Loss$" - -gText_Draw:: @ 85CCBAD - .string "{HIGHLIGHT TRANSPARENT}Draw$" - -gText_SpaceIs:: @ 85CCBB5 - .string " is$" - -gText_ApostropheS:: @ 85CCBB9 - .string "’s$" - -gText_UnknownMoveTypes:: @ 85CCBBC - .string "a NORMAL move$ " - .string "a FIGHTING move$ " - .string "a FLYING move$ " - .string "a POISON move$ " - .string "a GROUND move$ " - .string "a ROCK move$ " - .string "a BUG move$ " - .string "a GHOST move$ " - .string "a STEEL move$ " - .string "a ??? move$ " - .string "a FIRE move$ " - .string "a WATER move$ " - .string "a GRASS move$ " - .string "an ELECTRIC move$" - .string "a PSYCHIC move$ " - .string "an ICE move$ " - .string "a DRAGON move$ " - .string "a DARK move$ " - -gText_BattleTourney:: @ 85CCCEE - .string "BATTLE TOURNEY$" - -gText_Round1:: @ 85CCCFD - .string "Round 1$" - -gText_Round2:: @ 85CCD05 - .string "Round 2$" - -gText_Semifinal:: @ 85CCC0D - .string "Semifinal$" - -gText_Final:: @ 85CCD17 - .string "Final$" - - .align 2 -gRoundsStringTable:: @ 85CCD20 - .4byte gText_Round1 - .4byte gText_Round2 - .4byte gText_Semifinal - .4byte gText_Final - - .string "The great new hope!\p$" - .string "Will the championship dream come true?!\p$" - .string "A former CHAMPION!\p$" - .string "The previous CHAMPION!\p$" - .string "The unbeaten CHAMPION!\p$" - -gText_JapaneseHonorific:: @ 85CCDB2 - .string "{KUN}$" - -gText_Vs:: @ 85CCDB5 - .string "VS$" - -gText_RivalBuffer:: @ 85CCDB8 - .string "{RIVAL}$" - -gText_Mind:: @ 85CCDBB - .string "Mind$" - -gText_Skill:: @ 85CCDC0 - .string "Skill$" - -gText_Body:: @ 85CCDC6 - .string "Body$" - -gText_Judgement:: @ 85CCDCB - .string "{STRING 0}{CLEAR 13}Judgment{CLEAR 13}{PLAYER}$" - -gText_TwoTrainersSentPkmn:: @ 85CCDDE - .string "{STRING 28} {STRING 29} sent\nout {RIVAL}!\p{STRING 46} {STRING 47} sent\nout {AQUA}!$" - -gText_TrainerXYSentOutPkmn3:: @ 85CCE04 - .string "{STRING 46} {STRING 47} sent\nout {STRING 0}!$" - -gText_TwoTrainersWantToBattle2:: @ 85CCE17 - .string "{STRING 28} {STRING 29} and\n{STRING 46} {STRING 47}\lwant to battle!\p$" - -gText_TrainerXYSentOutZGoN:: @ 85CCE38 - .string "{STRING 50} {STRING 51} sent\nout {VERSION}!\lGo, {STRING 5}!$" - -gText_TwoEnemiesDefeated:: @ 85CCE53 - .string "{STRING 28} {STRING 29} and\n{STRING 46} {STRING 47}\lwere defeated!\p$" - -gText_String48:: @ 85CCE73 - .string "{STRING 48}$" - -gText_PkmnIncapableOfPower:: @ 85CCE76 - .string "{STRING 15} appears incapable\nof using its power!$" - -gText_GlintAppearsInEye:: @ 85CCE9F - .string "A glint appears in\n{STRING 19}’s eyes!$" - -gText_PkmnGettingIntoPosition:: @ 85CCEBD - .string "{STRING 19} is getting into\nposition!$" - -gText_PkmnBeganGrowlingDeeply:: @ 85CCEDA - .string "{STRING 19} began growling deeply!$" - -gText_PkmnEagerForMore:: @ 85CCEF4 - .string "{STRING 19} is eager for more!$" - -gUnknown_085CCF0A:: @ 85CCF0A - .2byte 0x016E, 0x016F, 0x0170, 0x0171 - -gText_RefIfNothingIsDecided:: @ 85CCF12 - .string "REFEREE: If nothing is decided in\n3 turns, we will go to judging!$" - -gText_RefThatsIt:: @ 85CCF54 - .string "REFEREE: That’s it! We will now go to\njudging to determine the winner!$" - -gText_RefJudgeMind:: @ 85CCF9B - .string "REFEREE: Judging category 1, Mind!\nThe POKéMON showing the most guts!\p$" - -gText_RefJudgeSkill:: @ 85CCFE2 - .string "REFEREE: Judging category 2, Skill!\nThe POKéMON using moves the best!\p$" - -gText_RefJudgeBody:: @ 85CD029 - .string "REFEREE: Judging category 3, Body!\nThe POKéMON with the most vitality!\p$" - -gText_RefJudgement1:: @ 85CD071 - .string "REFEREE: Judgment: {STRING 0} to {PLAYER}!\nThe winner is {STRING 35}’s {STRING 5}!\p$" - -gText_RefJudgement2:: @ 85CD0A6 - .string "REFEREE: Judgment: {STRING 0} to {PLAYER}!\nThe winner is {STRING 29}’s {RIVAL}!\p$" - -gText_RefJudgement3:: @ 85CD0DB - .string "REFEREE: Judgment: 3 to 3!\nWe have a draw!\p$" - -gText_DefeatedOpponentByReferee:: @ 85CD107 - .string "{STRING 5} defeated the opponent\n{RIVAL} in a REFEREE’s decision!$" - -gText_LostToOpponentByReferee:: @ 85CD13C - .string "{STRING 5} lost to the opponent\n{RIVAL} in a REFEREE’s decision!$" - -gText_TiedOpponentByReferee:: @ 85CD170 - .string "{STRING 5} tied the opponent\n{RIVAL} in a REFEREE’s decision!$" - -gText_RefCommenceBattle:: @ 85CD1A1 - .string "REFEREE: {STRING 5} VS {RIVAL}!\nCommence battling!$" - - .align 2 -gRefereeStringsTable:: @ 85CD1C8 - .4byte gText_RefIfNothingIsDecided - .4byte gText_RefThatsIt - .4byte gText_RefJudgeMind - .4byte gText_RefJudgeSkill - .4byte gText_RefJudgeBody - .4byte gText_RefJudgement1 - .4byte gText_RefJudgement2 - .4byte gText_RefJudgement3 - .4byte gText_RefCommenceBattle - -gText_QuestionForfeitMatch:: @ 85CD1EC - .string "Would you like to forfeit the match\nand quit now?$" - -gText_ForfeitedMatch:: @ 85CD21E - .string "{STRING 35} forfeited the match!$" - -gText_String37:: @ 85CD236 - .string "{STRING 37}$" - -gText_String49:: @ 85CD239 - .string "{STRING 49}$" - - .string "{PLAY_SE 0x0011}{STRING 28} {STRING 29} fled!$" - -gText_PlayerLostAgainst2:: @ 85CD24C - .string "Player lost against\n{STRING 28} {STRING 29}!$" - -gText_PlayerBattledToDraw2:: @ 85CD267 - .string "Player battled to a draw against\n{STRING 28} {STRING 29}!$" - -gText_RecordBattleToPass:: @ 85CD28F - .string "Would you like to record your battle\non your FRONTIER PASS?$" - -gText_BattleRecordedOnPass:: @ 85CD2CB - .string "{STRING 35}’s battle result was recorded\non the FRONTIER PASS.$" - -gText_TrainerWantsToBattle:: @ 85CD301 - .string "{STRING 32}\nwants to battle!{PAUSE 49}$" - -gText_TwoTrainersWantToBattle3:: @ 85CD318 - .string "{STRING 32} and {STRING 33}\nwant to battle!{PAUSE 49}$" - - .align 1 -gUnknown_085CD336:: @ 85CD336 - .2byte 0x000e, 0x0046, 0x004a, 0x006a, 0x006b, 0x006c, 0x006e, 0x006f - .2byte 0x0079, 0x007b, 0x007d, 0x0094, 0x0096, 0x0097, 0x009b, 0x009c - .2byte 0x009f, 0x00a4, 0x00aa, 0x00ad, 0x00b6, 0x00bf, 0x00cb, 0x00cd - .2byte 0x00cf, 0x00d6, 0x00ed, 0x00f4, 0x00f5, 0x010a, 0x010f, 0x0112 - .2byte 0x0113, 0x011a, 0x0125, 0x0136, 0x013c, 0x0140, 0x0149, 0x014a - .2byte 0x014e, 0x0154, 0x0000, 0x0064, 0x0069, 0x0075, 0x0085, 0x00af - .2byte 0x010d, 0x0153, 0x0000, 0x0060, 0x0061, 0x0066, 0x0068, 0x008c - .2byte 0x0090, 0x00a5, 0x00b8, 0x010c, 0x0111, 0x0118, 0x0119, 0x0129 - .2byte 0x012a, 0x012c, 0x0139, 0x015a, 0x015b, 0x0000, 0x0001, 0x000a - .2byte 0x000b, 0x0011, 0x0013, 0x0014, 0x0015, 0x001e, 0x0023, 0x0025 - .2byte 0x0027, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0040, 0x0047 - .2byte 0x0051, 0x0059, 0x005a, 0x005b, 0x005c, 0x0067, 0x0076, 0x007a - .2byte 0x0080, 0x0084, 0x008b, 0x0091, 0x00a3, 0x00a9, 0x00ab, 0x00ae - .2byte 0x00c1, 0x00cc, 0x00d5, 0x00f9, 0x00fd, 0x00ff, 0x0100, 0x0103 - .2byte 0x0104, 0x0110, 0x011b, 0x0141, 0x0157, 0x0000 - -gUnknown_085CD422:: @ 85CD422 - .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - - .align 2 -gUnknown_085CD42C:: @ 85CD42C - .2byte 0x01ff, 0x0100, 0x0000, 0x0101, 0x060f, 0x0000, 0x01ff, 0x0101 - .2byte 0x0000, 0x0100, 0x060f, 0x0000, 0x01ee, 0x0100, 0x0000, 0x0d00 - .2byte 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000 - .2byte 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x07ee, 0x0100 - .2byte 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00 - .2byte 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0c00, 0x0b0e, 0x0000 - .2byte 0x01ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x0102 - .2byte 0x0000, 0x0c00, 0x0b0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00 - .2byte 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000 - .2byte 0x01ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x0100 - .2byte 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x0100, 0x0120, 0x0000, 0x0100 - .2byte 0x0200, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000 - .2byte 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x01ff - .2byte 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0d00 - .2byte 0x0f0e, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000 - .2byte 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x0100, 0x01ff - .2byte 0x0000, 0x0100, 0x0600, 0x0000, 0x0100, 0x01ff, 0x0000, 0x0100 - .2byte 0x0600, 0x0000, 0x0100, 0x01ff, 0x0000, 0x0100, 0x0600, 0x0000 - - .align 2 -gUnknown_085CD54C:: @ 85C54C - .2byte 0x01ff, 0x0100, 0x0000, 0x0101, 0x060f, 0x0000, 0x01ff, 0x0101 - .2byte 0x0000, 0x0100, 0x060f, 0x0000, 0x01ee, 0x0100, 0x0000, 0x0d00 - .2byte 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000 - .2byte 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x07ee, 0x0100 - .2byte 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00 - .2byte 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0c00, 0x0b0e, 0x0000 - .2byte 0x01ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x0102 - .2byte 0x0000, 0x0c00, 0x0b0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00 - .2byte 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000 - .2byte 0x01ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x0100 - .2byte 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x0100, 0x0120, 0x0000, 0x0100 - .2byte 0x0200, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0100, 0x0f0e, 0x0000 - .2byte 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x01ff - .2byte 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0d00 - .2byte 0x0f0e, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000 - .2byte 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x01ff - .2byte 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x0111, 0x0100, 0x0000, 0x0201 - .2byte 0x0301, 0x0000 - - .align 2 -gUnknown_085CD660:: @ 85CD660 - .4byte gUnknown_085CD42C - .4byte gUnknown_085CD54C - - .align 2 -gUnknown_085CD668:: @ 85CD668 - .byte 0x08, 0x04, 0x01, 0x00 diff --git a/include/battle.h b/include/battle.h index d41702396..bb61c7043 100644 --- a/include/battle.h +++ b/include/battle.h @@ -604,7 +604,7 @@ struct BattleStruct u8 field_8B; u8 field_8C; u8 field_8D; - u8 field_8E; + u8 stringMoveType; u8 expGetterBank; u8 field_90; u8 field_91; diff --git a/include/battle_message.h b/include/battle_message.h index 3bc7117bb..1884c9e37 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -206,11 +206,19 @@ u32 BattleStringExpandPlaceholdersToDisplayedString(const u8* src); u32 BattleStringExpandPlaceholders(const u8* src, u8* dst); void sub_814F9EC(const u8* text, u8 arg1); -extern u8 gBattleTextBuff1[]; -extern u8 gBattleTextBuff2[]; -extern u8 gBattleTextBuff3[]; -extern u8 gDisplayedStringBattle[]; +#define TEXT_BUFF_ARRAY_COUNT 16 +extern u8 gDisplayedStringBattle[300]; +extern u8 gBattleTextBuff1[TEXT_BUFF_ARRAY_COUNT]; +extern u8 gBattleTextBuff2[TEXT_BUFF_ARRAY_COUNT]; +extern u8 gBattleTextBuff3[TEXT_BUFF_ARRAY_COUNT]; + +extern const u8* const gStatNamesTable[]; +extern const u8* const gPokeblockWasTooXStringTable[]; extern const u8* const gRefereeStringsTable[]; +extern const u8* const gStatNamesTable2[]; + +extern const u16 gMissStringIds[]; +extern const u16 gTrappingMoves[]; #endif // GUARD_BATTLE_MESSAGE_H diff --git a/include/battle_string_ids.h b/include/battle_string_ids.h new file mode 100644 index 000000000..546cb2e46 --- /dev/null +++ b/include/battle_string_ids.h @@ -0,0 +1,385 @@ +#ifndef GUARD_BATTLE_STRING_IDS_H +#define GUARD_BATTLE_STRING_IDS_H + +#define BATTLESTRINGS_COUNT 369 + +#define BATTLESTRINGS_ID_ADDER 12 // all battlestrings have its ID + 12, because first 5 are reserved + +#define STRINGID_INTROMSG 0 +#define STRINGID_INTROSENDOUT 1 +#define STRINGID_RETURNMON 2 +#define STRINGID_SWITCHINMON 3 +#define STRINGID_USEDMOVE 4 +#define STRINGID_BATTLEEND 5 + +#define STRINGID_TRAINER1LOSETEXT 12 +#define STRINGID_PKMNGAINEDEXP 13 +#define STRINGID_PKMNGREWTOLV 14 +#define STRINGID_PKMNLEARNEDMOVE 15 +#define STRINGID_TRYTOLEARNMOVE1 16 +#define STRINGID_TRYTOLEARNMOVE2 17 +#define STRINGID_TRYTOLEARNMOVE3 18 +#define STRINGID_PKMNFORGOTMOVE 19 +#define STRINGID_STOPLEARNINGMOVE 20 +#define STRINGID_DIDNOTLEARNMOVE 21 +#define STRINGID_PKMNLEARNEDMOVE2 22 +#define STRINGID_ATTACKMISSED 23 +#define STRINGID_PKMNPROTECTEDITSELF 24 +#define STRINGID_STATSWONTINCREASE2 25 +#define STRINGID_AVOIDEDDAMAGE 26 +#define STRINGID_ITDOESNTAFFECT 27 +#define STRINGID_PKMNFAINTED 28 +#define STRINGID_PKMNFAINTED2 29 +#define STRINGID_PLAYERGOTMONEY 30 +#define STRINGID_PLAYERWHITEOUT 31 +#define STRINGID_PLAYERWHITEOUT2 32 +#define STRINGID_PREVENTSESCAPE 33 +#define STRINGID_HITXTIMES 34 +#define STRINGID_PKMNFELLASLEEP 35 +#define STRINGID_PKMNMADESLEEP 36 +#define STRINGID_PKMNALREADYASLEEP 37 +#define STRINGID_PKMNALREADYASLEEP2 38 +#define STRINGID_PKMNWASNTAFFECTED 39 +#define STRINGID_PKMNWASPOISONED 40 +#define STRINGID_PKMNPOISONEDBY 41 +#define STRINGID_PKMNHURTBYPOISON 42 +#define STRINGID_PKMNALREADYPOISONED 43 +#define STRINGID_PKMNBADLYPOISONED 44 +#define STRINGID_PKMNENERGYDRAINED 45 +#define STRINGID_PKMNWASBURNED 46 +#define STRINGID_PKMNBURNEDBY 47 +#define STRINGID_PKMNHURTBYBURN 48 +#define STRINGID_PKMNWASFROZEN 49 +#define STRINGID_PKMNFROZENBY 50 +#define STRINGID_PKMNISFROZEN 51 +#define STRINGID_PKMNWASDEFROSTED 52 +#define STRINGID_PKMNWASDEFROSTED2 53 +#define STRINGID_PKMNWASDEFROSTEDBY 54 +#define STRINGID_PKMNWASPARALYZED 55 +#define STRINGID_PKMNWASPARALYZEDBY 56 +#define STRINGID_PKMNISPARALYZED 57 +#define STRINGID_PKMNISALREADYPARALYZED 58 +#define STRINGID_PKMNHEALEDPARALYSIS 59 +#define STRINGID_PKMNDREAMEATEN 60 +#define STRINGID_STATSWONTINCREASE 61 +#define STRINGID_STATSWONTDECREASE 62 +#define STRINGID_TEAMSTOPPEDWORKING 63 +#define STRINGID_FOESTOPPEDWORKING 64 +#define STRINGID_PKMNISCONFUSED 65 +#define STRINGID_PKMNHEALEDCONFUSION 66 +#define STRINGID_PKMNWASCONFUSED 67 +#define STRINGID_PKMNALREADYCONFUSED 68 +#define STRINGID_PKMNFELLINLOVE 69 +#define STRINGID_PKMNINLOVE 70 +#define STRINGID_PKMNIMMOBILIZEDBYLOVE 71 +#define STRINGID_PKMNBLOWNAWAY 72 +#define STRINGID_PKMNCHANGEDTYPE 73 +#define STRINGID_PKMNFLINCHED 74 +#define STRINGID_PKMNREGAINEDHEALTH 75 +#define STRINGID_PKMNHPFULL 76 +#define STRINGID_PKMNRAISEDSPDEF 77 +#define STRINGID_PKMNRAISEDDEF 78 +#define STRINGID_PKMNCOVEREDBYVEIL 79 +#define STRINGID_PKMNUSEDSAFEGUARD 80 +#define STRINGID_PKMNSAFEGUARDEXPIRED 81 +#define STRINGID_PKMNWENTTOSLEEP 82 +#define STRINGID_PKMNSLEPTHEALTHY 83 +#define STRINGID_PKMNWHIPPEDWHIRLWIND 84 +#define STRINGID_PKMNTOOKSUNLIGHT 85 +#define STRINGID_PKMNLOWEREDHEAD 86 +#define STRINGID_PKMNISGLOWING 87 +#define STRINGID_PKMNFLEWHIGH 88 +#define STRINGID_PKMNDUGHOLE 89 +#define STRINGID_PKMNSQUEEZEDBYBIND 90 +#define STRINGID_PKMNTRAPPEDINVORTEX 91 +#define STRINGID_PKMNWRAPPEDBY 92 +#define STRINGID_PKMNCLAMPED 93 +#define STRINGID_PKMNHURTBY 94 +#define STRINGID_PKMNFREEDFROM 95 +#define STRINGID_PKMNCRASHED 96 +#define STRINGID_PKMNSHROUDEDINMIST 97 +#define STRINGID_PKMNPROTECTEDBYMIST 98 +#define STRINGID_PKMNGETTINGPUMPED 99 +#define STRINGID_PKMNHITWITHRECOIL 100 +#define STRINGID_PKMNPROTECTEDITSELF2 101 +#define STRINGID_PKMNBUFFETEDBYSANDSTORM 102 +#define STRINGID_PKMNPELTEDBYHAIL 103 +#define STRINGID_PKMNSEEDED 104 +#define STRINGID_PKMNEVADEDATTACK 105 +#define STRINGID_PKMNSAPPEDBYLEECHSEED 106 +#define STRINGID_PKMNFASTASLEEP 107 +#define STRINGID_PKMNWOKEUP 108 +#define STRINGID_PKMNUPROARKEPTAWAKE 109 +#define STRINGID_PKMNWOKEUPINUPROAR 110 +#define STRINGID_PKMNCAUSEDUPROAR 111 +#define STRINGID_PKMNMAKINGUPROAR 112 +#define STRINGID_PKMNCALMEDDOWN 113 +#define STRINGID_PKMNCANTSLEEPINUPROAR 114 +#define STRINGID_PKMNSTOCKPILED 115 +#define STRINGID_PKMNCANTSTOCKPILE 116 +#define STRINGID_PKMNCANTSLEEPINUPROAR2 117 +#define STRINGID_UPROARKEPTPKMNAWAKE 118 +#define STRINGID_PKMNSTAYEDAWAKEUSING 119 +#define STRINGID_PKMNSTORINGENERGY 120 +#define STRINGID_PKMNUNLEASHEDENERGY 121 +#define STRINGID_PKMNFATIGUECONFUSION 122 +#define STRINGID_PKMNPICKEDUPITEM 123 +#define STRINGID_PKMNUNAFFECTED 124 +#define STRINGID_PKMNTRANSFORMEDINTO 125 +#define STRINGID_PKMNMADESUBSTITUTE 126 +#define STRINGID_PKMNHASSUBSTITUTE 127 +#define STRINGID_SUBSTITUTEDAMAGED 128 +#define STRINGID_PKMNSUBSTITUTEFADED 129 +#define STRINGID_PKMNMUSTRECHARGE 130 +#define STRINGID_PKMNRAGEBUILDING 131 +#define STRINGID_PKMNMOVEWASDISABLED 132 +#define STRINGID_PKMNMOVEISDISABLED 133 +#define STRINGID_PKMNMOVEDISABLEDNOMORE 134 +#define STRINGID_PKMNGOTENCORE 135 +#define STRINGID_PKMNENCOREENDED 136 +#define STRINGID_PKMNTOOKAIM 137 +#define STRINGID_PKMNSKETCHEDMOVE 138 +#define STRINGID_PKMNTRYINGTOTAKEFOE 139 +#define STRINGID_PKMNTOOKFOE 140 +#define STRINGID_PKMNREDUCEDPP 141 +#define STRINGID_PKMNSTOLEITEM 142 +#define STRINGID_PKMNCANTESCAPE 143 +#define STRINGID_PKMNFELLINTONIGHTMARE 144 +#define STRINGID_PKMNLOCKEDINNIGHTMARE 145 +#define STRINGID_PKMNLAIDCURSE 146 +#define STRINGID_PKMNAFFLICTEDBYCURSE 147 +#define STRINGID_SPIKESSCATTERED 148 +#define STRINGID_PKMNHURTBYSPIKES 149 +#define STRINGID_PKMNIDENTIFIED 150 +#define STRINGID_PKMNPERISHCOUNTFELL 151 +#define STRINGID_PKMNBRACEDITSELF 152 +#define STRINGID_PKMNENDUREDHIT 153 +#define STRINGID_MAGNITUDESTRENGTH 154 +#define STRINGID_PKMNCUTHPMAXEDATTACK 155 +#define STRINGID_PKMNCOPIEDSTATCHANGES 156 +#define STRINGID_PKMNGOTFREE 157 +#define STRINGID_PKMNSHEDLEECHSEED 158 +#define STRINGID_PKMNBLEWAWAYSPIKES 159 +#define STRINGID_PKMNFLEDFROMBATTLE 160 +#define STRINGID_PKMNFORESAWATTACK 161 +#define STRINGID_PKMNTOOKATTACK 162 +#define STRINGID_PKMNATTACK 163 +#define STRINGID_PKMNCENTERATTENTION 164 +#define STRINGID_PKMNCHARGINGPOWER 165 +#define STRINGID_NATUREPOWERTURNEDINTO 166 +#define STRINGID_PKMNSTATUSNORMAL 167 +#define STRINGID_PKMNHASNOMOVESLEFT 168 +#define STRINGID_PKMNSUBJECTEDTOTORMENT 169 +#define STRINGID_PKMNCANTUSEMOVETORMENT 170 +#define STRINGID_PKMNTIGHTENINGFOCUS 171 +#define STRINGID_PKMNFELLFORTAUNT 172 +#define STRINGID_PKMNCANTUSEMOVETAUNT 173 +#define STRINGID_PKMNREADYTOHELP 174 +#define STRINGID_PKMNSWITCHEDITEMS 175 +#define STRINGID_PKMNCOPIEDFOE 176 +#define STRINGID_PKMNMADEWISH 177 +#define STRINGID_PKMNWISHCAMETRUE 178 +#define STRINGID_PKMNPLANTEDROOTS 179 +#define STRINGID_PKMNABSORBEDNUTRIENTS 180 +#define STRINGID_PKMNANCHOREDITSELF 181 +#define STRINGID_PKMNWASMADEDROWSY 182 +#define STRINGID_PKMNKNOCKEDOFF 183 +#define STRINGID_PKMNSWAPPEDABILITIES 184 +#define STRINGID_PKMNSEALEDOPPONENTMOVE 185 +#define STRINGID_PKMNCANTUSEMOVESEALED 186 +#define STRINGID_PKMNWANTSGRUDGE 187 +#define STRINGID_PKMNLOSTPPGRUDGE 188 +#define STRINGID_PKMNSHROUDEDITSELF 189 +#define STRINGID_PKMNMOVEBOUNCED 190 +#define STRINGID_PKMNWAITSFORTARGET 191 +#define STRINGID_PKMNSNATCHEDMOVE 192 +#define STRINGID_PKMNMADEITRAIN 193 +#define STRINGID_PKMNRAISEDSPEED 194 +#define STRINGID_PKMNPROTECTEDBY 195 +#define STRINGID_PKMNPREVENTSUSAGE 196 +#define STRINGID_PKMNRESTOREDHPUSING 197 +#define STRINGID_PKMNCHANGEDTYPEWITH 198 +#define STRINGID_PKMNPREVENTSPARALYSISWITH 199 +#define STRINGID_PKMNPREVENTSROMANCEWITH 200 +#define STRINGID_PKMNPREVENTSPOISONINGWITH 201 +#define STRINGID_PKMNPREVENTSCONFUSIONWITH 202 +#define STRINGID_PKMNRAISEDFIREPOWERWITH 203 +#define STRINGID_PKMNANCHORSITSELFWITH 204 +#define STRINGID_PKMNCUTSATTACKWITH 205 +#define STRINGID_PKMNPREVENTSSTATLOSSWITH 206 +#define STRINGID_PKMNHURTSWITH 207 +#define STRINGID_PKMNTRACED 208 +#define STRINGID_STATSHARPLY 209 +#define STRINGID_STATROSE 210 +#define STRINGID_STATHARSHLY 211 +#define STRINGID_STATFELL 212 +#define STRINGID_PKMNSSTATCHANGED 213 +#define STRINGID_PKMNSSTATCHANGED2 214 +#define STRINGID_PKMNSSTATCHANGED3 215 +#define STRINGID_PKMNSSTATCHANGED4 216 +#define STRINGID_CRITICALHIT 217 +#define STRINGID_ONEHITKO 218 +#define STRINGID_123POOF 219 +#define STRINGID_ANDELLIPSIS 220 +#define STRINGID_NOTVERYEFFECTIVE 221 +#define STRINGID_SUPEREFFECTIVE 222 +#define STRINGID_GOTAWAYSAFELY 223 +#define STRINGID_WILDPKMNFLED 224 +#define STRINGID_NORUNNINGFROMTRAINERS 225 +#define STRINGID_CANTESCAPE 226 +#define STRINGID_DONTLEAVEBIRCH 227 +#define STRINGID_BUTNOTHINGHAPPENED 228 +#define STRINGID_BUTITFAILED 229 +#define STRINGID_ITHURTCONFUSION 230 +#define STRINGID_MIRRORMOVEFAILED 231 +#define STRINGID_STARTEDTORAIN 232 +#define STRINGID_DOWNPOURSTARTED 233 +#define STRINGID_RAINCONTINUES 234 +#define STRINGID_DOWNPOURCONTINUES 235 +#define STRINGID_RAINSTOPPED 236 +#define STRINGID_SANDSTORMBREWED 237 +#define STRINGID_SANDSTORMRAGES 238 +#define STRINGID_SANDSTORMSUBSIDED 239 +#define STRINGID_SUNLIGHTGOTBRIGHT 240 +#define STRINGID_SUNLIGHTSTRONG 241 +#define STRINGID_SUNLIGHTFADED 242 +#define STRINGID_STARTEDHAIL 243 +#define STRINGID_HAILCONTINUES 244 +#define STRINGID_HAILSTOPPED 245 +#define STRINGID_FAILEDTOSPITUP 246 +#define STRINGID_FAILEDTOSWALLOW 247 +#define STRINGID_WINDBECAMEHEATWAVE 248 +#define STRINGID_STATCHANGESGONE 249 +#define STRINGID_COINSSCATTERED 250 +#define STRINGID_TOOWEAKFORSUBSTITUTE 251 +#define STRINGID_SHAREDPAIN 252 +#define STRINGID_BELLCHIMED 253 +#define STRINGID_FAINTINTHREE 254 +#define STRINGID_NOPPLEFT 255 +#define STRINGID_BUTNOPPLEFT 256 +#define STRINGID_PLAYERUSEDITEM 257 +#define STRINGID_WALLYUSEDITEM 258 +#define STRINGID_TRAINERBLOCKEDBALL 259 +#define STRINGID_DONTBEATHIEF 260 +#define STRINGID_ITDODGEDBALL 261 +#define STRINGID_YOUMISSEDPKMN 262 +#define STRINGID_PKMNBROKEFREE 263 +#define STRINGID_ITAPPEAREDCAUGHT 264 +#define STRINGID_AARGHALMOSTHADIT 265 +#define STRINGID_SHOOTSOCLOSE 266 +#define STRINGID_GOTCHAPKMNCAUGHT 267 +#define STRINGID_GOTCHAPKMNCAUGHT2 268 +#define STRINGID_GIVENICKNAMECAPTURED 269 +#define STRINGID_PKMNSENTTOPC 270 +#define STRINGID_PKMNDATAADDEDTODEX 271 +#define STRINGID_ITISRAINING 272 +#define STRINGID_SANDSTORMISRAGING 273 +#define STRINGID_CANTESCAPE2 274 +#define STRINGID_PKMNIGNORESASLEEP 275 +#define STRINGID_PKMNIGNOREDORDERS 276 +#define STRINGID_PKMNBEGANTONAP 277 +#define STRINGID_PKMNLOAFING 278 +#define STRINGID_PKMNWONTOBEY 279 +#define STRINGID_PKMNTURNEDAWAY 280 +#define STRINGID_PKMNPRETENDNOTNOTICE 281 +#define STRINGID_ENEMYABOUTTOSWITCHPKMN 282 +#define STRINGID_CREPTCLOSER 283 +#define STRINGID_CANTGETCLOSER 284 +#define STRINGID_PKMNWATCHINGCAREFULLY 285 +#define STRINGID_PKMNCURIOUSABOUTX 286 +#define STRINGID_PKMNENTHRALLEDBYX 287 +#define STRINGID_PKMNIGNOREDX 288 +#define STRINGID_THREWPOKEBLOCKATPKMN 289 +#define STRINGID_OUTOFSAFARIBALLS 290 +#define STRINGID_PKMNSITEMCUREDPARALYSIS 291 +#define STRINGID_PKMNSITEMCUREDPOISON 292 +#define STRINGID_PKMNSITEMHEALEDBURN 293 +#define STRINGID_PKMNSITEMDEFROSTEDIT 294 +#define STRINGID_PKMNSITEMWOKEIT 295 +#define STRINGID_PKMNSITEMSNAPPEDOUT 296 +#define STRINGID_PKMNSITEMCUREDPROBLEM 297 +#define STRINGID_PKMNSITEMRESTOREDHEALTH 298 +#define STRINGID_PKMNSITEMRESTOREDPP 299 +#define STRINGID_PKMNSITEMRESTOREDSTATUS 300 +#define STRINGID_PKMNSITEMRESTOREDHPALITTLE 301 +#define STRINGID_ITEMALLOWSONLYYMOVE 302 +#define STRINGID_PKMNHUNGONWITHX 303 +#define STRINGID_EMPTYSTRING3 304 +#define STRINGID_PKMNSXPREVENTSBURNS 305 +#define STRINGID_PKMNSXBLOCKSY 306 +#define STRINGID_PKMNSXRESTOREDHPALITTLE2 307 +#define STRINGID_PKMNSXWHIPPEDUPSANDSTORM 308 +#define STRINGID_PKMNSXPREVENTSYLOSS 309 +#define STRINGID_PKMNSXINFATUATEDY 310 +#define STRINGID_PKMNSXMADEYINEFFECTIVE 311 +#define STRINGID_PKMNSXCUREDYPROBLEM 312 +#define STRINGID_ITSUCKEDLIQUIDOOZE 313 +#define STRINGID_PKMNTRANSFORMED 314 +#define STRINGID_ELECTRICITYWEAKENED 315 +#define STRINGID_FIREWEAKENED 316 +#define STRINGID_PKMNHIDUNDERWATER 317 +#define STRINGID_PKMNSPRANGUP 318 +#define STRINGID_HMMOVESCANTBEFORGOTTEN 319 +#define STRINGID_XFOUNDONEY 320 +#define STRINGID_PLAYERDEFEATEDTRAINER1 321 +#define STRINGID_SOOTHINGAROMA 322 +#define STRINGID_ITEMSCANTBEUSEDNOW 323 +#define STRINGID_FORXCOMMAYZ 324 +#define STRINGID_USINGXTHEYOFZN 325 +#define STRINGID_PKMNUSEDXTOGETPUMPED 326 +#define STRINGID_PKMNSXMADEYUSELESS 327 +#define STRINGID_PKMNTRAPPEDBYSANDTOMB 328 +#define STRINGID_EMPTYSTRING4 329 +#define STRINGID_ABOOSTED 330 +#define STRINGID_PKMNSXINTENSIFIEDSUN 331 +#define STRINGID_PKMNMAKESGROUNDMISS 332 +#define STRINGID_YOUTHROWABALLNOWRIGHT 333 +#define STRINGID_PKMNSXTOOKATTACK 334 +#define STRINGID_PKMNCHOSEXASDESTINY 335 +#define STRINGID_PKMNLOSTFOCUS 336 +#define STRINGID_USENEXTPKMN 337 +#define STRINGID_PKMNFLEDUSINGITS 338 +#define STRINGID_PKMNFLEDUSING 339 +#define STRINGID_PKMNWASDRAGGEDOUT 340 +#define STRINGID_PREVENTEDFROMWORKING 341 +#define STRINGID_PKMNSITEMNORMALIZEDSTATUS 342 +#define STRINGID_TRAINER1USEDITEM 343 +#define STRINGID_BOXISFULL 344 +#define STRINGID_PKMNAVOIDEDATTACK 345 +#define STRINGID_PKMNSXMADEITINEFFECTIVE 346 +#define STRINGID_PKMNSXPREVENTSFLINCHING 347 +#define STRINGID_PKMNALREADYHASBURN 348 +#define STRINGID_STATSWONTDECREASE2 349 +#define STRINGID_PKMNSXBLOCKSY2 350 +#define STRINGID_PKMNSXWOREOFF 351 +#define STRINGID_PKMNRAISEDDEFALITTLE 352 +#define STRINGID_PKMNRAISEDSPDEFALITTLE 353 +#define STRINGID_THEWALLSHATTERED 354 +#define STRINGID_PKMNSXPREVENTSYSZ 355 +#define STRINGID_PKMNSXCUREDITSYPROBLEM 356 +#define STRINGID_PKMNCANTESCAPE2 357 +#define STRINGID_PKMNOBTAINEDX 358 +#define STRINGID_PKMNOBTAINEDX2 359 +#define STRINGID_PKMNOBTAINEDXYOBTAINEDZ 360 +#define STRINGID_BUTNOEFFECT 361 +#define STRINGID_PKMNSXHADNOEFFECTONY 362 +#define STRINGID_TWOENEMIESDEFEATED 363 +#define STRINGID_TRAINER2LOSETEXT 364 +#define STRINGID_PKMNINCAPABLEOFPOWER 365 +#define STRINGID_GLINTAPPEARSINEYE 366 +#define STRINGID_PKMNGETTINGINTOPOSITION 367 +#define STRINGID_PKMNBEGANGROWLINGDEEPLY 368 +#define STRINGID_PKMNEAGERFORMORE 369 +#define STRINGID_DEFEATEDOPPONENTBYREFEREE 370 +#define STRINGID_LOSTTOOPPONENTBYREFEREE 371 +#define STRINGID_TIEDOPPONENTBYREFEREE 372 +#define STRINGID_QUESTIONFORFEITMATCH 373 +#define STRINGID_FORFEITEDMATCH 374 +#define STRINGID_PKMNTRANSFERREDSOMEONESPC 375 +#define STRINGID_PKMNTRANSFERREDLANETTESPC 376 +#define STRINGID_PKMNBOXSOMEONESPCFULL 377 +#define STRINGID_PKMNBOXLANETTESPCFULL 378 +#define STRINGID_TRAINER1WINTEXT 379 +#define STRINGID_TRAINER2WINTEXT 380 + +#endif // GUARD_BATTLE_STRING_IDS_H diff --git a/ld_script.txt b/ld_script.txt index de6ba62f1..20ec4d145 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -190,6 +190,7 @@ SECTIONS { asm/fldeff_strength.o(.text); asm/battle_transition.o(.text); asm/battle_controller_linkpartner.o(.text); + src/battle_message.o(.text); asm/battle_message.o(.text); asm/cable_car.o(.text); asm/math_util.o(.text); @@ -411,7 +412,7 @@ SECTIONS { src/battle_ai_script_commands.o(.rodata); data/data4.o(.rodata); data/battle_controller_link_partner.o(.rodata); - data/battle_message.o(.rodata); + src/battle_message.o(.rodata); data/cable_car.o(.rodata); data/save.o(.rodata); data/field_effect_helpers.o(.rodata); diff --git a/src/battle_2.c b/src/battle_2.c index fd7cf6863..0fc7e8ffd 100644 --- a/src/battle_2.c +++ b/src/battle_2.c @@ -41,6 +41,7 @@ #include "evolution_scene.h" #include "roamer.h" #include "safari_zone.h" +#include "battle_string_ids.h" struct UnknownStruct6 { @@ -3299,7 +3300,7 @@ static void BattleIntroPrintTrainerWantsToBattle(void) if (gBattleExecBuffer == 0) { gActiveBank = GetBankByIdentity(IDENTITY_OPPONENT_MON1); - PrepareStringBattle(0, gActiveBank); + PrepareStringBattle(STRINGID_INTROMSG, gActiveBank); gBattleMainFunc = BattleIntroPrintOpponentSendsOut; } } @@ -3309,7 +3310,7 @@ static void BattleIntroPrintWildMonAttacked(void) if (gBattleExecBuffer == 0) { gBattleMainFunc = BattleIntroPrintPlayerSendsOut; - PrepareStringBattle(0, 0); + PrepareStringBattle(STRINGID_INTROMSG, 0); } } @@ -3332,7 +3333,7 @@ static void BattleIntroPrintOpponentSendsOut(void) else identity = IDENTITY_OPPONENT_MON1; - PrepareStringBattle(1, GetBankByIdentity(identity)); + PrepareStringBattle(STRINGID_INTROSENDOUT, GetBankByIdentity(identity)); gBattleMainFunc = BattleIntroOpponent1SendsOutMonAnimation; } @@ -3535,7 +3536,7 @@ static void BattleIntroPrintPlayerSendsOut(void) identity = IDENTITY_PLAYER_MON1; if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) - PrepareStringBattle(1, GetBankByIdentity(identity)); + PrepareStringBattle(STRINGID_INTROSENDOUT, GetBankByIdentity(identity)); gBattleMainFunc = BattleIntroPlayer1SendsOutMonAnimation; } diff --git a/src/battle_message.c b/src/battle_message.c new file mode 100644 index 000000000..aaaf23fae --- /dev/null +++ b/src/battle_message.c @@ -0,0 +1,1428 @@ +#include "global.h" +#include "battle.h" +#include "battle_message.h" +#include "battle_string_ids.h" +#include "moves.h" +#include "text.h" +#include "string_util.h" + +extern u16 gLastUsedItem; +extern u8 gLastUsedAbility; +extern u8 gActiveBank; +extern u8 gBankAttacker; +extern u8 gBankTarget; +extern u8 gStringBank; +extern u8 gEffectBank; +extern u8 gAbilitiesPerBank[BATTLE_BANKS_COUNT]; +extern u32 gBattleTypeFlags; +extern u16 gTrainerBattleOpponent_A; +extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; +extern struct BattleEnigmaBerry gEnigmaBerries[BATTLE_BANKS_COUNT]; +extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200]; + +extern const u8 gMoveNames[LAST_MOVE_INDEX + 1][13]; + +// strings +extern const u8 gText_PkmnBoxSomeonesPCFull[]; +extern const u8 gText_PkmnBoxLanettesPCFull[]; +extern const u8 gText_PkmnTransferredSomeonesPC[]; +extern const u8 gText_PkmnTransferredLanettesPC[]; + +// this file's functions +void sub_814F8F8(u8 *txtPtr); +void sub_814F950(u8 *txtPtr); + +// ewram variables +EWRAM_DATA u8 gDisplayedStringBattle[300] = {0}; +EWRAM_DATA u8 gBattleTextBuff1[TEXT_BUFF_ARRAY_COUNT] = {0}; +EWRAM_DATA u8 gBattleTextBuff2[TEXT_BUFF_ARRAY_COUNT] = {0}; +EWRAM_DATA u8 gBattleTextBuff3[TEXT_BUFF_ARRAY_COUNT] = {0}; + +// const rom data + +const u8 gText_Trainer1LoseText[] = _("{B_TRAINER1_LOSE_TEXT}"); +const u8 gText_PkmnGainedEXP[] = _("{B_BUFF1} gained{B_BUFF2}\n{B_BUFF3} EXP. Points!\p"); +const u8 gText_EmptyString4[] = _(""); +const u8 gText_ABoosted[] = _(" a boosted"); +const u8 gText_PkmnGrewToLv[] = _("{B_BUFF1} grew to\nLV. {B_BUFF2}!{UNKNOWN_A}\p"); +const u8 gText_PkmnLearnedMove[] = _("{B_BUFF1} learned\n{B_BUFF2}!{UNKNOWN_A}\p"); +const u8 gText_TryToLearnMove1[] = _("{B_BUFF1} is trying to\nlearn {B_BUFF2}.\p"); +const u8 gText_TryToLearnMove2[] = _("But, {B_BUFF1} can’t learn\nmore than four moves.\p"); +const u8 gText_TryToLearnMove3[] = _("Delete a move to make\nroom for {B_BUFF2}?"); +const u8 gText_PkmnForgotMove[] = _("{B_BUFF1} forgot\n{B_BUFF2}.\p"); +const u8 gText_StopLearningMove[] = _("{PAUSE 32}Stop learning\n{B_BUFF2}?"); +const u8 gText_DidNotLearnMove[] = _("{B_BUFF1} did not learn\n{B_BUFF2}.\p"); +const u8 gText_UseNextPkmn[] = _("Use next POKéMON?"); +const u8 gText_AttackMissed[] = _("{B_ATK_NAME_WITH_PREFIX}’s\nattack missed!"); +const u8 gText_PkmnProtectedItself[] = _("{B_DEF_NAME_WITH_PREFIX}\nprotected itself!"); +const u8 gText_AvoidedDamage[] = _("{B_DEF_NAME_WITH_PREFIX} avoided\ndamage with {B_DEF_ABILITY}!"); +const u8 gText_PkmnMakesGroundMiss[] = _("{B_DEF_NAME_WITH_PREFIX} makes GROUND\nmoves miss with {B_DEF_ABILITY}!"); +const u8 gText_PkmnAvoidedAttack[] = _("{B_DEF_NAME_WITH_PREFIX} avoided\nthe attack!"); +const u8 gText_ItDoesntAffect[] = _("It doesn’t affect\n{B_DEF_NAME_WITH_PREFIX}…"); +const u8 gText_PkmnFainted[] = _("{B_ATK_NAME_WITH_PREFIX}\nfainted!\p"); +const u8 gText_PkmnFainted2[] = _("{B_DEF_NAME_WITH_PREFIX}\nfainted!\p"); +const u8 gText_PlayerGotMoney[] = _("{B_PLAYER_NAME} got ¥{B_BUFF1}\nfor winning!\p"); +const u8 gText_PlayerWhiteout[] = _("{B_PLAYER_NAME} is out of\nusable POKéMON!\p"); +const u8 gText_PlayerWhiteout2[] = _("{B_PLAYER_NAME} whited out!{PAUSE_UNTIL_PRESS}"); +const u8 gText_PreventsEscape[] = _("{B_ACTIVE_NAME_WITH_PREFIX} prevents\nescape with {B_SCR_ACTIVE_ABILITY}!\p"); +const u8 gText_CantEscape2[] = _("Can’t escape!\p"); +const u8 gText_PkmnCantEscape2[] = _("{B_ATK_NAME_WITH_PREFIX} can’t escape!"); +const u8 gText_HitXTimes[] = _("Hit {B_BUFF1} time(s)!"); +const u8 gText_PkmnFellAsleep[] = _("{B_EFF_NAME_WITH_PREFIX}\nfell asleep!"); +const u8 gText_PkmnMadeSleep[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nmade {B_EFF_NAME_WITH_PREFIX} sleep!"); +const u8 gText_PkmnAlreadyAsleep[] = _("{B_DEF_NAME_WITH_PREFIX} is\nalready asleep!"); +const u8 gText_PkmnAlreadyAsleep2[] = _("{B_ATK_NAME_WITH_PREFIX} is\nalready asleep!"); +const u8 gText_PkmnWasntAffected[] = _("{B_DEF_NAME_WITH_PREFIX}\nwasn’t affected!"); +const u8 gText_PkmnWasPoisoned[] = _("{B_EFF_NAME_WITH_PREFIX}\nwas poisoned!"); +const u8 gText_PkmnPoisonedBy[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\npoisoned {B_EFF_NAME_WITH_PREFIX}!"); +const u8 gText_PkmnHurtByPoison[] = _("{B_ATK_NAME_WITH_PREFIX} is hurt\nby poison!"); +const u8 gText_PkmnAlreadyPoisoned[] = _("{B_DEF_NAME_WITH_PREFIX} is already\npoisoned."); +const u8 gText_PkmnBadlyPoisoned[] = _("{B_EFF_NAME_WITH_PREFIX} is badly\npoisoned!"); +const u8 gText_PkmnEnergyDrained[] = _("{B_DEF_NAME_WITH_PREFIX} had its\nenergy drained!"); +const u8 gText_PkmnWasBurned[] = _("{B_EFF_NAME_WITH_PREFIX} was burned!"); +const u8 gText_PkmnBurnedBy[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nburned {B_EFF_NAME_WITH_PREFIX}!"); +const u8 gText_PkmnHurtByBurn[] = _("{B_ATK_NAME_WITH_PREFIX} is hurt\nby its burn!"); +const u8 gText_PkmnAlreadyHasBurn[] = _("{B_DEF_NAME_WITH_PREFIX} already\nhas a burn."); +const u8 gText_PkmnWasFrozen[] = _("{B_EFF_NAME_WITH_PREFIX} was\nfrozen solid!"); +const u8 gText_PkmnFrozenBy[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nfroze {B_EFF_NAME_WITH_PREFIX} solid!"); +const u8 gText_PkmnIsFrozen[] = _("{B_ATK_NAME_WITH_PREFIX} is\nfrozen solid!"); +const u8 gText_PkmnWasDefrosted[] = _("{B_DEF_NAME_WITH_PREFIX} was\ndefrosted!"); +const u8 gText_PkmnWasDefrosted2[] = _("{B_ATK_NAME_WITH_PREFIX} was\ndefrosted!"); +const u8 gText_PkmnWasDefrostedBy[] = _("{B_ATK_NAME_WITH_PREFIX} was\ndefrosted by {B_CURRENT_MOVE}!"); +const u8 gText_PkmnWasParalyzed[] = _("{B_EFF_NAME_WITH_PREFIX} is paralyzed!\nIt may be unable to move!"); +const u8 gText_PkmnWasParalyzedBy[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nparalyzed {B_EFF_NAME_WITH_PREFIX}!\lIt may be unable to move!"); +const u8 gText_PkmnIsParalyzed[] = _("{B_ATK_NAME_WITH_PREFIX} is paralyzed!\nIt can’t move!"); +const u8 gText_PkmnIsAlreadyParalyzed[] = _("{B_DEF_NAME_WITH_PREFIX} is\nalready paralyzed!"); +const u8 gText_PkmnHealedParalysis[] = _("{B_DEF_NAME_WITH_PREFIX} was\nhealed of paralysis!"); +const u8 gText_PkmnDreamEaten[] = _("{B_DEF_NAME_WITH_PREFIX}’s\ndream was eaten!"); +const u8 gText_StatsWontIncrease[] = _("{B_ATK_NAME_WITH_PREFIX}’s {B_BUFF1}\nwon’t go higher!"); +const u8 gText_StatsWontDecrease[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_BUFF1}\nwon’t go lower!"); +const u8 gText_TeamStoppedWorking[] = _("Your team’s {B_BUFF1}\nstopped working!"); +const u8 gText_FoeStoppedWorking[] = _("The foe’s {B_BUFF1}\nstopped working!"); +const u8 gText_PkmnIsConfused[] = _("{B_ATK_NAME_WITH_PREFIX} is\nconfused!"); +const u8 gText_PkmnHealedConfusion[] = _("{B_ATK_NAME_WITH_PREFIX} snapped\nout of confusion!"); +const u8 gText_PkmnWasConfused[] = _("{B_EFF_NAME_WITH_PREFIX} became\nconfused!"); +const u8 gText_PkmnAlreadyConfused[] = _("{B_DEF_NAME_WITH_PREFIX} is\nalready confused!"); +const u8 gText_PkmnFellInLove[] = _("{B_DEF_NAME_WITH_PREFIX}\nfell in love!"); +const u8 gText_PkmnInLove[] = _("{B_ATK_NAME_WITH_PREFIX} is in love\nwith {B_ACTIVE_NAME_WITH_PREFIX}!"); +const u8 gText_PkmnImmobilizedByLove[] = _("{B_ATK_NAME_WITH_PREFIX} is\nimmobilized by love!"); +const u8 gText_PkmnBlownAway[] = _("{B_DEF_NAME_WITH_PREFIX} was\nblown away!"); +const u8 gText_PkmnChangedType[] = _("{B_ATK_NAME_WITH_PREFIX} transformed\ninto the {B_BUFF1} type!"); +const u8 gText_PkmnFlinched[] = _("{B_ATK_NAME_WITH_PREFIX} flinched!"); +const u8 gText_PkmnRegainedHealth[] = _("{B_DEF_NAME_WITH_PREFIX} regained\nhealth!"); +const u8 gText_PkmnHPFull[] = _("{B_DEF_NAME_WITH_PREFIX}’s\nHP is full!"); +const u8 gText_PkmnRaisedSpDef[] = _("{B_ATK_PREFIX2}’s {B_CURRENT_MOVE}\nraised SP. DEF!"); +const u8 gText_PkmnRaisedSpDefALittle[] = _("{B_ATK_PREFIX2}’s {B_CURRENT_MOVE}\nraised SP. DEF a little!"); +const u8 gText_PkmnRaisedDef[] = _("{B_ATK_PREFIX2}’s {B_CURRENT_MOVE}\nraised DEFENSE!"); +const u8 gText_PkmnRaisedDefALittle[] = _("{B_ATK_PREFIX2}’s {B_CURRENT_MOVE}\nraised DEFENSE a little!"); +const u8 gText_PkmnCoveredByVeil[] = _("{B_ATK_PREFIX2}’s party is covered\nby a veil!"); +const u8 gText_PkmnUsedSafeguard[] = _("{B_DEF_NAME_WITH_PREFIX}’s party is protected\nby SAFEGUARD!"); +const u8 gText_PkmnSafeguardExpired[] = _("{B_ATK_PREFIX3}’s party is no longer\nprotected by SAFEGUARD!"); +const u8 gText_PkmnWentToSleep[] = _("{B_ATK_NAME_WITH_PREFIX} went\nto sleep!"); +const u8 gText_PkmnSleptHealthy[] = _("{B_ATK_NAME_WITH_PREFIX} slept and\nbecame healthy!"); +const u8 gText_PkmnWhippedWhirlwind[] = _("{B_ATK_NAME_WITH_PREFIX} whipped\nup a whirlwind!"); +const u8 gText_PkmnTookSunlight[] = _("{B_ATK_NAME_WITH_PREFIX} took\nin sunlight!"); +const u8 gText_PkmnLoweredHead[] = _("{B_ATK_NAME_WITH_PREFIX} lowered\nits head!"); +const u8 gText_PkmnIsGlowing[] = _("{B_ATK_NAME_WITH_PREFIX} is glowing!"); +const u8 gText_PkmnFlewHigh[] = _("{B_ATK_NAME_WITH_PREFIX} flew\nup high!"); +const u8 gText_PkmnDugHole[] = _("{B_ATK_NAME_WITH_PREFIX} dug a hole!"); +const u8 gText_PkmnHidUnderwater[] = _("{B_ATK_NAME_WITH_PREFIX} hid\nunderwater!"); +const u8 gText_PkmnSprangUp[] = _("{B_ATK_NAME_WITH_PREFIX} sprang up!"); +const u8 gText_PkmnSqueezedByBind[] = _("{B_DEF_NAME_WITH_PREFIX} was squeezed by\n{B_ATK_NAME_WITH_PREFIX}’s BIND!"); +const u8 gText_PkmnTrappedInVortex[] = _("{B_DEF_NAME_WITH_PREFIX} was trapped\nin the vortex!"); +const u8 gText_PkmnTrappedBySandTomb[] = _("{B_DEF_NAME_WITH_PREFIX} was trapped\nby SAND TOMB!"); +const u8 gText_PkmnWrappedBy[] = _("{B_DEF_NAME_WITH_PREFIX} was WRAPPED by\n{B_ATK_NAME_WITH_PREFIX}!"); +const u8 gText_PkmnClamped[] = _("{B_ATK_NAME_WITH_PREFIX} CLAMPED\n{B_DEF_NAME_WITH_PREFIX}!"); +const u8 gText_PkmnHurtBy[] = _("{B_ATK_NAME_WITH_PREFIX} is hurt\nby {B_BUFF1}!"); +const u8 gText_PkmnFreedFrom[] = _("{B_ATK_NAME_WITH_PREFIX} was freed\nfrom {B_BUFF1}!"); +const u8 gText_PkmnCrashed[] = _("{B_ATK_NAME_WITH_PREFIX} kept going\nand crashed!"); +const u8 gText_PkmnShroudedInMist[] = _("{B_ATK_PREFIX2} became\nshrouded in MIST!"); +const u8 gText_PkmnProtectedByMist[] = _("{B_ACTIVE_NAME_WITH_PREFIX} is protected\nby MIST!"); +const u8 gText_PkmnGettingPumped[] = _("{B_ATK_NAME_WITH_PREFIX} is getting\npumped!"); +const u8 gText_PkmnHitWithRecoil[] = _("{B_ATK_NAME_WITH_PREFIX} is hit\nwith recoil!"); +const u8 gText_PkmnProtectedItself2[] = _("{B_ATK_NAME_WITH_PREFIX} protected\nitself!"); +const u8 gText_PkmnBuffetedBySandstorm[] = _("{B_ATK_NAME_WITH_PREFIX} is buffeted\nby the sandstorm!"); +const u8 gText_PkmnPeltedByHail[] = _("{B_ATK_NAME_WITH_PREFIX} is pelted\nby HAIL!"); +const u8 gText_PkmnsXWoreOff[] = _("{B_ATK_PREFIX1}’s {B_BUFF1}\nwore off!"); +const u8 gText_PkmnSeeded[] = _("{B_DEF_NAME_WITH_PREFIX} was seeded!"); +const u8 gText_PkmnEvadedAttack[] = _("{B_DEF_NAME_WITH_PREFIX} evaded\nthe attack!"); +const u8 gText_PkmnSappedByLeechSeed[] = _("{B_ATK_NAME_WITH_PREFIX}’s health is\nsapped by LEECH SEED!"); +const u8 gText_PkmnFastAsleep[] = _("{B_ATK_NAME_WITH_PREFIX} is fast\nasleep."); +const u8 gText_PkmnWokeUp[] = _("{B_ATK_NAME_WITH_PREFIX} woke up!"); +const u8 gText_PkmnUproarKeptAwake[] = _("But {B_ACTIVE_NAME_WITH_PREFIX}’s UPROAR\nkept it awake!"); +const u8 gText_PkmnWokeUpInUproar[] = _("{B_ATK_NAME_WITH_PREFIX} woke up\nin the UPROAR!"); +const u8 gText_PkmnCausedUproar[] = _("{B_ATK_NAME_WITH_PREFIX} caused\nan UPROAR!"); +const u8 gText_PkmnMakingUproar[] = _("{B_ATK_NAME_WITH_PREFIX} is making\nan UPROAR!"); +const u8 gText_PkmnCalmedDown[] = _("{B_ATK_NAME_WITH_PREFIX} calmed down."); +const u8 gText_PkmnCantSleepInUproar[] = _("But {B_DEF_NAME_WITH_PREFIX} can’t\nsleep in an UPROAR!"); +const u8 gText_PkmnStockpiled[] = _("{B_ATK_NAME_WITH_PREFIX} STOCKPILED\n{B_BUFF1}!"); +const u8 gText_PkmnCantStockpile[] = _("{B_ATK_NAME_WITH_PREFIX} can’t\nSTOCKPILE any more!"); +const u8 gText_PkmnCantSleepInUproar2[] = _("But {B_DEF_NAME_WITH_PREFIX} can’t\nsleep in an UPROAR!"); +const u8 gText_UproarKeptPkmnAwake[] = _("But the UPROAR kept\n{B_DEF_NAME_WITH_PREFIX} awake!"); +const u8 gText_PkmnStayedAwakeUsing[] = _("{B_DEF_NAME_WITH_PREFIX} stayed awake\nusing its {B_DEF_ABILITY}!"); +const u8 gText_PkmnStoringEnergy[] = _("{B_ATK_NAME_WITH_PREFIX} is storing\nenergy!"); +const u8 gText_PkmnUnleashedEnergy[] = _("{B_ATK_NAME_WITH_PREFIX} unleashed\nenergy!"); +const u8 gText_PkmnFatigueConfusion[] = _("{B_ATK_NAME_WITH_PREFIX} became\nconfused due to fatigue!"); +const u8 gText_PkmnPickedUpItem[] = _("{B_PLAYER_NAME} picked up\n¥{B_BUFF1}!\p"); +const u8 gText_PkmnUnaffected[] = _("{B_DEF_NAME_WITH_PREFIX} is\nunaffected!"); +const u8 gText_PkmnTransformedInto[] = _("{B_ATK_NAME_WITH_PREFIX} transformed\ninto {B_BUFF1}!"); +const u8 gText_PkmnMadeSubstitute[] = _("{B_ATK_NAME_WITH_PREFIX} made\na SUBSTITUTE!"); +const u8 gText_PkmnHasSubstitute[] = _("{B_ATK_NAME_WITH_PREFIX} already\nhas a SUBSTITUTE!"); +const u8 gText_SubstituteDamaged[] = _("The SUBSTITUTE took damage\nfor {B_DEF_NAME_WITH_PREFIX}!\p"); +const u8 gText_PkmnSubstituteFaded[] = _("{B_DEF_NAME_WITH_PREFIX}’s\nSUBSTITUTE faded!\p"); +const u8 gText_PkmnMustRecharge[] = _("{B_ATK_NAME_WITH_PREFIX} must\nrecharge!"); +const u8 gText_PkmnRageBuilding[] = _("{B_DEF_NAME_WITH_PREFIX}’s RAGE\nis building!"); +const u8 gText_PkmnMoveWasDisabled[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_BUFF1}\nwas disabled!"); +const u8 gText_PkmnMoveDisabledNoMore[] = _("{B_ATK_NAME_WITH_PREFIX} is disabled\nno more!"); +const u8 gText_PkmnGotEncore[] = _("{B_DEF_NAME_WITH_PREFIX} got\nan ENCORE!"); +const u8 gText_PkmnEncoreEnded[] = _("{B_ATK_NAME_WITH_PREFIX}’s ENCORE\nended!"); +const u8 gText_PkmnTookAim[] = _("{B_ATK_NAME_WITH_PREFIX} took aim\nat {B_DEF_NAME_WITH_PREFIX}!"); +const u8 gText_PkmnSketchedMove[] = _("{B_ATK_NAME_WITH_PREFIX} SKETCHED\n{B_BUFF1}!"); +const u8 gText_PkmnTryingToTakeFoe[] = _("{B_ATK_NAME_WITH_PREFIX} is trying\nto take its foe with it!"); +const u8 gText_PkmnTookFoe[] = _("{B_DEF_NAME_WITH_PREFIX} took\n{B_ATK_NAME_WITH_PREFIX} with it!"); +const u8 gText_PkmnReducedPP[] = _("Reduced {B_DEF_NAME_WITH_PREFIX}’s\n{B_BUFF1} by {B_BUFF2}!"); +const u8 gText_PkmnStoleItem[] = _("{B_ATK_NAME_WITH_PREFIX} stole\n{B_DEF_NAME_WITH_PREFIX}’s {B_LAST_ITEM}!"); +const u8 gText_PkmnCantEscape[] = _("{B_DEF_NAME_WITH_PREFIX} can’t\nescape now!"); +const u8 gText_PkmnFellIntoNightmare[] = _("{B_DEF_NAME_WITH_PREFIX} fell into\na NIGHTMARE!"); +const u8 gText_PkmnLockedInNightmare[] = _("{B_ATK_NAME_WITH_PREFIX} is locked\nin a NIGHTMARE!"); +const u8 gText_PkmnLaidCurse[] = _("{B_ATK_NAME_WITH_PREFIX} cut its own HP and\nlaid a CURSE on {B_DEF_NAME_WITH_PREFIX}!"); +const u8 gText_PkmnAfflictedByCurse[] = _("{B_ATK_NAME_WITH_PREFIX} is afflicted\nby the CURSE!"); +const u8 gText_SpikesScattered[] = _("SPIKES were scattered all around\nthe opponent’s side!"); +const u8 gText_PkmnHurtBySpikes[] = _("{B_ACTIVE_NAME_WITH_PREFIX} is hurt\nby SPIKES!"); +const u8 gText_PkmnIdentified[] = _("{B_ATK_NAME_WITH_PREFIX} identified\n{B_DEF_NAME_WITH_PREFIX}!"); +const u8 gText_PkmnPerishCountFell[] = _("{B_ATK_NAME_WITH_PREFIX}’s PERISH count\nfell to {B_BUFF1}!"); +const u8 gText_PkmnBracedItself[] = _("{B_ATK_NAME_WITH_PREFIX} braced\nitself!"); +const u8 gText_PkmnEnduredHit[] = _("{B_DEF_NAME_WITH_PREFIX} ENDURED\nthe hit!"); +const u8 gText_MagnitudeStrength[] = _("MAGNITUDE {B_BUFF1}!"); +const u8 gText_PkmnCutHPMaxedAttack[] = _("{B_ATK_NAME_WITH_PREFIX} cut its own HP\nand maximized ATTACK!"); +const u8 gText_PkmnCopiedStatChanges[] = _("{B_ATK_NAME_WITH_PREFIX} copied\n{B_DEF_NAME_WITH_PREFIX}’s stat changes!"); +const u8 gText_PkmnGotFree[] = _("{B_ATK_NAME_WITH_PREFIX} got free of\n{B_DEF_NAME_WITH_PREFIX}’s {B_BUFF1}!"); +const u8 gText_PkmnShedLeechSeed[] = _("{B_ATK_NAME_WITH_PREFIX} shed\nLEECH SEED!"); +const u8 gText_PkmnBlewAwaySpikes[] = _("{B_ATK_NAME_WITH_PREFIX} blew away\nSPIKES!"); +const u8 gText_PkmnFledFromBattle[] = _("{B_ATK_NAME_WITH_PREFIX} fled from\nbattle!"); +const u8 gText_PkmnForesawAttack[] = _("{B_ATK_NAME_WITH_PREFIX} foresaw\nan attack!"); +const u8 gText_PkmnTookAttack[] = _("{B_DEF_NAME_WITH_PREFIX} took the\n{B_BUFF1} attack!"); +const u8 gText_PkmnChoseXAsDestiny[] = _("{B_ATK_NAME_WITH_PREFIX} chose\n{B_CURRENT_MOVE} as its destiny!"); +const u8 gText_PkmnAttack[] = _("{B_BUFF1}’s attack!"); +const u8 gText_PkmnCenterAttention[] = _("{B_ATK_NAME_WITH_PREFIX} became the\ncenter of attention!"); +const u8 gText_PkmnChargingPower[] = _("{B_ATK_NAME_WITH_PREFIX} began\ncharging power!"); +const u8 gText_NaturePowerTurnedInto[] = _("NATURE POWER turned into\n{B_CURRENT_MOVE}!"); +const u8 gText_PkmnStatusNormal[] = _("{B_ATK_NAME_WITH_PREFIX}’s status\nreturned to normal!"); +const u8 gText_PkmnSubjectedToTorment[] = _("{B_DEF_NAME_WITH_PREFIX} was subjected\nto TORMENT!"); +const u8 gText_PkmnTighteningFocus[] = _("{B_ATK_NAME_WITH_PREFIX} is tightening\nits focus!"); +const u8 gText_PkmnFellForTaunt[] = _("{B_DEF_NAME_WITH_PREFIX} fell for\nthe TAUNT!"); +const u8 gText_PkmnReadyToHelp[] = _("{B_ATK_NAME_WITH_PREFIX} is ready to\nhelp {B_DEF_NAME_WITH_PREFIX}!"); +const u8 gText_PkmnSwitchedItems[] = _("{B_ATK_NAME_WITH_PREFIX} switched\nitems with its opponent!"); +const u8 gText_PkmnObtainedX[] = _("{B_ATK_NAME_WITH_PREFIX} obtained\n{B_BUFF1}."); +const u8 gText_PkmnObtainedX2[] = _("{B_DEF_NAME_WITH_PREFIX} obtained\n{B_BUFF2}."); +const u8 gText_PkmnObtainedXYObtainedZ[] = _("{B_ATK_NAME_WITH_PREFIX} obtained\n{B_BUFF1}.\p{B_DEF_NAME_WITH_PREFIX} obtained\n{B_BUFF2}."); +const u8 gText_PkmnCopiedFoe[] = _("{B_ATK_NAME_WITH_PREFIX} copied\n{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}!"); +const u8 gText_PkmnMadeWish[] = _("{B_ATK_NAME_WITH_PREFIX} made a WISH!"); +const u8 gText_PkmnWishCameTrue[] = _("{B_BUFF1}’s WISH\ncame true!"); +const u8 gText_PkmnPlantedRoots[] = _("{B_ATK_NAME_WITH_PREFIX} planted its roots!"); +const u8 gText_PkmnAbsorbedNutrients[] = _("{B_ATK_NAME_WITH_PREFIX} absorbed\nnutrients with its roots!"); +const u8 gText_PkmnAnchoredItself[] = _("{B_DEF_NAME_WITH_PREFIX} anchored\nitself with its roots!"); +const u8 gText_PkmnWasMadeDrowsy[] = _("{B_ATK_NAME_WITH_PREFIX} made\n{B_DEF_NAME_WITH_PREFIX} drowsy!"); +const u8 gText_PkmnKnockedOff[] = _("{B_ATK_NAME_WITH_PREFIX} knocked off\n{B_DEF_NAME_WITH_PREFIX}’s {B_LAST_ITEM}!"); +const u8 gText_PkmnSwappedAbilities[] = _("{B_ATK_NAME_WITH_PREFIX} swapped abilities\nwith its opponent!"); +const u8 gText_PkmnSealedOpponentMove[] = _("{B_ATK_NAME_WITH_PREFIX} sealed the\nopponent’s move(s)!"); +const u8 gText_PkmnWantsGrudge[] = _("{B_ATK_NAME_WITH_PREFIX} wants the\nopponent to bear a GRUDGE!"); +const u8 gText_PkmnLostPPGrudge[] = _("{B_ATK_NAME_WITH_PREFIX}’s {B_BUFF1} lost\nall its PP due to the GRUDGE!"); +const u8 gText_PkmnShroudedItself[] = _("{B_ATK_NAME_WITH_PREFIX} shrouded\nitself in {B_CURRENT_MOVE}!"); +const u8 gText_PkmnMoveBounced[] = _("{B_ATK_NAME_WITH_PREFIX}’s {B_CURRENT_MOVE}\nwas bounced back by MAGIC COAT!"); +const u8 gText_PkmnWaitsForTarget[] = _("{B_ATK_NAME_WITH_PREFIX} waits for a target\nto make a move!"); +const u8 gText_PkmnSnatchedMove[] = _("{B_DEF_NAME_WITH_PREFIX} SNATCHED\n{B_ACTIVE_NAME_WITH_PREFIX}’s move!"); +const u8 gText_ElectricityWeakened[] = _("Electricity’s power was\nweakened!"); +const u8 gText_FireWeakened[] = _("Fire’s power was\nweakened!"); +const u8 gText_XFoundOneY[] = _("{B_ATK_NAME_WITH_PREFIX} found\none {B_LAST_ITEM}!"); +const u8 gText_SoothingAroma[] = _("A soothing aroma wafted\nthrough the area!"); +const u8 gText_ItemsCantBeUsedNow[] = _("Items can’t be used now.{PAUSE 64}"); +const u8 gText_ForXCommaYZ[] = _("For {B_ACTIVE_NAME_WITH_PREFIX},\n{B_LAST_ITEM} {B_BUFF1}"); +const u8 gText_PkmnUsedXToGetPumped[] = _("{B_ACTIVE_NAME_WITH_PREFIX} used\n{B_LAST_ITEM} to get pumped!"); +const u8 gText_PkmnLostFocus[] = _("{B_ATK_NAME_WITH_PREFIX} lost its\nfocus and couldn’t move!"); +const u8 gText_PkmnWasDraggedOut[] = _("{B_DEF_NAME_WITH_PREFIX} was\ndragged out!\p"); +const u8 gText_TheWallShattered[] = _("The wall shattered!"); +const u8 gText_ButNoEffect[] = _("But it had no effect!"); +const u8 gText_PkmnHasNoMovesLeft[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} has no\nmoves left!\p"); +const u8 gText_PkmnMoveIsDisabled[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_CURRENT_MOVE}\nis disabled!\p"); +const u8 gText_PkmnCantUseMoveTorment[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} can’t use the same\nmove in a row due to the TORMENT!\p"); +const u8 gText_PkmnCantUseMoveTaunt[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} can’t use\n{B_CURRENT_MOVE} after the TAUNT!\p"); +const u8 gText_PkmnCantUseMoveSealed[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} can’t use the\nsealed {B_CURRENT_MOVE}!\p"); +const u8 gText_PkmnMadeItRain[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nmade it rain!"); +const u8 gText_PkmnRaisedSpeed[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nraised its SPEED!"); +const u8 gText_PkmnProtectedBy[] = _("{B_DEF_NAME_WITH_PREFIX} was protected\nby {B_DEF_ABILITY}!"); +const u8 gText_PkmnPreventsUsage[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nprevents {B_ATK_NAME_WITH_PREFIX}\lfrom using {B_CURRENT_MOVE}!"); +const u8 gText_PkmnRestoredHPUsing[] = _("{B_DEF_NAME_WITH_PREFIX} restored HP\nusing its {B_DEF_ABILITY}!"); +const u8 gText_PkmnsXMadeYUseless[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nmade {B_CURRENT_MOVE} useless!"); +const u8 gText_PkmnChangedTypeWith[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nmade it the {B_BUFF1} type!"); +const u8 gText_PkmnPreventsParalysisWith[] = _("{B_EFF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nprevents paralysis!"); +const u8 gText_PkmnPreventsRomanceWith[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nprevents romance!"); +const u8 gText_PkmnPreventsPoisoningWith[] = _("{B_EFF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nprevents poisoning!"); +const u8 gText_PkmnPreventsConfusionWith[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nprevents confusion!"); +const u8 gText_PkmnRaisedFirePowerWith[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nraised its FIRE power!"); +const u8 gText_PkmnAnchorsItselfWith[] = _("{B_DEF_NAME_WITH_PREFIX} anchors\nitself with {B_DEF_ABILITY}!"); +const u8 gText_PkmnCutsAttackWith[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\ncuts {B_DEF_NAME_WITH_PREFIX}’s ATTACK!"); +const u8 gText_PkmnPreventsStatLossWith[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nprevents stat loss!"); +const u8 gText_PkmnHurtsWith[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nhurt {B_ATK_NAME_WITH_PREFIX}!"); +const u8 gText_PkmnTraced[] = _("{B_ACTIVE_NAME_WITH_PREFIX} TRACED\n{B_BUFF1}’s {B_BUFF2}!"); +const u8 gText_PkmnsXPreventsBurns[] = _("{B_EFF_NAME_WITH_PREFIX}’s {STRING 27}\nprevents burns!"); +const u8 gText_PkmnsXBlocksY[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nblocks {B_CURRENT_MOVE}!"); +const u8 gText_PkmnsXBlocksY2[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nblocks {B_CURRENT_MOVE}!"); +const u8 gText_PkmnsXRestoredHPALittle2[] = _("{B_ATK_NAME_WITH_PREFIX}’s {STRING 24}\nrestored its HP a little!"); +const u8 gText_PkmnsXWhippedUpSandstorm[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nwhipped up a sandstorm!"); +const u8 gText_PkmnsXIntensifiedSun[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nintensified the sun’s rays!"); +const u8 gText_PkmnsXPreventsYLoss[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nprevents {B_BUFF1} loss!"); +const u8 gText_PkmnsXInfatuatedY[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\ninfatuated {B_ATK_NAME_WITH_PREFIX}!"); +const u8 gText_PkmnsXMadeYIneffective[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nmade {B_CURRENT_MOVE} ineffective!"); +const u8 gText_PkmnsXCuredYProblem[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\ncured its {B_BUFF1} problem!"); +const u8 gText_ItSuckedLiquidOoze[] = _("It sucked up the\nLIQUID OOZE!"); +const u8 gText_PkmnTransformed[] = _("{B_ACTIVE_NAME_WITH_PREFIX} transformed!"); +const u8 gText_PkmnsXTookAttack[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\ntook the attack!"); +const u8 gText_PkmnsXPreventsSwitching[] = _("{B_BUFF1}’s {STRING 23}\nprevents switching!\p"); +const u8 gText_PreventedFromWorking[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nprevented {B_ACTIVE_NAME_WITH_PREFIX}’s\l{B_BUFF1} from working!"); +const u8 gText_PkmnsXMadeItIneffective[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nmade it ineffective!"); +const u8 gText_PkmnsXPreventsFlinching[] = _("{B_EFF_NAME_WITH_PREFIX}’s {STRING 27}\nprevents flinching!"); +const u8 gText_PkmnsXPreventsYsZ[] = _("{B_ATK_NAME_WITH_PREFIX}’s {STRING 24}\nprevents {B_DEF_NAME_WITH_PREFIX}’s\l{B_DEF_ABILITY} from working!"); +const u8 gText_PkmnsXCuredItsYProblem[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\ncured its {B_BUFF1} problem!"); +const u8 gText_PkmnsXHadNoEffectOnY[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nhad no effect on {B_EFF_NAME_WITH_PREFIX}!"); +const u8 gText_StatSharply[] = _("sharply "); +const u8 gText_StatRose[] = _("rose!"); +const u8 gText_StatHarshly[] = _("harshly "); +const u8 gText_StatFell[] = _("fell!"); +const u8 gText_PkmnsStatChanged[] = _("{B_ATK_NAME_WITH_PREFIX}’s {B_BUFF1}\n{B_BUFF2}"); +const u8 gText_PkmnsStatChanged2[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_BUFF1}\n{B_BUFF2}"); +const u8 gText_UsingXTheYOfZN[] = _("Using {B_LAST_ITEM}, the {B_BUFF1}\nof {B_ACTIVE_NAME_WITH_PREFIX} {B_BUFF2}"); +const u8 gText_PkmnsStatChanged3[] = _("{B_ATK_NAME_WITH_PREFIX}’s {B_BUFF1}\n{B_BUFF2}"); +const u8 gText_PkmnsStatChanged4[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_BUFF1}\n{B_BUFF2}"); +const u8 gText_StatsWontIncrease2[] = _("{B_ATK_NAME_WITH_PREFIX}’s stats won’t\ngo any higher!"); +const u8 gText_StatsWontDecrease2[] = _("{B_DEF_NAME_WITH_PREFIX}’s stats won’t\ngo any lower!"); +const u8 gText_CriticalHit[] = _("A critical hit!"); +const u8 gText_OneHitKO[] = _("It’s a one-hit KO!"); +const u8 gText_123Poof[] = _("{PAUSE 32}1, {PAUSE 15}2, and{PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE 0x0038}Poof!\p"); +const u8 gText_AndEllipsis[] = _("And…\p"); +const u8 gText_HMMovesCantBeForgotten[] = _("HM moves can’t be\nforgotten now.\p"); +const u8 gText_NotVeryEffective[] = _("It’s not very effective…"); +const u8 gText_SuperEffective[] = _("It’s super effective!"); +const u8 gText_GotAwaySafely[] = _("{PLAY_SE 0x0011}Got away safely!\p"); +const u8 gText_PkmnFledUsingIts[] = _("{PLAY_SE 0x0011}{B_ATK_NAME_WITH_PREFIX} fled\nusing its {B_LAST_ITEM}!\p"); +const u8 gText_PkmnFledUsing[] = _("{PLAY_SE 0x0011}{B_ATK_NAME_WITH_PREFIX} fled\nusing {STRING 24}!\p"); +const u8 gText_WildPkmnFled[] = _("{PLAY_SE 0x0011}Wild {B_BUFF1} fled!"); +const u8 gText_PlayerDefeatedLinkTrainer[] = _("Player defeated\n{B_20}!"); +const u8 gText_TwoLinkTrainersDefeated[] = _("Player beat {B_20}\nand {B_21}!"); +const u8 gText_PlayerLostAgainstLinkTrainer[] = _("Player lost against\n{B_20}!"); +const u8 gText_PlayerLostToTwo[] = _("Player lost to {B_20}\nand {B_21}!"); +const u8 gText_PlayerBattledToDrawLinkTrainer[] = _("Player battled to a draw against\n{B_20}!"); +const u8 gText_PlayerBattledToDrawVsTwo[] = _("Player battled to a draw against\n{B_20} and {B_21}!"); +const u8 gText_WildFled[] = _("{PLAY_SE 0x0011}{B_20} fled!"); +const u8 gText_TwoWildFled[] = _("{PLAY_SE 0x0011}{B_20} and\n{B_21} fled!"); +const u8 gText_NoRunningFromTrainers[] = _("No! There’s no running\nfrom a TRAINER battle!\p"); +const u8 gText_CantEscape[] = _("Can’t escape!\p"); +const u8 gText_DontLeaveBirch[] = _("PROF. BIRCH: Don’t leave me like this!\p"); +const u8 gText_ButNothingHappened[] = _("But nothing happened!"); +const u8 gText_ButItFailed[] = _("But it failed!"); +const u8 gText_ItHurtConfusion[] = _("It hurt itself in its\nconfusion!"); +const u8 gText_MirrorMoveFailed[] = _("The MIRROR MOVE failed!"); +const u8 gText_StartedToRain[] = _("It started to rain!"); +const u8 gText_DownpourStarted[] = _("A downpour started!"); +const u8 gText_RainContinues[] = _("Rain continues to fall."); +const u8 gText_DownpourContinues[] = _("The downpour continues."); +const u8 gText_RainStopped[] = _("The rain stopped."); +const u8 gText_SandstormBrewed[] = _("A sandstorm brewed!"); +const u8 gText_SandstormRages[] = _("The sandstorm rages."); +const u8 gText_SandstormSubsided[] = _("The sandstorm subsided."); +const u8 gText_SunlightGotBright[] = _("The sunlight got bright!"); +const u8 gText_SunlightStrong[] = _("The sunlight is strong."); +const u8 gText_SunlightFaded[] = _("The sunlight faded."); +const u8 gText_StartedHail[] = _("It started to hail!"); +const u8 gText_HailContinues[] = _("Hail continues to fall."); +const u8 gText_HailStopped[] = _("The hail stopped."); +const u8 gText_FailedToSpitUp[] = _("But it failed to SPIT UP\na thing!"); +const u8 gText_FailedToSwallow[] = _("But it failed to SWALLOW\na thing!"); +const u8 gText_WindBecameHeatWave[] = _("The wind turned into a\nHEAT WAVE!"); +const u8 gText_StatChangesGone[] = _("All stat changes were\neliminated!"); +const u8 gText_CoinsScattered[] = _("Coins scattered everywhere!"); +const u8 gText_TooWeakForSubstitute[] = _("It was too weak to make\na SUBSTITUTE!"); +const u8 gText_SharedPain[] = _("The battlers shared\ntheir pain!"); +const u8 gText_BellChimed[] = _("A bell chimed!"); +const u8 gText_FaintInThree[] = _("All affected POKéMON will\nfaint in three turns!"); +const u8 gText_NoPPLeft[] = _("There’s no PP left for\nthis move!\p"); +const u8 gText_ButNoPPLeft[] = _("But there was no PP left\nfor the move!"); +const u8 gText_PkmnIgnoresAsleep[] = _("{B_ATK_NAME_WITH_PREFIX} ignored\norders while asleep!"); +const u8 gText_PkmnIgnoredOrders[] = _("{B_ATK_NAME_WITH_PREFIX} ignored\norders!"); +const u8 gText_PkmnBeganToNap[] = _("{B_ATK_NAME_WITH_PREFIX} began to nap!"); +const u8 gText_PkmnLoafing[] = _("{B_ATK_NAME_WITH_PREFIX} is\nloafing around!"); +const u8 gText_PkmnWontObey[] = _("{B_ATK_NAME_WITH_PREFIX} won’t\nobey!"); +const u8 gText_PkmnTurnedAway[] = _("{B_ATK_NAME_WITH_PREFIX} turned away!"); +const u8 gText_PkmnPretendNotNotice[] = _("{B_ATK_NAME_WITH_PREFIX} pretended\nnot to notice!"); +const u8 gText_EnemyAboutToSwitchPkmn[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} is\nabout to use {B_BUFF2}.\pWill {B_PLAYER_NAME} change\nPOKéMON?"); +const u8 gText_PkmnLearnedMove2[] = _("{B_ATK_NAME_WITH_PREFIX} learned\n{B_BUFF1}!"); +const u8 gText_PlayerDefeatedLinkTrainerTrainer1[] = _("Player defeated\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!\p"); +const u8 gText_CreptCloser[] = _("{B_PLAYER_NAME} crept closer to\n{B_OPPONENT_MON1_NAME}!"); +const u8 gText_CantGetCloser[] = _("{B_PLAYER_NAME} can’t get any closer!"); +const u8 gText_PkmnWatchingCarefully[] = _("{B_OPPONENT_MON1_NAME} is watching\ncarefully!"); +const u8 gText_PkmnCuriousAboutX[] = _("{B_OPPONENT_MON1_NAME} is curious about\nthe {B_BUFF1}!"); +const u8 gText_PkmnEnthralledByX[] = _("{B_OPPONENT_MON1_NAME} is enthralled by\nthe {B_BUFF1}!"); +const u8 gText_PkmnIgnoredX[] = _("{B_OPPONENT_MON1_NAME} completely ignored\nthe {B_BUFF1}!"); +const u8 gText_ThrewPokeblockAtPkmn[] = _("{B_PLAYER_NAME} threw a {POKEBLOCK}\nat the {B_OPPONENT_MON1_NAME}!"); +const u8 gText_OutOfSafariBalls[] = _("{PLAY_SE 0x0049}ANNOUNCER: You’re out of\nSAFARI BALLS! Game over!\p"); +const u8 gText_OpponentMon1Appeared[] = _("{B_OPPONENT_MON1_NAME} appeared!\p"); +const u8 gText_WildPkmnAppeared[] = _("Wild {B_OPPONENT_MON1_NAME} appeared!\p"); +const u8 gText_WildPkmnAppeared2[] = _("Wild {B_OPPONENT_MON1_NAME} appeared!\p"); +const u8 gText_WildPkmnAppearedPause[] = _("Wild {B_OPPONENT_MON1_NAME} appeared!{PAUSE 127}"); +const u8 gText_TwoWildPkmnAppeared[] = _("Wild {B_OPPONENT_MON1_NAME} and\n{B_OPPONENT_MON2_NAME} appeared!\p"); +const u8 gText_Trainer1WantsToBattle[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME}\nwould like to battle!\p"); +const u8 gText_LinkTrainerWantsToBattle[] = _("{B_20}\nwants to battle!"); +const u8 gText_TwoLinkTrainersWantToBattle[] = _("{B_20} and {B_21}\nwant to battle!"); +const u8 gText_Trainer1SentOutPkmn[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} sent\nout {B_OPPONENT_MON1_NAME}!"); +const u8 gText_Trainer1SentOutTwoPkmn[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} sent\nout {B_OPPONENT_MON1_NAME} and {B_OPPONENT_MON2_NAME}!"); +const u8 gText_Trainer1SentOutPkmn2[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} sent\nout {B_BUFF1}!"); +const u8 gText_LinkTrainerSentOutPkmn[] = _("{B_20} sent out\n{B_OPPONENT_MON1_NAME}!"); +const u8 gText_LinkTrainerSentOutTwoPkmn[] = _("{B_20} sent out\n{B_OPPONENT_MON1_NAME} and {B_OPPONENT_MON2_NAME}!"); +const u8 gText_TwoLinkTrainersSentOutPkmn[] = _("{B_20} sent out {B_LINK_OPPONENT_MON1_NAME}!\n{B_21} sent out {B_LINK_OPPONENT_MON2_NAME}!"); +const u8 gText_LinkTrainerSentOutPkmn2[] = _("{B_20} sent out\n{B_BUFF1}!"); +const u8 gText_LinkTrainerMultiSentOutPkmn[] = _("{B_22} sent out\n{B_BUFF1}!"); +const u8 gText_GoPkmn[] = _("Go! {B_PLAYER_MON1_NAME}!"); +const u8 gText_GoTwoPkmn[] = _("Go! {B_PLAYER_MON1_NAME} and\n{B_PLAYER_MON2_NAME}!"); +const u8 gText_GoPkmn2[] = _("Go! {B_BUFF1}!"); +const u8 gText_DoItPkmn[] = _("Do it! {B_BUFF1}!"); +const u8 gText_GoForItPkmn[] = _("Go for it, {B_BUFF1}!"); +const u8 gText_YourFoesWeakGetEmPkmn[] = _("Your foe’s weak!\nGet ’em, {B_BUFF1}!"); +const u8 gText_LinkPartnerSentOutPkmnGoPkmn[] = _("{B_1F} sent out {B_LINK_PLAYER_MON2_NAME}!\nGo! {B_LINK_PLAYER_MON1_NAME}!"); +const u8 gText_PkmnThatsEnough[] = _("{B_BUFF1}, that’s enough!\nCome back!"); +const u8 gText_PkmnComeBack[] = _("{B_BUFF1}, come back!"); +const u8 gText_PkmnOkComeBack[] = _("{B_BUFF1}, OK!\nCome back!"); +const u8 gText_PkmnGoodComeBack[] = _("{B_BUFF1}, good!\nCome back!"); +const u8 gText_Trainer1WithdrewPkmn[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME}\nwithdrew {B_BUFF1}!"); +const u8 gText_LinkTrainer1WithdrewPkmn[] = _("{B_20} withdrew\n{B_BUFF1}!"); +const u8 gText_LinkTrainer2WithdrewPkmn[] = _("{B_22} withdrew\n{B_BUFF1}!"); +const u8 gText_WildPkmnPrefix[] = _("Wild "); +const u8 gText_FoePkmnPrefix[] = _("Foe "); +const u8 gText_EmptyString8[] = _( ""); +const u8 gText_FoePkmnPrefix2[] = _("Foe"); +const u8 gText_AllyPkmnPrefix[] = _("Ally"); +const u8 gText_FoePkmnPrefix3[] = _("Foe"); +const u8 gText_AllyPkmnPrefix2[] = _("Ally"); +const u8 gText_FoePkmnPrefix4[] = _("Foe"); +const u8 gText_AllyPkmnPrefix3[] = _("Ally"); +const u8 gText_AttackerUsedX[] = _("{B_ATK_NAME_WITH_PREFIX} used\n{B_BUFF2}"); +const u8 gText_ExclamationMark[] = _("!"); +const u8 gText_ExclamationMark2[] = _("!"); +const u8 gText_ExclamationMark3[] = _("!"); +const u8 gText_ExclamationMark4[] = _("!"); +const u8 gText_ExclamationMark5[] = _("!"); +const u8 gText_HP2[] = _("HP"); +const u8 gText_Attack2[] = _("ATTACK"); +const u8 gText_Defense2[] = _("DEFENSE"); +const u8 gText_Speed[] = _("SPEED"); +const u8 gText_SpAtk2[] = _("SP. ATK"); +const u8 gText_SpDef2[] = _("SP. DEF"); +const u8 gText_Accuracy[] = _("accuracy"); +const u8 gText_Evasiveness[] = _("evasiveness"); + +const u8 * const gStatNamesTable[] = +{ + gText_HP2, gText_Attack2, gText_Defense2, + gText_Speed, gText_SpAtk2, gText_SpDef2, + gText_Accuracy, gText_Evasiveness +}; + +const u8 gText_PokeblockWasTooSpicy[] = _("was too spicy!"); +const u8 gText_PokeblockWasTooDry[] = _("was too dry!"); +const u8 gText_PokeblockWasTooSweet[] = _("was too sweet!"); +const u8 gText_PokeblockWasTooBitter[] = _("was too bitter!"); +const u8 gText_PokeblockWasTooSour[] = _("was too sour!"); + +const u8 * const gPokeblockWasTooXStringTable[] = +{ + gText_PokeblockWasTooSpicy, gText_PokeblockWasTooDry, + gText_PokeblockWasTooSweet, gText_PokeblockWasTooBitter, + gText_PokeblockWasTooSour +}; + +const u8 gText_PlayerUsedItem[] = _("{B_PLAYER_NAME} used\n{B_LAST_ITEM}!"); +const u8 gText_WallyUsedItem[] = _("WALLY used\n{B_LAST_ITEM}!"); +const u8 gText_Trainer1UsedItem[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME}\nused {B_LAST_ITEM}!"); +const u8 gText_TrainerBlockedBall[] = _("The TRAINER blocked the BALL!"); +const u8 gText_DontBeAThief[] = _("Don’t be a thief!"); +const u8 gText_ItDodgedBall[] = _("It dodged the thrown BALL!\nThis POKéMON can’t be caught!"); +const u8 gText_YouMissedPkmn[] = _("You missed the POKéMON!"); +const u8 gText_PkmnBrokeFree[] = _("Oh, no!\nThe POKéMON broke free!"); +const u8 gText_ItAppearedCaught[] = _("Aww!\nIt appeared to be caught!"); +const u8 gText_AarghAlmostHadIt[] = _("Aargh!\nAlmost had it!"); +const u8 gText_ShootSoClose[] = _("Shoot!\nIt was so close, too!"); +const u8 gText_GotchaPkmnCaught[] = _("Gotcha!\n{B_OPPONENT_MON1_NAME} was caught!{UNKNOWN_A}{PLAY_BGM BGM_KACHI22}\p"); +const u8 gText_GotchaPkmnCaught2[] = _("Gotcha!\n{B_OPPONENT_MON1_NAME} was caught!{UNKNOWN_A}{PLAY_BGM BGM_KACHI22}{PAUSE 127}"); +const u8 gText_GiveNicknameCaptured[] = _("Give a nickname to the\ncaptured {B_OPPONENT_MON1_NAME}?"); +const u8 gText_PkmnSentToPC[] = _("{B_OPPONENT_MON1_NAME} was sent to\n{B_PC_CREATOR_NAME} PC."); +const u8 gText_Someones[] = _("someone’s"); +const u8 gText_Lanettes[] = _("LANETTE’s"); +const u8 gText_PkmnDataAddedToDex[] = _("{B_OPPONENT_MON1_NAME}’s data was\nadded to the POKéDEX.\p"); +const u8 gText_ItIsRaining[] = _("It is raining."); +const u8 gText_SandstormIsRaging[] = _("A sandstorm is raging."); +const u8 gText_BoxIsFull[] = _("The BOX is full!\nYou can’t catch any more!\p"); +const u8 gText_EnigmaBerry[] = _("ENIGMA BERRY"); +const u8 gText_BerrySuffix[] = _(" BERRY"); +const u8 gText_PkmnsItemCuredParalysis[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\ncured paralysis!"); +const u8 gText_PkmnsItemCuredPoison[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\ncured poison!"); +const u8 gText_PkmnsItemHealedBurn[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nhealed its burn!"); +const u8 gText_PkmnsItemDefrostedIt[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\ndefrosted it!"); +const u8 gText_PkmnsItemWokeIt[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nwoke it from its sleep!"); +const u8 gText_PkmnsItemSnappedOut[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nsnapped it out of confusion!"); +const u8 gText_PkmnsItemCuredProblem[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\ncured its {B_BUFF1} problem!"); +const u8 gText_PkmnsItemNormalizedStatus[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nnormalized its status!"); +const u8 gText_PkmnsItemRestoredHealth[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nrestored health!"); +const u8 gText_PkmnsItemRestoredPP[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nrestored {B_BUFF1}’s PP!"); +const u8 gText_PkmnsItemRestoredStatus[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nrestored its status!"); +const u8 gText_PkmnsItemRestoredHPALittle[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nrestored its HP a little!"); +const u8 gText_ItemAllowsOnlyYMove[] = _("{B_LAST_ITEM} allows the\nuse of only {B_CURRENT_MOVE}!\p"); +const u8 gText_PkmnHungOnWithX[] = _("{B_DEF_NAME_WITH_PREFIX} hung on\nusing its {B_LAST_ITEM}!"); +const u8 gText_EmptyString3[] = _(""); +const u8 gText_YouThrowABallNowRight[] = _("You throw a BALL now, right?\nI… I’ll do my best!"); + +// early declaration of strings +const u8 gText_PkmnIncapableOfPower[]; +const u8 gText_GlintAppearsInEye[]; +const u8 gText_PkmnGettingIntoPosition[]; +const u8 gText_PkmnBeganGrowlingDeeply[]; +const u8 gText_PkmnEagerForMore[]; +const u8 gText_DefeatedOpponentByReferee[]; +const u8 gText_LostToOpponentByReferee[]; +const u8 gText_TiedOpponentByReferee[]; +const u8 gText_QuestionForfeitMatch[]; +const u8 gText_ForfeitedMatch[]; +const u8 gText_Trainer1WinText[]; +const u8 gText_Trainer2WinText[]; +const u8 gText_TwoInGameTrainersDefeated[]; +const u8 gText_Trainer2LoseText[]; + +const u8 * const gBattleStringsTable[BATTLESTRINGS_COUNT] = +{ + gText_Trainer1LoseText, + gText_PkmnGainedEXP, + gText_PkmnGrewToLv, + gText_PkmnLearnedMove, + gText_TryToLearnMove1, + gText_TryToLearnMove2, + gText_TryToLearnMove3, + gText_PkmnForgotMove, + gText_StopLearningMove, + gText_DidNotLearnMove, + gText_PkmnLearnedMove2, + gText_AttackMissed, + gText_PkmnProtectedItself, + gText_StatsWontIncrease2, + gText_AvoidedDamage, + gText_ItDoesntAffect, + gText_PkmnFainted, + gText_PkmnFainted2, + gText_PlayerGotMoney, + gText_PlayerWhiteout, + gText_PlayerWhiteout2, + gText_PreventsEscape, + gText_HitXTimes, + gText_PkmnFellAsleep, + gText_PkmnMadeSleep, + gText_PkmnAlreadyAsleep, + gText_PkmnAlreadyAsleep2, + gText_PkmnWasntAffected, + gText_PkmnWasPoisoned, + gText_PkmnPoisonedBy, + gText_PkmnHurtByPoison, + gText_PkmnAlreadyPoisoned, + gText_PkmnBadlyPoisoned, + gText_PkmnEnergyDrained, + gText_PkmnWasBurned, + gText_PkmnBurnedBy, + gText_PkmnHurtByBurn, + gText_PkmnWasFrozen, + gText_PkmnFrozenBy, + gText_PkmnIsFrozen, + gText_PkmnWasDefrosted, + gText_PkmnWasDefrosted2, + gText_PkmnWasDefrostedBy, + gText_PkmnWasParalyzed, + gText_PkmnWasParalyzedBy, + gText_PkmnIsParalyzed, + gText_PkmnIsAlreadyParalyzed, + gText_PkmnHealedParalysis, + gText_PkmnDreamEaten, + gText_StatsWontIncrease, + gText_StatsWontDecrease, + gText_TeamStoppedWorking, + gText_FoeStoppedWorking, + gText_PkmnIsConfused, + gText_PkmnHealedConfusion, + gText_PkmnWasConfused, + gText_PkmnAlreadyConfused, + gText_PkmnFellInLove, + gText_PkmnInLove, + gText_PkmnImmobilizedByLove, + gText_PkmnBlownAway, + gText_PkmnChangedType, + gText_PkmnFlinched, + gText_PkmnRegainedHealth, + gText_PkmnHPFull, + gText_PkmnRaisedSpDef, + gText_PkmnRaisedDef, + gText_PkmnCoveredByVeil, + gText_PkmnUsedSafeguard, + gText_PkmnSafeguardExpired, + gText_PkmnWentToSleep, + gText_PkmnSleptHealthy, + gText_PkmnWhippedWhirlwind, + gText_PkmnTookSunlight, + gText_PkmnLoweredHead, + gText_PkmnIsGlowing, + gText_PkmnFlewHigh, + gText_PkmnDugHole, + gText_PkmnSqueezedByBind, + gText_PkmnTrappedInVortex, + gText_PkmnWrappedBy, + gText_PkmnClamped, + gText_PkmnHurtBy, + gText_PkmnFreedFrom, + gText_PkmnCrashed, + gText_PkmnShroudedInMist, + gText_PkmnProtectedByMist, + gText_PkmnGettingPumped, + gText_PkmnHitWithRecoil, + gText_PkmnProtectedItself2, + gText_PkmnBuffetedBySandstorm, + gText_PkmnPeltedByHail, + gText_PkmnSeeded, + gText_PkmnEvadedAttack, + gText_PkmnSappedByLeechSeed, + gText_PkmnFastAsleep, + gText_PkmnWokeUp, + gText_PkmnUproarKeptAwake, + gText_PkmnWokeUpInUproar, + gText_PkmnCausedUproar, + gText_PkmnMakingUproar, + gText_PkmnCalmedDown, + gText_PkmnCantSleepInUproar, + gText_PkmnStockpiled, + gText_PkmnCantStockpile, + gText_PkmnCantSleepInUproar2, + gText_UproarKeptPkmnAwake, + gText_PkmnStayedAwakeUsing, + gText_PkmnStoringEnergy, + gText_PkmnUnleashedEnergy, + gText_PkmnFatigueConfusion, + gText_PkmnPickedUpItem, + gText_PkmnUnaffected, + gText_PkmnTransformedInto, + gText_PkmnMadeSubstitute, + gText_PkmnHasSubstitute, + gText_SubstituteDamaged, + gText_PkmnSubstituteFaded, + gText_PkmnMustRecharge, + gText_PkmnRageBuilding, + gText_PkmnMoveWasDisabled, + gText_PkmnMoveIsDisabled, + gText_PkmnMoveDisabledNoMore, + gText_PkmnGotEncore, + gText_PkmnEncoreEnded, + gText_PkmnTookAim, + gText_PkmnSketchedMove, + gText_PkmnTryingToTakeFoe, + gText_PkmnTookFoe, + gText_PkmnReducedPP, + gText_PkmnStoleItem, + gText_PkmnCantEscape, + gText_PkmnFellIntoNightmare, + gText_PkmnLockedInNightmare, + gText_PkmnLaidCurse, + gText_PkmnAfflictedByCurse, + gText_SpikesScattered, + gText_PkmnHurtBySpikes, + gText_PkmnIdentified, + gText_PkmnPerishCountFell, + gText_PkmnBracedItself, + gText_PkmnEnduredHit, + gText_MagnitudeStrength, + gText_PkmnCutHPMaxedAttack, + gText_PkmnCopiedStatChanges, + gText_PkmnGotFree, + gText_PkmnShedLeechSeed, + gText_PkmnBlewAwaySpikes, + gText_PkmnFledFromBattle, + gText_PkmnForesawAttack, + gText_PkmnTookAttack, + gText_PkmnAttack, + gText_PkmnCenterAttention, + gText_PkmnChargingPower, + gText_NaturePowerTurnedInto, + gText_PkmnStatusNormal, + gText_PkmnHasNoMovesLeft, + gText_PkmnSubjectedToTorment, + gText_PkmnCantUseMoveTorment, + gText_PkmnTighteningFocus, + gText_PkmnFellForTaunt, + gText_PkmnCantUseMoveTaunt, + gText_PkmnReadyToHelp, + gText_PkmnSwitchedItems, + gText_PkmnCopiedFoe, + gText_PkmnMadeWish, + gText_PkmnWishCameTrue, + gText_PkmnPlantedRoots, + gText_PkmnAbsorbedNutrients, + gText_PkmnAnchoredItself, + gText_PkmnWasMadeDrowsy, + gText_PkmnKnockedOff, + gText_PkmnSwappedAbilities, + gText_PkmnSealedOpponentMove, + gText_PkmnCantUseMoveSealed, + gText_PkmnWantsGrudge, + gText_PkmnLostPPGrudge, + gText_PkmnShroudedItself, + gText_PkmnMoveBounced, + gText_PkmnWaitsForTarget, + gText_PkmnSnatchedMove, + gText_PkmnMadeItRain, + gText_PkmnRaisedSpeed, + gText_PkmnProtectedBy, + gText_PkmnPreventsUsage, + gText_PkmnRestoredHPUsing, + gText_PkmnChangedTypeWith, + gText_PkmnPreventsParalysisWith, + gText_PkmnPreventsRomanceWith, + gText_PkmnPreventsPoisoningWith, + gText_PkmnPreventsConfusionWith, + gText_PkmnRaisedFirePowerWith, + gText_PkmnAnchorsItselfWith, + gText_PkmnCutsAttackWith, + gText_PkmnPreventsStatLossWith, + gText_PkmnHurtsWith, + gText_PkmnTraced, + gText_StatSharply, + gText_StatRose, + gText_StatHarshly, + gText_StatFell, + gText_PkmnsStatChanged, + gText_PkmnsStatChanged2, + gText_PkmnsStatChanged3, + gText_PkmnsStatChanged4, + gText_CriticalHit, + gText_OneHitKO, + gText_123Poof, + gText_AndEllipsis, + gText_NotVeryEffective, + gText_SuperEffective, + gText_GotAwaySafely, + gText_WildPkmnFled, + gText_NoRunningFromTrainers, + gText_CantEscape, + gText_DontLeaveBirch, + gText_ButNothingHappened, + gText_ButItFailed, + gText_ItHurtConfusion, + gText_MirrorMoveFailed, + gText_StartedToRain, + gText_DownpourStarted, + gText_RainContinues, + gText_DownpourContinues, + gText_RainStopped, + gText_SandstormBrewed, + gText_SandstormRages, + gText_SandstormSubsided, + gText_SunlightGotBright, + gText_SunlightStrong, + gText_SunlightFaded, + gText_StartedHail, + gText_HailContinues, + gText_HailStopped, + gText_FailedToSpitUp, + gText_FailedToSwallow, + gText_WindBecameHeatWave, + gText_StatChangesGone, + gText_CoinsScattered, + gText_TooWeakForSubstitute, + gText_SharedPain, + gText_BellChimed, + gText_FaintInThree, + gText_NoPPLeft, + gText_ButNoPPLeft, + gText_PlayerUsedItem, + gText_WallyUsedItem, + gText_TrainerBlockedBall, + gText_DontBeAThief, + gText_ItDodgedBall, + gText_YouMissedPkmn, + gText_PkmnBrokeFree, + gText_ItAppearedCaught, + gText_AarghAlmostHadIt, + gText_ShootSoClose, + gText_GotchaPkmnCaught, + gText_GotchaPkmnCaught2, + gText_GiveNicknameCaptured, + gText_PkmnSentToPC, + gText_PkmnDataAddedToDex, + gText_ItIsRaining, + gText_SandstormIsRaging, + gText_CantEscape2, + gText_PkmnIgnoresAsleep, + gText_PkmnIgnoredOrders, + gText_PkmnBeganToNap, + gText_PkmnLoafing, + gText_PkmnWontObey, + gText_PkmnTurnedAway, + gText_PkmnPretendNotNotice, + gText_EnemyAboutToSwitchPkmn, + gText_CreptCloser, + gText_CantGetCloser, + gText_PkmnWatchingCarefully, + gText_PkmnCuriousAboutX, + gText_PkmnEnthralledByX, + gText_PkmnIgnoredX, + gText_ThrewPokeblockAtPkmn, + gText_OutOfSafariBalls, + gText_PkmnsItemCuredParalysis, + gText_PkmnsItemCuredPoison, + gText_PkmnsItemHealedBurn, + gText_PkmnsItemDefrostedIt, + gText_PkmnsItemWokeIt, + gText_PkmnsItemSnappedOut, + gText_PkmnsItemCuredProblem, + gText_PkmnsItemRestoredHealth, + gText_PkmnsItemRestoredPP, + gText_PkmnsItemRestoredStatus, + gText_PkmnsItemRestoredHPALittle, + gText_ItemAllowsOnlyYMove, + gText_PkmnHungOnWithX, + gText_EmptyString3, + gText_PkmnsXPreventsBurns, + gText_PkmnsXBlocksY, + gText_PkmnsXRestoredHPALittle2, + gText_PkmnsXWhippedUpSandstorm, + gText_PkmnsXPreventsYLoss, + gText_PkmnsXInfatuatedY, + gText_PkmnsXMadeYIneffective, + gText_PkmnsXCuredYProblem, + gText_ItSuckedLiquidOoze, + gText_PkmnTransformed, + gText_ElectricityWeakened, + gText_FireWeakened, + gText_PkmnHidUnderwater, + gText_PkmnSprangUp, + gText_HMMovesCantBeForgotten, + gText_XFoundOneY, + gText_PlayerDefeatedLinkTrainerTrainer1, + gText_SoothingAroma, + gText_ItemsCantBeUsedNow, + gText_ForXCommaYZ, + gText_UsingXTheYOfZN, + gText_PkmnUsedXToGetPumped, + gText_PkmnsXMadeYUseless, + gText_PkmnTrappedBySandTomb, + gText_EmptyString4, + gText_ABoosted, + gText_PkmnsXIntensifiedSun, + gText_PkmnMakesGroundMiss, + gText_YouThrowABallNowRight, + gText_PkmnsXTookAttack, + gText_PkmnChoseXAsDestiny, + gText_PkmnLostFocus, + gText_UseNextPkmn, + gText_PkmnFledUsingIts, + gText_PkmnFledUsing, + gText_PkmnWasDraggedOut, + gText_PreventedFromWorking, + gText_PkmnsItemNormalizedStatus, + gText_Trainer1UsedItem, + gText_BoxIsFull, + gText_PkmnAvoidedAttack, + gText_PkmnsXMadeItIneffective, + gText_PkmnsXPreventsFlinching, + gText_PkmnAlreadyHasBurn, + gText_StatsWontDecrease2, + gText_PkmnsXBlocksY2, + gText_PkmnsXWoreOff, + gText_PkmnRaisedDefALittle, + gText_PkmnRaisedSpDefALittle, + gText_TheWallShattered, + gText_PkmnsXPreventsYsZ, + gText_PkmnsXCuredItsYProblem, + gText_PkmnCantEscape2, + gText_PkmnObtainedX, + gText_PkmnObtainedX2, + gText_PkmnObtainedXYObtainedZ, + gText_ButNoEffect, + gText_PkmnsXHadNoEffectOnY, + gText_TwoInGameTrainersDefeated, + gText_Trainer2LoseText, + gText_PkmnIncapableOfPower, + gText_GlintAppearsInEye, + gText_PkmnGettingIntoPosition, + gText_PkmnBeganGrowlingDeeply, + gText_PkmnEagerForMore, + gText_DefeatedOpponentByReferee, + gText_LostToOpponentByReferee, + gText_TiedOpponentByReferee, + gText_QuestionForfeitMatch, + gText_ForfeitedMatch, + gText_PkmnTransferredSomeonesPC, + gText_PkmnTransferredLanettesPC, + gText_PkmnBoxSomeonesPCFull, + gText_PkmnBoxLanettesPCFull, + gText_Trainer1WinText, + gText_Trainer2WinText, +}; + +const u16 gMissStringIds[] = +{ + STRINGID_ATTACKMISSED, STRINGID_PKMNPROTECTEDITSELF, + STRINGID_PKMNAVOIDEDATTACK, STRINGID_AVOIDEDDAMAGE, + STRINGID_PKMNMAKESGROUNDMISS +}; + +// todo: change values to string Ids +const u16 gUnknown_085CC83E[] = +{ + 0x00e2, 0x00e3, 0x0021, + 0x0112, 0x0165, 0x00e8, 0x00e9, 0x00e5, 0x00ed, 0x00f0, 0x00f3, + 0x00ee, 0x00f4, 0x0066, 0x0067, 0x00ef, 0x00f5, 0x00ea, 0x00eb, + 0x00ec, 0x0065, 0x0098, 0x00e5, 0x00e5, 0x004e, 0x0160, 0x004d, + 0x0161, 0x004f, 0x0068, 0x0069, 0x001b, 0x006a, 0x0139, 0x0052, + 0x0053, 0x0070, 0x0071, 0x0073, 0x0074, 0x006c, 0x006e, 0x00f7, + 0x004c, 0x0075, 0x0076, 0x0077, 0x00d5, 0x00d6, 0x003d, 0x0130, + 0x0145, 0x0146, 0x00d7, 0x00d8, 0x003e, 0x0130, 0x0054, 0x0055, + 0x0056, 0x0057, 0x0058, 0x0059, 0x013d, 0x013e, 0x005a, 0x005c, + 0x005b, 0x005d, 0x005b, 0x0148, 0x0061, 0x00e5, 0x0063, 0x00e5, + 0x007d, 0x00e5, 0x007e, 0x00fb, 0x0028, 0x0029, 0x0037, 0x0038, + 0x0023, 0x0024, 0x002e, 0x002f, 0x0031, 0x0032, 0x0035, 0x0036, + 0x0017, 0x007c, 0x0045, 0x0136, 0x002d, 0x0139, 0x013b, 0x013c, + 0x00fd, 0x00fd, 0x00fd, 0x00fd, 0x0142, 0x00a1, 0x014f, 0x0107, + 0x0108, 0x0109, 0x010a, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, + 0x0110, 0x0110, 0x0110, 0x0111, 0x0110, 0x0110, 0x0110, 0x00f1, + 0x0110, 0x0110, 0x0110, 0x0116, 0x0117, 0x0118, 0x0119, 0x016d, + 0x011b, 0x011c, 0x011e, 0x011f, 0x0120, 0x0128, 0x0123, 0x0126, + 0x0125, 0x0124, 0x0127, 0x0129, 0x0156, 0x0131, 0x0163, 0x016a, + 0x00c7, 0x0163, 0x016a, 0x00c9, 0x0163, 0x016a, 0x0166, 0x0167, + 0x0168, 0x00cb, 0x0137, 0x0177, 0x0178, 0x0179, 0x017a, +}; + +const u16 gTrappingMoves[] = +{ + MOVE_BIND, MOVE_WRAP, MOVE_FIRE_SPIN, MOVE_CLAMP, MOVE_WHIRLPOOL, MOVE_SAND_TOMB, 0xFFFF +}; + +const u8 gText_PkmnIsEvolving[] = _("What?\n{STR_VAR_1} is evolving!"); +const u8 gText_CongratsPkmnEvolved[] = _("Congratulations! Your {STR_VAR_1}\nevolved into {STR_VAR_2}!{UNKNOWN_A}\p"); +const u8 gText_PkmnStoppedEvolving[] = _("Huh? {STR_VAR_1}\nstopped evolving!\p"); +const u8 gText_EllipsisQuestionMark[] = _("……?\p"); +const u8 gText_WhatWillPkmnDo[] = _("What will\n{B_SCR_ACTIVE_NAME_WITH_PREFIX} do?"); +const u8 gText_WhatWillPkmnDo2[] = _("What will\n{B_PLAYER_NAME} do?"); +const u8 gText_WhatWillWallyDo[] = _("What will\nWALLY do?"); +const u8 gText_LinkStandby[] = _("{PAUSE 16}Link standby…"); +const u8 gText_BattleMenu[] = _("FIGHT{CLEAR_TO 56}BAG\nPOKéMON{CLEAR_TO 56}RUN"); +const u8 gText_SafariZoneMenu[] = _("BALL{CLEAR_TO 56}{POKEBLOCK}\nGO NEAR{CLEAR_TO 56}RUN"); +const u8 gText_MoveInterfacePP[] = _("PP "); +const u8 gText_MoveInterfaceType[] = _("TYPE/"); +const u8 gText_MoveInterfacePpType[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}PP\nTYPE/"); +const u8 gText_MoveInterfaceDynamicColors[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}"); +const u8 gText_WhichMoveToForget4[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}Which move should\nbe forgotten?"); +const u8 gText_BattleYesNoChoice[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}Yes\nNo"); +const u8 gText_BattleSwitchWhich[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}Switch\nwhich?"); +const u8 gText_BattleSwitchWhich2[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}"); +const u8 gText_BattleSwitchWhich3[] = _("{UP_ARROW}"); +const u8 gText_BattleSwitchWhich4[] = _("{ESCAPE 4}"); +const u8 gText_BattleSwitchWhich5[] = _("-"); + +const u8 gText_HP[] = _("HP"); +const u8 gText_Attack[] = _("ATTACK"); +const u8 gText_Defense[] = _("DEFENSE"); +const u8 gText_SpAtk[] = _("SP. ATK"); +const u8 gText_SpDef[] = _("SP. DEF"); + +const u8 * const gStatNamesTable2[] = +{ + gText_HP, gText_SpAtk, gText_Attack, + gText_SpDef, gText_Defense, gText_Speed +}; + +const u8 gText_SafariBalls[] = _("{HIGHLIGHT DARK_GREY}SAFARI BALLS"); +const u8 gText_SafariBallLeft[] = _("{HIGHLIGHT DARK_GREY}Left: $" "{HIGHLIGHT DARK_GREY}");const u8 gText_Sleep[] = _( "sleep");const u8 gText_Poison[] = _( "poison");const u8 gText_Burn[] = _( "burn");const u8 gText_Paralysis[] = _( "paralysis");const u8 gText_Ice[] = _( "ice");const u8 gText_Confusion[] = _( "confusion");const u8 gText_Love[] = _( "love"); +const u8 gText_SpaceAndSpace[] = _(" and "); +const u8 gText_CommaSpace[] = _(", "); +const u8 gText_Space2[] = _(" "); +const u8 gText_ScrollTextUp[] = _("\l"); +const u8 gText_NewLine[] = _("\n"); +const u8 gText_Are[] = _("are"); +const u8 gText_Are2[] = _("are"); +const u8 gText_BadEgg[] = _("Bad EGG"); +const u8 gText_BattleWallyName[] = _("WALLY"); +const u8 gText_Win[] = _("{HIGHLIGHT TRANSPARENT}Win"); +const u8 gText_Loss[] = _("{HIGHLIGHT TRANSPARENT}Loss"); +const u8 gText_Draw[] = _("{HIGHLIGHT TRANSPARENT}Draw"); +const u8 gText_SpaceIs[] = _(" is"); +const u8 gText_ApostropheS[] = _("’s"); + +const u8 gText_UnknownMoveTypes[][17] = +{ + _("a NORMAL move"), + _("a FIGHTING move"), + _("a FLYING move"), + _("a POISON move"), + _("a GROUND move"), + _("a ROCK move"), + _("a BUG move"), + _("a GHOST move"), + _("a STEEL move"), + _("a ??? move"), + _("a FIRE move"), + _("a WATER move"), + _("a GRASS move"), + _("an ELECTRIC move"), + _("a PSYCHIC move"), + _("an ICE move"), + _("a DRAGON move"), + _("a DARK move") +}; + +const u8 gText_BattleTourney[] = _("BATTLE TOURNEY"); +const u8 gText_Round1[] = _("Round 1"); +const u8 gText_Round2[] = _("Round 2"); +const u8 gText_Semifinal[] = _("Semifinal"); +const u8 gText_Final[] = _("Final"); + +const u8 * const gRoundsStringTable[] = +{ + gText_Round1, + gText_Round2, + gText_Semifinal, + gText_Final +}; + +const u8 gText_TheGreatNewHope[] = _("The great new hope!\p"); +const u8 gText_WillChampinshipDreamComeTrue[] = _("Will the championship dream come true?!\p"); +const u8 gText_AFormerChampion[] = _("A former CHAMPION!\p"); +const u8 gText_ThePreviousChampion[] = _("The previous CHAMPION!\p"); +const u8 gText_TheUnbeatenChampion[] = _("The unbeaten CHAMPION!\p"); + +const u8 gText_PlayerMon1Name[] = _("{B_PLAYER_MON1_NAME}"); +const u8 gText_Vs[] = _("VS"); +const u8 gText_OpponentMon1Name[] = _("{B_OPPONENT_MON1_NAME}"); +const u8 gText_Mind[] = _("Mind"); +const u8 gText_Skill[] = _("Skill"); +const u8 gText_Body[] = _("Body"); +const u8 gText_Judgement[] = _("{B_BUFF1}{CLEAR 13}Judgment{CLEAR 13}{B_BUFF2}"); +const u8 gText_TwoTrainersSentPkmn[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} sent\nout {B_OPPONENT_MON1_NAME}!\p{B_TRAINER2_CLASS} {B_TRAINER2_NAME} sent\nout {B_OPPONENT_MON2_NAME}!"); +const u8 gText_Trainer2SentOutPkmn[] = _("{B_TRAINER2_CLASS} {B_TRAINER2_NAME} sent\nout {B_BUFF1}!"); +const u8 gText_TwoTrainersWantToBattle[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} and\n{B_TRAINER2_CLASS} {B_TRAINER2_NAME}\lwant to battle!\p"); +const u8 gText_InGamePartnerSentOutZGoN[] = _("{B_PARTNER_CLASS} {B_PARTNER_NAME} sent\nout {B_PLAYER_MON2_NAME}!\lGo, {B_PLAYER_MON1_NAME}!"); +const u8 gText_TwoInGameTrainersDefeated[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} and\n{B_TRAINER2_CLASS} {B_TRAINER2_NAME}\lwere defeated!\p"); +const u8 gText_Trainer2LoseText[] = _("{B_TRAINER2_LOSE_TEXT}"); +const u8 gText_PkmnIncapableOfPower[] = _("{B_ATK_NAME_WITH_PREFIX} appears incapable\nof using its power!"); +const u8 gText_GlintAppearsInEye[] = _("A glint appears in\n{B_ACTIVE_NAME_WITH_PREFIX}’s eyes!"); +const u8 gText_PkmnGettingIntoPosition[] = _("{B_ACTIVE_NAME_WITH_PREFIX} is getting into\nposition!"); +const u8 gText_PkmnBeganGrowlingDeeply[] = _("{B_ACTIVE_NAME_WITH_PREFIX} began growling deeply!"); +const u8 gText_PkmnEagerForMore[] = _("{B_ACTIVE_NAME_WITH_PREFIX} is eager for more!"); + +const u16 gUnknown_085CCF0A[] = +{ + 0x016E, 0x016F, 0x0170, 0x0171 +}; + +const u8 gText_RefIfNothingIsDecided[] = _("REFEREE: If nothing is decided in\n3 turns, we will go to judging!"); +const u8 gText_RefThatsIt[] = _("REFEREE: That’s it! We will now go to\njudging to determine the winner!"); +const u8 gText_RefJudgeMind[] = _("REFEREE: Judging category 1, Mind!\nThe POKéMON showing the most guts!\p"); +const u8 gText_RefJudgeSkill[] = _("REFEREE: Judging category 2, Skill!\nThe POKéMON using moves the best!\p"); +const u8 gText_RefJudgeBody[] = _("REFEREE: Judging category 3, Body!\nThe POKéMON with the most vitality!\p"); +const u8 gText_RefJudgement1[] = _("REFEREE: Judgment: {B_BUFF1} to {B_BUFF2}!\nThe winner is {B_PLAYER_NAME}’s {B_PLAYER_MON1_NAME}!\p"); +const u8 gText_RefJudgement2[] = _("REFEREE: Judgment: {B_BUFF1} to {B_BUFF2}!\nThe winner is {B_TRAINER1_NAME}’s {B_OPPONENT_MON1_NAME}!\p"); +const u8 gText_RefJudgement3[] = _("REFEREE: Judgment: 3 to 3!\nWe have a draw!\p"); +const u8 gText_DefeatedOpponentByReferee[] = _("{B_PLAYER_MON1_NAME} defeated the opponent\n{B_OPPONENT_MON1_NAME} in a REFEREE’s decision!"); +const u8 gText_LostToOpponentByReferee[] = _("{B_PLAYER_MON1_NAME} lost to the opponent\n{B_OPPONENT_MON1_NAME} in a REFEREE’s decision!"); +const u8 gText_TiedOpponentByReferee[] = _("{B_PLAYER_MON1_NAME} tied the opponent\n{B_OPPONENT_MON1_NAME} in a REFEREE’s decision!"); +const u8 gText_RefCommenceBattle[] = _("REFEREE: {B_PLAYER_MON1_NAME} VS {B_OPPONENT_MON1_NAME}!\nCommence battling!"); + +const u8 * const gRefereeStringsTable[] = +{ + gText_RefIfNothingIsDecided, + gText_RefThatsIt, + gText_RefJudgeMind, + gText_RefJudgeSkill, + gText_RefJudgeBody, + gText_RefJudgement1, + gText_RefJudgement2, + gText_RefJudgement3, + gText_RefCommenceBattle, +}; + +const u8 gText_QuestionForfeitMatch[] = _("Would you like to forfeit the match\nand quit now?"); +const u8 gText_ForfeitedMatch[] = _("{B_PLAYER_NAME} forfeited the match!"); +const u8 gText_Trainer1WinText[] = _("{B_TRAINER1_WIN_TEXT}"); +const u8 gText_Trainer2WinText[] = _("{B_TRAINER2_WIN_TEXT}"); +const u8 gText_Trainer1Fled[] = _( "{PLAY_SE 0x0011}{B_TRAINER1_CLASS} {B_TRAINER1_NAME} fled!"); +const u8 gText_PlayerLostAgainstTrainer1[] = _("Player lost against\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!"); +const u8 gText_PlayerBattledToDrawTrainer1[] = _("Player battled to a draw against\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!"); +const u8 gText_RecordBattleToPass[] = _("Would you like to record your battle\non your FRONTIER PASS?"); +const u8 gText_BattleRecordedOnPass[] = _("{B_PLAYER_NAME}’s battle result was recorded\non the FRONTIER PASS."); +const u8 gText_LinkTrainerWantsToBattlePause[] = _("{B_20}\nwants to battle!{PAUSE 49}"); +const u8 gText_TwoLinkTrainersWantToBattlePause[] = _("{B_20} and {B_21}\nwant to battle!{PAUSE 49}"); + +const u16 gUnknown_085CD336[] = +{ + 0x000e, 0x0046, 0x004a, 0x006a, 0x006b, 0x006c, 0x006e, 0x006f, + 0x0079, 0x007b, 0x007d, 0x0094, 0x0096, 0x0097, 0x009b, 0x009c, + 0x009f, 0x00a4, 0x00aa, 0x00ad, 0x00b6, 0x00bf, 0x00cb, 0x00cd, + 0x00cf, 0x00d6, 0x00ed, 0x00f4, 0x00f5, 0x010a, 0x010f, 0x0112, + 0x0113, 0x011a, 0x0125, 0x0136, 0x013c, 0x0140, 0x0149, 0x014a, + 0x014e, 0x0154, 0x0000, 0x0064, 0x0069, 0x0075, 0x0085, 0x00af, + 0x010d, 0x0153, 0x0000, 0x0060, 0x0061, 0x0066, 0x0068, 0x008c, + 0x0090, 0x00a5, 0x00b8, 0x010c, 0x0111, 0x0118, 0x0119, 0x0129, + 0x012a, 0x012c, 0x0139, 0x015a, 0x015b, 0x0000, 0x0001, 0x000a, + 0x000b, 0x0011, 0x0013, 0x0014, 0x0015, 0x001e, 0x0023, 0x0025, + 0x0027, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0040, 0x0047, + 0x0051, 0x0059, 0x005a, 0x005b, 0x005c, 0x0067, 0x0076, 0x007a, + 0x0080, 0x0084, 0x008b, 0x0091, 0x00a3, 0x00a9, 0x00ab, 0x00ae, + 0x00c1, 0x00cc, 0x00d5, 0x00f9, 0x00fd, 0x00ff, 0x0100, 0x0103, + 0x0104, 0x0110, 0x011b, 0x0141, 0x0157, 0x0000, +}; + +const u8 gUnknown_085CD422[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0}; + +const u16 gUnknown_085CD42C[] = +{ + 0x01ff, 0x0100, 0x0000, 0x0101, 0x060f, 0x0000, 0x01ff, 0x0101, + 0x0000, 0x0100, 0x060f, 0x0000, 0x01ee, 0x0100, 0x0000, 0x0d00, + 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, + 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x07ee, 0x0100, + 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, + 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0c00, 0x0b0e, 0x0000, + 0x01ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x0102, + 0x0000, 0x0c00, 0x0b0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, + 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, + 0x01ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x0100, + 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x0100, 0x0120, 0x0000, 0x0100, + 0x0200, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, + 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x01ff, + 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0d00, + 0x0f0e, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, + 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x0100, 0x01ff, + 0x0000, 0x0100, 0x0600, 0x0000, 0x0100, 0x01ff, 0x0000, 0x0100, + 0x0600, 0x0000, 0x0100, 0x01ff, 0x0000, 0x0100, 0x0600, 0x0000, +}; + +const u16 gUnknown_085CD54C[] = +{ + 0x01ff, 0x0100, 0x0000, 0x0101, 0x060f, 0x0000, 0x01ff, 0x0101, + 0x0000, 0x0100, 0x060f, 0x0000, 0x01ee, 0x0100, 0x0000, 0x0d00, + 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, + 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x07ee, 0x0100, + 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, + 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0c00, 0x0b0e, 0x0000, + 0x01ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x0102, + 0x0000, 0x0c00, 0x0b0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, + 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, + 0x01ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x0100, + 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x0100, 0x0120, 0x0000, 0x0100, + 0x0200, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0100, 0x0f0e, 0x0000, + 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x01ff, + 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0d00, + 0x0f0e, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, + 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x01ff, + 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x0111, 0x0100, 0x0000, 0x0201, + 0x0301, 0x0000 +}; + +const u16 * const gUnknown_085CD660[] = +{ + gUnknown_085CD42C, gUnknown_085CD54C +}; + +const u8 gUnknown_085CD668[] = {8, 4, 1, 0}; + +extern struct StringInfoBattle *gStringInfo; + +void BufferStringBattle(u16 stringID) +{ + s32 i; + const u8* stringPtr = NULL; + + gStringInfo = (struct StringInfoBattle*)(&gBattleBufferA[gActiveBank][4]); + gLastUsedItem = gStringInfo->lastItem; + gLastUsedAbility = gStringInfo->lastAbility; + gBattleScripting.bank = gStringInfo->scrActive; + *(&gBattleStruct->field_52) = gStringInfo->unk1605E; + *(&gBattleStruct->hpScale) = gStringInfo->hpScale; + gStringBank = gStringInfo->StringBank; + *(&gBattleStruct->stringMoveType) = gStringInfo->moveType; + + for (i = 0; i < BATTLE_BANKS_COUNT; i++) + { + gAbilitiesPerBank[i] = gStringInfo->abilities[i]; + } + for (i = 0; i < TEXT_BUFF_ARRAY_COUNT; i++) + { + gBattleTextBuff1[i] = gStringInfo->textBuffs[0][i]; + gBattleTextBuff2[i] = gStringInfo->textBuffs[1][i]; + gBattleTextBuff3[i] = gStringInfo->textBuffs[2][i]; + } + + switch (stringID) + { + case STRINGID_INTROMSG: // first battle msg + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) + { + if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + { + if (gBattleTypeFlags & BATTLE_TYPE_x800000) + { + stringPtr = gText_TwoTrainersWantToBattle; + } + else if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + { + if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) + stringPtr = gText_TwoLinkTrainersWantToBattlePause; + else + stringPtr = gText_TwoLinkTrainersWantToBattle; + } + else + { + if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + stringPtr = gText_Trainer1WantsToBattle; + else if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) + stringPtr = gText_LinkTrainerWantsToBattlePause; + else + stringPtr = gText_LinkTrainerWantsToBattle; + } + } + else + { + if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) + stringPtr = gText_TwoTrainersWantToBattle; + else if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) + stringPtr = gText_TwoTrainersWantToBattle; + else + stringPtr = gText_Trainer1WantsToBattle; + } + } + else + { + if (gBattleTypeFlags & BATTLE_TYPE_LEGENDARY) + stringPtr = gText_WildPkmnAppeared2; + else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) // interesting, looks like they had something planned for wild double battles + stringPtr = gText_TwoWildPkmnAppeared; + else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL) + stringPtr = gText_WildPkmnAppearedPause; + else + stringPtr = gText_WildPkmnAppeared; + } + break; + case STRINGID_INTROSENDOUT: // poke first send-out + if (GetBankSide(gActiveBank) == SIDE_PLAYER) + { + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) + stringPtr = gText_InGamePartnerSentOutZGoN; + else if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) + stringPtr = gText_GoTwoPkmn; + else if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + stringPtr = gText_LinkPartnerSentOutPkmnGoPkmn; + else + stringPtr = gText_GoTwoPkmn; + } + else + { + stringPtr = gText_GoPkmn; + } + } + else + { + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) + stringPtr = gText_TwoTrainersSentPkmn; + else if (gBattleTypeFlags & BATTLE_TYPE_x800000) + stringPtr = gText_TwoTrainersSentPkmn; + else if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + stringPtr = gText_TwoLinkTrainersSentOutPkmn; + else if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + stringPtr = gText_LinkTrainerSentOutTwoPkmn; + else + stringPtr = gText_Trainer1SentOutTwoPkmn; + } + else + { + if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000))) + stringPtr = gText_Trainer1SentOutPkmn; + else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + stringPtr = gText_Trainer1SentOutPkmn; + else + stringPtr = gText_LinkTrainerSentOutPkmn; + } + } + break; + case STRINGID_RETURNMON: // sending poke to ball msg + if (GetBankSide(gActiveBank) == SIDE_PLAYER) + { + if (*(&gBattleStruct->hpScale) == 0) + stringPtr = gText_PkmnThatsEnough; + else if (*(&gBattleStruct->hpScale) == 1 || gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + stringPtr = gText_PkmnComeBack; + else if (*(&gBattleStruct->hpScale) == 2) + stringPtr = gText_PkmnOkComeBack; + else + stringPtr = gText_PkmnGoodComeBack; + } + else + { + if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_800 || gBattleTypeFlags & BATTLE_TYPE_x2000000) + { + if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + stringPtr = gText_LinkTrainer2WithdrewPkmn; + else + stringPtr = gText_LinkTrainer1WithdrewPkmn; + } + else + { + stringPtr = gText_Trainer1WithdrewPkmn; + } + } + break; + case STRINGID_SWITCHINMON: // switch-in msg + if (GetBankSide(gBattleScripting.bank) == SIDE_PLAYER) + { + if (*(&gBattleStruct->hpScale) == 0 || gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + stringPtr = gText_GoPkmn2; + else if (*(&gBattleStruct->hpScale) == 1) + stringPtr = gText_DoItPkmn; + else if (*(&gBattleStruct->hpScale) == 2) + stringPtr = gText_GoForItPkmn; + else + stringPtr = gText_YourFoesWeakGetEmPkmn; + } + else + { + if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + { + if (gBattleTypeFlags & BATTLE_TYPE_x800000) + { + if (gBattleScripting.bank == 1) + stringPtr = gText_Trainer1SentOutPkmn2; + else + stringPtr = gText_Trainer2SentOutPkmn; + } + else + { + if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + stringPtr = gText_LinkTrainerMultiSentOutPkmn; + else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + stringPtr = gText_Trainer1SentOutPkmn2; + else + stringPtr = gText_LinkTrainerSentOutPkmn2; + } + } + else + { + if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) + { + if (gBattleScripting.bank == 1) + stringPtr = gText_Trainer1SentOutPkmn2; + else + stringPtr = gText_Trainer2SentOutPkmn; + } + else + { + stringPtr = gText_Trainer1SentOutPkmn2; + } + } + } + break; + case STRINGID_USEDMOVE: // pokemon used a move msg + sub_814F8F8(gBattleTextBuff1); + + if (gStringInfo->currentMove > LAST_MOVE_INDEX) + StringCopy(gBattleTextBuff2, gText_UnknownMoveTypes[*(&gBattleStruct->stringMoveType)]); + else + StringCopy(gBattleTextBuff2, gMoveNames[gStringInfo->currentMove]); + + sub_814F950(gBattleTextBuff2); + stringPtr = gText_AttackerUsedX; + break; + case STRINGID_BATTLEEND: // battle end + if (gBattleTextBuff1[0] & BATTLE_OUTCOME_BIT_x80) + { + gBattleTextBuff1[0] &= ~(BATTLE_OUTCOME_BIT_x80); + if (GetBankSide(gActiveBank) == SIDE_OPPONENT && gBattleTextBuff1[0] != BATTLE_DREW) + gBattleTextBuff1[0] ^= (BATTLE_LOST | BATTLE_WON); + + if (gBattleTextBuff1[0] == BATTLE_LOST || gBattleTextBuff1[0] == BATTLE_DREW) + stringPtr = gText_GotAwaySafely; + else if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + stringPtr = gText_TwoWildFled; + else + stringPtr = gText_WildFled; + } + else + { + if (GetBankSide(gActiveBank) == SIDE_OPPONENT && gBattleTextBuff1[0] != BATTLE_DREW) + gBattleTextBuff1[0] ^= (BATTLE_LOST | BATTLE_WON); + + if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + { + switch (gBattleTextBuff1[0]) + { + case BATTLE_WON: + if (gBattleTypeFlags & BATTLE_TYPE_x800000) + stringPtr = gText_TwoInGameTrainersDefeated; + else + stringPtr = gText_TwoLinkTrainersDefeated; + break; + case BATTLE_LOST: + stringPtr = gText_PlayerLostToTwo; + break; + case BATTLE_DREW: + stringPtr = gText_PlayerBattledToDrawVsTwo; + break; + } + } + else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + { + switch (gBattleTextBuff1[0]) + { + case BATTLE_WON: + stringPtr = gText_PlayerDefeatedLinkTrainerTrainer1; + break; + case BATTLE_LOST: + stringPtr = gText_PlayerLostAgainstTrainer1; + break; + case BATTLE_DREW: + stringPtr = gText_PlayerBattledToDrawTrainer1; + break; + } + } + else + { + switch (gBattleTextBuff1[0]) + { + case BATTLE_WON: + stringPtr = gText_PlayerDefeatedLinkTrainer; + break; + case BATTLE_LOST: + stringPtr = gText_PlayerLostAgainstLinkTrainer; + break; + case BATTLE_DREW: + stringPtr = gText_PlayerBattledToDrawLinkTrainer; + break; + } + } + } + break; + default: // load a string from the table + if (stringID >= BATTLESTRINGS_COUNT + BATTLESTRINGS_ID_ADDER) + { + gDisplayedStringBattle[0] = EOS; + return; + } + else + { + stringPtr = gBattleStringsTable[stringID - BATTLESTRINGS_ID_ADDER]; + } + break; + } + + BattleStringExpandPlaceholdersToDisplayedString(stringPtr); +} diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index e53292442..17b0e2ff9 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -34,6 +34,7 @@ #include "pokemon_storage_system.h" #include "task.h" #include "naming_screen.h" +#include "battle_string_ids.h" // variables @@ -1375,7 +1376,7 @@ static void atk02_attackstring(void) return; if (!(gHitMarker & (HITMARKER_NO_ATTACKSTRING | HITMARKER_ATTACKSTRING_PRINTED))) { - PrepareStringBattle(4, gBankAttacker); + PrepareStringBattle(STRINGID_USEDMOVE, gBankAttacker); gHitMarker |= HITMARKER_ATTACKSTRING_PRINTED; } gBattlescriptCurrInstr++; @@ -2000,7 +2001,7 @@ static void atk0B_healthbarupdate(void) if (gBattleMons[gActiveBank].status2 & STATUS2_SUBSTITUTE && gDisableStructs[gActiveBank].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE)) { - PrepareStringBattle(0x80, gActiveBank); + PrepareStringBattle(STRINGID_SUBSTITUTEDAMAGED, gActiveBank); } else { @@ -2157,7 +2158,7 @@ static void atk0D_critmessage(void) { if (gCritMultiplier == 2 && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) { - PrepareStringBattle(0xD9, gBankAttacker); + PrepareStringBattle(STRINGID_CRITICALHIT, gBankAttacker); gBattleCommunication[MSG_DISPLAY] = 1; } gBattlescriptCurrInstr++; @@ -2229,22 +2230,22 @@ static void atk0F_resultmessage(void) switch (gBattleMoveFlags & (u8)(~(MOVESTATUS_MISSED))) { case MOVESTATUS_SUPEREFFECTIVE: - stringId = 0xDE; + stringId = STRINGID_SUPEREFFECTIVE; break; case MOVESTATUS_NOTVERYEFFECTIVE: - stringId = 0xDD; + stringId = STRINGID_NOTVERYEFFECTIVE; break; case MOVESTATUS_ONEHITKO: - stringId = 0xDA; + stringId = STRINGID_ONEHITKO; break; case MOVESTATUS_ENDURED: - stringId = 0x99; + stringId = STRINGID_PKMNENDUREDHIT; break; case MOVESTATUS_FAILED: - stringId = 0xE5; + stringId = STRINGID_BUTITFAILED; break; case MOVESTATUS_NOTAFFECTED: - stringId = 0x1B; + stringId = STRINGID_ITDOESNTAFFECT; break; case MOVESTATUS_HUNGON: gLastUsedItem = gBattleMons[gBankTarget].item; @@ -2256,7 +2257,7 @@ static void atk0F_resultmessage(void) default: if (gBattleMoveFlags & MOVESTATUS_NOTAFFECTED) { - stringId = 0x1B; + stringId = STRINGID_ITDOESNTAFFECT; } else if (gBattleMoveFlags & MOVESTATUS_ONEHITKO) { @@ -2285,7 +2286,7 @@ static void atk0F_resultmessage(void) } else if (gBattleMoveFlags & MOVESTATUS_FAILED) { - stringId = 0xE5; + stringId = STRINGID_BUTITFAILED; } else { @@ -3592,7 +3593,7 @@ static void atk23_getexp(void) PREPARE_WORD_NUMBER_BUFFER(gBattleTextBuff3, 5, gBattleMoveDamage) - PrepareStringBattle(0xD, gBattleStruct->expGetterBank); + PrepareStringBattle(STRINGID_PKMNGAINEDEXP, gBattleStruct->expGetterBank); MonGainEVs(&gPlayerParty[gBattleStruct->expGetterId], gBattleMons[gBank1].species); } gBattleStruct->sentInPokes >>= 1; @@ -6181,7 +6182,7 @@ static void atk5A_yesnoboxlearnmove(void) u16 moveId = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_MOVE1 + movePosition); if (IsHMMove2(moveId)) { - PrepareStringBattle(0x13F, gActiveBank); + PrepareStringBattle(STRINGID_HMMOVESCANTBEFORGOTTEN, gActiveBank); gBattleScripting.learnMoveState = 6; } else diff --git a/sym_ewram.txt b/sym_ewram.txt index b1572bf25..0299dad2e 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -238,26 +238,7 @@ gBattle_WIN1H: @ 2022E28 gBattle_WIN1V: @ 2022E2A .space 0x2 -gDisplayedStringBattle: @ 2022E2C - .space 0x12C - -gBattleTextBuff1: @ 2022F58 - .space 0x2 - -gUnknown_02022F5A: @ 2022F5A - .space 0x2 - -gUnknown_02022F5C: @ 2022F5C - .space 0xC - -gBattleTextBuff2: @ 2022F68 - .space 0x2 - -gUnknown_02022F6A: @ 2022F6A - .space 0xE - -gBattleTextBuff3: @ 2022F78 - .space 0x10 + .include "src/battle_message.o" gUnknown_02022F88: @ 2022F88 .space 0x64 -- cgit v1.2.3 From 7552caaadc3b5ec64bc4ea8c6927d6d452238730 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 7 Oct 2017 19:59:41 +0200 Subject: placeholders for battle strings are done --- asm/battle_message.s | 1954 ---------------------------------------------- asm/battle_setup.s | 12 +- asm/battle_tower.s | 12 +- asm/rom6.s | 2 +- charmap.txt | 6 +- include/battle_2.h | 2 +- include/battle_message.h | 106 +-- include/global.h | 37 +- src/battle_2.c | 2 +- src/battle_message.c | 745 ++++++++++++++++-- 10 files changed, 783 insertions(+), 2095 deletions(-) diff --git a/asm/battle_message.s b/asm/battle_message.s index 9afa6e399..d78167a26 100644 --- a/asm/battle_message.s +++ b/asm/battle_message.s @@ -5,1960 +5,6 @@ .text - thumb_func_start BattleStringExpandPlaceholdersToDisplayedString -BattleStringExpandPlaceholdersToDisplayedString: @ 814E6F0 - push {lr} - ldr r1, =gDisplayedStringBattle - bl BattleStringExpandPlaceholders - pop {r1} - bx r1 - .pool - thumb_func_end BattleStringExpandPlaceholdersToDisplayedString - - thumb_func_start AppendStatusString -AppendStatusString: @ 814E700 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r1, =gUnknown_085CD422 - mov r0, sp - movs r2, 0x8 - bl memcpy - mov r2, sp - movs r3, 0 - b _0814E728 - .pool -_0814E71C: - strb r1, [r2] - adds r4, 0x1 - adds r2, 0x1 - adds r3, 0x1 - cmp r3, 0x7 - bhi _0814E730 -_0814E728: - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - bne _0814E71C -_0814E730: - ldr r5, [sp] - ldr r4, [sp, 0x4] - movs r3, 0 - ldr r2, =gStatusConditionStringsTable -_0814E738: - ldr r1, [r2] - ldr r0, [r1] - cmp r5, r0 - bne _0814E750 - ldr r0, [r1, 0x4] - cmp r4, r0 - bne _0814E750 - ldr r0, [r2, 0x4] - b _0814E75A - .pool -_0814E750: - adds r2, 0x8 - adds r3, 0x1 - cmp r3, 0x6 - bls _0814E738 - movs r0, 0 -_0814E75A: - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end AppendStatusString - - thumb_func_start BattleStringExpandPlaceholders - BattleStringExpandPlaceholders: @ 814E764 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x20 - mov r9, r0 - mov r8, r1 - movs r6, 0 - movs r4, 0 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 18 - ands r0, r1 - cmp r0, 0 - beq _0814E794 - ldr r0, =gUnknown_0203C7B4 - ldrb r7, [r0] - b _0814E79C - .pool -_0814E794: - bl GetMultiplayerId - lsls r0, 24 - lsrs r7, r0, 24 -_0814E79C: - mov r0, r9 - ldrb r1, [r0] - bl _0814F620 -_0814E7A4: - cmp r1, 0xFD - beq _0814E7AC - bl _0814F610 -_0814E7AC: - movs r1, 0x1 - add r9, r1 - mov r2, r9 - ldrb r0, [r2] - cmp r0, 0x34 - bls _0814E7BC - bl _0814F5C0 -_0814E7BC: - lsls r0, 2 - ldr r1, =_0814E7CC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0814E7CC: - .4byte _0814E8A0 - .4byte _0814E8CE - .4byte _0814E90A - .4byte _0814E914 - .4byte _0814E920 - .4byte _0814E92C - .4byte _0814E960 - .4byte _0814E994 - .4byte _0814E9C8 - .4byte _0814E9FC - .4byte _0814EA38 - .4byte _0814EA78 - .4byte _0814EAB8 - .4byte _0814EAF8 - .4byte _0814EBB0 - .4byte _0814EC38 - .4byte _0814ECD4 - .4byte _0814ED70 - .4byte _0814EE0C - .4byte _0814EEA8 - .4byte _0814EF44 - .4byte _0814EF5C - .4byte _0814EF98 - .4byte _0814F080 - .4byte _0814F088 - .4byte _0814F098 - .4byte _0814F0A8 - .4byte _0814F0B8 - .4byte _0814F0D8 - .4byte _0814F164 - .4byte _0814F220 - .4byte _0814F230 - .4byte _0814F244 - .4byte _0814F258 - .4byte _0814F27C - .4byte _0814F298 - .4byte _0814F2C0 - .4byte _0814F300 - .4byte _0814F330 - .4byte _0814F3C4 - .4byte _0814F410 - .4byte _0814F418 - .4byte _0814F3E4 - .4byte _0814F3EC - .4byte _0814F43C - .4byte _0814F444 - .4byte _0814F468 - .4byte _0814F4B8 - .4byte _0814F508 - .4byte _0814F548 - .4byte _0814F594 - .4byte _0814F5B4 - .4byte _0814E8E4 -_0814E8A0: - ldr r5, =gBattleTextBuff1 - ldrb r0, [r5] - cmp r0, 0xFD - bne _0814E8B8 - ldr r4, =gStringVar1 - adds r0, r5, 0 - b _0814E8F0 - .pool -_0814E8B8: - adds r0, r5, 0 - bl AppendStatusString - adds r4, r0, 0 - cmp r4, 0 - beq _0814E8C8 - bl _0814F5C0 -_0814E8C8: - adds r4, r5, 0 - bl _0814F5C0 -_0814E8CE: - ldr r1, =gBattleTextBuff2 - ldrb r0, [r1] - cmp r0, 0xFD - bne _0814E904 - ldr r4, =gStringVar2 - b _0814E8EE - .pool -_0814E8E4: - ldr r1, =gBattleTextBuff3 - ldrb r0, [r1] - cmp r0, 0xFD - bne _0814E904 - ldr r4, =gStringVar3 -_0814E8EE: - adds r0, r1, 0 -_0814E8F0: - adds r1, r4, 0 - bl ExpandBattleTextBuffPlaceholders - bl _0814F5C0 - .pool -_0814E904: - adds r4, r1, 0 - bl _0814F5C0 -_0814E90A: - ldr r4, =gStringVar1 - bl _0814F5C0 - .pool -_0814E914: - ldr r4, =gStringVar2 - bl _0814F5C0 - .pool -_0814E920: - ldr r4, =gStringVar3 - bl _0814F5C0 - .pool -_0814E92C: - movs r0, 0 - bl GetBankByIdentity - ldr r1, =gBattlePartyID - lsls r0, 24 - lsrs r0, 23 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2 - mov r2, sp - bl GetMonData - mov r0, sp - bl StringGetEnd10 - bl _0814F5BE - .pool -_0814E960: - movs r0, 0x1 - bl GetBankByIdentity - ldr r1, =gBattlePartyID - lsls r0, 24 - lsrs r0, 23 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x2 - mov r2, sp - bl GetMonData - mov r0, sp - bl StringGetEnd10 - bl _0814F5BE - .pool -_0814E994: - movs r0, 0x2 - bl GetBankByIdentity - ldr r1, =gBattlePartyID - lsls r0, 24 - lsrs r0, 23 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2 - mov r2, sp - bl GetMonData - mov r0, sp - bl StringGetEnd10 - bl _0814F5BE - .pool -_0814E9C8: - movs r0, 0x3 - bl GetBankByIdentity - ldr r1, =gBattlePartyID - lsls r0, 24 - lsrs r0, 23 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x2 - mov r2, sp - bl GetMonData - mov r0, sp - bl StringGetEnd10 - bl _0814F5BE - .pool -_0814E9FC: - ldr r2, =gBattlePartyID - ldr r1, =gLinkPlayers - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x18] - lsls r0, 1 - adds r0, r2 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2 - mov r2, sp - bl GetMonData - mov r0, sp - bl StringGetEnd10 - bl _0814F5BE - .pool -_0814EA38: - ldr r2, =gBattlePartyID - ldr r1, =gLinkPlayers - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0, 0x18] - movs r0, 0x1 - eors r0, r1 - lsls r0, 1 - adds r0, r2 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x2 - mov r2, sp - bl GetMonData - mov r0, sp - bl StringGetEnd10 - bl _0814F5BE - .pool -_0814EA78: - ldr r2, =gBattlePartyID - ldr r1, =gLinkPlayers - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0, 0x18] - movs r0, 0x2 - eors r0, r1 - lsls r0, 1 - adds r0, r2 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2 - mov r2, sp - bl GetMonData - mov r0, sp - bl StringGetEnd10 - bl _0814F5BE - .pool -_0814EAB8: - ldr r2, =gBattlePartyID - ldr r1, =gLinkPlayers - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - adds r0, r1 - ldrh r1, [r0, 0x18] - movs r0, 0x3 - eors r0, r1 - lsls r0, 1 - adds r0, r2 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x2 - mov r2, sp - bl GetMonData - mov r0, sp - bl StringGetEnd10 - bl _0814F5BE - .pool -_0814EAF8: - ldr r4, =gBankAttacker - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - adds r2, r4, 0 - cmp r0, 0 - beq _0814EB74 - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x8 - ands r1, r0 - ldr r4, =gText_WildPkmnPrefix - cmp r1, 0 - beq _0814EB36 - ldr r4, =gText_FoePkmnPrefix - b _0814EB36 - .pool -_0814EB2C: - mov r3, r8 - adds r0, r3, r6 - strb r1, [r0] - adds r6, 0x1 - adds r4, 0x1 -_0814EB36: - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - bne _0814EB2C - ldrb r0, [r2] - bl GetBankIdentity - adds r1, r0, 0 - movs r0, 0x1 - ands r0, r1 - bl GetBankByIdentity - ldr r1, =gBattlePartyID - lsls r0, 24 - lsrs r0, 23 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x2 - mov r2, sp - bl GetMonData - b _0814EB9E - .pool -_0814EB74: - ldrb r0, [r2] - bl GetBankIdentity - adds r1, r0, 0 - movs r0, 0x1 - ands r0, r1 - bl GetBankByIdentity - ldr r1, =gBattlePartyID - lsls r0, 24 - lsrs r0, 23 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2 - mov r2, sp - bl GetMonData -_0814EB9E: - mov r0, sp - bl StringGetEnd10 - bl _0814F5BE - .pool -_0814EBB0: - ldr r4, =gBankAttacker - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _0814EBF8 - ldrb r0, [r4] - bl GetBankIdentity - adds r1, r0, 0 - movs r0, 0x1 - ands r0, r1 - bl GetBankByIdentity - ldr r1, =gBattlePartyID - lsls r0, 24 - lsrs r0, 23 - adds r0, 0x4 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2 - mov r2, sp - bl GetMonData - b _0814EC24 - .pool -_0814EBF8: - ldrb r0, [r4] - bl GetBankIdentity - adds r1, r0, 0 - movs r0, 0x1 - ands r0, r1 - bl GetBankByIdentity - ldr r1, =gBattlePartyID - lsls r0, 24 - lsrs r0, 23 - adds r0, 0x4 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x2 - mov r2, sp - bl GetMonData -_0814EC24: - mov r0, sp - bl StringGetEnd10 - bl _0814F5BE - .pool -_0814EC38: - ldr r5, =gBankAttacker - ldrb r0, [r5] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _0814ECA8 - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x8 - ands r1, r0 - ldr r4, =gText_WildPkmnPrefix - cmp r1, 0 - beq _0814EC56 - ldr r4, =gText_FoePkmnPrefix -_0814EC56: - ldrb r1, [r4] - adds r0, r1, 0 - ldr r3, =gBattlePartyID - ldr r2, =gEnemyParty - mov r12, r2 - adds r2, r5, 0 - cmp r0, 0xFF - beq _0814EC78 -_0814EC66: - mov r5, r8 - adds r0, r5, r6 - strb r1, [r0] - adds r6, 0x1 - adds r4, 0x1 - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - bne _0814EC66 -_0814EC78: - ldrb r0, [r2] - lsls r0, 1 - adds r0, r3 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - add r0, r12 - movs r1, 0x2 - mov r2, sp - bl GetMonData - b _0814ECC2 - .pool -_0814ECA8: - ldr r1, =gBattlePartyID - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2 - mov r2, sp - bl GetMonData -_0814ECC2: - mov r0, sp - bl StringGetEnd10 - bl _0814F5BE - .pool -_0814ECD4: - ldr r5, =gBankTarget - ldrb r0, [r5] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _0814ED44 - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x8 - ands r1, r0 - ldr r4, =gText_WildPkmnPrefix - cmp r1, 0 - beq _0814ECF2 - ldr r4, =gText_FoePkmnPrefix -_0814ECF2: - ldrb r1, [r4] - adds r0, r1, 0 - ldr r3, =gBattlePartyID - ldr r2, =gEnemyParty - mov r12, r2 - adds r2, r5, 0 - cmp r0, 0xFF - beq _0814ED14 -_0814ED02: - mov r5, r8 - adds r0, r5, r6 - strb r1, [r0] - adds r6, 0x1 - adds r4, 0x1 - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - bne _0814ED02 -_0814ED14: - ldrb r0, [r2] - lsls r0, 1 - adds r0, r3 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - add r0, r12 - movs r1, 0x2 - mov r2, sp - bl GetMonData - b _0814ED5E - .pool -_0814ED44: - ldr r1, =gBattlePartyID - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2 - mov r2, sp - bl GetMonData -_0814ED5E: - mov r0, sp - bl StringGetEnd10 - bl _0814F5BE - .pool -_0814ED70: - ldr r5, =gEffectBank - ldrb r0, [r5] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _0814EDE0 - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x8 - ands r1, r0 - ldr r4, =gText_WildPkmnPrefix - cmp r1, 0 - beq _0814ED8E - ldr r4, =gText_FoePkmnPrefix -_0814ED8E: - ldrb r1, [r4] - adds r0, r1, 0 - ldr r3, =gBattlePartyID - ldr r2, =gEnemyParty - mov r12, r2 - adds r2, r5, 0 - cmp r0, 0xFF - beq _0814EDB0 -_0814ED9E: - mov r5, r8 - adds r0, r5, r6 - strb r1, [r0] - adds r6, 0x1 - adds r4, 0x1 - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - bne _0814ED9E -_0814EDB0: - ldrb r0, [r2] - lsls r0, 1 - adds r0, r3 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - add r0, r12 - movs r1, 0x2 - mov r2, sp - bl GetMonData - b _0814EDFA - .pool -_0814EDE0: - ldr r1, =gBattlePartyID - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2 - mov r2, sp - bl GetMonData -_0814EDFA: - mov r0, sp - bl StringGetEnd10 - bl _0814F5BE - .pool -_0814EE0C: - ldr r5, =gActiveBank - ldrb r0, [r5] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _0814EE7C - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x8 - ands r1, r0 - ldr r4, =gText_WildPkmnPrefix - cmp r1, 0 - beq _0814EE2A - ldr r4, =gText_FoePkmnPrefix -_0814EE2A: - ldrb r1, [r4] - adds r0, r1, 0 - ldr r3, =gBattlePartyID - ldr r2, =gEnemyParty - mov r12, r2 - adds r2, r5, 0 - cmp r0, 0xFF - beq _0814EE4C -_0814EE3A: - mov r5, r8 - adds r0, r5, r6 - strb r1, [r0] - adds r6, 0x1 - adds r4, 0x1 - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - bne _0814EE3A -_0814EE4C: - ldrb r0, [r2] - lsls r0, 1 - adds r0, r3 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - add r0, r12 - movs r1, 0x2 - mov r2, sp - bl GetMonData - b _0814EE96 - .pool -_0814EE7C: - ldr r1, =gBattlePartyID - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2 - mov r2, sp - bl GetMonData -_0814EE96: - mov r0, sp - bl StringGetEnd10 - b _0814F5BE - .pool -_0814EEA8: - ldr r5, =gBattleScripting - ldrb r0, [r5, 0x17] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _0814EF18 - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x8 - ands r1, r0 - ldr r4, =gText_WildPkmnPrefix - cmp r1, 0 - beq _0814EEC6 - ldr r4, =gText_FoePkmnPrefix -_0814EEC6: - ldrb r1, [r4] - adds r0, r1, 0 - ldr r3, =gBattlePartyID - ldr r2, =gEnemyParty - mov r12, r2 - adds r2, r5, 0 - cmp r0, 0xFF - beq _0814EEE8 -_0814EED6: - mov r5, r8 - adds r0, r5, r6 - strb r1, [r0] - adds r6, 0x1 - adds r4, 0x1 - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - bne _0814EED6 -_0814EEE8: - ldrb r0, [r2, 0x17] - lsls r0, 1 - adds r0, r3 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - add r0, r12 - movs r1, 0x2 - mov r2, sp - bl GetMonData - b _0814EF32 - .pool -_0814EF18: - ldr r1, =gBattlePartyID - ldrb r0, [r5, 0x17] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2 - mov r2, sp - bl GetMonData -_0814EF32: - mov r0, sp - bl StringGetEnd10 - b _0814F5BE - .pool -_0814EF44: - ldr r0, =gStringInfo - ldr r2, [r0] - ldrh r1, [r2] - movs r0, 0xB1 - lsls r0, 1 - cmp r1, r0 - bhi _0814EF6A - ldrh r1, [r2] - b _0814EF8A - .pool -_0814EF5C: - ldr r0, =gStringInfo - ldr r2, [r0] - ldrh r1, [r2, 0x2] - movs r0, 0xB1 - lsls r0, 1 - cmp r1, r0 - bls _0814EF88 -_0814EF6A: - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, 0x8E - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - ldr r1, =gText_UnknownMoveTypes - adds r4, r0, r1 - b _0814F5C0 - .pool -_0814EF88: - ldrh r1, [r2, 0x2] -_0814EF8A: - movs r0, 0xD - muls r1, r0 - ldr r0, =gMoveNames - adds r4, r1, r0 - b _0814F5C0 - .pool -_0814EF98: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - ldr r0, =0x02000002 - ands r0, r1 - cmp r0, 0 - beq _0814F06E - ldr r2, =gLastUsedItem - ldrh r0, [r2] - cmp r0, 0xAF - bne _0814F064 - movs r0, 0x40 - ands r1, r0 - cmp r1, 0 - bne _0814F014 - ldr r0, =gBattleScripting - adds r0, 0x25 - ldrb r0, [r0] - cmp r0, 0 - beq _0814EFE0 - ldr r2, =gStringBank - ldrb r1, [r2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0814EFEC - b _0814F05C - .pool -_0814EFE0: - ldr r2, =gStringBank - ldrb r1, [r2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0814F05C -_0814EFEC: - ldrb r0, [r2] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - ldr r0, =gEnigmaBerries - adds r1, r0 - mov r0, sp - bl StringCopy - ldr r1, =gText_BerrySuffix - mov r0, sp - bl StringAppend - b _0814F5BE - .pool -_0814F014: - ldr r2, =gLinkPlayers - ldr r0, =gBattleScripting - adds r0, 0x25 - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, =gStringBank - ldrb r2, [r1] - ldrh r0, [r0, 0x18] - cmp r0, r2 - bne _0814F05C - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - ldr r0, =gEnigmaBerries - adds r1, r0 - mov r0, sp - bl StringCopy - ldr r1, =gText_BerrySuffix - mov r0, sp - bl StringAppend - b _0814F5BE - .pool -_0814F05C: - ldr r4, =gText_EnigmaBerry - b _0814F5C0 - .pool -_0814F064: - ldrh r0, [r2] - mov r1, sp - bl CopyItemName - b _0814F5BE -_0814F06E: - ldr r0, =gLastUsedItem - ldrh r0, [r0] - mov r1, sp - bl CopyItemName - b _0814F5BE - .pool -_0814F080: - ldr r0, =gLastUsedAbility - b _0814F0C0 - .pool -_0814F088: - ldr r1, =gAbilitiesPerBank - ldr r0, =gBankAttacker - b _0814F0BC - .pool -_0814F098: - ldr r1, =gAbilitiesPerBank - ldr r0, =gBankTarget - b _0814F0BC - .pool -_0814F0A8: - ldr r1, =gAbilitiesPerBank - ldr r0, =gBattleScripting - ldrb r0, [r0, 0x17] - b _0814F0BE - .pool -_0814F0B8: - ldr r1, =gAbilitiesPerBank - ldr r0, =gEffectBank -_0814F0BC: - ldrb r0, [r0] -_0814F0BE: - adds r0, r1 -_0814F0C0: - ldrb r1, [r0] - movs r0, 0xD - muls r1, r0 - ldr r0, =gAbilityNames - adds r4, r1, r0 - b _0814F5C0 - .pool -_0814F0D8: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 20 - ands r0, r1 - cmp r0, 0 - beq _0814F0F0 - bl GetSecretBaseTrainerNameIndex - b _0814F59C - .pool -_0814F0F0: - ldr r3, =gTrainerBattleOpponent_A - ldrh r2, [r3] - movs r0, 0xC0 - lsls r0, 4 - cmp r2, r0 - bne _0814F10C - bl sub_8068BB0 - lsls r0, 16 - lsrs r0, 16 - b _0814F5A0 - .pool -_0814F10C: - ldr r0, =0x000003fe - cmp r2, r0 - bne _0814F11C - bl sub_81A4D00 - b _0814F59C - .pool -_0814F11C: - ldr r0, =0x003f0100 - ands r0, r1 - cmp r0, 0 - beq _0814F12C - ldrh r0, [r3] - b _0814F598 - .pool -_0814F12C: - movs r0, 0x80 - lsls r0, 19 - ands r0, r1 - cmp r0, 0 - beq _0814F13E - ldrh r0, [r3] - bl sub_81D5530 - b _0814F59C -_0814F13E: - movs r0, 0x80 - lsls r0, 4 - ands r1, r0 - cmp r1, 0 - beq _0814F14E - bl sub_8165264 - b _0814F59C -_0814F14E: - ldr r2, =gTrainers - ldrh r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r1, [r0, 0x1] - movs r0, 0xD - b _0814F5A2 - .pool -_0814F164: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 20 - ands r0, r1 - cmp r0, 0 - beq _0814F1AC - movs r2, 0 - ldr r4, =gBattleResources - ldr r3, [r4] -_0814F178: - mov r1, sp - adds r0, r1, r2 - ldr r1, [r3] - adds r1, 0x2 - adds r1, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x6 - ble _0814F178 - mov r3, sp - adds r1, r3, r2 - movs r0, 0xFF - strb r0, [r1] - ldr r0, [r4] - ldr r0, [r0] - ldrb r1, [r0, 0xD] - mov r0, sp - bl ConvertInternationalString - b _0814F5BE - .pool -_0814F1AC: - ldr r3, =gTrainerBattleOpponent_A - ldrh r2, [r3] - movs r0, 0xC0 - lsls r0, 4 - cmp r2, r0 - bne _0814F1C4 - movs r1, 0x1 - adds r0, r7, 0 - eors r0, r1 - b _0814F284 - .pool -_0814F1C4: - ldr r0, =0x000003fe - cmp r2, r0 - bne _0814F1D8 - mov r0, sp - bl sub_81A4D50 - b _0814F5BE - .pool -_0814F1D8: - ldr r0, =0x003f0100 - ands r0, r1 - cmp r0, 0 - beq _0814F1E8 - ldrh r1, [r3] - b _0814F5B8 - .pool -_0814F1E8: - movs r0, 0x80 - lsls r0, 19 - ands r0, r1 - cmp r0, 0 - beq _0814F1FC - ldrh r1, [r3] - mov r0, sp - bl sub_81D5554 - b _0814F5BE -_0814F1FC: - movs r0, 0x80 - lsls r0, 4 - ands r1, r0 - cmp r1, 0 - beq _0814F20E - mov r0, sp - bl sub_8165284 - b _0814F5BE -_0814F20E: - ldrh r0, [r3] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTrainers + 0x4 @ name offset - adds r4, r1, r0 - b _0814F5C0 - .pool -_0814F220: - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - ldr r1, =gLinkPlayers + 8 - adds r4, r0, r1 - b _0814F5C0 - .pool -_0814F230: - ldr r4, =gLinkPlayers - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x18] - movs r0, 0x2 - b _0814F266 - .pool -_0814F244: - ldr r4, =gLinkPlayers - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x18] - movs r0, 0x1 - b _0814F266 - .pool -_0814F258: - ldr r4, =gLinkPlayers - lsls r0, r7, 3 - subs r0, r7 - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x18] - movs r0, 0x3 -_0814F266: - eors r0, r1 - bl sub_806D864 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r4, 0x8 - adds r4, r1, r4 - b _0814F5C0 - .pool -_0814F27C: - ldr r0, =gBattleScripting - ldrb r0, [r0, 0x17] - bl sub_806D864 -_0814F284: - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - ldr r0, =gLinkPlayers + 8 - adds r4, r1, r0 - b _0814F5C0 - .pool -_0814F298: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 17 - ands r0, r1 - cmp r0, 0 - beq _0814F2B4 - ldr r4, =gLinkPlayers + 8 - b _0814F5C0 - .pool -_0814F2B4: - ldr r0, =gSaveBlock2Ptr - ldr r4, [r0] - b _0814F5C0 - .pool -_0814F2C0: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - ldr r0, =0x003f0100 - ands r0, r1 - cmp r0, 0 - beq _0814F2E0 - ldr r0, =gTrainerBattleOpponent_A - ldrh r1, [r0] - movs r0, 0x2 - b _0814F55A - .pool -_0814F2E0: - movs r0, 0x80 - lsls r0, 19 - ands r1, r0 - cmp r1, 0 - beq _0814F2F8 - ldr r0, =gTrainerBattleOpponent_A - ldrh r1, [r0] - movs r0, 0x4 - b _0814F584 - .pool -_0814F2F8: - bl sub_80B1CA4 - adds r4, r0, 0 - b _0814F5C0 -_0814F300: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - ldr r0, =0x003f0100 - ands r0, r1 - cmp r0, 0 - beq _0814F31C - ldr r0, =gTrainerBattleOpponent_A - b _0814F556 - .pool -_0814F31C: - movs r0, 0x80 - lsls r0, 19 - ands r1, r0 - cmp r1, 0 - bne _0814F328 - b _0814F5C0 -_0814F328: - ldr r0, =gTrainerBattleOpponent_A - b _0814F580 - .pool -_0814F330: - ldr r0, =gBattleScripting - ldrb r0, [r0, 0x17] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _0814F39C - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x8 - ands r1, r0 - ldr r4, =gText_WildPkmnPrefix - cmp r1, 0 - beq _0814F34E - ldr r4, =gText_FoePkmnPrefix -_0814F34E: - ldrb r1, [r4] - adds r0, r1, 0 - ldr r5, =gEnemyParty - mov r12, r5 - ldr r2, =gBattleStruct - cmp r0, 0xFF - beq _0814F36E -_0814F35C: - mov r3, r8 - adds r0, r3, r6 - strb r1, [r0] - adds r6, 0x1 - adds r4, 0x1 - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - bne _0814F35C -_0814F36E: - ldr r0, [r2] - adds r0, 0x52 - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - add r0, r12 - movs r1, 0x2 - mov r2, sp - bl GetMonData - b _0814F3B4 - .pool -_0814F39C: - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, 0x52 - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2 - mov r2, sp - bl GetMonData -_0814F3B4: - mov r0, sp - bl StringGetEnd10 - b _0814F5BE - .pool -_0814F3C4: - ldr r0, =0x000008ab - bl FlagGet - lsls r0, 24 - ldr r4, =gText_Someones - cmp r0, 0 - bne _0814F3D4 - b _0814F5C0 -_0814F3D4: - ldr r4, =gText_Lanettes - b _0814F5C0 - .pool -_0814F3E4: - ldr r0, =gBankAttacker - b _0814F3EE - .pool -_0814F3EC: - ldr r0, =gBankTarget -_0814F3EE: - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - ldr r4, =gText_FoePkmnPrefix3 - cmp r0, 0 - beq _0814F3FE - b _0814F5C0 -_0814F3FE: - ldr r4, =gText_AllyPkmnPrefix2 - b _0814F5C0 - .pool -_0814F410: - ldr r0, =gBankAttacker - b _0814F41A - .pool -_0814F418: - ldr r0, =gBankTarget -_0814F41A: - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - ldr r4, =gText_FoePkmnPrefix2 - cmp r0, 0 - beq _0814F42A - b _0814F5C0 -_0814F42A: - ldr r4, =gText_AllyPkmnPrefix - b _0814F5C0 - .pool -_0814F43C: - ldr r0, =gBankAttacker - b _0814F446 - .pool -_0814F444: - ldr r0, =gBankTarget -_0814F446: - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - ldr r4, =gText_FoePkmnPrefix4 - cmp r0, 0 - beq _0814F456 - b _0814F5C0 -_0814F456: - ldr r4, =gText_AllyPkmnPrefix3 - b _0814F5C0 - .pool -_0814F468: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - ldr r0, =0x003f0100 - ands r0, r1 - cmp r0, 0 - beq _0814F484 - ldr r0, =gTrainerBattleOpponent_B - b _0814F596 - .pool -_0814F484: - movs r0, 0x80 - lsls r0, 19 - ands r1, r0 - cmp r1, 0 - beq _0814F49C - ldr r0, =gTrainerBattleOpponent_B - ldrh r0, [r0] - bl sub_81D5530 - b _0814F59C - .pool -_0814F49C: - ldr r2, =gTrainers - ldr r0, =gTrainerBattleOpponent_B - ldrh r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r1, [r0, 0x1] - movs r0, 0xD - b _0814F5A2 - .pool -_0814F4B8: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - ldr r0, =0x003f0100 - ands r0, r1 - cmp r0, 0 - beq _0814F4D4 - ldr r0, =gTrainerBattleOpponent_B - b _0814F5B6 - .pool -_0814F4D4: - movs r0, 0x80 - lsls r0, 19 - ands r1, r0 - cmp r1, 0 - beq _0814F4F0 - ldr r0, =gTrainerBattleOpponent_B - ldrh r1, [r0] - mov r0, sp - bl sub_81D5554 - b _0814F5BE - .pool -_0814F4F0: - ldr r0, =gTrainerBattleOpponent_B - ldrh r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - ldr r1, =gTrainers + 0x4 @ name offset - adds r4, r0, r1 - b _0814F5C0 - .pool -_0814F508: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - ldr r0, =0x003f0100 - ands r0, r1 - cmp r0, 0 - beq _0814F528 - ldr r0, =gTrainerBattleOpponent_B - ldrh r1, [r0] - movs r0, 0x2 - b _0814F55A - .pool -_0814F528: - movs r0, 0x80 - lsls r0, 19 - ands r1, r0 - cmp r1, 0 - beq _0814F540 - ldr r0, =gTrainerBattleOpponent_B - ldrh r1, [r0] - movs r0, 0x4 - b _0814F584 - .pool -_0814F540: - bl sub_80B1CE0 - adds r4, r0, 0 - b _0814F5C0 -_0814F548: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - ldr r0, =0x003f0100 - ands r0, r1 - cmp r0, 0 - beq _0814F574 - ldr r0, =gTrainerBattleOpponent_B -_0814F556: - ldrh r1, [r0] - movs r0, 0x1 -_0814F55A: - bl sub_81A36D0 - ldr r4, =gStringVar4 - b _0814F5C0 - .pool -_0814F574: - movs r0, 0x80 - lsls r0, 19 - ands r1, r0 - cmp r1, 0 - beq _0814F5C0 - ldr r0, =gTrainerBattleOpponent_B -_0814F580: - ldrh r1, [r0] - movs r0, 0x3 -_0814F584: - bl sub_81D572C - ldr r4, =gStringVar4 - b _0814F5C0 - .pool -_0814F594: - ldr r0, =gPartnerTrainerId -_0814F596: - ldrh r0, [r0] -_0814F598: - bl GetFrontierOpponentClass -_0814F59C: - lsls r0, 24 - lsrs r0, 24 -_0814F5A0: - movs r1, 0xD -_0814F5A2: - muls r1, r0 - ldr r0, =gTrainerClassNames - adds r4, r1, r0 - b _0814F5C0 - .pool -_0814F5B4: - ldr r0, =gPartnerTrainerId -_0814F5B6: - ldrh r1, [r0] -_0814F5B8: - mov r0, sp - bl GetFrontierTrainerName -_0814F5BE: - mov r4, sp -_0814F5C0: - ldrb r1, [r4] - adds r0, r1, 0 - mov r5, r9 - ldrb r2, [r5] - mov r3, r9 - adds r3, 0x1 - cmp r0, 0xFF - beq _0814F5E2 -_0814F5D0: - mov r5, r8 - adds r0, r5, r6 - strb r1, [r0] - adds r6, 0x1 - adds r4, 0x1 - ldrb r1, [r4] - adds r0, r1, 0 - cmp r0, 0xFF - bne _0814F5D0 -_0814F5E2: - lsls r0, r2, 24 - lsrs r0, 24 - cmp r0, 0x24 - beq _0814F5F6 - cmp r0, 0x30 - beq _0814F5F6 - cmp r0, 0x25 - beq _0814F5F6 - cmp r0, 0x31 - bne _0814F61C -_0814F5F6: - mov r0, r8 - adds r1, r0, r6 - movs r0, 0xFC - strb r0, [r1] - adds r6, 0x1 - mov r2, r8 - adds r1, r2, r6 - movs r0, 0x9 - strb r0, [r1] - adds r6, 0x1 - b _0814F61C - .pool -_0814F610: - mov r3, r8 - adds r0, r3, r6 - strb r1, [r0] - adds r6, 0x1 - mov r3, r9 - adds r3, 0x1 -_0814F61C: - mov r9, r3 - ldrb r1, [r3] -_0814F620: - adds r0, r1, 0 - cmp r0, 0xFF - beq _0814F62A - bl _0814E7A4 -_0814F62A: - mov r5, r8 - adds r1, r5, r6 - mov r2, r9 - ldrb r0, [r2] - strb r0, [r1] - adds r6, 0x1 - adds r0, r6, 0 - add sp, 0x20 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end BattleStringExpandPlaceholders - - thumb_func_start ExpandBattleTextBuffPlaceholders -ExpandBattleTextBuffPlaceholders: @ 814F648 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - adds r7, r0, 0 - adds r6, r1, 0 - movs r5, 0x1 - movs r0, 0 - mov r8, r0 - movs r0, 0xFF - strb r0, [r6] - ldrb r0, [r7, 0x1] - cmp r0, 0xFF - bne _0814F666 - b _0814F8EA -_0814F666: - adds r0, r7, r5 - ldrb r1, [r0] - adds r4, r0, 0 - cmp r1, 0xA - bls _0814F672 - b _0814F8E0 -_0814F672: - lsls r0, r1, 2 - ldr r1, =_0814F680 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0814F680: - .4byte _0814F6AC - .4byte _0814F6C8 - .4byte _0814F71C - .4byte _0814F734 - .4byte _0814F744 - .4byte _0814F7BC - .4byte _0814F7D0 - .4byte _0814F7E2 - .4byte _0814F828 - .4byte _0814F83C - .4byte _0814F858 -_0814F6AC: - adds r0, r5, r7 - ldrb r1, [r0, 0x1] - ldrb r0, [r0, 0x2] - lsls r0, 8 - orrs r1, r0 - ldr r0, =gBattleStringsTable - subs r1, 0xC - lsls r1, 2 - adds r1, r0 - ldr r1, [r1] - b _0814F8BE - .pool -_0814F6C8: - ldrb r0, [r4, 0x1] - cmp r0, 0x2 - beq _0814F6E4 - cmp r0, 0x2 - bgt _0814F6D8 - cmp r0, 0x1 - beq _0814F6DE - b _0814F706 -_0814F6D8: - cmp r0, 0x4 - beq _0814F6EC - b _0814F706 -_0814F6DE: - ldrb r4, [r4, 0x3] - mov r8, r4 - b _0814F706 -_0814F6E4: - ldrb r1, [r4, 0x3] - ldrb r0, [r4, 0x4] - lsls r0, 8 - b _0814F702 -_0814F6EC: - ldrb r0, [r4, 0x3] - mov r8, r0 - ldrb r0, [r4, 0x4] - lsls r0, 8 - mov r1, r8 - orrs r1, r0 - ldrb r0, [r4, 0x5] - lsls r0, 16 - orrs r1, r0 - ldrb r0, [r4, 0x6] - lsls r0, 24 -_0814F702: - orrs r1, r0 - mov r8, r1 -_0814F706: - adds r4, r5, r7 - ldrb r3, [r4, 0x2] - adds r0, r6, 0 - mov r1, r8 - movs r2, 0 - bl ConvertIntToDecimalStringN - adds r0, r5, 0x3 - ldrb r4, [r4, 0x1] - adds r5, r0, r4 - b _0814F8E0 -_0814F71C: - adds r0, r5, r7 - ldrb r1, [r0, 0x1] - ldrb r0, [r0, 0x2] - lsls r0, 8 - orrs r1, r0 - movs r0, 0xD - muls r1, r0 - ldr r0, =gMoveNames - adds r1, r0 - b _0814F8BE - .pool -_0814F734: - adds r0, r5, r7 - ldrb r0, [r0, 0x1] - lsls r1, r0, 3 - subs r1, r0 - ldr r0, =gTypeNames - b _0814F846 - .pool -_0814F744: - ldrb r0, [r4, 0x1] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _0814F768 - ldrb r1, [r4, 0x2] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2 - mov r2, sp - bl GetMonData - b _0814F7A4 - .pool -_0814F768: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0814F788 - ldr r1, =gText_FoePkmnPrefix - adds r0, r6, 0 - bl StringAppend - b _0814F790 - .pool -_0814F788: - ldr r1, =gText_WildPkmnPrefix - adds r0, r6, 0 - bl StringAppend -_0814F790: - adds r0, r5, r7 - ldrb r1, [r0, 0x2] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x2 - mov r2, sp - bl GetMonData -_0814F7A4: - mov r0, sp - bl StringGetEnd10 - adds r0, r6, 0 - mov r1, sp - bl StringAppend - b _0814F8DE - .pool -_0814F7BC: - ldr r1, =gStatNamesTable - adds r0, r5, r7 - ldrb r0, [r0, 0x1] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - b _0814F848 - .pool -_0814F7D0: - adds r0, r5, r7 - ldrb r1, [r0, 0x1] - ldrb r0, [r0, 0x2] - lsls r0, 8 - orrs r1, r0 - adds r0, r6, 0 - bl GetSpeciesName - b _0814F8DE -_0814F7E2: - adds r4, r5, r7 - ldrb r0, [r4, 0x1] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _0814F808 - ldrb r1, [r4, 0x2] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x2 - adds r2, r6, 0 - bl GetMonData - b _0814F81A - .pool -_0814F808: - ldrb r1, [r4, 0x2] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x2 - adds r2, r6, 0 - bl GetMonData -_0814F81A: - adds r0, r6, 0 - bl StringGetEnd10 - b _0814F8DE - .pool -_0814F828: - ldr r1, =gPokeblockWasTooXStringTable - adds r0, r5, r7 - ldrb r0, [r0, 0x1] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - b _0814F848 - .pool -_0814F83C: - adds r0, r5, r7 - ldrb r1, [r0, 0x1] - movs r0, 0xD - muls r1, r0 - ldr r0, =gAbilityNames -_0814F846: - adds r1, r0 -_0814F848: - adds r0, r6, 0 - bl StringAppend - adds r5, 0x2 - b _0814F8E0 - .pool -_0814F858: - adds r0, r5, r7 - ldrb r2, [r0, 0x1] - ldrb r0, [r0, 0x2] - lsls r0, 8 - orrs r2, r0 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - ldr r1, =0x02000002 - ands r0, r1 - cmp r0, 0 - beq _0814F8D6 - cmp r2, 0xAF - bne _0814F8CC - ldr r2, =gLinkPlayers - ldr r0, =gBattleScripting - adds r0, 0x25 - ldrb r1, [r0] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r1, =gStringBank - ldrb r2, [r1] - ldrh r0, [r0, 0x18] - cmp r0, r2 - bne _0814F8BC - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - ldr r0, =gEnigmaBerries - adds r1, r0 - adds r0, r6, 0 - bl StringCopy - ldr r1, =gText_BerrySuffix - b _0814F8BE - .pool -_0814F8BC: - ldr r1, =gText_EnigmaBerry -_0814F8BE: - adds r0, r6, 0 - bl StringAppend - b _0814F8DE - .pool -_0814F8CC: - adds r0, r2, 0 - adds r1, r6, 0 - bl CopyItemName - b _0814F8DE -_0814F8D6: - adds r0, r2, 0 - adds r1, r6, 0 - bl CopyItemName -_0814F8DE: - adds r5, 0x3 -_0814F8E0: - adds r0, r7, r5 - ldrb r0, [r0] - cmp r0, 0xFF - beq _0814F8EA - b _0814F666 -_0814F8EA: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end ExpandBattleTextBuffPlaceholders thumb_func_start sub_814F8F8 sub_814F8F8: @ 814F8F8 diff --git a/asm/battle_setup.s b/asm/battle_setup.s index fcc0de95b..fbedfff2f 100644 --- a/asm/battle_setup.s +++ b/asm/battle_setup.s @@ -2617,8 +2617,8 @@ _080B1C96: .pool thumb_func_end sub_80B1C7C - thumb_func_start sub_80B1CA4 -sub_80B1CA4: @ 80B1CA4 + thumb_func_start GetTrainer1LoseText +GetTrainer1LoseText: @ 80B1CA4 push {r4,lr} ldr r0, =gTrainerBattleOpponent_A ldrh r1, [r0] @@ -2643,10 +2643,10 @@ _080B1CC0: pop {r1} bx r1 .pool - thumb_func_end sub_80B1CA4 + thumb_func_end GetTrainer1LoseText - thumb_func_start sub_80B1CE0 -sub_80B1CE0: @ 80B1CE0 + thumb_func_start GetTrainer2LoseText +GetTrainer2LoseText: @ 80B1CE0 push {r4,lr} ldr r4, =gStringVar4 ldr r0, =gUnknown_02038BE0 @@ -2660,7 +2660,7 @@ sub_80B1CE0: @ 80B1CE0 pop {r1} bx r1 .pool - thumb_func_end sub_80B1CE0 + thumb_func_end GetTrainer2LoseText thumb_func_start sub_80B1D04 sub_80B1D04: @ 80B1D04 diff --git a/asm/battle_tower.s b/asm/battle_tower.s index eb91121ae..59971c5d2 100755 --- a/asm/battle_tower.s +++ b/asm/battle_tower.s @@ -5857,8 +5857,8 @@ sub_8165244: @ 8165244 .pool thumb_func_end sub_8165244 - thumb_func_start sub_8165264 -sub_8165264: @ 8165264 + thumb_func_start GetEreaderTrainerClassId +GetEreaderTrainerClassId: @ 8165264 ldr r1, =gTrainerClassToNameIndex ldr r0, =gSaveBlock2Ptr ldr r0, [r0] @@ -5869,10 +5869,10 @@ sub_8165264: @ 8165264 ldrb r0, [r0] bx lr .pool - thumb_func_end sub_8165264 + thumb_func_end GetEreaderTrainerClassId - thumb_func_start sub_8165284 -sub_8165284: @ 8165284 + thumb_func_start GetEreaderTrainerName +GetEreaderTrainerName: @ 8165284 push {r4,lr} adds r3, r0, 0 movs r2, 0 @@ -5896,7 +5896,7 @@ _08165294: pop {r0} bx r0 .pool - thumb_func_end sub_8165284 + thumb_func_end GetEreaderTrainerName thumb_func_start sub_81652B4 sub_81652B4: @ 81652B4 diff --git a/asm/rom6.s b/asm/rom6.s index c53e6fe6e..0b35ab0e8 100644 --- a/asm/rom6.s +++ b/asm/rom6.s @@ -7347,7 +7347,7 @@ sub_8139228: @ 8139228 sub_8139238: @ 8139238 push {lr} ldr r0, =gStringVar1 - bl sub_8165284 + bl GetEreaderTrainerName pop {r0} bx r0 .pool diff --git a/charmap.txt b/charmap.txt index 8fe4147cc..05eff3012 100644 --- a/charmap.txt +++ b/charmap.txt @@ -355,12 +355,12 @@ B_LINK_OPPONENT_MON1_NAME = FD 0A B_LINK_PLAYER_MON2_NAME = FD 0B B_LINK_OPPONENT_MON2_NAME = FD 0C B_ATK_NAME_WITH_PREFIX_MON1 = FD 0D -B_ATK_NAME = FD 0E +B_ATK_PARTNER_NAME = FD 0E B_ATK_NAME_WITH_PREFIX = FD 0F B_DEF_NAME_WITH_PREFIX = FD 10 B_EFF_NAME_WITH_PREFIX = FD 11 @ EFF = short for gEffectBank -B_SCR_ACTIVE_NAME_WITH_PREFIX = FD 12 -B_ACTIVE_NAME_WITH_PREFIX = FD 13 +B_ACTIVE_NAME_WITH_PREFIX = FD 12 +B_SCR_ACTIVE_NAME_WITH_PREFIX = FD 13 B_CURRENT_MOVE = FD 14 B_LAST_MOVE = FD 15 B_LAST_ITEM = FD 16 diff --git a/include/battle_2.h b/include/battle_2.h index edd6b6ef3..ab5068446 100644 --- a/include/battle_2.h +++ b/include/battle_2.h @@ -25,6 +25,6 @@ extern const u8 gStatusConditionString_IceJpn[8]; extern const u8 gStatusConditionString_ConfusionJpn[8]; extern const u8 gStatusConditionString_LoveJpn[8]; -extern const u8 * const gStatusConditionStringsTable[][2]; +extern const u8 * const gStatusConditionStringsTable[7][2]; #endif // GUARD_BATTLE_2_H diff --git a/include/battle_message.h b/include/battle_message.h index 1884c9e37..be2aca9b2 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -3,59 +3,59 @@ // for 0xFD -#define B_TXT_BUFF1 00 -#define B_TXT_BUFF2 01 -#define B_TXT_COPY_VAR_1 02 -#define B_TXT_COPY_VAR_2 03 -#define B_TXT_COPY_VAR_3 04 -#define B_TXT_PLAYER_MON1_NAME 05 -#define B_TXT_OPPONENT_MON1_NAME 06 -#define B_TXT_PLAYER_MON2_NAME 07 -#define B_TXT_OPPONENT_MON2_NAME 08 -#define B_TXT_LINK_PLAYER_MON1_NAME 09 -#define B_TXT_LINK_OPPONENT_MON1_NAME 0A -#define B_TXT_LINK_PLAYER_MON2_NAME 0B -#define B_TXT_LINK_OPPONENT_MON2_NAME 0C -#define B_TXT_ATK_NAME_WITH_PREFIX_MON1 0D -#define B_TXT_ATK_NAME 0E -#define B_TXT_ATK_NAME_WITH_PREFIX 0F -#define B_TXT_DEF_NAME_WITH_PREFIX 10 -#define B_TXT_EFF_NAME_WITH_PREFIX 11 // EFF = short for gEffectBank -#define B_TXT_SCR_ACTIVE_NAME_WITH_PREFIX 12 -#define B_TXT_ACTIVE_NAME_WITH_PREFIX 13 -#define B_TXT_CURRENT_MOVE 14 -#define B_TXT_LAST_MOVE 15 -#define B_TXT_LAST_ITEM 16 -#define B_TXT_LAST_ABILITY 17 -#define B_TXT_ATK_ABILITY 18 -#define B_TXT_DEF_ABILITY 19 -#define B_TXT_SCR_ACTIVE_ABILITY 1A -#define B_TXT_EFF_ABILITY 1B -#define B_TXT_TRAINER1_CLASS 1C -#define B_TXT_TRAINER1_NAME 1D -#define B_TXT_1E 1E // trainer name for a link player -#define B_TXT_1F 1F // trainer name for a link player -#define B_TXT_20 20 // trainer name for a link player -#define B_TXT_21 21 // trainer name for a link player -#define B_TXT_22 22 // trainer name for a link player -#define B_TXT_PLAYER_NAME 23 -#define B_TXT_TRAINER1_LOSE_TEXT 24 -#define B_TXT_TRAINER1_WIN_TEXT 25 -#define B_TXT_26 26 -#define B_TXT_PC_CREATOR_NAME 27 -#define B_TXT_ATK_PREFIX1 28 -#define B_TXT_DEF_PREFIX1 29 -#define B_TXT_ATK_PREFIX2 2A -#define B_TXT_DEF_PREFIX2 2B -#define B_TXT_ATK_PREFIX3 2C -#define B_TXT_DEF_PREFIX3 2D -#define B_TXT_TRAINER2_CLASS 2E -#define B_TXT_TRAINER2_NAME 2F -#define B_TXT_TRAINER2_LOSE_TEXT 30 -#define B_TXT_TRAINER2_WIN_TEXT 31 -#define B_TXT_PARTNER_CLASS 32 -#define B_TXT_PARTNER_NAME 33 -#define B_TXT_BUFF3 34 +#define B_TXT_BUFF1 0x0 +#define B_TXT_BUFF2 0x1 +#define B_TXT_COPY_VAR_1 0x2 +#define B_TXT_COPY_VAR_2 0x3 +#define B_TXT_COPY_VAR_3 0x4 +#define B_TXT_PLAYER_MON1_NAME 0x5 +#define B_TXT_OPPONENT_MON1_NAME 0x6 +#define B_TXT_PLAYER_MON2_NAME 0x7 +#define B_TXT_OPPONENT_MON2_NAME 0x8 +#define B_TXT_LINK_PLAYER_MON1_NAME 0x9 +#define B_TXT_LINK_OPPONENT_MON1_NAME 0xA +#define B_TXT_LINK_PLAYER_MON2_NAME 0xB +#define B_TXT_LINK_OPPONENT_MON2_NAME 0xC +#define B_TXT_ATK_NAME_WITH_PREFIX_MON1 0xD +#define B_TXT_ATK_PARTNER_NAME 0xE +#define B_TXT_ATK_NAME_WITH_PREFIX 0xF +#define B_TXT_DEF_NAME_WITH_PREFIX 0x10 +#define B_TXT_EFF_NAME_WITH_PREFIX 0x11 // EFF = short for gEffectBank +#define B_TXT_ACTIVE_NAME_WITH_PREFIX 0x12 +#define B_TXT_SCR_ACTIVE_NAME_WITH_PREFIX 0x13 +#define B_TXT_CURRENT_MOVE 0x14 +#define B_TXT_LAST_MOVE 0x15 +#define B_TXT_LAST_ITEM 0x16 +#define B_TXT_LAST_ABILITY 0x17 +#define B_TXT_ATK_ABILITY 0x18 +#define B_TXT_DEF_ABILITY 0x19 +#define B_TXT_SCR_ACTIVE_ABILITY 0x1A +#define B_TXT_EFF_ABILITY 0x1B +#define B_TXT_TRAINER1_CLASS 0x1C +#define B_TXT_TRAINER1_NAME 0x1D +#define B_TXT_1E 0x1E // trainer name for a link player +#define B_TXT_1F 0x1F // trainer name for a link player +#define B_TXT_20 0x20 // trainer name for a link player +#define B_TXT_21 0x21 // trainer name for a link player +#define B_TXT_22 0x22 // trainer name for a link player +#define B_TXT_PLAYER_NAME 0x23 +#define B_TXT_TRAINER1_LOSE_TEXT 0x24 +#define B_TXT_TRAINER1_WIN_TEXT 0x25 +#define B_TXT_26 0x26 +#define B_TXT_PC_CREATOR_NAME 0x27 +#define B_TXT_ATK_PREFIX1 0x28 +#define B_TXT_DEF_PREFIX1 0x29 +#define B_TXT_ATK_PREFIX2 0x2A +#define B_TXT_DEF_PREFIX2 0x2B +#define B_TXT_ATK_PREFIX3 0x2C +#define B_TXT_DEF_PREFIX3 0x2D +#define B_TXT_TRAINER2_CLASS 0x2E +#define B_TXT_TRAINER2_NAME 0x2F +#define B_TXT_TRAINER2_LOSE_TEXT 0x30 +#define B_TXT_TRAINER2_WIN_TEXT 0x31 +#define B_TXT_PARTNER_CLASS 0x32 +#define B_TXT_PARTNER_NAME 0x33 +#define B_TXT_BUFF3 0x34 // for B_TXT_BUFF1, B_TXT_BUFF2 and B_TXT_BUFF3 diff --git a/include/global.h b/include/global.h index e0c09d29a..e98b01ee2 100644 --- a/include/global.h +++ b/include/global.h @@ -225,24 +225,25 @@ extern struct SaveBlock2 *gSaveBlock2Ptr; struct SecretBaseRecord { - /*ID?*/ /*0x1A08*/ u8 sbr_field_0; - /*0x1A09*/ u8 sbr_field_1_0:4; - /*0x1A09*/ u8 gender:1; - /*0x1A09*/ u8 sbr_field_1_5:1; - /*0x1A09*/ u8 sbr_field_1_6:2; - /*0x1A0A*/ u8 sbr_field_2[7]; // 0xFF bytes? - /*0x1A12*/ u8 trainerId[4]; // byte 0 is used for determining trainer class - /*0x1A16*/ u16 sbr_field_e; - /*0x1A18*/ u8 sbr_field_10; - /*0x1A19*/ u8 sbr_field_11; - /*0x1A1A*/ u8 decorations[16]; - /*0x1A2A*/ u8 decorationPos[16]; - /*0x1A3A*/ u32 partyPersonality[6]; - /*0x1A54*/ u16 partyMoves[6 * 4]; - /*0x1A84*/ u16 partySpecies[6]; - /*0x1A90*/ u16 partyHeldItems[6]; - /*0x1A9C*/ u8 partyLevels[6]; - /*0x1AA2*/ u8 partyEVs[6]; + u8 sbr_field_0; + u8 sbr_field_1_0:4; + u8 gender:1; + u8 sbr_field_1_5:1; + u8 sbr_field_1_6:2; + u8 trainerName[7]; + u8 trainerId[4]; // byte 0 is used for determining trainer class + u8 language; + u16 sbr_field_e; + u8 sbr_field_10; + u8 sbr_field_11; + u8 decorations[16]; + u8 decorationPos[16]; + u32 partyPersonality[6]; + u16 partyMoves[6 * 4]; + u16 partySpecies[6]; + u16 partyHeldItems[6]; + u8 partyLevels[6]; + u8 partyEVs[6]; }; #include "game_stat.h" diff --git a/src/battle_2.c b/src/battle_2.c index 0fc7e8ffd..8e48f3ed6 100644 --- a/src/battle_2.c +++ b/src/battle_2.c @@ -344,7 +344,7 @@ const u8 gStatusConditionString_IceJpn[8] = _("こおり$$$$"); const u8 gStatusConditionString_ConfusionJpn[8] = _("こんらん$$$"); const u8 gStatusConditionString_LoveJpn[8] = _("メロメロ$$$"); -const u8 * const gStatusConditionStringsTable[][2] = +const u8 * const gStatusConditionStringsTable[7][2] = { {gStatusConditionString_PoisonJpn, gText_Poison}, {gStatusConditionString_SleepJpn, gText_Sleep}, diff --git a/src/battle_message.c b/src/battle_message.c index aaaf23fae..510b8a581 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -5,6 +5,10 @@ #include "moves.h" #include "text.h" #include "string_util.h" +#include "items.h" +#include "event_data.h" +#include "link.h" +#include "item.h" extern u16 gLastUsedItem; extern u8 gLastUsedAbility; @@ -16,11 +20,16 @@ extern u8 gEffectBank; extern u8 gAbilitiesPerBank[BATTLE_BANKS_COUNT]; extern u32 gBattleTypeFlags; extern u16 gTrainerBattleOpponent_A; +extern u16 gTrainerBattleOpponent_B; +extern u16 gPartnerTrainerId; extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; extern struct BattleEnigmaBerry gEnigmaBerries[BATTLE_BANKS_COUNT]; extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200]; extern const u8 gMoveNames[LAST_MOVE_INDEX + 1][13]; +extern const u8 gAbilityNames[][13]; +extern const u8 gTrainerClassNames[][13]; +extern const u8 gTypeNames[][7]; // strings extern const u8 gText_PkmnBoxSomeonesPCFull[]; @@ -28,9 +37,24 @@ extern const u8 gText_PkmnBoxLanettesPCFull[]; extern const u8 gText_PkmnTransferredSomeonesPC[]; extern const u8 gText_PkmnTransferredLanettesPC[]; +extern u16 sub_8068BB0(void); // pokemon_1 +extern u8 sub_81A4D00(void); // battle_frontier_2 +extern u8 GetFrontierOpponentClass(u16 trainerId); // battle_tower +extern u8 sub_81D5530(u16 trainerId); // pokenav +extern u8 GetEreaderTrainerClassId(void); // battle_tower +extern void sub_81A4D50(u8 *txtPtr); // battle_frontier_2 +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); + // this file's functions void sub_814F8F8(u8 *txtPtr); void sub_814F950(u8 *txtPtr); +static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst); // ewram variables EWRAM_DATA u8 gDisplayedStringBattle[300] = {0}; @@ -64,33 +88,33 @@ const u8 gText_PkmnFainted2[] = _("{B_DEF_NAME_WITH_PREFIX}\nfainted!\p"); const u8 gText_PlayerGotMoney[] = _("{B_PLAYER_NAME} got ¥{B_BUFF1}\nfor winning!\p"); const u8 gText_PlayerWhiteout[] = _("{B_PLAYER_NAME} is out of\nusable POKéMON!\p"); const u8 gText_PlayerWhiteout2[] = _("{B_PLAYER_NAME} whited out!{PAUSE_UNTIL_PRESS}"); -const u8 gText_PreventsEscape[] = _("{B_ACTIVE_NAME_WITH_PREFIX} prevents\nescape with {B_SCR_ACTIVE_ABILITY}!\p"); +const u8 gText_PreventsEscape[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} prevents\nescape with {B_SCR_ACTIVE_ABILITY}!\p"); const u8 gText_CantEscape2[] = _("Can’t escape!\p"); const u8 gText_PkmnCantEscape2[] = _("{B_ATK_NAME_WITH_PREFIX} can’t escape!"); const u8 gText_HitXTimes[] = _("Hit {B_BUFF1} time(s)!"); const u8 gText_PkmnFellAsleep[] = _("{B_EFF_NAME_WITH_PREFIX}\nfell asleep!"); -const u8 gText_PkmnMadeSleep[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nmade {B_EFF_NAME_WITH_PREFIX} sleep!"); +const u8 gText_PkmnMadeSleep[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nmade {B_EFF_NAME_WITH_PREFIX} sleep!"); const u8 gText_PkmnAlreadyAsleep[] = _("{B_DEF_NAME_WITH_PREFIX} is\nalready asleep!"); const u8 gText_PkmnAlreadyAsleep2[] = _("{B_ATK_NAME_WITH_PREFIX} is\nalready asleep!"); const u8 gText_PkmnWasntAffected[] = _("{B_DEF_NAME_WITH_PREFIX}\nwasn’t affected!"); const u8 gText_PkmnWasPoisoned[] = _("{B_EFF_NAME_WITH_PREFIX}\nwas poisoned!"); -const u8 gText_PkmnPoisonedBy[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\npoisoned {B_EFF_NAME_WITH_PREFIX}!"); +const u8 gText_PkmnPoisonedBy[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\npoisoned {B_EFF_NAME_WITH_PREFIX}!"); const u8 gText_PkmnHurtByPoison[] = _("{B_ATK_NAME_WITH_PREFIX} is hurt\nby poison!"); const u8 gText_PkmnAlreadyPoisoned[] = _("{B_DEF_NAME_WITH_PREFIX} is already\npoisoned."); const u8 gText_PkmnBadlyPoisoned[] = _("{B_EFF_NAME_WITH_PREFIX} is badly\npoisoned!"); const u8 gText_PkmnEnergyDrained[] = _("{B_DEF_NAME_WITH_PREFIX} had its\nenergy drained!"); const u8 gText_PkmnWasBurned[] = _("{B_EFF_NAME_WITH_PREFIX} was burned!"); -const u8 gText_PkmnBurnedBy[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nburned {B_EFF_NAME_WITH_PREFIX}!"); +const u8 gText_PkmnBurnedBy[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nburned {B_EFF_NAME_WITH_PREFIX}!"); const u8 gText_PkmnHurtByBurn[] = _("{B_ATK_NAME_WITH_PREFIX} is hurt\nby its burn!"); const u8 gText_PkmnAlreadyHasBurn[] = _("{B_DEF_NAME_WITH_PREFIX} already\nhas a burn."); const u8 gText_PkmnWasFrozen[] = _("{B_EFF_NAME_WITH_PREFIX} was\nfrozen solid!"); -const u8 gText_PkmnFrozenBy[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nfroze {B_EFF_NAME_WITH_PREFIX} solid!"); +const u8 gText_PkmnFrozenBy[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nfroze {B_EFF_NAME_WITH_PREFIX} solid!"); const u8 gText_PkmnIsFrozen[] = _("{B_ATK_NAME_WITH_PREFIX} is\nfrozen solid!"); const u8 gText_PkmnWasDefrosted[] = _("{B_DEF_NAME_WITH_PREFIX} was\ndefrosted!"); const u8 gText_PkmnWasDefrosted2[] = _("{B_ATK_NAME_WITH_PREFIX} was\ndefrosted!"); const u8 gText_PkmnWasDefrostedBy[] = _("{B_ATK_NAME_WITH_PREFIX} was\ndefrosted by {B_CURRENT_MOVE}!"); const u8 gText_PkmnWasParalyzed[] = _("{B_EFF_NAME_WITH_PREFIX} is paralyzed!\nIt may be unable to move!"); -const u8 gText_PkmnWasParalyzedBy[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nparalyzed {B_EFF_NAME_WITH_PREFIX}!\lIt may be unable to move!"); +const u8 gText_PkmnWasParalyzedBy[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nparalyzed {B_EFF_NAME_WITH_PREFIX}!\lIt may be unable to move!"); const u8 gText_PkmnIsParalyzed[] = _("{B_ATK_NAME_WITH_PREFIX} is paralyzed!\nIt can’t move!"); const u8 gText_PkmnIsAlreadyParalyzed[] = _("{B_DEF_NAME_WITH_PREFIX} is\nalready paralyzed!"); const u8 gText_PkmnHealedParalysis[] = _("{B_DEF_NAME_WITH_PREFIX} was\nhealed of paralysis!"); @@ -104,7 +128,7 @@ const u8 gText_PkmnHealedConfusion[] = _("{B_ATK_NAME_WITH_PREFIX} snapped\nout const u8 gText_PkmnWasConfused[] = _("{B_EFF_NAME_WITH_PREFIX} became\nconfused!"); const u8 gText_PkmnAlreadyConfused[] = _("{B_DEF_NAME_WITH_PREFIX} is\nalready confused!"); const u8 gText_PkmnFellInLove[] = _("{B_DEF_NAME_WITH_PREFIX}\nfell in love!"); -const u8 gText_PkmnInLove[] = _("{B_ATK_NAME_WITH_PREFIX} is in love\nwith {B_ACTIVE_NAME_WITH_PREFIX}!"); +const u8 gText_PkmnInLove[] = _("{B_ATK_NAME_WITH_PREFIX} is in love\nwith {B_SCR_ACTIVE_NAME_WITH_PREFIX}!"); const u8 gText_PkmnImmobilizedByLove[] = _("{B_ATK_NAME_WITH_PREFIX} is\nimmobilized by love!"); const u8 gText_PkmnBlownAway[] = _("{B_DEF_NAME_WITH_PREFIX} was\nblown away!"); const u8 gText_PkmnChangedType[] = _("{B_ATK_NAME_WITH_PREFIX} transformed\ninto the {B_BUFF1} type!"); @@ -137,7 +161,7 @@ const u8 gText_PkmnHurtBy[] = _("{B_ATK_NAME_WITH_PREFIX} is hurt\nby {B_BUFF1}! const u8 gText_PkmnFreedFrom[] = _("{B_ATK_NAME_WITH_PREFIX} was freed\nfrom {B_BUFF1}!"); const u8 gText_PkmnCrashed[] = _("{B_ATK_NAME_WITH_PREFIX} kept going\nand crashed!"); const u8 gText_PkmnShroudedInMist[] = _("{B_ATK_PREFIX2} became\nshrouded in MIST!"); -const u8 gText_PkmnProtectedByMist[] = _("{B_ACTIVE_NAME_WITH_PREFIX} is protected\nby MIST!"); +const u8 gText_PkmnProtectedByMist[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} is protected\nby MIST!"); const u8 gText_PkmnGettingPumped[] = _("{B_ATK_NAME_WITH_PREFIX} is getting\npumped!"); const u8 gText_PkmnHitWithRecoil[] = _("{B_ATK_NAME_WITH_PREFIX} is hit\nwith recoil!"); const u8 gText_PkmnProtectedItself2[] = _("{B_ATK_NAME_WITH_PREFIX} protected\nitself!"); @@ -149,7 +173,7 @@ const u8 gText_PkmnEvadedAttack[] = _("{B_DEF_NAME_WITH_PREFIX} evaded\nthe atta const u8 gText_PkmnSappedByLeechSeed[] = _("{B_ATK_NAME_WITH_PREFIX}’s health is\nsapped by LEECH SEED!"); const u8 gText_PkmnFastAsleep[] = _("{B_ATK_NAME_WITH_PREFIX} is fast\nasleep."); const u8 gText_PkmnWokeUp[] = _("{B_ATK_NAME_WITH_PREFIX} woke up!"); -const u8 gText_PkmnUproarKeptAwake[] = _("But {B_ACTIVE_NAME_WITH_PREFIX}’s UPROAR\nkept it awake!"); +const u8 gText_PkmnUproarKeptAwake[] = _("But {B_SCR_ACTIVE_NAME_WITH_PREFIX}’s UPROAR\nkept it awake!"); const u8 gText_PkmnWokeUpInUproar[] = _("{B_ATK_NAME_WITH_PREFIX} woke up\nin the UPROAR!"); const u8 gText_PkmnCausedUproar[] = _("{B_ATK_NAME_WITH_PREFIX} caused\nan UPROAR!"); const u8 gText_PkmnMakingUproar[] = _("{B_ATK_NAME_WITH_PREFIX} is making\nan UPROAR!"); @@ -188,7 +212,7 @@ const u8 gText_PkmnLockedInNightmare[] = _("{B_ATK_NAME_WITH_PREFIX} is locked\n const u8 gText_PkmnLaidCurse[] = _("{B_ATK_NAME_WITH_PREFIX} cut its own HP and\nlaid a CURSE on {B_DEF_NAME_WITH_PREFIX}!"); const u8 gText_PkmnAfflictedByCurse[] = _("{B_ATK_NAME_WITH_PREFIX} is afflicted\nby the CURSE!"); const u8 gText_SpikesScattered[] = _("SPIKES were scattered all around\nthe opponent’s side!"); -const u8 gText_PkmnHurtBySpikes[] = _("{B_ACTIVE_NAME_WITH_PREFIX} is hurt\nby SPIKES!"); +const u8 gText_PkmnHurtBySpikes[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} is hurt\nby SPIKES!"); const u8 gText_PkmnIdentified[] = _("{B_ATK_NAME_WITH_PREFIX} identified\n{B_DEF_NAME_WITH_PREFIX}!"); const u8 gText_PkmnPerishCountFell[] = _("{B_ATK_NAME_WITH_PREFIX}’s PERISH count\nfell to {B_BUFF1}!"); const u8 gText_PkmnBracedItself[] = _("{B_ATK_NAME_WITH_PREFIX} braced\nitself!"); @@ -231,25 +255,25 @@ const u8 gText_PkmnLostPPGrudge[] = _("{B_ATK_NAME_WITH_PREFIX}’s {B_BUFF1} lo const u8 gText_PkmnShroudedItself[] = _("{B_ATK_NAME_WITH_PREFIX} shrouded\nitself in {B_CURRENT_MOVE}!"); const u8 gText_PkmnMoveBounced[] = _("{B_ATK_NAME_WITH_PREFIX}’s {B_CURRENT_MOVE}\nwas bounced back by MAGIC COAT!"); const u8 gText_PkmnWaitsForTarget[] = _("{B_ATK_NAME_WITH_PREFIX} waits for a target\nto make a move!"); -const u8 gText_PkmnSnatchedMove[] = _("{B_DEF_NAME_WITH_PREFIX} SNATCHED\n{B_ACTIVE_NAME_WITH_PREFIX}’s move!"); +const u8 gText_PkmnSnatchedMove[] = _("{B_DEF_NAME_WITH_PREFIX} SNATCHED\n{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s move!"); const u8 gText_ElectricityWeakened[] = _("Electricity’s power was\nweakened!"); const u8 gText_FireWeakened[] = _("Fire’s power was\nweakened!"); const u8 gText_XFoundOneY[] = _("{B_ATK_NAME_WITH_PREFIX} found\none {B_LAST_ITEM}!"); const u8 gText_SoothingAroma[] = _("A soothing aroma wafted\nthrough the area!"); const u8 gText_ItemsCantBeUsedNow[] = _("Items can’t be used now.{PAUSE 64}"); -const u8 gText_ForXCommaYZ[] = _("For {B_ACTIVE_NAME_WITH_PREFIX},\n{B_LAST_ITEM} {B_BUFF1}"); -const u8 gText_PkmnUsedXToGetPumped[] = _("{B_ACTIVE_NAME_WITH_PREFIX} used\n{B_LAST_ITEM} to get pumped!"); +const u8 gText_ForXCommaYZ[] = _("For {B_SCR_ACTIVE_NAME_WITH_PREFIX},\n{B_LAST_ITEM} {B_BUFF1}"); +const u8 gText_PkmnUsedXToGetPumped[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} used\n{B_LAST_ITEM} to get pumped!"); const u8 gText_PkmnLostFocus[] = _("{B_ATK_NAME_WITH_PREFIX} lost its\nfocus and couldn’t move!"); const u8 gText_PkmnWasDraggedOut[] = _("{B_DEF_NAME_WITH_PREFIX} was\ndragged out!\p"); const u8 gText_TheWallShattered[] = _("The wall shattered!"); const u8 gText_ButNoEffect[] = _("But it had no effect!"); -const u8 gText_PkmnHasNoMovesLeft[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} has no\nmoves left!\p"); -const u8 gText_PkmnMoveIsDisabled[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_CURRENT_MOVE}\nis disabled!\p"); -const u8 gText_PkmnCantUseMoveTorment[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} can’t use the same\nmove in a row due to the TORMENT!\p"); -const u8 gText_PkmnCantUseMoveTaunt[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} can’t use\n{B_CURRENT_MOVE} after the TAUNT!\p"); -const u8 gText_PkmnCantUseMoveSealed[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} can’t use the\nsealed {B_CURRENT_MOVE}!\p"); -const u8 gText_PkmnMadeItRain[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nmade it rain!"); -const u8 gText_PkmnRaisedSpeed[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nraised its SPEED!"); +const u8 gText_PkmnHasNoMovesLeft[] = _("{B_ACTIVE_NAME_WITH_PREFIX} has no\nmoves left!\p"); +const u8 gText_PkmnMoveIsDisabled[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_CURRENT_MOVE}\nis disabled!\p"); +const u8 gText_PkmnCantUseMoveTorment[] = _("{B_ACTIVE_NAME_WITH_PREFIX} can’t use the same\nmove in a row due to the TORMENT!\p"); +const u8 gText_PkmnCantUseMoveTaunt[] = _("{B_ACTIVE_NAME_WITH_PREFIX} can’t use\n{B_CURRENT_MOVE} after the TAUNT!\p"); +const u8 gText_PkmnCantUseMoveSealed[] = _("{B_ACTIVE_NAME_WITH_PREFIX} can’t use the\nsealed {B_CURRENT_MOVE}!\p"); +const u8 gText_PkmnMadeItRain[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nmade it rain!"); +const u8 gText_PkmnRaisedSpeed[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nraised its SPEED!"); const u8 gText_PkmnProtectedBy[] = _("{B_DEF_NAME_WITH_PREFIX} was protected\nby {B_DEF_ABILITY}!"); const u8 gText_PkmnPreventsUsage[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nprevents {B_ATK_NAME_WITH_PREFIX}\lfrom using {B_CURRENT_MOVE}!"); const u8 gText_PkmnRestoredHPUsing[] = _("{B_DEF_NAME_WITH_PREFIX} restored HP\nusing its {B_DEF_ABILITY}!"); @@ -261,37 +285,37 @@ const u8 gText_PkmnPreventsPoisoningWith[] = _("{B_EFF_NAME_WITH_PREFIX}’s {B_ const u8 gText_PkmnPreventsConfusionWith[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nprevents confusion!"); const u8 gText_PkmnRaisedFirePowerWith[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nraised its FIRE power!"); const u8 gText_PkmnAnchorsItselfWith[] = _("{B_DEF_NAME_WITH_PREFIX} anchors\nitself with {B_DEF_ABILITY}!"); -const u8 gText_PkmnCutsAttackWith[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\ncuts {B_DEF_NAME_WITH_PREFIX}’s ATTACK!"); -const u8 gText_PkmnPreventsStatLossWith[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nprevents stat loss!"); +const u8 gText_PkmnCutsAttackWith[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\ncuts {B_DEF_NAME_WITH_PREFIX}’s ATTACK!"); +const u8 gText_PkmnPreventsStatLossWith[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nprevents stat loss!"); const u8 gText_PkmnHurtsWith[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nhurt {B_ATK_NAME_WITH_PREFIX}!"); -const u8 gText_PkmnTraced[] = _("{B_ACTIVE_NAME_WITH_PREFIX} TRACED\n{B_BUFF1}’s {B_BUFF2}!"); +const u8 gText_PkmnTraced[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} TRACED\n{B_BUFF1}’s {B_BUFF2}!"); const u8 gText_PkmnsXPreventsBurns[] = _("{B_EFF_NAME_WITH_PREFIX}’s {STRING 27}\nprevents burns!"); const u8 gText_PkmnsXBlocksY[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nblocks {B_CURRENT_MOVE}!"); -const u8 gText_PkmnsXBlocksY2[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nblocks {B_CURRENT_MOVE}!"); +const u8 gText_PkmnsXBlocksY2[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nblocks {B_CURRENT_MOVE}!"); const u8 gText_PkmnsXRestoredHPALittle2[] = _("{B_ATK_NAME_WITH_PREFIX}’s {STRING 24}\nrestored its HP a little!"); -const u8 gText_PkmnsXWhippedUpSandstorm[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nwhipped up a sandstorm!"); -const u8 gText_PkmnsXIntensifiedSun[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nintensified the sun’s rays!"); -const u8 gText_PkmnsXPreventsYLoss[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nprevents {B_BUFF1} loss!"); +const u8 gText_PkmnsXWhippedUpSandstorm[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nwhipped up a sandstorm!"); +const u8 gText_PkmnsXIntensifiedSun[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nintensified the sun’s rays!"); +const u8 gText_PkmnsXPreventsYLoss[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nprevents {B_BUFF1} loss!"); const u8 gText_PkmnsXInfatuatedY[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\ninfatuated {B_ATK_NAME_WITH_PREFIX}!"); const u8 gText_PkmnsXMadeYIneffective[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nmade {B_CURRENT_MOVE} ineffective!"); -const u8 gText_PkmnsXCuredYProblem[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\ncured its {B_BUFF1} problem!"); +const u8 gText_PkmnsXCuredYProblem[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\ncured its {B_BUFF1} problem!"); const u8 gText_ItSuckedLiquidOoze[] = _("It sucked up the\nLIQUID OOZE!"); -const u8 gText_PkmnTransformed[] = _("{B_ACTIVE_NAME_WITH_PREFIX} transformed!"); +const u8 gText_PkmnTransformed[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} transformed!"); const u8 gText_PkmnsXTookAttack[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\ntook the attack!"); const u8 gText_PkmnsXPreventsSwitching[] = _("{B_BUFF1}’s {STRING 23}\nprevents switching!\p"); -const u8 gText_PreventedFromWorking[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nprevented {B_ACTIVE_NAME_WITH_PREFIX}’s\l{B_BUFF1} from working!"); -const u8 gText_PkmnsXMadeItIneffective[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nmade it ineffective!"); +const u8 gText_PreventedFromWorking[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nprevented {B_SCR_ACTIVE_NAME_WITH_PREFIX}’s\l{B_BUFF1} from working!"); +const u8 gText_PkmnsXMadeItIneffective[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nmade it ineffective!"); const u8 gText_PkmnsXPreventsFlinching[] = _("{B_EFF_NAME_WITH_PREFIX}’s {STRING 27}\nprevents flinching!"); const u8 gText_PkmnsXPreventsYsZ[] = _("{B_ATK_NAME_WITH_PREFIX}’s {STRING 24}\nprevents {B_DEF_NAME_WITH_PREFIX}’s\l{B_DEF_ABILITY} from working!"); -const u8 gText_PkmnsXCuredItsYProblem[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\ncured its {B_BUFF1} problem!"); -const u8 gText_PkmnsXHadNoEffectOnY[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nhad no effect on {B_EFF_NAME_WITH_PREFIX}!"); +const u8 gText_PkmnsXCuredItsYProblem[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\ncured its {B_BUFF1} problem!"); +const u8 gText_PkmnsXHadNoEffectOnY[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nhad no effect on {B_EFF_NAME_WITH_PREFIX}!"); const u8 gText_StatSharply[] = _("sharply "); const u8 gText_StatRose[] = _("rose!"); const u8 gText_StatHarshly[] = _("harshly "); const u8 gText_StatFell[] = _("fell!"); const u8 gText_PkmnsStatChanged[] = _("{B_ATK_NAME_WITH_PREFIX}’s {B_BUFF1}\n{B_BUFF2}"); const u8 gText_PkmnsStatChanged2[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_BUFF1}\n{B_BUFF2}"); -const u8 gText_UsingXTheYOfZN[] = _("Using {B_LAST_ITEM}, the {B_BUFF1}\nof {B_ACTIVE_NAME_WITH_PREFIX} {B_BUFF2}"); +const u8 gText_UsingXTheYOfZN[] = _("Using {B_LAST_ITEM}, the {B_BUFF1}\nof {B_SCR_ACTIVE_NAME_WITH_PREFIX} {B_BUFF2}"); const u8 gText_PkmnsStatChanged3[] = _("{B_ATK_NAME_WITH_PREFIX}’s {B_BUFF1}\n{B_BUFF2}"); const u8 gText_PkmnsStatChanged4[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_BUFF1}\n{B_BUFF2}"); const u8 gText_StatsWontIncrease2[] = _("{B_ATK_NAME_WITH_PREFIX}’s stats won’t\ngo any higher!"); @@ -462,18 +486,18 @@ const u8 gText_SandstormIsRaging[] = _("A sandstorm is raging."); const u8 gText_BoxIsFull[] = _("The BOX is full!\nYou can’t catch any more!\p"); const u8 gText_EnigmaBerry[] = _("ENIGMA BERRY"); const u8 gText_BerrySuffix[] = _(" BERRY"); -const u8 gText_PkmnsItemCuredParalysis[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\ncured paralysis!"); -const u8 gText_PkmnsItemCuredPoison[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\ncured poison!"); -const u8 gText_PkmnsItemHealedBurn[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nhealed its burn!"); -const u8 gText_PkmnsItemDefrostedIt[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\ndefrosted it!"); -const u8 gText_PkmnsItemWokeIt[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nwoke it from its sleep!"); -const u8 gText_PkmnsItemSnappedOut[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nsnapped it out of confusion!"); -const u8 gText_PkmnsItemCuredProblem[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\ncured its {B_BUFF1} problem!"); -const u8 gText_PkmnsItemNormalizedStatus[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nnormalized its status!"); -const u8 gText_PkmnsItemRestoredHealth[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nrestored health!"); -const u8 gText_PkmnsItemRestoredPP[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nrestored {B_BUFF1}’s PP!"); -const u8 gText_PkmnsItemRestoredStatus[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nrestored its status!"); -const u8 gText_PkmnsItemRestoredHPALittle[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nrestored its HP a little!"); +const u8 gText_PkmnsItemCuredParalysis[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\ncured paralysis!"); +const u8 gText_PkmnsItemCuredPoison[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\ncured poison!"); +const u8 gText_PkmnsItemHealedBurn[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nhealed its burn!"); +const u8 gText_PkmnsItemDefrostedIt[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\ndefrosted it!"); +const u8 gText_PkmnsItemWokeIt[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nwoke it from its sleep!"); +const u8 gText_PkmnsItemSnappedOut[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nsnapped it out of confusion!"); +const u8 gText_PkmnsItemCuredProblem[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\ncured its {B_BUFF1} problem!"); +const u8 gText_PkmnsItemNormalizedStatus[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nnormalized its status!"); +const u8 gText_PkmnsItemRestoredHealth[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nrestored health!"); +const u8 gText_PkmnsItemRestoredPP[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nrestored {B_BUFF1}’s PP!"); +const u8 gText_PkmnsItemRestoredStatus[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nrestored its status!"); +const u8 gText_PkmnsItemRestoredHPALittle[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nrestored its HP a little!"); const u8 gText_ItemAllowsOnlyYMove[] = _("{B_LAST_ITEM} allows the\nuse of only {B_CURRENT_MOVE}!\p"); const u8 gText_PkmnHungOnWithX[] = _("{B_DEF_NAME_WITH_PREFIX} hung on\nusing its {B_LAST_ITEM}!"); const u8 gText_EmptyString3[] = _(""); @@ -910,7 +934,7 @@ const u8 gText_PkmnIsEvolving[] = _("What?\n{STR_VAR_1} is evolving!"); const u8 gText_CongratsPkmnEvolved[] = _("Congratulations! Your {STR_VAR_1}\nevolved into {STR_VAR_2}!{UNKNOWN_A}\p"); const u8 gText_PkmnStoppedEvolving[] = _("Huh? {STR_VAR_1}\nstopped evolving!\p"); const u8 gText_EllipsisQuestionMark[] = _("……?\p"); -const u8 gText_WhatWillPkmnDo[] = _("What will\n{B_SCR_ACTIVE_NAME_WITH_PREFIX} do?"); +const u8 gText_WhatWillPkmnDo[] = _("What will\n{B_ACTIVE_NAME_WITH_PREFIX} do?"); const u8 gText_WhatWillPkmnDo2[] = _("What will\n{B_PLAYER_NAME} do?"); const u8 gText_WhatWillWallyDo[] = _("What will\nWALLY do?"); const u8 gText_LinkStandby[] = _("{PAUSE 16}Link standby…"); @@ -1013,10 +1037,10 @@ const u8 gText_InGamePartnerSentOutZGoN[] = _("{B_PARTNER_CLASS} {B_PARTNER_NAME const u8 gText_TwoInGameTrainersDefeated[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} and\n{B_TRAINER2_CLASS} {B_TRAINER2_NAME}\lwere defeated!\p"); const u8 gText_Trainer2LoseText[] = _("{B_TRAINER2_LOSE_TEXT}"); const u8 gText_PkmnIncapableOfPower[] = _("{B_ATK_NAME_WITH_PREFIX} appears incapable\nof using its power!"); -const u8 gText_GlintAppearsInEye[] = _("A glint appears in\n{B_ACTIVE_NAME_WITH_PREFIX}’s eyes!"); -const u8 gText_PkmnGettingIntoPosition[] = _("{B_ACTIVE_NAME_WITH_PREFIX} is getting into\nposition!"); -const u8 gText_PkmnBeganGrowlingDeeply[] = _("{B_ACTIVE_NAME_WITH_PREFIX} began growling deeply!"); -const u8 gText_PkmnEagerForMore[] = _("{B_ACTIVE_NAME_WITH_PREFIX} is eager for more!"); +const u8 gText_GlintAppearsInEye[] = _("A glint appears in\n{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s eyes!"); +const u8 gText_PkmnGettingIntoPosition[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} is getting into\nposition!"); +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[] = { @@ -1080,7 +1104,7 @@ const u16 gUnknown_085CD336[] = 0x0104, 0x0110, 0x011b, 0x0141, 0x0157, 0x0000, }; -const u8 gUnknown_085CD422[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0}; +static const u8 sDummyWeirdStatusString[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0}; const u16 gUnknown_085CD42C[] = { @@ -1426,3 +1450,620 @@ void BufferStringBattle(u16 stringID) BattleStringExpandPlaceholdersToDisplayedString(stringPtr); } + +u32 BattleStringExpandPlaceholdersToDisplayedString(const u8* src) +{ + BattleStringExpandPlaceholders(src, gDisplayedStringBattle); +} + +static const u8* TryGetStatusString(u8* src) +{ + u32 i; + u8 status[8]; + u32 chars1, chars2; + u8* statusPtr; + + memcpy(status, sDummyWeirdStatusString, 8); + + statusPtr = status; + for (i = 0; i < 8; i++) + { + if (*src == EOS) + break; + *statusPtr = *src; + src++; + statusPtr++; + } + + chars1 = *(u32*)(&status[0]); + chars2 = *(u32*)(&status[4]); + + for (i = 0; i < ARRAY_COUNT(gStatusConditionStringsTable); i++) + { + if (chars1 == *(u32*)(&gStatusConditionStringsTable[i][0][0]) + && chars2 == *(u32*)(&gStatusConditionStringsTable[i][0][4])) + return gStatusConditionStringsTable[i][1]; + } + return NULL; +} + +#define HANDLE_NICKNAME_STRING_CASE(bank, monIndex) \ + if (GetBankSide(bank) != SIDE_PLAYER) \ + { \ + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) \ + toCpy = gText_FoePkmnPrefix; \ + else \ + toCpy = gText_WildPkmnPrefix; \ + while (*toCpy != EOS) \ + { \ + dst[dstID] = *toCpy; \ + dstID++; \ + toCpy++; \ + } \ + GetMonData(&gEnemyParty[monIndex], MON_DATA_NICKNAME, text); \ + } \ + else \ + { \ + GetMonData(&gPlayerParty[monIndex], MON_DATA_NICKNAME, text); \ + } \ + StringGetEnd10(text); \ + toCpy = text; + +extern u8 gUnknown_0203C7B4; + +u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) +{ + u32 dstID = 0; // if they used dstID, why not use srcID as well? + const u8* toCpy = NULL; + u8 text[30]; + u8 multiplayerID; + s32 i; + + if (gBattleTypeFlags & BATTLE_TYPE_x2000000) + multiplayerID = gUnknown_0203C7B4; + else + multiplayerID = GetMultiplayerId(); + + while (*src != EOS) + { + if (*src == PLACEHOLDER_BEGIN) + { + src++; + switch (*src) + { + case B_TXT_BUFF1: + if (gBattleTextBuff1[0] == B_BUFF_PLACEHOLDER_BEGIN) + { + ExpandBattleTextBuffPlaceholders(gBattleTextBuff1, gStringVar1); + toCpy = gStringVar1; + } + else + { + toCpy = TryGetStatusString(gBattleTextBuff1); + if (toCpy == NULL) + toCpy = gBattleTextBuff1; + } + break; + case B_TXT_BUFF2: + if (gBattleTextBuff2[0] == B_BUFF_PLACEHOLDER_BEGIN) + { + ExpandBattleTextBuffPlaceholders(gBattleTextBuff2, gStringVar2); + toCpy = gStringVar2; + } + else + toCpy = gBattleTextBuff2; + break; + case B_TXT_BUFF3: + if (gBattleTextBuff3[0] == B_BUFF_PLACEHOLDER_BEGIN) + { + ExpandBattleTextBuffPlaceholders(gBattleTextBuff3, gStringVar3); + toCpy = gStringVar3; + } + else + toCpy = gBattleTextBuff3; + break; + case B_TXT_COPY_VAR_1: + toCpy = gStringVar1; + break; + case B_TXT_COPY_VAR_2: + toCpy = gStringVar2; + break; + case B_TXT_COPY_VAR_3: + toCpy = gStringVar3; + break; + case B_TXT_PLAYER_MON1_NAME: // first player poke name + GetMonData(&gPlayerParty[gBattlePartyID[GetBankByIdentity(IDENTITY_PLAYER_MON1)]], + MON_DATA_NICKNAME, text); + StringGetEnd10(text); + toCpy = text; + break; + case B_TXT_OPPONENT_MON1_NAME: // first enemy poke name + GetMonData(&gEnemyParty[gBattlePartyID[GetBankByIdentity(IDENTITY_OPPONENT_MON1)]], + MON_DATA_NICKNAME, text); + StringGetEnd10(text); + toCpy = text; + break; + case B_TXT_PLAYER_MON2_NAME: // second player poke name + GetMonData(&gPlayerParty[gBattlePartyID[GetBankByIdentity(IDENTITY_PLAYER_MON2)]], + MON_DATA_NICKNAME, text); + StringGetEnd10(text); + toCpy = text; + break; + case B_TXT_OPPONENT_MON2_NAME: // second enemy poke name + GetMonData(&gEnemyParty[gBattlePartyID[GetBankByIdentity(IDENTITY_OPPONENT_MON2)]], + MON_DATA_NICKNAME, text); + StringGetEnd10(text); + toCpy = text; + break; + case B_TXT_LINK_PLAYER_MON1_NAME: // link first player poke name + GetMonData(&gPlayerParty[gBattlePartyID[gLinkPlayers[multiplayerID].lp_field_18]], + MON_DATA_NICKNAME, text); + StringGetEnd10(text); + toCpy = text; + break; + case B_TXT_LINK_OPPONENT_MON1_NAME: // link first opponent poke name + GetMonData(&gEnemyParty[gBattlePartyID[gLinkPlayers[multiplayerID].lp_field_18 ^ 1]], + MON_DATA_NICKNAME, text); + StringGetEnd10(text); + toCpy = text; + break; + case B_TXT_LINK_PLAYER_MON2_NAME: // link second player poke name + GetMonData(&gPlayerParty[gBattlePartyID[gLinkPlayers[multiplayerID].lp_field_18 ^ 2]], + MON_DATA_NICKNAME, text); + StringGetEnd10(text); + toCpy = text; + break; + case B_TXT_LINK_OPPONENT_MON2_NAME: // link second opponent poke name + GetMonData(&gEnemyParty[gBattlePartyID[gLinkPlayers[multiplayerID].lp_field_18 ^ 3]], + MON_DATA_NICKNAME, text); + StringGetEnd10(text); + toCpy = text; + break; + case B_TXT_ATK_NAME_WITH_PREFIX_MON1: // attacker name with prefix, only bank 0/1 + HANDLE_NICKNAME_STRING_CASE(gBankAttacker, + gBattlePartyID[GetBankByIdentity(GET_BANK_SIDE(gBankAttacker))]) + break; + case B_TXT_ATK_PARTNER_NAME: // attacker partner name + if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + GetMonData(&gPlayerParty[gBattlePartyID[GetBankByIdentity(GET_BANK_SIDE(gBankAttacker)) + 2]], MON_DATA_NICKNAME, text); + else + GetMonData(&gEnemyParty[gBattlePartyID[GetBankByIdentity(GET_BANK_SIDE(gBankAttacker)) + 2]], MON_DATA_NICKNAME, text); + + StringGetEnd10(text); + toCpy = text; + break; + case B_TXT_ATK_NAME_WITH_PREFIX: // attacker name with prefix + HANDLE_NICKNAME_STRING_CASE(gBankAttacker, gBattlePartyID[gBankAttacker]) + break; + case B_TXT_DEF_NAME_WITH_PREFIX: // target name with prefix + HANDLE_NICKNAME_STRING_CASE(gBankTarget, gBattlePartyID[gBankTarget]) + break; + case B_TXT_EFF_NAME_WITH_PREFIX: // effect bank name with prefix + HANDLE_NICKNAME_STRING_CASE(gEffectBank, gBattlePartyID[gEffectBank]) + break; + case B_TXT_ACTIVE_NAME_WITH_PREFIX: // active bank name with prefix + HANDLE_NICKNAME_STRING_CASE(gActiveBank, gBattlePartyID[gActiveBank]) + break; + case B_TXT_SCR_ACTIVE_NAME_WITH_PREFIX: // scripting active bank name with prefix + HANDLE_NICKNAME_STRING_CASE(gBattleScripting.bank, gBattlePartyID[gBattleScripting.bank]) + break; + case B_TXT_CURRENT_MOVE: // current move name + if (gStringInfo->currentMove > LAST_MOVE_INDEX) + toCpy = gText_UnknownMoveTypes[gBattleStruct->stringMoveType]; + else + toCpy = gMoveNames[gStringInfo->currentMove]; + break; + case B_TXT_LAST_MOVE: // last used move name + if (gStringInfo->lastMove > LAST_MOVE_INDEX) + toCpy = gText_UnknownMoveTypes[gBattleStruct->stringMoveType]; + else + toCpy = gMoveNames[gStringInfo->lastMove]; + break; + case B_TXT_LAST_ITEM: // last used item + if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + { + if (gLastUsedItem == ITEM_ENIGMA_BERRY) + { + if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI)) + { + if ((gBattleScripting.multiplayerId != 0 && (gStringBank & BIT_SIDE)) + || (gBattleScripting.multiplayerId == 0 && !(gStringBank & BIT_SIDE))) + { + StringCopy(text, gEnigmaBerries[gStringBank].name); + StringAppend(text, gText_BerrySuffix); + toCpy = text; + } + else + { + toCpy = gText_EnigmaBerry; + } + } + else + { + if (gLinkPlayers[gBattleScripting.multiplayerId].lp_field_18 == gStringBank) + { + StringCopy(text, gEnigmaBerries[gStringBank].name); + StringAppend(text, gText_BerrySuffix); + toCpy = text; + } + else + toCpy = gText_EnigmaBerry; + } + } + else + { + CopyItemName(gLastUsedItem, text); + toCpy = text; + } + } + else + { + CopyItemName(gLastUsedItem, text); + toCpy = text; + } + break; + case B_TXT_LAST_ABILITY: // last used ability + toCpy = gAbilityNames[gLastUsedAbility]; + break; + case B_TXT_ATK_ABILITY: // attacker ability + toCpy = gAbilityNames[gAbilitiesPerBank[gBankAttacker]]; + break; + case B_TXT_DEF_ABILITY: // target ability + toCpy = gAbilityNames[gAbilitiesPerBank[gBankTarget]]; + break; + case B_TXT_SCR_ACTIVE_ABILITY: // scripting active ability + toCpy = gAbilityNames[gAbilitiesPerBank[gBattleScripting.bank]]; + break; + case B_TXT_EFF_ABILITY: // effect bank ability + toCpy = gAbilityNames[gAbilitiesPerBank[gEffectBank]]; + break; + case B_TXT_TRAINER1_CLASS: // trainer class name + if (gBattleTypeFlags & BATTLE_TYPE_SECRET_BASE) + toCpy = gTrainerClassNames[GetSecretBaseTrainerNameIndex()]; + else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + toCpy = gTrainerClassNames[sub_8068BB0()]; + else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_3FE) + toCpy = gTrainerClassNames[sub_81A4D00()]; + else if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) + toCpy = gTrainerClassNames[GetFrontierOpponentClass(gTrainerBattleOpponent_A)]; + else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) + toCpy = gTrainerClassNames[sub_81D5530(gTrainerBattleOpponent_A)]; + else if (gBattleTypeFlags & BATTLE_TYPE_EREADER_TRAINER) + toCpy = gTrainerClassNames[GetEreaderTrainerClassId()]; + else + toCpy = gTrainerClassNames[gTrainers[gTrainerBattleOpponent_A].trainerClass]; + break; + case B_TXT_TRAINER1_NAME: // trainer1 name + if (gBattleTypeFlags & BATTLE_TYPE_SECRET_BASE) + { + for (i = 0; i < (s32) ARRAY_COUNT(gBattleResources->secretBase->trainerName); i++) + text[i] = gBattleResources->secretBase->trainerName[i]; + text[i] = EOS; + ConvertInternationalString(text, gBattleResources->secretBase->language); + toCpy = text; + } + else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + { + toCpy = gLinkPlayers[multiplayerID ^ BIT_SIDE].name; + } + else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_3FE) + { + sub_81A4D50(text); + toCpy = text; + } + else if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) + { + GetFrontierTrainerName(text, gTrainerBattleOpponent_A); + toCpy = text; + } + else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) + { + sub_81D5554(text, gTrainerBattleOpponent_A); + toCpy = text; + } + else if (gBattleTypeFlags & BATTLE_TYPE_EREADER_TRAINER) + { + GetEreaderTrainerName(text); + toCpy = text; + } + else + { + toCpy = gTrainers[gTrainerBattleOpponent_A].trainerName; + } + break; + case B_TXT_1E: // link player name? + toCpy = gLinkPlayers[multiplayerID].name; + break; + case B_TXT_1F: // link partner name? + toCpy = gLinkPlayers[sub_806D864(2 ^ gLinkPlayers[multiplayerID].lp_field_18)].name; + break; + case B_TXT_20: // link opponent 1 name? + toCpy = gLinkPlayers[sub_806D864(1 ^ gLinkPlayers[multiplayerID].lp_field_18)].name; + break; + case B_TXT_21: // link opponent 2 name? + toCpy = gLinkPlayers[sub_806D864(3 ^ gLinkPlayers[multiplayerID].lp_field_18)].name; + break; + case B_TXT_22: // link scripting active name + toCpy = gLinkPlayers[sub_806D864(gBattleScripting.bank)].name; + break; + case B_TXT_PLAYER_NAME: // player name + if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) + toCpy = gLinkPlayers[0].name; + else + toCpy = gSaveBlock2Ptr->playerName; + break; + case B_TXT_TRAINER1_LOSE_TEXT: // trainerA lose text + if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) + { + sub_81A36D0(2, gTrainerBattleOpponent_A); + toCpy = gStringVar4; + } + else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) + { + sub_81D572C(4, gTrainerBattleOpponent_A); + toCpy = gStringVar4; + } + else + { + toCpy = GetTrainer1LoseText(); + } + break; + case B_TXT_TRAINER1_WIN_TEXT: // trainerA win text + if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) + { + sub_81A36D0(1, gTrainerBattleOpponent_A); + toCpy = gStringVar4; + } + else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) + { + sub_81D572C(3, gTrainerBattleOpponent_A); + toCpy = gStringVar4; + } + break; + case B_TXT_26: // ? + HANDLE_NICKNAME_STRING_CASE(gBattleScripting.bank, *(&gBattleStruct->field_52)) + break; + case B_TXT_PC_CREATOR_NAME: // lanette pc + if (FlagGet(SYS_PC_LANETTE)) + toCpy = gText_Lanettes; + else + toCpy = gText_Someones; + break; + case B_TXT_ATK_PREFIX2: + if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + toCpy = gText_AllyPkmnPrefix2; + else + toCpy = gText_FoePkmnPrefix3; + break; + case B_TXT_DEF_PREFIX2: + if (GetBankSide(gBankTarget) == SIDE_PLAYER) + toCpy = gText_AllyPkmnPrefix2; + else + toCpy = gText_FoePkmnPrefix3; + break; + case B_TXT_ATK_PREFIX1: + if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + toCpy = gText_AllyPkmnPrefix; + else + toCpy = gText_FoePkmnPrefix2; + break; + case B_TXT_DEF_PREFIX1: + if (GetBankSide(gBankTarget) == SIDE_PLAYER) + toCpy = gText_AllyPkmnPrefix; + else + toCpy = gText_FoePkmnPrefix2; + break; + case B_TXT_ATK_PREFIX3: + if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + toCpy = gText_AllyPkmnPrefix3; + else + toCpy = gText_FoePkmnPrefix4; + break; + case B_TXT_DEF_PREFIX3: + if (GetBankSide(gBankTarget) == SIDE_PLAYER) + toCpy = gText_AllyPkmnPrefix3; + else + toCpy = gText_FoePkmnPrefix4; + break; + case B_TXT_TRAINER2_CLASS: + if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) + toCpy = gTrainerClassNames[GetFrontierOpponentClass(gTrainerBattleOpponent_B)]; + else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) + toCpy = gTrainerClassNames[sub_81D5530(gTrainerBattleOpponent_B)]; + else + toCpy = gTrainerClassNames[gTrainers[gTrainerBattleOpponent_B].trainerClass]; + break; + case B_TXT_TRAINER2_NAME: + if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) + { + GetFrontierTrainerName(text, gTrainerBattleOpponent_B); + toCpy = text; + } + else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) + { + sub_81D5554(text, gTrainerBattleOpponent_B); + toCpy = text; + } + else + { + toCpy = gTrainers[gTrainerBattleOpponent_B].trainerName; + } + break; + case B_TXT_TRAINER2_LOSE_TEXT: + if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) + { + sub_81A36D0(2, gTrainerBattleOpponent_B); + toCpy = gStringVar4; + } + else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) + { + sub_81D572C(4, gTrainerBattleOpponent_B); + toCpy = gStringVar4; + } + else + { + toCpy = GetTrainer2LoseText(); + } + break; + case B_TXT_TRAINER2_WIN_TEXT: + if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) + { + sub_81A36D0(1, gTrainerBattleOpponent_B); + toCpy = gStringVar4; + } + else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) + { + sub_81D572C(3, gTrainerBattleOpponent_B); + toCpy = gStringVar4; + } + break; + case B_TXT_PARTNER_CLASS: + toCpy = gTrainerClassNames[GetFrontierOpponentClass(gPartnerTrainerId)]; + break; + case B_TXT_PARTNER_NAME: + GetFrontierTrainerName(text, gPartnerTrainerId); + toCpy = text; + break; + } + + // missing if (toCpy != NULL) check + while (*toCpy != EOS) + { + dst[dstID] = *toCpy; + dstID++; + toCpy++; + } + if (*src == B_TXT_TRAINER1_LOSE_TEXT || *src == B_TXT_TRAINER2_LOSE_TEXT + || *src == B_TXT_TRAINER1_WIN_TEXT || *src == B_TXT_TRAINER2_WIN_TEXT) + { + dst[dstID] = EXT_CTRL_CODE_BEGIN; + dstID++; + dst[dstID] = 9; + dstID++; + } + } + else + { + dst[dstID] = *src; + dstID++; + } + src++; + } + + dst[dstID] = *src; + dstID++; + + return dstID; +} + +// TODO: move these to a general header like util.h +#define ByteRead16(ptr) ((ptr)[0] | ((ptr)[1] << 8)) +#define ByteRead32(ptr) ((ptr)[0] | (ptr)[1] << 8 | (ptr)[2] << 16 | (ptr)[3] << 24) + +static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst) +{ + u32 srcID = 1; + u32 value = 0; + u8 text[12]; + u16 hword; + + *dst = EOS; + while (src[srcID] != B_BUFF_EOS) + { + switch (src[srcID]) + { + case B_BUFF_STRING: // battle string + hword = ByteRead16(&src[srcID + 1]); + StringAppend(dst, gBattleStringsTable[hword - BATTLESTRINGS_ID_ADDER]); + srcID += 3; + break; + case B_BUFF_NUMBER: // int to string + switch (src[srcID + 1]) + { + case 1: + value = src[srcID + 3]; + break; + case 2: + value = ByteRead16(&src[srcID + 3]); + break; + case 4: + value = ByteRead32(&src[srcID + 3]); + break; + } + ConvertIntToDecimalStringN(dst, value, 0, src[srcID + 2]); + srcID += src[srcID + 1] + 3; + break; + case B_BUFF_MOVE: // move name + StringAppend(dst, gMoveNames[ByteRead16(&src[srcID + 1])]); + srcID += 3; + break; + case B_BUFF_TYPE: // type name + StringAppend(dst, gTypeNames[src[srcID + 1]]); + srcID += 2; + break; + case B_BUFF_MON_NICK_WITH_PREFIX: // poke nick with prefix + if (GetBankSide(src[srcID + 1]) == SIDE_PLAYER) + { + GetMonData(&gPlayerParty[src[srcID + 2]], MON_DATA_NICKNAME, text); + } + else + { + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) + StringAppend(dst, gText_FoePkmnPrefix); + else + StringAppend(dst, gText_WildPkmnPrefix); + + GetMonData(&gEnemyParty[src[srcID + 2]], MON_DATA_NICKNAME, text); + } + StringGetEnd10(text); + StringAppend(dst, text); + srcID += 3; + break; + case B_BUFF_STAT: // stats + StringAppend(dst, gStatNamesTable[src[srcID + 1]]); + srcID += 2; + break; + case B_BUFF_SPECIES: // species name + GetSpeciesName(dst, ByteRead16(&src[srcID + 1])); + srcID += 3; + break; + case B_BUFF_MON_NICK: // poke nick without prefix + if (GetBankSide(src[srcID + 1]) == SIDE_PLAYER) + GetMonData(&gPlayerParty[src[srcID + 2]], MON_DATA_NICKNAME, dst); + else + GetMonData(&gEnemyParty[src[srcID + 2]], MON_DATA_NICKNAME, dst); + StringGetEnd10(dst); + srcID += 3; + break; + case B_BUFF_NEGATIVE_FLAVOUR: // flavour table + StringAppend(dst, gPokeblockWasTooXStringTable[src[srcID + 1]]); + srcID += 2; + break; + case B_BUFF_ABILITY: // ability names + StringAppend(dst, gAbilityNames[src[srcID + 1]]); + srcID += 2; + break; + case B_BUFF_ITEM: // item name + hword = ByteRead16(&src[srcID + 1]); + if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + { + if (hword == ITEM_ENIGMA_BERRY) + { + if (gLinkPlayers[gBattleScripting.multiplayerId].lp_field_18 == gStringBank) + { + StringCopy(dst, gEnigmaBerries[gStringBank].name); + StringAppend(dst, gText_BerrySuffix); + } + else + StringAppend(dst, gText_EnigmaBerry); + } + else + CopyItemName(hword, dst); + } + else + CopyItemName(hword, dst); + srcID += 3; + break; + } + } +} -- cgit v1.2.3 From 95e4ae06ceacc583ecd7678adda2f19675be507d Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 8 Oct 2017 14:54:51 +0200 Subject: battle message decompiled and dumped --- asm/battle_controller_player.s | 2 +- asm/battle_message.s | 441 -------------------------------------- asm/pokemon_summary_screen.s | 2 +- include/battle_2.h | 1 + include/battle_controllers.h | 4 +- include/battle_message.h | 2 + include/battle_string_ids.h | 10 +- include/text.h | 2 +- ld_script.txt | 1 - src/battle_2.c | 4 +- src/battle_message.c | 468 ++++++++++++++++++++++++++++++++--------- 11 files changed, 382 insertions(+), 555 deletions(-) delete mode 100644 asm/battle_message.s diff --git a/asm/battle_controller_player.s b/asm/battle_controller_player.s index 1ea1bb5f2..73601e84c 100644 --- a/asm/battle_controller_player.s +++ b/asm/battle_controller_player.s @@ -4401,7 +4401,7 @@ sub_8059B3C: @ 8059B3C ldrb r0, [r0] cmp r0, 0x1 beq _08059B98 - bl sub_814FBAC + bl SetPpNumbersPaletteInMoveSelection ldrb r1, [r7] lsls r4, r1, 9 adds r0, r5, 0x4 diff --git a/asm/battle_message.s b/asm/battle_message.s deleted file mode 100644 index d78167a26..000000000 --- a/asm/battle_message.s +++ /dev/null @@ -1,441 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start sub_814F8F8 -sub_814F8F8: @ 814F8F8 - push {r4,r5,lr} - adds r4, r0, 0 - movs r2, 0 - ldr r5, =gStringInfo - ldr r3, =gUnknown_085CD336 -_0814F902: - cmp r2, 0x4 - beq _0814F918 - ldrh r1, [r3] - cmp r1, 0 - bne _0814F90E - adds r2, 0x1 -_0814F90E: - ldr r0, [r5] - adds r3, 0x2 - ldrh r0, [r0] - cmp r1, r0 - bne _0814F902 -_0814F918: - cmp r2, 0 - blt _0814F944 - cmp r2, 0x2 - bgt _0814F938 - ldr r1, =gText_SpaceIs - adds r0, r4, 0 - bl StringCopy - b _0814F944 - .pool -_0814F938: - cmp r2, 0x4 - bgt _0814F944 - ldr r1, =gText_ApostropheS - adds r0, r4, 0 - bl StringCopy -_0814F944: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_814F8F8 - - thumb_func_start sub_814F950 -sub_814F950: @ 814F950 - push {r4,r5,lr} - adds r3, r0, 0 - movs r4, 0 - b _0814F95A -_0814F958: - adds r3, 0x1 -_0814F95A: - ldrb r0, [r3] - cmp r0, 0xFF - bne _0814F958 - ldr r1, =gUnknown_085CD336 - ldr r5, =gStringInfo - movs r0, 0 - lsls r0, 1 - adds r2, r0, r1 -_0814F96A: - cmp r4, 0x4 - beq _0814F984 - ldrh r1, [r2] - cmp r1, 0 - bne _0814F976 - adds r4, 0x1 -_0814F976: - ldr r0, [r5] - adds r2, 0x2 - ldrh r0, [r0] - cmp r1, r0 - bne _0814F96A - cmp r4, 0x4 - bhi _0814F9E0 -_0814F984: - lsls r0, r4, 2 - ldr r1, =_0814F99C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0814F99C: - .4byte _0814F9B0 - .4byte _0814F9B8 - .4byte _0814F9C0 - .4byte _0814F9C8 - .4byte _0814F9D8 -_0814F9B0: - ldr r1, =gText_ExclamationMark - b _0814F9CA - .pool -_0814F9B8: - ldr r1, =gText_ExclamationMark2 - b _0814F9CA - .pool -_0814F9C0: - ldr r1, =gText_ExclamationMark3 - b _0814F9CA - .pool -_0814F9C8: - ldr r1, =gText_ExclamationMark4 -_0814F9CA: - adds r0, r3, 0 - bl StringCopy - b _0814F9E0 - .pool -_0814F9D8: - ldr r1, =gText_ExclamationMark5 - adds r0, r3, 0 - bl StringCopy -_0814F9E0: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_814F950 - - thumb_func_start sub_814F9EC -sub_814F9EC: @ 814F9EC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - adds r4, r0, 0 - lsls r1, 24 - lsrs r7, r1, 24 - ldr r1, =gUnknown_085CD660 - ldr r0, =gBattleScripting - adds r0, 0x24 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - mov r8, r0 - movs r0, 0x80 - ands r0, r7 - cmp r0, 0 - beq _0814FA24 - movs r0, 0x7F - ands r7, r0 - movs r0, 0 - b _0814FA36 - .pool -_0814FA24: - lsls r0, r7, 1 - adds r0, r7 - lsls r0, 2 - add r0, r8 - ldrb r1, [r0] - adds r0, r7, 0 - bl FillWindowPixelBuffer - movs r0, 0x1 -_0814FA36: - mov r9, r0 - str r4, [sp] - mov r0, sp - strb r7, [r0, 0x4] - mov r1, sp - lsls r6, r7, 1 - adds r3, r6, r7 - lsls r3, 2 - add r3, r8 - ldrb r0, [r3, 0x1] - strb r0, [r1, 0x5] - ldrb r0, [r3, 0x2] - strb r0, [r1, 0x6] - ldrb r0, [r3, 0x3] - strb r0, [r1, 0x7] - mov r0, sp - ldrb r0, [r0, 0x6] - strb r0, [r1, 0x8] - mov r0, sp - ldrb r0, [r0, 0x7] - strb r0, [r1, 0x9] - ldrb r0, [r3, 0x4] - strb r0, [r1, 0xA] - ldrb r0, [r3, 0x5] - strb r0, [r1, 0xB] - mov r4, sp - ldrb r2, [r4, 0xC] - movs r1, 0x10 - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - strb r0, [r4, 0xC] - mov r2, sp - ldrb r0, [r3, 0x7] - lsls r0, 4 - movs r5, 0xF - strb r0, [r2, 0xC] - ldrb r2, [r3, 0x8] - adds r0, r5, 0 - ands r0, r2 - ldrb r2, [r4, 0xD] - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0xD] - mov r2, sp - ldrb r0, [r3, 0x9] - lsls r0, 4 - ands r1, r5 - orrs r1, r0 - strb r1, [r2, 0xD] - mov r0, sp - ldrb r0, [r0, 0x6] - cmp r0, 0xFF - bne _0814FAC6 - ldr r0, =gBattleScripting - adds r0, 0x24 - ldrb r0, [r0] - adds r1, r7, 0 - bl sub_80397C4 - adds r2, r0, 0 - mov r0, sp - ldrb r0, [r0, 0x5] - ldr r1, [sp] - mov r3, sp - ldrb r3, [r3, 0xA] - bl GetStringCenterAlignXOffsetWithLetterSpacing - mov r2, sp - mov r1, sp - strb r0, [r1, 0x8] - strb r0, [r2, 0x6] -_0814FAC6: - cmp r7, 0x16 - bne _0814FAE0 - ldr r0, =gTextFlags - ldrb r2, [r0] - movs r1, 0x3 - negs r1, r1 - ands r1, r2 - b _0814FAE8 - .pool -_0814FAE0: - ldr r0, =gTextFlags - ldrb r1, [r0] - movs r2, 0x2 - orrs r1, r2 -_0814FAE8: - strb r1, [r0] - adds r3, r0, 0 - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - ldr r2, =0x01000002 - ands r1, r2 - adds r2, r0, 0 - cmp r1, 0 - beq _0814FB10 - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - b _0814FB18 - .pool -_0814FB10: - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 -_0814FB18: - strb r0, [r3] - cmp r7, 0 - beq _0814FB22 - cmp r7, 0x16 - bne _0814FB6C -_0814FB22: - ldr r1, [r2] - ldr r0, =0x02000002 - ands r0, r1 - cmp r0, 0 - beq _0814FB34 - movs r6, 0x1 - b _0814FB5C - .pool -_0814FB34: - movs r0, 0x80 - lsls r0, 17 - ands r1, r0 - cmp r1, 0 - beq _0814FB54 - ldr r4, =gUnknown_085CD668 - bl sub_8185FC4 - lsls r0, 24 - lsrs r0, 24 - adds r0, r4 - ldrb r6, [r0] - b _0814FB5C - .pool -_0814FB54: - bl sav2_get_text_speed - lsls r0, 24 - lsrs r6, r0, 24 -_0814FB5C: - ldr r0, =gTextFlags - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] - b _0814FB7E - .pool -_0814FB6C: - adds r0, r6, r7 - lsls r0, 2 - add r0, r8 - ldrb r6, [r0, 0x6] - ldrb r1, [r3] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r3] -_0814FB7E: - mov r0, sp - adds r1, r6, 0 - movs r2, 0 - bl AddTextPrinter - mov r0, r9 - cmp r0, 0 - beq _0814FB9C - adds r0, r7, 0 - bl PutWindowTilemap - adds r0, r7, 0 - movs r1, 0x3 - bl CopyWindowToVram -_0814FB9C: - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_814F9EC - - thumb_func_start sub_814FBAC -sub_814FBAC: @ 814FBAC - push {r4,r5,lr} - ldr r0, =gActiveBank - ldrb r2, [r0] - lsls r1, r2, 9 - ldr r0, =gBattleBufferA + 4 - adds r1, r0 - ldr r4, =gUnknown_08D85620 - ldr r0, =gMoveSelectionCursor - adds r2, r0 - ldrb r2, [r2] - adds r0, r1, 0 - adds r0, 0x8 - adds r0, r2 - ldrb r0, [r0] - adds r1, 0xC - adds r1, r2 - ldrb r1, [r1] - bl sub_814FC20 - lsls r0, 24 - ldr r5, =gPlttBufferUnfaded - lsrs r0, 22 - adds r0, r4 - ldrh r1, [r0] - adds r2, r5, 0 - adds r2, 0xB8 - strh r1, [r2] - ldrh r0, [r0, 0x2] - adds r5, 0xB6 - strh r0, [r5] - ldr r4, =gPlttBufferFaded + 0xB8 - adds r0, r2, 0 - adds r1, r4, 0 - movs r2, 0x1 - bl CpuSet - subs r4, 0x2 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0x1 - bl CpuSet - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_814FBAC - - thumb_func_start sub_814FC20 -sub_814FC20: @ 814FC20 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - adds r3, r2, 0 - lsls r1, 24 - lsrs r0, r1, 24 - cmp r0, r2 - beq _0814FC68 - cmp r0, 0x2 - bhi _0814FC3A - cmp r2, 0x1 - bhi _0814FC68 - b _0814FC42 -_0814FC3A: - cmp r0, 0x7 - bhi _0814FC4C - cmp r2, 0x2 - bhi _0814FC68 -_0814FC42: - movs r0, 0x2 - subs r0, r2 - lsls r0, 24 - lsrs r0, 24 - b _0814FC6A -_0814FC4C: - cmp r2, 0 - bne _0814FC54 - movs r0, 0x2 - b _0814FC6A -_0814FC54: - lsrs r0, r1, 26 - cmp r2, r0 - bhi _0814FC5E - movs r0, 0x1 - b _0814FC6A -_0814FC5E: - lsrs r0, r1, 25 - cmp r3, r0 - bhi _0814FC68 - movs r0, 0 - b _0814FC6A -_0814FC68: - movs r0, 0x3 -_0814FC6A: - pop {r1} - bx r1 - thumb_func_end sub_814FC20 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index bcc52c172..e1a5e4e4c 100755 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -7571,7 +7571,7 @@ sub_81C3B08: @ 81C3B08 adds r7, r4, 0 ldrb r0, [r5] adds r1, r6, 0 - bl sub_814FC20 + bl GetCurrentPpToMaxPpState lsls r0, 24 lsrs r0, 24 adds r5, r0, 0 diff --git a/include/battle_2.h b/include/battle_2.h index ab5068446..677bf0505 100644 --- a/include/battle_2.h +++ b/include/battle_2.h @@ -15,6 +15,7 @@ void SwapTurnOrder(u8 id1, u8 id2); void BattleTurnPassed(void); void RunBattleScriptCommands_PopCallbacksStack(void); void RunBattleScriptCommands(void); +u32 sub_80397C4(u32 setId, u32 tableId); void sub_8039E9C(struct Sprite *sprite); extern const u8 gStatusConditionString_PoisonJpn[8]; diff --git a/include/battle_controllers.h b/include/battle_controllers.h index 2281fdaff..eea544b55 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -39,8 +39,8 @@ struct MovePpInfo struct ChooseMoveStruct { u16 moves[4]; - u8 ppNumbers[4]; - u8 ppWithBonusNumbers[4]; + u8 currentPp[4]; + u8 maxPp[4]; u16 species; u8 monType1; u8 monType2; diff --git a/include/battle_message.h b/include/battle_message.h index be2aca9b2..3b154c5a6 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -205,6 +205,8 @@ void BufferStringBattle(u16 stringID); u32 BattleStringExpandPlaceholdersToDisplayedString(const u8* src); u32 BattleStringExpandPlaceholders(const u8* src, u8* dst); void sub_814F9EC(const u8* text, u8 arg1); +void SetPpNumbersPaletteInMoveSelection(void); +u8 GetCurrentPpToMaxPpState(u8 currentPp, u8 maxPp); #define TEXT_BUFF_ARRAY_COUNT 16 diff --git a/include/battle_string_ids.h b/include/battle_string_ids.h index 546cb2e46..f242284b0 100644 --- a/include/battle_string_ids.h +++ b/include/battle_string_ids.h @@ -12,6 +12,8 @@ #define STRINGID_USEDMOVE 4 #define STRINGID_BATTLEEND 5 + +// todo: make some of those names less vague: attacker/target vs pkmn, etc. #define STRINGID_TRAINER1LOSETEXT 12 #define STRINGID_PKMNGAINEDEXP 13 #define STRINGID_PKMNGREWTOLV 14 @@ -28,8 +30,8 @@ #define STRINGID_STATSWONTINCREASE2 25 #define STRINGID_AVOIDEDDAMAGE 26 #define STRINGID_ITDOESNTAFFECT 27 -#define STRINGID_PKMNFAINTED 28 -#define STRINGID_PKMNFAINTED2 29 +#define STRINGID_ATTACKERFAINTED 28 +#define STRINGID_TARGETFAINTED 29 #define STRINGID_PLAYERGOTMONEY 30 #define STRINGID_PLAYERWHITEOUT 31 #define STRINGID_PLAYERWHITEOUT2 32 @@ -143,7 +145,7 @@ #define STRINGID_PKMNTOOKFOE 140 #define STRINGID_PKMNREDUCEDPP 141 #define STRINGID_PKMNSTOLEITEM 142 -#define STRINGID_PKMNCANTESCAPE 143 +#define STRINGID_TARGETCANTESCAPENOW 143 #define STRINGID_PKMNFELLINTONIGHTMARE 144 #define STRINGID_PKMNLOCKEDINNIGHTMARE 145 #define STRINGID_PKMNLAIDCURSE 146 @@ -357,7 +359,7 @@ #define STRINGID_THEWALLSHATTERED 354 #define STRINGID_PKMNSXPREVENTSYSZ 355 #define STRINGID_PKMNSXCUREDITSYPROBLEM 356 -#define STRINGID_PKMNCANTESCAPE2 357 +#define STRINGID_ATTACKERCANTESCAPE 357 #define STRINGID_PKMNOBTAINEDX 358 #define STRINGID_PKMNOBTAINEDX2 359 #define STRINGID_PKMNOBTAINEDXYOBTAINEDZ 360 diff --git a/include/text.h b/include/text.h index 217de0687..c09b41ad3 100644 --- a/include/text.h +++ b/include/text.h @@ -103,7 +103,7 @@ struct TextPrinterSubStruct struct TextSubPrinter // TODO: Better name { - u8* current_text_offset; + const u8* current_text_offset; u8 windowId; u8 fontId; u8 x; diff --git a/ld_script.txt b/ld_script.txt index 20ec4d145..12815bcd5 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -191,7 +191,6 @@ SECTIONS { asm/battle_transition.o(.text); asm/battle_controller_linkpartner.o(.text); src/battle_message.o(.text); - asm/battle_message.o(.text); asm/cable_car.o(.text); asm/math_util.o(.text); asm/roulette_util.o(.text); diff --git a/src/battle_2.c b/src/battle_2.c index 8e48f3ed6..be0d0be72 100644 --- a/src/battle_2.c +++ b/src/battle_2.c @@ -4007,8 +4007,8 @@ static void HandleTurnActionSelectionState(void) for (i = 0; i < 4; i++) { moveInfo.moves[i] = gBattleMons[gActiveBank].moves[i]; - moveInfo.ppNumbers[i] = gBattleMons[gActiveBank].pp[i]; - moveInfo.ppWithBonusNumbers[i] = CalculatePPWithBonus( + moveInfo.currentPp[i] = gBattleMons[gActiveBank].pp[i]; + moveInfo.maxPp[i] = CalculatePPWithBonus( gBattleMons[gActiveBank].moves[i], gBattleMons[gActiveBank].ppBonuses, i); diff --git a/src/battle_message.c b/src/battle_message.c index 510b8a581..77a461544 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -9,6 +9,9 @@ #include "event_data.h" #include "link.h" #include "item.h" +#include "window.h" +#include "palette.h" +#include "battle_controllers.h" extern u16 gLastUsedItem; extern u8 gLastUsedAbility; @@ -25,11 +28,15 @@ extern u16 gPartnerTrainerId; extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; extern struct BattleEnigmaBerry gEnigmaBerries[BATTLE_BANKS_COUNT]; extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200]; +extern u8 gMoveSelectionCursor[BATTLE_BANKS_COUNT]; +extern u8 gUnknown_0203C7B4; +extern struct StringInfoBattle *gStringInfo; extern const u8 gMoveNames[LAST_MOVE_INDEX + 1][13]; extern const u8 gAbilityNames[][13]; extern const u8 gTrainerClassNames[][13]; extern const u8 gTypeNames[][7]; +extern const u16 gUnknown_08D85620[]; // strings extern const u8 gText_PkmnBoxSomeonesPCFull[]; @@ -50,10 +57,13 @@ 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 sub_8185FC4(void); +extern u8 sav2_get_text_speed(void); // this file's functions -void sub_814F8F8(u8 *txtPtr); -void sub_814F950(u8 *txtPtr); +static void sub_814F8F8(u8 *textPtr); +static void sub_814F950(u8 *dst); static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst); // ewram variables @@ -63,6 +73,7 @@ EWRAM_DATA u8 gBattleTextBuff2[TEXT_BUFF_ARRAY_COUNT] = {0}; EWRAM_DATA u8 gBattleTextBuff3[TEXT_BUFF_ARRAY_COUNT] = {0}; // const rom data +// todo: make some of those names less vague: attacker/target vs pkmn, etc. const u8 gText_Trainer1LoseText[] = _("{B_TRAINER1_LOSE_TEXT}"); const u8 gText_PkmnGainedEXP[] = _("{B_BUFF1} gained{B_BUFF2}\n{B_BUFF3} EXP. Points!\p"); @@ -83,14 +94,14 @@ const u8 gText_AvoidedDamage[] = _("{B_DEF_NAME_WITH_PREFIX} avoided\ndamage wit const u8 gText_PkmnMakesGroundMiss[] = _("{B_DEF_NAME_WITH_PREFIX} makes GROUND\nmoves miss with {B_DEF_ABILITY}!"); const u8 gText_PkmnAvoidedAttack[] = _("{B_DEF_NAME_WITH_PREFIX} avoided\nthe attack!"); const u8 gText_ItDoesntAffect[] = _("It doesn’t affect\n{B_DEF_NAME_WITH_PREFIX}…"); -const u8 gText_PkmnFainted[] = _("{B_ATK_NAME_WITH_PREFIX}\nfainted!\p"); -const u8 gText_PkmnFainted2[] = _("{B_DEF_NAME_WITH_PREFIX}\nfainted!\p"); +const u8 gText_AttackerFainted[] = _("{B_ATK_NAME_WITH_PREFIX}\nfainted!\p"); +const u8 gText_TargetFainted[] = _("{B_DEF_NAME_WITH_PREFIX}\nfainted!\p"); const u8 gText_PlayerGotMoney[] = _("{B_PLAYER_NAME} got ¥{B_BUFF1}\nfor winning!\p"); const u8 gText_PlayerWhiteout[] = _("{B_PLAYER_NAME} is out of\nusable POKéMON!\p"); const u8 gText_PlayerWhiteout2[] = _("{B_PLAYER_NAME} whited out!{PAUSE_UNTIL_PRESS}"); const u8 gText_PreventsEscape[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} prevents\nescape with {B_SCR_ACTIVE_ABILITY}!\p"); const u8 gText_CantEscape2[] = _("Can’t escape!\p"); -const u8 gText_PkmnCantEscape2[] = _("{B_ATK_NAME_WITH_PREFIX} can’t escape!"); +const u8 gText_AttackerCantEscape[] = _("{B_ATK_NAME_WITH_PREFIX} can’t escape!"); const u8 gText_HitXTimes[] = _("Hit {B_BUFF1} time(s)!"); const u8 gText_PkmnFellAsleep[] = _("{B_EFF_NAME_WITH_PREFIX}\nfell asleep!"); const u8 gText_PkmnMadeSleep[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nmade {B_EFF_NAME_WITH_PREFIX} sleep!"); @@ -206,7 +217,7 @@ const u8 gText_PkmnTryingToTakeFoe[] = _("{B_ATK_NAME_WITH_PREFIX} is trying\nto const u8 gText_PkmnTookFoe[] = _("{B_DEF_NAME_WITH_PREFIX} took\n{B_ATK_NAME_WITH_PREFIX} with it!"); const u8 gText_PkmnReducedPP[] = _("Reduced {B_DEF_NAME_WITH_PREFIX}’s\n{B_BUFF1} by {B_BUFF2}!"); const u8 gText_PkmnStoleItem[] = _("{B_ATK_NAME_WITH_PREFIX} stole\n{B_DEF_NAME_WITH_PREFIX}’s {B_LAST_ITEM}!"); -const u8 gText_PkmnCantEscape[] = _("{B_DEF_NAME_WITH_PREFIX} can’t\nescape now!"); +const u8 gText_TargetCantEscapeNow[] = _("{B_DEF_NAME_WITH_PREFIX} can’t\nescape now!"); const u8 gText_PkmnFellIntoNightmare[] = _("{B_DEF_NAME_WITH_PREFIX} fell into\na NIGHTMARE!"); const u8 gText_PkmnLockedInNightmare[] = _("{B_ATK_NAME_WITH_PREFIX} is locked\nin a NIGHTMARE!"); const u8 gText_PkmnLaidCurse[] = _("{B_ATK_NAME_WITH_PREFIX} cut its own HP and\nlaid a CURSE on {B_DEF_NAME_WITH_PREFIX}!"); @@ -289,10 +300,10 @@ const u8 gText_PkmnCutsAttackWith[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_ const u8 gText_PkmnPreventsStatLossWith[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nprevents stat loss!"); const u8 gText_PkmnHurtsWith[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nhurt {B_ATK_NAME_WITH_PREFIX}!"); const u8 gText_PkmnTraced[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} TRACED\n{B_BUFF1}’s {B_BUFF2}!"); -const u8 gText_PkmnsXPreventsBurns[] = _("{B_EFF_NAME_WITH_PREFIX}’s {STRING 27}\nprevents burns!"); +const u8 gText_PkmnsXPreventsBurns[] = _("{B_EFF_NAME_WITH_PREFIX}’s {B_EFF_ABILITY}\nprevents burns!"); const u8 gText_PkmnsXBlocksY[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nblocks {B_CURRENT_MOVE}!"); const u8 gText_PkmnsXBlocksY2[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nblocks {B_CURRENT_MOVE}!"); -const u8 gText_PkmnsXRestoredHPALittle2[] = _("{B_ATK_NAME_WITH_PREFIX}’s {STRING 24}\nrestored its HP a little!"); +const u8 gText_PkmnsXRestoredHPALittle2[] = _("{B_ATK_NAME_WITH_PREFIX}’s {B_ATK_ABILITY}\nrestored its HP a little!"); const u8 gText_PkmnsXWhippedUpSandstorm[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nwhipped up a sandstorm!"); const u8 gText_PkmnsXIntensifiedSun[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nintensified the sun’s rays!"); const u8 gText_PkmnsXPreventsYLoss[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nprevents {B_BUFF1} loss!"); @@ -302,11 +313,11 @@ const u8 gText_PkmnsXCuredYProblem[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B const u8 gText_ItSuckedLiquidOoze[] = _("It sucked up the\nLIQUID OOZE!"); const u8 gText_PkmnTransformed[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} transformed!"); const u8 gText_PkmnsXTookAttack[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\ntook the attack!"); -const u8 gText_PkmnsXPreventsSwitching[] = _("{B_BUFF1}’s {STRING 23}\nprevents switching!\p"); +const u8 gText_PkmnsXPreventsSwitching[] = _("{B_BUFF1}’s {B_LAST_ABILITY}\nprevents switching!\p"); const u8 gText_PreventedFromWorking[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nprevented {B_SCR_ACTIVE_NAME_WITH_PREFIX}’s\l{B_BUFF1} from working!"); const u8 gText_PkmnsXMadeItIneffective[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nmade it ineffective!"); -const u8 gText_PkmnsXPreventsFlinching[] = _("{B_EFF_NAME_WITH_PREFIX}’s {STRING 27}\nprevents flinching!"); -const u8 gText_PkmnsXPreventsYsZ[] = _("{B_ATK_NAME_WITH_PREFIX}’s {STRING 24}\nprevents {B_DEF_NAME_WITH_PREFIX}’s\l{B_DEF_ABILITY} from working!"); +const u8 gText_PkmnsXPreventsFlinching[] = _("{B_EFF_NAME_WITH_PREFIX}’s {B_EFF_ABILITY}\nprevents flinching!"); +const u8 gText_PkmnsXPreventsYsZ[] = _("{B_ATK_NAME_WITH_PREFIX}’s {B_ATK_ABILITY}\nprevents {B_DEF_NAME_WITH_PREFIX}’s\l{B_DEF_ABILITY} from working!"); const u8 gText_PkmnsXCuredItsYProblem[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\ncured its {B_BUFF1} problem!"); const u8 gText_PkmnsXHadNoEffectOnY[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nhad no effect on {B_EFF_NAME_WITH_PREFIX}!"); const u8 gText_StatSharply[] = _("sharply "); @@ -329,7 +340,7 @@ const u8 gText_NotVeryEffective[] = _("It’s not very effective…"); const u8 gText_SuperEffective[] = _("It’s super effective!"); const u8 gText_GotAwaySafely[] = _("{PLAY_SE 0x0011}Got away safely!\p"); const u8 gText_PkmnFledUsingIts[] = _("{PLAY_SE 0x0011}{B_ATK_NAME_WITH_PREFIX} fled\nusing its {B_LAST_ITEM}!\p"); -const u8 gText_PkmnFledUsing[] = _("{PLAY_SE 0x0011}{B_ATK_NAME_WITH_PREFIX} fled\nusing {STRING 24}!\p"); +const u8 gText_PkmnFledUsing[] = _("{PLAY_SE 0x0011}{B_ATK_NAME_WITH_PREFIX} fled\nusing {B_ATK_ABILITY}!\p"); const u8 gText_WildPkmnFled[] = _("{PLAY_SE 0x0011}Wild {B_BUFF1} fled!"); const u8 gText_PlayerDefeatedLinkTrainer[] = _("Player defeated\n{B_20}!"); const u8 gText_TwoLinkTrainersDefeated[] = _("Player beat {B_20}\nand {B_21}!"); @@ -537,8 +548,8 @@ const u8 * const gBattleStringsTable[BATTLESTRINGS_COUNT] = gText_StatsWontIncrease2, gText_AvoidedDamage, gText_ItDoesntAffect, - gText_PkmnFainted, - gText_PkmnFainted2, + gText_AttackerFainted, + gText_TargetFainted, gText_PlayerGotMoney, gText_PlayerWhiteout, gText_PlayerWhiteout2, @@ -652,7 +663,7 @@ const u8 * const gBattleStringsTable[BATTLESTRINGS_COUNT] = gText_PkmnTookFoe, gText_PkmnReducedPP, gText_PkmnStoleItem, - gText_PkmnCantEscape, + gText_TargetCantEscapeNow, gText_PkmnFellIntoNightmare, gText_PkmnLockedInNightmare, gText_PkmnLaidCurse, @@ -866,7 +877,7 @@ const u8 * const gBattleStringsTable[BATTLESTRINGS_COUNT] = gText_TheWallShattered, gText_PkmnsXPreventsYsZ, gText_PkmnsXCuredItsYProblem, - gText_PkmnCantEscape2, + gText_AttackerCantEscape, gText_PkmnObtainedX, gText_PkmnObtainedX2, gText_PkmnObtainedXYObtainedZ, @@ -899,30 +910,80 @@ const u16 gMissStringIds[] = STRINGID_PKMNMAKESGROUNDMISS }; -// todo: change values to string Ids -const u16 gUnknown_085CC83E[] = +const u16 gNoEscapeStringIds[] = +{ + STRINGID_CANTESCAPE, STRINGID_DONTLEAVEBIRCH, STRINGID_PREVENTSESCAPE, + STRINGID_CANTESCAPE2, STRINGID_ATTACKERCANTESCAPE +}; + +const u16 gMoveWeatherChangeStringIds[] = +{ + STRINGID_STARTEDTORAIN, STRINGID_DOWNPOURSTARTED, STRINGID_BUTITFAILED, + STRINGID_SANDSTORMBREWED, STRINGID_SUNLIGHTGOTBRIGHT, STRINGID_STARTEDHAIL +}; + +const u16 gSandStormHailContinuesStringIds[] = +{ + STRINGID_SANDSTORMRAGES, STRINGID_HAILCONTINUES +}; + +const u16 gSandStormHailDmgStringIds[] = +{ + STRINGID_PKMNBUFFETEDBYSANDSTORM, STRINGID_PKMNPELTEDBYHAIL +}; + +// todo once battlescripts are dumped +const u16 gTooLazyToSplitThemStringIds[] = { - 0x00e2, 0x00e3, 0x0021, - 0x0112, 0x0165, 0x00e8, 0x00e9, 0x00e5, 0x00ed, 0x00f0, 0x00f3, - 0x00ee, 0x00f4, 0x0066, 0x0067, 0x00ef, 0x00f5, 0x00ea, 0x00eb, - 0x00ec, 0x0065, 0x0098, 0x00e5, 0x00e5, 0x004e, 0x0160, 0x004d, - 0x0161, 0x004f, 0x0068, 0x0069, 0x001b, 0x006a, 0x0139, 0x0052, - 0x0053, 0x0070, 0x0071, 0x0073, 0x0074, 0x006c, 0x006e, 0x00f7, - 0x004c, 0x0075, 0x0076, 0x0077, 0x00d5, 0x00d6, 0x003d, 0x0130, - 0x0145, 0x0146, 0x00d7, 0x00d8, 0x003e, 0x0130, 0x0054, 0x0055, - 0x0056, 0x0057, 0x0058, 0x0059, 0x013d, 0x013e, 0x005a, 0x005c, - 0x005b, 0x005d, 0x005b, 0x0148, 0x0061, 0x00e5, 0x0063, 0x00e5, - 0x007d, 0x00e5, 0x007e, 0x00fb, 0x0028, 0x0029, 0x0037, 0x0038, - 0x0023, 0x0024, 0x002e, 0x002f, 0x0031, 0x0032, 0x0035, 0x0036, - 0x0017, 0x007c, 0x0045, 0x0136, 0x002d, 0x0139, 0x013b, 0x013c, - 0x00fd, 0x00fd, 0x00fd, 0x00fd, 0x0142, 0x00a1, 0x014f, 0x0107, - 0x0108, 0x0109, 0x010a, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, - 0x0110, 0x0110, 0x0110, 0x0111, 0x0110, 0x0110, 0x0110, 0x00f1, - 0x0110, 0x0110, 0x0110, 0x0116, 0x0117, 0x0118, 0x0119, 0x016d, - 0x011b, 0x011c, 0x011e, 0x011f, 0x0120, 0x0128, 0x0123, 0x0126, - 0x0125, 0x0124, 0x0127, 0x0129, 0x0156, 0x0131, 0x0163, 0x016a, - 0x00c7, 0x0163, 0x016a, 0x00c9, 0x0163, 0x016a, 0x0166, 0x0167, - 0x0168, 0x00cb, 0x0137, 0x0177, 0x0178, 0x0179, 0x017a, + 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_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, + 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_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, }; const u16 gTrappingMoves[] = @@ -1022,7 +1083,6 @@ const u8 gText_WillChampinshipDreamComeTrue[] = _("Will the championship dream c const u8 gText_AFormerChampion[] = _("A former CHAMPION!\p"); const u8 gText_ThePreviousChampion[] = _("The previous CHAMPION!\p"); const u8 gText_TheUnbeatenChampion[] = _("The unbeaten CHAMPION!\p"); - const u8 gText_PlayerMon1Name[] = _("{B_PLAYER_MON1_NAME}"); const u8 gText_Vs[] = _("VS"); const u8 gText_OpponentMon1Name[] = _("{B_OPPONENT_MON1_NAME}"); @@ -1085,79 +1145,104 @@ const u8 gText_BattleRecordedOnPass[] = _("{B_PLAYER_NAME}’s battle result was const u8 gText_LinkTrainerWantsToBattlePause[] = _("{B_20}\nwants to battle!{PAUSE 49}"); const u8 gText_TwoLinkTrainersWantToBattlePause[] = _("{B_20} and {B_21}\nwant to battle!{PAUSE 49}"); -const u16 gUnknown_085CD336[] = +static const u16 sUnknownMoveTable[] = { - 0x000e, 0x0046, 0x004a, 0x006a, 0x006b, 0x006c, 0x006e, 0x006f, - 0x0079, 0x007b, 0x007d, 0x0094, 0x0096, 0x0097, 0x009b, 0x009c, - 0x009f, 0x00a4, 0x00aa, 0x00ad, 0x00b6, 0x00bf, 0x00cb, 0x00cd, - 0x00cf, 0x00d6, 0x00ed, 0x00f4, 0x00f5, 0x010a, 0x010f, 0x0112, - 0x0113, 0x011a, 0x0125, 0x0136, 0x013c, 0x0140, 0x0149, 0x014a, - 0x014e, 0x0154, 0x0000, 0x0064, 0x0069, 0x0075, 0x0085, 0x00af, - 0x010d, 0x0153, 0x0000, 0x0060, 0x0061, 0x0066, 0x0068, 0x008c, - 0x0090, 0x00a5, 0x00b8, 0x010c, 0x0111, 0x0118, 0x0119, 0x0129, - 0x012a, 0x012c, 0x0139, 0x015a, 0x015b, 0x0000, 0x0001, 0x000a, - 0x000b, 0x0011, 0x0013, 0x0014, 0x0015, 0x001e, 0x0023, 0x0025, - 0x0027, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0040, 0x0047, - 0x0051, 0x0059, 0x005a, 0x005b, 0x005c, 0x0067, 0x0076, 0x007a, - 0x0080, 0x0084, 0x008b, 0x0091, 0x00a3, 0x00a9, 0x00ab, 0x00ae, - 0x00c1, 0x00cc, 0x00d5, 0x00f9, 0x00fd, 0x00ff, 0x0100, 0x0103, - 0x0104, 0x0110, 0x011b, 0x0141, 0x0157, 0x0000, + MOVE_SWORDS_DANCE, MOVE_STRENGTH, MOVE_GROWTH, + MOVE_HARDEN, MOVE_MINIMIZE, MOVE_SMOKESCREEN, + MOVE_WITHDRAW, MOVE_DEFENSE_CURL, MOVE_EGG_BOMB, + MOVE_SMOG, MOVE_BONE_CLUB, MOVE_FLASH, MOVE_SPLASH, + MOVE_ACID_ARMOR, MOVE_BONEMERANG, MOVE_REST, MOVE_SHARPEN, + MOVE_SUBSTITUTE, MOVE_MIND_READER, MOVE_SNORE, + MOVE_PROTECT, MOVE_SPIKES, MOVE_ENDURE, MOVE_ROLLOUT, + MOVE_SWAGGER, MOVE_SLEEP_TALK, MOVE_HIDDEN_POWER, + MOVE_PSYCH_UP, MOVE_EXTREME_SPEED, MOVE_FOLLOW_ME, + MOVE_TRICK, MOVE_ASSIST, MOVE_INGRAIN, MOVE_KNOCK_OFF, + MOVE_CAMOUFLAGE, MOVE_ASTONISH, MOVE_ODOR_SLEUTH, + MOVE_GRASS_WHISTLE, MOVE_SHEER_COLD, MOVE_MUDDY_WATER, + MOVE_IRON_DEFENSE, MOVE_BOUNCE, MOVE_NONE, + + MOVE_TELEPORT, MOVE_RECOVER, MOVE_BIDE, MOVE_AMNESIA, + MOVE_FLAIL, MOVE_TAUNT, MOVE_BULK_UP, MOVE_NONE, + + MOVE_MEDITATE, MOVE_AGILITY, MOVE_MIMIC, MOVE_DOUBLE_TEAM, + MOVE_BARRAGE, MOVE_TRANSFORM, MOVE_STRUGGLE, MOVE_SCARY_FACE, + MOVE_CHARGE, MOVE_WISH, MOVE_BRICK_BREAK, MOVE_YAWN, + MOVE_FEATHER_DANCE, MOVE_TEETER_DANCE, MOVE_MUD_SPORT, + MOVE_FAKE_TEARS, MOVE_WATER_SPORT, MOVE_CALM_MIND, MOVE_NONE, + + MOVE_POUND, MOVE_SCRATCH, MOVE_VICE_GRIP, + MOVE_WING_ATTACK, MOVE_FLY, MOVE_BIND, MOVE_SLAM, + MOVE_HORN_ATTACK, MOVE_WRAP, MOVE_THRASH, MOVE_TAIL_WHIP, + MOVE_LEER, MOVE_BITE, MOVE_GROWL, MOVE_ROAR, + MOVE_SING, MOVE_PECK, MOVE_ABSORB, MOVE_STRING_SHOT, + MOVE_EARTHQUAKE, MOVE_FISSURE, MOVE_DIG, MOVE_TOXIC, + MOVE_SCREECH, MOVE_METRONOME, MOVE_LICK, MOVE_CLAMP, + MOVE_CONSTRICT, MOVE_POISON_GAS, MOVE_BUBBLE, + MOVE_SLASH, MOVE_SPIDER_WEB, MOVE_NIGHTMARE, MOVE_CURSE, + MOVE_FORESIGHT, MOVE_CHARM, MOVE_ATTRACT, MOVE_ROCK_SMASH, + MOVE_UPROAR, MOVE_SPIT_UP, MOVE_SWALLOW, MOVE_TORMENT, + MOVE_FLATTER, MOVE_ROLE_PLAY, MOVE_ENDEAVOR, MOVE_TICKLE, + MOVE_COVET, MOVE_NONE }; -static const u8 sDummyWeirdStatusString[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0}; +static const u8 sDummyWeirdStatusString[] = {EOS, EOS, EOS, EOS, EOS, EOS, EOS, EOS, 0, 0}; -const u16 gUnknown_085CD42C[] = +static const u8 gUnknown_085CD42C[] = { - 0x01ff, 0x0100, 0x0000, 0x0101, 0x060f, 0x0000, 0x01ff, 0x0101, - 0x0000, 0x0100, 0x060f, 0x0000, 0x01ee, 0x0100, 0x0000, 0x0d00, - 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, - 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x07ee, 0x0100, - 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, - 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0c00, 0x0b0e, 0x0000, - 0x01ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x0102, - 0x0000, 0x0c00, 0x0b0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, - 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, - 0x01ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x0100, - 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x0100, 0x0120, 0x0000, 0x0100, - 0x0200, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, - 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x01ff, - 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0d00, - 0x0f0e, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, - 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x0100, 0x01ff, - 0x0000, 0x0100, 0x0600, 0x0000, 0x0100, 0x01ff, 0x0000, 0x0100, - 0x0600, 0x0000, 0x0100, 0x01ff, 0x0000, 0x0100, 0x0600, 0x0000, + 0xFF, 1, 0, 1, 0, 0, 1, 1, 0xF, 6, 0, 0, 0xFF, 1, + 1, 1, 0, 0, 0, 1, 0xF, 6, 0, 0, 0xEE, 1, 0, 1, 0, + 0, 0, 0xD, 0xE, 0xF, 0, 0, 0xEE, 7, 0, 1, 0, 0, 0, + 0xD, 0xE, 0xF, 0, 0, 0xEE, 7, 0, 1, 0, 0, 0, 0xD, + 0xE, 0xF, 0, 0, 0xEE, 7, 0, 1, 0, 0, 0, 0xD, 0xE, + 0xF, 0, 0, 0xEE, 7, 0, 1, 0, 0, 0, 0xD, 0xE, 0xF, + 0, 0, 0xEE, 7, 0, 1, 0, 0, 0, 0xC, 0xE, 0xB, 0, 0, + 0xEE, 1, 0, 1, 0, 0, 0, 0xD, 0xE, 0xF, 0, 0, 0xEE, + 1, 2, 1, 0, 0, 0, 0xC, 0xE, 0xB, 0, 0, 0xEE, 7, 0, + 1, 0, 0, 0, 0xD, 0xE, 0xF, 0, 0, 0xEE, 7, 0, 1, 0, + 0, 0, 0xD, 0xE, 0xF, 0, 0, 0xEE, 1, 0, 1, 0, 0, 0, + 0xD, 0xE, 0xF, 0, 0, 0xEE, 1, 0, 1, 0, 0, 0, 0xD, + 0xE, 0xF, 0, 0, 0, 1, 0x20, 1, 0, 0, 0, 1, 0, 2, + 0, 0, 0xEE, 1, 0xFF, 1, 0, 0, 0, 0xD, 0xE, 0xF, 0, + 0, 0xEE, 1, 0xFF, 1, 0, 0, 0, 0xD, 0xE, 0xF, 0, 0, + 0xEE, 1, 0xFF, 1, 0, 0, 0, 0xD, 0xE, 0xF, 0, 0, 0xEE, + 1, 0xFF, 1, 0, 0, 0, 0xD, 0xE, 0xF, 0, 0, 0xEE, 1, + 0xFF, 1, 0, 0, 0, 0xD, 0xE, 0xF, 0, 0, 0xEE, 1, 0xFF, + 1, 0, 0, 0, 0xD, 0xE, 0xF, 0, 0, 0, 1, 0xFF, 1, 0, + 0, 0, 1, 0, 6, 0, 0, 0, 1, 0xFF, 1, 0, 0, 0, 1, 0, + 6, 0, 0, 0, 1, 0xFF, 1, 0, 0, 0, 1, 0, 6, 0, 0 }; -const u16 gUnknown_085CD54C[] = +static const u8 gUnknown_085CD54C[] = { - 0x01ff, 0x0100, 0x0000, 0x0101, 0x060f, 0x0000, 0x01ff, 0x0101, - 0x0000, 0x0100, 0x060f, 0x0000, 0x01ee, 0x0100, 0x0000, 0x0d00, - 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, - 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x07ee, 0x0100, - 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, - 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0c00, 0x0b0e, 0x0000, - 0x01ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x0102, - 0x0000, 0x0c00, 0x0b0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, - 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, - 0x01ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x0100, - 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x0100, 0x0120, 0x0000, 0x0100, - 0x0200, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0100, 0x0f0e, 0x0000, - 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x01ff, - 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0d00, - 0x0f0e, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, - 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x01ff, - 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x0111, 0x0100, 0x0000, 0x0201, - 0x0301, 0x0000 + 0xFF, 1, 0, 1, 0, 0, 1, 1, 0xF, 6, 0, 0, 0xFF, 1, + 1, 1, 0, 0, 0, 1, 0xF, 6, 0, 0, 0xEE, 1, 0, 1, 0, + 0, 0, 0xD, 0xE, 0xF, 0, 0, 0xEE, 7, 0, 1, 0, 0, 0, + 0xD, 0xE, 0xF, 0, 0, 0xEE, 7, 0, 1, 0, 0, 0, 0xD, + 0xE, 0xF, 0, 0, 0xEE, 7, 0, 1, 0, 0, 0, 0xD, 0xE, + 0xF, 0, 0, 0xEE, 7, 0, 1, 0, 0, 0, 0xD, 0xE, 0xF, + 0, 0, 0xEE, 7, 0, 1, 0, 0, 0, 0xC, 0xE, 0xB, 0, 0, + 0xEE, 1, 0, 1, 0, 0, 0, 0xD, 0xE, 0xF, 0, 0, 0xEE, + 1, 2, 1, 0, 0, 0, 0xC, 0xE, 0xB, 0, 0, 0xEE, 7, 0, + 1, 0, 0, 0, 0xD, 0xE, 0xF, 0, 0, 0xEE, 7, 0, 1, 0, + 0, 0, 0xD, 0xE, 0xF, 0, 0, 0xEE, 1, 0, 1, 0, 0, 0, + 0xD, 0xE, 0xF, 0, 0, 0xEE, 1, 0, 1, 0, 0, 0, 0xD, + 0xE, 0xF, 0, 0, 0, 1, 0x20, 1, 0, 0, 0, 1, 0, 2, + 0, 0, 0xEE, 1, 0xFF, 1, 0, 0, 0, 1, 0xE, 0xF, 0, + 0, 0xEE, 1, 0xFF, 1, 0, 0, 0, 0xD, 0xE, 0xF, 0, 0, + 0xEE, 1, 0xFF, 1, 0, 0, 0, 0xD, 0xE, 0xF, 0, 0, 0xEE, + 1, 0xFF, 1, 0, 0, 0, 0xD, 0xE, 0xF, 0, 0, 0xEE, 1, + 0xFF, 1, 0, 0, 0, 0xD, 0xE, 0xF, 0, 0, 0xEE, 1, 0xFF, + 1, 0, 0, 0, 0xD, 0xE, 0xF, 0, 0, 0xEE, 1, 0xFF, 1, + 0, 0, 0, 0xD, 0xE, 0xF, 0, 0, 0x11, 1, 0, 1, 0, 0, + 1, 2, 1, 3, 0, 0 }; -const u16 * const gUnknown_085CD660[] = +static const u8 * const gUnknown_085CD660[] = { gUnknown_085CD42C, gUnknown_085CD54C }; -const u8 gUnknown_085CD668[] = {8, 4, 1, 0}; - -extern struct StringInfoBattle *gStringInfo; +static const u8 sRecordedBattleTextSpeeds[] = {8, 4, 1, 0}; void BufferStringBattle(u16 stringID) { @@ -1356,7 +1441,7 @@ void BufferStringBattle(u16 stringID) } break; case STRINGID_USEDMOVE: // pokemon used a move msg - sub_814F8F8(gBattleTextBuff1); + sub_814F8F8(gBattleTextBuff1); // buff1 doesn't appear in the string, leftover from japanese move names? if (gStringInfo->currentMove > LAST_MOVE_INDEX) StringCopy(gBattleTextBuff2, gText_UnknownMoveTypes[*(&gBattleStruct->stringMoveType)]); @@ -1509,8 +1594,6 @@ static const u8* TryGetStatusString(u8* src) StringGetEnd10(text); \ toCpy = text; -extern u8 gUnknown_0203C7B4; - u32 BattleStringExpandPlaceholders(const u8* src, u8* dst) { u32 dstID = 0; // if they used dstID, why not use srcID as well? @@ -2067,3 +2150,184 @@ static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst) } } } + +static void sub_814F8F8(u8* textBuff) +{ + s32 counter = 0; + u32 i = 0; + + while (counter != 4) + { + if (sUnknownMoveTable[i] == MOVE_NONE) + counter++; + if (sUnknownMoveTable[i++] == gStringInfo->currentMove) + break; + } + + if (counter >= 0) + { + if (counter <= 2) + StringCopy(textBuff, gText_SpaceIs); // is + else if (counter <= 4) + StringCopy(textBuff, gText_ApostropheS); // 's + } +} + +static void sub_814F950(u8* dst) +{ + s32 counter = 0; + s32 i = 0; + + while (*dst != EOS) + dst++; + + while (counter != 4) + { + if (sUnknownMoveTable[i] == MOVE_NONE) + counter++; + if (sUnknownMoveTable[i++] == gStringInfo->currentMove) + break; + } + + switch (counter) + { + case 0: + StringCopy(dst, gText_ExclamationMark); + break; + case 1: + StringCopy(dst, gText_ExclamationMark2); + break; + case 2: + StringCopy(dst, gText_ExclamationMark3); + break; + case 3: + StringCopy(dst, gText_ExclamationMark4); + break; + case 4: + StringCopy(dst, gText_ExclamationMark5); + break; + } +} + +void sub_814F9EC(const u8 *text, u8 arg1) +{ + const u8 *r8 = gUnknown_085CD660[gBattleScripting.field_24]; + bool32 r9; + struct TextSubPrinter textSubPrinter; + u8 speed; + + if (arg1 & 0x80) + { + arg1 &= ~(0x80); + r9 = FALSE; + } + else + { + FillWindowPixelBuffer(arg1, r8[12 * arg1]); + r9 = TRUE; + } + + textSubPrinter.current_text_offset = text; + textSubPrinter.windowId = arg1; + textSubPrinter.fontId = r8[(12 * arg1) + 1]; + textSubPrinter.x = r8[(12 * arg1) + 2]; + textSubPrinter.y = r8[(12 * arg1) + 3]; + textSubPrinter.currentX = textSubPrinter.x; + textSubPrinter.currentY = textSubPrinter.y; + textSubPrinter.letterSpacing = r8[(12 * arg1) + 4]; + textSubPrinter.lineSpacing = r8[(12 * arg1) + 5]; + textSubPrinter.fontColor_l = 0; + textSubPrinter.fontColor_h = r8[(12 * arg1) + 7]; + textSubPrinter.bgColor = r8[(12 * arg1) + 8]; + textSubPrinter.shadowColor = r8[(12 * arg1) + 9]; + + if (textSubPrinter.x == 0xFF) + { + s32 var2; + u32 var = sub_80397C4(gBattleScripting.field_24, arg1); + var2 = GetStringCenterAlignXOffsetWithLetterSpacing(textSubPrinter.fontId, textSubPrinter.current_text_offset, var, textSubPrinter.letterSpacing); + textSubPrinter.x = textSubPrinter.currentX = var2; + } + + if (arg1 == 0x16) + gTextFlags.flag_1 = 0; + else + gTextFlags.flag_1 = 1; + + if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED)) + gTextFlags.flag_2 = 1; + else + gTextFlags.flag_2 = 0; + + if (arg1 == 0 || arg1 == 0x16) + { + if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + speed = 1; + else if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) + speed = sRecordedBattleTextSpeeds[sub_8185FC4()]; + else + speed = sav2_get_text_speed(); + + gTextFlags.flag_0 = 1; + } + else + { + speed = r8[(12 * arg1) + 6]; + gTextFlags.flag_0 = 0; + } + + AddTextPrinter(&textSubPrinter, speed, NULL); + + if (r9) + { + PutWindowTilemap(arg1); + CopyWindowToVram(arg1, 3); + } +} + +void SetPpNumbersPaletteInMoveSelection(void) +{ + struct ChooseMoveStruct *chooseMoveStruct = (struct ChooseMoveStruct*)(&gBattleBufferA[gActiveBank][4]); + const u16 *palPtr = gUnknown_08D85620; + u8 var = GetCurrentPpToMaxPpState(chooseMoveStruct->currentPp[gMoveSelectionCursor[gActiveBank]], + chooseMoveStruct->maxPp[gMoveSelectionCursor[gActiveBank]]); + + gPlttBufferUnfaded[92] = palPtr[(var * 2) + 0]; + gPlttBufferUnfaded[91] = palPtr[(var * 2) + 1]; + + CpuCopy16(&gPlttBufferUnfaded[92], &gPlttBufferFaded[92], sizeof(u16)); + CpuCopy16(&gPlttBufferUnfaded[91], &gPlttBufferFaded[91], sizeof(u16)); +} + +u8 GetCurrentPpToMaxPpState(u8 currentPp, u8 maxPp) +{ + if (maxPp == currentPp) + { + return 3; + } + else if (maxPp <= 2) + { + if (currentPp > 1) + return 3; + else + return 2 - currentPp; + } + else if (maxPp <= 7) + { + if (currentPp > 2) + return 3; + else + return 2 - currentPp; + } + else + { + if (currentPp == 0) + return 2; + if (currentPp <= maxPp / 4) + return 1; + if (currentPp > maxPp / 2) + return 3; + } + + return 0; +} -- cgit v1.2.3 From 97c6201cfe57470cfb7f4d00961ec2247573eda8 Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Mon, 9 Oct 2017 02:19:44 -0400 Subject: add build/ support. --- .gitignore | 1 + Makefile | 81 ++++++++++++++++++++++++++++++++++---------------------------- 2 files changed, 46 insertions(+), 36 deletions(-) diff --git a/.gitignore b/.gitignore index e1600820c..9f10eb5b1 100644 --- a/.gitignore +++ b/.gitignore @@ -23,5 +23,6 @@ tools/* *.dump *.sa* Thumbs.db +build/ .DS_Store *.ddump diff --git a/Makefile b/Makefile index e176b1258..dd1a96ebb 100644 --- a/Makefile +++ b/Makefile @@ -10,7 +10,7 @@ CPP := $(DEVKITARM)/bin/arm-none-eabi-cpp CPPFLAGS := -I tools/agbcc/include -iquote include -nostdinc -undef LD := $(DEVKITARM)/bin/arm-none-eabi-ld -LDFLAGS := -T ld_script.ld -Map pokeemerald.map +LDFLAGS := -T ld_script.ld -Map ../../pokeemerald.map OBJCOPY := $(DEVKITARM)/bin/arm-none-eabi-objcopy @@ -35,17 +35,22 @@ RAMSCRGEN := tools/ramscrgen/ramscrgen .PHONY: rom clean compare tidy + +$(shell mkdir -p build/ build/emerald/{,asm,data,src}) + C_SRCS := $(wildcard src/*.c) -C_OBJS := $(C_SRCS:%.c=%.o) +C_OBJS := $(C_SRCS:%.c=build/emerald/%.o) ASM_SRCS := $(wildcard asm/*.s) -ASM_OBJS := $(ASM_SRCS:%.s=%.o) +ASM_OBJS := $(ASM_SRCS:%.s=build/emerald/%.o) DATA_ASM_SRCS := $(wildcard data/*.s) -DATA_ASM_OBJS := $(DATA_ASM_SRCS:%.s=%.o) +DATA_ASM_OBJS := $(DATA_ASM_SRCS:%.s=build/emerald/%.o) OBJS := $(C_OBJS) $(ASM_OBJS) $(DATA_ASM_OBJS) +$OBJS_REL := $(OBJS:build/emerald/%=%) + ROM := pokeemerald.gba ELF := $(ROM:.gba=.elf) @@ -59,8 +64,10 @@ clean: tidy find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' -o -iname '*.latfont' -o -iname '*.hwjpnfont' -o -iname '*.fwjpnfont' \) -exec rm {} + tidy: - rm -f ld_script.ld sym_bss.ld sym_common.ld sym_ewram.ld - rm -f $(ROM) $(ELF) $(OBJS) $(C_SRCS:%.c=%.i) pokeemerald.map + rm -f pokeemerald.gba + rm -f pokeemerald.map + rm -f pokeemerald.elf + rm -r build/* include graphics_file_rules.mk @@ -75,56 +82,58 @@ include graphics_file_rules.mk %.lz: % ; $(GFX) $< $@ %.rl: % ; $(GFX) $< $@ -src/libc.o: CC1 := tools/agbcc/bin/old_agbcc -src/libc.o: CFLAGS := -O2 +%src/libc.o: CC1 := tools/agbcc/bin/old_agbcc +%src/libc.o: CFLAGS := -O2 -src/siirtc.o: CFLAGS := -mthumb-interwork +%src/siirtc.o: CFLAGS := -mthumb-interwork -src/agb_flash.o: CFLAGS := -O -mthumb-interwork -src/agb_flash_1m.o: CFLAGS := -O -mthumb-interwork -src/agb_flash_mx.o: CFLAGS := -O -mthumb-interwork +%src/agb_flash.o: CFLAGS := -O -mthumb-interwork +%src/agb_flash_1m.o: CFLAGS := -O -mthumb-interwork +%src/agb_flash_mx.o: CFLAGS := -O -mthumb-interwork -src/m4a_2.o: CC1 := tools/agbcc/bin/old_agbcc -src/m4a_4.o: CC1 := tools/agbcc/bin/old_agbcc +%src/m4a_2.o: CC1 := tools/agbcc/bin/old_agbcc +%src/m4a_4.o: CC1 := tools/agbcc/bin/old_agbcc ifeq ($(NODEP),) -%.o: c_dep = $(shell $(SCANINC) $*.c) +build/emerald/src/%.o: c_dep = $(shell $(SCANINC) src/$(*F).c) else -%.o: c_dep := +build/emerald/src/%.o: c_dep := endif -$(C_OBJS): %.o : %.c $$(c_dep) - @$(CPP) $(CPPFLAGS) $< -o $*.i - @$(PREPROC) $*.i charmap.txt | $(CC1) $(CFLAGS) -o $*.s - @echo -e ".text\n\t.align\t2, 0\n" >> $*.s - $(AS) $(ASFLAGS) -o $@ $*.s +build/emerald/%.o : %.c $$(c_dep) + @$(CPP) $(CPPFLAGS) $< -o build/emerald/$*.i + @$(PREPROC) build/emerald/$*.i charmap.txt | $(CC1) $(CFLAGS) -o build/emerald/$*.s + @echo -e ".text\n\t.align\t2, 0\n" >> build/emerald/$*.s + $(AS) $(ASFLAGS) -o $@ build/emerald/$*.s ifeq ($(NODEP),) -%.o: asm_dep = $(shell $(SCANINC) $*.s) +build/emerald/asm/%.o: asm_dep = $(shell $(SCANINC) asm/$(*F).s) +build/emerald/data/%.o: asm_dep = $(shell $(SCANINC) data/$(*F).s) else -%.o: asm_dep := +build/emerald/asm/%.o: asm_dep := +build/emerald/data/%.o: asm_dep := endif -$(ASM_OBJS): %.o: %.s $$(asm_dep) +build/emerald/asm/%.o: asm/%.s $$(asm_dep) $(AS) $(ASFLAGS) -o $@ $< -$(DATA_ASM_OBJS): %.o: %.s $$(asm_dep) +build/emerald/data/%.o: data/%.s $$(asm_dep) $(PREPROC) $< charmap.txt | $(AS) $(ASFLAGS) -o $@ -sym_bss.ld: sym_bss.txt - $(RAMSCRGEN) .bss sym_bss.txt ENGLISH >$@ +build/emerald/sym_bss.ld: sym_bss.txt + cd build/emerald && ../../$(RAMSCRGEN) .bss ../../sym_bss.txt ENGLISH >sym_bss.ld -sym_common.ld: sym_common.txt $(C_OBJS) $(wildcard common_syms/*.txt) - $(RAMSCRGEN) COMMON sym_common.txt ENGLISH -c src,common_syms >$@ +build/emerald/sym_common.ld: sym_common.txt $(C_OBJS) $(wildcard common_syms/*.txt) + cd build/emerald && ../../$(RAMSCRGEN) COMMON ../../sym_common.txt ENGLISH -c src,../../common_syms >sym_common.ld -sym_ewram.ld: sym_ewram.txt - $(RAMSCRGEN) ewram_data sym_ewram.txt ENGLISH >$@ +build/emerald/sym_ewram.ld: sym_ewram.txt + cd build/emerald && ../../$(RAMSCRGEN) ewram_data ../../sym_ewram.txt ENGLISH >sym_ewram.ld -ld_script.ld: ld_script.txt sym_bss.ld sym_common.ld sym_ewram.ld - sed -f ld_script.sed ld_script.txt >ld_script.ld +build/emerald/ld_script.ld: ld_script.txt build/emerald/sym_bss.ld build/emerald/sym_common.ld build/emerald/sym_ewram.ld + cd build/emerald && sed -f ../../ld_script.sed ../../ld_script.txt | sed "s#tools/#../../tools/#g" | sed "s#sound/#../../sound/#g" >ld_script.ld -$(ELF): ld_script.ld $(OBJS) - $(LD) $(LDFLAGS) -o $@ $(OBJS) $(LIBGCC) +pokeemerald.elf: build/emerald/ld_script.ld $(OBJS) + cd build/emerald && $(LD) $(LDFLAGS) -o ../../$@ $(OBJS_REL) ../../$(LIBGCC) -$(ROM): $(ELF) +pokeemerald.gba: %.gba: %.elf $(OBJCOPY) -O binary --gap-fill 0xFF --pad-to 0x9000000 $< $@ -- cgit v1.2.3 From 6941be8e338ed842352d3984b69a9051517df7b0 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 9 Oct 2017 13:41:07 +0200 Subject: match and clean up ai script commands --- src/battle_ai_script_commands.c | 840 ++++++---------------------------------- 1 file changed, 115 insertions(+), 725 deletions(-) diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c index 92126e40c..bba66983b 100644 --- a/src/battle_ai_script_commands.c +++ b/src/battle_ai_script_commands.c @@ -7,11 +7,13 @@ #include "rng.h" #include "item.h" #include "battle_move_effects.h" +#include "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) (u8*) AIScriptRead32(ptr) +#define AIScriptReadPtr(ptr) (const u8*) AIScriptRead32(ptr) #define AI_ACTION_DONE 0x0001 #define AI_ACTION_FLEE 0x0002 @@ -52,16 +54,16 @@ AI scripts. extern u32 gBattleTypeFlags; extern u8 gActiveBank; -extern struct BattlePokemon gBattleMons[4]; +extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT]; extern u16 gCurrentMove; extern u8 gBankTarget; extern u8 gAbsentBankFlags; -extern u16 gLastUsedMovesByBanks[4]; +extern u16 gLastUsedMovesByBanks[BATTLE_BANKS_COUNT]; extern u16 gTrainerBattleOpponent_A; extern u16 gTrainerBattleOpponent_B; -extern u32 gStatuses3[4]; +extern u32 gStatuses3[BATTLE_BANKS_COUNT]; extern u16 gSideAffecting[2]; -extern u16 gBattlePartyID[4]; +extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; extern u16 gDynamicBasePower; extern u8 gBattleMoveFlags; extern s32 gBattleMoveDamage; @@ -70,13 +72,8 @@ extern u16 gBattleWeather; extern const struct BattleMove gBattleMoves[]; extern const struct BaseStats gBaseStats[]; -extern const u32 gBitTable[]; -extern u8 * const gBattleAI_ScriptsTable[]; +extern const u8 * const gBattleAI_ScriptsTable[]; -extern u8 GetWhoStrikesFirst(u8, u8, u8); -extern void AI_CalcDmg(u8, u8); - -extern u8 CheckMoveLimitations(); extern u32 GetAiScriptsInRecordedBattle(); extern u32 GetAiScriptsInBattleFactory(); @@ -116,8 +113,8 @@ static void BattleAICmd_if_move(void); static void BattleAICmd_if_not_move(void); static void BattleAICmd_if_in_bytes(void); static void BattleAICmd_if_not_in_bytes(void); -static void BattleAICmd_if_in_words(void); -static void BattleAICmd_if_not_in_words(void); +static void BattleAICmd_if_in_hwords(void); +static void BattleAICmd_if_not_in_hwords(void); static void BattleAICmd_if_user_can_damage(void); static void BattleAICmd_if_user_cant_damage(void); static void BattleAICmd_get_turn_count(void); @@ -227,8 +224,8 @@ static const BattleAICmdFunc sBattleAICmdTable[] = BattleAICmd_if_not_move, // 0x1A BattleAICmd_if_in_bytes, // 0x1B BattleAICmd_if_not_in_bytes, // 0x1C - BattleAICmd_if_in_words, // 0x1D - BattleAICmd_if_not_in_words, // 0x1E + BattleAICmd_if_in_hwords, // 0x1D + BattleAICmd_if_not_in_hwords, // 0x1E BattleAICmd_if_user_can_damage, // 0x1F BattleAICmd_if_user_cant_damage, // 0x20 BattleAICmd_get_turn_count, // 0x21 @@ -472,13 +469,11 @@ static u8 BattleAI_ChooseMoveOrAction_Singles(void) return consideredMoveArray[Random() % numOfBestMoves]; } -#ifdef NONMATCHING static u8 BattleAI_ChooseMoveOrAction_Doubles(void) { s32 i; s32 j; s32 scriptsToRun; - s16 mostMovePoints; s16 bestMovePointsForTarget[4]; s8 mostViableTargetsArray[4]; u8 actionOrMoveIndex[4]; @@ -486,27 +481,27 @@ static u8 BattleAI_ChooseMoveOrAction_Doubles(void) u8 mostViableMovesIndices[4]; s32 mostViableTargetsNo; s32 mostViableMovesNo; + s16 mostMovePoints; - for (i = 0; i < 4; i++) //08130D14 + for (i = 0; i < 4; i++) { if (i == sBank_AI || gBattleMons[i].hp == 0) { - //_08130D2E actionOrMoveIndex[i] = -1; bestMovePointsForTarget[i] = -1; } - //_08130D48 else { if (gBattleTypeFlags & BATTLE_TYPE_PALACE) BattleAI_SetupAIData(gBattleStruct->field_92 >> 4); else BattleAI_SetupAIData(0xF); - //_08130D76 + gBankTarget = i; - if ((i & 1) != (sBank_AI & 1)) + + if ((i & BIT_SIDE) != (sBank_AI & BIT_SIDE)) RecordLastUsedMoveByTarget(); - //_08130D90 + AI_THINKING_STRUCT->aiLogicId = 0; AI_THINKING_STRUCT->movesetIndex = 0; scriptsToRun = AI_THINKING_STRUCT->aiFlags; @@ -521,14 +516,12 @@ static u8 BattleAI_ChooseMoveOrAction_Doubles(void) AI_THINKING_STRUCT->aiLogicId++; AI_THINKING_STRUCT->movesetIndex = 0; } - //_08130DD8 if (AI_THINKING_STRUCT->aiAction & AI_ACTION_FLEE) actionOrMoveIndex[i] = 4; else if (AI_THINKING_STRUCT->aiAction & AI_ACTION_WATCH) actionOrMoveIndex[i] = 5; else { - //_08130E10 mostViableMovesScores[0] = AI_THINKING_STRUCT->score[0]; mostViableMovesIndices[0] = 0; mostViableMovesNo = 1; @@ -555,17 +548,20 @@ static u8 BattleAI_ChooseMoveOrAction_Doubles(void) bestMovePointsForTarget[i] = mostViableMovesScores[0]; // don't use a move against ally if it has less than 100 pts - if (i == (sBank_AI ^ 2) && bestMovePointsForTarget[i] < 100) + if (i == (sBank_AI ^ BIT_MON) && bestMovePointsForTarget[i] < 100) + { bestMovePointsForTarget[i] = -1; + mostViableMovesScores[0] = mostViableMovesScores[0]; // needed to match + } + } } - //_08130EAE } - //08130EC4 mostMovePoints = bestMovePointsForTarget[0]; mostViableTargetsArray[0] = 0; mostViableTargetsNo = 1; + for (i = 1; i < 4; i++) { //_08130EDA @@ -582,305 +578,10 @@ static u8 BattleAI_ChooseMoveOrAction_Doubles(void) mostViableTargetsNo = 1; } } + gBankTarget = mostViableTargetsArray[Random() % mostViableTargetsNo]; return actionOrMoveIndex[gBankTarget]; } -#else -__attribute__((naked)) -static u8 BattleAI_ChooseMoveOrAction_Doubles(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, 0x24\n\ - movs r0, 0\n\ - mov r8, r0\n\ - mov r1, sp\n\ - adds r1, 0xC\n\ - str r1, [sp, 0x1C]\n\ - mov r2, sp\n\ - adds r2, 0x8\n\ - str r2, [sp, 0x18]\n\ - str r1, [sp, 0x20]\n\ - mov r10, sp\n\ -_08130D14:\n\ - ldr r0, =sBank_AI\n\ - ldrb r0, [r0]\n\ - cmp r8, r0\n\ - beq _08130D2E\n\ - movs r0, 0x58\n\ - mov r7, r8\n\ - muls r7, r0\n\ - adds r0, r7, 0\n\ - ldr r1, =gBattleMons\n\ - adds r0, r1\n\ - ldrh r0, [r0, 0x28]\n\ - cmp r0, 0\n\ - bne _08130D48\n\ -_08130D2E:\n\ - movs r0, 0xFF\n\ - ldr r2, [sp, 0x20]\n\ - strb r0, [r2]\n\ - ldr r0, =0x0000ffff\n\ - mov r7, r10\n\ - strh r0, [r7]\n\ - b _08130EAE\n\ - .pool\n\ -_08130D48:\n\ - ldr r0, =gBattleTypeFlags\n\ - ldr r0, [r0]\n\ - movs r1, 0x80\n\ - lsls r1, 10\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08130D70\n\ - ldr r0, =gBattleStruct\n\ - ldr r0, [r0]\n\ - adds r0, 0x92\n\ - ldrb r0, [r0]\n\ - lsrs r0, 4\n\ - bl BattleAI_SetupAIData\n\ - b _08130D76\n\ - .pool\n\ -_08130D70:\n\ - movs r0, 0xF\n\ - bl BattleAI_SetupAIData\n\ -_08130D76:\n\ - ldr r0, =gBankTarget\n\ - mov r1, r8\n\ - strb r1, [r0]\n\ - movs r1, 0x1\n\ - mov r2, r8\n\ - ands r2, r1\n\ - ldr r0, =sBank_AI\n\ - ldrb r0, [r0]\n\ - ands r1, r0\n\ - cmp r2, r1\n\ - beq _08130D90\n\ - bl RecordLastUsedMoveByTarget\n\ -_08130D90:\n\ - ldr r2, =gBattleResources\n\ - ldr r0, [r2]\n\ - ldr r0, [r0, 0x14]\n\ - movs r1, 0\n\ - strb r1, [r0, 0x11]\n\ - ldr r0, [r2]\n\ - ldr r0, [r0, 0x14]\n\ - strb r1, [r0, 0x1]\n\ - ldr r0, [r2]\n\ - ldr r0, [r0, 0x14]\n\ - ldr r4, [r0, 0xC]\n\ - mov r9, r2\n\ - cmp r4, 0\n\ - beq _08130DD8\n\ - mov r5, r9\n\ - movs r6, 0\n\ -_08130DB0:\n\ - movs r0, 0x1\n\ - ands r0, r4\n\ - cmp r0, 0\n\ - beq _08130DC2\n\ - ldr r0, [r5]\n\ - ldr r0, [r0, 0x14]\n\ - strb r6, [r0]\n\ - bl BattleAI_DoAIProcessing\n\ -_08130DC2:\n\ - asrs r4, 1\n\ - ldr r0, [r5]\n\ - ldr r1, [r0, 0x14]\n\ - ldrb r0, [r1, 0x11]\n\ - adds r0, 0x1\n\ - strb r0, [r1, 0x11]\n\ - ldr r0, [r5]\n\ - ldr r0, [r0, 0x14]\n\ - strb r6, [r0, 0x1]\n\ - cmp r4, 0\n\ - bne _08130DB0\n\ -_08130DD8:\n\ - mov r2, r9\n\ - ldr r0, [r2]\n\ - ldr r3, [r0, 0x14]\n\ - ldrb r1, [r3, 0x10]\n\ - movs r0, 0x2\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08130DFC\n\ - movs r0, 0x4\n\ - ldr r7, [sp, 0x20]\n\ - strb r0, [r7]\n\ - b _08130EAE\n\ - .pool\n\ -_08130DFC:\n\ - movs r0, 0x4\n\ - ands r0, r1\n\ - lsls r0, 24\n\ - lsrs r2, r0, 24\n\ - cmp r2, 0\n\ - beq _08130E10\n\ - movs r0, 0x5\n\ - ldr r1, [sp, 0x20]\n\ - strb r0, [r1]\n\ - b _08130EAE\n\ -_08130E10:\n\ - add r1, sp, 0x10\n\ - ldrb r0, [r3, 0x4]\n\ - strb r0, [r1]\n\ - add r0, sp, 0x14\n\ - strb r2, [r0]\n\ - movs r5, 0x1\n\ - movs r3, 0x1\n\ - adds r6, r1, 0\n\ - ldr r0, =sBank_AI\n\ - ldrb r1, [r0]\n\ - movs r0, 0x58\n\ - muls r0, r1\n\ - ldr r2, =gBattleMons + 0xC\n\ - adds r0, r2\n\ - adds r4, r0, 0x2\n\ - add r7, sp, 0x14\n\ -_08130E30:\n\ - ldrh r0, [r4]\n\ - cmp r0, 0\n\ - beq _08130E72\n\ - ldrb r1, [r6]\n\ - mov r2, r9\n\ - ldr r0, [r2]\n\ - ldr r0, [r0, 0x14]\n\ - adds r0, 0x4\n\ - adds r2, r0, r3\n\ - movs r0, 0\n\ - ldrsb r0, [r2, r0]\n\ - cmp r1, r0\n\ - bne _08130E56\n\ - adds r0, r6, r5\n\ - ldrb r1, [r2]\n\ - strb r1, [r0]\n\ - adds r0, r7, r5\n\ - strb r3, [r0]\n\ - adds r5, 0x1\n\ -_08130E56:\n\ - ldrb r1, [r6]\n\ - mov r2, r9\n\ - ldr r0, [r2]\n\ - ldr r0, [r0, 0x14]\n\ - adds r0, 0x4\n\ - adds r2, r0, r3\n\ - movs r0, 0\n\ - ldrsb r0, [r2, r0]\n\ - cmp r1, r0\n\ - bge _08130E72\n\ - ldrb r0, [r2]\n\ - strb r0, [r6]\n\ - strb r3, [r7]\n\ - movs r5, 0x1\n\ -_08130E72:\n\ - adds r4, 0x2\n\ - adds r3, 0x1\n\ - cmp r3, 0x3\n\ - ble _08130E30\n\ - bl Random\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - adds r1, r5, 0\n\ - bl __modsi3\n\ - add r0, sp\n\ - adds r0, 0x14\n\ - ldrb r0, [r0]\n\ - ldr r7, [sp, 0x20]\n\ - strb r0, [r7]\n\ - ldrb r2, [r6]\n\ - mov r0, r10\n\ - strh r2, [r0]\n\ - ldr r0, =sBank_AI\n\ - ldrb r1, [r0]\n\ - movs r0, 0x2\n\ - eors r0, r1\n\ - cmp r8, r0\n\ - bne _08130EAE\n\ - cmp r2, 0x63\n\ - bgt _08130EAE\n\ - ldr r0, =0x0000ffff\n\ - mov r1, r10\n\ - strh r0, [r1]\n\ -_08130EAE:\n\ - ldr r2, [sp, 0x20]\n\ - adds r2, 0x1\n\ - str r2, [sp, 0x20]\n\ - movs r7, 0x2\n\ - add r10, r7\n\ - movs r0, 0x1\n\ - add r8, r0\n\ - mov r1, r8\n\ - cmp r1, 0x3\n\ - bgt _08130EC4\n\ - b _08130D14\n\ -_08130EC4:\n\ - mov r0, sp\n\ - ldrh r5, [r0]\n\ - movs r0, 0\n\ - ldr r2, [sp, 0x18]\n\ - strb r0, [r2]\n\ - movs r4, 0x1\n\ - mov r8, r4\n\ - ldr r6, =gBankTarget\n\ - ldr r3, [sp, 0x18]\n\ - mov r1, sp\n\ - adds r1, 0x2\n\ -_08130EDA:\n\ - lsls r0, r5, 16\n\ - asrs r2, r0, 16\n\ - movs r7, 0\n\ - ldrsh r0, [r1, r7]\n\ - cmp r2, r0\n\ - bne _08130EEE\n\ - adds r0, r3, r4\n\ - mov r7, r8\n\ - strb r7, [r0]\n\ - adds r4, 0x1\n\ -_08130EEE:\n\ - movs r7, 0\n\ - ldrsh r0, [r1, r7]\n\ - cmp r2, r0\n\ - bge _08130EFE\n\ - ldrh r5, [r1]\n\ - mov r0, r8\n\ - strb r0, [r3]\n\ - movs r4, 0x1\n\ -_08130EFE:\n\ - adds r1, 0x2\n\ - movs r2, 0x1\n\ - add r8, r2\n\ - mov r7, r8\n\ - cmp r7, 0x3\n\ - ble _08130EDA\n\ - bl Random\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - adds r1, r4, 0\n\ - bl __modsi3\n\ - ldr r1, [sp, 0x18]\n\ - adds r0, r1, r0\n\ - ldrb r0, [r0]\n\ - strb r0, [r6]\n\ - ldrb r0, [r6]\n\ - ldr r2, [sp, 0x1C]\n\ - adds r0, r2, r0\n\ - ldrb r0, [r0]\n\ - add sp, 0x24\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r1}\n\ - bx r1\n\ - .pool\n\ - .syntax divided\n"); -} -#endif static void BattleAI_DoAIProcessing(void) { @@ -888,7 +589,7 @@ static void BattleAI_DoAIProcessing(void) { switch (AI_THINKING_STRUCT->aiState) { - case AIState_DoNotProcess: //Needed to match. + case AIState_DoNotProcess: // Needed to match. break; case AIState_SettingUp: gAIScriptPtr = gBattleAI_ScriptsTable[AI_THINKING_STRUCT->aiLogicId]; // set AI ptr to logic ID. @@ -904,7 +605,7 @@ static void BattleAI_DoAIProcessing(void) break; case AIState_Processing: if (AI_THINKING_STRUCT->moveConsidered != 0) - sBattleAICmdTable[*gAIScriptPtr](); // run AI command. + sBattleAICmdTable[*gAIScriptPtr](); // Run AI command. else { AI_THINKING_STRUCT->score[AI_THINKING_STRUCT->movesetIndex] = 0; @@ -934,7 +635,7 @@ static void RecordLastUsedMoveByTarget(void) { if (gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] == gLastUsedMovesByBanks[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] != gLastUsedMovesByBanks[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]; @@ -1261,7 +962,7 @@ static void BattleAICmd_if_not_equal(void) static void BattleAICmd_if_less_than_32(void) { - u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1); + const u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1); if (AI_THINKING_STRUCT->funcResult < *temp) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5); @@ -1271,7 +972,7 @@ static void BattleAICmd_if_less_than_32(void) static void BattleAICmd_if_more_than_32(void) { - u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1); + const u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1); if (AI_THINKING_STRUCT->funcResult > *temp) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5); @@ -1281,7 +982,7 @@ static void BattleAICmd_if_more_than_32(void) static void BattleAICmd_if_equal_32(void) { - u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1); + const u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1); if (AI_THINKING_STRUCT->funcResult == *temp) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5); @@ -1291,7 +992,7 @@ static void BattleAICmd_if_equal_32(void) static void BattleAICmd_if_not_equal_32(void) { - u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1); + const u8 *temp = AIScriptReadPtr(gAIScriptPtr + 1); if (AI_THINKING_STRUCT->funcResult != *temp) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5); @@ -1321,7 +1022,7 @@ static void BattleAICmd_if_not_move(void) static void BattleAICmd_if_in_bytes(void) { - u8 *ptr = AIScriptReadPtr(gAIScriptPtr + 1); + const u8 *ptr = AIScriptReadPtr(gAIScriptPtr + 1); while (*ptr != 0xFF) { @@ -1337,7 +1038,7 @@ static void BattleAICmd_if_in_bytes(void) static void BattleAICmd_if_not_in_bytes(void) { - u8 *ptr = AIScriptReadPtr(gAIScriptPtr + 1); + const u8 *ptr = AIScriptReadPtr(gAIScriptPtr + 1); while (*ptr != 0xFF) { @@ -1351,9 +1052,9 @@ static void BattleAICmd_if_not_in_bytes(void) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 5); } -static void BattleAICmd_if_in_words(void) +static void BattleAICmd_if_in_hwords(void) { - u16 *ptr = (u16 *)AIScriptReadPtr(gAIScriptPtr + 1); + const u16 *ptr = (const u16 *)AIScriptReadPtr(gAIScriptPtr + 1); while (*ptr != 0xFFFF) { @@ -1367,9 +1068,9 @@ static void BattleAICmd_if_in_words(void) gAIScriptPtr += 9; } -static void BattleAICmd_if_not_in_words(void) +static void BattleAICmd_if_not_in_hwords(void) { - u16 *ptr = (u16 *)AIScriptReadPtr(gAIScriptPtr + 1); + const u16 *ptr = (u16 *)AIScriptReadPtr(gAIScriptPtr + 1); while (*ptr != 0xFFFF) { @@ -1456,9 +1157,9 @@ static u8 BattleAI_GetWantedBank(u8 index) default: return gBankTarget; case AI_USER_PARTNER: - return sBank_AI ^ 2; + return sBank_AI ^ BIT_MON; case AI_TARGET_PARTNER: - return gBankTarget ^ 2; + return gBankTarget ^ BIT_MON; } } @@ -1484,248 +1185,68 @@ static void BattleAICmd_get_last_used_bank_move_power(void) gAIScriptPtr += 1; } -__attribute__((naked)) // not even going to try. if it doesnt match in ruby, it wont match in emerald (yet). static void BattleAICmd_is_most_powerful_move(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, 0x14\n\ - movs r3, 0\n\ - ldr r0, =sDiscouragedPowerfulMoveEffects\n\ - ldrh r1, [r0]\n\ - ldr r5, =0x0000ffff\n\ - ldr r6, =gBattleMoves\n\ - ldr r2, =gBattleResources\n\ - cmp r1, r5\n\ - beq _08131F86\n\ - ldr r0, [r2]\n\ - ldr r0, [r0, 0x14]\n\ - ldrh r1, [r0, 0x2]\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r0, r6\n\ - ldrb r4, [r0]\n\ - ldr r1, =sDiscouragedPowerfulMoveEffects\n\ -_08131F76:\n\ - ldrh r0, [r1]\n\ - cmp r4, r0\n\ - beq _08131F86\n\ - adds r1, 0x2\n\ - adds r3, 0x1\n\ - ldrh r0, [r1]\n\ - cmp r0, r5\n\ - bne _08131F76\n\ -_08131F86:\n\ - ldr r0, [r2]\n\ - ldr r0, [r0, 0x14]\n\ - ldrh r1, [r0, 0x2]\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r0, r6\n\ - ldrb r0, [r0, 0x1]\n\ - cmp r0, 0x1\n\ - bhi _08131F9C\n\ - b _08132126\n\ -_08131F9C:\n\ - lsls r0, r3, 1\n\ - ldr r1, =sDiscouragedPowerfulMoveEffects\n\ - adds r0, r1\n\ - ldrh r3, [r0]\n\ - ldr r0, =0x0000ffff\n\ - cmp r3, r0\n\ - beq _08131FAC\n\ - b _08132126\n\ -_08131FAC:\n\ - ldr r0, =gDynamicBasePower\n\ - movs r1, 0\n\ - strh r1, [r0]\n\ - ldr r0, =gBattleStruct\n\ - ldr r0, [r0]\n\ - strb r1, [r0, 0x13]\n\ - ldr r0, =gBattleScripting\n\ - movs r2, 0x1\n\ - strb r2, [r0, 0xE]\n\ - ldr r0, =gBattleMoveFlags\n\ - strb r1, [r0]\n\ - ldr r0, =gCritMultiplier\n\ - strb r2, [r0]\n\ - movs r6, 0\n\ - mov r9, r3\n\ - ldr r2, =sDiscouragedPowerfulMoveEffects\n\ - ldrh r2, [r2]\n\ - str r2, [sp, 0x10]\n\ -_08131FD0:\n\ - movs r3, 0\n\ - ldr r5, =gBattleMons\n\ - lsls r4, r6, 1\n\ - ldr r7, =sBank_AI\n\ - lsls r0, r6, 2\n\ - mov r8, r0\n\ - adds r1, r6, 0x1\n\ - mov r10, r1\n\ - ldr r2, [sp, 0x10]\n\ - cmp r2, r9\n\ - beq _08132014\n\ - ldr r2, =gBattleMoves\n\ - ldrb r1, [r7]\n\ - movs r0, 0x58\n\ - muls r0, r1\n\ - adds r0, r4, r0\n\ - adds r1, r5, 0\n\ - adds r1, 0xC\n\ - adds r0, r1\n\ - ldrh r1, [r0]\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - adds r0, r2\n\ - ldrb r2, [r0]\n\ - ldr r1, =sDiscouragedPowerfulMoveEffects\n\ -_08132004:\n\ - ldrh r0, [r1]\n\ - cmp r2, r0\n\ - beq _08132014\n\ - adds r1, 0x2\n\ - adds r3, 0x1\n\ - ldrh r0, [r1]\n\ - cmp r0, r9\n\ - bne _08132004\n\ -_08132014:\n\ - ldrb r1, [r7]\n\ - movs r0, 0x58\n\ - muls r0, r1\n\ - adds r0, r4, r0\n\ - adds r1, r5, 0\n\ - adds r1, 0xC\n\ - adds r1, r0, r1\n\ - ldrh r0, [r1]\n\ - cmp r0, 0\n\ - beq _081320C0\n\ - lsls r0, r3, 1\n\ - ldr r2, =sDiscouragedPowerfulMoveEffects\n\ - adds r0, r2\n\ - ldrh r0, [r0]\n\ - cmp r0, r9\n\ - bne _081320C0\n\ - ldr r0, =gBattleMoves\n\ - ldrh r2, [r1]\n\ - lsls r1, r2, 1\n\ - adds r1, r2\n\ - lsls r1, 2\n\ - adds r1, r0\n\ - ldrb r0, [r1, 0x1]\n\ - cmp r0, 0x1\n\ - bls _081320C0\n\ - ldr r5, =gCurrentMove\n\ - strh r2, [r5]\n\ - ldrb r0, [r7]\n\ - ldr r4, =gBankTarget\n\ - ldrb r1, [r4]\n\ - bl AI_CalcDmg\n\ - ldrh r0, [r5]\n\ - ldrb r1, [r7]\n\ - ldrb r2, [r4]\n\ - bl TypeCalc\n\ - mov r4, sp\n\ - add r4, r8\n\ - ldr r2, =gBattleMoveDamage\n\ - ldr r0, =gBattleResources\n\ - ldr r0, [r0]\n\ - ldr r0, [r0, 0x14]\n\ - adds r0, 0x18\n\ - adds r0, r6\n\ - ldrb r1, [r0]\n\ - ldr r0, [r2]\n\ - muls r0, r1\n\ - movs r1, 0x64\n\ - bl __divsi3\n\ - str r0, [r4]\n\ - cmp r0, 0\n\ - bne _081320C8\n\ - movs r0, 0x1\n\ - str r0, [r4]\n\ - b _081320C8\n\ - .pool\n\ -_081320C0:\n\ - mov r1, sp\n\ - add r1, r8\n\ - movs r0, 0\n\ - str r0, [r1]\n\ -_081320C8:\n\ - mov r6, r10\n\ - cmp r6, 0x3\n\ - bgt _081320D0\n\ - b _08131FD0\n\ -_081320D0:\n\ - movs r6, 0\n\ - ldr r2, =gBattleResources\n\ - ldr r0, [r2]\n\ - ldr r0, [r0, 0x14]\n\ - ldrb r0, [r0, 0x1]\n\ - lsls r0, 2\n\ - add r0, sp\n\ - ldr r1, [sp]\n\ - ldr r0, [r0]\n\ - ldr r5, =gAIScriptPtr\n\ - cmp r1, r0\n\ - bgt _08132106\n\ - adds r4, r2, 0\n\ - mov r3, sp\n\ -_081320EC:\n\ - adds r3, 0x4\n\ - adds r6, 0x1\n\ - cmp r6, 0x3\n\ - bgt _08132106\n\ - ldr r0, [r4]\n\ - ldr r0, [r0, 0x14]\n\ - ldrb r0, [r0, 0x1]\n\ - lsls r0, 2\n\ - add r0, sp\n\ - ldr r1, [r3]\n\ - ldr r0, [r0]\n\ - cmp r1, r0\n\ - ble _081320EC\n\ -_08132106:\n\ - cmp r6, 0x4\n\ - bne _0813211C\n\ - ldr r0, [r2]\n\ - ldr r1, [r0, 0x14]\n\ - movs r0, 0x2\n\ - str r0, [r1, 0x8]\n\ - b _08132130\n\ - .pool\n\ -_0813211C:\n\ - ldr r0, [r2]\n\ - ldr r1, [r0, 0x14]\n\ - movs r0, 0x1\n\ - str r0, [r1, 0x8]\n\ - b _08132130\n\ -_08132126:\n\ - ldr r0, [r2]\n\ - ldr r1, [r0, 0x14]\n\ - movs r0, 0\n\ - str r0, [r1, 0x8]\n\ - ldr r5, =gAIScriptPtr\n\ -_08132130:\n\ - ldr r0, [r5]\n\ - adds r0, 0x1\n\ - str r0, [r5]\n\ - add sp, 0x14\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"); + s32 i, checkedMove; + s32 moveDmgs[4]; + + for (i = 0; sDiscouragedPowerfulMoveEffects[i] != 0xFFFF; i++) + { + if (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].effect == sDiscouragedPowerfulMoveEffects[i]) + break; + } + + if (gBattleMoves[AI_THINKING_STRUCT->moveConsidered].power > 1 + && sDiscouragedPowerfulMoveEffects[i] == 0xFFFF) + { + gDynamicBasePower = 0; + *(&gBattleStruct->dynamicMoveType) = 0; + gBattleScripting.dmgMultiplier = 1; + gBattleMoveFlags = 0; + gCritMultiplier = 1; + + for (checkedMove = 0; checkedMove < 4; checkedMove++) + { + for (i = 0; sDiscouragedPowerfulMoveEffects[i] != 0xFFFF; i++) + { + if (gBattleMoves[gBattleMons[sBank_AI].moves[checkedMove]].effect == sDiscouragedPowerfulMoveEffects[i]) + break; + } + + if (gBattleMons[sBank_AI].moves[checkedMove] != MOVE_NONE + && sDiscouragedPowerfulMoveEffects[i] == 0xFFFF + && gBattleMoves[gBattleMons[sBank_AI].moves[checkedMove]].power > 1) + { + gCurrentMove = gBattleMons[sBank_AI].moves[checkedMove]; + AI_CalcDmg(sBank_AI, gBankTarget); + TypeCalc(gCurrentMove, sBank_AI, gBankTarget); + moveDmgs[checkedMove] = gBattleMoveDamage * AI_THINKING_STRUCT->simulatedRNG[checkedMove] / 100; + if (moveDmgs[checkedMove] == 0) + moveDmgs[checkedMove] = 1; + } + else + { + moveDmgs[checkedMove] = 0; + } + } + + for (checkedMove = 0; checkedMove < 4; checkedMove++) + { + if (moveDmgs[checkedMove] > moveDmgs[AI_THINKING_STRUCT->movesetIndex]) + break; + } + + if (checkedMove == 4) + AI_THINKING_STRUCT->funcResult = 2; // is the most powerful + else + AI_THINKING_STRUCT->funcResult = 1; // not most powerful + } + else + { + AI_THINKING_STRUCT->funcResult = 0; // highly discouraged in terms of power + } + + gAIScriptPtr++; } static void BattleAICmd_get_last_used_bank_move(void) @@ -1756,7 +1277,7 @@ static void BattleAICmd_if_arg_not_equal(void) static void BattleAICmd_if_would_go_first(void) { - if (GetWhoStrikesFirst(sBank_AI, gBankTarget, 1) == gAIScriptPtr[1]) + if (GetWhoStrikesFirst(sBank_AI, gBankTarget, TRUE) == gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; @@ -1764,7 +1285,7 @@ static void BattleAICmd_if_would_go_first(void) static void BattleAICmd_if_would_not_go_first(void) { - if (GetWhoStrikesFirst(sBank_AI, gBankTarget, 1) != gAIScriptPtr[1]) + if (GetWhoStrikesFirst(sBank_AI, gBankTarget, TRUE) != gAIScriptPtr[1]) gAIScriptPtr = AIScriptReadPtr(gAIScriptPtr + 2); else gAIScriptPtr += 6; @@ -1792,7 +1313,7 @@ static void BattleAICmd_count_alive_pokemon(void) else index = gBankTarget; - if (GetBankSide(index) == 0) + if (GetBankSide(index) == SIDE_PLAYER) party = gPlayerParty; else party = gEnemyParty; @@ -1896,11 +1417,10 @@ static void BattleAICmd_get_ability(void) gAIScriptPtr += 2; } -#ifdef NONMATCHING static void BattleAICmd_check_ability(void) { - u8 bank = BattleAI_GetWantedBank(gAIScriptPtr[1]); - u8 ability = gAIScriptPtr[2]; + u32 bank = BattleAI_GetWantedBank(gAIScriptPtr[1]); + u32 ability = gAIScriptPtr[2]; if (gAIScriptPtr[1] == AI_TARGET || gAIScriptPtr[1] == AI_TARGET_PARTNER) { @@ -1920,8 +1440,9 @@ static void BattleAICmd_check_ability(void) { if (gBaseStats[gBattleMons[bank].species].ability2 != ABILITY_NONE) { - if (gBaseStats[gBattleMons[bank].species].ability1 != ability - && gBaseStats[gBattleMons[bank].species].ability2 != ability) + u8 abilityDummyVariable = ability; // needed to match + if (gBaseStats[gBattleMons[bank].species].ability1 != abilityDummyVariable + && gBaseStats[gBattleMons[bank].species].ability2 != abilityDummyVariable) { ability = gBaseStats[gBattleMons[bank].species].ability1; } @@ -1957,137 +1478,6 @@ static void BattleAICmd_check_ability(void) } gAIScriptPtr += 3; } -#else -__attribute__((naked)) -static void BattleAICmd_check_ability(void) -{ - asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - ldr r4, =gAIScriptPtr\n\ - ldr r0, [r4]\n\ - ldrb r0, [r0, 0x1]\n\ - bl BattleAI_GetWantedBank\n\ - lsls r0, 24\n\ - lsrs r5, r0, 24\n\ - ldr r0, [r4]\n\ - ldrb r3, [r0, 0x2]\n\ - ldrb r0, [r0, 0x1]\n\ - cmp r0, 0\n\ - beq _0813253A\n\ - cmp r0, 0x2\n\ - bne _081325BC\n\ -_0813253A:\n\ - ldr r0, =gBattleResources\n\ - ldr r4, [r0]\n\ - ldr r1, [r4, 0x18]\n\ - adds r1, 0x40\n\ - adds r2, r1, r5\n\ - ldrb r1, [r2]\n\ - adds r6, r0, 0\n\ - cmp r1, 0\n\ - beq _0813255C\n\ - adds r3, r1, 0\n\ - ldr r0, [r4, 0x14]\n\ - str r3, [r0, 0x8]\n\ - b _081325CA\n\ - .pool\n\ -_0813255C:\n\ - ldr r1, =gBattleMons\n\ - movs r0, 0x58\n\ - muls r0, r5\n\ - adds r4, r0, r1\n\ - adds r0, r4, 0\n\ - adds r0, 0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, 0x17\n\ - beq _08132576\n\ - cmp r0, 0x2A\n\ - beq _08132576\n\ - cmp r0, 0x47\n\ - bne _08132588\n\ -_08132576:\n\ - movs r0, 0x58\n\ - muls r0, r5\n\ - adds r0, r1\n\ - adds r0, 0x20\n\ - ldrb r3, [r0]\n\ - b _081325CA\n\ - .pool\n\ -_08132588:\n\ - ldr r2, =gBaseStats\n\ - ldrh r1, [r4]\n\ - lsls r0, r1, 3\n\ - subs r0, r1\n\ - lsls r0, 2\n\ - adds r1, r0, r2\n\ - ldrb r4, [r1, 0x16]\n\ - cmp r4, 0\n\ - beq _081325B8\n\ - ldrb r2, [r1, 0x17]\n\ - cmp r2, 0\n\ - beq _081325B4\n\ - adds r0, r3, 0\n\ - cmp r4, r0\n\ - beq _081325CE\n\ - cmp r2, r0\n\ - beq _081325CE\n\ - adds r3, r4, 0\n\ - b _081325CA\n\ - .pool\n\ -_081325B4:\n\ - ldrb r3, [r1, 0x16]\n\ - b _081325CA\n\ -_081325B8:\n\ - ldrb r3, [r1, 0x17]\n\ - b _081325CA\n\ -_081325BC:\n\ - ldr r1, =gBattleMons\n\ - movs r0, 0x58\n\ - muls r0, r5\n\ - adds r0, r1\n\ - adds r0, 0x20\n\ - ldrb r3, [r0]\n\ - ldr r6, =gBattleResources\n\ -_081325CA:\n\ - cmp r3, 0\n\ - bne _081325E8\n\ -_081325CE:\n\ - ldr r0, [r6]\n\ - ldr r1, [r0, 0x14]\n\ - movs r0, 0x2\n\ - str r0, [r1, 0x8]\n\ - ldr r2, =gAIScriptPtr\n\ - b _08132608\n\ - .pool\n\ -_081325E8:\n\ - ldr r0, =gAIScriptPtr\n\ - ldr r1, [r0]\n\ - adds r2, r0, 0\n\ - ldrb r1, [r1, 0x2]\n\ - cmp r3, r1\n\ - bne _08132600\n\ - ldr r0, [r6]\n\ - ldr r1, [r0, 0x14]\n\ - movs r0, 0x1\n\ - b _08132606\n\ - .pool\n\ -_08132600:\n\ - ldr r0, [r6]\n\ - ldr r1, [r0, 0x14]\n\ - movs r0, 0\n\ -_08132606:\n\ - str r0, [r1, 0x8]\n\ -_08132608:\n\ - ldr r0, [r2]\n\ - adds r0, 0x3\n\ - str r0, [r2]\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ - .pool\n\ - .syntax divided"); -} -#endif static void BattleAICmd_get_highest_type_effectiveness(void) { @@ -2184,7 +1574,7 @@ static void BattleAICmd_if_status_in_party(void) switch(gAIScriptPtr[1]) { - case 1: + case AI_USER: index = sBank_AI; break; default: @@ -2397,7 +1787,7 @@ static void BattleAICmd_if_cant_faint(void) static void BattleAICmd_if_has_move(void) { int i; - u16 *temp_ptr = (u16 *)(gAIScriptPtr + 2); + const u16 *temp_ptr = (u16 *)(gAIScriptPtr + 2); switch(gAIScriptPtr[1]) { @@ -2464,7 +1854,7 @@ static void BattleAICmd_if_has_move(void) static void BattleAICmd_if_dont_have_move(void) { int i; - u16 *temp_ptr = (u16 *)(gAIScriptPtr + 2); + const u16 *temp_ptr = (u16 *)(gAIScriptPtr + 2); switch(gAIScriptPtr[1]) { @@ -2631,7 +2021,7 @@ static void BattleAICmd_if_curr_move_disabled_or_encored(void) static void BattleAICmd_flee(void) { - AI_THINKING_STRUCT->aiAction |= (AI_ACTION_DONE | AI_ACTION_FLEE | AI_ACTION_DO_NOT_ATTACK); // what matters is UNK2 being enabled. + AI_THINKING_STRUCT->aiAction |= (AI_ACTION_DONE | AI_ACTION_FLEE | AI_ACTION_DO_NOT_ATTACK); } static void BattleAICmd_if_random_100(void) @@ -2646,7 +2036,7 @@ static void BattleAICmd_if_random_100(void) static void BattleAICmd_watch(void) { - AI_THINKING_STRUCT->aiAction |= (AI_ACTION_DONE | AI_ACTION_WATCH | AI_ACTION_DO_NOT_ATTACK); // what matters is UNK3 being enabled. + AI_THINKING_STRUCT->aiAction |= (AI_ACTION_DONE | AI_ACTION_WATCH | AI_ACTION_DO_NOT_ATTACK); } static void BattleAICmd_get_hold_effect(void) @@ -2675,7 +2065,7 @@ static void BattleAICmd_if_holds_item(void) u16 item; u8 var1, var2; - if ((bank & 1) == (sBank_AI & 1)) + if ((bank & BIT_SIDE) == (sBank_AI & BIT_SIDE)) item = gBattleMons[bank].item; else item = BATTLE_HISTORY->itemEffects[bank]; @@ -2752,7 +2142,7 @@ static void BattleAICmd_get_used_held_item(void) #ifdef NONMATCHING AI_THINKING_STRUCT->funcResult = gBattleStruct->usedHeldItems[bank]; #else - AI_THINKING_STRUCT->funcResult = *(u8*)((u8*)(gBattleStruct) + 0xB8 + (bank * 2)); + AI_THINKING_STRUCT->funcResult = *(u8*)((u8*)(gBattleStruct) + offsetof(struct BattleStruct, usedHeldItems) + (bank * 2)); #endif // NONMATCHING gAIScriptPtr += 2; -- cgit v1.2.3 From 7b690dbe3a71f800b7e112a75559e9db6ac1e8bc Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 9 Oct 2017 13:48:41 +0200 Subject: add save location header, change static names --- include/save_location.h | 9 +++++++++ src/save_location.c | 13 +++++++------ 2 files changed, 16 insertions(+), 6 deletions(-) create mode 100644 include/save_location.h diff --git a/include/save_location.h b/include/save_location.h new file mode 100644 index 000000000..95b3a7d7d --- /dev/null +++ b/include/save_location.h @@ -0,0 +1,9 @@ +#ifndef GUARD_SAVE_LOCATION_H +#define GUARD_SAVE_LOCATION_H + +bool32 sub_81AFCEC(void); +void TrySetMapSaveWarpStatus(void); +void sub_81AFDA0(void); +void sub_81AFDD0(void); + +#endif // GUARD_SAVE_LOCATION_H diff --git a/src/save_location.c b/src/save_location.c index 87067e14d..61a5fd30d 100755 --- a/src/save_location.c +++ b/src/save_location.c @@ -1,4 +1,5 @@ #include "global.h" +#include "save_location.h" #include "map_constants.h" // used to make the list defines a little less ugly. @@ -26,7 +27,7 @@ static bool32 IsCurMapInLocationList(const u16 *list) } // TODO: Not require a packed u16 array for these lists -static const u16 gSaveLocationPokeCenterList[] = +static const u16 sSaveLocationPokeCenterList[] = { MAP(OLDALE_TOWN_POKEMON_CENTER_1F), MAP(OLDALE_TOWN_POKEMON_CENTER_2F), @@ -71,10 +72,10 @@ static const u16 gSaveLocationPokeCenterList[] = static bool32 IsCurMapPokeCenter(void) { - return IsCurMapInLocationList(gSaveLocationPokeCenterList); + return IsCurMapInLocationList(sSaveLocationPokeCenterList); } -static const u16 gSaveLocationReloadLocList[] = // there's only 1 location, and it's presumed its for the save reload feature for battle tower +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), 0xFFFF, @@ -82,18 +83,18 @@ static const u16 gSaveLocationReloadLocList[] = // there's only 1 location, and static bool32 IsCurMapReloadLocation(void) { - return IsCurMapInLocationList(gSaveLocationReloadLocList); + return IsCurMapInLocationList(sSaveLocationReloadLocList); } // nulled out list. unknown what this would have been -static const u16 gUnknown_0861440E[] = +static const u16 sUnknown_0861440E[] = { 0xFFFF, }; bool32 sub_81AFCEC(void) { - return IsCurMapInLocationList(gUnknown_0861440E); + return IsCurMapInLocationList(sUnknown_0861440E); } static void TrySetPokeCenterWarpStatus(void) -- cgit v1.2.3 From fdfbbb49518eb020a7d525039ab598629c1c24b5 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 9 Oct 2017 13:55:31 +0200 Subject: add diploma header and static names fix --- include/diploma.h | 6 ++++++ src/diploma.c | 29 +++++++++++++++-------------- 2 files changed, 21 insertions(+), 14 deletions(-) create mode 100644 include/diploma.h diff --git a/include/diploma.h b/include/diploma.h new file mode 100644 index 000000000..8d730fa05 --- /dev/null +++ b/include/diploma.h @@ -0,0 +1,6 @@ +#ifndef GUARD_DIPLOMA_H +#define GUARD_DIPLOMA_H + +void CB2_ShowDiploma(void); + +#endif // GUARD_DIPLOMA_H diff --git a/src/diploma.c b/src/diploma.c index f2cbcabb7..d4a269757 100755 --- a/src/diploma.c +++ b/src/diploma.c @@ -1,4 +1,5 @@ #include "global.h" +#include "diploma.h" #include "palette.h" #include "main.h" #include "gpu_regs.h" @@ -33,7 +34,7 @@ static void InitDiplomaBg(void); static void InitDiplomaWindow(void); static void PrintDiplomaText(u8 *, u8, u8); -EWRAM_DATA void **gDiplomaTilemapPtr = {NULL}; +EWRAM_DATA static void **sDiplomaTilemapPtr = {NULL}; static void VBlankCB(void) { @@ -42,14 +43,14 @@ static void VBlankCB(void) TransferPlttBuffer(); } -static const u16 gDiplomaPalettes[][16] = +static const u16 sDiplomaPalettes[][16] = { INCBIN_U16("graphics/misc/diploma_national.gbapal"), INCBIN_U16("graphics/misc/diploma_hoenn.gbapal"), }; -static const u8 gDiplomaTilemap[] = INCBIN_U8("graphics/misc/diploma_map.bin.lz"); -static const u8 gDiplomaTiles[] = INCBIN_U8("graphics/misc/diploma.4bpp.lz"); +static const u8 sDiplomaTilemap[] = INCBIN_U8("graphics/misc/diploma_map.bin.lz"); +static const u8 sDiplomaTiles[] = INCBIN_U8("graphics/misc/diploma.4bpp.lz"); void CB2_ShowDiploma(void) { @@ -76,15 +77,15 @@ void CB2_ShowDiploma(void) ResetSpriteData(); ResetPaletteFade(); FreeAllSpritePalettes(); - LoadPalette(gDiplomaPalettes, 0, 64); - gDiplomaTilemapPtr = malloc(0x1000); + LoadPalette(sDiplomaPalettes, 0, 64); + sDiplomaTilemapPtr = malloc(0x1000); InitDiplomaBg(); InitDiplomaWindow(); reset_temp_tile_data_buffers(); - decompress_and_copy_tile_data_to_vram(1, &gDiplomaTiles, 0, 0, 0); + decompress_and_copy_tile_data_to_vram(1, &sDiplomaTiles, 0, 0, 0); while (free_temp_tile_data_buffers_if_possible()) ; - LZDecompressWram(&gDiplomaTilemap, gDiplomaTilemapPtr); + LZDecompressWram(&sDiplomaTilemap, sDiplomaTilemapPtr); CopyBgTilemapBufferToVram(1); DisplayDiplomaText(); BlendPalettes(-1, 16, 0); @@ -122,7 +123,7 @@ static void Task_DiplomaFadeOut(u8 taskId) { if (!gPaletteFade.active) { - Free(gDiplomaTilemapPtr); + Free(sDiplomaTilemapPtr); FreeAllWindowBuffers(); DestroyTask(taskId); SetMainCallback2(sub_80861E8); @@ -147,7 +148,7 @@ static void DisplayDiplomaText(void) CopyWindowToVram(0, 3); } -static const struct BgTemplate gDiplomaBgTemplates[2] = +static const struct BgTemplate sDiplomaBgTemplates[2] = { { .bg = 0, @@ -172,8 +173,8 @@ static const struct BgTemplate gDiplomaBgTemplates[2] = static void InitDiplomaBg(void) { ResetBgsAndClearDma3BusyFlags(0); - InitBgsFromTemplates(0, gDiplomaBgTemplates, 2); - SetBgTilemapBuffer(1, gDiplomaTilemapPtr); + InitBgsFromTemplates(0, sDiplomaBgTemplates, 2); + SetBgTilemapBuffer(1, sDiplomaTilemapPtr); SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); ShowBg(0); ShowBg(1); @@ -182,7 +183,7 @@ static void InitDiplomaBg(void) SetGpuReg(REG_OFFSET_BLDY, DISPCNT_MODE_0); } -static const struct WindowTemplate gDiplomaWinTemplates[2] = +static const struct WindowTemplate sDiplomaWinTemplates[2] = { { .priority = 0, @@ -198,7 +199,7 @@ static const struct WindowTemplate gDiplomaWinTemplates[2] = static void InitDiplomaWindow(void) { - InitWindows(gDiplomaWinTemplates); + InitWindows(sDiplomaWinTemplates); DeactivateAllTextPrinters(); LoadPalette(gUnknown_0860F074, 0xF0, 0x20); FillWindowPixelBuffer(0, 0); -- cgit v1.2.3 From 9d4acb9635b3b74d5ae4edee70d673f49c0aab74 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 9 Oct 2017 15:40:08 +0200 Subject: some work on international string util --- asm/international_string_util.s | 121 ------------------------------------ include/international_string_util.h | 20 ++++++ ld_script.txt | 1 + src/coins.c | 2 +- src/international_string_util.c | 57 +++++++++++++++++ 5 files changed, 79 insertions(+), 122 deletions(-) create mode 100644 include/international_string_util.h create mode 100644 src/international_string_util.c diff --git a/asm/international_string_util.s b/asm/international_string_util.s index 7c52fc41a..fe04a1396 100755 --- a/asm/international_string_util.s +++ b/asm/international_string_util.s @@ -5,127 +5,6 @@ .text - thumb_func_start GetStringCenterAlignXOffset -@ s32 GetStringCenterAlignXOffset(u8 fontId, u8 *str, s32 totalWidth) -GetStringCenterAlignXOffset: @ 81DB35C - push {lr} - movs r3, 0 - bl GetStringCenterAlignXOffsetWithLetterSpacing - pop {r1} - bx r1 - thumb_func_end GetStringCenterAlignXOffset - - thumb_func_start GetStringRightAlignXOffset -@ s32 GetStringRightAlignXOffset(u8 fontId, u8 *str, s32 totalWidth) -GetStringRightAlignXOffset: @ 81DB368 - push {lr} - movs r3, 0 - bl GetStringWidthDifference - pop {r1} - bx r1 - thumb_func_end GetStringRightAlignXOffset - - thumb_func_start GetStringCenterAlignXOffsetWithLetterSpacing -@ s32 GetStringCenterAlignXOffsetWithLetterSpacing(u8 fontId, u8 *str, s32 totalWidth, s16 letterSpacing) -GetStringCenterAlignXOffsetWithLetterSpacing: @ 81DB374 - push {lr} - bl GetStringWidthDifference - lsrs r1, r0, 31 - adds r0, r1 - asrs r0, 1 - pop {r1} - bx r1 - thumb_func_end GetStringCenterAlignXOffsetWithLetterSpacing - - thumb_func_start GetStringWidthDifference -@ s32 GetStringWidthDifference(u8 fontId, u8 *str, s32 totalWidth, s16 letterSpacing) -GetStringWidthDifference: @ 81DB384 - push {r4,lr} - adds r4, r2, 0 - adds r2, r3, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r2, 16 - asrs r2, 16 - bl GetStringWidth - cmp r4, r0 - bgt _081DB39E - movs r0, 0 - b _081DB3A0 -_081DB39E: - subs r0, r4, r0 -_081DB3A0: - pop {r4} - pop {r1} - bx r1 - thumb_func_end GetStringWidthDifference - - thumb_func_start GetMaxWidthInMenuTable -GetMaxWidthInMenuTable: @ 81DB3A8 - push {r4-r6,lr} - movs r6, 0 - cmp r6, r1 - bge _081DB3CC - adds r5, r0, 0 - adds r4, r1, 0 -_081DB3B4: - ldr r1, [r5] - movs r0, 0x1 - movs r2, 0 - bl GetStringWidth - cmp r0, r6 - ble _081DB3C4 - adds r6, r0, 0 -_081DB3C4: - adds r5, 0x8 - subs r4, 0x1 - cmp r4, 0 - bne _081DB3B4 -_081DB3CC: - adds r0, r6, 0 - bl convert_pixel_width_to_tile_width - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end GetMaxWidthInMenuTable - - thumb_func_start sub_81DB3D8 -sub_81DB3D8: @ 81DB3D8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r7, r1, 0 - adds r5, r2, 0 - movs r6, 0 - movs r4, 0 - cmp r6, r5 - bge _081DB40A -_081DB3EC: - adds r0, r7, r4 - ldrb r0, [r0] - lsls r0, 3 - add r0, r8 - ldr r1, [r0] - movs r0, 0x1 - movs r2, 0 - bl GetStringWidth - cmp r0, r6 - ble _081DB404 - adds r6, r0, 0 -_081DB404: - adds r4, 0x1 - cmp r4, r5 - blt _081DB3EC -_081DB40A: - adds r0, r6, 0 - bl convert_pixel_width_to_tile_width - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81DB3D8 thumb_func_start sub_81DB41C sub_81DB41C: @ 81DB41C diff --git a/include/international_string_util.h b/include/international_string_util.h new file mode 100644 index 000000000..2aa3e18f8 --- /dev/null +++ b/include/international_string_util.h @@ -0,0 +1,20 @@ +#ifndef GUARD_INTERNATIONAL_STRING_UTIL_H +#define GUARD_INTERNATIONAL_STRING_UTIL_H + +s32 GetStringCenterAlignXOffset(s32 fontId, const u8 *str, s32 totalWidth); +s32 GetStringRightAlignXOffset(s32 fontId, const u8 *str, s32 totalWidth); +s32 GetStringCenterAlignXOffsetWithLetterSpacing(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing); +s32 GetStringWidthDifference(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing); +s32 GetMaxWidthInMenuTable(const u8 **str, s32 arg1); +s32 sub_81DB3D8(const u8 **str, u8* arg1, s32 arg2); +// sub_81DB41C +// sub_81DB468 +// sub_81DB494 +// sub_81DB4DC +// sub_81DB52C +// sub_81DB554 +// sub_81DB5AC +// sub_81DB5E8 +// sub_81DB620 + +#endif // GUARD_INTERNATIONAL_STRING_UTIL_H diff --git a/ld_script.txt b/ld_script.txt index 82588be3a..cc32361f2 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -264,6 +264,7 @@ SECTIONS { asm/unk_sprite_file.o(.text); asm/unk_transition.o(.text); asm/unk_transition_2.o(.text); + src/international_string_util.o(.text); asm/international_string_util.o(.text); } =0 diff --git a/src/coins.c b/src/coins.c index 4ee601b22..9c2d35168 100644 --- a/src/coins.c +++ b/src/coins.c @@ -5,12 +5,12 @@ #include "text_window.h" #include "string_util.h" #include "menu.h" +#include "international_string_util.h" #define MAX_COINS 9999 EWRAM_DATA u8 sCoinsWindowId = 0; -extern s32 GetStringRightAlignXOffset(u8 fontId, u8 *str, s32 totalWidth); extern void sub_819746C(u8 windowId, bool8 copyToVram); extern const u8 gText_Coins[]; diff --git a/src/international_string_util.c b/src/international_string_util.c new file mode 100644 index 000000000..c77b4f8ff --- /dev/null +++ b/src/international_string_util.c @@ -0,0 +1,57 @@ +#include "global.h" +#include "international_string_util.h" +#include "text.h" + +extern s32 convert_pixel_width_to_tile_width(s32 a0); // script menu + +s32 GetStringCenterAlignXOffset(s32 fontId, const u8 *str, s32 totalWidth) +{ + return GetStringCenterAlignXOffsetWithLetterSpacing(fontId, str, totalWidth, 0); +} + +s32 GetStringRightAlignXOffset(s32 fontId, const u8 *str, s32 totalWidth) +{ + return GetStringWidthDifference(fontId, str, totalWidth, 0); +} + +s32 GetStringCenterAlignXOffsetWithLetterSpacing(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing) +{ + return GetStringWidthDifference(fontId, str, totalWidth, letterSpacing) / 2; +} + +s32 GetStringWidthDifference(s32 fontId, const u8 *str, s32 totalWidth, s32 letterSpacing) +{ + s32 stringWidth = GetStringWidth(fontId, str, letterSpacing); + if (totalWidth > stringWidth) + return totalWidth - stringWidth; + else + return 0; +} + +s32 GetMaxWidthInMenuTable(const u8 **str, s32 arg1) +{ + s32 i, var; + + for (var = 0, i = 0; i < arg1; i++) + { + s32 stringWidth = GetStringWidth(1, str[i * 2], 0); + if (stringWidth > var) + var = stringWidth; + } + + return convert_pixel_width_to_tile_width(var); +} + +s32 sub_81DB3D8(const u8 **str, u8* arg1, s32 arg2) +{ + s32 i, var; + + for (var = 0, i = 0; i < arg2; i++) + { + s32 stringWidth = GetStringWidth(1, str[arg1[i] * 2], 0); + if (stringWidth > var) + var = stringWidth; + } + + return convert_pixel_width_to_tile_width(var); +} -- cgit v1.2.3 From ab03b03c4bb872af131a9c52ef285c488b8e4865 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 9 Oct 2017 18:18:40 +0200 Subject: decompile reshow battle screen --- asm/battle_7.s | 80 +-- asm/battle_anim.s | 4 +- asm/battle_anim_80FE840.s | 26 +- asm/battle_anim_815A0D4.s | 6 +- asm/battle_controller_linkopponent.s | 44 +- asm/battle_controller_linkpartner.s | 40 +- asm/battle_controller_opponent.s | 50 +- asm/battle_controller_player.s | 94 +-- asm/battle_controller_player_partner.s | 54 +- asm/battle_controller_recorded_opponent.s | 46 +- asm/battle_controller_recorded_player.s | 48 +- asm/battle_controller_safari.s | 26 +- asm/battle_controller_wally.s | 32 +- asm/battle_interface.s | 68 +- asm/party_menu.s | 6 +- asm/pokeball.s | 8 +- asm/reshow_battle_screen.s | 1040 ----------------------------- asm/rom_80A5C6C.s | 8 +- data/data2b.s | 4 +- include/battle.h | 26 +- include/battle_controller_player.h | 7 + include/battle_controllers.h | 2 + include/battle_interface.h | 28 + include/reshow_battle_screen.h | 1 + ld_script.txt | 2 +- src/battle_2.c | 4 +- src/battle_dome_cards.c | 4 +- src/pokemon_2.c | 6 +- src/reshow_battle_screen.c | 365 ++++++++++ 29 files changed, 756 insertions(+), 1373 deletions(-) delete mode 100644 asm/reshow_battle_screen.s create mode 100644 include/battle_controller_player.h create mode 100644 include/battle_interface.h create mode 100644 src/reshow_battle_screen.c diff --git a/asm/battle_7.s b/asm/battle_7.s index 7f82e790a..34c52e9a2 100644 --- a/asm/battle_7.s +++ b/asm/battle_7.s @@ -1323,8 +1323,8 @@ _0805DC02: .pool thumb_func_end mplay_80342A4 - thumb_func_start sub_805DC0C -sub_805DC0C: @ 805DC0C + thumb_func_start BattleLoadOpponentMonSpriteGfx +BattleLoadOpponentMonSpriteGfx: @ 805DC0C push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -1474,10 +1474,10 @@ _0805DD46: pop {r0} bx r0 .pool - thumb_func_end sub_805DC0C + thumb_func_end BattleLoadOpponentMonSpriteGfx - thumb_func_start sub_805DD7C -sub_805DD7C: @ 805DD7C + thumb_func_start BattleLoadPlayerMonSpriteGfx +BattleLoadPlayerMonSpriteGfx: @ 805DD7C push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -1658,7 +1658,7 @@ _0805DEFC: pop {r0} bx r0 .pool - thumb_func_end sub_805DD7C + thumb_func_end BattleLoadPlayerMonSpriteGfx thumb_func_start nullsub_23 nullsub_23: @ 805DF30 @@ -1703,8 +1703,8 @@ sub_805DF38: @ 805DF38 .pool thumb_func_end sub_805DF38 - thumb_func_start sub_805DF84 -sub_805DF84: @ 805DF84 + thumb_func_start LoadBackTrainerBankSpriteGfx +LoadBackTrainerBankSpriteGfx: @ 805DF84 push {r4,r5,lr} adds r5, r0, 0 adds r4, r1, 0 @@ -1742,7 +1742,7 @@ sub_805DF84: @ 805DF84 pop {r0} bx r0 .pool - thumb_func_end sub_805DF84 + thumb_func_end LoadBackTrainerBankSpriteGfx thumb_func_start nullsub_25 nullsub_25: @ 805DFE0 @@ -1772,7 +1772,7 @@ sub_805DFFC: @ 805DFFC adds r4, 0x8 adds r0, r4, 0 bl LoadSpritePalette - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _0805E034 @@ -1821,8 +1821,8 @@ _0805E076: .pool thumb_func_end sub_805DFFC - thumb_func_start sub_805E08C -sub_805E08C: @ 805E08C + thumb_func_start BattleLoadAllHealthBoxesGfx +BattleLoadAllHealthBoxesGfx: @ 805E08C push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 @@ -1843,7 +1843,7 @@ _0805E09C: b _0805E1AE .pool _0805E0B8: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _0805E120 @@ -1953,7 +1953,7 @@ _0805E1AE: pop {r4-r6} pop {r1} bx r1 - thumb_func_end sub_805E08C + thumb_func_end BattleLoadAllHealthBoxesGfx thumb_func_start load_gfxc_health_bar load_gfxc_health_bar: @ 805E1B8 @@ -2002,7 +2002,7 @@ _0805E214: b _0805E324 _0805E21A: ldrb r0, [r4] - bl sub_805E08C + bl BattleLoadAllHealthBoxesGfx lsls r0, 24 cmp r0, 0 beq _0805E228 @@ -2022,12 +2022,12 @@ _0805E230: ldrb r0, [r4] cmp r0, 0 bne _0805E24C - bl battle_make_oam_safari_battle + bl CreateSafariPlayerHealthboxSprites b _0805E252 .pool _0805E24C: ldrb r0, [r4] - bl battle_make_oam_normal_battle + bl CreateBankHealthboxSprites _0805E252: ldr r2, =gHealthBoxesIds ldrb r1, [r4] @@ -2037,7 +2037,7 @@ _0805E252: .pool _0805E260: ldrb r0, [r4] - bl sub_8072B18 + bl SetBankHealthboxSpritePos ldr r0, =gBanksBySide ldrb r1, [r4] adds r0, r1, r0 @@ -2084,7 +2084,7 @@ _0805E29C: ldr r2, =gPlayerParty adds r1, r2 movs r2, 0 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute b _0805E302 .pool _0805E2E4: @@ -2101,13 +2101,13 @@ _0805E2E4: ldr r2, =gEnemyParty adds r1, r2 movs r2, 0 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute _0805E302: ldr r1, =gHealthBoxesIds ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] - bl sub_8072984 + bl SetHealthboxSpriteInvisible _0805E30E: ldrb r0, [r4] adds r0, 0x1 @@ -2128,7 +2128,7 @@ _0805E324: b _0805E346 .pool _0805E33C: - bl sub_805EC84 + bl LoadAndCreateEnemyShadowSprites bl sub_81B8C68 movs r6, 0x1 _0805E346: @@ -2541,7 +2541,7 @@ _0805E662: ldr r1, =gSprites adds r1, 0x8 adds r0, r1 - ldr r1, =gUnknown_08309AAC + ldr r1, =gMonAnimationsSpriteAnimsPtrTable mov r3, r8 lsls r2, r3, 2 adds r1, r2 @@ -2630,8 +2630,8 @@ _0805E77A: .pool thumb_func_end sub_805E448 - thumb_func_start sub_805E7DC -sub_805E7DC: @ 805E7DC + thumb_func_start BattleLoadSubstituteSpriteGfx +BattleLoadSubstituteSpriteGfx: @ 805E7DC push {r4-r7,lr} lsls r0, 24 lsrs r4, r0, 24 @@ -2732,7 +2732,7 @@ _0805E898: ldr r1, =gEnemyParty adds r0, r1 adds r1, r4, 0 - bl sub_805DC0C + bl BattleLoadOpponentMonSpriteGfx b _0805E8E6 .pool _0805E8D0: @@ -2745,13 +2745,13 @@ _0805E8D0: ldr r1, =gPlayerParty adds r0, r1 adds r1, r5, 0 - bl sub_805DD7C + bl BattleLoadPlayerMonSpriteGfx _0805E8E6: pop {r4-r7} pop {r0} bx r0 .pool - thumb_func_end sub_805E7DC + thumb_func_end BattleLoadSubstituteSpriteGfx thumb_func_start refresh_graphics_maybe refresh_graphics_maybe: @ 805E8F4 @@ -2766,7 +2766,7 @@ refresh_graphics_maybe: @ 805E8F4 lsrs r4, 24 adds r0, r6, 0 adds r1, r5, 0 - bl sub_805E7DC + bl BattleLoadSubstituteSpriteGfx lsls r0, r4, 4 adds r0, r4 lsls r0, 2 @@ -2905,7 +2905,7 @@ _0805EA08: negs r0, r0 ands r0, r2 strb r0, [r1] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _0805EA34 @@ -2914,7 +2914,7 @@ _0805EA08: b _0805EA5A .pool _0805EA34: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0805EA5A @@ -2955,7 +2955,7 @@ BattleMusicStop: @ 805EA60 adds r0, r6, 0 ands r0, r2 strb r0, [r1] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0805EAA2 @@ -3059,7 +3059,7 @@ sub_805EAE8: @ 805EAE8 mov r1, r8 bl sub_805E990 _0805EB5A: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0805EB7E @@ -3195,8 +3195,8 @@ _0805EC6C: .pool thumb_func_end sub_805EB9C - thumb_func_start sub_805EC84 -sub_805EC84: @ 805EC84 + thumb_func_start LoadAndCreateEnemyShadowSprites +LoadAndCreateEnemyShadowSprites: @ 805EC84 push {r4-r7,lr} mov r7, r8 push {r7} @@ -3247,7 +3247,7 @@ sub_805EC84: @ 805EC84 lsls r0, 2 adds r0, r7 strh r5, [r0, 0x2E] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0805ED56 @@ -3299,7 +3299,7 @@ _0805ED56: pop {r0} bx r0 .pool - thumb_func_end sub_805EC84 + thumb_func_end LoadAndCreateEnemyShadowSprites thumb_func_start sub_805ED70 @ int sub_805ED70(obj *a1) @@ -3418,8 +3418,8 @@ sub_805EE48: @ 805EE48 bx lr thumb_func_end sub_805EE48 - thumb_func_start sub_805EE54 -sub_805EE54: @ 805EE54 + thumb_func_start SetBankEnemyShadowSpriteCallback +SetBankEnemyShadowSpriteCallback: @ 805EE54 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 @@ -3482,7 +3482,7 @@ _0805EED0: pop {r0} bx r0 .pool - thumb_func_end sub_805EE54 + thumb_func_end SetBankEnemyShadowSpriteCallback thumb_func_start sub_805EEE0 sub_805EEE0: @ 805EEE0 diff --git a/asm/battle_anim.s b/asm/battle_anim.s index 645700d53..5ce9c4cf9 100644 --- a/asm/battle_anim.s +++ b/asm/battle_anim.s @@ -4047,7 +4047,7 @@ sub_80A5AFC: @ 80A5AFC lsls r0, 24 cmp r0, 0 bne _080A5BA6 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _080A5BA6 @@ -4129,7 +4129,7 @@ sub_80A5BAC: @ 80A5BAC lsls r0, 24 cmp r0, 0 bne _080A5C38 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _080A5C38 diff --git a/asm/battle_anim_80FE840.s b/asm/battle_anim_80FE840.s index 58eb2ebf0..4ecdcbf68 100644 --- a/asm/battle_anim_80FE840.s +++ b/asm/battle_anim_80FE840.s @@ -721,7 +721,7 @@ sub_80FEE1C: @ 80FEE1C lsls r0, 24 cmp r0, 0 bne _080FEE36 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _080FEE3E @@ -1260,7 +1260,7 @@ _080FF260: sub_80FF268: @ 80FF268 push {r4,lr} adds r4, r0, 0 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -5433,7 +5433,7 @@ _08101378: ldr r0, =gAnimationBankTarget _0810137A: ldrb r6, [r0] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _081013C4 @@ -7557,7 +7557,7 @@ _08102448: bne _08102464 adds r0, r4, r5 ldrb r0, [r0] - bl sub_8072984 + bl SetHealthboxSpriteInvisible _08102464: movs r1, 0x2 ldrsh r0, [r6, r1] @@ -7571,7 +7571,7 @@ _08102464: bne _08102482 adds r0, r4, r5 ldrb r0, [r0] - bl sub_8072984 + bl SetHealthboxSpriteInvisible _08102482: adds r0, r4, 0x1 lsls r0, 24 @@ -7600,7 +7600,7 @@ _081024B2: ldr r0, =gHealthBoxesIds adds r0, r4, r0 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 @@ -13205,7 +13205,7 @@ _081051F2: movs r0, 0x1 adds r4, r0, 0 eors r4, r1 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0810526A @@ -26794,7 +26794,7 @@ _0810BF90: ldrsh r0, [r0, r1] cmp r0, 0 beq _0810BFA8 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _0810BFB4 @@ -33105,7 +33105,7 @@ _0810F284: mov r0, r8 cmp r0, 0 bne _0810F2B8 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0810F2B8 @@ -33501,7 +33501,7 @@ _0810F5A6: lsls r0, 24 cmp r0, 0 bne _0810F5EE - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0810F5EE @@ -43194,7 +43194,7 @@ sub_81144F8: @ 81144F8 movs r2, 0x1 bl lcd_bg_operations _0811455C: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _081145D6 @@ -47859,7 +47859,7 @@ sub_8116B14: @ 8116B14 movs r0, 0xA bl SetGpuReg _08116BA2: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08116C26 @@ -48295,7 +48295,7 @@ _08116F5C: movs r2, 0x1 bl lcd_bg_operations _08116FBA: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08117036 diff --git a/asm/battle_anim_815A0D4.s b/asm/battle_anim_815A0D4.s index 81e4f9163..fc21f001f 100755 --- a/asm/battle_anim_815A0D4.s +++ b/asm/battle_anim_815A0D4.s @@ -3256,7 +3256,7 @@ _0815BAB6: lsls r1, r0, 2 adds r1, r2 ldrh r1, [r1, 0x2] - bl sub_805EE54 + bl SetBankEnemyShadowSpriteCallback _0815BAF6: mov r0, r8 bl move_anim_task_del @@ -4001,7 +4001,7 @@ _0815C15C: bl GetBankIdentity lsls r0, 24 lsrs r4, r0, 24 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -9334,7 +9334,7 @@ sub_815EC48: @ 815EC48 lsls r0, 24 cmp r0, 0 bne _0815ECD0 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r7, r0, 24 cmp r7, 0x1 diff --git a/asm/battle_controller_linkopponent.s b/asm/battle_controller_linkopponent.s index 58f3b95b7..7a90e4949 100644 --- a/asm/battle_controller_linkopponent.s +++ b/asm/battle_controller_linkopponent.s @@ -199,11 +199,11 @@ sub_8064520: @ 8064520 movs r0, 0 mov r8, r0 movs r4, 0 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0806454C - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08064584 @@ -531,7 +531,7 @@ _080647B4: ands r0, r1 cmp r0, 0 bne _0806487A - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0806484A @@ -557,7 +557,7 @@ _080647B4: ldr r2, =gEnemyParty adds r1, r2 movs r2, 0 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute mov r1, r9 ldrb r0, [r1] eors r0, r7 @@ -567,7 +567,7 @@ _080647B4: eors r0, r7 adds r0, r4 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible _0806484A: ldr r5, =gHealthBoxesIds ldr r4, =gActiveBank @@ -583,13 +583,13 @@ _0806484A: ldr r2, =gEnemyParty adds r1, r2 movs r2, 0 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute ldrb r0, [r4] bl sub_8076918 ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible _0806487A: ldr r4, =gBattleSpritesDataPtr ldr r0, [r4] @@ -760,7 +760,7 @@ _08064998: movs r1, 0 strb r1, [r0, 0x9] _080649E2: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08064A3A @@ -799,7 +799,7 @@ _080649E2: lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 - bl sub_805EE54 + bl SetBankEnemyShadowSpriteCallback _08064A3A: ldr r1, =gUnknown_03005D7C ldr r4, =gActiveBank @@ -827,7 +827,7 @@ _08064A3A: lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 - bl sub_805EE54 + bl SetBankEnemyShadowSpriteCallback ldr r3, =gBattleSpritesDataPtr ldr r0, [r3] ldr r2, [r0, 0x8] @@ -974,7 +974,7 @@ sub_8064BC0: @ 8064BC0 ldrb r0, [r6] adds r0, r5 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible lsls r4, 16 asrs r1, r4, 16 movs r0, 0x1 @@ -1017,7 +1017,7 @@ sub_8064C14: @ 8064C14 ldr r0, =gHealthBoxesIds adds r0, r3, r0 ldrb r0, [r0] - bl sub_8072984 + bl SetHealthboxSpriteInvisible bl LinkOpponentBufferExecCompleted _08064C42: pop {r0} @@ -1065,7 +1065,7 @@ sub_8064C58: @ 8064C58 ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] - bl sub_8072984 + bl SetHealthboxSpriteInvisible bl LinkOpponentBufferExecCompleted _08064CB2: pop {r4-r6} @@ -1321,13 +1321,13 @@ sub_8064E50: @ 8064E50 ldr r2, =gEnemyParty adds r1, r2 movs r2, 0 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute ldrb r0, [r5] bl sub_8076918 ldrb r0, [r5] adds r0, r4 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible ldrb r0, [r5] bl sub_805E408 ldr r1, =gBattleBankFunc @@ -1413,7 +1413,7 @@ _08064F72: lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 - bl sub_805EE54 + bl SetBankEnemyShadowSpriteCallback ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 @@ -3583,7 +3583,7 @@ sub_80662F8: @ 80662F8 muls r2, r0 adds r0, r2, 0 add r0, r9 - bl sub_805DC0C + bl BattleLoadOpponentMonSpriteGfx ldrb r0, [r6] bl GetBankIdentity adds r1, r0, 0 @@ -3673,7 +3673,7 @@ sub_80662F8: @ 80662F8 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 - bl sub_805EE54 + bl SetBankEnemyShadowSpriteCallback ldr r1, =gBattleBankFunc ldrb r0, [r6] lsls r0, 2 @@ -3772,7 +3772,7 @@ sub_8066494: @ 8066494 adds r0, r1, 0 adds r0, r5 adds r1, r6, 0 - bl sub_805DC0C + bl BattleLoadOpponentMonSpriteGfx adds r0, r6, 0 bl GetBankIdentity adds r1, r0, 0 @@ -3947,7 +3947,7 @@ _0806666C: ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] - bl sub_8072984 + bl SetHealthboxSpriteInvisible bl LinkOpponentBufferExecCompleted _080666A8: pop {r4-r6} @@ -5242,7 +5242,7 @@ sub_806719C: @ 806719C ldr r2, =gEnemyParty adds r1, r2 movs r2, 0x9 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute ldrb r2, [r4] ldr r0, =gBattleSpritesDataPtr ldr r0, [r0] @@ -5779,7 +5779,7 @@ c3_08038DC4: @ 8067618 adds r0, r1 ldrh r0, [r0, 0x8] strb r0, [r7] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08067652 diff --git a/asm/battle_controller_linkpartner.s b/asm/battle_controller_linkpartner.s index 562b236d0..b26943cf5 100644 --- a/asm/battle_controller_linkpartner.s +++ b/asm/battle_controller_linkpartner.s @@ -168,11 +168,11 @@ _0814AFF4: sub_814B004: @ 814B004 push {r4-r6,lr} movs r6, 0 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0814B028 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0814B05C @@ -348,7 +348,7 @@ _0814B136: lsls r0, 2 adds r0, r2 strb r6, [r0, 0x9] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0814B1F0 @@ -383,7 +383,7 @@ _0814B136: ldr r2, =gPlayerParty adds r1, r2 movs r2, 0 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute ldrb r0, [r7] mov r1, r8 eors r0, r1 @@ -393,7 +393,7 @@ _0814B136: eors r0, r1 adds r0, r4 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible _0814B1F0: ldr r1, =gUnknown_03005D7C ldr r4, =gActiveBank @@ -419,13 +419,13 @@ _0814B1F0: ldr r2, =gPlayerParty adds r1, r2 movs r2, 0 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute ldrb r0, [r4] bl sub_8076918 ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible ldr r0, =gBattleSpritesDataPtr ldr r0, [r0] ldr r2, [r0, 0x8] @@ -498,7 +498,7 @@ bx_t4_healthbar_update: @ 814B2D0 ldrb r0, [r5] adds r0, r6 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible lsls r4, 16 asrs r1, r4, 16 movs r0, 0x1 @@ -587,7 +587,7 @@ sub_814B340: @ 814B340 ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] - bl sub_8072984 + bl SetHealthboxSpriteInvisible bl LinkPartnerBufferExecCompleted _0814B3BC: pop {r4-r6} @@ -634,7 +634,7 @@ sub_814B3DC: @ 814B3DC ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] - bl sub_8072984 + bl SetHealthboxSpriteInvisible bl LinkPartnerBufferExecCompleted _0814B430: pop {r4-r6} @@ -878,13 +878,13 @@ sub_814B5A8: @ 814B5A8 muls r1, r6 adds r1, r5 movs r2, 0 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute ldrb r0, [r7] bl sub_8076918 ldrb r0, [r7] adds r0, r4 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible ldr r1, =gBattleBankFunc ldrb r0, [r7] lsls r0, 2 @@ -3154,7 +3154,7 @@ sub_814CB0C: @ 814CB0C muls r0, r5 ldr r4, =gPlayerParty adds r0, r4 - bl sub_805DD7C + bl BattleLoadPlayerMonSpriteGfx ldrb r0, [r6] lsls r0, 1 add r0, r8 @@ -3283,7 +3283,7 @@ sub_814CC28: @ 814CC28 muls r0, r2 ldr r2, =gPlayerParty adds r0, r2 - bl sub_805DD7C + bl BattleLoadPlayerMonSpriteGfx ldrb r0, [r5] lsls r1, r0, 9 adds r1, r6 @@ -3514,7 +3514,7 @@ _0814CE5C: ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] - bl sub_8072984 + bl SetHealthboxSpriteInvisible bl LinkPartnerBufferExecCompleted _0814CE92: pop {r4-r6} @@ -3696,7 +3696,7 @@ _0814D002: ldr r5, =gActiveBank ldrb r1, [r5] adds r0, r4, 0 - bl sub_805DF84 + bl LoadBackTrainerBankSpriteGfx ldrb r0, [r5] bl GetBankIdentity adds r1, r0, 0 @@ -3706,7 +3706,7 @@ _0814D002: bl sub_806A12C ldr r6, =gUnknown_0202499C mov r8, r7 - ldr r0, =gUnknown_08305D2C + ldr r0, =gTrainerBackPicCoords lsls r4, 2 adds r4, r0 ldrb r0, [r4] @@ -4551,7 +4551,7 @@ sub_814D738: @ 814D738 ldr r2, =gPlayerParty adds r1, r2 movs r2, 0x9 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute ldrb r2, [r4] ldr r0, =gBattleSpritesDataPtr ldr r0, [r0] @@ -5217,7 +5217,7 @@ _0814DCF8: mov r9, r0 ldrh r0, [r1, 0x8] strb r0, [r7] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0814DD18 @@ -5276,7 +5276,7 @@ _0814DD48: muls r0, r2 ldr r2, =gPlayerParty adds r0, r2 - bl sub_805DD7C + bl BattleLoadPlayerMonSpriteGfx ldrb r0, [r7] movs r1, 0 bl sub_814CC98 diff --git a/asm/battle_controller_opponent.s b/asm/battle_controller_opponent.s index 066a0ceab..6c553ad27 100644 --- a/asm/battle_controller_opponent.s +++ b/asm/battle_controller_opponent.s @@ -200,11 +200,11 @@ sub_805F2F0: @ 805F2F0 push {r5-r7} movs r0, 0 mov r10, r0 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0805F32C - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0805F31E @@ -520,7 +520,7 @@ _0805F5A6: ands r0, r1 cmp r0, 0 bne _0805F5EE - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0805F5EE @@ -583,7 +583,7 @@ _0805F5EE: ands r0, r1 cmp r0, 0 bne _0805F6B4 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0805F684 @@ -609,7 +609,7 @@ _0805F5EE: ldr r2, =gEnemyParty adds r1, r2 movs r2, 0 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute mov r1, r8 ldrb r0, [r1] eors r0, r7 @@ -619,7 +619,7 @@ _0805F5EE: eors r0, r7 adds r0, r4 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible _0805F684: ldr r5, =gHealthBoxesIds ldr r4, =gActiveBank @@ -635,13 +635,13 @@ _0805F684: ldr r2, =gEnemyParty adds r1, r2 movs r2, 0 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute ldrb r0, [r4] bl sub_8076918 ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible _0805F6B4: ldr r3, =gBattleSpritesDataPtr ldr r2, [r3] @@ -739,11 +739,11 @@ _0805F774: movs r0, 0x1 str r0, [sp] _0805F792: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0805F7B2 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0805F810 @@ -838,7 +838,7 @@ _0805F86E: mov r0, r10 cmp r0, 0 beq _0805F958 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0805F8D2 @@ -877,7 +877,7 @@ _0805F86E: lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 - bl sub_805EE54 + bl SetBankEnemyShadowSpriteCallback _0805F8D2: ldr r1, =gUnknown_03005D7C ldr r4, =gActiveBank @@ -905,7 +905,7 @@ _0805F8D2: lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 - bl sub_805EE54 + bl SetBankEnemyShadowSpriteCallback ldr r3, =gBattleSpritesDataPtr ldr r0, [r3] ldr r2, [r0, 0x8] @@ -1068,7 +1068,7 @@ sub_805FA70: @ 805FA70 ldrb r0, [r6] adds r0, r5 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible lsls r4, 16 asrs r1, r4, 16 movs r0, 0x1 @@ -1111,7 +1111,7 @@ sub_805FAC4: @ 805FAC4 ldr r0, =gHealthBoxesIds adds r0, r3, r0 ldrb r0, [r0] - bl sub_8072984 + bl SetHealthboxSpriteInvisible bl OpponentBufferExecCompleted _0805FAF2: pop {r0} @@ -1159,7 +1159,7 @@ sub_805FB08: @ 805FB08 ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] - bl sub_8072984 + bl SetHealthboxSpriteInvisible bl OpponentBufferExecCompleted _0805FB62: pop {r4-r6} @@ -1415,13 +1415,13 @@ sub_805FD00: @ 805FD00 ldr r2, =gEnemyParty adds r1, r2 movs r2, 0 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute ldrb r0, [r5] bl sub_8076918 ldrb r0, [r5] adds r0, r4 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible ldrb r0, [r5] bl sub_805E408 ldr r1, =gBattleBankFunc @@ -1507,7 +1507,7 @@ _0805FE22: lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 - bl sub_805EE54 + bl SetBankEnemyShadowSpriteCallback ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 @@ -3730,7 +3730,7 @@ sub_8061224: @ 8061224 ldrh r0, [r0] muls r0, r7 add r0, r10 - bl sub_805DC0C + bl BattleLoadOpponentMonSpriteGfx ldrb r0, [r6] bl GetBankIdentity adds r1, r0, 0 @@ -3828,7 +3828,7 @@ sub_8061224: @ 8061224 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 - bl sub_805EE54 + bl SetBankEnemyShadowSpriteCallback ldr r1, =gBattleBankFunc ldrb r0, [r6] lsls r0, 2 @@ -3934,7 +3934,7 @@ sub_80613DC: @ 80613DC adds r0, r1, 0 adds r0, r5 adds r1, r6, 0 - bl sub_805DC0C + bl BattleLoadOpponentMonSpriteGfx adds r0, r6, 0 bl GetBankIdentity adds r1, r0, 0 @@ -4109,7 +4109,7 @@ _080615B4: ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] - bl sub_8072984 + bl SetHealthboxSpriteInvisible bl OpponentBufferExecCompleted _080615F0: pop {r4-r6} @@ -5692,7 +5692,7 @@ sub_8062390: @ 8062390 ldr r2, =gEnemyParty adds r1, r2 movs r2, 0x9 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute ldrb r2, [r4] ldr r0, =gBattleSpritesDataPtr ldr r0, [r0] @@ -6244,7 +6244,7 @@ sub_8062828: @ 8062828 adds r0, r1 ldrh r0, [r0, 0x8] strb r0, [r7] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0806286C diff --git a/asm/battle_controller_player.s b/asm/battle_controller_player.s index 1ea1bb5f2..0859abc16 100644 --- a/asm/battle_controller_player.s +++ b/asm/battle_controller_player.s @@ -249,7 +249,7 @@ _08057674: ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] - bl sub_8059CF8 + bl ActionSelectionDestroyCursorAt ldrb r1, [r4] adds r1, r5 ldrb r0, [r1] @@ -277,7 +277,7 @@ _080576B4: ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] - bl sub_8059CF8 + bl ActionSelectionDestroyCursorAt ldrb r1, [r4] adds r1, r5 ldrb r0, [r1] @@ -321,7 +321,7 @@ _0805771A: ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] - bl sub_8059CF8 + bl ActionSelectionDestroyCursorAt ldrb r1, [r4] adds r1, r5 ldrb r0, [r1] @@ -333,7 +333,7 @@ _08057732: adds r0, r5 ldrb r0, [r0] movs r1, 0 - bl sub_8059CB4 + bl ActionSelectionCreateCursorAt b _080577E8 .pool _0805774C: @@ -2385,11 +2385,11 @@ sub_805896C: @ 805896C mov r5, r8 push {r5-r7} movs r7, 0 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08058998 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _080589D0 @@ -2541,7 +2541,7 @@ _08058A0E: ldr r4, =gPlayerParty adds r0, r4 bl sub_805E990 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08058AE4 @@ -2672,7 +2672,7 @@ _08058BB2: ands r0, r1 cmp r0, 0 bne _08058C68 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08058C38 @@ -2697,7 +2697,7 @@ _08058BB2: ldr r2, =gPlayerParty adds r1, r2 movs r2, 0 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute ldrb r0, [r7] eors r0, r6 bl sub_8076918 @@ -2705,7 +2705,7 @@ _08058BB2: eors r0, r6 adds r0, r4 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible _08058C38: ldr r5, =gHealthBoxesIds ldr r4, =gActiveBank @@ -2721,13 +2721,13 @@ _08058C38: ldr r2, =gPlayerParty adds r1, r2 movs r2, 0 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute ldrb r0, [r4] bl sub_8076918 ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible _08058C68: ldr r0, =gBattleSpritesDataPtr ldr r2, [r0] @@ -2817,11 +2817,11 @@ _08058D14: movs r0, 0x1 mov r9, r0 _08058D32: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08058D52 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08058DAC @@ -2915,7 +2915,7 @@ _08058E0A: mov r0, r8 cmp r0, 0 beq _08058EAA - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08058E48 @@ -3207,13 +3207,13 @@ _0805905E: ldr r2, =gPlayerParty adds r1, r2 movs r2, 0 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute ldrb r0, [r5] bl sub_8076918 ldrb r0, [r5] adds r0, r4 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 @@ -3267,7 +3267,7 @@ bx_t1_healthbar_update: @ 8059130 ldrb r0, [r5] adds r0, r6 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible lsls r4, 16 asrs r1, r4, 16 movs r0, 0x1 @@ -3338,7 +3338,7 @@ sub_80591B8: @ 80591B8 str r7, [sp, 0x8] ldrh r2, [r1, 0xA] str r2, [sp, 0xC] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3415,7 +3415,7 @@ _080591FE: movs r1, 0xB bl dp01_build_cmdbuf_x21_a_bb strb r5, [r4] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3616,7 +3616,7 @@ _08059430: lsls r4, 16 lsrs r4, 16 ldrb r0, [r5] - bl sub_80729D0 + bl SetHealthboxSpriteVisible lsls r4, 16 asrs r4, 16 movs r0, 0x1 @@ -3729,7 +3729,7 @@ sub_8059544: @ 8059544 adds r0, r1 ldrb r4, [r0, 0xC] ldrb r6, [r0, 0x8] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3795,7 +3795,7 @@ sub_80595A4: @ 80595A4 adds r0, r7, 0 movs r1, 0x38 bl GetMonData - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3814,7 +3814,7 @@ sub_80595A4: @ 80595A4 ldrb r0, [r0] adds r1, r7, 0 movs r2, 0 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute b _08059638 .pool _08059624: @@ -3826,7 +3826,7 @@ _08059624: ldr r2, =gPlayerParty adds r1, r2 movs r2, 0 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute _08059638: ldr r0, =gTasks lsls r1, r6, 2 @@ -3930,7 +3930,7 @@ sub_80596A8: @ 80596A8 ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] - bl sub_8072984 + bl SetHealthboxSpriteInvisible bl PlayerBufferExecCompleted _08059724: pop {r4-r6} @@ -3977,7 +3977,7 @@ sub_8059744: @ 8059744 ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] - bl sub_8072984 + bl SetHealthboxSpriteInvisible bl PlayerBufferExecCompleted _08059798: pop {r4-r6} @@ -4561,8 +4561,8 @@ battle_menu_cursor_related: @ 8059C70 .pool thumb_func_end battle_menu_cursor_related - thumb_func_start sub_8059CB4 -sub_8059CB4: @ 8059CB4 + thumb_func_start ActionSelectionCreateCursorAt +ActionSelectionCreateCursorAt: @ 8059CB4 push {r4,lr} sub sp, 0x10 adds r3, r0, 0 @@ -4595,10 +4595,10 @@ sub_8059CB4: @ 8059CB4 pop {r4} pop {r0} bx r0 - thumb_func_end sub_8059CB4 + thumb_func_end ActionSelectionCreateCursorAt - thumb_func_start sub_8059CF8 -sub_8059CF8: @ 8059CF8 + thumb_func_start ActionSelectionDestroyCursorAt +ActionSelectionDestroyCursorAt: @ 8059CF8 push {lr} sub sp, 0x10 adds r3, r0, 0 @@ -4632,7 +4632,7 @@ sub_8059CF8: @ 8059CF8 pop {r0} bx r0 .pool - thumb_func_end sub_8059CF8 + thumb_func_end ActionSelectionDestroyCursorAt thumb_func_start sub_8059D40 sub_8059D40: @ 8059D40 @@ -6866,7 +6866,7 @@ sub_805B164: @ 805B164 muls r0, r2 ldr r2, =gPlayerParty adds r0, r2 - bl sub_805DD7C + bl BattleLoadPlayerMonSpriteGfx ldr r2, =gSprites ldr r0, =gBankSpriteIds ldrb r3, [r4] @@ -6923,7 +6923,7 @@ sub_805B1CC: @ 805B1CC muls r0, r2 ldr r2, =gPlayerParty adds r0, r2 - bl sub_805DD7C + bl BattleLoadPlayerMonSpriteGfx ldr r1, =gActionSelectionCursor ldrb r0, [r5] adds r0, r1 @@ -7162,7 +7162,7 @@ _0805B41C: ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] - bl sub_8072984 + bl SetHealthboxSpriteInvisible bl PlayerBufferExecCompleted _0805B452: pop {r4-r6} @@ -7375,7 +7375,7 @@ _0805B5E0: b _0805B642 .pool _0805B618: - ldr r1, =gUnknown_08305D2C + ldr r1, =gTrainerBackPicCoords lsls r0, r4, 2 adds r0, r1 ldrb r1, [r0] @@ -7392,7 +7392,7 @@ _0805B618: _0805B63C: movs r0, 0x50 mov r9, r0 - ldr r1, =gUnknown_08305D2C + ldr r1, =gTrainerBackPicCoords _0805B642: lsls r0, r4, 2 adds r0, r1 @@ -7542,7 +7542,7 @@ _0805B794: ldr r5, =gActiveBank ldrb r1, [r5] adds r0, r4, 0 - bl sub_805DF84 + bl LoadBackTrainerBankSpriteGfx ldrb r0, [r5] bl GetBankIdentity adds r1, r0, 0 @@ -7724,7 +7724,7 @@ _0805B926: ldr r5, =gActiveBank ldrb r1, [r5] adds r0, r4, 0 - bl sub_805DF84 + bl LoadBackTrainerBankSpriteGfx ldrb r0, [r5] bl GetBankIdentity adds r1, r0, 0 @@ -7733,7 +7733,7 @@ _0805B926: adds r0, r4, 0 bl sub_806A12C ldr r0, =gUnknown_0202499C - ldr r1, =gUnknown_08305D2C + ldr r1, =gTrainerBackPicCoords lsls r4, 2 adds r4, r1 ldrb r1, [r4] @@ -8539,7 +8539,7 @@ dp01t_12_6_battle_menu: @ 805C044 _0805C062: lsls r0, r4, 24 lsrs r0, 24 - bl sub_8059CF8 + bl ActionSelectionDestroyCursorAt adds r4, 0x1 cmp r4, 0x3 ble _0805C062 @@ -8549,7 +8549,7 @@ _0805C062: adds r0, r1 ldrb r0, [r0] movs r1, 0 - bl sub_8059CB4 + bl ActionSelectionCreateCursorAt ldr r0, =gText_WhatWillPkmnDo bl BattleStringExpandPlaceholdersToDisplayedString ldr r0, =gDisplayedStringBattle @@ -9130,7 +9130,7 @@ sub_805C5C4: @ 805C5C4 ldr r2, =gPlayerParty adds r1, r2 movs r2, 0x9 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute ldrb r2, [r4] ldr r0, =gBattleSpritesDataPtr ldr r0, [r0] @@ -9860,7 +9860,7 @@ sub_805CC00: @ 805CC00 ldr r1, =gPlayerParty adds r0, r1 adds r1, r4, 0 - bl sub_805DD7C + bl BattleLoadPlayerMonSpriteGfx ldr r0, =gBankSpriteIds adds r4, r0 ldrb r1, [r4] @@ -9906,7 +9906,7 @@ _0805CC94: mov r9, r0 ldrh r0, [r1, 0x8] strb r0, [r7] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0805CCB4 @@ -9965,7 +9965,7 @@ _0805CCE4: muls r0, r2 ldr r2, =gPlayerParty adds r0, r2 - bl sub_805DD7C + bl BattleLoadPlayerMonSpriteGfx ldrb r0, [r7] movs r1, 0 bl sub_805B258 diff --git a/asm/battle_controller_player_partner.s b/asm/battle_controller_player_partner.s index c0ea9b87f..58463d4bd 100644 --- a/asm/battle_controller_player_partner.s +++ b/asm/battle_controller_player_partner.s @@ -169,11 +169,11 @@ _081BAF38: sub_81BAF48: @ 81BAF48 push {r4-r6,lr} movs r6, 0 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _081BAF6C - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _081BAFA0 @@ -349,7 +349,7 @@ _081BB07A: lsls r0, 2 adds r0, r2 strb r6, [r0, 0x9] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _081BB134 @@ -384,7 +384,7 @@ _081BB07A: ldr r2, =gPlayerParty adds r1, r2 movs r2, 0 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute ldrb r0, [r7] mov r1, r8 eors r0, r1 @@ -394,7 +394,7 @@ _081BB07A: eors r0, r1 adds r0, r4 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible _081BB134: ldr r1, =gUnknown_03005D7C ldr r4, =gActiveBank @@ -420,13 +420,13 @@ _081BB134: ldr r2, =gPlayerParty adds r1, r2 movs r2, 0 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute ldrb r0, [r4] bl sub_8076918 ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible ldr r0, =gBattleSpritesDataPtr ldr r0, [r0] ldr r2, [r0, 0x8] @@ -499,7 +499,7 @@ bx_t3_healthbar_update: @ 81BB214 ldrb r0, [r5] adds r0, r6 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible lsls r4, 16 asrs r1, r4, 16 movs r0, 0x1 @@ -570,7 +570,7 @@ sub_81BB29C: @ 81BB29C str r7, [sp, 0x8] ldrh r2, [r1, 0xA] str r2, [sp, 0xC] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -647,7 +647,7 @@ _081BB2E2: movs r1, 0xB bl dp01_build_cmdbuf_x21_a_bb strb r5, [r4] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -848,7 +848,7 @@ _081BB514: lsls r4, 16 lsrs r4, 16 ldrb r0, [r5] - bl sub_80729D0 + bl SetHealthboxSpriteVisible lsls r4, 16 asrs r4, 16 movs r0, 0x1 @@ -961,7 +961,7 @@ sub_81BB628: @ 81BB628 adds r0, r1 ldrb r4, [r0, 0xC] ldrb r6, [r0, 0x8] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1027,7 +1027,7 @@ sub_81BB688: @ 81BB688 adds r0, r7, 0 movs r1, 0x38 bl GetMonData - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1046,7 +1046,7 @@ sub_81BB688: @ 81BB688 ldrb r0, [r0] adds r1, r7, 0 movs r2, 0 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute b _081BB71C .pool _081BB708: @@ -1058,7 +1058,7 @@ _081BB708: ldr r2, =gPlayerParty adds r1, r2 movs r2, 0 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute _081BB71C: ldr r0, =gTasks lsls r1, r6, 2 @@ -1162,7 +1162,7 @@ sub_81BB78C: @ 81BB78C ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] - bl sub_8072984 + bl SetHealthboxSpriteInvisible bl PlayerPartnerBufferExecCompleted _081BB808: pop {r4-r6} @@ -1209,7 +1209,7 @@ sub_81BB828: @ 81BB828 ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] - bl sub_8072984 + bl SetHealthboxSpriteInvisible bl PlayerPartnerBufferExecCompleted _081BB87C: pop {r4-r6} @@ -1453,13 +1453,13 @@ sub_81BB9F4: @ 81BB9F4 muls r1, r6 adds r1, r5 movs r2, 0 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute ldrb r0, [r7] bl sub_8076918 ldrb r0, [r7] adds r0, r4 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible ldr r1, =gBattleBankFunc ldrb r0, [r7] lsls r0, 2 @@ -3729,7 +3729,7 @@ sub_81BCF58: @ 81BCF58 muls r0, r5 ldr r4, =gPlayerParty adds r0, r4 - bl sub_805DD7C + bl BattleLoadPlayerMonSpriteGfx ldrb r0, [r6] lsls r0, 1 add r0, r8 @@ -3858,7 +3858,7 @@ sub_81BD074: @ 81BD074 muls r0, r2 ldr r2, =gPlayerParty adds r0, r2 - bl sub_805DD7C + bl BattleLoadPlayerMonSpriteGfx ldrb r0, [r5] lsls r1, r0, 9 adds r1, r6 @@ -4089,7 +4089,7 @@ _081BD2A8: ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] - bl sub_8072984 + bl SetHealthboxSpriteInvisible bl PlayerPartnerBufferExecCompleted _081BD2DE: pop {r4-r6} @@ -4182,7 +4182,7 @@ sub_81BD37C: @ 81BD37C movs r4, 0x7 movs r0, 0x5A mov r9, r0 - ldr r0, =gUnknown_08305D2C + ldr r0, =gTrainerBackPicCoords ldrb r1, [r0, 0x1C] b _081BD3BE .pool @@ -4213,7 +4213,7 @@ _081BD3BE: ldr r5, =gActiveBank ldrb r1, [r5] adds r0, r4, 0 - bl sub_805DF84 + bl LoadBackTrainerBankSpriteGfx ldrb r0, [r5] bl GetBankIdentity adds r1, r0, 0 @@ -5338,7 +5338,7 @@ sub_81BDD9C: @ 81BDD9C ldr r2, =gPlayerParty adds r1, r2 movs r2, 0x9 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute ldrb r2, [r4] ldr r0, =gBattleSpritesDataPtr ldr r0, [r0] @@ -5950,7 +5950,7 @@ _081BE2F4: mov r9, r0 ldrh r0, [r1, 0x8] strb r0, [r7] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _081BE314 @@ -6009,7 +6009,7 @@ _081BE344: muls r0, r2 ldr r2, =gPlayerParty adds r0, r2 - bl sub_805DD7C + bl BattleLoadPlayerMonSpriteGfx ldrb r0, [r7] movs r1, 0 bl sub_81BD0E4 diff --git a/asm/battle_controller_recorded_opponent.s b/asm/battle_controller_recorded_opponent.s index 0d9bb2331..361da7670 100644 --- a/asm/battle_controller_recorded_opponent.s +++ b/asm/battle_controller_recorded_opponent.s @@ -198,11 +198,11 @@ sub_8186678: @ 8186678 push {r6,r7} movs r0, 0 mov r9, r0 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _081866A4 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _081866F8 @@ -504,7 +504,7 @@ _081868DE: ands r0, r1 cmp r0, 0 bne _08186994 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08186964 @@ -529,7 +529,7 @@ _081868DE: ldr r2, =gEnemyParty adds r1, r2 movs r2, 0 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute ldrb r0, [r7] eors r0, r6 bl sub_8076918 @@ -537,7 +537,7 @@ _081868DE: eors r0, r6 adds r0, r4 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible _08186964: ldr r5, =gHealthBoxesIds ldr r4, =gActiveBank @@ -553,13 +553,13 @@ _08186964: ldr r2, =gEnemyParty adds r1, r2 movs r2, 0 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute ldrb r0, [r4] bl sub_8076918 ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible _08186994: ldr r0, =gBattleSpritesDataPtr ldr r2, [r0] @@ -655,7 +655,7 @@ _08186A4C: movs r0, 0x1 mov r9, r0 _08186A6A: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _08186AC8 @@ -742,7 +742,7 @@ _08186B26: mov r0, r8 cmp r0, 0 beq _08186C10 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08186B8A @@ -781,7 +781,7 @@ _08186B26: lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 - bl sub_805EE54 + bl SetBankEnemyShadowSpriteCallback _08186B8A: ldr r1, =gUnknown_03005D7C ldr r4, =gActiveBank @@ -809,7 +809,7 @@ _08186B8A: lsls r1, 16 lsrs r1, 16 adds r0, r5, 0 - bl sub_805EE54 + bl SetBankEnemyShadowSpriteCallback ldr r3, =gBattleSpritesDataPtr ldr r0, [r3] ldr r2, [r0, 0x8] @@ -955,7 +955,7 @@ sub_8186D04: @ 8186D04 ldrb r0, [r6] adds r0, r5 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible lsls r4, 16 asrs r1, r4, 16 movs r0, 0x1 @@ -998,7 +998,7 @@ sub_8186D58: @ 8186D58 ldr r0, =gHealthBoxesIds adds r0, r3, r0 ldrb r0, [r0] - bl sub_8072984 + bl SetHealthboxSpriteInvisible bl RecordedOpponentBufferExecCompleted _08186D86: pop {r0} @@ -1046,7 +1046,7 @@ sub_8186D9C: @ 8186D9C ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] - bl sub_8072984 + bl SetHealthboxSpriteInvisible bl RecordedOpponentBufferExecCompleted _08186DF6: pop {r4-r6} @@ -1302,13 +1302,13 @@ sub_8186F94: @ 8186F94 ldr r2, =gEnemyParty adds r1, r2 movs r2, 0 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute ldrb r0, [r5] bl sub_8076918 ldrb r0, [r5] adds r0, r4 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible ldrb r0, [r5] bl sub_805E408 ldr r1, =gBattleBankFunc @@ -1394,7 +1394,7 @@ _081870B6: lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 - bl sub_805EE54 + bl SetBankEnemyShadowSpriteCallback ldr r1, =gBattleBankFunc ldrb r0, [r5] lsls r0, 2 @@ -3564,7 +3564,7 @@ sub_818843C: @ 818843C muls r2, r0 adds r0, r2, 0 add r0, r9 - bl sub_805DC0C + bl BattleLoadOpponentMonSpriteGfx ldrb r0, [r6] bl GetBankIdentity adds r1, r0, 0 @@ -3654,7 +3654,7 @@ sub_818843C: @ 818843C lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 - bl sub_805EE54 + bl SetBankEnemyShadowSpriteCallback ldr r1, =gBattleBankFunc ldrb r0, [r6] lsls r0, 2 @@ -3753,7 +3753,7 @@ sub_81885D8: @ 81885D8 adds r0, r1, 0 adds r0, r5 adds r1, r6, 0 - bl sub_805DC0C + bl BattleLoadOpponentMonSpriteGfx adds r0, r6, 0 bl GetBankIdentity adds r1, r0, 0 @@ -3928,7 +3928,7 @@ _081887B0: ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] - bl sub_8072984 + bl SetHealthboxSpriteInvisible bl RecordedOpponentBufferExecCompleted _081887EC: pop {r4-r6} @@ -4981,7 +4981,7 @@ sub_81890CC: @ 81890CC ldr r2, =gEnemyParty adds r1, r2 movs r2, 0x9 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute ldrb r2, [r4] ldr r0, =gBattleSpritesDataPtr ldr r0, [r0] @@ -5518,7 +5518,7 @@ c3_0803D564: @ 8189548 adds r0, r1 ldrh r0, [r0, 0x8] strb r0, [r7] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08189582 diff --git a/asm/battle_controller_recorded_player.s b/asm/battle_controller_recorded_player.s index 1b0cd52e3..7a232b7d8 100644 --- a/asm/battle_controller_recorded_player.s +++ b/asm/battle_controller_recorded_player.s @@ -180,11 +180,11 @@ sub_8189AA0: @ 8189AA0 beq _08189ABA b _08189C60 _08189ABA: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08189ADA - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08189B0C @@ -337,7 +337,7 @@ _08189B86: ldr r4, =gPlayerParty adds r0, r4 bl sub_805E990 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08189C22 @@ -366,11 +366,11 @@ _08189C22: b _08189D10 .pool _08189C60: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08189C80 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08189CB0 @@ -561,7 +561,7 @@ _08189DBE: ands r0, r1 cmp r0, 0 bne _08189E84 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08189E54 @@ -587,7 +587,7 @@ _08189DBE: ldr r2, =gPlayerParty adds r1, r2 movs r2, 0 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute mov r1, r9 ldrb r0, [r1] eors r0, r7 @@ -597,7 +597,7 @@ _08189DBE: eors r0, r7 adds r0, r4 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible _08189E54: ldr r5, =gHealthBoxesIds ldr r4, =gActiveBank @@ -613,13 +613,13 @@ _08189E54: ldr r2, =gPlayerParty adds r1, r2 movs r2, 0 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute ldrb r0, [r4] bl sub_8076918 ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible _08189E84: ldr r4, =gBattleSpritesDataPtr ldr r0, [r4] @@ -747,7 +747,7 @@ _08189F62: ldr r0, [r0] cmp r0, r2 bne _0818A02A - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08189FC8 @@ -874,7 +874,7 @@ sub_818A0A4: @ 818A0A4 ldrb r0, [r5] adds r0, r6 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible lsls r4, 16 asrs r1, r4, 16 movs r0, 0x1 @@ -963,7 +963,7 @@ sub_818A114: @ 818A114 ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] - bl sub_8072984 + bl SetHealthboxSpriteInvisible bl RecordedPlayerBufferExecCompleted _0818A190: pop {r4-r6} @@ -1010,7 +1010,7 @@ sub_818A1B0: @ 818A1B0 ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] - bl sub_8072984 + bl SetHealthboxSpriteInvisible bl RecordedPlayerBufferExecCompleted _0818A204: pop {r4-r6} @@ -1254,13 +1254,13 @@ sub_818A37C: @ 818A37C muls r1, r6 adds r1, r5 movs r2, 0 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute ldrb r0, [r7] bl sub_8076918 ldrb r0, [r7] adds r0, r4 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible ldr r1, =gBattleBankFunc ldrb r0, [r7] lsls r0, 2 @@ -3530,7 +3530,7 @@ sub_818B8E0: @ 818B8E0 muls r0, r5 ldr r4, =gPlayerParty adds r0, r4 - bl sub_805DD7C + bl BattleLoadPlayerMonSpriteGfx ldrb r0, [r6] lsls r0, 1 add r0, r8 @@ -3659,7 +3659,7 @@ sub_818B9FC: @ 818B9FC muls r0, r2 ldr r2, =gPlayerParty adds r0, r2 - bl sub_805DD7C + bl BattleLoadPlayerMonSpriteGfx ldrb r0, [r5] lsls r1, r0, 9 adds r1, r6 @@ -3890,7 +3890,7 @@ _0818BC30: ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] - bl sub_8072984 + bl SetHealthboxSpriteInvisible bl RecordedPlayerBufferExecCompleted _0818BC66: pop {r4-r6} @@ -4040,7 +4040,7 @@ _0818BD98: movs r0, 0x50 mov r9, r0 _0818BD9C: - ldr r1, =gUnknown_08305D2C + ldr r1, =gTrainerBackPicCoords _0818BD9E: lsls r0, r4, 2 adds r0, r1 @@ -4182,7 +4182,7 @@ _0818BEDC: ldr r5, =gActiveBank ldrb r1, [r5] adds r0, r4, 0 - bl sub_805DF84 + bl LoadBackTrainerBankSpriteGfx ldrb r0, [r5] bl GetBankIdentity adds r1, r0, 0 @@ -5132,7 +5132,7 @@ sub_818C6F4: @ 818C6F4 ldr r2, =gPlayerParty adds r1, r2 movs r2, 0x9 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute ldrb r2, [r4] ldr r0, =gBattleSpritesDataPtr ldr r0, [r0] @@ -5746,7 +5746,7 @@ _0818CC50: mov r9, r0 ldrh r0, [r1, 0x8] strb r0, [r7] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0818CC70 @@ -5805,7 +5805,7 @@ _0818CCA0: muls r0, r2 ldr r2, =gPlayerParty adds r0, r2 - bl sub_805DD7C + bl BattleLoadPlayerMonSpriteGfx ldrb r0, [r7] movs r1, 0 bl sub_818BA6C diff --git a/asm/battle_controller_safari.s b/asm/battle_controller_safari.s index 26f7ad8f7..0783d2c6d 100644 --- a/asm/battle_controller_safari.s +++ b/asm/battle_controller_safari.s @@ -132,7 +132,7 @@ _08159446: ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] - bl sub_8059CF8 + bl ActionSelectionDestroyCursorAt ldrb r1, [r4] adds r1, r5 ldrb r0, [r1] @@ -158,7 +158,7 @@ _08159484: ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] - bl sub_8059CF8 + bl ActionSelectionDestroyCursorAt ldrb r1, [r4] adds r1, r5 ldrb r0, [r1] @@ -184,7 +184,7 @@ _081594C0: ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] - bl sub_8059CF8 + bl ActionSelectionDestroyCursorAt ldrb r1, [r4] adds r1, r5 ldrb r0, [r1] @@ -196,7 +196,7 @@ _081594F2: adds r0, r5 ldrb r0, [r0] movs r1, 0 - bl sub_8059CB4 + bl ActionSelectionCreateCursorAt b _0815954E .pool _0815950C: @@ -218,7 +218,7 @@ _0815950C: ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] - bl sub_8059CF8 + bl ActionSelectionDestroyCursorAt ldrb r1, [r4] adds r1, r5 ldrb r0, [r1] @@ -229,7 +229,7 @@ _0815950C: adds r0, r5 ldrb r0, [r0] movs r1, 0 - bl sub_8059CB4 + bl ActionSelectionCreateCursorAt _0815954E: pop {r4,r5} pop {r0} @@ -569,7 +569,7 @@ sub_8159800: @ 8159800 ldrb r0, [r0, 0x8] ldr r5, =gActiveBank ldrb r1, [r5] - bl sub_805DF84 + bl LoadBackTrainerBankSpriteGfx ldr r0, [r4] ldrb r6, [r0, 0x8] ldrb r0, [r5] @@ -580,7 +580,7 @@ sub_8159800: @ 8159800 adds r0, r6, 0 bl sub_806A12C ldr r0, =gUnknown_0202499C - ldr r2, =gUnknown_08305D2C + ldr r2, =gTrainerBackPicCoords ldr r1, [r4] ldrb r1, [r1, 0x8] lsls r1, 2 @@ -867,7 +867,7 @@ sub_8159A94: @ 8159A94 _08159AAE: lsls r0, r4, 24 lsrs r0, 24 - bl sub_8059CF8 + bl ActionSelectionDestroyCursorAt adds r4, 0x1 cmp r4, 0x3 ble _08159AAE @@ -877,7 +877,7 @@ _08159AAE: adds r0, r1 ldrb r0, [r0] movs r1, 0 - bl sub_8059CB4 + bl ActionSelectionCreateCursorAt ldr r0, =gText_WhatWillPkmnDo2 bl BattleStringExpandPlaceholdersToDisplayedString ldr r0, =gDisplayedStringBattle @@ -981,7 +981,7 @@ sub_8159B84: @ 8159B84 ldr r2, =gPlayerParty adds r1, r2 movs r2, 0xB - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute bl SafariBufferExecCompleted pop {r0} bx r0 @@ -1256,13 +1256,13 @@ sub_8159D90: @ 8159D90 ldr r2, =gPlayerParty adds r1, r2 movs r2, 0xA - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute ldrb r0, [r4] bl sub_8076918 ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible ldr r1, =gBattleBankFunc ldrb r0, [r4] lsls r0, 2 diff --git a/asm/battle_controller_wally.s b/asm/battle_controller_wally.s index 629fa308d..548414222 100644 --- a/asm/battle_controller_wally.s +++ b/asm/battle_controller_wally.s @@ -180,10 +180,10 @@ _08168508: movs r0, 0x5 bl PlaySE movs r0, 0 - bl sub_8059CF8 + bl ActionSelectionDestroyCursorAt movs r0, 0x1 movs r1, 0 - bl sub_8059CB4 + bl ActionSelectionCreateCursorAt ldr r0, [r4] adds r0, 0x96 movs r1, 0x40 @@ -425,7 +425,7 @@ _081686D2: ldr r0, [r0] cmp r0, r3 bne _081687DC - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _0816877A @@ -459,7 +459,7 @@ _081686D2: ldr r2, =gPlayerParty adds r1, r2 movs r2, 0 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute ldrb r0, [r5] eors r0, r6 bl sub_8076918 @@ -467,7 +467,7 @@ _081686D2: eors r0, r6 adds r0, r4 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible _0816877A: ldr r1, =gUnknown_03005D7C ldr r4, =gActiveBank @@ -493,13 +493,13 @@ _0816877A: ldr r2, =gPlayerParty adds r1, r2 movs r2, 0 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute ldrb r0, [r4] bl sub_8076918 ldrb r0, [r4] adds r0, r5 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible ldr r0, =gBattleSpritesDataPtr ldr r0, [r0] ldr r2, [r0, 0x8] @@ -665,7 +665,7 @@ sub_8168934: @ 8168934 ldrb r0, [r5] adds r0, r6 ldrb r0, [r0] - bl sub_80729D0 + bl SetHealthboxSpriteVisible lsls r4, 16 asrs r1, r4, 16 movs r0, 0x1 @@ -796,7 +796,7 @@ sub_8168A20: @ 8168A20 ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] - bl sub_8072984 + bl SetHealthboxSpriteInvisible bl WallyBufferExecCompleted _08168A74: pop {r4-r6} @@ -3015,7 +3015,7 @@ _08169E80: ldrb r0, [r6] adds r0, r1 ldrb r0, [r0] - bl sub_8072984 + bl SetHealthboxSpriteInvisible bl WallyBufferExecCompleted _08169EB6: pop {r4-r6} @@ -3030,7 +3030,7 @@ sub_8169EC8: @ 8169EC8 ldr r4, =gActiveBank ldrb r1, [r4] movs r0, 0x6 - bl sub_805DF84 + bl LoadBackTrainerBankSpriteGfx ldrb r0, [r4] bl GetBankIdentity adds r1, r0, 0 @@ -3039,7 +3039,7 @@ sub_8169EC8: @ 8169EC8 movs r0, 0x6 bl sub_806A12C ldr r0, =gUnknown_0202499C - ldr r1, =gUnknown_08305D2C + ldr r1, =gTrainerBackPicCoords ldrb r1, [r1, 0x18] movs r2, 0x8 subs r2, r1 @@ -3115,7 +3115,7 @@ dp01t_07_6_: @ 8169F94 ldr r4, =gActiveBank ldrb r1, [r4] movs r0, 0x6 - bl sub_805DF84 + bl LoadBackTrainerBankSpriteGfx ldrb r0, [r4] bl GetBankIdentity adds r1, r0, 0 @@ -3124,7 +3124,7 @@ dp01t_07_6_: @ 8169F94 movs r0, 0x6 bl sub_806A12C ldr r0, =gUnknown_0202499C - ldr r1, =gUnknown_08305D2C + ldr r1, =gTrainerBackPicCoords ldrb r1, [r1, 0x18] movs r2, 0x8 subs r2, r1 @@ -3681,7 +3681,7 @@ dp01t_12_1_battle_menu: @ 816A470 _0816A48A: lsls r0, r4, 24 lsrs r0, 24 - bl sub_8059CF8 + bl ActionSelectionDestroyCursorAt adds r4, 0x1 cmp r4, 0x3 ble _0816A48A @@ -3691,7 +3691,7 @@ _0816A48A: adds r0, r1 ldrb r0, [r0] movs r1, 0 - bl sub_8059CB4 + bl ActionSelectionCreateCursorAt ldr r0, =gText_WhatWillWallyDo bl BattleStringExpandPlaceholdersToDisplayedString ldr r0, =gDisplayedStringBattle diff --git a/asm/battle_interface.s b/asm/battle_interface.s index d9bb3d8cc..1f1185032 100755 --- a/asm/battle_interface.s +++ b/asm/battle_interface.s @@ -261,8 +261,8 @@ sub_80724A8: @ 80724A8 bx r0 thumb_func_end sub_80724A8 - thumb_func_start battle_make_oam_normal_battle -battle_make_oam_normal_battle: @ 80724DC + thumb_func_start CreateBankHealthboxSprites +CreateBankHealthboxSprites: @ 80724DC push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -274,7 +274,7 @@ battle_make_oam_normal_battle: @ 80724DC mov r10, r0 movs r0, 0 str r0, [sp] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _080725F0 @@ -608,10 +608,10 @@ _08072718: pop {r1} bx r1 .pool - thumb_func_end battle_make_oam_normal_battle + thumb_func_end CreateBankHealthboxSprites - thumb_func_start battle_make_oam_safari_battle -battle_make_oam_safari_battle: @ 8072804 + thumb_func_start CreateSafariPlayerHealthboxSprites +CreateSafariPlayerHealthboxSprites: @ 8072804 push {r4-r7,lr} mov r7, r9 mov r6, r8 @@ -680,7 +680,7 @@ battle_make_oam_safari_battle: @ 8072804 pop {r1} bx r1 .pool - thumb_func_end battle_make_oam_safari_battle + thumb_func_end CreateSafariPlayerHealthboxSprites thumb_func_start sub_80728A4 sub_80728A4: @ 80728A4 @@ -802,8 +802,8 @@ sub_807294C: @ 807294C .pool thumb_func_end sub_807294C - thumb_func_start sub_8072984 -sub_8072984: @ 8072984 + thumb_func_start SetHealthboxSpriteInvisible +SetHealthboxSpriteInvisible: @ 8072984 push {r4,lr} lsls r0, 24 lsrs r0, 24 @@ -841,10 +841,10 @@ sub_8072984: @ 8072984 pop {r0} bx r0 .pool - thumb_func_end sub_8072984 + thumb_func_end SetHealthboxSpriteInvisible - thumb_func_start sub_80729D0 -sub_80729D0: @ 80729D0 + thumb_func_start SetHealthboxSpriteVisible +SetHealthboxSpriteVisible: @ 80729D0 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 @@ -885,7 +885,7 @@ sub_80729D0: @ 80729D0 pop {r0} bx r0 .pool - thumb_func_end sub_80729D0 + thumb_func_end SetHealthboxSpriteVisible thumb_func_start sub_8072A24 sub_8072A24: @ 8072A24 @@ -1014,14 +1014,14 @@ _08072B00: .pool thumb_func_end sub_8072A88 - thumb_func_start sub_8072B18 -sub_8072B18: @ 8072B18 + thumb_func_start SetBankHealthboxSpritePos +SetBankHealthboxSpritePos: @ 8072B18 push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 movs r5, 0 movs r4, 0 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _08072B44 @@ -1081,7 +1081,7 @@ _08072B7C: pop {r0} bx r0 .pool - thumb_func_end sub_8072B18 + thumb_func_end SetBankHealthboxSpritePos thumb_func_start healthbar_draw_level healthbar_draw_level: @ 8072B94 @@ -1132,7 +1132,7 @@ healthbar_draw_level: @ 8072B94 lsls r0, 24 cmp r0, 0 bne _08072C18 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 ldr r2, =0x06010420 adds r1, r4, r2 @@ -1187,7 +1187,7 @@ heathbar_draw_hp: @ 8072C38 lsls r0, 24 cmp r0, 0 bne _08072D10 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _08072D10 @@ -1267,7 +1267,7 @@ _08072D10: ldrh r0, [r6, 0x3A] lsls r0, 24 lsrs r5, r0, 24 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r0, 24 mov r10, r4 @@ -1993,7 +1993,7 @@ _08073354: bne _0807336A b _080735A8 _0807336A: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _08073382 @@ -2036,7 +2036,7 @@ _08073382: lsls r0, 24 cmp r0, 0 bne _080734B0 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _080733D0 @@ -2107,7 +2107,7 @@ _08073468: ldr r2, =gPlayerParty adds r1, r2 movs r2, 0x5 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute movs r0, 0x75 bl sub_80728A4 ldrb r2, [r6] @@ -2209,7 +2209,7 @@ _0807355C: ldr r4, =gEnemyParty adds r1, r4 movs r2, 0x5 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x80 @@ -2222,7 +2222,7 @@ _0807355C: muls r1, r5 adds r1, r4 movs r2, 0x4 - bl healthbar_draw_field_maybe + bl UpdateHealthboxAttribute _08073592: ldr r0, =gHealthBoxesIds add r0, r9 @@ -2303,7 +2303,7 @@ _08073630: mov r9, r3 cmp r4, 0 beq _08073642 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _08073648 @@ -3842,7 +3842,7 @@ _08074272: adds r1, r6, 0 movs r2, 0x6 bl sub_8075198 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 ldr r1, =0x06010400 adds r5, r4, r1 @@ -4013,7 +4013,7 @@ draw_status_ailment_maybe: @ 80743F8 movs r1, 0x37 bl GetMonData adds r4, r0, 0 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 movs r3, 0x12 mov r8, r3 @@ -4210,7 +4210,7 @@ _080745B8: ldr r2, =0x04000018 adds r0, r6, 0 bl CpuSet - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -4468,8 +4468,8 @@ sub_80747D8: @ 80747D8 .pool thumb_func_end sub_80747D8 - thumb_func_start healthbar_draw_field_maybe -healthbar_draw_field_maybe: @ 8074860 + thumb_func_start UpdateHealthboxAttribute +UpdateHealthboxAttribute: @ 8074860 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -4492,7 +4492,7 @@ healthbar_draw_field_maybe: @ 8074860 mov r9, r0 cmp r7, 0 bne _0807489C - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _0807489C @@ -4581,7 +4581,7 @@ _08074914: movs r3, 0 bl sub_8074AA0 _08074948: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 lsrs r0, 24 mov r10, r0 @@ -4742,7 +4742,7 @@ _08074A8E: pop {r4-r7} pop {r0} bx r0 - thumb_func_end healthbar_draw_field_maybe + thumb_func_end UpdateHealthboxAttribute thumb_func_start sub_8074AA0 sub_8074AA0: @ 8074AA0 diff --git a/asm/party_menu.s b/asm/party_menu.s index a881d4589..334c96985 100755 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -15872,7 +15872,7 @@ sub_81B8958: @ 81B8958 thumb_func_start sub_81B8984 sub_81B8984: @ 81B8984 push {lr} - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _081B8994 @@ -16222,7 +16222,7 @@ _081B8CB0: strb r0, [r6, 0x2] b _081B8D58 _081B8CBE: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _081B8CFC @@ -16382,7 +16382,7 @@ _081B8DE2: strb r0, [r5, 0x2] b _081B8E72 _081B8DF0: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 bne _081B8E28 diff --git a/asm/pokeball.s b/asm/pokeball.s index 4e637fb9d..fed227c80 100755 --- a/asm/pokeball.s +++ b/asm/pokeball.s @@ -1211,7 +1211,7 @@ _08075DD4: cmp r5, r0 bne _08075E56 _08075E00: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08075E56 @@ -1243,7 +1243,7 @@ _08075E4C: movs r2, 0x80 bl m4aMPlayVolumeControl _08075E56: - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08075E70 @@ -1815,7 +1815,7 @@ _080762F8: ldrb r0, [r5, 0x6] strh r0, [r5, 0x3A] strh r1, [r5, 0x2E] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _08076358 @@ -1888,7 +1888,7 @@ sub_8076398: @ 8076398 ble _080763EC movs r0, 0 strh r0, [r5, 0x2E] - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _080763E8 diff --git a/asm/reshow_battle_screen.s b/asm/reshow_battle_screen.s deleted file mode 100644 index d9b679750..000000000 --- a/asm/reshow_battle_screen.s +++ /dev/null @@ -1,1040 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start nullsub_35 -nullsub_35: @ 80A92F4 - bx lr - thumb_func_end nullsub_35 - - thumb_func_start ReshowBattleScreenAfterMenu -ReshowBattleScreenAfterMenu: @ 80A92F8 - push {lr} - ldr r2, =gPaletteFade - ldrb r0, [r2, 0x8] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2, 0x8] - movs r0, 0 - bl SetHBlankCallback - movs r0, 0 - bl SetVBlankCallback - movs r0, 0x4C - movs r1, 0 - bl SetGpuReg - ldr r0, =gBattleScripting - adds r2, r0, 0 - adds r2, 0x21 - movs r1, 0 - strb r1, [r2] - adds r0, 0x22 - strb r1, [r0] - ldr r0, =c2_80777E8 - bl SetMainCallback2 - pop {r0} - bx r0 - .pool - thumb_func_end ReshowBattleScreenAfterMenu - - thumb_func_start c2_80777E8 -c2_80777E8: @ 80A933C - push {r4-r7,lr} - sub sp, 0x8 - ldr r0, =gBattleScripting - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x13 - bls _080A934C - b _080A95A4 -_080A934C: - lsls r0, 2 - ldr r1, =_080A9360 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080A9360: - .4byte _080A93B0 - .4byte _080A942C - .4byte _080A9444 - .4byte _080A944A - .4byte _080A9450 - .4byte _080A9460 - .4byte _080A9466 - .4byte _080A948E - .4byte _080A9492 - .4byte _080A9496 - .4byte _080A949A - .4byte _080A94B8 - .4byte _080A94C0 - .4byte _080A94C8 - .4byte _080A94D0 - .4byte _080A94D8 - .4byte _080A94E0 - .4byte _080A94E8 - .4byte _080A94F0 - .4byte _080A94F8 -_080A93B0: - bl dp12_8087EA4 - bl trs_config - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0 - bl SetBgAttribute - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0 - bl SetBgAttribute - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl ShowBg - bl ResetPaletteFade - ldr r0, =gBattle_BG0_X - movs r1, 0 - strh r1, [r0] - ldr r0, =gBattle_BG0_Y - strh r1, [r0] - ldr r0, =gBattle_BG1_X - strh r1, [r0] - ldr r0, =gBattle_BG1_Y - strh r1, [r0] - ldr r0, =gBattle_BG2_X - strh r1, [r0] - ldr r0, =gBattle_BG2_Y - strh r1, [r0] - ldr r0, =gBattle_BG3_X - strh r1, [r0] - ldr r0, =gBattle_BG3_Y - strh r1, [r0] - b _080A95D2 - .pool -_080A942C: - movs r0, 0 - str r0, [sp, 0x4] - movs r1, 0xC0 - lsls r1, 19 - ldr r2, =0x01006000 - add r0, sp, 0x4 - bl CpuFastSet - b _080A95D2 - .pool -_080A9444: - bl LoadBattleTextboxAndBackground - b _080A95D2 -_080A944A: - bl ResetSpriteData - b _080A95D2 -_080A9450: - bl FreeAllSpritePalettes - ldr r1, =gReservedSpritePaletteCount - movs r0, 0x4 - strb r0, [r1] - b _080A95D2 - .pool -_080A9460: - bl sub_805E350 - b _080A95D2 -_080A9466: - ldr r5, =gBattleScripting - adds r4, r5, 0 - adds r4, 0x22 - ldrb r0, [r4] - bl sub_805E08C - lsls r0, 24 - cmp r0, 0 - beq _080A9484 - movs r0, 0 - strb r0, [r4] - b _080A95D2 - .pool -_080A9484: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - adds r1, r5, 0 - b _080A94AA -_080A948E: - movs r0, 0 - b _080A949C -_080A9492: - movs r0, 0x1 - b _080A949C -_080A9496: - movs r0, 0x2 - b _080A949C -_080A949A: - movs r0, 0x3 -_080A949C: - bl sub_80A9614 - lsls r0, 24 - cmp r0, 0 - beq _080A94A8 - b _080A95D2 -_080A94A8: - ldr r1, =gBattleScripting -_080A94AA: - adds r1, 0x21 - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - b _080A95D2 - .pool -_080A94B8: - movs r0, 0 - bl sub_80A9708 - b _080A95D2 -_080A94C0: - movs r0, 0x1 - bl sub_80A9708 - b _080A95D2 -_080A94C8: - movs r0, 0x2 - bl sub_80A9708 - b _080A95D2 -_080A94D0: - movs r0, 0x3 - bl sub_80A9708 - b _080A95D2 -_080A94D8: - movs r0, 0 - bl sub_80A9ADC - b _080A95D2 -_080A94E0: - movs r0, 0x1 - bl sub_80A9ADC - b _080A95D2 -_080A94E8: - movs r0, 0x2 - bl sub_80A9ADC - b _080A95D2 -_080A94F0: - movs r0, 0x3 - bl sub_80A9ADC - b _080A95D2 -_080A94F8: - bl sub_805EC84 - movs r0, 0x1 - bl GetBankByIdentity - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r7, =gBattlePartyID - lsls r0, r4, 1 - adds r0, r7 - ldrh r0, [r0] - movs r6, 0x64 - muls r0, r6 - ldr r5, =gEnemyParty - adds r0, r5 - movs r1, 0xB - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_805EE54 - bl battle_type_is_double - lsls r0, 24 - cmp r0, 0 - beq _080A955C - movs r0, 0x3 - bl GetBankByIdentity - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r4, 1 - adds r0, r7 - ldrh r0, [r0] - muls r0, r6 - adds r0, r5 - movs r1, 0xB - bl GetMonData - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_805EE54 -_080A955C: - ldr r1, =gActionSelectionCursor - ldr r0, =gBankInMenu - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - movs r1, 0 - bl sub_8059CB4 - ldr r0, =gLinkVSyncDisabled - ldrb r0, [r0] - cmp r0, 0 - beq _080A95D2 - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - beq _080A95D2 - bl sub_800E0E8 - movs r0, 0 - movs r1, 0 - bl sub_800DFB4 - b _080A95D2 - .pool -_080A95A4: - ldr r0, =VBlankCB_Battle - bl SetVBlankCallback - bl sub_80A95F4 - movs r0, 0x1 - str r0, [sp] - movs r0, 0xFF - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginHardwarePaletteFade - ldr r2, =gPaletteFade - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x8] - ldr r0, =BattleMainCB2 - bl SetMainCallback2 - bl sub_805EF14 -_080A95D2: - ldr r1, =gBattleScripting - adds r1, 0x21 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end c2_80777E8 - - thumb_func_start sub_80A95F4 -sub_80A95F4: @ 80A95F4 - ldr r3, =0x0400000a - ldrb r2, [r3] - movs r1, 0xD - negs r1, r1 - adds r0, r1, 0 - ands r0, r2 - strb r0, [r3] - ldr r2, =0x0400000c - ldrb r0, [r2] - ands r1, r0 - strb r1, [r2] - bx lr - .pool - thumb_func_end sub_80A95F4 - - thumb_func_start sub_80A9614 -sub_80A9614: @ 80A9614 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r4, r0 - bcs _080A96FC - adds r0, r4, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080A9676 - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r4, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - bne _080A966C - ldr r1, =gBattlePartyID - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - adds r1, r4, 0 - bl sub_805DC0C - b _080A96F4 - .pool -_080A966C: - adds r0, r4, 0 - movs r1, 0 - bl sub_805E7DC - b _080A96F4 -_080A9676: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r2, 0x80 - ands r1, r2 - cmp r1, 0 - beq _080A9698 - cmp r4, 0 - bne _080A9698 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - b _080A96AA - .pool -_080A9698: - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 2 - ands r0, r1 - cmp r0, 0 - beq _080A96B2 - cmp r4, 0 - bne _080A96B2 - movs r0, 0x6 -_080A96AA: - movs r1, 0 - bl sub_805DF84 - b _080A96F4 -_080A96B2: - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r1, [r0] - lsls r0, r4, 2 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - bne _080A96EC - ldr r1, =gBattlePartyID - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - adds r1, r4, 0 - bl sub_805DD7C - b _080A96F4 - .pool -_080A96EC: - adds r0, r4, 0 - movs r1, 0 - bl sub_805E7DC -_080A96F4: - ldr r0, =gBattleScripting - adds r0, 0x22 - movs r1, 0 - strb r1, [r0] -_080A96FC: - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80A9614 - - thumb_func_start sub_80A9708 -sub_80A9708: @ 80A9708 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r7, r0 - bcc _080A9722 - b _080A9AA0 -_080A9722: - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0] - lsls r2, r7, 2 - adds r0, r2, r0 - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - str r2, [sp] - cmp r0, 0 - beq _080A9748 - adds r0, r7, 0 - bl sub_80A614C - b _080A974E - .pool -_080A9748: - adds r0, r7, 0 - bl sub_80A6138 -_080A974E: - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - adds r0, r7, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080A9762 - b _080A986C -_080A9762: - ldr r1, =gBattlePartyID - lsls r0, r7, 1 - adds r6, r0, r1 - ldrh r0, [r6] - movs r1, 0x64 - mov r10, r1 - mov r2, r10 - muls r2, r0 - adds r0, r2, 0 - ldr r1, =gEnemyParty - mov r9, r1 - add r0, r9 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _080A9786 - b _080A9AA0 -_080A9786: - ldrh r0, [r6] - mov r2, r10 - muls r2, r0 - adds r0, r2, 0 - add r0, r9 - movs r1, 0xB - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r7, 0 - bl GetBankIdentity - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_806A068 - ldr r5, =gUnknown_0202499C - adds r0, r7, 0 - movs r1, 0x2 - bl sub_80A5C6C - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r7, 0 - bl sub_80A82E4 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r5, 0 - adds r1, r4, 0 - mov r2, r8 - bl CreateSprite - ldr r1, =gBankSpriteIds - adds r4, r7, r1 - strb r0, [r4] - ldr r5, =gSprites - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, r7, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =SpriteCallbackDummy - str r1, [r0] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r7, [r0, 0x2E] - ldrh r0, [r6] - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - add r0, r9 - movs r1, 0xB - bl GetMonData - ldrb r2, [r4] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r5 - strh r0, [r1, 0x32] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =gBattleMonForms - adds r1, r7, r1 - ldrb r1, [r1] - bl StartSpriteAnim - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0] - ldr r2, [sp] - adds r0, r2, r0 - b _080A9A50 - .pool -_080A986C: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r2, 0x80 - ands r1, r2 - cmp r1, 0 - beq _080A98D0 - cmp r7, 0 - bne _080A98D0 - ldr r5, =gSaveBlock2Ptr - ldr r0, [r5] - ldrb r4, [r0, 0x8] - movs r0, 0 - bl GetBankIdentity - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_806A12C - ldr r6, =gUnknown_0202499C - ldr r1, =gUnknown_08305D2C - ldr r0, [r5] - ldrb r0, [r0, 0x8] - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0] - movs r4, 0x8 - subs r4, r0 - lsls r4, 18 - movs r0, 0xA0 - lsls r0, 15 - adds r4, r0 - asrs r4, 16 - movs r0, 0 - bl sub_80A82E4 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r6, 0 - b _080A9914 - .pool -_080A98D0: - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 2 - ands r0, r1 - cmp r0, 0 - beq _080A9968 - cmp r7, 0 - bne _080A9968 - movs r0, 0 - bl GetBankIdentity - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0x6 - bl sub_806A12C - ldr r5, =gUnknown_0202499C - ldr r0, =gUnknown_08305D2C - ldrb r0, [r0, 0x18] - movs r4, 0x8 - subs r4, r0 - lsls r4, 18 - movs r1, 0xA0 - lsls r1, 15 - adds r4, r1 - asrs r4, 16 - movs r0, 0 - bl sub_80A82E4 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r5, 0 -_080A9914: - movs r1, 0x50 - adds r2, r4, 0 - bl CreateSprite - ldr r3, =gBankSpriteIds - strb r0, [r3] - ldr r4, =gSprites - ldrb r0, [r3] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - strb r0, [r1, 0x5] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r4, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =SpriteCallbackDummy - str r1, [r0] - ldrb r1, [r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - strh r7, [r0, 0x2E] - b _080A9A70 - .pool -_080A9968: - ldr r1, =gBattlePartyID - lsls r0, r7, 1 - adds r6, r0, r1 - ldrh r0, [r6] - movs r2, 0x64 - mov r10, r2 - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - ldr r2, =gPlayerParty - mov r9, r2 - add r0, r9 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _080A998C - b _080A9AA0 -_080A998C: - ldrh r0, [r6] - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - add r0, r9 - movs r1, 0xB - bl GetMonData - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r7, 0 - bl GetBankIdentity - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_806A068 - ldr r5, =gUnknown_0202499C - adds r0, r7, 0 - movs r1, 0x2 - bl sub_80A5C6C - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r7, 0 - bl sub_80A82E4 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r5, 0 - adds r1, r4, 0 - mov r2, r8 - bl CreateSprite - ldr r1, =gBankSpriteIds - adds r4, r7, r1 - strb r0, [r4] - ldr r5, =gSprites - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r5 - lsls r3, r7, 4 - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r3 - strb r0, [r1, 0x5] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r1 - ldr r1, =SpriteCallbackDummy - str r1, [r0] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - strh r7, [r0, 0x2E] - ldrh r0, [r6] - mov r2, r10 - muls r2, r0 - adds r0, r2, 0 - add r0, r9 - movs r1, 0xB - bl GetMonData - ldrb r2, [r4] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r5 - strh r0, [r1, 0x32] - ldrb r1, [r4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, =gBattleMonForms - adds r1, r7, r1 - ldrb r1, [r1] - bl StartSpriteAnim - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0] - ldr r1, [sp] - adds r0, r1, r0 -_080A9A50: - ldrh r1, [r0, 0x2] - ldr r0, =0x00000181 - cmp r1, r0 - bne _080A9A70 - ldrb r0, [r4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r0, r5, 0 - adds r0, 0x8 - adds r1, r0 - ldr r0, =gUnknown_08309AAC - ldr r2, =0x00000604 - adds r0, r2 - ldr r0, [r0] - str r0, [r1] -_080A9A70: - ldr r1, =gSprites - ldr r0, =gBankSpriteIds - adds r0, r7, r0 - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - ldr r0, =gBattleSpritesDataPtr - ldr r0, [r0] - ldr r0, [r0] - ldr r1, [sp] - adds r0, r1, r0 - ldr r1, [r0] - lsls r1, 31 - adds r2, 0x3E - lsrs r1, 31 - lsls r1, 2 - ldrb r3, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] -_080A9AA0: - 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_80A9708 - - thumb_func_start sub_80A9ADC -sub_80A9ADC: @ 80A9ADC - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gNoOfAllBanks - ldrb r0, [r0] - cmp r5, r0 - bcc _080A9AEC - b _080A9C5E -_080A9AEC: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r2, 0x80 - ands r1, r2 - cmp r1, 0 - beq _080A9B0C - cmp r5, 0 - bne _080A9B0C - bl battle_make_oam_safari_battle - b _080A9B24 - .pool -_080A9B0C: - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 2 - ands r0, r1 - cmp r0, 0 - beq _080A9B1E - cmp r5, 0 - bne _080A9B1E - b _080A9C5E -_080A9B1E: - adds r0, r5, 0 - bl battle_make_oam_normal_battle -_080A9B24: - lsls r0, 24 - lsrs r6, r0, 24 - ldr r0, =gHealthBoxesIds - adds r4, r5, r0 - strb r6, [r4] - adds r0, r5, 0 - bl sub_8072B18 - adds r0, r6, 0 - bl sub_80729D0 - adds r0, r5, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080A9B6C - ldrb r0, [r4] - ldr r1, =gBattlePartyID - lsls r4, r5, 1 - adds r1, r4, r1 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gEnemyParty - adds r1, r2 - movs r2, 0 - bl healthbar_draw_field_maybe - b _080A9BB8 - .pool -_080A9B6C: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080A9BA0 - ldrb r0, [r4] - ldr r1, =gBattlePartyID - lsls r4, r5, 1 - adds r1, r4, r1 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gPlayerParty - adds r1, r2 - movs r2, 0xA - bl healthbar_draw_field_maybe - b _080A9BB8 - .pool -_080A9BA0: - ldrb r0, [r4] - ldr r1, =gBattlePartyID - lsls r4, r5, 1 - adds r1, r4, r1 - ldrh r2, [r1] - movs r1, 0x64 - muls r1, r2 - ldr r2, =gPlayerParty - adds r1, r2 - movs r2, 0 - bl healthbar_draw_field_maybe -_080A9BB8: - adds r0, r5, 0 - bl GetBankIdentity - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - beq _080A9BD4 - adds r0, r5, 0 - bl GetBankIdentity - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _080A9BF0 -_080A9BD4: - ldr r0, =gHealthBoxesIds - adds r0, r5, r0 - ldrb r0, [r0] - movs r1, 0x1 - bl nullsub_30 - b _080A9BFC - .pool -_080A9BF0: - ldr r0, =gHealthBoxesIds - adds r0, r5, r0 - ldrb r0, [r0] - movs r1, 0 - bl nullsub_30 -_080A9BFC: - adds r0, r5, 0 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - beq _080A9C34 - ldr r0, =gBattlePartyID - adds r0, r4, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gEnemyParty - adds r0, r1 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _080A9C5E - adds r0, r6, 0 - bl sub_8072984 - b _080A9C5E - .pool -_080A9C34: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080A9C5E - ldr r0, =gBattlePartyID - adds r0, r4, r0 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _080A9C5E - adds r0, r6, 0 - bl sub_8072984 -_080A9C5E: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80A9ADC - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/rom_80A5C6C.s b/asm/rom_80A5C6C.s index bb74b3713..a5791c706 100644 --- a/asm/rom_80A5C6C.s +++ b/asm/rom_80A5C6C.s @@ -1928,15 +1928,15 @@ _080A6B1A: bx r1 thumb_func_end sub_80A6A90 - thumb_func_start battle_type_is_double -battle_type_is_double: @ 80A6B20 + thumb_func_start IsDoubleBattle +IsDoubleBattle: @ 80A6B20 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x1 ands r0, r1 bx lr .pool - thumb_func_end battle_type_is_double + thumb_func_end IsDoubleBattle thumb_func_start sub_80A6B30 sub_80A6B30: @ 80A6B30 @@ -5807,7 +5807,7 @@ _080A8946: bl sub_80A5C6C lsls r0, 24 lsrs r7, r0, 24 - bl battle_type_is_double + bl IsDoubleBattle lsls r0, 24 cmp r0, 0 beq _080A8998 diff --git a/data/data2b.s b/data/data2b.s index 802399fca..87c5e6905 100644 --- a/data/data2b.s +++ b/data/data2b.s @@ -134,7 +134,7 @@ gUnknown_083054E0:: @ 83054E0 gUnknown_08305D0C:: @ 8305D0C .incbin "baserom.gba", 0x305d0c, 0x20 -gUnknown_08305D2C:: @ 8305D2C +gTrainerBackPicCoords:: @ 8305D2C .incbin "baserom.gba", 0x305d2c, 0x20 @ 8305D4C @@ -146,7 +146,7 @@ gUnknown_08305D2C:: @ 8305D2C gUnknown_08305DCC:: @ 8305DCC .incbin "baserom.gba", 0x305dcc, 0x3ce0 -gUnknown_08309AAC:: @ 8309AAC +gMonAnimationsSpriteAnimsPtrTable:: @ 8309AAC .incbin "baserom.gba", 0x309aac, 0x6e0 @ 830A18C diff --git a/include/battle.h b/include/battle.h index d41702396..eff1c27f1 100644 --- a/include/battle.h +++ b/include/battle.h @@ -808,8 +808,8 @@ struct BattleScripting u8 atk6C_state; u8 learnMoveState; u8 field_20; - u8 field_21; - u8 field_22; + u8 reshowMainState; + u8 reshowHelperState; u8 field_23; u8 field_24; u8 multiplayerId; @@ -839,9 +839,29 @@ void FreeBattleSpritesData(void); void AllocateMonSpritesGfx(void); void FreeMonSpritesGfx(void); void BattleMusicStop(void); -void sub_805E990(struct Pokemon* mon, u8 bank); +void sub_805E990(struct Pokemon *mon, u8 bank); void sub_805EF14(void); bool8 BattleInitAllSprites(u8 *state1, u8 *state2); +void sub_805E350(void); +bool8 BattleLoadAllHealthBoxesGfx(u8 state); +void LoadAndCreateEnemyShadowSprites(void); +void SetBankEnemyShadowSpriteCallback(u8 bank, u16 species); +void BattleLoadPlayerMonSpriteGfx(struct Pokemon *mon, u8 bank); +void BattleLoadOpponentMonSpriteGfx(struct Pokemon *mon, u8 bank); +void BattleLoadSubstituteSpriteGfx(u8 bank, bool8 arg1); + +enum +{ + BACK_PIC_BRENDAN, + BACK_PIC_MAY, + BACK_PIC_RED, + BACK_PIC_LEAF, + BACK_PIC_RS_BRENDAN, + BACK_PIC_RS_MAY, + BACK_PIC_WALLY, + BACK_PIC_STEVEN +}; +void LoadBackTrainerBankSpriteGfx(u8 backPicId, u8 bank); // rom_80A5C6C u8 GetBankSide(u8 bank); diff --git a/include/battle_controller_player.h b/include/battle_controller_player.h new file mode 100644 index 000000000..6d095efe7 --- /dev/null +++ b/include/battle_controller_player.h @@ -0,0 +1,7 @@ +#ifndef GUARD_BATTLE_CONTROLLER_PLAYER_H +#define GUARD_BATTLE_CONTROLLER_PLAYER_H + +void ActionSelectionCreateCursorAt(u8 cursorPos, u8 unused); +void ActionSelectionDestroyCursorAt(u8 cursorPos); + +#endif // GUARD_BATTLE_CONTROLLER_PLAYER_H diff --git a/include/battle_controllers.h b/include/battle_controllers.h index 2281fdaff..ea614a6b2 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -1,6 +1,8 @@ #ifndef GUARD_BATTLE_CONTROLLERS_H #define GUARD_BATTLE_CONTROLLERS_H +#include "battle_controller_player.h" + #define REQUEST_ALL_BATTLE 0x0 #define REQUEST_SPECIES_BATTLE 0x1 #define REQUEST_HELDITEM_BATTLE 0x2 diff --git a/include/battle_interface.h b/include/battle_interface.h new file mode 100644 index 000000000..cecc7bd1f --- /dev/null +++ b/include/battle_interface.h @@ -0,0 +1,28 @@ +#ifndef GUARD_BATTLE_INTERFACE_H +#define GUARD_BATTLE_INTERFACE_H + +enum +{ + HEALTHBOX_ALL, + HEALTHBOX_CURRENT_HP, + HEALTHBOX_MAX_HP, + HEALTHBOX_LEVEL, + HEALTHBOX_NICK, + HEALTHBOX_HEALTH_BAR, + HEALTHBOX_EXP_BAR, + HEALTHBOX_7, + HEALTHBOX_8, + HEALTHBOX_STATUS_ICON, + HEALTHBOX_SAFARI_ALL_TEXT, + HEALTHBOX_SAFARI_BALLS_TEXT +}; + +u8 CreateBankHealthboxSprites(u8 bank); +u8 CreateSafariPlayerHealthboxSprites(void); +void SetBankHealthboxSpritePos(u8 bank); +void SetHealthboxSpriteVisible(u8 healthboxSpriteId); +void SetHealthboxSpriteInvisible(u8 healthboxSpriteId); +void UpdateHealthboxAttribute(u8 healthboxSpriteId, struct Pokemon *mon, u8 elementId); +void nullsub_30(u8 healthboxSpriteId, bool8 isDoubleBattleBankOnly); + +#endif // GUARD_BATTLE_INTERFACE_H diff --git a/include/reshow_battle_screen.h b/include/reshow_battle_screen.h index 62773b48b..c22135280 100644 --- a/include/reshow_battle_screen.h +++ b/include/reshow_battle_screen.h @@ -1,6 +1,7 @@ #ifndef GUARD_RESHOW_BATTLE_SCREEN_H #define GUARD_RESHOW_BATTLE_SCREEN_H +void nullsub_35(void); void ReshowBattleScreenAfterMenu(void); #endif // GUARD_RESHOW_BATTLE_SCREEN_H diff --git a/ld_script.txt b/ld_script.txt index 82588be3a..f8d38e96f 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -116,7 +116,7 @@ SECTIONS { asm/battle_anim.o(.text); asm/rom_80A5C6C.o(.text); src/task.o(.text); - asm/reshow_battle_screen.o(.text); + src/reshow_battle_screen.o(.text); asm/battle_anim_80A9C70.o(.text); asm/title_screen.o(.text); asm/field_screen.o(.text); diff --git a/src/battle_2.c b/src/battle_2.c index fd7cf6863..13b483ba0 100644 --- a/src/battle_2.c +++ b/src/battle_2.c @@ -219,7 +219,7 @@ extern void sub_81B9150(void); extern void sub_800AC34(void); extern void sub_80B3AF8(u8 taskId); // cable club extern void sub_8076918(u8 bank); -extern void sub_80729D0(u8 healthoxSpriteId); +extern void SetHealthboxSpriteVisible(u8 healthoxSpriteId); extern void sub_81A56B4(void); // battle frontier 2 extern u8 sub_81A9E28(void); // battle frontier 2 extern void sub_81A56E8(u8 bank); // battle frontier 2 @@ -2441,7 +2441,7 @@ static void sub_8039838(struct Sprite *sprite) if (sprite->animEnded) { sub_8076918(sprite->tBank); - sub_80729D0(gHealthBoxesIds[sprite->tBank]); + SetHealthboxSpriteVisible(gHealthBoxesIds[sprite->tBank]); sprite->callback = sub_8039894; StartSpriteAnimIfDifferent(sprite, 0); BeginNormalPaletteFade(0x20000, 0, 10, 0, 0x2108); diff --git a/src/battle_dome_cards.c b/src/battle_dome_cards.c index c0557ac70..5251ee06a 100644 --- a/src/battle_dome_cards.c +++ b/src/battle_dome_cards.c @@ -17,7 +17,7 @@ extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; extern const union AffineAnimCmd *const gUnknown_082FF618[]; extern const union AffineAnimCmd *const gUnknown_082FF694[]; extern const union AnimCmd *const gUnknown_082FF70C[]; -extern const union AnimCmd *const *const gUnknown_08309AAC[NUM_SPECIES]; +extern const union AnimCmd *const *const gMonAnimationsSpriteAnimsPtrTable[NUM_SPECIES]; extern const union AnimCmd *const *const gUnknown_0830536C[]; extern const u8 gUnknown_0831F578[]; @@ -282,7 +282,7 @@ u16 sub_818D3E4(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, images[j].size = 0x800; } gUnknown_0203CCEC.tileTag = 0xFFFF; - gUnknown_0203CCEC.anims = gUnknown_08309AAC[species]; + gUnknown_0203CCEC.anims = gMonAnimationsSpriteAnimsPtrTable[species]; gUnknown_0203CCEC.images = images; if (flags2 == 0x01) { diff --git a/src/pokemon_2.c b/src/pokemon_2.c index 8a16954a7..ee54f0e4d 100644 --- a/src/pokemon_2.c +++ b/src/pokemon_2.c @@ -28,7 +28,7 @@ extern const u32 gBitTable[]; extern const struct SpriteTemplate gUnknown_08329D98[]; extern const struct SpriteTemplate gUnknown_08329DF8[]; extern const union AnimCmd* gUnknown_082FF70C[]; -extern const union AnimCmd* const * const gUnknown_08309AAC[]; +extern const union AnimCmd* const * const gMonAnimationsSpriteAnimsPtrTable[]; extern const union AnimCmd* const * const gUnknown_08305D0C[]; extern const union AnimCmd* const * const gUnknown_0830536C[]; extern const u8 gText_BadEgg[]; @@ -165,9 +165,9 @@ void sub_806A068(u16 species, u8 bankIdentity) if (bankIdentity == 0 || bankIdentity == 2) gUnknown_0202499C.anims = gUnknown_082FF70C; else if (species > 500) - gUnknown_0202499C.anims = gUnknown_08309AAC[species - 500]; + gUnknown_0202499C.anims = gMonAnimationsSpriteAnimsPtrTable[species - 500]; else - gUnknown_0202499C.anims = gUnknown_08309AAC[species]; + gUnknown_0202499C.anims = gMonAnimationsSpriteAnimsPtrTable[species]; } void sub_806A12C(u16 trainerSpriteId, u8 bankIdentity) diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c new file mode 100644 index 000000000..1c13448d4 --- /dev/null +++ b/src/reshow_battle_screen.c @@ -0,0 +1,365 @@ +#include "global.h" +#include "reshow_battle_screen.h" +#include "battle.h" +#include "palette.h" +#include "main.h" +#include "unknown_task.h" +#include "text.h" +#include "gpu_regs.h" +#include "bg.h" +#include "battle_controllers.h" +#include "link.h" +#include "sprite.h" +#include "species.h" +#include "battle_interface.h" + +extern u16 gBattle_BG0_X; +extern u16 gBattle_BG0_Y; +extern u16 gBattle_BG1_X; +extern u16 gBattle_BG1_Y; +extern u16 gBattle_BG2_X; +extern u16 gBattle_BG2_Y; +extern u16 gBattle_BG3_X; +extern u16 gBattle_BG3_Y; +extern u8 gReservedSpritePaletteCount; +extern u8 gActionSelectionCursor[BATTLE_BANKS_COUNT]; +extern u8 gBankInMenu; +extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; +extern u8 gNoOfAllBanks; +extern u32 gBattleTypeFlags; +extern u8 gBankSpriteIds[BATTLE_BANKS_COUNT]; +extern u8 gBattleMonForms[BATTLE_BANKS_COUNT]; +extern u8 gHealthBoxesIds[BATTLE_BANKS_COUNT]; +extern struct SpriteTemplate gUnknown_0202499C; + +extern const union AnimCmd * const * const gMonAnimationsSpriteAnimsPtrTable[]; + +extern void dp12_8087EA4(void); +extern void trs_config(void); +extern bool8 IsDoubleBattle(void); +extern u8 sub_80A614C(u8 bank); +extern u8 sub_80A6138(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); + +// this file's functions +static void CB2_ReshowBattleScreenAfterMenu(void); +static bool8 LoadBankSpriteGfx(u8 bank); +static void CreateBankSprite(u8 bank); +static void CreateHealthboxSprite(u8 bank); +static void sub_80A95F4(void); + +void nullsub_35(void) +{ + +} + +void ReshowBattleScreenAfterMenu(void) +{ + gPaletteFade.bufferTransferDisabled = 1; + SetHBlankCallback(NULL); + SetVBlankCallback(NULL); + SetGpuReg(REG_OFFSET_MOSAIC, 0); + gBattleScripting.reshowMainState = 0; + gBattleScripting.reshowHelperState = 0; + SetMainCallback2(CB2_ReshowBattleScreenAfterMenu); +} + +static void CB2_ReshowBattleScreenAfterMenu(void) +{ + switch (gBattleScripting.reshowMainState) + { + case 0: + dp12_8087EA4(); + trs_config(); + SetBgAttribute(1, BG_CTRL_ATTR_VISIBLE, 0); + SetBgAttribute(2, BG_CTRL_ATTR_VISIBLE, 0); + ShowBg(0); + ShowBg(1); + ShowBg(2); + ShowBg(3); + ResetPaletteFade(); + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; + gBattle_BG1_X = 0; + gBattle_BG1_Y = 0; + gBattle_BG2_X = 0; + gBattle_BG2_Y = 0; + gBattle_BG3_X = 0; + gBattle_BG3_Y = 0; + break; + case 1: + CpuFastFill(0, (void*)(VRAM), VRAM_SIZE); + break; + case 2: + LoadBattleTextboxAndBackground(); + break; + case 3: + ResetSpriteData(); + break; + case 4: + FreeAllSpritePalettes(); + gReservedSpritePaletteCount = 4; + break; + case 5: + sub_805E350(); + break; + case 6: + if (BattleLoadAllHealthBoxesGfx(gBattleScripting.reshowHelperState)) + { + gBattleScripting.reshowHelperState = 0; + } + else + { + gBattleScripting.reshowHelperState++; + gBattleScripting.reshowMainState--; + } + break; + case 7: + if (!LoadBankSpriteGfx(0)) + gBattleScripting.reshowMainState--; + break; + case 8: + if (!LoadBankSpriteGfx(1)) + gBattleScripting.reshowMainState--; + break; + case 9: + if (!LoadBankSpriteGfx(2)) + gBattleScripting.reshowMainState--; + break; + case 10: + if (!LoadBankSpriteGfx(3)) + gBattleScripting.reshowMainState--; + break; + case 11: + CreateBankSprite(0); + break; + case 12: + CreateBankSprite(1); + break; + case 13: + CreateBankSprite(2); + break; + case 14: + CreateBankSprite(3); + break; + case 15: + CreateHealthboxSprite(0); + break; + case 16: + CreateHealthboxSprite(1); + break; + case 17: + CreateHealthboxSprite(2); + break; + case 18: + CreateHealthboxSprite(3); + break; + case 19: + { + u8 opponentBank; + u16 species; + + LoadAndCreateEnemyShadowSprites(); + + opponentBank = GetBankByIdentity(IDENTITY_OPPONENT_MON1); + species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES); + SetBankEnemyShadowSpriteCallback(opponentBank, species); + + if (IsDoubleBattle()) + { + opponentBank = GetBankByIdentity(IDENTITY_OPPONENT_MON2); + species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES); + SetBankEnemyShadowSpriteCallback(opponentBank, species); + } + + ActionSelectionCreateCursorAt(gActionSelectionCursor[gBankInMenu], 0); + + if (gLinkVSyncDisabled != 0 && gReceivedRemoteLinkPlayers != 0) + { + sub_800E0E8(); + sub_800DFB4(0, 0); + } + } + break; + default: + SetVBlankCallback(VBlankCB_Battle); + sub_80A95F4(); + BeginHardwarePaletteFade(0xFF, 0, 0x10, 0, 1); + gPaletteFade.bufferTransferDisabled = 0; + SetMainCallback2(BattleMainCB2); + sub_805EF14(); + break; + } + + gBattleScripting.reshowMainState++; +} + +// todo: find a better place for the struct declaration +struct BGCntrlBitfield +{ + volatile u16 priority:2; + volatile u16 charBaseBlock:2; + volatile u16 field_0_2:4; + volatile u16 field_1_0:5; + volatile u16 areaOverflowMode:1; + volatile u16 screenSize:2; +}; + +static void sub_80A95F4(void) +{ + struct BGCntrlBitfield *regBgcnt1, *regBgcnt2; + + regBgcnt1 = (struct BGCntrlBitfield *)(®_BG1CNT); + regBgcnt1->charBaseBlock = 0; + + regBgcnt2 = (struct BGCntrlBitfield *)(®_BG2CNT); + regBgcnt2->charBaseBlock = 0; +} + +static bool8 LoadBankSpriteGfx(u8 bank) +{ + if (bank < gNoOfAllBanks) + { + if (GetBankSide(bank) != SIDE_PLAYER) + { + if (!gBattleSpritesDataPtr->bankData[bank].behindSubstitute) + BattleLoadOpponentMonSpriteGfx(&gEnemyParty[gBattlePartyID[bank]], bank); + else + BattleLoadSubstituteSpriteGfx(bank, FALSE); + } + else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && bank == 0) + LoadBackTrainerBankSpriteGfx(gSaveBlock2Ptr->playerGender, bank); + else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0) + LoadBackTrainerBankSpriteGfx(BACK_PIC_WALLY, bank); + else if (!gBattleSpritesDataPtr->bankData[bank].behindSubstitute) + BattleLoadPlayerMonSpriteGfx(&gPlayerParty[gBattlePartyID[bank]], bank); + else + BattleLoadSubstituteSpriteGfx(bank, FALSE); + + gBattleScripting.reshowHelperState = 0; + } + return TRUE; +} + +// todo: get rid of it once the struct is declared in a header +struct MonCoords +{ + // This would use a bitfield, but sub_8079F44 + // uses it as a u8 and casting won't match. + u8 coords; // u8 x:4, y:4; + u8 y_offset; +}; +extern const struct MonCoords gTrainerBackPicCoords[]; + +static void CreateBankSprite(u8 bank) +{ + if (bank < gNoOfAllBanks) + { + u8 posY; + + if (gBattleSpritesDataPtr->bankData[bank].behindSubstitute) + posY = sub_80A614C(bank); + else + posY = sub_80A6138(bank); + + if (GetBankSide(bank) != SIDE_PLAYER) + { + if (GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_HP) == 0) + 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)); + 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); + + StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); + if (gBattleSpritesDataPtr->bankData[bank].transformSpecies == SPECIES_CASTFORM) + gSprites[gBankSpriteIds[bank]].anims = gMonAnimationsSpriteAnimsPtrTable[SPECIES_CASTFORM]; + } + else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && bank == 0) + { + sub_806A12C(gSaveBlock2Ptr->playerGender, GetBankIdentity(IDENTITY_PLAYER_MON1)); + gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, 0x50, + (8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].coords) * 4 + 80, + sub_80A82E4(0)); + gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; + gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; + gSprites[gBankSpriteIds[bank]].data0 = bank; + } + else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0) + { + sub_806A12C(BACK_PIC_WALLY, GetBankIdentity(0)); + gBankSpriteIds[bank] = CreateSprite(&gUnknown_0202499C, 0x50, + (8 - gTrainerBackPicCoords[BACK_PIC_WALLY].coords) * 4 + 80, + sub_80A82E4(0)); + gSprites[gBankSpriteIds[bank]].oam.paletteNum = bank; + gSprites[gBankSpriteIds[bank]].callback = SpriteCallbackDummy; + gSprites[gBankSpriteIds[bank]].data0 = bank; + } + else + { + if (GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_HP) == 0) + 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)); + 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); + + StartSpriteAnim(&gSprites[gBankSpriteIds[bank]], gBattleMonForms[bank]); + if (gBattleSpritesDataPtr->bankData[bank].transformSpecies == SPECIES_CASTFORM) + gSprites[gBankSpriteIds[bank]].anims = gMonAnimationsSpriteAnimsPtrTable[SPECIES_CASTFORM]; + } + + gSprites[gBankSpriteIds[bank]].invisible = gBattleSpritesDataPtr->bankData[bank].invisible; + } +} + +static void CreateHealthboxSprite(u8 bank) +{ + if (bank < gNoOfAllBanks) + { + u8 healthboxSpriteId; + + if (gBattleTypeFlags & BATTLE_TYPE_SAFARI && bank == 0) + healthboxSpriteId = CreateSafariPlayerHealthboxSprites(); + else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL && bank == 0) + return; + else + healthboxSpriteId = CreateBankHealthboxSprites(bank); + + gHealthBoxesIds[bank] = healthboxSpriteId; + SetBankHealthboxSpritePos(bank); + SetHealthboxSpriteVisible(healthboxSpriteId); + + if (GetBankSide(bank) != SIDE_PLAYER) + UpdateHealthboxAttribute(gHealthBoxesIds[bank], &gEnemyParty[gBattlePartyID[bank]], HEALTHBOX_ALL); + else if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) + UpdateHealthboxAttribute(gHealthBoxesIds[bank], &gPlayerParty[gBattlePartyID[bank]], HEALTHBOX_SAFARI_ALL_TEXT); + else + UpdateHealthboxAttribute(gHealthBoxesIds[bank], &gPlayerParty[gBattlePartyID[bank]], HEALTHBOX_ALL); + + if (GetBankIdentity(bank) == IDENTITY_OPPONENT_MON2 || GetBankIdentity(bank) == IDENTITY_PLAYER_MON2) + nullsub_30(gHealthBoxesIds[bank], TRUE); + else + nullsub_30(gHealthBoxesIds[bank], FALSE); + + if (GetBankSide(bank) != SIDE_PLAYER) + { + if (GetMonData(&gEnemyParty[gBattlePartyID[bank]], MON_DATA_HP) == 0) + SetHealthboxSpriteInvisible(healthboxSpriteId); + } + else if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) + { + if (GetMonData(&gPlayerParty[gBattlePartyID[bank]], MON_DATA_HP) == 0) + SetHealthboxSpriteInvisible(healthboxSpriteId); + } + } +} -- cgit v1.2.3 From ae06c13e99162cebd3617f5aafb135bdd8b3f237 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Mon, 9 Oct 2017 13:10:02 -0500 Subject: Add front pic anims with help from marijnvdwerf --- asm/battle_7.s | 2 +- asm/reshow_battle_screen.s | 2 +- data/data2b.s | 1047 +++-- data/graphics/pokemon/front_anims.inc | 6915 +++++++++++++++++++++++++++++++++ src/battle_dome_cards.c | 4 +- src/pokemon_2.c | 6 +- 6 files changed, 7444 insertions(+), 532 deletions(-) create mode 100644 data/graphics/pokemon/front_anims.inc diff --git a/asm/battle_7.s b/asm/battle_7.s index 0b5ca514f..bfb5f82dc 100644 --- a/asm/battle_7.s +++ b/asm/battle_7.s @@ -2541,7 +2541,7 @@ _0805E662: ldr r1, =gSprites adds r1, 0x8 adds r0, r1 - ldr r1, =gUnknown_08309AAC + ldr r1, =gMonAnimationsSpriteAnimsPtrTable mov r3, r8 lsls r2, r3, 2 adds r1, r2 diff --git a/asm/reshow_battle_screen.s b/asm/reshow_battle_screen.s index 2066c37ed..96d9c3658 100644 --- a/asm/reshow_battle_screen.s +++ b/asm/reshow_battle_screen.s @@ -825,7 +825,7 @@ _080A9A50: adds r0, r5, 0 adds r0, 0x8 adds r1, r0 - ldr r0, =gUnknown_08309AAC + ldr r0, =gMonAnimationsSpriteAnimsPtrTable ldr r2, =0x00000604 adds r0, r2 ldr r0, [r0] diff --git a/data/data2b.s b/data/data2b.s index 0d964fcf5..471993027 100644 --- a/data/data2b.s +++ b/data/data2b.s @@ -104,11 +104,12 @@ gUnknown_082FF518:: @ 82FF518 obj_frame_tiles gTrainerBackPic_Steven + 0x1800, 0x0800 .align 2 -gUnknown_082FF538:: @ 82FF538 - .2byte 0x0000, 0x0000, 0xffff, 0x0000 +gAnimCmd_General_Frame0:: @ 82FF538 + obj_image_anim_frame 0, 0 + obj_image_anim_end .align 2 -gUnknown_082FF540:: @ 82FF540 +AnimCmd_82FF540:: @ 82FF540 .2byte 0x0003, 0x0000, 0xffff, 0x0000 .align 2 @@ -806,1039 +807,1039 @@ gUnknown_082FFDC4:: @ 82FFDC4 .align 2 gUnknown_082FFDCC:: @ 82FFDCC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFDD0:: @ 82FFDD0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFDD4:: @ 82FFDD4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFDD8:: @ 82FFDD8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFDDC:: @ 82FFDDC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFDE0:: @ 82FFDE0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFDE4:: @ 82FFDE4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFDE8:: @ 82FFDE8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFDEC:: @ 82FFDEC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFDF0:: @ 82FFDF0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFDF4:: @ 82FFDF4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFDF8:: @ 82FFDF8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFDFC:: @ 82FFDFC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE00:: @ 82FFE00 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE04:: @ 82FFE04 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE08:: @ 82FFE08 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE0C:: @ 82FFE0C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE10:: @ 82FFE10 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE14:: @ 82FFE14 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE18:: @ 82FFE18 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE1C:: @ 82FFE1C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE20:: @ 82FFE20 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE24:: @ 82FFE24 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE28:: @ 82FFE28 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE2C:: @ 82FFE2C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE30:: @ 82FFE30 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE34:: @ 82FFE34 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE38:: @ 82FFE38 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE3C:: @ 82FFE3C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE40:: @ 82FFE40 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE44:: @ 82FFE44 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE48:: @ 82FFE48 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE4C:: @ 82FFE4C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE50:: @ 82FFE50 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE54:: @ 82FFE54 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE58:: @ 82FFE58 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE5C:: @ 82FFE5C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE60:: @ 82FFE60 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE64:: @ 82FFE64 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE68:: @ 82FFE68 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE6C:: @ 82FFE6C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE70:: @ 82FFE70 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE74:: @ 82FFE74 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE78:: @ 82FFE78 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE7C:: @ 82FFE7C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE80:: @ 82FFE80 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE84:: @ 82FFE84 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE88:: @ 82FFE88 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE8C:: @ 82FFE8C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE90:: @ 82FFE90 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE94:: @ 82FFE94 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE98:: @ 82FFE98 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFE9C:: @ 82FFE9C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFEA0:: @ 82FFEA0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFEA4:: @ 82FFEA4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFEA8:: @ 82FFEA8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFEAC:: @ 82FFEAC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFEB0:: @ 82FFEB0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFEB4:: @ 82FFEB4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFEB8:: @ 82FFEB8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFEBC:: @ 82FFEBC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFEC0:: @ 82FFEC0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFEC4:: @ 82FFEC4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFEC8:: @ 82FFEC8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFECC:: @ 82FFECC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFED0:: @ 82FFED0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFED4:: @ 82FFED4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFED8:: @ 82FFED8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFEDC:: @ 82FFEDC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFEE0:: @ 82FFEE0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFEE4:: @ 82FFEE4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFEE8:: @ 82FFEE8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFEEC:: @ 82FFEEC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFEF0:: @ 82FFEF0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFEF4:: @ 82FFEF4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFEF8:: @ 82FFEF8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFEFC:: @ 82FFEFC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF00:: @ 82FFF00 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF04:: @ 82FFF04 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF08:: @ 82FFF08 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF0C:: @ 82FFF0C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF10:: @ 82FFF10 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF14:: @ 82FFF14 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF18:: @ 82FFF18 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF1C:: @ 82FFF1C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF20:: @ 82FFF20 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF24:: @ 82FFF24 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF28:: @ 82FFF28 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF2C:: @ 82FFF2C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF30:: @ 82FFF30 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF34:: @ 82FFF34 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF38:: @ 82FFF38 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF3C:: @ 82FFF3C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF40:: @ 82FFF40 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF44:: @ 82FFF44 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF48:: @ 82FFF48 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF4C:: @ 82FFF4C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF50:: @ 82FFF50 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF54:: @ 82FFF54 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF58:: @ 82FFF58 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF5C:: @ 82FFF5C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF60:: @ 82FFF60 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF64:: @ 82FFF64 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF68:: @ 82FFF68 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF6C:: @ 82FFF6C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF70:: @ 82FFF70 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF74:: @ 82FFF74 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF78:: @ 82FFF78 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF7C:: @ 82FFF7C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF80:: @ 82FFF80 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF84:: @ 82FFF84 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF88:: @ 82FFF88 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF8C:: @ 82FFF8C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF90:: @ 82FFF90 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF94:: @ 82FFF94 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF98:: @ 82FFF98 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFF9C:: @ 82FFF9C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFFA0:: @ 82FFFA0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFFA4:: @ 82FFFA4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFFA8:: @ 82FFFA8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFFAC:: @ 82FFFAC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFFB0:: @ 82FFFB0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFFB4:: @ 82FFFB4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFFB8:: @ 82FFFB8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFFBC:: @ 82FFFBC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFFC0:: @ 82FFFC0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFFC4:: @ 82FFFC4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFFC8:: @ 82FFFC8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFFCC:: @ 82FFFCC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFFD0:: @ 82FFFD0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFFD4:: @ 82FFFD4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFFD8:: @ 82FFFD8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFFDC:: @ 82FFFDC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFFE0:: @ 82FFFE0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFFE4:: @ 82FFFE4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFFE8:: @ 82FFFE8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFFEC:: @ 82FFFEC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFFF0:: @ 82FFFF0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFFF4:: @ 82FFFF4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFFF8:: @ 82FFFF8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_082FFFFC:: @ 82FFFFC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300000:: @ 8300000 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300004:: @ 8300004 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300008:: @ 8300008 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830000C:: @ 830000C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300010:: @ 8300010 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300014:: @ 8300014 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300018:: @ 8300018 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830001C:: @ 830001C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300020:: @ 8300020 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300024:: @ 8300024 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300028:: @ 8300028 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830002C:: @ 830002C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300030:: @ 8300030 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300034:: @ 8300034 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300038:: @ 8300038 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830003C:: @ 830003C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300040:: @ 8300040 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300044:: @ 8300044 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300048:: @ 8300048 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830004C:: @ 830004C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300050:: @ 8300050 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300054:: @ 8300054 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300058:: @ 8300058 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830005C:: @ 830005C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300060:: @ 8300060 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300064:: @ 8300064 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300068:: @ 8300068 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830006C:: @ 830006C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300070:: @ 8300070 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300074:: @ 8300074 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300078:: @ 8300078 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830007C:: @ 830007C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300080:: @ 8300080 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300084:: @ 8300084 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300088:: @ 8300088 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830008C:: @ 830008C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300090:: @ 8300090 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300094:: @ 8300094 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300098:: @ 8300098 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830009C:: @ 830009C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083000A0:: @ 83000A0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083000A4:: @ 83000A4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083000A8:: @ 83000A8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083000AC:: @ 83000AC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083000B0:: @ 83000B0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083000B4:: @ 83000B4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083000B8:: @ 83000B8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083000BC:: @ 83000BC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083000C0:: @ 83000C0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083000C4:: @ 83000C4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083000C8:: @ 83000C8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083000CC:: @ 83000CC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083000D0:: @ 83000D0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083000D4:: @ 83000D4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083000D8:: @ 83000D8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083000DC:: @ 83000DC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083000E0:: @ 83000E0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083000E4:: @ 83000E4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083000E8:: @ 83000E8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083000EC:: @ 83000EC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083000F0:: @ 83000F0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083000F4:: @ 83000F4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083000F8:: @ 83000F8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083000FC:: @ 83000FC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300100:: @ 8300100 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300104:: @ 8300104 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300108:: @ 8300108 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830010C:: @ 830010C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300110:: @ 8300110 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300114:: @ 8300114 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300118:: @ 8300118 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830011C:: @ 830011C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300120:: @ 8300120 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300124:: @ 8300124 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300128:: @ 8300128 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830012C:: @ 830012C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300130:: @ 8300130 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300134:: @ 8300134 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300138:: @ 8300138 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830013C:: @ 830013C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300140:: @ 8300140 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300144:: @ 8300144 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300148:: @ 8300148 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830014C:: @ 830014C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300150:: @ 8300150 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300154:: @ 8300154 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300158:: @ 8300158 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830015C:: @ 830015C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300160:: @ 8300160 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300164:: @ 8300164 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300168:: @ 8300168 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830016C:: @ 830016C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300170:: @ 8300170 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300174:: @ 8300174 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300178:: @ 8300178 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830017C:: @ 830017C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300180:: @ 8300180 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300184:: @ 8300184 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300188:: @ 8300188 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830018C:: @ 830018C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300190:: @ 8300190 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300194:: @ 8300194 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300198:: @ 8300198 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830019C:: @ 830019C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083001A0:: @ 83001A0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083001A4:: @ 83001A4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083001A8:: @ 83001A8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083001AC:: @ 83001AC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083001B0:: @ 83001B0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083001B4:: @ 83001B4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083001B8:: @ 83001B8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083001BC:: @ 83001BC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083001C0:: @ 83001C0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083001C4:: @ 83001C4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083001C8:: @ 83001C8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083001CC:: @ 83001CC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083001D0: @ 83001D0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083001D4:: @ 83001D4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FF71C .4byte gUnknown_082FF734 .4byte gUnknown_082FF744 @@ -1846,163 +1847,163 @@ gUnknown_083001D4:: @ 83001D4 .align 2 gUnknown_083001E8:: @ 83001E8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083001EC:: @ 83001EC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FF758 .4byte gUnknown_082FF774 .4byte gUnknown_082FF790 .align 2 gUnknown_083001FC:: @ 83001FC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300200:: @ 8300200 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FF79C .4byte gUnknown_082FF7B0 .align 2 gUnknown_0830020C:: @ 830020C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FF7C4 .align 2 gUnknown_08300214:: @ 8300214 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FF7CC .align 2 gUnknown_0830021C:: @ 830021C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FF7D4 .align 2 gUnknown_08300224:: @ 8300224 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FF7DC .4byte gUnknown_082FF7E4 .align 2 gUnknown_08300230:: @ 8300230 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FF7EC .4byte gUnknown_082FF7F4 .align 2 gUnknown_0830023C:: @ 830023C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FF7FC .4byte gUnknown_082FF804 .align 2 gUnknown_08300248:: @ 8300248 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FF80C .4byte gUnknown_082FF814 .align 2 gUnknown_08300254:: @ 8300254 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FF81C .4byte gUnknown_082FF824 .align 2 gUnknown_08300260:: @ 8300260 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300264:: @ 8300264 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FF82C .align 2 gUnknown_0830026C:: @ 830026C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FF834 .4byte gUnknown_082FF83C .align 2 gUnknown_08300278:: @ 8300278 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FF844 .align 2 gUnknown_08300280:: @ 8300280 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FF84C .align 2 gUnknown_08300288:: @ 8300288 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FF854 .4byte gUnknown_082FF85C .align 2 gUnknown_08300294:: @ 8300294 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300298:: @ 8300298 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830029C:: @ 830029C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083002A0:: @ 83002A0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FF864 .align 2 gUnknown_083002A8:: @ 83002A8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FF86C .align 2 gUnknown_083002B0:: @ 83002B0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FF874 .align 2 gUnknown_083002B8:: @ 83002B8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FF87C .align 2 gUnknown_083002C0:: @ 83002C0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083002C4:: @ 83002C4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FF884 .align 2 gUnknown_083002CC:: @ 83002CC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FF88C .4byte gUnknown_082FF894 .align 2 gUnknown_083002D8:: @ 83002D8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FF89C .4byte gUnknown_082FF8A4 .align 2 gUnknown_083002E4:: @ 83002E4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FF8AC .4byte gUnknown_082FF8B4 .align 2 gUnknown_083002F0:: @ 83002F0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FF8BC .4byte gUnknown_082FF8FC .4byte gUnknown_082FF91C @@ -2010,21 +2011,21 @@ gUnknown_083002F0:: @ 83002F0 .align 2 gUnknown_08300304:: @ 8300304 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300308:: @ 8300308 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FF93C .align 2 gUnknown_08300310:: @ 8300310 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FF944 .align 2 gUnknown_08300318:: @ 8300318 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FF94C .4byte gUnknown_082FF9A8 .4byte gUnknown_082FFA00 @@ -2032,165 +2033,165 @@ gUnknown_08300318:: @ 8300318 .align 2 gUnknown_0830032C:: @ 830032C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFA64 .align 2 gUnknown_08300334:: @ 8300334 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFA6C .align 2 gUnknown_0830033C:: @ 830033C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFA74 .align 2 gUnknown_08300344:: @ 8300344 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300348:: @ 8300348 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFA7C .4byte gUnknown_082FFA84 .align 2 gUnknown_08300354:: @ 8300354 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300358:: @ 8300358 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830035C:: @ 830035C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFA8C .4byte gUnknown_082FFA94 .align 2 gUnknown_08300368:: @ 8300368 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830036C:: @ 830036C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300370:: @ 8300370 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFA9C .4byte gUnknown_082FFAA4 .align 2 gUnknown_0830037C:: @ 830037C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFAAC .4byte gUnknown_082FFAB4 .align 2 gUnknown_08300388:: @ 8300388 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFABC .4byte gUnknown_082FFAC4 .align 2 gUnknown_08300394:: @ 8300394 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFACC .4byte gUnknown_082FFAD4 .align 2 gUnknown_083003A0:: @ 83003A0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFADC .align 2 gUnknown_083003A8:: @ 83003A8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFAE4 .align 2 gUnknown_083003B0:: @ 83003B0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFAEC .align 2 gUnknown_083003B8:: @ 83003B8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFAF4 .align 2 gUnknown_083003C0:: @ 83003C0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFAFC .align 2 gUnknown_083003C8:: @ 83003C8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFB04 .4byte gUnknown_082FFB0C .align 2 gUnknown_083003D4:: @ 83003D4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFB14 .align 2 gUnknown_083003DC:: @ 83003DC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFB1C .4byte gUnknown_082FFB24 .align 2 gUnknown_083003E8:: @ 83003E8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFB2C .align 2 gUnknown_083003F0:: @ 83003F0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFB34 .align 2 gUnknown_083003F8:: @ 83003F8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFB3C .align 2 gUnknown_08300400:: @ 8300400 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFB44 .4byte gUnknown_082FFB60 .align 2 gUnknown_0830040C:: @ 830040C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300410:: @ 8300410 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300414:: @ 8300414 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300418:: @ 8300418 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830041C:: @ 830041C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300420:: @ 8300420 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300424:: @ 8300424 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFB7C .4byte gUnknown_082FFBBC .4byte gUnknown_082FFBE0 @@ -2198,174 +2199,174 @@ gUnknown_08300424:: @ 8300424 .align 2 gUnknown_08300438:: @ 8300438 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFBFC .4byte gUnknown_082FFC04 .align 2 gUnknown_08300444:: @ 8300444 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFC0C .align 2 gUnknown_0830044C:: @ 830044C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFC14 .align 2 gUnknown_08300454:: @ 8300454 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFC1C .align 2 gUnknown_0830045C:: @ 830045C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFC24 .align 2 gUnknown_08300464:: @ 8300464 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFC2C .align 2 gUnknown_0830046C:: @ 830046C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFC34 .align 2 gUnknown_08300474:: @ 8300474 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFC3C .4byte gUnknown_082FFC58 .align 2 gUnknown_08300480:: @ 8300480 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFC74 .align 2 gUnknown_08300488:: @ 8300488 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFC7C .4byte gUnknown_082FFC84 .align 2 gUnknown_08300494:: @ 8300494 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFC8C .4byte gUnknown_082FFC94 .align 2 gUnknown_083004A0:: @ 83004A0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFC9C .4byte gUnknown_082FFCA4 .align 2 gUnknown_083004AC:: @ 83004AC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083004B0:: @ 83004B0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFCAC .align 2 gUnknown_083004B8:: @ 83004B8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFCB4 .align 2 gUnknown_083004C0:: @ 83004C0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFCBC .align 2 gUnknown_083004C8:: @ 83004C8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFCC4 .align 2 gUnknown_083004D0:: @ 83004D0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFCCC .align 2 gUnknown_083004D8:: @ 83004D8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFCD4 .align 2 gUnknown_083004E0:: @ 83004E0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083004E4:: @ 83004E4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083004E8:: @ 83004E8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083004EC:: @ 83004EC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFCDC .align 2 gUnknown_083004F4:: @ 83004F4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083004F8:: @ 83004F8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083004FC:: @ 83004FC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFCE4 .align 2 gUnknown_08300504:: @ 8300504 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFCEC .4byte gUnknown_082FFCF4 .align 2 gUnknown_08300510:: @ 8300510 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFCFC .align 2 gUnknown_08300518:: @ 8300518 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830051C:: @ 830051C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300520:: @ 8300520 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300524:: @ 8300524 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFD04 .align 2 gUnknown_0830052C:: @ 830052C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFD0C .align 2 gUnknown_08300534:: @ 8300534 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFD14 .align 2 gUnknown_0830053C:: @ 830053C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFD1C .4byte gUnknown_082FFD24 .4byte gUnknown_082FFD2C @@ -2373,228 +2374,228 @@ gUnknown_0830053C:: @ 830053C .align 2 gUnknown_08300550:: @ 8300550 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFD3C .align 2 gUnknown_08300558:: @ 8300558 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFD44 .align 2 gUnknown_08300560:: @ 8300560 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300564:: @ 8300564 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300568:: @ 8300568 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830056C:: @ 830056C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300570:: @ 8300570 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300574:: @ 8300574 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300578:: @ 8300578 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830057C:: @ 830057C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFD4C .4byte gUnknown_082FFD54 .align 2 gUnknown_08300588:: @ 8300588 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830058C:: @ 830058C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFD5C .4byte gUnknown_082FFD64 .align 2 gUnknown_08300598:: @ 8300598 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830059C:: @ 830059C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083005A0:: @ 83005A0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083005A4:: @ 83005A4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFD6C .align 2 gUnknown_083005AC:: @ 83005AC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFD74 .align 2 gUnknown_083005B4:: @ 83005B4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFD7C .4byte gUnknown_082FFD84 .align 2 gUnknown_083005C0:: @ 83005C0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083005C4:: @ 83005C4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083005C8:: @ 83005C8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFD8C .4byte gUnknown_082FFDA0 .align 2 gUnknown_083005D4:: @ 83005D4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083005D8:: @ 83005D8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083005DC:: @ 83005DC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFDC4 .align 2 gUnknown_083005E4:: @ 83005E4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083005E8:: @ 83005E8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083005EC:: @ 83005EC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083005F0:: @ 83005F0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083005F4:: @ 83005F4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083005F8:: @ 83005F8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083005FC:: @ 83005FC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300600:: @ 8300600 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300604:: @ 8300604 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300608:: @ 8300608 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830060C:: @ 830060C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300610:: @ 8300610 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300614:: @ 8300614 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300618:: @ 8300618 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830061C:: @ 830061C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300620:: @ 8300620 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300624:: @ 8300624 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300628:: @ 8300628 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830062C:: @ 830062C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300630:: @ 8300630 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300634:: @ 8300634 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300638:: @ 8300638 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830063C:: @ 830063C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300640:: @ 8300640 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300644:: @ 8300644 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300648:: @ 8300648 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830064C:: @ 830064C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300650:: @ 8300650 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08300654:: @ 8300654 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_082FFDCC .4byte gUnknown_082FFDD0 @@ -3936,375 +3937,375 @@ gUnknown_083021D8:: @ 83021D8 .include "data/graphics/pokemon/shiny_palette_table.inc" gUnknown_083051F8:: @ 83051F8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083051FC:: @ 83051FC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305200:: @ 8305200 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305204:: @ 8305204 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305208:: @ 8305208 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830520C:: @ 830520C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305210:: @ 8305210 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305214:: @ 8305214 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305218:: @ 8305218 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830521C:: @ 830521C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305220:: @ 8305220 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305224:: @ 8305224 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305228:: @ 8305228 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830522C:: @ 830522C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305230:: @ 8305230 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305234:: @ 8305234 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305238:: @ 8305238 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830523C:: @ 830523C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305240:: @ 8305240 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305244:: @ 8305244 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305248:: @ 8305248 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830524C:: @ 830524C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305250:: @ 8305250 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305254:: @ 8305254 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305258:: @ 8305258 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830525C:: @ 830525C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305260:: @ 8305260 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305264:: @ 8305264 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305268:: @ 8305268 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830526C:: @ 830526C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305270:: @ 8305270 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305274:: @ 8305274 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305278:: @ 8305278 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830527C:: @ 830527C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305280:: @ 8305280 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305284:: @ 8305284 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305288:: @ 8305288 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830528C:: @ 830528C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305290:: @ 8305290 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305294:: @ 8305294 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305298:: @ 8305298 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830529C:: @ 830529C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083052A0:: @ 83052A0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083052A4:: @ 83052A4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083052A8:: @ 83052A8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083052AC:: @ 83052AC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083052B0:: @ 83052B0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083052B4:: @ 83052B4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083052B8:: @ 83052B8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083052BC:: @ 83052BC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083052C0:: @ 83052C0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083052C4:: @ 83052C4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083052C8:: @ 83052C8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083052CC:: @ 83052CC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083052D0:: @ 83052D0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083052D4:: @ 83052D4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083052D8:: @ 83052D8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083052DC:: @ 83052DC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083052E0:: @ 83052E0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083052E4:: @ 83052E4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083052E8:: @ 83052E8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083052EC:: @ 83052EC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083052F0:: @ 83052F0 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083052F4:: @ 83052F4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083052F8:: @ 83052F8 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_083052FC:: @ 83052FC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305300:: @ 8305300 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305304:: @ 8305304 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305308:: @ 8305308 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830530C:: @ 830530C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305310:: @ 8305310 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305314:: @ 8305314 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305318:: @ 8305318 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830531C:: @ 830531C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305320:: @ 8305320 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305324:: @ 8305324 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305328:: @ 8305328 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830532C:: @ 830532C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305330:: @ 8305330 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305334:: @ 8305334 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305338:: @ 8305338 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830533C:: @ 830533C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305340:: @ 8305340 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305344:: @ 8305344 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305348:: @ 8305348 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830534C:: @ 830534C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305350:: @ 8305350 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305354:: @ 8305354 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305358:: @ 8305358 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830535C:: @ 830535C - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305360:: @ 8305360 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305364:: @ 8305364 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_08305368:: @ 8305368 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .align 2 gUnknown_0830536C:: @ 830536C @@ -4447,42 +4448,42 @@ gUnknown_08305CB4:: @ 8305CB4 .align 2 gUnknown_08305CCC:: @ 8305CCC - .4byte gUnknown_082FF540 + .4byte AnimCmd_82FF540 .4byte gUnknown_08305C24 .align 2 gUnknown_08305CD4:: @ 8305CD4 - .4byte gUnknown_082FF540 + .4byte AnimCmd_82FF540 .4byte gUnknown_08305C3C .align 2 gUnknown_08305CDC:: @ 8305CDC - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_08305C6C .align 2 gUnknown_08305CE4:: @ 8305CE4 - .4byte gUnknown_082FF538 + .4byte gAnimCmd_General_Frame0 .4byte gUnknown_08305C84 .align 2 gUnknown_08305CEC:: @ 8305CEC - .4byte gUnknown_082FF540 + .4byte AnimCmd_82FF540 .4byte gUnknown_08305C9C .align 2 gUnknown_08305CF4:: @ 8305CF4 - .4byte gUnknown_082FF540 + .4byte AnimCmd_82FF540 .4byte gUnknown_08305CB4 .align 2 gUnknown_08305CFC:: @ 8305CFC - .4byte gUnknown_082FF540 + .4byte AnimCmd_82FF540 .4byte gUnknown_08305C54 .align 2 gUnknown_08305D04:: @ 8305D04 - .4byte gUnknown_082FF540 + .4byte AnimCmd_82FF540 .4byte gUnknown_08305C3C .align 2 @@ -4508,12 +4509,8 @@ gUnknown_08305D0C:: @ 8305D0C @ 8305DCC .include "data/enemy_mon_elevation.inc" - .incbin "baserom.gba", 0x305f68, 0x2d54 - - .incbin "baserom.gba", 0x308cbc, 0xdf0 - -gUnknown_08309AAC:: @ 8309AAC - .incbin "baserom.gba", 0x309aac, 0x6e0 +@ 8305F68 + .include "data/graphics/pokemon/front_anims.inc" @ 830A18C .include "data/graphics/pokemon/front_pic_table.inc" diff --git a/data/graphics/pokemon/front_anims.inc b/data/graphics/pokemon/front_anims.inc new file mode 100644 index 000000000..69341c88d --- /dev/null +++ b/data/graphics/pokemon/front_anims.inc @@ -0,0 +1,6915 @@ + + .align 2 +gAnimCmd_NONE_1:: @ 8305F68 + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_BULBASAUR_1:: @ 8305F78 + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_IVYSAUR_1:: @ 8305F88 + obj_image_anim_frame 0, 1 + obj_image_anim_frame 1, 36 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_VENUSAUR_1:: @ 8305F98 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 25 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_CHARMANDER_1:: @ 8305FA8 + obj_image_anim_frame 0, 2 + obj_image_anim_frame 1, 46 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_CHARMELEON_1:: @ 8305FB8 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 25 + obj_image_anim_frame 0, 30 + obj_image_anim_end + + .align 2 +gAnimCmd_CHARIZARD_1:: @ 8305FC8 + obj_image_anim_frame 1, 40 + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gAnimCmd_SQUIRTLE_1:: @ 8305FD4 + obj_image_anim_frame 1, 50 + obj_image_anim_frame 1, 50 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_WARTORTLE_1:: @ 8305FE4 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gAnimCmd_BLASTOISE_1:: @ 8305FF4 + obj_image_anim_frame 0, 50 + obj_image_anim_frame 1, 25 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 1, 25 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_CATERPIE_1:: @ 830600C + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gAnimCmd_METAPOD_1:: @ 8306030 + obj_image_anim_frame 1, 45 + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gAnimCmd_BUTTERFREE_1:: @ 830603C + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 25 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gAnimCmd_WEEDLE_1:: @ 8306074 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gAnimCmd_KAKUNA_1:: @ 8306094 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gAnimCmd_BEEDRILL_1:: @ 83060C4 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 35 + obj_image_anim_frame 0, 28 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_PIDGEY_1:: @ 83060DC + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_PIDGEOTTO_1:: @ 8306110 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 35 + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gAnimCmd_PIDGEOT_1:: @ 8306128 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_RATTATA_1:: @ 830613C + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 50 + obj_image_anim_frame 1, 28 + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gAnimCmd_RATICATE_1:: @ 8306150 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gAnimCmd_SPEAROW_1:: @ 8306184 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gAnimCmd_FEAROW_1:: @ 83061C8 + obj_image_anim_frame 1, 7 + obj_image_anim_frame 0, 7 + obj_image_anim_frame 1, 7 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 7 + obj_image_anim_frame 0, 7 + obj_image_anim_frame 1, 7 + obj_image_anim_frame 0, 7 + obj_image_anim_end + + .align 2 +gAnimCmd_EKANS_1:: @ 83061EC + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 40 + obj_image_anim_frame 0, 8 + obj_image_anim_end + + .align 2 +gAnimCmd_ARBOK_1:: @ 8306208 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 35 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_PIKACHU_1:: @ 8306218 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_PIKACHU_2:: @ 8306230 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_RAICHU_1:: @ 8306244 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_RAICHU_2:: @ 830625C + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_SANDSHREW_1:: @ 8306270 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_SANDSHREW_2:: @ 8306288 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_SANDSLASH_1:: @ 830629C + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_SANDSLASH_2:: @ 83062B4 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_NIDORAN_F_1:: @ 83062C8 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 50 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_NIDORINA_1:: @ 83062F0 + obj_image_anim_frame 1, 40 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_NIDOQUEEN_1:: @ 83062FC + obj_image_anim_frame 1, 45 + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gAnimCmd_NIDORAN_M_1:: @ 8306308 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gAnimCmd_NIDORINO_1:: @ 8306318 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gAnimCmd_NIDOKING_1:: @ 8306328 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 40 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_CLEFAIRY_1:: @ 830633C + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_CLEFABLE_1:: @ 830634C + obj_image_anim_frame 1, 27 + obj_image_anim_frame 0, 27 + obj_image_anim_frame 1, 24 + obj_image_anim_frame 0, 25 + obj_image_anim_frame 1, 27 + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gAnimCmd_VULPIX_1:: @ 8306368 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_VULPIX_2:: @ 8306380 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_NINETALES_1:: @ 8306394 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_NINETALES_2:: @ 83063AC + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_JIGGLYPUFF_1:: @ 83063C0 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_JIGGLYPUFF_2:: @ 83063D8 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_WIGGLYTUFF_1:: @ 83063EC + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_WIGGLYTUFF_2:: @ 8306404 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_ZUBAT_1:: @ 8306418 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_end + + .align 2 +gAnimCmd_GOLBAT_1:: @ 8306450 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_ODDISH_1:: @ 83064A0 + obj_image_anim_frame 0, 11 + obj_image_anim_frame 1, 11 + obj_image_anim_frame 0, 11 + obj_image_anim_frame 1, 11 + obj_image_anim_frame 0, 11 + obj_image_anim_frame 1, 11 + obj_image_anim_frame 0, 6 + obj_image_anim_end + + .align 2 +gAnimCmd_GLOOM_1:: @ 83064C0 + obj_image_anim_frame 0, 21 + obj_image_anim_frame 1, 45 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_VILEPLUME_1:: @ 83064D4 + obj_image_anim_frame 0, 7 + obj_image_anim_frame 1, 21 + obj_image_anim_frame 0, 13 + obj_image_anim_frame 1, 21 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_PARAS_1:: @ 83064EC + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gAnimCmd_PARASECT_1:: @ 8306530 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 35 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_VENONAT_1:: @ 830654C + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 35 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_VENOMOTH_1:: @ 8306568 + obj_image_anim_frame 1, 4 + obj_image_anim_frame 0, 4 + obj_image_anim_frame 1, 4 + obj_image_anim_frame 0, 4 + obj_image_anim_frame 1, 4 + obj_image_anim_frame 0, 4 + obj_image_anim_frame 1, 4 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 4 + obj_image_anim_frame 0, 4 + obj_image_anim_frame 1, 4 + obj_image_anim_frame 0, 4 + obj_image_anim_frame 1, 4 + obj_image_anim_frame 0, 4 + obj_image_anim_frame 1, 4 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 4 + obj_image_anim_frame 0, 4 + obj_image_anim_frame 1, 4 + obj_image_anim_frame 0, 4 + obj_image_anim_frame 1, 4 + obj_image_anim_frame 0, 4 + obj_image_anim_end + + .align 2 +gAnimCmd_DIGLETT_1:: @ 83065C4 + obj_image_anim_frame 0, 25 + obj_image_anim_frame 1, 35 + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gAnimCmd_DUGTRIO_1:: @ 83065D4 + obj_image_anim_frame 1, 35 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_MEOWTH_1:: @ 8306600 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 17 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_PERSIAN_1:: @ 830661C + obj_image_anim_frame 1, 50 + obj_image_anim_frame 0, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_PSYDUCK_1:: @ 8306628 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_PSYDUCK_2:: @ 8306640 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_GOLDUCK_1:: @ 8306654 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_GOLDUCK_2:: @ 830666C + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_MANKEY_1:: @ 8306680 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 28 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gAnimCmd_PRIMEAPE_1:: @ 830669C + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_GROWLITHE_1:: @ 83066B8 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_ARCANINE_1:: @ 83066D4 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 40 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_POLIWAG_1:: @ 83066F0 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_POLIWHIRL_1:: @ 8306700 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 25 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_POLIWRATH_1:: @ 8306718 + obj_image_anim_frame 1, 45 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_ABRA_1:: @ 8306724 + obj_image_anim_frame 0, 7 + obj_image_anim_frame 1, 21 + obj_image_anim_frame 0, 13 + obj_image_anim_frame 1, 21 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_KADABRA_1:: @ 830673C + obj_image_anim_frame 0, 12 + obj_image_anim_frame 1, 45 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_ALAKAZAM_1:: @ 830674C + obj_image_anim_frame 0, 9 + obj_image_anim_frame 1, 54 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_MACHOP_1:: @ 830675C + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_MACHOKE_1:: @ 830677C + obj_image_anim_frame 0, 20 + obj_image_anim_frame 1, 44 + obj_image_anim_frame 0, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_MACHAMP_1:: @ 830678C + obj_image_anim_frame 0, 11 + obj_image_anim_frame 1, 11 + obj_image_anim_frame 0, 11 + obj_image_anim_frame 1, 11 + obj_image_anim_frame 0, 11 + obj_image_anim_frame 1, 11 + obj_image_anim_frame 0, 11 + obj_image_anim_end + + .align 2 +gAnimCmd_BELLSPROUT_1:: @ 83067AC + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 25 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_WEEPINBELL_1:: @ 83067BC + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 25 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 25 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 25 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_VICTREEBEL_1:: @ 83067DC + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_TENTACOOL_1:: @ 83067FC + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 7 + obj_image_anim_frame 1, 11 + obj_image_anim_frame 0, 11 + obj_image_anim_end + + .align 2 +gAnimCmd_TENTACRUEL_1:: @ 8306814 + obj_image_anim_frame 0, 19 + obj_image_anim_frame 1, 35 + obj_image_anim_frame 0, 19 + obj_image_anim_frame 1, 19 + obj_image_anim_frame 0, 8 + obj_image_anim_end + + .align 2 +gAnimCmd_GEODUDE_1:: @ 830682C + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 36 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_GRAVELER_1:: @ 830683C + obj_image_anim_frame 0, 16 + obj_image_anim_frame 1, 16 + obj_image_anim_frame 0, 16 + obj_image_anim_frame 1, 16 + obj_image_anim_frame 0, 16 + obj_image_anim_end + + .align 2 +gAnimCmd_GOLEM_1:: @ 8306854 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 31 + obj_image_anim_frame 0, 1 + obj_image_anim_frame 0, 2 + obj_image_anim_frame 0, 8 + obj_image_anim_end + + .align 2 +gAnimCmd_PONYTA_1:: @ 830686C + obj_image_anim_frame 1, 45 + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gAnimCmd_RAPIDASH_1:: @ 8306878 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 40 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_SLOWPOKE_1:: @ 8306888 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 1, 50 + obj_image_anim_frame 0, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_SLOWBRO_1:: @ 8306898 + obj_image_anim_frame 1, 50 + obj_image_anim_frame 1, 45 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_MAGNEMITE_1:: @ 83068A8 + obj_image_anim_frame 0, 28 + obj_image_anim_frame 1, 28 + obj_image_anim_frame 0, 28 + obj_image_anim_frame 1, 28 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_MAGNETON_1:: @ 83068C0 + obj_image_anim_frame 0, 14 + obj_image_anim_frame 1, 14 + obj_image_anim_frame 0, 14 + obj_image_anim_frame 1, 14 + obj_image_anim_frame 0, 14 + obj_image_anim_frame 1, 14 + obj_image_anim_frame 0, 14 + obj_image_anim_end + + .align 2 +gAnimCmd_FARFETCHD_1:: @ 83068E0 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gAnimCmd_DODUO_1:: @ 8306914 + obj_image_anim_frame 0, 18 + obj_image_anim_frame 1, 18 + obj_image_anim_frame 0, 18 + obj_image_anim_frame 1, 18 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_DODRIO_1:: @ 830692C + obj_image_anim_frame 0, 12 + obj_image_anim_frame 1, 12 + obj_image_anim_frame 0, 12 + obj_image_anim_frame 1, 12 + obj_image_anim_frame 0, 12 + obj_image_anim_frame 1, 12 + obj_image_anim_frame 0, 12 + obj_image_anim_frame 1, 12 + obj_image_anim_frame 0, 8 + obj_image_anim_end + + .align 2 +gAnimCmd_SEEL_1:: @ 8306954 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_DEWGONG_1:: @ 8306978 + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 30 + obj_image_anim_end + + .align 2 +gAnimCmd_GRIMER_1:: @ 8306988 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_GRIMER_2:: @ 83069A0 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_MUK_1:: @ 83069B4 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_MUK_2:: @ 83069CC + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_SHELLDER_1:: @ 83069E0 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 45 + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gAnimCmd_CLOYSTER_1:: @ 83069F4 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 25 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gAnimCmd_GASTLY_1:: @ 8306A38 + obj_image_anim_frame 1, 50 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_HAUNTER_1:: @ 8306A48 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 35 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_GENGAR_1:: @ 8306A60 + obj_image_anim_frame 1, 50 + obj_image_anim_frame 1, 40 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_ONIX_1:: @ 8306A70 + obj_image_anim_frame 1, 50 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 30 + obj_image_anim_end + + .align 2 +gAnimCmd_DROWZEE_1:: @ 8306A80 + obj_image_anim_frame 1, 12 + obj_image_anim_frame 0, 12 + obj_image_anim_frame 1, 12 + obj_image_anim_frame 0, 12 + obj_image_anim_frame 1, 45 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_HYPNO_1:: @ 8306A9C + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_KRABBY_1:: @ 8306ABC + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 8 + obj_image_anim_end + + .align 2 +gAnimCmd_KINGLER_1:: @ 8306AD8 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 25 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_VOLTORB_1:: @ 8306B00 + obj_image_anim_frame 0, 4 + obj_image_anim_frame 1, 25 + obj_image_anim_frame 0, 4 + obj_image_anim_frame 1, 25 + obj_image_anim_frame 0, 4 + obj_image_anim_end + + .align 2 +gAnimCmd_ELECTRODE_1:: @ 8306B18 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 8 + obj_image_anim_end + + .align 2 +gAnimCmd_EXEGGCUTE_1:: @ 8306B30 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_EXEGGUTOR_1:: @ 8306B58 + obj_image_anim_frame 1, 35 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_CUBONE_1:: @ 8306B64 + obj_image_anim_frame 1, 14 + obj_image_anim_frame 0, 14 + obj_image_anim_frame 1, 14 + obj_image_anim_frame 0, 14 + obj_image_anim_frame 1, 14 + obj_image_anim_frame 0, 14 + obj_image_anim_end + + .align 2 +gAnimCmd_MAROWAK_1:: @ 8306B80 + obj_image_anim_frame 1, 14 + obj_image_anim_frame 0, 14 + obj_image_anim_frame 1, 14 + obj_image_anim_frame 0, 14 + obj_image_anim_frame 1, 14 + obj_image_anim_frame 0, 14 + obj_image_anim_end + + .align 2 +gAnimCmd_HITMONLEE_1:: @ 8306B9C + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_HITMONCHAN_1:: @ 8306BA8 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 25 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_LICKITUNG_1:: @ 8306BCC + obj_image_anim_frame 0, 28 + obj_image_anim_frame 1, 32 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_KOFFING_1:: @ 8306BDC + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_KOFFING_2:: @ 8306BF4 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_WEEZING_1:: @ 8306C08 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_WEEZING_2:: @ 8306C20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_RHYHORN_1:: @ 8306C34 + obj_image_anim_frame 0, 11 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_RHYHORN_2:: @ 8306C4C + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_RHYDON_1:: @ 8306C60 + obj_image_anim_frame 0, 11 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 48 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_RHYDON_2:: @ 8306C78 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_CHANSEY_1:: @ 8306C8C + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_TANGELA_1:: @ 8306C9C + obj_image_anim_frame 1, 9 + obj_image_anim_frame 0, 9 + obj_image_anim_frame 1, 9 + obj_image_anim_frame 0, 9 + obj_image_anim_frame 1, 9 + obj_image_anim_frame 0, 9 + obj_image_anim_frame 1, 9 + obj_image_anim_frame 0, 9 + obj_image_anim_frame 1, 9 + obj_image_anim_frame 0, 9 + obj_image_anim_end + + .align 2 +gAnimCmd_KANGASKHAN_1:: @ 8306CC8 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_HORSEA_1:: @ 8306CDC + obj_image_anim_frame 0, 11 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_HORSEA_2:: @ 8306CF4 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_SEADRA_1:: @ 8306D08 + obj_image_anim_frame 0, 11 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_SEADRA_2:: @ 8306D20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_GOLDEEN_1:: @ 8306D34 + obj_image_anim_frame 0, 16 + obj_image_anim_frame 1, 16 + obj_image_anim_frame 0, 16 + obj_image_anim_frame 1, 16 + obj_image_anim_frame 0, 16 + obj_image_anim_frame 1, 16 + obj_image_anim_frame 0, 16 + obj_image_anim_frame 1, 16 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_SEAKING_1:: @ 8306D5C + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_STARYU_1:: @ 8306D74 + obj_image_anim_frame 0, 11 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_STARYU_2:: @ 8306D8C + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_STARMIE_1:: @ 8306DA0 + obj_image_anim_frame 0, 11 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_STARMIE_2:: @ 8306DB8 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_MR_MIME_1:: @ 8306DCC + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_SCYTHER_1:: @ 8306DE8 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 25 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gAnimCmd_JYNX_1:: @ 8306E0C + obj_image_anim_frame 1, 40 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 50 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_ELECTABUZZ_1:: @ 8306E24 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 40 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_MAGMAR_1:: @ 8306E38 + obj_image_anim_frame 1, 40 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_PINSIR_1:: @ 8306E44 + obj_image_anim_frame 0, 11 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_PINSIR_2:: @ 8306E5C + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_TAUROS_1:: @ 8306E70 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 1, 25 + obj_image_anim_frame 0, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_MAGIKARP_1:: @ 8306E84 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 8 + obj_image_anim_end + + .align 2 +gAnimCmd_GYARADOS_1:: @ 8306EAC + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 32 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_LAPRAS_1:: @ 8306EBC + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_DITTO_1:: @ 8306EC8 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_EEVEE_1:: @ 8306EDC + obj_image_anim_frame 1, 33 + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gAnimCmd_VAPOREON_1:: @ 8306EE8 + obj_image_anim_frame 1, 40 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_JOLTEON_1:: @ 8306EF4 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_FLAREON_1:: @ 8306F00 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 30 + obj_image_anim_end + + .align 2 +gAnimCmd_PORYGON_1:: @ 8306F0C + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_OMANYTE_1:: @ 8306F20 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_OMASTAR_1:: @ 8306F44 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_KABUTO_1:: @ 8306F58 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 8 + obj_image_anim_end + + .align 2 +gAnimCmd_KABUTOPS_1:: @ 8306F7C + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_AERODACTYL_1:: @ 8306F90 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 25 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 25 + obj_image_anim_end + + .align 2 +gAnimCmd_SNORLAX_1:: @ 8306FA4 + obj_image_anim_frame 1, 50 + obj_image_anim_frame 1, 50 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_ARTICUNO_1:: @ 8306FB4 + obj_image_anim_frame 1, 25 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_ZAPDOS_1:: @ 8306FC8 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_MOLTRES_1:: @ 8306FDC + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_end + + .align 2 +gAnimCmd_DRATINI_1:: @ 8307060 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_DRAGONAIR_1:: @ 8307070 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_DRAGONITE_1:: @ 8307084 + obj_image_anim_frame 1, 50 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_MEWTWO_1:: @ 8307094 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_MEW_1:: @ 83070A0 + obj_image_anim_frame 1, 50 + obj_image_anim_frame 1, 40 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_CHIKORITA_1:: @ 83070B0 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_BAYLEEF_1:: @ 83070C0 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_MEGANIUM_1:: @ 83070CC + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_CYNDAQUIL_1:: @ 83070D8 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_QUILAVA_1:: @ 83070EC + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_TYPHLOSION_1:: @ 83070F8 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_TOTODILE_1:: @ 8307104 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 8 + obj_image_anim_end + + .align 2 +gAnimCmd_CROCONAW_1:: @ 8307120 + obj_image_anim_frame 1, 40 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_FERALIGATR_1:: @ 830712C + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 25 + obj_image_anim_frame 0, 40 + obj_image_anim_end + + .align 2 +gAnimCmd_SENTRET_1:: @ 8307140 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_FURRET_1:: @ 8307154 + obj_image_anim_frame 1, 35 + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gAnimCmd_HOOTHOOT_1:: @ 8307160 + obj_image_anim_frame 1, 7 + obj_image_anim_frame 0, 7 + obj_image_anim_frame 1, 7 + obj_image_anim_frame 0, 7 + obj_image_anim_frame 1, 7 + obj_image_anim_frame 0, 7 + obj_image_anim_frame 1, 7 + obj_image_anim_frame 0, 7 + obj_image_anim_frame 1, 7 + obj_image_anim_frame 0, 7 + obj_image_anim_frame 1, 7 + obj_image_anim_frame 0, 7 + obj_image_anim_end + + .align 2 +gAnimCmd_NOCTOWL_1:: @ 8307194 + obj_image_anim_frame 1, 40 + obj_image_anim_frame 0, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_LEDYBA_1:: @ 83071A0 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_LEDIAN_1:: @ 83071B4 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_end + + .align 2 +gAnimCmd_SPINARAK_1:: @ 8307220 + obj_image_anim_frame 1, 6 + obj_image_anim_frame 0, 6 + obj_image_anim_frame 1, 6 + obj_image_anim_frame 0, 6 + obj_image_anim_frame 1, 6 + obj_image_anim_frame 0, 6 + obj_image_anim_frame 1, 6 + obj_image_anim_frame 0, 6 + obj_image_anim_end + + .align 2 +gAnimCmd_ARIADOS_1:: @ 8307244 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_CROBAT_1:: @ 8307258 + obj_image_anim_frame 0, 2 + obj_image_anim_frame 1, 2 + obj_image_anim_frame 0, 2 + obj_image_anim_frame 1, 2 + obj_image_anim_frame 0, 2 + obj_image_anim_frame 1, 2 + obj_image_anim_frame 0, 2 + obj_image_anim_frame 1, 2 + obj_image_anim_frame 0, 2 + obj_image_anim_frame 1, 2 + obj_image_anim_frame 0, 2 + obj_image_anim_frame 1, 2 + obj_image_anim_frame 0, 2 + obj_image_anim_frame 1, 2 + obj_image_anim_frame 0, 2 + obj_image_anim_frame 1, 2 + obj_image_anim_frame 0, 2 + obj_image_anim_end + + .align 2 +gAnimCmd_CHINCHOU_1:: @ 83072A0 + obj_image_anim_frame 0, 11 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_CHINCHOU_2:: @ 83072B8 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_LANTURN_1:: @ 83072CC + obj_image_anim_frame 0, 11 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_LANTURN_2:: @ 83072E4 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_PICHU_1:: @ 83072F8 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_PICHU_2:: @ 8307310 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_CLEFFA_1:: @ 8307324 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_IGGLYBUFF_1:: @ 8307338 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_IGGLYBUFF_2:: @ 8307350 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_TOGEPI_1:: @ 8307364 + obj_image_anim_frame 1, 50 + obj_image_anim_frame 1, 50 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_TOGETIC_1:: @ 8307374 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_NATU_1:: @ 8307384 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_NATU_2:: @ 830739C + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_XATU_1:: @ 83073B0 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 45 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_XATU_2:: @ 83073D0 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_MAREEP_1:: @ 83073E4 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_FLAAFFY_1:: @ 8307400 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_AMPHAROS_1:: @ 8307414 + obj_image_anim_frame 1, 50 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_BELLOSSOM_1:: @ 8307424 + obj_image_anim_frame 0, 22 + obj_image_anim_frame 1, 22 + obj_image_anim_frame 0, 22 + obj_image_anim_frame 1, 22 + obj_image_anim_frame 0, 22 + obj_image_anim_frame 1, 22 + obj_image_anim_frame 0, 22 + obj_image_anim_end + + .align 2 +gAnimCmd_MARILL_1:: @ 8307444 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 1, 44 + obj_image_anim_frame 0, 22 + obj_image_anim_frame 1, 44 + obj_image_anim_frame 0, 11 + obj_image_anim_end + + .align 2 +gAnimCmd_AZUMARILL_1:: @ 830745C + obj_image_anim_frame 0, 22 + obj_image_anim_frame 1, 22 + obj_image_anim_frame 0, 22 + obj_image_anim_frame 1, 22 + obj_image_anim_frame 0, 11 + obj_image_anim_end + + .align 2 +gAnimCmd_SUDOWOODO_1:: @ 8307474 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_POLITOED_1:: @ 8307490 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 35 + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gAnimCmd_HOPPIP_1:: @ 83074AC + obj_image_anim_frame 1, 25 + obj_image_anim_frame 0, 25 + obj_image_anim_frame 1, 25 + obj_image_anim_frame 0, 25 + obj_image_anim_end + + .align 2 +gAnimCmd_SKIPLOOM_1:: @ 83074C0 + obj_image_anim_frame 1, 12 + obj_image_anim_frame 0, 12 + obj_image_anim_frame 1, 12 + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 12 + obj_image_anim_frame 0, 12 + obj_image_anim_frame 1, 12 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_JUMPLUFF_1:: @ 83074E4 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 25 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 25 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_AIPOM_1:: @ 8307500 + obj_image_anim_frame 1, 35 + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gAnimCmd_SUNKERN_1:: @ 830750C + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_SUNFLORA_1:: @ 8307520 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_YANMA_1:: @ 8307530 + obj_image_anim_frame 1, 2 + obj_image_anim_frame 0, 2 + obj_image_anim_frame 1, 2 + obj_image_anim_frame 0, 2 + obj_image_anim_frame 1, 2 + obj_image_anim_frame 0, 2 + obj_image_anim_frame 1, 2 + obj_image_anim_frame 0, 2 + obj_image_anim_frame 1, 2 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 1, 2 + obj_image_anim_frame 0, 2 + obj_image_anim_frame 1, 2 + obj_image_anim_frame 0, 2 + obj_image_anim_frame 1, 2 + obj_image_anim_frame 0, 2 + obj_image_anim_frame 1, 2 + obj_image_anim_frame 0, 2 + obj_image_anim_frame 1, 2 + obj_image_anim_frame 0, 2 + obj_image_anim_frame 1, 2 + obj_image_anim_frame 0, 2 + obj_image_anim_end + + .align 2 +gAnimCmd_WOOPER_1:: @ 830758C + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_QUAGSIRE_1:: @ 830759C + obj_image_anim_frame 1, 32 + obj_image_anim_frame 0, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_ESPEON_1:: @ 83075A8 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 25 + obj_image_anim_frame 0, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_UMBREON_1:: @ 83075B8 + obj_image_anim_frame 1, 40 + obj_image_anim_frame 0, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_MURKROW_1:: @ 83075C4 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_SLOWKING_1:: @ 83075D0 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_MISDREAVUS_1:: @ 83075E0 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_UNOWN_1:: @ 830760C + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_WOBBUFFET_1:: @ 830761C + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_WOBBUFFET_2:: @ 8307634 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_GIRAFARIG_1:: @ 8307648 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_GIRAFARIG_2:: @ 8307668 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_PINECO_1:: @ 830767C + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_FORRETRESS_1:: @ 83076A0 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_DUNSPARCE_1:: @ 83076B4 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_GLIGAR_1:: @ 83076C8 + obj_image_anim_frame 1, 17 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_STEELIX_1:: @ 83076D4 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 1, 35 + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gAnimCmd_SNUBBULL_1:: @ 83076F0 + obj_image_anim_frame 1, 32 + obj_image_anim_frame 0, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_GRANBULL_1:: @ 83076FC + obj_image_anim_frame 1, 35 + obj_image_anim_frame 0, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_QWILFISH_1:: @ 8307708 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 50 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 30 + obj_image_anim_end + + .align 2 +gAnimCmd_SCIZOR_1:: @ 8307728 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_SHUCKLE_1:: @ 8307734 + obj_image_anim_frame 1, 50 + obj_image_anim_frame 1, 50 + obj_image_anim_frame 0, 30 + obj_image_anim_end + + .align 2 +gAnimCmd_HERACROSS_1:: @ 8307744 + obj_image_anim_frame 0, 11 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_HERACROSS_2:: @ 830775C + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_SNEASEL_1:: @ 8307770 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_TEDDIURSA_1:: @ 830777C + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_URSARING_1:: @ 8307788 + obj_image_anim_frame 1, 40 + obj_image_anim_frame 0, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_SLUGMA_1:: @ 8307794 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_SLUGMA_2:: @ 83077AC + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_MAGCARGO_1:: @ 83077C0 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_MAGCARGO_2:: @ 83077D8 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_SWINUB_1:: @ 83077EC + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_PILOSWINE_1:: @ 8307800 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_CORSOLA_1:: @ 8307814 + obj_image_anim_frame 0, 11 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_CORSOLA_2:: @ 830782C + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_REMORAID_1:: @ 8307840 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 8 + obj_image_anim_end + + .align 2 +gAnimCmd_OCTILLERY_1:: @ 8307854 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_DELIBIRD_1:: @ 8307868 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_MANTINE_1:: @ 830787C + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 40 + obj_image_anim_end + + .align 2 +gAnimCmd_SKARMORY_1:: @ 8307890 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_SKARMORY_2:: @ 83078A8 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_HOUNDOUR_1:: @ 83078BC + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_HOUNDOOM_1:: @ 83078D0 + obj_image_anim_frame 1, 40 + obj_image_anim_frame 0, 30 + obj_image_anim_end + + .align 2 +gAnimCmd_KINGDRA_1:: @ 83078DC + obj_image_anim_frame 0, 11 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_KINGDRA_2:: @ 83078F4 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_PHANPY_1:: @ 8307908 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_PHANPY_2:: @ 8307928 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_DONPHAN_1:: @ 830793C + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_DONPHAN_2:: @ 830795C + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_PORYGON2_1:: @ 8307970 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_STANTLER_1:: @ 8307988 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_SMEARGLE_1:: @ 8307994 + obj_image_anim_frame 1, 12 + obj_image_anim_frame 0, 12 + obj_image_anim_frame 1, 12 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_TYROGUE_1:: @ 83079A8 + obj_image_anim_frame 1, 40 + obj_image_anim_frame 0, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_HITMONTOP_1:: @ 83079B4 + obj_image_anim_frame 0, 4 + obj_image_anim_frame 1, 4 + obj_image_anim_frame 0, 4 + obj_image_anim_frame 1, 4 + obj_image_anim_frame 0, 4 + obj_image_anim_frame 1, 4 + obj_image_anim_frame 0, 4 + obj_image_anim_frame 1, 4 + obj_image_anim_frame 0, 4 + obj_image_anim_frame 1, 4 + obj_image_anim_frame 0, 4 + obj_image_anim_end + + .align 2 +gAnimCmd_SMOOCHUM_1:: @ 83079E4 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_ELEKID_1:: @ 8307A00 + obj_image_anim_frame 1, 50 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_MAGBY_1:: @ 8307A10 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_MILTANK_1:: @ 8307A30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 30 + obj_image_anim_end + + .align 2 +gAnimCmd_BLISSEY_1:: @ 8307A3C + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_RAIKOU_1:: @ 8307A48 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_ENTEI_1:: @ 8307A5C + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_SUICUNE_1:: @ 8307A68 + obj_image_anim_frame 1, 40 + obj_image_anim_frame 0, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_LARVITAR_1:: @ 8307A74 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_PUPITAR_1:: @ 8307A88 + obj_image_anim_frame 1, 40 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_TYRANITAR_1:: @ 8307A94 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_LUGIA_1:: @ 8307AA8 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_HO_OH_1:: @ 8307AB4 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_CELEBI_1:: @ 8307AC0 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 30 + obj_image_anim_end + + .align 2 +gAnimCmd_OLD_UNOWN_B_1:: @ 8307AD4 + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_TREECKO_1:: @ 8307AE4 + obj_image_anim_frame 0, 6 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 6 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 3 + obj_image_anim_end + + .align 2 +gAnimCmd_GROVYLE_1:: @ 8307AFC + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 18 + obj_image_anim_frame 0, 7 + obj_image_anim_frame 1, 12 + obj_image_anim_frame 0, 6 + obj_image_anim_end + + .align 2 +gAnimCmd_SCEPTILE_1:: @ 8307B14 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 26 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_TORCHIC_1:: @ 8307B24 + obj_image_anim_frame 0, 7 + obj_image_anim_frame 1, 4 + obj_image_anim_frame 0, 4 + obj_image_anim_frame 1, 4 + obj_image_anim_frame 0, 4 + obj_image_anim_frame 1, 4 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_COMBUSKEN_1:: @ 8307B44 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 25 + obj_image_anim_frame 0, 12 + obj_image_anim_end + + .align 2 +gAnimCmd_BLAZIKEN_1:: @ 8307B54 + obj_image_anim_frame 0, 1 + obj_image_anim_frame 1, 25 + obj_image_anim_frame 0, 7 + obj_image_anim_frame 1, 7 + obj_image_anim_frame 0, 7 + obj_image_anim_end + + .align 2 +gAnimCmd_BLAZIKEN_2:: @ 8307B6C + obj_image_anim_frame 0, 1 + obj_image_anim_frame 2, 8 + obj_image_anim_frame 0, 8 + obj_image_anim_end + + .align 2 +gAnimCmd_BLAZIKEN_3:: @ 8307B7C + obj_image_anim_frame 0, 10 + obj_image_anim_frame 2, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_BLAZIKEN_4:: @ 8307B88 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_MUDKIP_1:: @ 8307B90 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 13 + obj_image_anim_frame 0, 7 + obj_image_anim_end + + .align 2 +gAnimCmd_MARSHTOMP_1:: @ 8307BA8 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_SWAMPERT_1:: @ 8307BD0 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 44 + obj_image_anim_frame 0, 18 + obj_image_anim_frame 1, 18 + obj_image_anim_frame 0, 7 + obj_image_anim_end + + .align 2 +gAnimCmd_POOCHYENA_1:: @ 8307BE8 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 44 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_MIGHTYENA_1:: @ 8307BF8 + obj_image_anim_frame 0, 27 + obj_image_anim_frame 1, 6 + obj_image_anim_frame 0, 6 + obj_image_anim_frame 1, 6 + obj_image_anim_frame 0, 6 + obj_image_anim_end + + .align 2 +gAnimCmd_ZIGZAGOON_1:: @ 8307C10 + obj_image_anim_frame 0, 27 + obj_image_anim_frame 1, 6 + obj_image_anim_frame 0, 6 + obj_image_anim_frame 1, 6 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_LINOONE_1:: @ 8307C28 + obj_image_anim_frame 0, 14 + obj_image_anim_frame 1, 14 + obj_image_anim_frame 0, 14 + obj_image_anim_frame 1, 14 + obj_image_anim_frame 0, 14 + obj_image_anim_end + + .align 2 +gAnimCmd_WURMPLE_1:: @ 8307C40 + obj_image_anim_frame 0, 22 + obj_image_anim_frame 1, 35 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_SILCOON_1:: @ 8307C50 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 25 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_SILCOON_2:: @ 8307C60 + obj_image_anim_frame 1, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_BEAUTIFLY_1:: @ 8307C68 + obj_image_anim_frame 0, 2 + obj_image_anim_frame 1, 2 + obj_image_anim_frame 0, 2 + obj_image_anim_frame 1, 2 + obj_image_anim_frame 0, 2 + obj_image_anim_frame 1, 2 + obj_image_anim_frame 0, 2 + obj_image_anim_frame 1, 2 + obj_image_anim_frame 0, 2 + obj_image_anim_end + + .align 2 +gAnimCmd_BEAUTIFLY_2:: @ 8307C90 + obj_image_anim_frame 1, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_CASCOON_1:: @ 8307C98 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_CASCOON_2:: @ 8307CB0 + obj_image_anim_frame 1, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_DUSTOX_1:: @ 8307CB8 + obj_image_anim_frame 0, 1 + obj_image_anim_frame 1, 1 + obj_image_anim_frame 0, 1 + obj_image_anim_frame 1, 1 + obj_image_anim_frame 0, 2 + obj_image_anim_frame 1, 2 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 4 + obj_image_anim_frame 1, 4 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 12 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_DUSTOX_2:: @ 8307CF8 + obj_image_anim_frame 1, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_LOTAD_1:: @ 8307D00 + obj_image_anim_frame 0, 22 + obj_image_anim_frame 1, 55 + obj_image_anim_frame 0, 22 + obj_image_anim_end + + .align 2 +gAnimCmd_LOMBRE_1:: @ 8307D10 + obj_image_anim_frame 0, 6 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 6 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 7 + obj_image_anim_end + + .align 2 +gAnimCmd_LUDICOLO_1:: @ 8307D28 + obj_image_anim_frame 0, 22 + obj_image_anim_frame 1, 22 + obj_image_anim_frame 0, 22 + obj_image_anim_frame 1, 22 + obj_image_anim_frame 0, 22 + obj_image_anim_frame 1, 22 + obj_image_anim_frame 0, 22 + obj_image_anim_end + + .align 2 +gAnimCmd_SEEDOT_1:: @ 8307D48 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_NUZLEAF_1:: @ 8307D70 + obj_image_anim_frame 0, 7 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 7 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 7 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 7 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 7 + obj_image_anim_end + + .align 2 +gAnimCmd_SHIFTRY_1:: @ 8307D98 + obj_image_anim_frame 0, 7 + obj_image_anim_frame 1, 35 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_NINCADA_1:: @ 8307DA8 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 22 + obj_image_anim_frame 0, 11 + obj_image_anim_frame 1, 33 + obj_image_anim_frame 0, 11 + obj_image_anim_end + + .align 2 +gAnimCmd_NINJASK_1:: @ 8307DC0 + obj_image_anim_frame 0, 1 + obj_image_anim_frame 1, 1 + obj_image_anim_frame 0, 1 + obj_image_anim_frame 1, 1 + obj_image_anim_frame 0, 1 + obj_image_anim_frame 1, 1 + obj_image_anim_frame 0, 1 + obj_image_anim_frame 1, 1 + obj_image_anim_frame 0, 33 + obj_image_anim_frame 0, 1 + obj_image_anim_frame 1, 1 + obj_image_anim_frame 0, 1 + obj_image_anim_frame 1, 1 + obj_image_anim_frame 0, 1 + obj_image_anim_frame 1, 1 + obj_image_anim_frame 0, 1 + obj_image_anim_frame 1, 1 + obj_image_anim_frame 0, 11 + obj_image_anim_end + + .align 2 +gAnimCmd_SHEDINJA_1:: @ 8307E0C + obj_image_anim_frame 0, 33 + obj_image_anim_frame 1, 33 + obj_image_anim_frame 0, 33 + obj_image_anim_frame 1, 33 + obj_image_anim_frame 0, 11 + obj_image_anim_end + + .align 2 +gAnimCmd_TAILLOW_1:: @ 8307E24 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 2 + obj_image_anim_frame 1, 2 + obj_image_anim_frame 0, 2 + obj_image_anim_frame 1, 2 + obj_image_anim_frame 0, 2 + obj_image_anim_frame 1, 2 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_SWELLOW_1:: @ 8307E4C + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 18 + obj_image_anim_frame 0, 11 + obj_image_anim_end + + .align 2 +gAnimCmd_SHROOMISH_1:: @ 8307E5C + obj_image_anim_frame 0, 6 + obj_image_anim_frame 1, 6 + obj_image_anim_frame 0, 6 + obj_image_anim_frame 1, 6 + obj_image_anim_frame 0, 6 + obj_image_anim_frame 1, 6 + obj_image_anim_frame 0, 6 + obj_image_anim_frame 1, 6 + obj_image_anim_frame 0, 6 + obj_image_anim_frame 1, 6 + obj_image_anim_frame 0, 6 + obj_image_anim_end + + .align 2 +gAnimCmd_BRELOOM_1:: @ 8307E8C + obj_image_anim_frame 0, 6 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 6 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 7 + obj_image_anim_end + + .align 2 +gAnimCmd_WINGULL_1:: @ 8307EA4 + obj_image_anim_frame 0, 17 + obj_image_anim_frame 1, 23 + obj_image_anim_frame 0, 13 + obj_image_anim_end + + .align 2 +gAnimCmd_PELIPPER_1:: @ 8307EB4 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 5 + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gAnimCmd_SURSKIT_1:: @ 8307EDC + obj_image_anim_frame 0, 6 + obj_image_anim_frame 1, 18 + obj_image_anim_frame 0, 6 + obj_image_anim_frame 1, 18 + obj_image_anim_frame 0, 8 + obj_image_anim_end + + .align 2 +gAnimCmd_SURSKIT_2:: @ 8307EF4 + obj_image_anim_frame 1, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_MASQUERAIN_1:: @ 8307EFC + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 8 + obj_image_anim_end + + .align 2 +gAnimCmd_MASQUERAIN_2:: @ 8307F24 + obj_image_anim_frame 1, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_WAILMER_1:: @ 8307F2C + obj_image_anim_frame 0, 22 + obj_image_anim_frame 1, 22 + obj_image_anim_frame 0, 22 + obj_image_anim_frame 1, 22 + obj_image_anim_frame 0, 22 + obj_image_anim_frame 1, 22 + obj_image_anim_frame 0, 22 + obj_image_anim_end + + .align 2 +gAnimCmd_WAILORD_1:: @ 8307F4C + obj_image_anim_frame 0, 26 + obj_image_anim_frame 1, 48 + obj_image_anim_frame 0, 33 + obj_image_anim_end + + .align 2 +gAnimCmd_SKITTY_1:: @ 8307F5C + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 35 + obj_image_anim_frame 0, 9 + obj_image_anim_end + + .align 2 +gAnimCmd_DELCATTY_1:: @ 8307F6C + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 46 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_KECLEON_1:: @ 8307F7C + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 18 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_BALTOY_1:: @ 8307F94 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 50 + obj_image_anim_end + + .align 2 +gAnimCmd_CLAYDOL_1:: @ 8307FB4 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_NOSEPASS_1:: @ 8307FD4 + obj_image_anim_frame 0, 27 + obj_image_anim_frame 1, 27 + obj_image_anim_frame 0, 27 + obj_image_anim_frame 1, 27 + obj_image_anim_frame 0, 27 + obj_image_anim_frame 1, 27 + obj_image_anim_frame 0, 3 + obj_image_anim_end + + .align 2 +gAnimCmd_TORKOAL_1:: @ 8307FF4 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_SABLEYE_1:: @ 830800C + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_BARBOACH_1:: @ 8308024 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 50 + obj_image_anim_end + + .align 2 +gAnimCmd_WHISCASH_1:: @ 830805C + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_LUVDISC_1:: @ 8308094 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_CORPHISH_1:: @ 83080AC + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 50 + obj_image_anim_end + + .align 2 +gAnimCmd_CRAWDAUNT_1:: @ 83080CC + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_FEEBAS_1:: @ 83080E4 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_MILOTIC_1:: @ 8308104 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_CARVANHA_1:: @ 8308124 + obj_image_anim_frame 0, 6 + obj_image_anim_frame 1, 6 + obj_image_anim_frame 0, 6 + obj_image_anim_frame 1, 6 + obj_image_anim_frame 0, 6 + obj_image_anim_frame 1, 6 + obj_image_anim_frame 0, 6 + obj_image_anim_frame 1, 6 + obj_image_anim_frame 0, 6 + obj_image_anim_end + + .align 2 +gAnimCmd_SHARPEDO_1:: @ 830814C + obj_image_anim_frame 0, 6 + obj_image_anim_frame 1, 6 + obj_image_anim_frame 0, 6 + obj_image_anim_frame 1, 6 + obj_image_anim_frame 0, 6 + obj_image_anim_frame 1, 6 + obj_image_anim_frame 0, 6 + obj_image_anim_frame 1, 6 + obj_image_anim_frame 0, 22 + obj_image_anim_end + + .align 2 +gAnimCmd_TRAPINCH_1:: @ 8308174 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_VIBRAVA_1:: @ 830818C + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 50 + obj_image_anim_end + + .align 2 +gAnimCmd_FLYGON_1:: @ 83081AC + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 50 + obj_image_anim_end + + .align 2 +gAnimCmd_MAKUHITA_1:: @ 83081CC + obj_image_anim_frame 0, 7 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 7 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 7 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 7 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 22 + obj_image_anim_end + + .align 2 +gAnimCmd_HARIYAMA_1:: @ 83081F4 + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 1, 16 + obj_image_anim_frame 0, 11 + obj_image_anim_end + + .align 2 +gAnimCmd_ELECTRIKE_1:: @ 8308208 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 25 + obj_image_anim_frame 0, 17 + obj_image_anim_frame 1, 25 + obj_image_anim_frame 0, 3 + obj_image_anim_end + + .align 2 +gAnimCmd_MANECTRIC_1:: @ 8308220 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 33 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 25 + obj_image_anim_frame 0, 3 + obj_image_anim_end + + .align 2 +gAnimCmd_NUMEL_1:: @ 8308238 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 40 + obj_image_anim_end + + .align 2 +gAnimCmd_CAMERUPT_1:: @ 8308250 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_SPHEAL_1:: @ 8308270 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 43 + obj_image_anim_frame 1, 60 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_SEALEO_1:: @ 8308294 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_WALREIN_1:: @ 83082AC + obj_image_anim_frame 0, 2 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 6 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_CACNEA_1:: @ 83082C4 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_CACTURNE_1:: @ 83082F4 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_SNORUNT_1:: @ 830830C + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_GLALIE_1:: @ 8308324 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_LUNATONE_1:: @ 830833C + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_LUNATONE_2:: @ 8308354 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_SOLROCK_1:: @ 8308368 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_SOLROCK_2:: @ 8308380 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_AZURILL_1:: @ 8308394 + obj_image_anim_frame 0, 12 + obj_image_anim_frame 1, 12 + obj_image_anim_frame 0, 12 + obj_image_anim_frame 1, 12 + obj_image_anim_frame 0, 12 + obj_image_anim_frame 1, 12 + obj_image_anim_frame 0, 12 + obj_image_anim_end + + .align 2 +gAnimCmd_SPOINK_1:: @ 83083B4 + obj_image_anim_frame 0, 5 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_GRUMPIG_1:: @ 83083E4 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_PLUSLE_1:: @ 83083FC + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_MINUN_1:: @ 8308414 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_MAWILE_1:: @ 830842C + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_MEDITITE_1:: @ 830844C + obj_image_anim_frame 0, 22 + obj_image_anim_frame 1, 2 + obj_image_anim_frame 0, 22 + obj_image_anim_end + + .align 2 +gAnimCmd_MEDICHAM_1:: @ 830845C + obj_image_anim_frame 0, 11 + obj_image_anim_frame 1, 11 + obj_image_anim_frame 0, 11 + obj_image_anim_frame 1, 11 + obj_image_anim_frame 0, 11 + obj_image_anim_frame 1, 11 + obj_image_anim_frame 0, 11 + obj_image_anim_end + + .align 2 +gAnimCmd_SWABLU_1:: @ 830847C + obj_image_anim_frame 0, 1 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_SWABLU_2:: @ 830849C + obj_image_anim_frame 0, 1 + obj_image_anim_frame 2, 8 + obj_image_anim_frame 0, 12 + obj_image_anim_frame 2, 8 + obj_image_anim_frame 0, 12 + obj_image_anim_frame 2, 8 + obj_image_anim_end + + .align 2 +gAnimCmd_ALTARIA_1:: @ 83084B8 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_ALTARIA_2:: @ 83084D0 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_WYNAUT_1:: @ 83084E4 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_DUSKULL_1:: @ 83084FC + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_DUSCLOPS_1:: @ 8308514 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_ROSELIA_1:: @ 830852C + obj_image_anim_frame 0, 18 + obj_image_anim_frame 1, 44 + obj_image_anim_frame 0, 22 + obj_image_anim_end + + .align 2 +gAnimCmd_SLAKOTH_1:: @ 830853C + obj_image_anim_frame 0, 13 + obj_image_anim_frame 1, 22 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 22 + obj_image_anim_frame 0, 11 + obj_image_anim_frame 0, 11 + obj_image_anim_end + + .align 2 +gAnimCmd_VIGOROTH_1:: @ 8308558 + obj_image_anim_frame 0, 13 + obj_image_anim_frame 1, 7 + obj_image_anim_frame 0, 13 + obj_image_anim_frame 1, 7 + obj_image_anim_frame 0, 13 + obj_image_anim_frame 1, 7 + obj_image_anim_frame 0, 11 + obj_image_anim_end + + .align 2 +gAnimCmd_SLAKING_1:: @ 8308578 + obj_image_anim_frame 0, 22 + obj_image_anim_frame 1, 22 + obj_image_anim_frame 0, 22 + obj_image_anim_frame 1, 22 + obj_image_anim_frame 0, 22 + obj_image_anim_frame 1, 22 + obj_image_anim_frame 0, 22 + obj_image_anim_end + + .align 2 +gAnimCmd_GULPIN_1:: @ 8308598 + obj_image_anim_frame 0, 14 + obj_image_anim_frame 1, 14 + obj_image_anim_frame 0, 14 + obj_image_anim_frame 1, 14 + obj_image_anim_frame 0, 4 + obj_image_anim_end + + .align 2 +gAnimCmd_SWALOT_1:: @ 83085B0 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 30 + obj_image_anim_end + + .align 2 +gAnimCmd_TROPIUS_1:: @ 83085C4 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_WHISMUR_1:: @ 83085DC + obj_image_anim_frame 0, 9 + obj_image_anim_frame 1, 9 + obj_image_anim_frame 0, 9 + obj_image_anim_frame 1, 9 + obj_image_anim_frame 0, 33 + obj_image_anim_frame 0, 9 + obj_image_anim_frame 1, 9 + obj_image_anim_frame 0, 9 + obj_image_anim_frame 1, 9 + obj_image_anim_frame 0, 9 + obj_image_anim_end + + .align 2 +gAnimCmd_LOUDRED_1:: @ 8308608 + obj_image_anim_frame 0, 9 + obj_image_anim_frame 1, 9 + obj_image_anim_frame 0, 9 + obj_image_anim_frame 1, 9 + obj_image_anim_frame 0, 33 + obj_image_anim_end + + .align 2 +gAnimCmd_EXPLOUD_1:: @ 8308620 + obj_image_anim_frame 0, 9 + obj_image_anim_frame 1, 44 + obj_image_anim_frame 0, 9 + obj_image_anim_end + + .align 2 +gAnimCmd_CLAMPERL_1:: @ 8308630 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_HUNTAIL_1:: @ 8308648 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_GOREBYSS_1:: @ 8308660 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_ABSOL_1:: @ 8308678 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_SHUPPET_1:: @ 8308690 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_BANETTE_1:: @ 83086B0 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_SEVIPER_1:: @ 83086D0 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 50 + obj_image_anim_end + + .align 2 +gAnimCmd_ZANGOOSE_1:: @ 83086F0 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 50 + obj_image_anim_end + + .align 2 +gAnimCmd_RELICANTH_1:: @ 8308710 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_ARON_1:: @ 8308728 + obj_image_anim_frame 0, 33 + obj_image_anim_frame 1, 44 + obj_image_anim_frame 0, 33 + obj_image_anim_frame 1, 33 + obj_image_anim_frame 0, 11 + obj_image_anim_end + + .align 2 +gAnimCmd_LAIRON_1:: @ 8308740 + obj_image_anim_frame 0, 12 + obj_image_anim_frame 1, 29 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 29 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_AGGRON_1:: @ 8308758 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 44 + obj_image_anim_frame 0, 11 + obj_image_anim_end + + .align 2 +gAnimCmd_CASTFORM_0:: @ 8308768 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_CASTFORM_1:: @ 8308770 + obj_image_anim_frame 1, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_CASTFORM_2:: @ 8308778 + obj_image_anim_frame 2, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_CASTFORM_3:: @ 8308780 + obj_image_anim_frame 3, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_VOLBEAT_1:: @ 8308788 + obj_image_anim_frame 0, 11 + obj_image_anim_frame 1, 11 + obj_image_anim_frame 0, 11 + obj_image_anim_frame 1, 11 + obj_image_anim_frame 0, 11 + obj_image_anim_frame 1, 11 + obj_image_anim_frame 0, 5 + obj_image_anim_end + + .align 2 +gAnimCmd_ILLUMISE_1:: @ 83087A8 + obj_image_anim_frame 0, 22 + obj_image_anim_frame 1, 22 + obj_image_anim_frame 0, 22 + obj_image_anim_frame 1, 22 + obj_image_anim_frame 0, 11 + obj_image_anim_end + + .align 2 +gAnimCmd_LILEEP_1:: @ 83087C0 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_CRADILY_1:: @ 83087D8 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_ANORITH_1:: @ 83087F8 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_ARMALDO_1:: @ 8308818 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_RALTS_1:: @ 8308830 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 25 + obj_image_anim_frame 0, 8 + obj_image_anim_end + + .align 2 +gAnimCmd_KIRLIA_1:: @ 8308840 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 39 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_GARDEVOIR_1:: @ 8308850 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 3 + obj_image_anim_frame 1, 3 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_BAGON_1:: @ 8308888 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_SHELGON_1:: @ 83088A0 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_SALAMENCE_1:: @ 83088B8 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_BELDUM_1:: @ 83088D0 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_METANG_1:: @ 83088E8 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 8 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 8 + obj_image_anim_end + + .align 2 +gAnimCmd_METAGROSS_1:: @ 8308900 + obj_image_anim_frame 0, 16 + obj_image_anim_frame 1, 16 + obj_image_anim_frame 0, 16 + obj_image_anim_frame 1, 16 + obj_image_anim_frame 0, 16 + obj_image_anim_end + + .align 2 +gAnimCmd_REGIROCK_1:: @ 8308918 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_REGIROCK_2:: @ 8308930 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_REGICE_1:: @ 8308944 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 18 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_REGISTEEL_1:: @ 830895C + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_REGISTEEL_2:: @ 8308974 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_KYOGRE_1:: @ 8308988 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_KYOGRE_2:: @ 83089A0 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_GROUDON_1:: @ 83089B4 + obj_image_anim_frame 0, 11 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 20 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_GROUDON_2:: @ 83089CC + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_RAYQUAZA_1:: @ 83089E0 + obj_image_anim_frame 0, 1 + obj_image_anim_frame 1, 8 + obj_image_anim_frame 0, 22 + obj_image_anim_frame 1, 6 + obj_image_anim_frame 0, 6 + obj_image_anim_end + + .align 2 +gAnimCmd_RAYQUAZA_2:: @ 83089F8 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_LATIAS_1:: @ 8308A0C + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_LATIAS_2:: @ 8308A24 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_LATIOS_1:: @ 8308A38 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_LATIOS_2:: @ 8308A50 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_JIRACHI_1:: @ 8308A64 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_frame 1, 10 + obj_image_anim_frame 0, 10 + obj_image_anim_end + + .align 2 +gAnimCmd_JIRACHI_2:: @ 8308A90 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_DEOXYS_1:: @ 8308AA4 + obj_image_anim_frame 0, 16 + obj_image_anim_frame 1, 16 + obj_image_anim_frame 0, 26 + obj_image_anim_frame 1, 16 + obj_image_anim_frame 0, 16 + obj_image_anim_end + + .align 2 +gAnimCmd_DEOXYS_2:: @ 8308ABC + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_frame 0, 20 + obj_image_anim_frame 2, 20 + obj_image_anim_end + + .align 2 +gAnimCmd_CHIMECHO_1:: @ 8308AD0 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_frame 1, 15 + obj_image_anim_frame 0, 15 + obj_image_anim_end + + .align 2 +gAnimCmd_EGG_1:: @ 8308AF8 + obj_image_anim_frame 0, 6 + obj_image_anim_frame 1, 6 + obj_image_anim_frame 2, 6 + obj_image_anim_frame 3, 6 + obj_image_anim_end + + .align 2 +gAnimCmd_UNOWN_B_1:: @ 8308B0C + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_UNOWN_C_1:: @ 8308B1C + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_UNOWN_D_1:: @ 8308B2C + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_UNOWN_E_1:: @ 8308B3C + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_UNOWN_F_1:: @ 8308B4C + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_UNOWN_G_1:: @ 8308B5C + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_UNOWN_H_1:: @ 8308B6C + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_UNOWN_I_1:: @ 8308B7C + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_UNOWN_J_1:: @ 8308B8C + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_UNOWN_K_1:: @ 8308B9C + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_UNOWN_L_1:: @ 8308BAC + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_UNOWN_M_1:: @ 8308BBC + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_UNOWN_N_1:: @ 8308BCC + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_UNOWN_O_1:: @ 8308BDC + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_UNOWN_P_1:: @ 8308BEC + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_UNOWN_Q_1:: @ 8308BFC + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_UNOWN_R_1:: @ 8308C0C + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_UNOWN_S_1:: @ 8308C1C + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_UNOWN_T_1:: @ 8308C2C + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_UNOWN_U_1:: @ 8308C3C + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_UNOWN_V_1:: @ 8308C4C + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_UNOWN_W_1:: @ 8308C5C + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_UNOWN_X_1:: @ 8308C6C + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_UNOWN_Y_1:: @ 8308C7C + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_UNOWN_Z_1:: @ 8308C8C + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_UNOWN_EMARK_1:: @ 8308C9C + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnimCmd_UNOWN_QMARK_1:: @ 8308CAC + obj_image_anim_frame 0, 30 + obj_image_anim_frame 1, 30 + obj_image_anim_frame 0, 1 + obj_image_anim_end + + .align 2 +gAnims_NONE:: @ 8308CBC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_NONE_1 + + .align 2 +gAnims_BULBASAUR:: @ 8308CC4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_BULBASAUR_1 + + .align 2 +gAnims_IVYSAUR:: @ 8308CCC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_IVYSAUR_1 + + .align 2 +gAnims_VENUSAUR:: @ 8308CD4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_VENUSAUR_1 + + .align 2 +gAnims_CHARMANDER:: @ 8308CDC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_CHARMANDER_1 + + .align 2 +gAnims_CHARMELEON:: @ 8308CE4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_CHARMELEON_1 + + .align 2 +gAnims_CHARIZARD:: @ 8308CEC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_CHARIZARD_1 + + .align 2 +gAnims_SQUIRTLE:: @ 8308CF4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SQUIRTLE_1 + + .align 2 +gAnims_WARTORTLE:: @ 8308CFC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_WARTORTLE_1 + + .align 2 +gAnims_BLASTOISE:: @ 8308D04 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_BLASTOISE_1 + + .align 2 +gAnims_CATERPIE:: @ 8308D0C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_CATERPIE_1 + + .align 2 +gAnims_METAPOD:: @ 8308D14 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_METAPOD_1 + + .align 2 +gAnims_BUTTERFREE:: @ 8308D1C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_BUTTERFREE_1 + + .align 2 +gAnims_WEEDLE:: @ 8308D24 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_WEEDLE_1 + + .align 2 +gAnims_KAKUNA:: @ 8308D2C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_KAKUNA_1 + + .align 2 +gAnims_BEEDRILL:: @ 8308D34 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_BEEDRILL_1 + + .align 2 +gAnims_PIDGEY:: @ 8308D3C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_PIDGEY_1 + + .align 2 +gAnims_PIDGEOTTO:: @ 8308D44 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_PIDGEOTTO_1 + + .align 2 +gAnims_PIDGEOT:: @ 8308D4C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_PIDGEOT_1 + + .align 2 +gAnims_RATTATA:: @ 8308D54 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_RATTATA_1 + + .align 2 +gAnims_RATICATE:: @ 8308D5C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_RATICATE_1 + + .align 2 +gAnims_SPEAROW:: @ 8308D64 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SPEAROW_1 + + .align 2 +gAnims_FEAROW:: @ 8308D6C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_FEAROW_1 + + .align 2 +gAnims_EKANS:: @ 8308D74 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_EKANS_1 + + .align 2 +gAnims_ARBOK:: @ 8308D7C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_ARBOK_1 + + .align 2 +gAnims_PIKACHU:: @ 8308D84 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_PIKACHU_1 + .4byte gAnimCmd_PIKACHU_2 + + .align 2 +gAnims_RAICHU:: @ 8308D90 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_RAICHU_1 + .4byte gAnimCmd_RAICHU_2 + + .align 2 +gAnims_SANDSHREW:: @ 8308D9C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SANDSHREW_1 + .4byte gAnimCmd_SANDSHREW_2 + + .align 2 +gAnims_SANDSLASH:: @ 8308DA8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SANDSLASH_1 + .4byte gAnimCmd_SANDSLASH_2 + + .align 2 +gAnims_NIDORAN_F:: @ 8308DB4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_NIDORAN_F_1 + + .align 2 +gAnims_NIDORINA:: @ 8308DBC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_NIDORINA_1 + + .align 2 +gAnims_NIDOQUEEN:: @ 8308DC4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_NIDOQUEEN_1 + + .align 2 +gAnims_NIDORAN_M:: @ 8308DCC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_NIDORAN_M_1 + + .align 2 +gAnims_NIDORINO:: @ 8308DD4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_NIDORINO_1 + + .align 2 +gAnims_NIDOKING:: @ 8308DDC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_NIDOKING_1 + + .align 2 +gAnims_CLEFAIRY:: @ 8308DE4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_CLEFAIRY_1 + + .align 2 +gAnims_CLEFABLE:: @ 8308DEC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_CLEFABLE_1 + + .align 2 +gAnims_VULPIX:: @ 8308DF4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_VULPIX_1 + .4byte gAnimCmd_VULPIX_2 + + .align 2 +gAnims_NINETALES:: @ 8308E00 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_NINETALES_1 + .4byte gAnimCmd_NINETALES_2 + + .align 2 +gAnims_JIGGLYPUFF:: @ 8308E0C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_JIGGLYPUFF_1 + .4byte gAnimCmd_JIGGLYPUFF_2 + + .align 2 +gAnims_WIGGLYTUFF:: @ 8308E18 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_WIGGLYTUFF_1 + .4byte gAnimCmd_WIGGLYTUFF_2 + + .align 2 +gAnims_ZUBAT:: @ 8308E24 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_ZUBAT_1 + + .align 2 +gAnims_GOLBAT:: @ 8308E2C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_GOLBAT_1 + + .align 2 +gAnims_ODDISH:: @ 8308E34 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_ODDISH_1 + + .align 2 +gAnims_GLOOM:: @ 8308E3C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_GLOOM_1 + + .align 2 +gAnims_VILEPLUME:: @ 8308E44 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_VILEPLUME_1 + + .align 2 +gAnims_PARAS:: @ 8308E4C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_PARAS_1 + + .align 2 +gAnims_PARASECT:: @ 8308E54 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_PARASECT_1 + + .align 2 +gAnims_VENONAT:: @ 8308E5C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_VENONAT_1 + + .align 2 +gAnims_VENOMOTH:: @ 8308E64 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_VENOMOTH_1 + + .align 2 +gAnims_DIGLETT:: @ 8308E6C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_DIGLETT_1 + + .align 2 +gAnims_DUGTRIO:: @ 8308E74 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_DUGTRIO_1 + + .align 2 +gAnims_MEOWTH:: @ 8308E7C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MEOWTH_1 + + .align 2 +gAnims_PERSIAN:: @ 8308E84 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_PERSIAN_1 + + .align 2 +gAnims_PSYDUCK:: @ 8308E8C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_PSYDUCK_1 + .4byte gAnimCmd_PSYDUCK_2 + + .align 2 +gAnims_GOLDUCK:: @ 8308E98 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_GOLDUCK_1 + .4byte gAnimCmd_GOLDUCK_2 + + .align 2 +gAnims_MANKEY:: @ 8308EA4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MANKEY_1 + + .align 2 +gAnims_PRIMEAPE:: @ 8308EAC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_PRIMEAPE_1 + + .align 2 +gAnims_GROWLITHE:: @ 8308EB4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_GROWLITHE_1 + + .align 2 +gAnims_ARCANINE:: @ 8308EBC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_ARCANINE_1 + + .align 2 +gAnims_POLIWAG:: @ 8308EC4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_POLIWAG_1 + + .align 2 +gAnims_POLIWHIRL:: @ 8308ECC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_POLIWHIRL_1 + + .align 2 +gAnims_POLIWRATH:: @ 8308ED4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_POLIWRATH_1 + + .align 2 +gAnims_ABRA:: @ 8308EDC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_ABRA_1 + + .align 2 +gAnims_KADABRA:: @ 8308EE4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_KADABRA_1 + + .align 2 +gAnims_ALAKAZAM:: @ 8308EEC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_ALAKAZAM_1 + + .align 2 +gAnims_MACHOP:: @ 8308EF4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MACHOP_1 + + .align 2 +gAnims_MACHOKE:: @ 8308EFC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MACHOKE_1 + + .align 2 +gAnims_MACHAMP:: @ 8308F04 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MACHAMP_1 + + .align 2 +gAnims_BELLSPROUT:: @ 8308F0C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_BELLSPROUT_1 + + .align 2 +gAnims_WEEPINBELL:: @ 8308F14 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_WEEPINBELL_1 + + .align 2 +gAnims_VICTREEBEL:: @ 8308F1C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_VICTREEBEL_1 + + .align 2 +gAnims_TENTACOOL:: @ 8308F24 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_TENTACOOL_1 + + .align 2 +gAnims_TENTACRUEL:: @ 8308F2C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_TENTACRUEL_1 + + .align 2 +gAnims_GEODUDE:: @ 8308F34 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_GEODUDE_1 + + .align 2 +gAnims_GRAVELER:: @ 8308F3C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_GRAVELER_1 + + .align 2 +gAnims_GOLEM:: @ 8308F44 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_GOLEM_1 + + .align 2 +gAnims_PONYTA:: @ 8308F4C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_PONYTA_1 + + .align 2 +gAnims_RAPIDASH:: @ 8308F54 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_RAPIDASH_1 + + .align 2 +gAnims_SLOWPOKE:: @ 8308F5C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SLOWPOKE_1 + + .align 2 +gAnims_SLOWBRO:: @ 8308F64 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SLOWBRO_1 + + .align 2 +gAnims_MAGNEMITE:: @ 8308F6C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MAGNEMITE_1 + + .align 2 +gAnims_MAGNETON:: @ 8308F74 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MAGNETON_1 + + .align 2 +gAnims_FARFETCHD:: @ 8308F7C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_FARFETCHD_1 + + .align 2 +gAnims_DODUO:: @ 8308F84 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_DODUO_1 + + .align 2 +gAnims_DODRIO:: @ 8308F8C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_DODRIO_1 + + .align 2 +gAnims_SEEL:: @ 8308F94 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SEEL_1 + + .align 2 +gAnims_DEWGONG:: @ 8308F9C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_DEWGONG_1 + + .align 2 +gAnims_GRIMER:: @ 8308FA4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_GRIMER_1 + .4byte gAnimCmd_GRIMER_2 + + .align 2 +gAnims_MUK:: @ 8308FB0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MUK_1 + .4byte gAnimCmd_MUK_2 + + .align 2 +gAnims_SHELLDER:: @ 8308FBC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SHELLDER_1 + + .align 2 +gAnims_CLOYSTER:: @ 8308FC4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_CLOYSTER_1 + + .align 2 +gAnims_GASTLY:: @ 8308FCC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_GASTLY_1 + + .align 2 +gAnims_HAUNTER:: @ 8308FD4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_HAUNTER_1 + + .align 2 +gAnims_GENGAR:: @ 8308FDC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_GENGAR_1 + + .align 2 +gAnims_ONIX:: @ 8308FE4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_ONIX_1 + + .align 2 +gAnims_DROWZEE:: @ 8308FEC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_DROWZEE_1 + + .align 2 +gAnims_HYPNO:: @ 8308FF4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_HYPNO_1 + + .align 2 +gAnims_KRABBY:: @ 8308FFC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_KRABBY_1 + + .align 2 +gAnims_KINGLER:: @ 8309004 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_KINGLER_1 + + .align 2 +gAnims_VOLTORB:: @ 830900C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_VOLTORB_1 + + .align 2 +gAnims_ELECTRODE:: @ 8309014 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_ELECTRODE_1 + + .align 2 +gAnims_EXEGGCUTE:: @ 830901C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_EXEGGCUTE_1 + + .align 2 +gAnims_EXEGGUTOR:: @ 8309024 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_EXEGGUTOR_1 + + .align 2 +gAnims_CUBONE:: @ 830902C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_CUBONE_1 + + .align 2 +gAnims_MAROWAK:: @ 8309034 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MAROWAK_1 + + .align 2 +gAnims_HITMONLEE:: @ 830903C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_HITMONLEE_1 + + .align 2 +gAnims_HITMONCHAN:: @ 8309044 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_HITMONCHAN_1 + + .align 2 +gAnims_LICKITUNG:: @ 830904C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_LICKITUNG_1 + + .align 2 +gAnims_KOFFING:: @ 8309054 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_KOFFING_1 + .4byte gAnimCmd_KOFFING_2 + + .align 2 +gAnims_WEEZING:: @ 8309060 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_WEEZING_1 + .4byte gAnimCmd_WEEZING_2 + + .align 2 +gAnims_RHYHORN:: @ 830906C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_RHYHORN_1 + .4byte gAnimCmd_RHYHORN_2 + + .align 2 +gAnims_RHYDON:: @ 8309078 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_RHYDON_1 + .4byte gAnimCmd_RHYDON_2 + + .align 2 +gAnims_CHANSEY:: @ 8309084 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_CHANSEY_1 + + .align 2 +gAnims_TANGELA:: @ 830908C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_TANGELA_1 + + .align 2 +gAnims_KANGASKHAN:: @ 8309094 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_KANGASKHAN_1 + + .align 2 +gAnims_HORSEA:: @ 830909C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_HORSEA_1 + .4byte gAnimCmd_HORSEA_2 + + .align 2 +gAnims_SEADRA:: @ 83090A8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SEADRA_1 + .4byte gAnimCmd_SEADRA_2 + + .align 2 +gAnims_GOLDEEN:: @ 83090B4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_GOLDEEN_1 + + .align 2 +gAnims_SEAKING:: @ 83090BC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SEAKING_1 + + .align 2 +gAnims_STARYU:: @ 83090C4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_STARYU_1 + .4byte gAnimCmd_STARYU_2 + + .align 2 +gAnims_STARMIE:: @ 83090D0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_STARMIE_1 + .4byte gAnimCmd_STARMIE_2 + + .align 2 +gAnims_MR_MIME:: @ 83090DC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MR_MIME_1 + + .align 2 +gAnims_SCYTHER:: @ 83090E4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SCYTHER_1 + + .align 2 +gAnims_JYNX:: @ 83090EC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_JYNX_1 + + .align 2 +gAnims_ELECTABUZZ:: @ 83090F4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_ELECTABUZZ_1 + + .align 2 +gAnims_MAGMAR:: @ 83090FC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MAGMAR_1 + + .align 2 +gAnims_PINSIR:: @ 8309104 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_PINSIR_1 + .4byte gAnimCmd_PINSIR_2 + + .align 2 +gAnims_TAUROS:: @ 8309110 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_TAUROS_1 + + .align 2 +gAnims_MAGIKARP:: @ 8309118 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MAGIKARP_1 + + .align 2 +gAnims_GYARADOS:: @ 8309120 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_GYARADOS_1 + + .align 2 +gAnims_LAPRAS:: @ 8309128 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_LAPRAS_1 + + .align 2 +gAnims_DITTO:: @ 8309130 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_DITTO_1 + + .align 2 +gAnims_EEVEE:: @ 8309138 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_EEVEE_1 + + .align 2 +gAnims_VAPOREON:: @ 8309140 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_VAPOREON_1 + + .align 2 +gAnims_JOLTEON:: @ 8309148 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_JOLTEON_1 + + .align 2 +gAnims_FLAREON:: @ 8309150 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_FLAREON_1 + + .align 2 +gAnims_PORYGON:: @ 8309158 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_PORYGON_1 + + .align 2 +gAnims_OMANYTE:: @ 8309160 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_OMANYTE_1 + + .align 2 +gAnims_OMASTAR:: @ 8309168 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_OMASTAR_1 + + .align 2 +gAnims_KABUTO:: @ 8309170 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_KABUTO_1 + + .align 2 +gAnims_KABUTOPS:: @ 8309178 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_KABUTOPS_1 + + .align 2 +gAnims_AERODACTYL:: @ 8309180 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_AERODACTYL_1 + + .align 2 +gAnims_SNORLAX:: @ 8309188 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SNORLAX_1 + + .align 2 +gAnims_ARTICUNO:: @ 8309190 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_ARTICUNO_1 + + .align 2 +gAnims_ZAPDOS:: @ 8309198 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_ZAPDOS_1 + + .align 2 +gAnims_MOLTRES:: @ 83091A0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MOLTRES_1 + + .align 2 +gAnims_DRATINI:: @ 83091A8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_DRATINI_1 + + .align 2 +gAnims_DRAGONAIR:: @ 83091B0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_DRAGONAIR_1 + + .align 2 +gAnims_DRAGONITE:: @ 83091B8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_DRAGONITE_1 + + .align 2 +gAnims_MEWTWO:: @ 83091C0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MEWTWO_1 + + .align 2 +gAnims_MEW:: @ 83091C8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MEW_1 + + .align 2 +gAnims_CHIKORITA:: @ 83091D0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_CHIKORITA_1 + + .align 2 +gAnims_BAYLEEF:: @ 83091D8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_BAYLEEF_1 + + .align 2 +gAnims_MEGANIUM:: @ 83091E0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MEGANIUM_1 + + .align 2 +gAnims_CYNDAQUIL:: @ 83091E8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_CYNDAQUIL_1 + + .align 2 +gAnims_QUILAVA:: @ 83091F0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_QUILAVA_1 + + .align 2 +gAnims_TYPHLOSION:: @ 83091F8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_TYPHLOSION_1 + + .align 2 +gAnims_TOTODILE:: @ 8309200 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_TOTODILE_1 + + .align 2 +gAnims_CROCONAW:: @ 8309208 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_CROCONAW_1 + + .align 2 +gAnims_FERALIGATR:: @ 8309210 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_FERALIGATR_1 + + .align 2 +gAnims_SENTRET:: @ 8309218 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SENTRET_1 + + .align 2 +gAnims_FURRET:: @ 8309220 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_FURRET_1 + + .align 2 +gAnims_HOOTHOOT:: @ 8309228 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_HOOTHOOT_1 + + .align 2 +gAnims_NOCTOWL:: @ 8309230 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_NOCTOWL_1 + + .align 2 +gAnims_LEDYBA:: @ 8309238 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_LEDYBA_1 + + .align 2 +gAnims_LEDIAN:: @ 8309240 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_LEDIAN_1 + + .align 2 +gAnims_SPINARAK:: @ 8309248 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SPINARAK_1 + + .align 2 +gAnims_ARIADOS:: @ 8309250 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_ARIADOS_1 + + .align 2 +gAnims_CROBAT:: @ 8309258 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_CROBAT_1 + + .align 2 +gAnims_CHINCHOU:: @ 8309260 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_CHINCHOU_1 + .4byte gAnimCmd_CHINCHOU_2 + + .align 2 +gAnims_LANTURN:: @ 830926C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_LANTURN_1 + .4byte gAnimCmd_LANTURN_2 + + .align 2 +gAnims_PICHU:: @ 8309278 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_PICHU_1 + .4byte gAnimCmd_PICHU_2 + + .align 2 +gAnims_CLEFFA:: @ 8309284 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_CLEFFA_1 + + .align 2 +gAnims_IGGLYBUFF:: @ 830928C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_IGGLYBUFF_1 + .4byte gAnimCmd_IGGLYBUFF_2 + + .align 2 +gAnims_TOGEPI:: @ 8309298 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_TOGEPI_1 + + .align 2 +gAnims_TOGETIC:: @ 83092A0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_TOGETIC_1 + + .align 2 +gAnims_NATU:: @ 83092A8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_NATU_1 + .4byte gAnimCmd_NATU_2 + + .align 2 +gAnims_XATU:: @ 83092B4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_XATU_1 + .4byte gAnimCmd_XATU_2 + + .align 2 +gAnims_MAREEP:: @ 83092C0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MAREEP_1 + + .align 2 +gAnims_FLAAFFY:: @ 83092C8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_FLAAFFY_1 + + .align 2 +gAnims_AMPHAROS:: @ 83092D0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_AMPHAROS_1 + + .align 2 +gAnims_BELLOSSOM:: @ 83092D8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_BELLOSSOM_1 + + .align 2 +gAnims_MARILL:: @ 83092E0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MARILL_1 + + .align 2 +gAnims_AZUMARILL:: @ 83092E8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_AZUMARILL_1 + + .align 2 +gAnims_SUDOWOODO:: @ 83092F0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SUDOWOODO_1 + + .align 2 +gAnims_POLITOED:: @ 83092F8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_POLITOED_1 + + .align 2 +gAnims_HOPPIP:: @ 8309300 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_HOPPIP_1 + + .align 2 +gAnims_SKIPLOOM:: @ 8309308 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SKIPLOOM_1 + + .align 2 +gAnims_JUMPLUFF:: @ 8309310 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_JUMPLUFF_1 + + .align 2 +gAnims_AIPOM:: @ 8309318 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_AIPOM_1 + + .align 2 +gAnims_SUNKERN:: @ 8309320 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SUNKERN_1 + + .align 2 +gAnims_SUNFLORA:: @ 8309328 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SUNFLORA_1 + + .align 2 +gAnims_YANMA:: @ 8309330 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_YANMA_1 + + .align 2 +gAnims_WOOPER:: @ 8309338 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_WOOPER_1 + + .align 2 +gAnims_QUAGSIRE:: @ 8309340 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_QUAGSIRE_1 + + .align 2 +gAnims_ESPEON:: @ 8309348 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_ESPEON_1 + + .align 2 +gAnims_UMBREON:: @ 8309350 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_UMBREON_1 + + .align 2 +gAnims_MURKROW:: @ 8309358 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MURKROW_1 + + .align 2 +gAnims_SLOWKING:: @ 8309360 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SLOWKING_1 + + .align 2 +gAnims_MISDREAVUS:: @ 8309368 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MISDREAVUS_1 + + .align 2 +gAnims_UNOWN:: @ 8309370 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_UNOWN_1 + + .align 2 +gAnims_WOBBUFFET:: @ 8309378 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_WOBBUFFET_1 + .4byte gAnimCmd_WOBBUFFET_2 + + .align 2 +gAnims_GIRAFARIG:: @ 8309384 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_GIRAFARIG_1 + .4byte gAnimCmd_GIRAFARIG_2 + + .align 2 +gAnims_PINECO:: @ 8309390 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_PINECO_1 + + .align 2 +gAnims_FORRETRESS:: @ 8309398 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_FORRETRESS_1 + + .align 2 +gAnims_DUNSPARCE:: @ 83093A0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_DUNSPARCE_1 + + .align 2 +gAnims_GLIGAR:: @ 83093A8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_GLIGAR_1 + + .align 2 +gAnims_STEELIX:: @ 83093B0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_STEELIX_1 + + .align 2 +gAnims_SNUBBULL:: @ 83093B8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SNUBBULL_1 + + .align 2 +gAnims_GRANBULL:: @ 83093C0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_GRANBULL_1 + + .align 2 +gAnims_QWILFISH:: @ 83093C8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_QWILFISH_1 + + .align 2 +gAnims_SCIZOR:: @ 83093D0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SCIZOR_1 + + .align 2 +gAnims_SHUCKLE:: @ 83093D8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SHUCKLE_1 + + .align 2 +gAnims_HERACROSS:: @ 83093E0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_HERACROSS_1 + .4byte gAnimCmd_HERACROSS_2 + + .align 2 +gAnims_SNEASEL:: @ 83093EC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SNEASEL_1 + + .align 2 +gAnims_TEDDIURSA:: @ 83093F4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_TEDDIURSA_1 + + .align 2 +gAnims_URSARING:: @ 83093FC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_URSARING_1 + + .align 2 +gAnims_SLUGMA:: @ 8309404 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SLUGMA_1 + .4byte gAnimCmd_SLUGMA_2 + + .align 2 +gAnims_MAGCARGO:: @ 8309410 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MAGCARGO_1 + .4byte gAnimCmd_MAGCARGO_2 + + .align 2 +gAnims_SWINUB:: @ 830941C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SWINUB_1 + + .align 2 +gAnims_PILOSWINE:: @ 8309424 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_PILOSWINE_1 + + .align 2 +gAnims_CORSOLA:: @ 830942C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_CORSOLA_1 + .4byte gAnimCmd_CORSOLA_2 + + .align 2 +gAnims_REMORAID:: @ 8309438 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_REMORAID_1 + + .align 2 +gAnims_OCTILLERY:: @ 8309440 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_OCTILLERY_1 + + .align 2 +gAnims_DELIBIRD:: @ 8309448 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_DELIBIRD_1 + + .align 2 +gAnims_MANTINE:: @ 8309450 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MANTINE_1 + + .align 2 +gAnims_SKARMORY:: @ 8309458 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SKARMORY_1 + .4byte gAnimCmd_SKARMORY_2 + + .align 2 +gAnims_HOUNDOUR:: @ 8309464 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_HOUNDOUR_1 + + .align 2 +gAnims_HOUNDOOM:: @ 830946C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_HOUNDOOM_1 + + .align 2 +gAnims_KINGDRA:: @ 8309474 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_KINGDRA_1 + .4byte gAnimCmd_KINGDRA_2 + + .align 2 +gAnims_PHANPY:: @ 8309480 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_PHANPY_1 + .4byte gAnimCmd_PHANPY_2 + + .align 2 +gAnims_DONPHAN:: @ 830948C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_DONPHAN_1 + .4byte gAnimCmd_DONPHAN_2 + + .align 2 +gAnims_PORYGON2:: @ 8309498 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_PORYGON2_1 + + .align 2 +gAnims_STANTLER:: @ 83094A0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_STANTLER_1 + + .align 2 +gAnims_SMEARGLE:: @ 83094A8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SMEARGLE_1 + + .align 2 +gAnims_TYROGUE:: @ 83094B0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_TYROGUE_1 + + .align 2 +gAnims_HITMONTOP:: @ 83094B8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_HITMONTOP_1 + + .align 2 +gAnims_SMOOCHUM:: @ 83094C0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SMOOCHUM_1 + + .align 2 +gAnims_ELEKID:: @ 83094C8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_ELEKID_1 + + .align 2 +gAnims_MAGBY:: @ 83094D0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MAGBY_1 + + .align 2 +gAnims_MILTANK:: @ 83094D8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MILTANK_1 + + .align 2 +gAnims_BLISSEY:: @ 83094E0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_BLISSEY_1 + + .align 2 +gAnims_RAIKOU:: @ 83094E8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_RAIKOU_1 + + .align 2 +gAnims_ENTEI:: @ 83094F0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_ENTEI_1 + + .align 2 +gAnims_SUICUNE:: @ 83094F8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SUICUNE_1 + + .align 2 +gAnims_LARVITAR:: @ 8309500 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_LARVITAR_1 + + .align 2 +gAnims_PUPITAR:: @ 8309508 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_PUPITAR_1 + + .align 2 +gAnims_TYRANITAR:: @ 8309510 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_TYRANITAR_1 + + .align 2 +gAnims_LUGIA:: @ 8309518 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_LUGIA_1 + + .align 2 +gAnims_HO_OH:: @ 8309520 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_HO_OH_1 + + .align 2 +gAnims_CELEBI:: @ 8309528 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_CELEBI_1 + + .align 2 +gAnims_OLD_UNOWN_B:: @ 8309530 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_OLD_UNOWN_B_1 + + .align 2 +gAnims_TREECKO:: @ 8309538 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_TREECKO_1 + + .align 2 +gAnims_GROVYLE:: @ 8309540 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_GROVYLE_1 + + .align 2 +gAnims_SCEPTILE:: @ 8309548 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SCEPTILE_1 + + .align 2 +gAnims_TORCHIC:: @ 8309550 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_TORCHIC_1 + + .align 2 +gAnims_COMBUSKEN:: @ 8309558 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_COMBUSKEN_1 + + .align 2 +gAnims_BLAZIKEN:: @ 8309560 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_BLAZIKEN_1 + .4byte gAnimCmd_BLAZIKEN_2 + .4byte gAnimCmd_BLAZIKEN_3 + .4byte gAnimCmd_BLAZIKEN_4 + + .align 2 +gAnims_MUDKIP:: @ 8309574 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MUDKIP_1 + + .align 2 +gAnims_MARSHTOMP:: @ 830957C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MARSHTOMP_1 + + .align 2 +gAnims_SWAMPERT:: @ 8309584 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SWAMPERT_1 + + .align 2 +gAnims_POOCHYENA:: @ 830958C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_POOCHYENA_1 + + .align 2 +gAnims_MIGHTYENA:: @ 8309594 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MIGHTYENA_1 + + .align 2 +gAnims_ZIGZAGOON:: @ 830959C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_ZIGZAGOON_1 + + .align 2 +gAnims_LINOONE:: @ 83095A4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_LINOONE_1 + + .align 2 +gAnims_WURMPLE:: @ 83095AC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_WURMPLE_1 + + .align 2 +gAnims_SILCOON:: @ 83095B4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SILCOON_1 + .4byte gAnimCmd_SILCOON_2 + + .align 2 +gAnims_BEAUTIFLY:: @ 83095C0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_BEAUTIFLY_1 + .4byte gAnimCmd_BEAUTIFLY_2 + + .align 2 +gAnims_CASCOON:: @ 83095CC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_CASCOON_1 + .4byte gAnimCmd_CASCOON_2 + + .align 2 +gAnims_DUSTOX:: @ 83095D8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_DUSTOX_1 + .4byte gAnimCmd_DUSTOX_2 + + .align 2 +gAnims_LOTAD:: @ 83095E4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_LOTAD_1 + + .align 2 +gAnims_LOMBRE:: @ 83095EC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_LOMBRE_1 + + .align 2 +gAnims_LUDICOLO:: @ 83095F4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_LUDICOLO_1 + + .align 2 +gAnims_SEEDOT:: @ 83095FC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SEEDOT_1 + + .align 2 +gAnims_NUZLEAF:: @ 8309604 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_NUZLEAF_1 + + .align 2 +gAnims_SHIFTRY:: @ 830960C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SHIFTRY_1 + + .align 2 +gAnims_NINCADA:: @ 8309614 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_NINCADA_1 + + .align 2 +gAnims_NINJASK:: @ 830961C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_NINJASK_1 + + .align 2 +gAnims_SHEDINJA:: @ 8309624 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SHEDINJA_1 + + .align 2 +gAnims_TAILLOW:: @ 830962C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_TAILLOW_1 + + .align 2 +gAnims_SWELLOW:: @ 8309634 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SWELLOW_1 + + .align 2 +gAnims_SHROOMISH:: @ 830963C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SHROOMISH_1 + + .align 2 +gAnims_BRELOOM:: @ 8309644 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_BRELOOM_1 + + .align 2 +gAnims_SPINDA:: @ 830964C + .4byte gAnimCmd_General_Frame0 + + .align 2 +gAnims_WINGULL:: @ 8309650 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_WINGULL_1 + + .align 2 +gAnims_PELIPPER:: @ 8309658 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_PELIPPER_1 + + .align 2 +gAnims_SURSKIT:: @ 8309660 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SURSKIT_1 + .4byte gAnimCmd_SURSKIT_2 + + .align 2 +gAnims_MASQUERAIN:: @ 830966C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MASQUERAIN_1 + .4byte gAnimCmd_MASQUERAIN_2 + + .align 2 +gAnims_WAILMER:: @ 8309678 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_WAILMER_1 + + .align 2 +gAnims_WAILORD:: @ 8309680 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_WAILORD_1 + + .align 2 +gAnims_SKITTY:: @ 8309688 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SKITTY_1 + + .align 2 +gAnims_DELCATTY:: @ 8309690 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_DELCATTY_1 + + .align 2 +gAnims_KECLEON:: @ 8309698 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_KECLEON_1 + + .align 2 +gAnims_BALTOY:: @ 83096A0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_BALTOY_1 + + .align 2 +gAnims_CLAYDOL:: @ 83096A8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_CLAYDOL_1 + + .align 2 +gAnims_NOSEPASS:: @ 83096B0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_NOSEPASS_1 + + .align 2 +gAnims_TORKOAL:: @ 83096B8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_TORKOAL_1 + + .align 2 +gAnims_SABLEYE:: @ 83096C0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SABLEYE_1 + + .align 2 +gAnims_BARBOACH:: @ 83096C8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_BARBOACH_1 + + .align 2 +gAnims_WHISCASH:: @ 83096D0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_WHISCASH_1 + + .align 2 +gAnims_LUVDISC:: @ 83096D8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_LUVDISC_1 + + .align 2 +gAnims_CORPHISH:: @ 83096E0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_CORPHISH_1 + + .align 2 +gAnims_CRAWDAUNT:: @ 83096E8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_CRAWDAUNT_1 + + .align 2 +gAnims_FEEBAS:: @ 83096F0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_FEEBAS_1 + + .align 2 +gAnims_MILOTIC:: @ 83096F8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MILOTIC_1 + + .align 2 +gAnims_CARVANHA:: @ 8309700 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_CARVANHA_1 + + .align 2 +gAnims_SHARPEDO:: @ 8309708 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SHARPEDO_1 + + .align 2 +gAnims_TRAPINCH:: @ 8309710 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_TRAPINCH_1 + + .align 2 +gAnims_VIBRAVA:: @ 8309718 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_VIBRAVA_1 + + .align 2 +gAnims_FLYGON:: @ 8309720 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_FLYGON_1 + + .align 2 +gAnims_MAKUHITA:: @ 8309728 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MAKUHITA_1 + + .align 2 +gAnims_HARIYAMA:: @ 8309730 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_HARIYAMA_1 + + .align 2 +gAnims_ELECTRIKE:: @ 8309738 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_ELECTRIKE_1 + + .align 2 +gAnims_MANECTRIC:: @ 8309740 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MANECTRIC_1 + + .align 2 +gAnims_NUMEL:: @ 8309748 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_NUMEL_1 + + .align 2 +gAnims_CAMERUPT:: @ 8309750 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_CAMERUPT_1 + + .align 2 +gAnims_SPHEAL:: @ 8309758 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SPHEAL_1 + + .align 2 +gAnims_SEALEO:: @ 8309760 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SEALEO_1 + + .align 2 +gAnims_WALREIN:: @ 8309768 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_WALREIN_1 + + .align 2 +gAnims_CACNEA:: @ 8309770 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_CACNEA_1 + + .align 2 +gAnims_CACTURNE:: @ 8309778 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_CACTURNE_1 + + .align 2 +gAnims_SNORUNT:: @ 8309780 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SNORUNT_1 + + .align 2 +gAnims_GLALIE:: @ 8309788 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_GLALIE_1 + + .align 2 +gAnims_LUNATONE:: @ 8309790 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_LUNATONE_1 + .4byte gAnimCmd_LUNATONE_2 + + .align 2 +gAnims_SOLROCK:: @ 830979C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SOLROCK_1 + .4byte gAnimCmd_SOLROCK_2 + + .align 2 +gAnims_AZURILL:: @ 83097A8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_AZURILL_1 + + .align 2 +gAnims_SPOINK:: @ 83097B0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SPOINK_1 + + .align 2 +gAnims_GRUMPIG:: @ 83097B8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_GRUMPIG_1 + + .align 2 +gAnims_PLUSLE:: @ 83097C0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_PLUSLE_1 + + .align 2 +gAnims_MINUN:: @ 83097C8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MINUN_1 + + .align 2 +gAnims_MAWILE:: @ 83097D0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MAWILE_1 + + .align 2 +gAnims_MEDITITE:: @ 83097D8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MEDITITE_1 + + .align 2 +gAnims_MEDICHAM:: @ 83097E0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_MEDICHAM_1 + + .align 2 +gAnims_SWABLU:: @ 83097E8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SWABLU_1 + .4byte gAnimCmd_SWABLU_2 + + .align 2 +gAnims_ALTARIA:: @ 83097F4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_ALTARIA_1 + .4byte gAnimCmd_ALTARIA_2 + + .align 2 +gAnims_WYNAUT:: @ 8309800 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_WYNAUT_1 + + .align 2 +gAnims_DUSKULL:: @ 8309808 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_DUSKULL_1 + + .align 2 +gAnims_DUSCLOPS:: @ 8309810 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_DUSCLOPS_1 + + .align 2 +gAnims_ROSELIA:: @ 8309818 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_ROSELIA_1 + + .align 2 +gAnims_SLAKOTH:: @ 8309820 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SLAKOTH_1 + + .align 2 +gAnims_VIGOROTH:: @ 8309828 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_VIGOROTH_1 + + .align 2 +gAnims_SLAKING:: @ 8309830 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SLAKING_1 + + .align 2 +gAnims_GULPIN:: @ 8309838 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_GULPIN_1 + + .align 2 +gAnims_SWALOT:: @ 8309840 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SWALOT_1 + + .align 2 +gAnims_TROPIUS:: @ 8309848 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_TROPIUS_1 + + .align 2 +gAnims_WHISMUR:: @ 8309850 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_WHISMUR_1 + + .align 2 +gAnims_LOUDRED:: @ 8309858 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_LOUDRED_1 + + .align 2 +gAnims_EXPLOUD:: @ 8309860 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_EXPLOUD_1 + + .align 2 +gAnims_CLAMPERL:: @ 8309868 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_CLAMPERL_1 + + .align 2 +gAnims_HUNTAIL:: @ 8309870 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_HUNTAIL_1 + + .align 2 +gAnims_GOREBYSS:: @ 8309878 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_GOREBYSS_1 + + .align 2 +gAnims_ABSOL:: @ 8309880 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_ABSOL_1 + + .align 2 +gAnims_SHUPPET:: @ 8309888 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SHUPPET_1 + + .align 2 +gAnims_BANETTE:: @ 8309890 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_BANETTE_1 + + .align 2 +gAnims_SEVIPER:: @ 8309898 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SEVIPER_1 + + .align 2 +gAnims_ZANGOOSE:: @ 83098A0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_ZANGOOSE_1 + + .align 2 +gAnims_RELICANTH:: @ 83098A8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_RELICANTH_1 + + .align 2 +gAnims_ARON:: @ 83098B0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_ARON_1 + + .align 2 +gAnims_LAIRON:: @ 83098B8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_LAIRON_1 + + .align 2 +gAnims_AGGRON:: @ 83098C0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_AGGRON_1 + + .align 2 +gAnims_CASTFORM:: @ 83098C8 + .4byte gAnimCmd_CASTFORM_0 + .4byte gAnimCmd_CASTFORM_1 + .4byte gAnimCmd_CASTFORM_2 + .4byte gAnimCmd_CASTFORM_3 + + .align 2 +gAnims_VOLBEAT:: @ 83098D8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_VOLBEAT_1 + + .align 2 +gAnims_ILLUMISE:: @ 83098E0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_ILLUMISE_1 + + .align 2 +gAnims_LILEEP:: @ 83098E8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_LILEEP_1 + + .align 2 +gAnims_CRADILY:: @ 83098F0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_CRADILY_1 + + .align 2 +gAnims_ANORITH:: @ 83098F8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_ANORITH_1 + + .align 2 +gAnims_ARMALDO:: @ 8309900 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_ARMALDO_1 + + .align 2 +gAnims_RALTS:: @ 8309908 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_RALTS_1 + + .align 2 +gAnims_KIRLIA:: @ 8309910 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_KIRLIA_1 + + .align 2 +gAnims_GARDEVOIR:: @ 8309918 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_GARDEVOIR_1 + + .align 2 +gAnims_BAGON:: @ 8309920 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_BAGON_1 + + .align 2 +gAnims_SHELGON:: @ 8309928 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SHELGON_1 + + .align 2 +gAnims_SALAMENCE:: @ 8309930 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_SALAMENCE_1 + + .align 2 +gAnims_BELDUM:: @ 8309938 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_BELDUM_1 + + .align 2 +gAnims_METANG:: @ 8309940 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_METANG_1 + + .align 2 +gAnims_METAGROSS:: @ 8309948 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_METAGROSS_1 + + .align 2 +gAnims_REGIROCK:: @ 8309950 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_REGIROCK_1 + .4byte gAnimCmd_REGIROCK_2 + + .align 2 +gAnims_REGICE:: @ 830995C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_REGICE_1 + + .align 2 +gAnims_REGISTEEL:: @ 8309964 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_REGISTEEL_1 + .4byte gAnimCmd_REGISTEEL_2 + + .align 2 +gAnims_KYOGRE:: @ 8309970 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_KYOGRE_1 + .4byte gAnimCmd_KYOGRE_2 + + .align 2 +gAnims_GROUDON:: @ 830997C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_GROUDON_1 + .4byte gAnimCmd_GROUDON_2 + + .align 2 +gAnims_RAYQUAZA:: @ 8309988 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_RAYQUAZA_1 + .4byte gAnimCmd_RAYQUAZA_2 + + .align 2 +gAnims_LATIAS:: @ 8309994 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_LATIAS_1 + .4byte gAnimCmd_LATIAS_2 + + .align 2 +gAnims_LATIOS:: @ 83099A0 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_LATIOS_1 + .4byte gAnimCmd_LATIOS_2 + + .align 2 +gAnims_JIRACHI:: @ 83099AC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_JIRACHI_1 + .4byte gAnimCmd_JIRACHI_2 + + .align 2 +gAnims_DEOXYS:: @ 83099B8 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_DEOXYS_1 + .4byte gAnimCmd_DEOXYS_2 + + .align 2 +gAnims_CHIMECHO:: @ 83099C4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_CHIMECHO_1 + + .align 2 +gAnims_EGG:: @ 83099CC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_EGG_1 + + .align 2 +gAnims_UNOWN_B:: @ 83099D4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_UNOWN_B_1 + + .align 2 +gAnims_UNOWN_C:: @ 83099DC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_UNOWN_C_1 + + .align 2 +gAnims_UNOWN_D:: @ 83099E4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_UNOWN_D_1 + + .align 2 +gAnims_UNOWN_E:: @ 83099EC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_UNOWN_E_1 + + .align 2 +gAnims_UNOWN_F:: @ 83099F4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_UNOWN_F_1 + + .align 2 +gAnims_UNOWN_G:: @ 83099FC + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_UNOWN_G_1 + + .align 2 +gAnims_UNOWN_H:: @ 8309A04 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_UNOWN_H_1 + + .align 2 +gAnims_UNOWN_I:: @ 8309A0C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_UNOWN_I_1 + + .align 2 +gAnims_UNOWN_J:: @ 8309A14 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_UNOWN_J_1 + + .align 2 +gAnims_UNOWN_K:: @ 8309A1C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_UNOWN_K_1 + + .align 2 +gAnims_UNOWN_L:: @ 8309A24 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_UNOWN_L_1 + + .align 2 +gAnims_UNOWN_M:: @ 8309A2C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_UNOWN_M_1 + + .align 2 +gAnims_UNOWN_N:: @ 8309A34 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_UNOWN_N_1 + + .align 2 +gAnims_UNOWN_O:: @ 8309A3C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_UNOWN_O_1 + + .align 2 +gAnims_UNOWN_P:: @ 8309A44 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_UNOWN_P_1 + + .align 2 +gAnims_UNOWN_Q:: @ 8309A4C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_UNOWN_Q_1 + + .align 2 +gAnims_UNOWN_R:: @ 8309A54 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_UNOWN_R_1 + + .align 2 +gAnims_UNOWN_S:: @ 8309A5C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_UNOWN_S_1 + + .align 2 +gAnims_UNOWN_T:: @ 8309A64 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_UNOWN_T_1 + + .align 2 +gAnims_UNOWN_U:: @ 8309A6C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_UNOWN_U_1 + + .align 2 +gAnims_UNOWN_V:: @ 8309A74 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_UNOWN_V_1 + + .align 2 +gAnims_UNOWN_W:: @ 8309A7C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_UNOWN_W_1 + + .align 2 +gAnims_UNOWN_X:: @ 8309A84 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_UNOWN_X_1 + + .align 2 +gAnims_UNOWN_Y:: @ 8309A8C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_UNOWN_Y_1 + + .align 2 +gAnims_UNOWN_Z:: @ 8309A94 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_UNOWN_Z_1 + + .align 2 +gAnims_UNOWN_EMARK:: @ 8309A9C + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_UNOWN_EMARK_1 + + .align 2 +gAnims_UNOWN_QMARK:: @ 8309AA4 + .4byte gAnimCmd_General_Frame0 + .4byte gAnimCmd_UNOWN_QMARK_1 + + .align 2 +gMonAnimationsSpriteAnimsPtrTable:: @ 8309AAC + .4byte gAnims_NONE + .4byte gAnims_BULBASAUR + .4byte gAnims_IVYSAUR + .4byte gAnims_VENUSAUR + .4byte gAnims_CHARMANDER + .4byte gAnims_CHARMELEON + .4byte gAnims_CHARIZARD + .4byte gAnims_SQUIRTLE + .4byte gAnims_WARTORTLE + .4byte gAnims_BLASTOISE + .4byte gAnims_CATERPIE + .4byte gAnims_METAPOD + .4byte gAnims_BUTTERFREE + .4byte gAnims_WEEDLE + .4byte gAnims_KAKUNA + .4byte gAnims_BEEDRILL + .4byte gAnims_PIDGEY + .4byte gAnims_PIDGEOTTO + .4byte gAnims_PIDGEOT + .4byte gAnims_RATTATA + .4byte gAnims_RATICATE + .4byte gAnims_SPEAROW + .4byte gAnims_FEAROW + .4byte gAnims_EKANS + .4byte gAnims_ARBOK + .4byte gAnims_PIKACHU + .4byte gAnims_RAICHU + .4byte gAnims_SANDSHREW + .4byte gAnims_SANDSLASH + .4byte gAnims_NIDORAN_F + .4byte gAnims_NIDORINA + .4byte gAnims_NIDOQUEEN + .4byte gAnims_NIDORAN_M + .4byte gAnims_NIDORINO + .4byte gAnims_NIDOKING + .4byte gAnims_CLEFAIRY + .4byte gAnims_CLEFABLE + .4byte gAnims_VULPIX + .4byte gAnims_NINETALES + .4byte gAnims_JIGGLYPUFF + .4byte gAnims_WIGGLYTUFF + .4byte gAnims_ZUBAT + .4byte gAnims_GOLBAT + .4byte gAnims_ODDISH + .4byte gAnims_GLOOM + .4byte gAnims_VILEPLUME + .4byte gAnims_PARAS + .4byte gAnims_PARASECT + .4byte gAnims_VENONAT + .4byte gAnims_VENOMOTH + .4byte gAnims_DIGLETT + .4byte gAnims_DUGTRIO + .4byte gAnims_MEOWTH + .4byte gAnims_PERSIAN + .4byte gAnims_PSYDUCK + .4byte gAnims_GOLDUCK + .4byte gAnims_MANKEY + .4byte gAnims_PRIMEAPE + .4byte gAnims_GROWLITHE + .4byte gAnims_ARCANINE + .4byte gAnims_POLIWAG + .4byte gAnims_POLIWHIRL + .4byte gAnims_POLIWRATH + .4byte gAnims_ABRA + .4byte gAnims_KADABRA + .4byte gAnims_ALAKAZAM + .4byte gAnims_MACHOP + .4byte gAnims_MACHOKE + .4byte gAnims_MACHAMP + .4byte gAnims_BELLSPROUT + .4byte gAnims_WEEPINBELL + .4byte gAnims_VICTREEBEL + .4byte gAnims_TENTACOOL + .4byte gAnims_TENTACRUEL + .4byte gAnims_GEODUDE + .4byte gAnims_GRAVELER + .4byte gAnims_GOLEM + .4byte gAnims_PONYTA + .4byte gAnims_RAPIDASH + .4byte gAnims_SLOWPOKE + .4byte gAnims_SLOWBRO + .4byte gAnims_MAGNEMITE + .4byte gAnims_MAGNETON + .4byte gAnims_FARFETCHD + .4byte gAnims_DODUO + .4byte gAnims_DODRIO + .4byte gAnims_SEEL + .4byte gAnims_DEWGONG + .4byte gAnims_GRIMER + .4byte gAnims_MUK + .4byte gAnims_SHELLDER + .4byte gAnims_CLOYSTER + .4byte gAnims_GASTLY + .4byte gAnims_HAUNTER + .4byte gAnims_GENGAR + .4byte gAnims_ONIX + .4byte gAnims_DROWZEE + .4byte gAnims_HYPNO + .4byte gAnims_KRABBY + .4byte gAnims_KINGLER + .4byte gAnims_VOLTORB + .4byte gAnims_ELECTRODE + .4byte gAnims_EXEGGCUTE + .4byte gAnims_EXEGGUTOR + .4byte gAnims_CUBONE + .4byte gAnims_MAROWAK + .4byte gAnims_HITMONLEE + .4byte gAnims_HITMONCHAN + .4byte gAnims_LICKITUNG + .4byte gAnims_KOFFING + .4byte gAnims_WEEZING + .4byte gAnims_RHYHORN + .4byte gAnims_RHYDON + .4byte gAnims_CHANSEY + .4byte gAnims_TANGELA + .4byte gAnims_KANGASKHAN + .4byte gAnims_HORSEA + .4byte gAnims_SEADRA + .4byte gAnims_GOLDEEN + .4byte gAnims_SEAKING + .4byte gAnims_STARYU + .4byte gAnims_STARMIE + .4byte gAnims_MR_MIME + .4byte gAnims_SCYTHER + .4byte gAnims_JYNX + .4byte gAnims_ELECTABUZZ + .4byte gAnims_MAGMAR + .4byte gAnims_PINSIR + .4byte gAnims_TAUROS + .4byte gAnims_MAGIKARP + .4byte gAnims_GYARADOS + .4byte gAnims_LAPRAS + .4byte gAnims_DITTO + .4byte gAnims_EEVEE + .4byte gAnims_VAPOREON + .4byte gAnims_JOLTEON + .4byte gAnims_FLAREON + .4byte gAnims_PORYGON + .4byte gAnims_OMANYTE + .4byte gAnims_OMASTAR + .4byte gAnims_KABUTO + .4byte gAnims_KABUTOPS + .4byte gAnims_AERODACTYL + .4byte gAnims_SNORLAX + .4byte gAnims_ARTICUNO + .4byte gAnims_ZAPDOS + .4byte gAnims_MOLTRES + .4byte gAnims_DRATINI + .4byte gAnims_DRAGONAIR + .4byte gAnims_DRAGONITE + .4byte gAnims_MEWTWO + .4byte gAnims_MEW + .4byte gAnims_CHIKORITA + .4byte gAnims_BAYLEEF + .4byte gAnims_MEGANIUM + .4byte gAnims_CYNDAQUIL + .4byte gAnims_QUILAVA + .4byte gAnims_TYPHLOSION + .4byte gAnims_TOTODILE + .4byte gAnims_CROCONAW + .4byte gAnims_FERALIGATR + .4byte gAnims_SENTRET + .4byte gAnims_FURRET + .4byte gAnims_HOOTHOOT + .4byte gAnims_NOCTOWL + .4byte gAnims_LEDYBA + .4byte gAnims_LEDIAN + .4byte gAnims_SPINARAK + .4byte gAnims_ARIADOS + .4byte gAnims_CROBAT + .4byte gAnims_CHINCHOU + .4byte gAnims_LANTURN + .4byte gAnims_PICHU + .4byte gAnims_CLEFFA + .4byte gAnims_IGGLYBUFF + .4byte gAnims_TOGEPI + .4byte gAnims_TOGETIC + .4byte gAnims_NATU + .4byte gAnims_XATU + .4byte gAnims_MAREEP + .4byte gAnims_FLAAFFY + .4byte gAnims_AMPHAROS + .4byte gAnims_BELLOSSOM + .4byte gAnims_MARILL + .4byte gAnims_AZUMARILL + .4byte gAnims_SUDOWOODO + .4byte gAnims_POLITOED + .4byte gAnims_HOPPIP + .4byte gAnims_SKIPLOOM + .4byte gAnims_JUMPLUFF + .4byte gAnims_AIPOM + .4byte gAnims_SUNKERN + .4byte gAnims_SUNFLORA + .4byte gAnims_YANMA + .4byte gAnims_WOOPER + .4byte gAnims_QUAGSIRE + .4byte gAnims_ESPEON + .4byte gAnims_UMBREON + .4byte gAnims_MURKROW + .4byte gAnims_SLOWKING + .4byte gAnims_MISDREAVUS + .4byte gAnims_UNOWN + .4byte gAnims_WOBBUFFET + .4byte gAnims_GIRAFARIG + .4byte gAnims_PINECO + .4byte gAnims_FORRETRESS + .4byte gAnims_DUNSPARCE + .4byte gAnims_GLIGAR + .4byte gAnims_STEELIX + .4byte gAnims_SNUBBULL + .4byte gAnims_GRANBULL + .4byte gAnims_QWILFISH + .4byte gAnims_SCIZOR + .4byte gAnims_SHUCKLE + .4byte gAnims_HERACROSS + .4byte gAnims_SNEASEL + .4byte gAnims_TEDDIURSA + .4byte gAnims_URSARING + .4byte gAnims_SLUGMA + .4byte gAnims_MAGCARGO + .4byte gAnims_SWINUB + .4byte gAnims_PILOSWINE + .4byte gAnims_CORSOLA + .4byte gAnims_REMORAID + .4byte gAnims_OCTILLERY + .4byte gAnims_DELIBIRD + .4byte gAnims_MANTINE + .4byte gAnims_SKARMORY + .4byte gAnims_HOUNDOUR + .4byte gAnims_HOUNDOOM + .4byte gAnims_KINGDRA + .4byte gAnims_PHANPY + .4byte gAnims_DONPHAN + .4byte gAnims_PORYGON2 + .4byte gAnims_STANTLER + .4byte gAnims_SMEARGLE + .4byte gAnims_TYROGUE + .4byte gAnims_HITMONTOP + .4byte gAnims_SMOOCHUM + .4byte gAnims_ELEKID + .4byte gAnims_MAGBY + .4byte gAnims_MILTANK + .4byte gAnims_BLISSEY + .4byte gAnims_RAIKOU + .4byte gAnims_ENTEI + .4byte gAnims_SUICUNE + .4byte gAnims_LARVITAR + .4byte gAnims_PUPITAR + .4byte gAnims_TYRANITAR + .4byte gAnims_LUGIA + .4byte gAnims_HO_OH + .4byte gAnims_CELEBI + .4byte gAnims_OLD_UNOWN_B + .4byte gAnims_OLD_UNOWN_B + .4byte gAnims_OLD_UNOWN_B + .4byte gAnims_OLD_UNOWN_B + .4byte gAnims_OLD_UNOWN_B + .4byte gAnims_OLD_UNOWN_B + .4byte gAnims_OLD_UNOWN_B + .4byte gAnims_OLD_UNOWN_B + .4byte gAnims_OLD_UNOWN_B + .4byte gAnims_OLD_UNOWN_B + .4byte gAnims_OLD_UNOWN_B + .4byte gAnims_OLD_UNOWN_B + .4byte gAnims_OLD_UNOWN_B + .4byte gAnims_OLD_UNOWN_B + .4byte gAnims_OLD_UNOWN_B + .4byte gAnims_OLD_UNOWN_B + .4byte gAnims_OLD_UNOWN_B + .4byte gAnims_OLD_UNOWN_B + .4byte gAnims_OLD_UNOWN_B + .4byte gAnims_OLD_UNOWN_B + .4byte gAnims_OLD_UNOWN_B + .4byte gAnims_OLD_UNOWN_B + .4byte gAnims_OLD_UNOWN_B + .4byte gAnims_OLD_UNOWN_B + .4byte gAnims_OLD_UNOWN_B + .4byte gAnims_TREECKO + .4byte gAnims_GROVYLE + .4byte gAnims_SCEPTILE + .4byte gAnims_TORCHIC + .4byte gAnims_COMBUSKEN + .4byte gAnims_BLAZIKEN + .4byte gAnims_MUDKIP + .4byte gAnims_MARSHTOMP + .4byte gAnims_SWAMPERT + .4byte gAnims_POOCHYENA + .4byte gAnims_MIGHTYENA + .4byte gAnims_ZIGZAGOON + .4byte gAnims_LINOONE + .4byte gAnims_WURMPLE + .4byte gAnims_SILCOON + .4byte gAnims_BEAUTIFLY + .4byte gAnims_CASCOON + .4byte gAnims_DUSTOX + .4byte gAnims_LOTAD + .4byte gAnims_LOMBRE + .4byte gAnims_LUDICOLO + .4byte gAnims_SEEDOT + .4byte gAnims_NUZLEAF + .4byte gAnims_SHIFTRY + .4byte gAnims_NINCADA + .4byte gAnims_NINJASK + .4byte gAnims_SHEDINJA + .4byte gAnims_TAILLOW + .4byte gAnims_SWELLOW + .4byte gAnims_SHROOMISH + .4byte gAnims_BRELOOM + .4byte gAnims_SPINDA + .4byte gAnims_WINGULL + .4byte gAnims_PELIPPER + .4byte gAnims_SURSKIT + .4byte gAnims_MASQUERAIN + .4byte gAnims_WAILMER + .4byte gAnims_WAILORD + .4byte gAnims_SKITTY + .4byte gAnims_DELCATTY + .4byte gAnims_KECLEON + .4byte gAnims_BALTOY + .4byte gAnims_CLAYDOL + .4byte gAnims_NOSEPASS + .4byte gAnims_TORKOAL + .4byte gAnims_SABLEYE + .4byte gAnims_BARBOACH + .4byte gAnims_WHISCASH + .4byte gAnims_LUVDISC + .4byte gAnims_CORPHISH + .4byte gAnims_CRAWDAUNT + .4byte gAnims_FEEBAS + .4byte gAnims_MILOTIC + .4byte gAnims_CARVANHA + .4byte gAnims_SHARPEDO + .4byte gAnims_TRAPINCH + .4byte gAnims_VIBRAVA + .4byte gAnims_FLYGON + .4byte gAnims_MAKUHITA + .4byte gAnims_HARIYAMA + .4byte gAnims_ELECTRIKE + .4byte gAnims_MANECTRIC + .4byte gAnims_NUMEL + .4byte gAnims_CAMERUPT + .4byte gAnims_SPHEAL + .4byte gAnims_SEALEO + .4byte gAnims_WALREIN + .4byte gAnims_CACNEA + .4byte gAnims_CACTURNE + .4byte gAnims_SNORUNT + .4byte gAnims_GLALIE + .4byte gAnims_LUNATONE + .4byte gAnims_SOLROCK + .4byte gAnims_AZURILL + .4byte gAnims_SPOINK + .4byte gAnims_GRUMPIG + .4byte gAnims_PLUSLE + .4byte gAnims_MINUN + .4byte gAnims_MAWILE + .4byte gAnims_MEDITITE + .4byte gAnims_MEDICHAM + .4byte gAnims_SWABLU + .4byte gAnims_ALTARIA + .4byte gAnims_WYNAUT + .4byte gAnims_DUSKULL + .4byte gAnims_DUSCLOPS + .4byte gAnims_ROSELIA + .4byte gAnims_SLAKOTH + .4byte gAnims_VIGOROTH + .4byte gAnims_SLAKING + .4byte gAnims_GULPIN + .4byte gAnims_SWALOT + .4byte gAnims_TROPIUS + .4byte gAnims_WHISMUR + .4byte gAnims_LOUDRED + .4byte gAnims_EXPLOUD + .4byte gAnims_CLAMPERL + .4byte gAnims_HUNTAIL + .4byte gAnims_GOREBYSS + .4byte gAnims_ABSOL + .4byte gAnims_SHUPPET + .4byte gAnims_BANETTE + .4byte gAnims_SEVIPER + .4byte gAnims_ZANGOOSE + .4byte gAnims_RELICANTH + .4byte gAnims_ARON + .4byte gAnims_LAIRON + .4byte gAnims_AGGRON + .4byte gAnims_CASTFORM + .4byte gAnims_VOLBEAT + .4byte gAnims_ILLUMISE + .4byte gAnims_LILEEP + .4byte gAnims_CRADILY + .4byte gAnims_ANORITH + .4byte gAnims_ARMALDO + .4byte gAnims_RALTS + .4byte gAnims_KIRLIA + .4byte gAnims_GARDEVOIR + .4byte gAnims_BAGON + .4byte gAnims_SHELGON + .4byte gAnims_SALAMENCE + .4byte gAnims_BELDUM + .4byte gAnims_METANG + .4byte gAnims_METAGROSS + .4byte gAnims_REGIROCK + .4byte gAnims_REGICE + .4byte gAnims_REGISTEEL + .4byte gAnims_KYOGRE + .4byte gAnims_GROUDON + .4byte gAnims_RAYQUAZA + .4byte gAnims_LATIAS + .4byte gAnims_LATIOS + .4byte gAnims_JIRACHI + .4byte gAnims_DEOXYS + .4byte gAnims_CHIMECHO + .4byte gAnims_EGG + .4byte gAnims_UNOWN_B + .4byte gAnims_UNOWN_C + .4byte gAnims_UNOWN_D + .4byte gAnims_UNOWN_E + .4byte gAnims_UNOWN_F + .4byte gAnims_UNOWN_G + .4byte gAnims_UNOWN_H + .4byte gAnims_UNOWN_I + .4byte gAnims_UNOWN_J + .4byte gAnims_UNOWN_K + .4byte gAnims_UNOWN_L + .4byte gAnims_UNOWN_M + .4byte gAnims_UNOWN_N + .4byte gAnims_UNOWN_O + .4byte gAnims_UNOWN_P + .4byte gAnims_UNOWN_Q + .4byte gAnims_UNOWN_R + .4byte gAnims_UNOWN_S + .4byte gAnims_UNOWN_T + .4byte gAnims_UNOWN_U + .4byte gAnims_UNOWN_V + .4byte gAnims_UNOWN_W + .4byte gAnims_UNOWN_X + .4byte gAnims_UNOWN_Y + .4byte gAnims_UNOWN_Z + .4byte gAnims_UNOWN_EMARK + .4byte gAnims_UNOWN_QMARK diff --git a/src/battle_dome_cards.c b/src/battle_dome_cards.c index c0557ac70..5251ee06a 100644 --- a/src/battle_dome_cards.c +++ b/src/battle_dome_cards.c @@ -17,7 +17,7 @@ extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; extern const union AffineAnimCmd *const gUnknown_082FF618[]; extern const union AffineAnimCmd *const gUnknown_082FF694[]; extern const union AnimCmd *const gUnknown_082FF70C[]; -extern const union AnimCmd *const *const gUnknown_08309AAC[NUM_SPECIES]; +extern const union AnimCmd *const *const gMonAnimationsSpriteAnimsPtrTable[NUM_SPECIES]; extern const union AnimCmd *const *const gUnknown_0830536C[]; extern const u8 gUnknown_0831F578[]; @@ -282,7 +282,7 @@ u16 sub_818D3E4(u16 species, u32 otId, u32 personality, u8 flags, s16 x, s16 y, images[j].size = 0x800; } gUnknown_0203CCEC.tileTag = 0xFFFF; - gUnknown_0203CCEC.anims = gUnknown_08309AAC[species]; + gUnknown_0203CCEC.anims = gMonAnimationsSpriteAnimsPtrTable[species]; gUnknown_0203CCEC.images = images; if (flags2 == 0x01) { diff --git a/src/pokemon_2.c b/src/pokemon_2.c index c5c36c793..c3d3bf8cf 100644 --- a/src/pokemon_2.c +++ b/src/pokemon_2.c @@ -28,7 +28,7 @@ extern const u32 gBitTable[]; extern const struct SpriteTemplate gUnknown_08329D98[]; extern const struct SpriteTemplate gUnknown_08329DF8[]; extern const union AnimCmd* gUnknown_082FF70C[]; -extern const union AnimCmd* const * const gUnknown_08309AAC[]; +extern const union AnimCmd* const * const gMonAnimationsSpriteAnimsPtrTable[]; extern const union AnimCmd* const * const gUnknown_08305D0C[]; extern const union AnimCmd* const * const gUnknown_0830536C[]; extern const u8 gText_BadEgg[]; @@ -165,9 +165,9 @@ void sub_806A068(u16 species, u8 bankIdentity) if (bankIdentity == 0 || bankIdentity == 2) gUnknown_0202499C.anims = gUnknown_082FF70C; else if (species > 500) - gUnknown_0202499C.anims = gUnknown_08309AAC[species - 500]; + gUnknown_0202499C.anims = gMonAnimationsSpriteAnimsPtrTable[species - 500]; else - gUnknown_0202499C.anims = gUnknown_08309AAC[species]; + gUnknown_0202499C.anims = gMonAnimationsSpriteAnimsPtrTable[species]; } void sub_806A12C(u16 trainerSpriteId, u8 bankIdentity) -- cgit v1.2.3 From beab7a10d2dbb5f1385b8cac2e630f82cebb3387 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 9 Oct 2017 23:33:41 +0200 Subject: table to hex --- src/battle_message.c | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/battle_message.c b/src/battle_message.c index 77a461544..2c622f06d 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -1189,27 +1189,27 @@ static const u8 sDummyWeirdStatusString[] = {EOS, EOS, EOS, EOS, EOS, EOS, EOS, static const u8 gUnknown_085CD42C[] = { - 0xFF, 1, 0, 1, 0, 0, 1, 1, 0xF, 6, 0, 0, 0xFF, 1, - 1, 1, 0, 0, 0, 1, 0xF, 6, 0, 0, 0xEE, 1, 0, 1, 0, - 0, 0, 0xD, 0xE, 0xF, 0, 0, 0xEE, 7, 0, 1, 0, 0, 0, - 0xD, 0xE, 0xF, 0, 0, 0xEE, 7, 0, 1, 0, 0, 0, 0xD, - 0xE, 0xF, 0, 0, 0xEE, 7, 0, 1, 0, 0, 0, 0xD, 0xE, - 0xF, 0, 0, 0xEE, 7, 0, 1, 0, 0, 0, 0xD, 0xE, 0xF, - 0, 0, 0xEE, 7, 0, 1, 0, 0, 0, 0xC, 0xE, 0xB, 0, 0, - 0xEE, 1, 0, 1, 0, 0, 0, 0xD, 0xE, 0xF, 0, 0, 0xEE, - 1, 2, 1, 0, 0, 0, 0xC, 0xE, 0xB, 0, 0, 0xEE, 7, 0, - 1, 0, 0, 0, 0xD, 0xE, 0xF, 0, 0, 0xEE, 7, 0, 1, 0, - 0, 0, 0xD, 0xE, 0xF, 0, 0, 0xEE, 1, 0, 1, 0, 0, 0, - 0xD, 0xE, 0xF, 0, 0, 0xEE, 1, 0, 1, 0, 0, 0, 0xD, - 0xE, 0xF, 0, 0, 0, 1, 0x20, 1, 0, 0, 0, 1, 0, 2, - 0, 0, 0xEE, 1, 0xFF, 1, 0, 0, 0, 0xD, 0xE, 0xF, 0, - 0, 0xEE, 1, 0xFF, 1, 0, 0, 0, 0xD, 0xE, 0xF, 0, 0, - 0xEE, 1, 0xFF, 1, 0, 0, 0, 0xD, 0xE, 0xF, 0, 0, 0xEE, - 1, 0xFF, 1, 0, 0, 0, 0xD, 0xE, 0xF, 0, 0, 0xEE, 1, - 0xFF, 1, 0, 0, 0, 0xD, 0xE, 0xF, 0, 0, 0xEE, 1, 0xFF, - 1, 0, 0, 0, 0xD, 0xE, 0xF, 0, 0, 0, 1, 0xFF, 1, 0, - 0, 0, 1, 0, 6, 0, 0, 0, 1, 0xFF, 1, 0, 0, 0, 1, 0, - 6, 0, 0, 0, 1, 0xFF, 1, 0, 0, 0, 1, 0, 6, 0, 0 + 0xFF, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0xF, 0x6, 0x0, 0x0, 0xFF, 0x1, + 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0xF, 0x6, 0x0, 0x0, 0xEE, 0x1, 0x0, 0x1, 0x0, + 0x0, 0x0, 0xD, 0xE, 0xF, 0x0, 0x0, 0xEE, 0x7, 0x0, 0x1, 0x0, 0x0, 0x0, + 0xD, 0xE, 0xF, 0x0, 0x0, 0xEE, 0x7, 0x0, 0x1, 0x0, 0x0, 0x0, 0xD, + 0xE, 0xF, 0x0, 0x0, 0xEE, 0x7, 0x0, 0x1, 0x0, 0x0, 0x0, 0xD, 0xE, + 0xF, 0x0, 0x0, 0xEE, 0x7, 0x0, 0x1, 0x0, 0x0, 0x0, 0xD, 0xE, 0xF, + 0x0, 0x0, 0xEE, 0x7, 0x0, 0x1, 0x0, 0x0, 0x0, 0xC, 0xE, 0xB, 0x0, 0x0, + 0xEE, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0xD, 0xE, 0xF, 0x0, 0x0, 0xEE, + 0x1, 0x2, 0x1, 0x0, 0x0, 0x0, 0xC, 0xE, 0xB, 0x0, 0x0, 0xEE, 0x7, 0x0, + 0x1, 0x0, 0x0, 0x0, 0xD, 0xE, 0xF, 0x0, 0x0, 0xEE, 0x7, 0x0, 0x1, 0x0, + 0x0, 0x0, 0xD, 0xE, 0xF, 0x0, 0x0, 0xEE, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, + 0xD, 0xE, 0xF, 0x0, 0x0, 0xEE, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0xD, + 0xE, 0xF, 0x0, 0x0, 0x0, 0x1, 0x20, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x2, + 0x0, 0x0, 0xEE, 0x1, 0xFF, 0x1, 0x0, 0x0, 0x0, 0xD, 0xE, 0xF, 0x0, + 0x0, 0xEE, 0x1, 0xFF, 0x1, 0x0, 0x0, 0x0, 0xD, 0xE, 0xF, 0x0, 0x0, + 0xEE, 0x1, 0xFF, 0x1, 0x0, 0x0, 0x0, 0xD, 0xE, 0xF, 0x0, 0x0, 0xEE, + 0x1, 0xFF, 0x1, 0x0, 0x0, 0x0, 0xD, 0xE, 0xF, 0x0, 0x0, 0xEE, 0x1, + 0xFF, 0x1, 0x0, 0x0, 0x0, 0xD, 0xE, 0xF, 0x0, 0x0, 0xEE, 0x1, 0xFF, + 0x1, 0x0, 0x0, 0x0, 0xD, 0xE, 0xF, 0x0, 0x0, 0x0, 0x1, 0xFF, 0x1, 0x0, + 0x0, 0x0, 0x1, 0x0, 0x6, 0x0, 0x0, 0x0, 0x1, 0xFF, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, + 0x6, 0x0, 0x0, 0x0, 0x1, 0xFF, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x6, 0x0, 0x0 }; static const u8 gUnknown_085CD54C[] = -- cgit v1.2.3 From b6ec90db6192c8405c9fe952aae7f356bcd1b0c3 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 9 Oct 2017 23:38:40 +0200 Subject: secod table to hex --- src/battle_message.c | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/battle_message.c b/src/battle_message.c index 2c622f06d..aeff721d6 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -1214,27 +1214,27 @@ static const u8 gUnknown_085CD42C[] = static const u8 gUnknown_085CD54C[] = { - 0xFF, 1, 0, 1, 0, 0, 1, 1, 0xF, 6, 0, 0, 0xFF, 1, - 1, 1, 0, 0, 0, 1, 0xF, 6, 0, 0, 0xEE, 1, 0, 1, 0, - 0, 0, 0xD, 0xE, 0xF, 0, 0, 0xEE, 7, 0, 1, 0, 0, 0, - 0xD, 0xE, 0xF, 0, 0, 0xEE, 7, 0, 1, 0, 0, 0, 0xD, - 0xE, 0xF, 0, 0, 0xEE, 7, 0, 1, 0, 0, 0, 0xD, 0xE, - 0xF, 0, 0, 0xEE, 7, 0, 1, 0, 0, 0, 0xD, 0xE, 0xF, - 0, 0, 0xEE, 7, 0, 1, 0, 0, 0, 0xC, 0xE, 0xB, 0, 0, - 0xEE, 1, 0, 1, 0, 0, 0, 0xD, 0xE, 0xF, 0, 0, 0xEE, - 1, 2, 1, 0, 0, 0, 0xC, 0xE, 0xB, 0, 0, 0xEE, 7, 0, - 1, 0, 0, 0, 0xD, 0xE, 0xF, 0, 0, 0xEE, 7, 0, 1, 0, - 0, 0, 0xD, 0xE, 0xF, 0, 0, 0xEE, 1, 0, 1, 0, 0, 0, - 0xD, 0xE, 0xF, 0, 0, 0xEE, 1, 0, 1, 0, 0, 0, 0xD, - 0xE, 0xF, 0, 0, 0, 1, 0x20, 1, 0, 0, 0, 1, 0, 2, - 0, 0, 0xEE, 1, 0xFF, 1, 0, 0, 0, 1, 0xE, 0xF, 0, - 0, 0xEE, 1, 0xFF, 1, 0, 0, 0, 0xD, 0xE, 0xF, 0, 0, - 0xEE, 1, 0xFF, 1, 0, 0, 0, 0xD, 0xE, 0xF, 0, 0, 0xEE, - 1, 0xFF, 1, 0, 0, 0, 0xD, 0xE, 0xF, 0, 0, 0xEE, 1, - 0xFF, 1, 0, 0, 0, 0xD, 0xE, 0xF, 0, 0, 0xEE, 1, 0xFF, - 1, 0, 0, 0, 0xD, 0xE, 0xF, 0, 0, 0xEE, 1, 0xFF, 1, - 0, 0, 0, 0xD, 0xE, 0xF, 0, 0, 0x11, 1, 0, 1, 0, 0, - 1, 2, 1, 3, 0, 0 + 0xFF, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0xF, 0x6, 0x0, 0x0, 0xFF, 0x1, + 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0xF, 0x6, 0x0, 0x0, 0xEE, 0x1, 0x0, 0x1, 0x0, + 0x0, 0x0, 0xD, 0xE, 0xF, 0x0, 0x0, 0xEE, 0x7, 0x0, 0x1, 0x0, 0x0, 0x0, + 0xD, 0xE, 0xF, 0x0, 0x0, 0xEE, 0x7, 0x0, 0x1, 0x0, 0x0, 0x0, 0xD, + 0xE, 0xF, 0x0, 0x0, 0xEE, 0x7, 0x0, 0x1, 0x0, 0x0, 0x0, 0xD, 0xE, + 0xF, 0x0, 0x0, 0xEE, 0x7, 0x0, 0x1, 0x0, 0x0, 0x0, 0xD, 0xE, 0xF, + 0x0, 0x0, 0xEE, 0x7, 0x0, 0x1, 0x0, 0x0, 0x0, 0xC, 0xE, 0xB, 0x0, 0x0, + 0xEE, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0xD, 0xE, 0xF, 0x0, 0x0, 0xEE, + 0x1, 0x2, 0x1, 0x0, 0x0, 0x0, 0xC, 0xE, 0xB, 0x0, 0x0, 0xEE, 0x7, 0x0, + 0x1, 0x0, 0x0, 0x0, 0xD, 0xE, 0xF, 0x0, 0x0, 0xEE, 0x7, 0x0, 0x1, 0x0, + 0x0, 0x0, 0xD, 0xE, 0xF, 0x0, 0x0, 0xEE, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, + 0xD, 0xE, 0xF, 0x0, 0x0, 0xEE, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0xD, + 0xE, 0xF, 0x0, 0x0, 0x0, 0x1, 0x20, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x2, + 0x0, 0x0, 0xEE, 0x1, 0xFF, 0x1, 0x0, 0x0, 0x0, 0x1, 0xE, 0xF, 0x0, + 0x0, 0xEE, 0x1, 0xFF, 0x1, 0x0, 0x0, 0x0, 0xD, 0xE, 0xF, 0x0, 0x0, + 0xEE, 0x1, 0xFF, 0x1, 0x0, 0x0, 0x0, 0xD, 0xE, 0xF, 0x0, 0x0, 0xEE, + 0x1, 0xFF, 0x1, 0x0, 0x0, 0x0, 0xD, 0xE, 0xF, 0x0, 0x0, 0xEE, 0x1, + 0xFF, 0x1, 0x0, 0x0, 0x0, 0xD, 0xE, 0xF, 0x0, 0x0, 0xEE, 0x1, 0xFF, + 0x1, 0x0, 0x0, 0x0, 0xD, 0xE, 0xF, 0x0, 0x0, 0xEE, 0x1, 0xFF, 0x1, + 0x0, 0x0, 0x0, 0xD, 0xE, 0xF, 0x0, 0x0, 0x11, 0x1, 0x0, 0x1, 0x0, 0x0, + 0x1, 0x2, 0x1, 0x3, 0x0, 0x0 }; static const u8 * const gUnknown_085CD660[] = -- cgit v1.2.3 From 6d66081be0b1b26ce55a6f1a2a20644e2ae5c7f7 Mon Sep 17 00:00:00 2001 From: ProjectRevoTPP Date: Mon, 9 Oct 2017 20:25:34 -0400 Subject: minor tweak to make tidy. --- Makefile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Makefile b/Makefile index dd1a96ebb..d10505145 100644 --- a/Makefile +++ b/Makefile @@ -64,9 +64,7 @@ clean: tidy find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' -o -iname '*.latfont' -o -iname '*.hwjpnfont' -o -iname '*.fwjpnfont' \) -exec rm {} + tidy: - rm -f pokeemerald.gba - rm -f pokeemerald.map - rm -f pokeemerald.elf + rm -f pokeemerald.{gba,map,elf} rm -r build/* include graphics_file_rules.mk -- cgit v1.2.3 From 57e5624e0619b8d96fb43ff68d9eeefe734b1a4f Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 10 Oct 2017 18:01:45 +0200 Subject: battle9 is being worked on --- asm/battle_9.s | 1487 +---------------------------- asm/battle_controller_opponent.s | 10 +- asm/battle_controller_player.s | 20 +- asm/battle_controller_player_partner.s | 6 +- asm/battle_controller_recorded_opponent.s | 6 +- asm/battle_controller_recorded_player.s | 8 +- asm/battle_controller_safari.s | 4 +- asm/battle_controller_wally.s | 6 +- asm/rom3.s | 6 +- include/battle_controllers.h | 1 + include/battle_script_commands.h | 2 +- ld_script.txt | 1 + src/battle_9.c | 525 ++++++++++ src/battle_script_commands.c | 8 +- 14 files changed, 568 insertions(+), 1522 deletions(-) create mode 100644 src/battle_9.c diff --git a/asm/battle_9.s b/asm/battle_9.s index 0dfc105ec..6d77d1593 100644 --- a/asm/battle_9.s +++ b/asm/battle_9.s @@ -5,1487 +5,6 @@ .text - thumb_func_start ai_switch_perish_song -ai_switch_perish_song: @ 8062BF8 - push {lr} - ldr r1, =gStatuses3 - ldr r0, =gActiveBank - ldrb r2, [r0] - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08062C50 - ldr r0, =gDisableStructs - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0xF] - lsls r0, 28 - cmp r0, 0 - bne _08062C50 - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, r2, r0 - movs r1, 0xA5 - lsls r1, 2 - adds r0, r1 - movs r1, 0x6 - strb r1, [r0] - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb - movs r0, 0x1 - b _08062C52 - .pool -_08062C50: - movs r0, 0 -_08062C52: - pop {r1} - bx r1 - thumb_func_end ai_switch_perish_song - - thumb_func_start sub_8062C58 -sub_8062C58: @ 8062C58 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08062C72 - b _08062E2C -_08062C72: - ldr r0, =gActiveBank - ldrb r0, [r0] - bl GetBankIdentity - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - ldr r4, =gBattleMons - bl GetBankByIdentity - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x58 - muls r0, r1 - adds r0, r4 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x19 - beq _08062C9E - b _08062E2C -_08062C9E: - mov r0, r10 - bl GetBankByIdentity - lsls r0, 24 - lsrs r2, r0, 24 - movs r6, 0 - mov r8, r4 - movs r7, 0x58 - adds r0, r2, 0 - muls r0, r7 - adds r4, r0, r4 - movs r0, 0x20 - adds r0, r4 - mov r9, r0 -_08062CBA: - lsls r1, r6, 1 - ldr r5, =gActiveBank - ldrb r0, [r5] - muls r0, r7 - adds r1, r0 - mov r0, r8 - adds r0, 0xC - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - beq _08062CE8 - ldrh r1, [r4] - mov r3, r9 - ldrb r2, [r3] - bl AI_TypeCalc - lsls r0, 24 - lsrs r1, r0, 24 - movs r0, 0x2 - ands r1, r0 - cmp r1, 0 - beq _08062CE8 - b _08062E2C -_08062CE8: - adds r6, 0x1 - cmp r6, 0x3 - ble _08062CBA - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - ldr r1, =0x00808000 - ands r0, r1 - cmp r0, 0 - beq _08062D50 - ldrb r1, [r5] - movs r0, 0x2 - ands r0, r1 - adds r1, r5, 0 - cmp r0, 0 - bne _08062D20 - movs r4, 0 - movs r0, 0x3 - str r0, [sp] - b _08062D58 - .pool -_08062D20: - movs r4, 0x3 - movs r3, 0x6 - str r3, [sp] - b _08062D58 -_08062D28: - ldr r0, =gActiveBank - ldrb r0, [r0] - ldr r1, =gBattleStruct - ldr r1, [r1] - adds r0, r1 - movs r1, 0xA5 - lsls r1, 2 - adds r0, r1 - strb r6, [r0] - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb - movs r0, 0x1 - b _08062E2E - .pool -_08062D50: - movs r4, 0 - movs r3, 0x6 - str r3, [sp] - adds r1, r5, 0 -_08062D58: - ldrb r0, [r1] - bl GetBankSide - lsls r0, 24 - ldr r1, =gEnemyParty - mov r9, r1 - cmp r0, 0 - bne _08062D6C - ldr r3, =gPlayerParty - mov r9, r3 -_08062D6C: - adds r6, r4, 0 - ldr r0, [sp] - cmp r6, r0 - bge _08062E2C -_08062D74: - movs r0, 0x64 - adds r5, r6, 0 - muls r5, r0 - mov r1, r9 - adds r4, r1, r5 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08062E24 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _08062E24 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _08062E24 - ldr r1, =gBattlePartyID - ldr r0, =gActiveBank - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r6, r0 - beq _08062E24 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - adds r0, r4, 0 - movs r1, 0x2E - bl GetMonData - mov r0, r10 - bl GetBankByIdentity - lsls r0, 24 - lsrs r2, r0, 24 - movs r4, 0 - mov r8, r5 - ldr r1, =gBattleMons - movs r0, 0x58 - muls r0, r2 - adds r5, r0, r1 - adds r7, r5, 0 - adds r7, 0x20 -_08062DE0: - adds r1, r4, 0 - adds r1, 0xD - mov r0, r9 - add r0, r8 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - beq _08062E1E - ldrh r1, [r5] - ldrb r2, [r7] - bl AI_TypeCalc - lsls r0, 24 - lsrs r1, r0, 24 - movs r0, 0x2 - ands r1, r0 - cmp r1, 0 - beq _08062E1E - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bls _08062D28 -_08062E1E: - adds r4, 0x1 - cmp r4, 0x3 - ble _08062DE0 -_08062E24: - adds r6, 0x1 - ldr r3, [sp] - cmp r6, r3 - blt _08062D74 -_08062E2C: - movs r0, 0 -_08062E2E: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8062C58 - - thumb_func_start sub_8062E54 -sub_8062E54: @ 8062E54 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r0, 0x1 - bl ai_has_super_effective_move_on_field - lsls r0, 24 - cmp r0, 0 - beq _08062E82 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - beq _08062E82 - b _080630AC -_08062E82: - ldr r1, =gUnknown_02024250 - ldr r5, =gActiveBank - ldrb r3, [r5] - lsls r0, r3, 1 - adds r4, r0, r1 - ldrh r1, [r4] - cmp r1, 0 - bne _08062E94 - b _080630AC -_08062E94: - ldr r0, =0x0000ffff - cmp r1, r0 - bne _08062E9C - b _080630AC -_08062E9C: - ldr r2, =gBattleMoves - ldrh r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _08062EB0 - b _080630AC -_08062EB0: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08062F1A - mov r8, r3 - mov r0, r8 - bl GetBankIdentity - movs r4, 0x2 - eors r0, r4 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByIdentity - ldr r1, =gAbsentBankFlags - ldrb r1, [r1] - ldr r2, =gBitTable - lsls r0, 24 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08062F04 - ldrb r7, [r5] - b _08062F1E - .pool -_08062F04: - ldrb r0, [r5] - bl GetBankIdentity - eors r0, r4 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByIdentity - lsls r0, 24 - lsrs r7, r0, 24 - b _08062F1E -_08062F1A: - adds r7, r3, 0 - mov r8, r7 -_08062F1E: - ldr r3, =gBattleMoves - ldr r1, =gUnknown_02024250 - ldr r2, =gActiveBank - ldrb r0, [r2] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x2] - cmp r0, 0xA - bne _08062F4C - movs r0, 0x12 - b _08062F5E - .pool -_08062F4C: - cmp r0, 0xB - bne _08062F56 - movs r1, 0xB - str r1, [sp] - b _08062F60 -_08062F56: - cmp r0, 0xD - beq _08062F5C - b _080630AC -_08062F5C: - movs r0, 0xA -_08062F5E: - str r0, [sp] -_08062F60: - ldr r1, =gBattleMons - ldrb r3, [r2] - movs r0, 0x58 - muls r0, r3 - adds r0, r1 - adds r0, 0x20 - ldrb r0, [r0] - ldr r1, [sp] - cmp r0, r1 - bne _08062F76 - b _080630AC -_08062F76: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - ldr r1, =0x00808000 - ands r0, r1 - cmp r0, 0 - beq _08062FCC - movs r0, 0x2 - ands r3, r0 - cmp r3, 0 - bne _08062F9C - movs r4, 0 - movs r0, 0x3 - b _08062FD0 - .pool -_08062F9C: - movs r4, 0x3 - movs r1, 0x6 - mov r10, r1 - b _08062FD2 -_08062FA4: - ldr r0, =gActiveBank - ldrb r0, [r0] - ldr r1, =gBattleStruct - ldr r1, [r1] - adds r0, r1 - movs r2, 0xA5 - lsls r2, 2 - adds r0, r2 - strb r5, [r0] - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb - movs r0, 0x1 - b _080630AE - .pool -_08062FCC: - movs r4, 0 - movs r0, 0x6 -_08062FD0: - mov r10, r0 -_08062FD2: - ldrb r0, [r2] - bl GetBankSide - lsls r0, 24 - ldr r1, =gEnemyParty - str r1, [sp, 0x4] - cmp r0, 0 - bne _08062FE6 - ldr r2, =gPlayerParty - str r2, [sp, 0x4] -_08062FE6: - adds r5, r4, 0 - cmp r5, r10 - bge _080630AC - ldr r0, =gBaseStats - mov r9, r0 -_08062FF0: - movs r0, 0x64 - muls r0, r5 - ldr r1, [sp, 0x4] - adds r6, r1, r0 - adds r0, r6, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _080630A6 - adds r0, r6, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _080630A6 - adds r0, r6, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _080630A6 - ldr r1, =gBattlePartyID - mov r2, r8 - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r5, r0 - beq _080630A6 - lsls r0, r7, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r5, r0 - beq _080630A6 - ldr r0, =gBattleStruct - ldr r1, [r0] - adds r0, r2, r1 - adds r0, 0x5C - ldrb r0, [r0] - cmp r5, r0 - beq _080630A6 - adds r0, r7, r1 - adds r0, 0x5C - ldrb r0, [r0] - cmp r5, r0 - beq _080630A6 - adds r0, r6, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r6, 0 - movs r1, 0x2E - bl GetMonData - cmp r0, 0 - beq _08063088 - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - add r0, r9 - ldrb r0, [r0, 0x17] - b _08063092 - .pool -_08063088: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - add r0, r9 - ldrb r0, [r0, 0x16] -_08063092: - ldr r1, [sp] - cmp r1, r0 - bne _080630A6 - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080630A6 - b _08062FA4 -_080630A6: - adds r5, 0x1 - cmp r5, r10 - blt _08062FF0 -_080630AC: - movs r0, 0 -_080630AE: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8062E54 - - thumb_func_start ai_switchout_natural_cure -ai_switchout_natural_cure: @ 80630C0 - push {r4,r5,lr} - ldr r3, =gBattleMons - ldr r5, =gActiveBank - ldrb r4, [r5] - movs r0, 0x58 - adds r2, r4, 0 - muls r2, r0 - adds r0, r3, 0 - adds r0, 0x4C - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - beq _08063188 - adds r1, r2, r3 - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1E - bne _08063188 - ldrh r0, [r1, 0x2C] - ldrh r1, [r1, 0x28] - lsrs r0, 1 - cmp r1, r0 - bcc _08063188 - ldr r1, =gUnknown_02024250 - lsls r0, r4, 1 - adds r0, r1 - ldrh r1, [r0] - cmp r1, 0 - beq _08063106 - ldr r0, =0x0000ffff - cmp r1, r0 - bne _08063128 -_08063106: - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08063128 - ldrb r0, [r5] - b _08063190 - .pool -_08063128: - ldr r2, =gBattleMoves - ldr r1, =gUnknown_02024250 - ldr r4, =gActiveBank - ldrb r0, [r4] - lsls r0, 1 - adds r0, r1 - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _08063160 - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08063160 - ldrb r0, [r4] - b _08063190 - .pool -_08063160: - movs r0, 0x8 - movs r1, 0x1 - bl ai_switchout_something - lsls r0, 24 - cmp r0, 0 - bne _080631AA - movs r0, 0x4 - movs r1, 0x1 - bl ai_switchout_something - lsls r0, 24 - cmp r0, 0 - bne _080631AA - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - bne _0806318C -_08063188: - movs r0, 0 - b _080631AC -_0806318C: - ldr r0, =gActiveBank - ldrb r0, [r0] -_08063190: - ldr r1, =gBattleStruct - ldr r1, [r1] - adds r0, r1 - movs r1, 0xA5 - lsls r1, 2 - adds r0, r1 - movs r1, 0x6 - strb r1, [r0] - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb -_080631AA: - movs r0, 0x1 -_080631AC: - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end ai_switchout_natural_cure - - thumb_func_start ai_has_super_effective_move_on_field -ai_has_super_effective_move_on_field: @ 80631BC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r0, =gActiveBank - ldrb r0, [r0] - bl GetBankIdentity - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - bl GetBankByIdentity - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, =gAbsentBankFlags - ldrb r1, [r0] - ldr r2, =gBitTable - lsls r0, r3, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08063256 - movs r4, 0 - ldr r6, =gBattleMons - movs r7, 0x58 - adds r0, r3, 0 - muls r0, r7 - adds r5, r0, r6 - movs r0, 0x20 - adds r0, r5 - mov r8, r0 -_0806320A: - lsls r1, r4, 1 - ldr r0, =gActiveBank - ldrb r0, [r0] - muls r0, r7 - adds r1, r0 - adds r0, r6, 0 - adds r0, 0xC - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - beq _08063250 - ldrh r1, [r5] - mov r3, r8 - ldrb r2, [r3] - bl AI_TypeCalc - lsls r0, 24 - lsrs r1, r0, 24 - movs r0, 0x2 - ands r1, r0 - cmp r1, 0 - beq _08063250 - mov r0, r9 - cmp r0, 0 - bne _08063278 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - bne _08063278 -_08063250: - adds r4, 0x1 - cmp r4, 0x3 - ble _0806320A -_08063256: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0806327C - b _080632FA - .pool -_08063278: - movs r0, 0x1 - b _080632FC -_0806327C: - movs r1, 0x2 - mov r0, r10 - eors r0, r1 - bl GetBankByIdentity - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, =gAbsentBankFlags - ldrb r1, [r0] - ldr r2, =gBitTable - lsls r0, r3, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _080632FA - movs r4, 0 - ldr r6, =gBattleMons - movs r7, 0x58 - adds r0, r3, 0 - muls r0, r7 - adds r5, r0, r6 - movs r3, 0x20 - adds r3, r5 - mov r8, r3 -_080632AE: - lsls r1, r4, 1 - ldr r0, =gActiveBank - ldrb r0, [r0] - muls r0, r7 - adds r1, r0 - adds r0, r6, 0 - adds r0, 0xC - adds r1, r0 - ldrh r0, [r1] - cmp r0, 0 - beq _080632F4 - ldrh r1, [r5] - mov r3, r8 - ldrb r2, [r3] - bl AI_TypeCalc - lsls r0, 24 - lsrs r1, r0, 24 - movs r0, 0x2 - ands r1, r0 - cmp r1, 0 - beq _080632F4 - mov r0, r9 - cmp r0, 0 - bne _08063278 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - bne _08063278 -_080632F4: - adds r4, 0x1 - cmp r4, 0x3 - ble _080632AE -_080632FA: - movs r0, 0 -_080632FC: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end ai_has_super_effective_move_on_field - - thumb_func_start ai_is_too_invested_in_stat_buffs -ai_is_too_invested_in_stat_buffs: @ 806331C - push {r4,lr} - movs r4, 0 - ldr r1, =gBattleMons - ldr r0, =gActiveBank - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x18 - adds r2, r0, r1 - movs r3, 0x7 -_08063330: - ldrb r1, [r2] - movs r0, 0 - ldrsb r0, [r2, r0] - cmp r0, 0x6 - ble _08063346 - subs r1, 0x6 - lsls r0, r4, 24 - asrs r0, 24 - adds r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 -_08063346: - adds r2, 0x1 - subs r3, 0x1 - cmp r3, 0 - bge _08063330 - movs r0, 0 - cmp r4, 0x3 - bls _08063356 - movs r0, 0x1 -_08063356: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end ai_is_too_invested_in_stat_buffs - - thumb_func_start ai_switchout_something -ai_switchout_something: @ 8063364 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x4] - ldr r2, =gUnknown_02024250 - ldr r1, =gActiveBank - ldrb r3, [r1] - lsls r0, r3, 1 - adds r4, r0, r2 - ldrh r2, [r4] - adds r5, r1, 0 - cmp r2, 0 - bne _08063390 - b _080635EE -_08063390: - ldr r0, =0x0000ffff - cmp r2, r0 - bne _08063398 - b _080635EE -_08063398: - ldr r0, =gUnknown_02024270 - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080633A4 - b _080635EE -_080633A4: - ldr r2, =gBattleMoves - ldrh r1, [r4] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x1] - cmp r0, 0 - bne _080633B8 - b _080635EE -_080633B8: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0806342C - mov r9, r3 - mov r0, r9 - bl GetBankIdentity - movs r4, 0x2 - eors r0, r4 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByIdentity - ldr r1, =gAbsentBankFlags - ldrb r1, [r1] - ldr r2, =gBitTable - lsls r0, 24 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08063414 - ldrb r5, [r5] - mov r10, r5 - b _08063430 - .pool -_08063414: - ldrb r0, [r5] - bl GetBankIdentity - eors r0, r4 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByIdentity - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - b _08063430 -_0806342C: - mov r9, r3 - mov r10, r9 -_08063430: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - ldr r1, =0x00808000 - ands r0, r1 - cmp r0, 0 - beq _08063490 - ldr r2, =gActiveBank - ldrb r1, [r2] - movs r0, 0x2 - ands r0, r1 - adds r5, r2, 0 - cmp r0, 0 - bne _08063460 - movs r4, 0 - movs r0, 0x3 - str r0, [sp, 0x8] - b _08063498 - .pool -_08063460: - movs r4, 0x3 - movs r1, 0x6 - str r1, [sp, 0x8] - b _08063498 -_08063468: - ldr r0, =gActiveBank - ldrb r0, [r0] - ldr r1, =gBattleStruct - ldr r1, [r1] - adds r0, r1 - movs r2, 0xA5 - lsls r2, 2 - adds r0, r2 - strb r6, [r0] - movs r0, 0x1 - movs r1, 0x2 - movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb - movs r0, 0x1 - b _080635F0 - .pool -_08063490: - movs r4, 0 - movs r0, 0x6 - str r0, [sp, 0x8] - ldr r5, =gActiveBank -_08063498: - ldrb r0, [r5] - bl GetBankSide - lsls r0, 24 - ldr r1, =gEnemyParty - str r1, [sp, 0xC] - cmp r0, 0 - bne _080634AC - ldr r2, =gPlayerParty - str r2, [sp, 0xC] -_080634AC: - adds r6, r4, 0 - b _080635E6 - .pool -_080634BC: - movs r0, 0x64 - muls r0, r6 - ldr r1, [sp, 0xC] - adds r5, r1, r0 - adds r0, r5, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - bne _080634D2 - b _080635E4 -_080634D2: - adds r0, r5, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - bne _080634E0 - b _080635E4 -_080634E0: - adds r0, r5, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _080635E4 - ldr r1, =gBattlePartyID - mov r2, r9 - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r6, r0 - beq _080635E4 - mov r2, r10 - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r6, r0 - beq _080635E4 - ldr r0, =gBattleStruct - ldr r1, [r0] - mov r2, r9 - adds r0, r2, r1 - adds r0, 0x5C - ldrb r0, [r0] - cmp r6, r0 - beq _080635E4 - mov r2, r10 - adds r0, r2, r1 - adds r0, 0x5C - ldrb r0, [r0] - cmp r6, r0 - beq _080635E4 - adds r0, r5, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r5, 0 - movs r1, 0x2E - bl GetMonData - cmp r0, 0 - beq _08063558 - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - ldr r1, =gBaseStats - adds r0, r1 - ldrb r2, [r0, 0x17] - b _08063564 - .pool -_08063558: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - ldr r2, =gBaseStats - adds r0, r2 - ldrb r2, [r0, 0x16] -_08063564: - ldr r1, =gUnknown_02024250 - ldr r5, =gActiveBank - ldrb r0, [r5] - lsls r0, 1 - adds r0, r1 - ldrh r0, [r0] - adds r1, r4, 0 - bl AI_TypeCalc - ldr r1, [sp] - ands r1, r0 - cmp r1, 0 - beq _080635E4 - ldr r1, =gUnknown_02024270 - ldrb r0, [r5] - adds r0, r1 - ldrb r0, [r0] - mov r9, r0 - movs r4, 0 - movs r0, 0x64 - adds r1, r6, 0 - muls r1, r0 - mov r8, r1 - ldr r1, =gBattleMons - movs r0, 0x58 - mov r2, r9 - muls r2, r0 - adds r0, r2, 0 - adds r5, r0, r1 - adds r7, r5, 0 - adds r7, 0x20 -_080635A2: - adds r1, r4, 0 - adds r1, 0xD - ldr r0, [sp, 0xC] - add r0, r8 - bl GetMonData - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - beq _080635DE - ldrh r1, [r5] - ldrb r2, [r7] - bl AI_TypeCalc - lsls r0, 24 - lsrs r1, r0, 24 - movs r0, 0x2 - ands r1, r0 - cmp r1, 0 - beq _080635DE - bl Random - lsls r0, 16 - lsrs r0, 16 - ldr r1, [sp, 0x4] - bl __modsi3 - cmp r0, 0 - bne _080635DE - b _08063468 -_080635DE: - adds r4, 0x1 - cmp r4, 0x3 - ble _080635A2 -_080635E4: - adds r6, 0x1 -_080635E6: - ldr r0, [sp, 0x8] - cmp r6, r0 - bge _080635EE - b _080634BC -_080635EE: - movs r0, 0 -_080635F0: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end ai_switchout_something - - thumb_func_start sub_8063614 -sub_8063614: @ 8063614 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r6, =gBattleMons - ldr r4, =gActiveBank - ldrb r2, [r4] - movs r5, 0x58 - adds r0, r2, 0 - muls r0, r5 - adds r1, r6, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - ldr r1, =0x0400e000 - ands r0, r1 - cmp r0, 0 - beq _0806363E - b _0806386C -_0806363E: - ldr r0, =gStatuses3 - lsls r1, r2, 2 - adds r1, r0 - ldr r1, [r1] - movs r0, 0x80 - lsls r0, 3 - ands r1, r0 - cmp r1, 0 - beq _08063652 - b _0806386C -_08063652: - str r1, [sp] - movs r0, 0xC - adds r1, r2, 0 - movs r2, 0x17 - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _0806366A - b _0806386C -_0806366A: - ldrb r1, [r4] - str r0, [sp] - movs r0, 0xC - movs r2, 0x47 - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _08063682 - b _0806386C -_08063682: - str r0, [sp] - movs r0, 0xE - movs r1, 0 - movs r2, 0x2A - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - beq _080636B4 - ldrb r0, [r4] - muls r0, r5 - adds r1, r0, r6 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x8 - bne _080636A8 - b _0806386C -_080636A8: - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x8 - bne _080636B4 - b _0806386C -_080636B4: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 11 - ands r0, r1 - cmp r0, 0 - beq _080636C4 - b _0806386C -_080636C4: - movs r0, 0 - mov r10, r0 - movs r0, 0x1 - ands r1, r0 - cmp r1, 0 - beq _0806372E - ldrb r7, [r4] - adds r0, r7, 0 - bl GetBankIdentity - movs r5, 0x2 - eors r0, r5 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByIdentity - ldr r1, =gAbsentBankFlags - ldrb r1, [r1] - ldr r2, =gBitTable - lsls r0, 24 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08063718 - ldrb r6, [r4] - b _08063732 - .pool -_08063718: - ldrb r0, [r4] - bl GetBankIdentity - eors r0, r5 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByIdentity - lsls r0, 24 - lsrs r6, r0, 24 - b _08063732 -_0806372E: - ldrb r6, [r4] - adds r7, r6, 0 -_08063732: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - ldr r1, =0x00808000 - ands r0, r1 - cmp r0, 0 - beq _08063768 - ldr r2, =gActiveBank - ldrb r1, [r2] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08063760 - movs r4, 0 - movs r1, 0x3 - mov r8, r1 - b _08063770 - .pool -_08063760: - movs r4, 0x3 - movs r0, 0x6 - mov r8, r0 - b _08063770 -_08063768: - movs r4, 0 - movs r1, 0x6 - mov r8, r1 - ldr r2, =gActiveBank -_08063770: - ldrb r0, [r2] - bl GetBankSide - lsls r0, 24 - ldr r1, =gEnemyParty - mov r9, r1 - cmp r0, 0 - bne _08063784 - ldr r0, =gPlayerParty - mov r9, r0 -_08063784: - adds r5, r4, 0 - cmp r5, r8 - bge _080637F2 -_0806378A: - movs r0, 0x64 - muls r0, r5 - mov r1, r9 - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _080637EC - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _080637EC - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _080637EC - ldr r1, =gBattlePartyID - lsls r0, r7, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r5, r0 - beq _080637EC - lsls r0, r6, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r5, r0 - beq _080637EC - ldr r0, =gBattleStruct - ldr r1, [r0] - adds r0, r7, r1 - adds r0, 0x5C - ldrb r0, [r0] - cmp r5, r0 - beq _080637EC - adds r0, r6, r1 - adds r0, 0x5C - ldrb r0, [r0] - cmp r5, r0 - beq _080637EC - movs r0, 0x1 - add r10, r0 -_080637EC: - adds r5, 0x1 - cmp r5, r8 - blt _0806378A -_080637F2: - mov r1, r10 - cmp r1, 0 - beq _0806386C - bl ai_switch_perish_song - lsls r0, 24 - cmp r0, 0 - bne _08063852 - bl sub_8062C58 - lsls r0, 24 - cmp r0, 0 - bne _08063852 - bl sub_8062E54 - lsls r0, 24 - cmp r0, 0 - bne _08063852 - bl ai_switchout_natural_cure - lsls r0, 24 - cmp r0, 0 - bne _08063852 - movs r0, 0 - bl ai_has_super_effective_move_on_field - lsls r0, 24 - cmp r0, 0 - bne _0806386C - bl ai_is_too_invested_in_stat_buffs - lsls r0, 24 - cmp r0, 0 - bne _0806386C - movs r0, 0x8 - movs r1, 0x2 - bl ai_switchout_something - lsls r0, 24 - cmp r0, 0 - bne _08063852 - movs r0, 0x4 - movs r1, 0x3 - bl ai_switchout_something - lsls r0, 24 - cmp r0, 0 - beq _0806386C -_08063852: - movs r0, 0x1 - b _0806386E - .pool -_0806386C: - movs r0, 0 -_0806386E: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8063614 - thumb_func_start sub_8063880 sub_8063880: @ 8063880 push {r4-r7,lr} @@ -1515,7 +34,7 @@ _080638A8: bne _080638B6 b _080639E6 _080638B6: - bl sub_8063614 + bl ShouldSwitch lsls r0, 24 cmp r0, 0 bne _080638C2 @@ -1659,7 +178,7 @@ _080639E6: lsls r2, 8 movs r0, 0x1 movs r1, 0 - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 _080639F8: pop {r3} mov r8, r3 @@ -2802,7 +1321,7 @@ _08064328: movs r0, 0x1 movs r1, 0x1 movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 ldr r0, =gActiveBank ldrb r0, [r0] lsrs r0, 1 diff --git a/asm/battle_controller_opponent.s b/asm/battle_controller_opponent.s index 48b7c7bf4..3fbeac5c1 100644 --- a/asm/battle_controller_opponent.s +++ b/asm/battle_controller_opponent.s @@ -5243,7 +5243,7 @@ sub_8061FB8: @ 8061FB8 movs r0, 0x1 movs r1, 0xA _08061FD6: - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 _08061FDA: bl OpponentBufferExecCompleted b _08062156 @@ -5347,7 +5347,7 @@ _0806209C: movs r0, 0x1 movs r1, 0xA adds r2, r4, 0 - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 b _08061FDA .pool _080620C4: @@ -5378,7 +5378,7 @@ _080620C6: movs r0, 0x1 movs r1, 0xA adds r2, r4, 0 - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 b _08062152 .pool _08062108: @@ -5401,7 +5401,7 @@ _08062108: orrs r2, r4 movs r0, 0x1 movs r1, 0xA - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 b _08062152 .pool _0806213C: @@ -5413,7 +5413,7 @@ _0806213C: orrs r2, r4 movs r0, 0x1 movs r1, 0xA - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 _08062152: bl OpponentBufferExecCompleted _08062156: diff --git a/asm/battle_controller_player.s b/asm/battle_controller_player.s index 94d4cdef0..e5381b4d8 100644 --- a/asm/battle_controller_player.s +++ b/asm/battle_controller_player.s @@ -226,7 +226,7 @@ _0805764C: movs r0, 0x1 movs r1, 0x3 movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 b _080577C2 _08057658: movs r0, 0x20 @@ -393,7 +393,7 @@ _080577B2: movs r1, 0xC _080577BC: movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 _080577C2: bl PlayerBufferExecCompleted b _080577E8 @@ -518,7 +518,7 @@ _080578A0: orrs r2, r0 movs r0, 0x1 movs r1, 0xA - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 ldrb r0, [r4] movs r1, 0x1 bl dp11b_obj_free @@ -1086,7 +1086,7 @@ _08057E14: _08057E1C: movs r0, 0x1 movs r1, 0xA - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 bl PlayerBufferExecCompleted b _08057F9E .pool @@ -3413,7 +3413,7 @@ _080591FE: lsrs r2, 16 movs r0, 0x1 movs r1, 0xB - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 strb r5, [r4] bl battle_type_is_double lsls r0, 24 @@ -3686,7 +3686,7 @@ _08059430: lsrs r2, 16 movs r0, 0x1 movs r1, 0xB - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 strb r5, [r4] ldr r0, =sub_8059544 str r0, [r6] @@ -4291,14 +4291,14 @@ _08059A2C: movs r0, 0x1 movs r1, 0xE movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 b _08059A76 .pool _08059A6C: movs r0, 0x1 movs r1, 0xD movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 _08059A76: bl PlayerBufferExecCompleted _08059A7A: @@ -8658,7 +8658,7 @@ sub_805C158: @ 805C158 lsrs r2, 16 movs r0, 0x1 movs r1, 0xA - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 bl PlayerBufferExecCompleted _0805C194: pop {r0} @@ -9378,7 +9378,7 @@ sub_805C80C: @ 805C80C movs r0, 0x1 movs r1, 0 movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 bl PlayerBufferExecCompleted pop {r0} bx r0 diff --git a/asm/battle_controller_player_partner.s b/asm/battle_controller_player_partner.s index 0ddd2a924..269e5347b 100644 --- a/asm/battle_controller_player_partner.s +++ b/asm/battle_controller_player_partner.s @@ -645,7 +645,7 @@ _081BB2E2: lsrs r2, 16 movs r0, 0x1 movs r1, 0xB - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 strb r5, [r4] bl battle_type_is_double lsls r0, 24 @@ -918,7 +918,7 @@ _081BB514: lsrs r2, 16 movs r0, 0x1 movs r1, 0xB - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 strb r5, [r4] ldr r0, =sub_81BB628 str r0, [r6] @@ -5068,7 +5068,7 @@ _081BDB3C: orrs r2, r5 movs r0, 0x1 movs r1, 0xA - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 bl PlayerPartnerBufferExecCompleted pop {r4-r6} pop {r0} diff --git a/asm/battle_controller_recorded_opponent.s b/asm/battle_controller_recorded_opponent.s index 152dfca9c..c55bf641f 100644 --- a/asm/battle_controller_recorded_opponent.s +++ b/asm/battle_controller_recorded_opponent.s @@ -4754,7 +4754,7 @@ sub_8188EF0: @ 8188EF0 lsrs r1, 24 movs r0, 0x1 movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 bl RecordedOpponentBufferExecCompleted pop {r0} bx r0 @@ -4785,7 +4785,7 @@ sub_8188F20: @ 8188F20 lsrs r2, 16 movs r0, 0x1 movs r1, 0xA - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 b _08188F6C .pool _08188F48: @@ -4803,7 +4803,7 @@ _08188F48: orrs r2, r4 movs r0, 0x1 movs r1, 0xA - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 _08188F6C: bl RecordedOpponentBufferExecCompleted pop {r4,r5} diff --git a/asm/battle_controller_recorded_player.s b/asm/battle_controller_recorded_player.s index a2ea742b7..836ff5b95 100644 --- a/asm/battle_controller_recorded_player.s +++ b/asm/battle_controller_recorded_player.s @@ -4861,7 +4861,7 @@ sub_818C49C: @ 818C49C lsrs r1, 24 movs r0, 0x1 movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 bl RecordedPlayerBufferExecCompleted _0818C4C6: pop {r0} @@ -4897,7 +4897,7 @@ _0818C508: lsrs r1, 24 movs r0, 0x1 movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 bl RecordedPlayerBufferExecCompleted _0818C522: pop {r0} @@ -4929,7 +4929,7 @@ sub_818C538: @ 818C538 lsrs r2, 16 movs r0, 0x1 movs r1, 0xA - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 b _0818C584 .pool _0818C560: @@ -4947,7 +4947,7 @@ _0818C560: orrs r2, r4 movs r0, 0x1 movs r1, 0xA - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 _0818C584: bl RecordedPlayerBufferExecCompleted pop {r4,r5} diff --git a/asm/battle_controller_safari.s b/asm/battle_controller_safari.s index a5acca8c1..c3fbd0aad 100644 --- a/asm/battle_controller_safari.s +++ b/asm/battle_controller_safari.s @@ -103,13 +103,13 @@ _0815942A: movs r1, 0x7 _0815942E: movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 b _08159440 _08159436: movs r0, 0x1 movs r1, 0x8 movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 _08159440: bl SafariBufferExecCompleted b _0815954E diff --git a/asm/battle_controller_wally.s b/asm/battle_controller_wally.s index 64c8b4442..f80292bcc 100644 --- a/asm/battle_controller_wally.s +++ b/asm/battle_controller_wally.s @@ -153,7 +153,7 @@ _081684CE: movs r1, 0x9 _081684E4: movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 bl WallyBufferExecCompleted ldr r1, [r4] adds r1, 0x94 @@ -208,7 +208,7 @@ _08168540: movs r0, 0x1 movs r1, 0x1 movs r2, 0 - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 bl WallyBufferExecCompleted _08168564: pop {r4,r5} @@ -3777,7 +3777,7 @@ _0816A550: lsls r2, 1 movs r0, 0x1 movs r1, 0xA - bl dp01_build_cmdbuf_x21_a_bb + bl EmitCmd_x21 bl WallyBufferExecCompleted _0816A574: pop {r4} diff --git a/asm/rom3.s b/asm/rom3.s index bde493568..649097eb6 100644 --- a/asm/rom3.s +++ b/asm/rom3.s @@ -3259,8 +3259,8 @@ _0803413E: .pool thumb_func_end sub_8034110 - thumb_func_start dp01_build_cmdbuf_x21_a_bb -dp01_build_cmdbuf_x21_a_bb: @ 8034158 + thumb_func_start EmitCmd_x21 +EmitCmd_x21: @ 8034158 push {r4,lr} adds r4, r1, 0 lsls r0, 24 @@ -3280,7 +3280,7 @@ dp01_build_cmdbuf_x21_a_bb: @ 8034158 pop {r0} bx r0 .pool - thumb_func_end dp01_build_cmdbuf_x21_a_bb + thumb_func_end EmitCmd_x21 thumb_func_start dp01_build_cmdbuf_x22_a_three_bytes dp01_build_cmdbuf_x22_a_three_bytes: @ 8034184 diff --git a/include/battle_controllers.h b/include/battle_controllers.h index eea544b55..e36c95fbe 100644 --- a/include/battle_controllers.h +++ b/include/battle_controllers.h @@ -84,5 +84,6 @@ void Emit_x32(u8 bufferId); void EmitPrintString(u8 bufferId, u16 stringId); void EmitResetActionMoveSelection(u8 bufferId, u8 caseId); void EmitBallThrow(u8 bufferId, u8 caseId); +void EmitCmd_x21(u8 bufferId, u8 arg1, u16 arg2); #endif // GUARD_BATTLE_CONTROLLERS_H diff --git a/include/battle_script_commands.h b/include/battle_script_commands.h index ae0d20f28..590944f02 100644 --- a/include/battle_script_commands.h +++ b/include/battle_script_commands.h @@ -43,7 +43,7 @@ void AI_CalcDmg(u8 bankAtk, u8 bankDef); u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef); -u8 AI_TypeCalc(u16 move, u16 species, u8 ability); +u8 AI_TypeCalc(u16 move, u16 targetSpecies, u8 targetAbility); u8 BankGetTurnOrder(u8 bank); void SetMoveEffect(bool8 primary, u8 certain); void BattleDestroyCursorAt(u8 cursorPosition); diff --git a/ld_script.txt b/ld_script.txt index 3e47864f1..1da43ff9d 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -64,6 +64,7 @@ SECTIONS { asm/battle_controller_player.o(.text); asm/battle_7.o(.text); asm/battle_controller_opponent.o(.text); + src/battle_9.o(.text); asm/battle_9.o(.text); asm/battle_controller_linkopponent.o(.text); src/pokemon_1.o(.text); diff --git a/src/battle_9.c b/src/battle_9.c new file mode 100644 index 000000000..1b1a4ab7c --- /dev/null +++ b/src/battle_9.c @@ -0,0 +1,525 @@ +#include "global.h" +#include "battle.h" +#include "battle_controllers.h" +#include "abilities.h" +#include "moves.h" +#include "pokemon.h" +#include "species.h" +#include "rng.h" +#include "util.h" + +extern u8 gActiveBank; +extern u8 gAbsentBankFlags; +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 const struct BattleMove gBattleMoves[]; +extern const struct BaseStats gBaseStats[]; + +// this file's functions +bool8 HasSuperEffectiveMoveAgainstOpponents(bool8 noRng); +bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent); + +bool8 ShouldSwitchIfPerishSong(void) +{ + if (gStatuses3[gActiveBank] & STATUS3_PERISH_SONG + && gDisableStructs[gActiveBank].perishSong1 == 0) + { + *(gBattleStruct->field_294 + gActiveBank) = 6; + EmitCmd_x21(1, 2, 0); + return TRUE; + } + + return FALSE; +} + +bool8 ShouldSwitchIfWonderGuard(void) +{ + u8 opposingIdentity; + u8 opposingBank; + u8 moveFlags; + s32 i, j; + s32 firstId; + s32 lastId; // + 1 + struct Pokemon *party = NULL; + u16 move; + + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + return FALSE; + + opposingIdentity = GetBankIdentity(gActiveBank) ^ BIT_SIDE; + + if (gBattleMons[GetBankByIdentity(opposingIdentity)].ability != ABILITY_WONDER_GUARD) + return FALSE; + + // check if pokemon has a super effective move + for (opposingBank = GetBankByIdentity(opposingIdentity), i = 0; i < 4; i++) + { + move = gBattleMons[gActiveBank].moves[i]; + if (move == MOVE_NONE) + continue; + + moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability); + if (moveFlags & MOVESTATUS_SUPEREFFECTIVE) + return FALSE; + } + + // get party information + if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) + { + if ((gActiveBank & BIT_MON) == 0) + firstId = 0, lastId = 3; + else + firstId = 3, lastId = 6; + } + else + { + firstId = 0, lastId = 6; + } + + if (GetBankSide(gActiveBank) == SIDE_PLAYER) + party = gPlayerParty; + else + party = gEnemyParty; + + // find a pokemon in the party that has a super effective move + for (i = firstId; i < lastId; i++) + { + if (GetMonData(&party[i], MON_DATA_HP) == 0) + continue; + if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_NONE) + continue; + if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_EGG) + continue; + if (i == gBattlePartyID[gActiveBank]) + continue; + + GetMonData(&party[i], MON_DATA_SPECIES); // unused return value + GetMonData(&party[i], MON_DATA_ALT_ABILITY); // unused return value + + for (opposingBank = GetBankByIdentity(opposingIdentity), j = 0; j < 4; j++) + { + move = GetMonData(&party[i], MON_DATA_MOVE1 + j); + if (move == MOVE_NONE) + continue; + + moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability); + if (moveFlags & MOVESTATUS_SUPEREFFECTIVE && Random() % 3 < 2) + { + // we found a mon + *(gBattleStruct->field_294 + gActiveBank) = i; + EmitCmd_x21(1, 2, 0); + return TRUE; + } + } + } + + return FALSE; // at this point there is not a single pokemon in the party that has a super effective move against a pokemon with wonder guard +} + +bool8 sub_8062E54(void) +{ + u8 bankIn1, bankIn2; + u8 absorbingTypeAbility; + s32 firstId; + s32 lastId; // + 1 + struct Pokemon *party; + s32 i; + + if (HasSuperEffectiveMoveAgainstOpponents(TRUE) && Random() % 3 != 0) + return FALSE; + if (gUnknown_02024250[gActiveBank] == 0) + return FALSE; + if (gUnknown_02024250[gActiveBank] == 0xFFFF) + return FALSE; + if (gBattleMoves[gUnknown_02024250[gActiveBank]].power == 0) + return FALSE; + + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + bankIn1 = gActiveBank; + if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)]) + bankIn2 = gActiveBank; + else + bankIn2 = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON); + } + else + { + bankIn1 = gActiveBank; + bankIn2 = gActiveBank; + } + + if (gBattleMoves[gUnknown_02024250[gActiveBank]].type == TYPE_FIRE) + absorbingTypeAbility = ABILITY_FLASH_FIRE; + else if (gBattleMoves[gUnknown_02024250[gActiveBank]].type == TYPE_WATER) + absorbingTypeAbility = ABILITY_WATER_ABSORB; + else if (gBattleMoves[gUnknown_02024250[gActiveBank]].type == TYPE_ELECTRIC) + absorbingTypeAbility = ABILITY_VOLT_ABSORB; + else + return FALSE; + + if (gBattleMons[gActiveBank].ability == absorbingTypeAbility) + return FALSE; + + if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) + { + if ((gActiveBank & BIT_MON) == 0) + firstId = 0, lastId = 3; + else + firstId = 3, lastId = 6; + } + else + { + firstId = 0, lastId = 6; + } + + if (GetBankSide(gActiveBank) == SIDE_PLAYER) + party = gPlayerParty; + else + party = gEnemyParty; + + for (i = firstId; i < lastId; i++) + { + u16 species; + u8 monAbility; + + if (GetMonData(&party[i], MON_DATA_HP) == 0) + continue; + if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_NONE) + continue; + if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_EGG) + continue; + if (i == gBattlePartyID[bankIn1]) + continue; + if (i == gBattlePartyID[bankIn2]) + continue; + if (i == *(gBattleStruct->field_5C + bankIn1)) + continue; + if (i == *(gBattleStruct->field_5C + bankIn2)) + continue; + + species = GetMonData(&party[i], MON_DATA_SPECIES); + if (GetMonData(&party[i], MON_DATA_ALT_ABILITY) != 0) + monAbility = gBaseStats[species].ability2; + else + monAbility = gBaseStats[species].ability1; + + if (absorbingTypeAbility == monAbility && Random() & 1) + { + // we found a mon + *(gBattleStruct->field_294 + gActiveBank) = i; + EmitCmd_x21(1, 2, 0); + return TRUE; + } + } + + return FALSE; +} + +bool8 ShouldSwitchIfNaturalCure(void) +{ + if (!(gBattleMons[gActiveBank].status1 & STATUS_SLEEP)) + return FALSE; + if (gBattleMons[gActiveBank].ability != ABILITY_NATURAL_CURE) + return FALSE; + if (gBattleMons[gActiveBank].hp < gBattleMons[gActiveBank].maxHP / 2) + return FALSE; + + if ((gUnknown_02024250[gActiveBank] == 0 || gUnknown_02024250[gActiveBank] == 0xFFFF) && Random() & 1) + { + *(gBattleStruct->field_294 + gActiveBank) = 6; + EmitCmd_x21(1, 2, 0); + return TRUE; + } + else if (gBattleMoves[gUnknown_02024250[gActiveBank]].power == 0 && Random() & 1) + { + *(gBattleStruct->field_294 + gActiveBank) = 6; + EmitCmd_x21(1, 2, 0); + return TRUE; + } + + if (FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTAFFECTED, 1)) + return TRUE; + if (FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTVERYEFFECTIVE, 1)) + return TRUE; + if (Random() & 1) + { + *(gBattleStruct->field_294 + gActiveBank) = 6; + EmitCmd_x21(1, 2, 0); + return TRUE; + } + + return FALSE; +} + +bool8 HasSuperEffectiveMoveAgainstOpponents(bool8 noRng) +{ + u8 opposingIdentity; + u8 opposingBank; + s32 i; + u8 moveFlags; + u16 move; + + opposingIdentity = GetBankIdentity(gActiveBank) ^ BIT_SIDE; + opposingBank = GetBankByIdentity(opposingIdentity); + + if (!(gAbsentBankFlags & gBitTable[opposingBank])) + { + for (i = 0; i < 4; i++) + { + move = gBattleMons[gActiveBank].moves[i]; + if (move == MOVE_NONE) + continue; + + moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability); + if (moveFlags & MOVESTATUS_SUPEREFFECTIVE) + { + if (noRng) + return TRUE; + if (Random() % 10 != 0) + return TRUE; + } + } + } + if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) + return FALSE; + + opposingBank = GetBankByIdentity(opposingIdentity ^ BIT_MON); + + if (!(gAbsentBankFlags & gBitTable[opposingBank])) + { + for (i = 0; i < 4; i++) + { + move = gBattleMons[gActiveBank].moves[i]; + if (move == MOVE_NONE) + continue; + + moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability); + if (moveFlags & MOVESTATUS_SUPEREFFECTIVE) + { + if (noRng) + return TRUE; + if (Random() % 10 != 0) + return TRUE; + } + } + } + + return FALSE; +} + +bool8 AreStatsRaised(void) +{ + u8 buffedStatsValue = 0; + s32 i; + + for (i = 0; i < BATTLE_STATS_NO; i++) + { + if (gBattleMons[gActiveBank].statStages[i] > 6) + buffedStatsValue += gBattleMons[gActiveBank].statStages[i] - 6; + } + + return (buffedStatsValue > 3); +} + +bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent) +{ + u8 bankIn1, bankIn2; + s32 firstId; + s32 lastId; // + 1 + struct Pokemon *party; + s32 i, j; + u16 move; + u8 moveFlags; + + if (gUnknown_02024250[gActiveBank] == 0) + return FALSE; + if (gUnknown_02024250[gActiveBank] == 0xFFFF) + return FALSE; + if (gUnknown_02024270[gActiveBank] == 0xFF) + return FALSE; + if (gBattleMoves[gUnknown_02024250[gActiveBank]].power == 0) + return FALSE; + + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + bankIn1 = gActiveBank; + if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)]) + bankIn2 = gActiveBank; + else + bankIn2 = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON); + } + else + { + bankIn1 = gActiveBank; + bankIn2 = gActiveBank; + } + + if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) + { + if ((gActiveBank & BIT_MON) == 0) + firstId = 0, lastId = 3; + else + firstId = 3, lastId = 6; + } + else + { + firstId = 0, lastId = 6; + } + + if (GetBankSide(gActiveBank) == SIDE_PLAYER) + party = gPlayerParty; + else + party = gEnemyParty; + + for (i = firstId; i < lastId; i++) + { + u16 species; + u8 monAbility; + + if (GetMonData(&party[i], MON_DATA_HP) == 0) + continue; + if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_NONE) + continue; + if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_EGG) + continue; + if (i == gBattlePartyID[bankIn1]) + continue; + if (i == gBattlePartyID[bankIn2]) + continue; + if (i == *(gBattleStruct->field_5C + bankIn1)) + continue; + if (i == *(gBattleStruct->field_5C + bankIn2)) + continue; + + species = GetMonData(&party[i], MON_DATA_SPECIES); + if (GetMonData(&party[i], MON_DATA_ALT_ABILITY) != 0) + monAbility = gBaseStats[species].ability2; + else + monAbility = gBaseStats[species].ability1; + + moveFlags = AI_TypeCalc(gUnknown_02024250[gActiveBank], species, monAbility); + if (moveFlags & flags) + { + bankIn1 = gUnknown_02024270[gActiveBank]; + + for (j = 0; j < 4; j++) + { + move = GetMonData(&party[i], MON_DATA_MOVE1 + j); + if (move == 0) + continue; + + moveFlags = AI_TypeCalc(move, gBattleMons[bankIn1].species, gBattleMons[bankIn1].ability); + if (moveFlags & MOVESTATUS_SUPEREFFECTIVE && Random() % moduloPercent == 0) + { + *(gBattleStruct->field_294 + gActiveBank) = i; + EmitCmd_x21(1, 2, 0); + return TRUE; + } + } + } + } + + return FALSE; +} + +bool8 ShouldSwitch(void) +{ + u8 bankIn1, bankIn2; + s32 firstId; + s32 lastId; // + 1 + struct Pokemon *party; + s32 i; + s32 availableToSwitch; + + if (gBattleMons[gActiveBank].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)) + return FALSE; + if (gStatuses3[gActiveBank] & STATUS3_ROOTED) + return FALSE; + if (AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBank, ABILITY_SHADOW_TAG, 0, 0)) + return FALSE; + if (AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBank, ABILITY_ARENA_TRAP, 0, 0)) + return FALSE; // misses the flying or levitate check + if (AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, gActiveBank, ABILITY_MAGNET_PULL, 0, 0) + && (gBattleMons[gActiveBank].type1 == TYPE_STEEL || gBattleMons[gActiveBank].type2 == TYPE_STEEL)) + return FALSE; + if (gBattleTypeFlags & BATTLE_TYPE_ARENA) + return FALSE; + + availableToSwitch = 0; + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + bankIn1 = gActiveBank; + if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)]) + bankIn2 = gActiveBank; + else + bankIn2 = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON); + } + else + { + bankIn1 = gActiveBank; + bankIn2 = gActiveBank; + } + + if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) + { + if ((gActiveBank & BIT_MON) == 0) + firstId = 0, lastId = 3; + else + firstId = 3, lastId = 6; + } + else + { + firstId = 0, lastId = 6; + } + + if (GetBankSide(gActiveBank) == SIDE_PLAYER) + party = gPlayerParty; + else + party = gEnemyParty; + + for (i = firstId; i < lastId; i++) + { + if (GetMonData(&party[i], MON_DATA_HP) == 0) + continue; + if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_NONE) + continue; + if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_EGG) + continue; + if (i == gBattlePartyID[bankIn1]) + continue; + if (i == gBattlePartyID[bankIn2]) + continue; + if (i == *(gBattleStruct->field_5C + bankIn1)) + continue; + if (i == *(gBattleStruct->field_5C + bankIn2)) + continue; + + availableToSwitch++; + } + + if (availableToSwitch == 0) + return FALSE; + if (ShouldSwitchIfPerishSong()) + return TRUE; + if (ShouldSwitchIfWonderGuard()) + return TRUE; + if (sub_8062E54()) + return TRUE; + if (ShouldSwitchIfNaturalCure()) + return TRUE; + if (HasSuperEffectiveMoveAgainstOpponents(FALSE)) + return FALSE; + if (AreStatsRaised()) + return FALSE; + if (FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTAFFECTED, 2)) + return TRUE; + if (FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTVERYEFFECTIVE, 3)) + return TRUE; + + return FALSE; +} diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 17b0e2ff9..50ae5bafe 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -1772,11 +1772,11 @@ u8 TypeCalc(u16 move, u8 bankAtk, u8 bankDef) return flags; } -u8 AI_TypeCalc(u16 move, u16 species, u8 ability) +u8 AI_TypeCalc(u16 move, u16 targetSpecies, u8 targetAbility) { s32 i = 0; u8 flags = 0; - u8 type1 = gBaseStats[species].type1, type2 = gBaseStats[species].type2; + u8 type1 = gBaseStats[targetSpecies].type1, type2 = gBaseStats[targetSpecies].type2; u8 moveType; if (move == MOVE_STRUGGLE) @@ -1784,7 +1784,7 @@ u8 AI_TypeCalc(u16 move, u16 species, u8 ability) moveType = gBattleMoves[move].type; - if (ability == ABILITY_LEVITATE && moveType == TYPE_GROUND) + if (targetAbility == ABILITY_LEVITATE && moveType == TYPE_GROUND) { flags = MOVESTATUS_MISSED | MOVESTATUS_NOTAFFECTED; } @@ -1809,7 +1809,7 @@ u8 AI_TypeCalc(u16 move, u16 species, u8 ability) i += 3; } } - if (ability == ABILITY_WONDER_GUARD + if (targetAbility == ABILITY_WONDER_GUARD && (!(flags & MOVESTATUS_SUPEREFFECTIVE) || ((flags & (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE)) == (MOVESTATUS_SUPEREFFECTIVE | MOVESTATUS_NOTVERYEFFECTIVE))) && gBattleMoves[move].power) flags |= MOVESTATUS_NOTAFFECTED; -- cgit v1.2.3 From 6dfe8ced2cb516202f2934bf02762503f55fd8da Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Tue, 10 Oct 2017 21:45:07 +0200 Subject: ai switching basically done --- asm/battle_9.s | 726 +-------------------------------- asm/battle_controller_opponent.s | 4 +- asm/battle_controller_player_partner.s | 4 +- include/battle.h | 1 + include/battle_ai_switch_items.h | 7 + src/battle_9.c | 299 +++++++++++++- 6 files changed, 299 insertions(+), 742 deletions(-) create mode 100644 include/battle_ai_switch_items.h diff --git a/asm/battle_9.s b/asm/battle_9.s index 6d77d1593..0cf529bcc 100644 --- a/asm/battle_9.s +++ b/asm/battle_9.s @@ -5,726 +5,6 @@ .text - thumb_func_start sub_8063880 -sub_8063880: @ 8063880 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r4, =gActiveBank - ldrb r0, [r4] - bl GetBankIdentity - lsls r0, 24 - lsrs r6, r0, 24 - adds r5, r6, 0 - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - ldr r1, =gEnemyParty - mov r8, r1 - cmp r0, 0 - bne _080638A8 - ldr r2, =gPlayerParty - mov r8, r2 -_080638A8: - ldr r7, =gBattleTypeFlags - ldr r0, [r7] - movs r1, 0x8 - ands r0, r1 - cmp r0, 0 - bne _080638B6 - b _080639E6 -_080638B6: - bl ShouldSwitch - lsls r0, 24 - cmp r0, 0 - bne _080638C2 - b _080639DC -_080638C2: - ldrb r0, [r4] - ldr r2, =gBattleStruct - ldr r1, [r2] - adds r0, r1 - movs r1, 0xA5 - lsls r1, 2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x6 - bne _080639B8 - bl sub_8063A90 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x6 - bne _080639A6 - ldr r0, [r7] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08063910 - adds r0, r6, 0 - bl GetBankByIdentity - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - b _08063928 - .pool -_08063910: - adds r0, r5, 0 - bl GetBankByIdentity - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0x2 - eors r5, r0 - adds r0, r5, 0 - bl GetBankByIdentity - lsls r0, 24 - lsrs r5, r0, 24 -_08063928: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - ldr r1, =0x00808000 - ands r0, r1 - cmp r0, 0 - beq _08063958 - ldr r0, =gActiveBank - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08063954 - movs r0, 0 - movs r7, 0x3 - b _0806395C - .pool -_08063954: - movs r0, 0x3 - b _0806395A -_08063958: - movs r0, 0 -_0806395A: - movs r7, 0x6 -_0806395C: - adds r4, r0, 0 - cmp r4, r7 - bge _080639A6 -_08063962: - movs r0, 0x64 - muls r0, r4 - add r0, r8 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _080639A0 - ldr r1, =gBattlePartyID - lsls r0, r6, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r4, r0 - beq _080639A0 - lsls r0, r5, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r4, r0 - beq _080639A0 - ldr r0, =gBattleStruct - ldr r1, [r0] - adds r0, r6, r1 - adds r0, 0x5C - ldrb r0, [r0] - cmp r4, r0 - beq _080639A0 - adds r0, r5, r1 - adds r0, 0x5C - ldrb r0, [r0] - cmp r4, r0 - bne _080639A6 -_080639A0: - adds r4, 0x1 - cmp r4, r7 - blt _08063962 -_080639A6: - ldr r0, =gActiveBank - ldrb r0, [r0] - ldr r2, =gBattleStruct - ldr r1, [r2] - adds r0, r1 - movs r1, 0xA5 - lsls r1, 2 - adds r0, r1 - strb r4, [r0] -_080639B8: - ldr r0, =gActiveBank - ldrb r1, [r0] - ldr r0, [r2] - adds r0, r1, r0 - adds r1, r0, 0 - adds r1, 0x5C - movs r2, 0xA5 - lsls r2, 2 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - b _080639F8 - .pool -_080639DC: - bl sub_8063EE0 - lsls r0, 24 - cmp r0, 0 - bne _080639F8 -_080639E6: - ldr r0, =gActiveBank - ldrb r0, [r0] - movs r2, 0x1 - eors r2, r0 - lsls r2, 8 - movs r0, 0x1 - movs r1, 0 - bl EmitCmd_x21 -_080639F8: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8063880 - - thumb_func_start sub_8063A08 -sub_8063A08: @ 8063A08 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r6, r3, 0 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - lsls r2, 24 - lsrs r2, 24 - mov r8, r2 - movs r7, 0 - ldr r0, =gTypeEffectiveness - mov r10, r0 - ldrb r0, [r0] - cmp r0, 0xFF - beq _08063A7A - mov r5, r10 -_08063A36: - ldrb r0, [r5] - cmp r0, 0xFE - beq _08063A6C - ldr r1, [sp] - cmp r0, r1 - bne _08063A6C - ldrb r4, [r5, 0x1] - cmp r4, r9 - bne _08063A56 - ldrb r1, [r6] - ldrb r0, [r5, 0x2] - muls r0, r1 - movs r1, 0xA - bl __divsi3 - strb r0, [r6] -_08063A56: - cmp r4, r8 - bne _08063A6C - cmp r9, r8 - beq _08063A6C - ldrb r1, [r6] - ldrb r0, [r5, 0x2] - muls r0, r1 - movs r1, 0xA - bl __divsi3 - strb r0, [r6] -_08063A6C: - adds r5, 0x3 - adds r7, 0x3 - mov r1, r10 - adds r0, r7, r1 - ldrb r0, [r0] - cmp r0, 0xFF - bne _08063A36 -_08063A7A: - 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_8063A08 - - thumb_func_start sub_8063A90 -sub_8063A90: @ 8063A90 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - ldr r4, =gActiveBank - ldrb r2, [r4] - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, r2, r0 - adds r1, r0, 0 - adds r1, 0x5C - ldrb r0, [r1] - cmp r0, 0x6 - beq _08063AB2 - b _08063E50 -_08063AB2: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 11 - ands r0, r1 - cmp r0, 0 - beq _08063AE0 - ldr r1, =gBattlePartyID - lsls r0, r2, 1 - adds r0, r1 - ldrb r0, [r0] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - b _08063E50 - .pool -_08063AE0: - movs r0, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08063B6C - str r2, [sp, 0x10] - adds r0, r2, 0 - bl GetBankIdentity - movs r5, 0x2 - eors r0, r5 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByIdentity - ldr r1, =gAbsentBankFlags - ldrb r1, [r1] - ldr r2, =gBitTable - lsls r0, 24 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08063B20 - ldrb r4, [r4] - str r4, [sp, 0x14] - b _08063B36 - .pool -_08063B20: - ldrb r0, [r4] - bl GetBankIdentity - eors r0, r5 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByIdentity - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x14] -_08063B36: - bl Random - movs r3, 0x2 - ands r0, r3 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - ldr r0, =gAbsentBankFlags - ldrb r1, [r0] - ldr r2, =gBitTable - ldr r4, [sp, 0x4] - lsls r0, r4, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08063B8A - eors r4, r3 - lsls r0, r4, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - b _08063B8A - .pool -_08063B6C: - adds r0, r2, 0 - bl GetBankIdentity - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByIdentity - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - ldrb r4, [r4] - str r4, [sp, 0x14] - str r4, [sp, 0x10] -_08063B8A: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - ldr r1, =0x00808000 - ands r0, r1 - cmp r0, 0 - beq _08063BC2 - ldr r2, =gActiveBank - ldrb r1, [r2] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08063BB8 - movs r0, 0 - str r0, [sp, 0x18] - movs r1, 0x3 - str r1, [sp, 0x1C] - b _08063BCC - .pool -_08063BB8: - movs r4, 0x3 - str r4, [sp, 0x18] - movs r0, 0x6 - str r0, [sp, 0x1C] - b _08063BCC -_08063BC2: - movs r1, 0 - str r1, [sp, 0x18] - movs r2, 0x6 - str r2, [sp, 0x1C] - ldr r2, =gActiveBank -_08063BCC: - ldrb r0, [r2] - bl GetBankSide - lsls r0, 24 - ldr r4, =gEnemyParty - str r4, [sp, 0x20] - cmp r0, 0 - bne _08063BE0 - ldr r0, =gPlayerParty - str r0, [sp, 0x20] -_08063BE0: - movs r1, 0 - mov r9, r1 -_08063BE4: - movs r2, 0 - str r2, [sp, 0x8] - movs r4, 0x6 - str r4, [sp, 0xC] - ldr r7, [sp, 0x18] - ldr r0, [sp, 0x1C] - cmp r7, r0 - blt _08063BF6 - b _08063CF2 -_08063BF6: - lsls r0, r7, 2 - ldr r1, =gBitTable - adds r0, r1 - mov r8, r0 - mov r10, sp -_08063C00: - movs r0, 0x64 - muls r0, r7 - ldr r2, [sp, 0x20] - adds r4, r2, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - beq _08063CD8 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08063CD8 - mov r4, r8 - ldr r0, [r4] - mov r1, r9 - ands r0, r1 - cmp r0, 0 - bne _08063CD8 - ldr r1, =gBattlePartyID - ldr r2, [sp, 0x10] - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r7 - beq _08063CD8 - ldr r4, [sp, 0x14] - lsls r0, r4, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r7 - beq _08063CD8 - ldr r0, =gBattleStruct - ldr r1, [r0] - adds r0, r2, r1 - adds r0, 0x5C - ldrb r0, [r0] - cmp r7, r0 - beq _08063CD8 - adds r0, r4, r1 - adds r0, 0x5C - ldrb r0, [r0] - cmp r7, r0 - beq _08063CD8 - ldr r1, =gBaseStats - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - adds r0, r1 - ldrb r5, [r0, 0x6] - ldrb r6, [r0, 0x7] - movs r0, 0xA - mov r1, r10 - strb r0, [r1] - movs r0, 0x58 - ldr r2, [sp, 0x4] - adds r4, r2, 0 - muls r4, r0 - ldr r0, =gBattleMons - adds r4, r0 - adds r0, r4, 0 - adds r0, 0x21 - ldrb r0, [r0] - adds r1, r5, 0 - adds r2, r6, 0 - mov r3, sp - bl sub_8063A08 - adds r4, 0x22 - ldrb r0, [r4] - adds r1, r5, 0 - adds r2, r6, 0 - mov r3, sp - bl sub_8063A08 - ldr r2, [sp, 0x8] - mov r1, r10 - ldrb r1, [r1] - cmp r2, r1 - bcs _08063CE6 - mov r2, r10 - ldrb r2, [r2] - str r2, [sp, 0x8] - lsls r0, r7, 24 - lsrs r0, 24 - str r0, [sp, 0xC] - b _08063CE6 - .pool -_08063CD8: - mov r4, r8 - ldr r0, [r4] - mov r1, r9 - orrs r1, r0 - lsls r0, r1, 24 - lsrs r0, 24 - mov r9, r0 -_08063CE6: - movs r2, 0x4 - add r8, r2 - adds r7, 0x1 - ldr r4, [sp, 0x1C] - cmp r7, r4 - blt _08063C00 -_08063CF2: - ldr r0, [sp, 0xC] - cmp r0, 0x6 - beq _08063D54 - movs r7, 0 - movs r0, 0x64 - ldr r1, [sp, 0xC] - adds r5, r1, 0 - muls r5, r0 -_08063D02: - adds r1, r7, 0 - adds r1, 0xD - ldr r2, [sp, 0x20] - adds r0, r2, r5 - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0 - beq _08063D2A - ldr r0, =gActiveBank - ldrb r1, [r0] - adds r0, r4, 0 - ldr r2, [sp, 0x4] - bl TypeCalc - movs r1, 0x2 - ands r1, r0 - cmp r1, 0 - bne _08063D30 -_08063D2A: - adds r7, 0x1 - cmp r7, 0x3 - ble _08063D02 -_08063D30: - cmp r7, 0x4 - beq _08063D36 - b _08063E4E -_08063D36: - ldr r4, [sp, 0xC] - lsls r0, r4, 2 - ldr r1, =gBitTable - adds r0, r1 - ldr r0, [r0] - mov r2, r9 - orrs r2, r0 - lsls r0, r2, 24 - lsrs r0, 24 - mov r9, r0 - b _08063D58 - .pool -_08063D54: - movs r4, 0x3F - mov r9, r4 -_08063D58: - mov r0, r9 - cmp r0, 0x3F - beq _08063D60 - b _08063BE4 -_08063D60: - ldr r0, =gDynamicBasePower - movs r1, 0 - strh r1, [r0] - ldr r0, =gBattleStruct - ldr r0, [r0] - strb r1, [r0, 0x13] - ldr r0, =gBattleScripting - movs r2, 0x1 - strb r2, [r0, 0xE] - ldr r0, =gBattleMoveFlags - strb r1, [r0] - ldr r0, =gCritMultiplier - strb r2, [r0] - movs r1, 0 - str r1, [sp, 0x8] - movs r2, 0x6 - str r2, [sp, 0xC] - ldr r7, [sp, 0x18] - ldr r4, [sp, 0x1C] - cmp r7, r4 - bge _08063E4E -_08063D8A: - movs r0, 0x64 - adds r6, r7, 0 - muls r6, r0 - ldr r0, [sp, 0x20] - adds r4, r0, r6 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - lsls r0, 16 - adds r1, r7, 0x1 - mov r10, r1 - cmp r0, 0 - beq _08063E46 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08063E46 - ldr r1, =gBattlePartyID - ldr r2, [sp, 0x10] - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r7 - beq _08063E46 - ldr r4, [sp, 0x14] - lsls r0, r4, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r7 - beq _08063E46 - ldr r0, =gBattleStruct - ldr r1, [r0] - adds r0, r2, r1 - adds r0, 0x5C - ldrb r0, [r0] - cmp r7, r0 - beq _08063E46 - adds r0, r4, r1 - adds r0, 0x5C - ldrb r0, [r0] - cmp r7, r0 - beq _08063E46 - movs r5, 0 - mov r9, r6 - ldr r0, =gBattleMoveDamage - mov r8, r0 - ldr r6, =gActiveBank -_08063DEE: - adds r1, r5, 0 - adds r1, 0xD - ldr r0, [sp, 0x20] - add r0, r9 - bl GetMonData - lsls r0, 16 - lsrs r4, r0, 16 - movs r0, 0 - mov r1, r8 - str r0, [r1] - cmp r4, 0 - beq _08063E2A - ldr r0, =gBattleMoves - lsls r1, r4, 1 - adds r1, r4 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x1] - cmp r0, 0x1 - beq _08063E2A - ldrb r0, [r6] - ldr r1, [sp, 0x4] - bl AI_CalcDmg - ldrb r1, [r6] - adds r0, r4, 0 - ldr r2, [sp, 0x4] - bl TypeCalc -_08063E2A: - mov r2, r8 - ldr r0, [r2] - ldr r4, [sp, 0x8] - cmp r4, r0 - bge _08063E40 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x8] - lsls r0, r7, 24 - lsrs r0, 24 - str r0, [sp, 0xC] -_08063E40: - adds r5, 0x1 - cmp r5, 0x3 - ble _08063DEE -_08063E46: - mov r7, r10 - ldr r0, [sp, 0x1C] - cmp r7, r0 - blt _08063D8A -_08063E4E: - ldr r0, [sp, 0xC] -_08063E50: - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8063A90 thumb_func_start ai_identify_item_effect ai_identify_item_effect: @ 8063E84 @@ -783,8 +63,8 @@ _08063EDA: bx r1 thumb_func_end ai_identify_item_effect - thumb_func_start sub_8063EE0 -sub_8063EE0: @ 8063EE0 + thumb_func_start ShouldUseItem +ShouldUseItem: @ 8063EE0 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -1361,6 +641,6 @@ _0806437E: pop {r4-r7} pop {r1} bx r1 - thumb_func_end sub_8063EE0 + thumb_func_end ShouldUseItem .align 2, 0 @ Don't pad with nop. diff --git a/asm/battle_controller_opponent.s b/asm/battle_controller_opponent.s index 3fbeac5c1..896d86d3a 100644 --- a/asm/battle_controller_opponent.s +++ b/asm/battle_controller_opponent.s @@ -5212,7 +5212,7 @@ sub_8061F90: @ 8061F90 thumb_func_start sub_8061F9C sub_8061F9C: @ 8061F9C push {lr} - bl sub_8063880 + bl AI_TrySwitchOrUseItem bl OpponentBufferExecCompleted pop {r0} bx r0 @@ -5456,7 +5456,7 @@ sub_8062188: @ 8062188 ldrb r0, [r1] cmp r0, 0x6 bne _08062254 - bl sub_8063A90 + bl GetMostSuitableMonToSwitchInto lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x6 diff --git a/asm/battle_controller_player_partner.s b/asm/battle_controller_player_partner.s index 269e5347b..8c080500e 100644 --- a/asm/battle_controller_player_partner.s +++ b/asm/battle_controller_player_partner.s @@ -4990,7 +4990,7 @@ sub_81BDAA0: @ 81BDAA0 thumb_func_start sub_81BDAAC sub_81BDAAC: @ 81BDAAC push {lr} - bl sub_8063880 + bl AI_TrySwitchOrUseItem bl PlayerPartnerBufferExecCompleted pop {r0} bx r0 @@ -5087,7 +5087,7 @@ sub_81BDB70: @ 81BDB70 thumb_func_start sub_81BDB7C sub_81BDB7C: @ 81BDB7C push {r4-r6,lr} - bl sub_8063A90 + bl GetMostSuitableMonToSwitchInto lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x6 diff --git a/include/battle.h b/include/battle.h index bb61c7043..0aa778fe2 100644 --- a/include/battle.h +++ b/include/battle.h @@ -5,6 +5,7 @@ #include "battle_util.h" #include "battle_script_commands.h" #include "battle_2.h" +#include "battle_ai_switch_items.h" /* Banks are a name given to what could be called a 'battlerId' or 'monControllerId'. diff --git a/include/battle_ai_switch_items.h b/include/battle_ai_switch_items.h new file mode 100644 index 000000000..5c78a5386 --- /dev/null +++ b/include/battle_ai_switch_items.h @@ -0,0 +1,7 @@ +#ifndef GUARD_BATTLE_AI_SWITCH_ITEMS_H +#define GUARD_BATTLE_AI_SWITCH_ITEMS_H + +void AI_TrySwitchOrUseItem(void); +u8 GetMostSuitableMonToSwitchInto(void); + +#endif // GUARD_BATTLE_AI_SWITCH_ITEMS_H diff --git a/src/battle_9.c b/src/battle_9.c index 1b1a4ab7c..291bfc9e3 100644 --- a/src/battle_9.c +++ b/src/battle_9.c @@ -16,13 +16,19 @@ 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 gDynamicBasePower; +extern u8 gBattleMoveFlags; +extern u8 gCritMultiplier; +extern s32 gBattleMoveDamage; extern const struct BattleMove gBattleMoves[]; extern const struct BaseStats gBaseStats[]; +extern const u8 gTypeEffectiveness[]; // this file's functions bool8 HasSuperEffectiveMoveAgainstOpponents(bool8 noRng); bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent); +bool8 ShouldUseItem(void); bool8 ShouldSwitchIfPerishSong(void) { @@ -121,7 +127,7 @@ bool8 ShouldSwitchIfWonderGuard(void) return FALSE; // at this point there is not a single pokemon in the party that has a super effective move against a pokemon with wonder guard } -bool8 sub_8062E54(void) +bool8 FindMonThatAbsorbsOpponentsMove(void) { u8 bankIn1, bankIn2; u8 absorbingTypeAbility; @@ -430,13 +436,14 @@ bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent) bool8 ShouldSwitch(void) { u8 bankIn1, bankIn2; + u8 *activeBankPtr; // needed to match s32 firstId; s32 lastId; // + 1 struct Pokemon *party; s32 i; s32 availableToSwitch; - if (gBattleMons[gActiveBank].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)) + if (gBattleMons[*(activeBankPtr = &gActiveBank)].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)) return FALSE; if (gStatuses3[gActiveBank] & STATUS3_ROOTED) return FALSE; @@ -444,25 +451,29 @@ bool8 ShouldSwitch(void) return FALSE; if (AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBank, ABILITY_ARENA_TRAP, 0, 0)) return FALSE; // misses the flying or levitate check - if (AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, gActiveBank, ABILITY_MAGNET_PULL, 0, 0) - && (gBattleMons[gActiveBank].type1 == TYPE_STEEL || gBattleMons[gActiveBank].type2 == TYPE_STEEL)) - return FALSE; + if (AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, ABILITY_MAGNET_PULL, 0, 0)) + { + if (gBattleMons[gActiveBank].type1 == TYPE_STEEL) + return FALSE; + if (gBattleMons[gActiveBank].type2 == TYPE_STEEL) + return FALSE; + } if (gBattleTypeFlags & BATTLE_TYPE_ARENA) return FALSE; availableToSwitch = 0; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - bankIn1 = gActiveBank; - if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)]) - bankIn2 = gActiveBank; + bankIn1 = *activeBankPtr; + if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankIdentity(*activeBankPtr) ^ BIT_MON)]) + bankIn2 = *activeBankPtr; else - bankIn2 = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON); + bankIn2 = GetBankByIdentity(GetBankIdentity(*activeBankPtr) ^ BIT_MON); } else { - bankIn1 = gActiveBank; - bankIn2 = gActiveBank; + bankIn1 = *activeBankPtr; + bankIn2 = *activeBankPtr; } if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) @@ -508,7 +519,7 @@ bool8 ShouldSwitch(void) return TRUE; if (ShouldSwitchIfWonderGuard()) return TRUE; - if (sub_8062E54()) + if (FindMonThatAbsorbsOpponentsMove()) return TRUE; if (ShouldSwitchIfNaturalCure()) return TRUE; @@ -516,10 +527,268 @@ bool8 ShouldSwitch(void) return FALSE; if (AreStatsRaised()) return FALSE; - if (FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTAFFECTED, 2)) - return TRUE; - if (FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTVERYEFFECTIVE, 3)) + if (FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTAFFECTED, 2) + || FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTVERYEFFECTIVE, 3)) return TRUE; return FALSE; } + +void AI_TrySwitchOrUseItem(void) +{ + struct Pokemon *party; + u8 bankIn1, bankIn2; + s32 firstId; + s32 lastId; // + 1 + u8 bankIdentity = GetBankIdentity(gActiveBank); + + if (GetBankSide(gActiveBank) == SIDE_PLAYER) + party = gPlayerParty; + else + party = gEnemyParty; + + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) + { + if (ShouldSwitch()) + { + if (*(gBattleStruct->field_294 + gActiveBank) == 6) + { + s32 monToSwitchId = GetMostSuitableMonToSwitchInto(); + if (monToSwitchId == 6) + { + if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) + { + bankIn1 = GetBankByIdentity(bankIdentity); + bankIn2 = bankIn1; + } + else + { + bankIn1 = GetBankByIdentity(bankIdentity); + bankIn2 = GetBankByIdentity(bankIdentity ^ BIT_MON); + } + + if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) + { + if ((gActiveBank & BIT_MON) == 0) + firstId = 0, lastId = 3; + else + firstId = 3, lastId = 6; + } + else + { + firstId = 0, lastId = 6; + } + + for (monToSwitchId = firstId; monToSwitchId < lastId; monToSwitchId++) + { + if (GetMonData(&party[monToSwitchId], MON_DATA_HP) == 0) + continue; + if (monToSwitchId == gBattlePartyID[bankIn1]) + continue; + if (monToSwitchId == gBattlePartyID[bankIn2]) + continue; + if (monToSwitchId == *(gBattleStruct->field_5C + bankIn1)) + continue; + if (monToSwitchId == *(gBattleStruct->field_5C + bankIn2)) + continue; + + break; + } + } + + *(gBattleStruct->field_294 + gActiveBank) = monToSwitchId; + } + + *(gBattleStruct->field_5C + gActiveBank) = *(gBattleStruct->field_294 + gActiveBank); + return; + } + else if (ShouldUseItem()) + { + return; + } + } + + EmitCmd_x21(1, 0, (gActiveBank ^ BIT_SIDE) << 8); +} + +#define TYPE_FORESIGHT 0xFE +#define TYPE_ENDTABLE 0xFF + +static void ModulateByTypeEffectiveness(u8 atkType, u8 defType1, u8 defType2, u8 *var) +{ + s32 i = 0; + + while (gTypeEffectiveness[i] != TYPE_ENDTABLE) + { + if (gTypeEffectiveness[i] == TYPE_FORESIGHT) + { + i += 3; + continue; + } + else if (gTypeEffectiveness[i] == atkType) + { + // check type1 + if (gTypeEffectiveness[i + 1] == defType1) + *var = (*var * gTypeEffectiveness[i + 2]) / 10; + // check type2 + if (gTypeEffectiveness[i + 1] == defType2 && defType1 != defType2) + *var = (*var * gTypeEffectiveness[i + 2]) / 10; + } + i += 3; + } +} + +u8 GetMostSuitableMonToSwitchInto(void) +{ + u8 opposingBank; + u8 bestDmg; // note : should be changed to u32 for obvious reasons + u8 bestMonId; + u8 bankIn1, bankIn2; + s32 firstId; + s32 lastId; // + 1 + struct Pokemon *party; + s32 i, j; + u8 invalidMons; + u16 move; + + if (*(gBattleStruct->field_5C + gActiveBank) != 6) + return *(gBattleStruct->field_5C + gActiveBank); + if (gBattleTypeFlags & BATTLE_TYPE_ARENA) + return gBattlePartyID[gActiveBank] + 1; + + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + bankIn1 = gActiveBank; + if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)]) + bankIn2 = gActiveBank; + else + bankIn2 = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON); + + // UB: It considers the opponent only player's side even though it can battle alongside player; + opposingBank = Random() & BIT_MON; + if (gAbsentBankFlags & gBitTable[opposingBank]) + opposingBank ^= BIT_MON; + } + else + { + opposingBank = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_SIDE); + bankIn1 = gActiveBank; + bankIn2 = gActiveBank; + } + + if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) + { + if ((gActiveBank & BIT_MON) == 0) + firstId = 0, lastId = 3; + else + firstId = 3, lastId = 6; + } + else + { + firstId = 0, lastId = 6; + } + + if (GetBankSide(gActiveBank) == SIDE_PLAYER) + party = gPlayerParty; + else + party = gEnemyParty; + + invalidMons = 0; + + while (invalidMons != 0x3F) // all mons are invalid + { + bestDmg = 0; + bestMonId = 6; + // find the mon which type is the most suitable offensively + for (i = firstId; i < lastId; i++) + { + u16 species = GetMonData(&party[i], MON_DATA_SPECIES); + if (species != SPECIES_NONE + && GetMonData(&party[i], MON_DATA_HP) != 0 + && !(gBitTable[i] & invalidMons) + && gBattlePartyID[bankIn1] != i + && gBattlePartyID[bankIn2] != i + && i != *(gBattleStruct->field_5C + bankIn1) + && i != *(gBattleStruct->field_5C + bankIn2)) + { + u8 type1 = gBaseStats[species].type1; + u8 type2 = gBaseStats[species].type2; + u8 typeDmg = 10; + ModulateByTypeEffectiveness(gBattleMons[opposingBank].type1, type1, type2, &typeDmg); + ModulateByTypeEffectiveness(gBattleMons[opposingBank].type2, type1, type2, &typeDmg); + if (bestDmg < typeDmg) + { + bestDmg = typeDmg; + bestMonId = i; + } + } + else + { + invalidMons |= gBitTable[i]; + } + } + + // ok, we know the mon has the right typing but does it have at least one super effective move? + if (bestMonId != 6) + { + for (i = 0; i < 4; i++) + { + move = GetMonData(&party[bestMonId], MON_DATA_MOVE1 + i); + if (move != MOVE_NONE && TypeCalc(move, gActiveBank, opposingBank) & MOVESTATUS_SUPEREFFECTIVE) + break; + } + + if (i != 4) + return bestMonId; // has both the typing and at least one super effective move + + invalidMons |= gBitTable[bestMonId]; // sorry buddy, we want something better + } + else + { + invalidMons = 0x3F; // no viable mon to switch + } + } + + gDynamicBasePower = 0; + gBattleStruct->dynamicMoveType = 0; + gBattleScripting.dmgMultiplier = 1; + gBattleMoveFlags = 0; + gCritMultiplier = 1; + bestDmg = 0; + bestMonId = 6; + + // if we couldn't find the best mon in terms of typing, find the one that deals most damage + for (i = firstId; i < lastId; i++) + { + if ((u16)(GetMonData(&party[i], MON_DATA_SPECIES)) == SPECIES_NONE) + continue; + if (GetMonData(&party[i], MON_DATA_HP) == 0) + continue; + if (gBattlePartyID[bankIn1] == i) + continue; + if (gBattlePartyID[bankIn2] == i) + continue; + if (i == *(gBattleStruct->field_5C + bankIn1)) + continue; + if (i == *(gBattleStruct->field_5C + bankIn2)) + continue; + + for (j = 0; j < 4; j++) + { + move = GetMonData(&party[i], MON_DATA_MOVE1 + j); + gBattleMoveDamage = 0; + if (move != MOVE_NONE && gBattleMoves[move].power != 1) + { + AI_CalcDmg(gActiveBank, opposingBank); + TypeCalc(move, gActiveBank, opposingBank); + } + if (bestDmg < gBattleMoveDamage) + { + bestDmg = gBattleMoveDamage; + bestMonId = i; + } + } + } + + return bestMonId; +} -- cgit v1.2.3 From a3b62f43ee4ce02d8b7dd28acf53692567754bd3 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Wed, 11 Oct 2017 12:49:42 +0200 Subject: battle 9 is decompiled --- asm/battle_9.s | 646 -------------------------- include/battle.h | 6 +- include/battle_ai_switch_items.h | 10 + include/pokemon.h | 1 + include/pokemon_item_effects.h | 54 +++ ld_script.txt | 3 +- src/battle_2.c | 28 +- src/battle_9.c | 794 -------------------------------- src/battle_ai_script_commands.c | 2 +- src/battle_ai_switch_items.c | 951 +++++++++++++++++++++++++++++++++++++++ 10 files changed, 1035 insertions(+), 1460 deletions(-) delete mode 100644 asm/battle_9.s delete mode 100644 src/battle_9.c create mode 100644 src/battle_ai_switch_items.c diff --git a/asm/battle_9.s b/asm/battle_9.s deleted file mode 100644 index 0cf529bcc..000000000 --- a/asm/battle_9.s +++ /dev/null @@ -1,646 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - - thumb_func_start ai_identify_item_effect -ai_identify_item_effect: @ 8063E84 - push {r4,lr} - adds r2, r1, 0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bne _08063E94 - movs r0, 0x1 - b _08063EDA -_08063E94: - ldrb r1, [r2, 0x4] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _08063EA2 - movs r0, 0x2 - b _08063EDA -_08063EA2: - ldrb r4, [r2, 0x3] - movs r3, 0x3F - adds r0, r3, 0 - ands r0, r4 - cmp r0, 0 - beq _08063EB2 - movs r0, 0x3 - b _08063EDA -_08063EB2: - ldrb r1, [r2] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _08063EC8 - ldrb r0, [r2, 0x1] - cmp r0, 0 - bne _08063EC8 - ldrb r0, [r2, 0x2] - cmp r0, 0 - beq _08063ECC -_08063EC8: - movs r0, 0x4 - b _08063EDA -_08063ECC: - movs r0, 0x80 - ands r0, r4 - cmp r0, 0 - bne _08063ED8 - movs r0, 0x6 - b _08063EDA -_08063ED8: - movs r0, 0x5 -_08063EDA: - pop {r4} - pop {r1} - bx r1 - thumb_func_end ai_identify_item_effect - - thumb_func_start ShouldUseItem -ShouldUseItem: @ 8063EE0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r0, 0 - mov r10, r0 - movs r7, 0 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 15 - ands r0, r1 - cmp r0, 0 - beq _08063F12 - ldr r0, =gActiveBank - ldrb r0, [r0] - bl GetBankIdentity - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _08063F12 - b _0806437C -_08063F12: - ldr r0, =gActiveBank - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - ldr r5, =gEnemyParty - cmp r0, 0 - bne _08063F24 - ldr r5, =gPlayerParty -_08063F24: - movs r1, 0 - mov r8, r1 -_08063F28: - movs r0, 0x64 - mov r2, r8 - muls r2, r0 - adds r0, r2, 0 - adds r4, r5, r0 - adds r0, r4, 0 - movs r1, 0x39 - bl GetMonData - cmp r0, 0 - beq _08063F64 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0 - beq _08063F64 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - movs r1, 0xCE - lsls r1, 1 - cmp r0, r1 - beq _08063F64 - mov r0, r10 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 -_08063F64: - movs r0, 0x1 - add r8, r0 - mov r1, r8 - cmp r1, 0x5 - ble _08063F28 - movs r2, 0 - mov r8, r2 -_08063F72: - ldr r1, =gBattleResources - mov r0, r8 - cmp r0, 0 - beq _08063F8E - ldr r0, [r1] - ldr r0, [r0, 0x18] - adds r0, 0x50 - ldrb r0, [r0] - mov r2, r8 - subs r0, r2 - adds r0, 0x1 - cmp r10, r0 - ble _08063F8E - b _08064370 -_08063F8E: - ldr r0, [r1] - ldr r0, [r0, 0x18] - mov r2, r8 - lsls r1, r2, 1 - adds r0, 0x48 - adds r0, r1 - ldrh r0, [r0] - mov r9, r0 - str r1, [sp] - cmp r0, 0 - bne _08063FA6 - b _08064370 -_08063FA6: - ldr r1, =gItemEffectTable - subs r0, 0xD - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - cmp r1, 0 - bne _08063FB6 - b _08064370 -_08063FB6: - mov r0, r9 - cmp r0, 0xAF - bne _08063FE8 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00003214 - adds r5, r0, r1 - b _08063FEA - .pool -_08063FE8: - adds r5, r1, 0 -_08063FEA: - mov r2, r9 - lsls r0, r2, 24 - lsrs r0, 24 - adds r1, r5, 0 - bl ai_identify_item_effect - ldr r4, =gActiveBank - ldrb r1, [r4] - lsrs r1, 1 - ldr r3, =gBattleStruct - ldr r2, [r3] - adds r1, r2 - adds r1, 0xC4 - strb r0, [r1] - ldrb r0, [r4] - lsrs r0, 1 - ldr r1, [r3] - adds r0, r1 - adds r0, 0xC4 - ldrb r0, [r0] - subs r0, 0x1 - cmp r0, 0x5 - bls _0806401A - b _08064324 -_0806401A: - lsls r0, 2 - ldr r1, =_08064030 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08064030: - .4byte _08064048 - .4byte _08064074 - .4byte _080640BC - .4byte _08064214 - .4byte _080642F4 - .4byte _0806437C -_08064048: - ldr r2, =gBattleMons - ldr r0, =gActiveBank - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - ldrh r1, [r0, 0x2C] - ldrh r0, [r0, 0x28] - lsrs r1, 2 - cmp r0, r1 - bcc _08064060 - b _08064324 -_08064060: - cmp r0, 0 - bne _08064066 - b _08064324 -_08064066: - movs r7, 0x1 - b _08064328 - .pool -_08064074: - mov r0, r9 - movs r1, 0x4 - movs r2, 0x4 - bl GetItemEffectParamOffset - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _08064088 - b _08064324 -_08064088: - ldr r2, =gBattleMons - ldr r0, =gActiveBank - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r1, r0, r2 - ldrh r2, [r1, 0x28] - cmp r2, 0 - bne _0806409C - b _08064324 -_0806409C: - ldrh r3, [r1, 0x2C] - lsrs r0, r3, 2 - cmp r2, r0 - bcc _08064066 - adds r0, r2, 0 - subs r0, r3, r0 - adds r1, r5, r4 - ldrb r1, [r1] - cmp r0, r1 - bgt _080640B2 - b _08064324 -_080640B2: - b _08064066 - .pool -_080640BC: - ldr r3, =gActiveBank - ldrb r0, [r3] - lsrs r0, 1 - ldr r2, =gBattleStruct - ldr r1, [r2] - adds r0, r1 - adds r0, 0xC6 - movs r1, 0 - strb r1, [r0] - ldrb r1, [r5, 0x3] - movs r6, 0x20 - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _08064100 - ldr r1, =gBattleMons - ldrb r4, [r3] - movs r0, 0x58 - muls r0, r4 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - beq _08064100 - lsrs r1, r4, 1 - ldr r0, [r2] - adds r1, r0 - adds r1, 0xC6 - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - movs r7, 0x1 -_08064100: - ldrb r1, [r5, 0x3] - movs r6, 0x10 - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0806413A - ldr r1, =gBattleMons - ldrb r4, [r3] - movs r0, 0x58 - muls r0, r4 - adds r1, 0x4C - adds r0, r1 - ldr r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _0806412A - movs r0, 0x80 - ands r1, r0 - cmp r1, 0 - beq _0806413A -_0806412A: - lsrs r1, r4, 1 - ldr r0, [r2] - adds r1, r0 - adds r1, 0xC6 - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - movs r7, 0x1 -_0806413A: - ldrb r1, [r5, 0x3] - movs r6, 0x8 - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0806416C - ldr r1, =gBattleMons - ldrb r4, [r3] - movs r0, 0x58 - muls r0, r4 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0806416C - lsrs r1, r4, 1 - ldr r0, [r2] - adds r1, r0 - adds r1, 0xC6 - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - movs r7, 0x1 -_0806416C: - ldrb r1, [r5, 0x3] - movs r6, 0x4 - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0806419E - ldr r1, =gBattleMons - ldrb r4, [r3] - movs r0, 0x58 - muls r0, r4 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0806419E - lsrs r1, r4, 1 - ldr r0, [r2] - adds r1, r0 - adds r1, 0xC6 - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - movs r7, 0x1 -_0806419E: - ldrb r1, [r5, 0x3] - movs r6, 0x2 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080641D0 - ldr r1, =gBattleMons - ldrb r4, [r3] - movs r0, 0x58 - muls r0, r4 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _080641D0 - lsrs r1, r4, 1 - ldr r0, [r2] - adds r1, r0 - adds r1, 0xC6 - ldrb r0, [r1] - orrs r0, r6 - strb r0, [r1] - movs r7, 0x1 -_080641D0: - ldrb r1, [r5, 0x3] - movs r4, 0x1 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080641DE - b _08064324 -_080641DE: - ldr r1, =gBattleMons - ldrb r3, [r3] - movs r0, 0x58 - muls r0, r3 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _080641F6 - b _08064324 -_080641F6: - lsrs r1, r3, 1 - ldr r0, [r2] - adds r1, r0 - adds r1, 0xC6 - ldrb r0, [r1] - orrs r0, r4 - strb r0, [r1] - b _08064066 - .pool -_08064214: - ldr r4, =gActiveBank - ldrb r0, [r4] - lsrs r0, 1 - ldr r3, =gBattleStruct - ldr r1, [r3] - adds r0, r1 - adds r0, 0xC6 - movs r1, 0 - strb r1, [r0] - ldr r1, =gDisableStructs - ldrb r2, [r4] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x16] - cmp r0, 0 - beq _08064324 - ldrb r1, [r5] - movs r6, 0xF - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _08064254 - lsrs r2, 1 - ldr r0, [r3] - adds r2, r0 - adds r2, 0xC6 - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] -_08064254: - ldrb r1, [r5, 0x1] - movs r7, 0xF0 - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _08064272 - ldrb r0, [r4] - lsrs r0, 1 - ldr r1, [r3] - adds r0, r1 - adds r0, 0xC6 - ldrb r1, [r0] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0] -_08064272: - ldrb r1, [r5, 0x1] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _0806428E - ldrb r0, [r4] - lsrs r0, 1 - ldr r1, [r3] - adds r0, r1 - adds r0, 0xC6 - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] -_0806428E: - ldrb r1, [r5, 0x2] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _080642AA - ldrb r0, [r4] - lsrs r0, 1 - ldr r1, [r3] - adds r0, r1 - adds r0, 0xC6 - ldrb r1, [r0] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0] -_080642AA: - ldrb r1, [r5, 0x2] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _080642C6 - ldrb r0, [r4] - lsrs r0, 1 - ldr r1, [r3] - adds r0, r1 - adds r0, 0xC6 - ldrb r1, [r0] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0] -_080642C6: - ldrb r1, [r5] - movs r0, 0x30 - ands r0, r1 - cmp r0, 0 - bne _080642D2 - b _08064066 -_080642D2: - ldrb r0, [r4] - lsrs r0, 1 - ldr r1, [r3] - adds r0, r1 - adds r0, 0xC6 - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] - b _08064066 - .pool -_080642F4: - ldr r4, =gActiveBank - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - lsrs r3, r0, 24 - ldr r2, =gDisableStructs - ldrb r1, [r4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x16] - cmp r0, 0 - beq _08064324 - ldr r0, =gSideTimers - lsls r1, r3, 1 - adds r1, r3 - lsls r1, 2 - adds r1, r0 - ldrb r0, [r1, 0x4] - cmp r0, 0 - bne _08064324 - b _08064066 -_08064324: - cmp r7, 0 - beq _08064370 -_08064328: - movs r0, 0x1 - movs r1, 0x1 - movs r2, 0 - bl EmitCmd_x21 - ldr r0, =gActiveBank - ldrb r0, [r0] - lsrs r0, 1 - ldr r1, =gBattleStruct - ldr r1, [r1] - lsls r0, 1 - adds r0, r1 - adds r0, 0xC0 - mov r1, r9 - strb r1, [r0] - ldr r0, =gBattleResources - ldr r0, [r0] - ldr r0, [r0, 0x18] - adds r0, 0x48 - ldr r2, [sp] - adds r0, r2 - movs r1, 0 - strh r1, [r0] - adds r0, r7, 0 - b _0806437E - .pool -_08064370: - movs r0, 0x1 - add r8, r0 - mov r1, r8 - cmp r1, 0x3 - bgt _0806437C - b _08063F72 -_0806437C: - movs r0, 0 -_0806437E: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end ShouldUseItem - - .align 2, 0 @ Don't pad with nop. diff --git a/include/battle.h b/include/battle.h index 0aa778fe2..a60f450ce 100644 --- a/include/battle.h +++ b/include/battle.h @@ -477,7 +477,7 @@ struct BattleHistory struct UsedMoves usedMoves[BATTLE_BANKS_COUNT]; u8 abilities[BATTLE_BANKS_COUNT]; u8 itemEffects[BATTLE_BANKS_COUNT]; - u16 TrainerItems[BATTLE_BANKS_COUNT]; + u16 trainerItems[BATTLE_BANKS_COUNT]; u8 itemsNo; }; @@ -633,8 +633,8 @@ struct BattleStruct void (*savedCallback)(void); u16 usedHeldItems[BATTLE_BANKS_COUNT]; u8 field_C0[4]; - u8 field_C4[2]; - u8 field_C6[2]; + u8 AI_itemType[2]; + u8 AI_itemFlags[2]; u16 choicedMove[BATTLE_BANKS_COUNT]; u16 changedItems[BATTLE_BANKS_COUNT]; u8 intimidateBank; diff --git a/include/battle_ai_switch_items.h b/include/battle_ai_switch_items.h index 5c78a5386..0a230e7f6 100644 --- a/include/battle_ai_switch_items.h +++ b/include/battle_ai_switch_items.h @@ -1,6 +1,16 @@ #ifndef GUARD_BATTLE_AI_SWITCH_ITEMS_H #define GUARD_BATTLE_AI_SWITCH_ITEMS_H +enum +{ + AI_ITEM_FULL_RESTORE = 1, + AI_ITEM_HEAL_HP, + AI_ITEM_CURE_CONDITION, + AI_ITEM_X_STAT, + AI_ITEM_GUARD_SPECS, + AI_ITEM_NOT_RECOGNIZABLE +}; + void AI_TrySwitchOrUseItem(void); u8 GetMostSuitableMonToSwitchInto(void); diff --git a/include/pokemon.h b/include/pokemon.h index 263a37426..c26c28afa 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -642,6 +642,7 @@ void UpdatePartyPokerusTime(u16 days); void PartySpreadPokerus(struct Pokemon *party); s8 GetMonFlavourRelation(struct Pokemon *mon, u8 a2); s8 GetFlavourRelationByPersonality(u32 personality, u8 a2); +u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit); #include "sprite.h" diff --git a/include/pokemon_item_effects.h b/include/pokemon_item_effects.h index 88f341317..505cc0f25 100644 --- a/include/pokemon_item_effects.h +++ b/include/pokemon_item_effects.h @@ -3,6 +3,60 @@ #include "pokemon.h" +// TODO once pokemon item effects is decompiled +/* +struct PokemonItemEffect +{ + //field 0 + u8 xAtk : 4; // x1, x2, x4, x8 = xF + u8 field_0_x10 : 1; // x10 + u8 critRatioUp : 1; // x20 + u8 field_0_x40 : 1; // x40 + u8 cureInfatuation : 1; // x80 + + /*field 1 + u8 xSpeed : 4; // x1, x2, x4, x8 = xF + u8 xDefense : 4; // x10, x20, x40, xF0 + + /*field 2 + u8 xSpAtk : 4; // x1, x2, x4, x8 = xF + u8 xAccuracy : 4; // x10, x20, x40, xF0 + + /*field 3 + u8 cureConfusion : 1; // x1 + u8 cureParalysis : 1; // x2 + u8 cureFreeze : 1; // x4 + u8 cureBurn : 1; // x8 + u8 curePoison : 1; // x10 + u8 cureSleep : 1; // x20 + u8 field_3_x40 : 1; // x40 + u8 cantLowerStats : 1; // x80 + + /*field 4 + u8 hpEv : 1; // x1 + u8 attackEv : 1; // x2 + u8 healHp : 1; // x4 + u8 field_4_x8 : 1; // x8 + u8 field_4_x10 : 1; // x10 + u8 ppUp : 1; // x20 + u8 levelUp : 1; // x40 + u8 evolutionStone : 1; // x80 + + /*field 5 + u8 defEv: 1; // x1 + u8 speedEv : 1; // x2 + u8 spDefEv : 1; // x4 + u8 spAtkEv : 1; // x8 + u8 ppMax : 1; // x10 + u8 field_5_x20 : 1; // x20 + u8 field_5_x40 : 1; // x40 + u8 field_5_x80 : 1; // x80 + + /*field 6 + u8 value; +}; +*/ + bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 itemId, u8 partyId, u8 monMoveIndex, u8 a5); #endif // GUARD_POKEMON_ITEM_EFFECTS diff --git a/ld_script.txt b/ld_script.txt index 1da43ff9d..887f24811 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -64,8 +64,7 @@ SECTIONS { asm/battle_controller_player.o(.text); asm/battle_7.o(.text); asm/battle_controller_opponent.o(.text); - src/battle_9.o(.text); - asm/battle_9.o(.text); + src/battle_ai_switch_items.o(.text); asm/battle_controller_linkopponent.o(.text); src/pokemon_1.o(.text); asm/pokemon_1.o(.text); diff --git a/src/battle_2.c b/src/battle_2.c index 92c48c427..c4da02e36 100644 --- a/src/battle_2.c +++ b/src/battle_2.c @@ -5324,30 +5324,30 @@ static void HandleAction_UseItem(void) { gBattleScripting.bank = gBankAttacker; - switch (*(gBattleStruct->field_C4 + (gBankAttacker >> 1))) + switch (*(gBattleStruct->AI_itemType + (gBankAttacker >> 1))) { - case 1: - case 2: + case AI_ITEM_FULL_RESTORE: + case AI_ITEM_HEAL_HP: break; - case 3: + case AI_ITEM_CURE_CONDITION: gBattleCommunication[MULTISTRING_CHOOSER] = 0; - if (*(gBattleStruct->field_C6 + gBankAttacker / 2) & 1) + if (*(gBattleStruct->AI_itemFlags + gBankAttacker / 2) & 1) { - if (*(gBattleStruct->field_C6 + gBankAttacker / 2) & 0x3E) + if (*(gBattleStruct->AI_itemFlags + gBankAttacker / 2) & 0x3E) gBattleCommunication[MULTISTRING_CHOOSER] = 5; } else { - while (!(*(gBattleStruct->field_C6 + gBankAttacker / 2) & 1)) + while (!(*(gBattleStruct->AI_itemFlags + gBankAttacker / 2) & 1)) { - *(gBattleStruct->field_C6 + gBankAttacker / 2) >>= 1; + *(gBattleStruct->AI_itemFlags + gBankAttacker / 2) >>= 1; gBattleCommunication[MULTISTRING_CHOOSER]++; } } break; - case 4: + case AI_ITEM_X_STAT: gBattleCommunication[MULTISTRING_CHOOSER] = 4; - if (*(gBattleStruct->field_C6 + (gBankAttacker >> 1)) & 0x80) + if (*(gBattleStruct->AI_itemFlags + (gBankAttacker >> 1)) & 0x80) { gBattleCommunication[MULTISTRING_CHOOSER] = 5; } @@ -5356,9 +5356,9 @@ static void HandleAction_UseItem(void) PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_ATK) PREPARE_STRING_BUFFER(gBattleTextBuff2, 0xD2) - while (!((*(gBattleStruct->field_C6 + (gBankAttacker >> 1))) & 1)) + while (!((*(gBattleStruct->AI_itemFlags + (gBankAttacker >> 1))) & 1)) { - *(gBattleStruct->field_C6 + gBankAttacker / 2) >>= 1; + *(gBattleStruct->AI_itemFlags + gBankAttacker / 2) >>= 1; gBattleTextBuff1[2]++; } @@ -5366,7 +5366,7 @@ static void HandleAction_UseItem(void) gBattleScripting.animArg2 = 0; } break; - case 5: + case AI_ITEM_GUARD_SPECS: if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) gBattleCommunication[MULTISTRING_CHOOSER] = 2; else @@ -5374,7 +5374,7 @@ static void HandleAction_UseItem(void) break; } - gBattlescriptCurrInstr = gUnknown_082DBD3C[*(gBattleStruct->field_C4 + gBankAttacker / 2)]; + gBattlescriptCurrInstr = gUnknown_082DBD3C[*(gBattleStruct->AI_itemType + gBankAttacker / 2)]; } gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; } diff --git a/src/battle_9.c b/src/battle_9.c deleted file mode 100644 index 291bfc9e3..000000000 --- a/src/battle_9.c +++ /dev/null @@ -1,794 +0,0 @@ -#include "global.h" -#include "battle.h" -#include "battle_controllers.h" -#include "abilities.h" -#include "moves.h" -#include "pokemon.h" -#include "species.h" -#include "rng.h" -#include "util.h" - -extern u8 gActiveBank; -extern u8 gAbsentBankFlags; -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 gDynamicBasePower; -extern u8 gBattleMoveFlags; -extern u8 gCritMultiplier; -extern s32 gBattleMoveDamage; - -extern const struct BattleMove gBattleMoves[]; -extern const struct BaseStats gBaseStats[]; -extern const u8 gTypeEffectiveness[]; - -// this file's functions -bool8 HasSuperEffectiveMoveAgainstOpponents(bool8 noRng); -bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent); -bool8 ShouldUseItem(void); - -bool8 ShouldSwitchIfPerishSong(void) -{ - if (gStatuses3[gActiveBank] & STATUS3_PERISH_SONG - && gDisableStructs[gActiveBank].perishSong1 == 0) - { - *(gBattleStruct->field_294 + gActiveBank) = 6; - EmitCmd_x21(1, 2, 0); - return TRUE; - } - - return FALSE; -} - -bool8 ShouldSwitchIfWonderGuard(void) -{ - u8 opposingIdentity; - u8 opposingBank; - u8 moveFlags; - s32 i, j; - s32 firstId; - s32 lastId; // + 1 - struct Pokemon *party = NULL; - u16 move; - - if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - return FALSE; - - opposingIdentity = GetBankIdentity(gActiveBank) ^ BIT_SIDE; - - if (gBattleMons[GetBankByIdentity(opposingIdentity)].ability != ABILITY_WONDER_GUARD) - return FALSE; - - // check if pokemon has a super effective move - for (opposingBank = GetBankByIdentity(opposingIdentity), i = 0; i < 4; i++) - { - move = gBattleMons[gActiveBank].moves[i]; - if (move == MOVE_NONE) - continue; - - moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability); - if (moveFlags & MOVESTATUS_SUPEREFFECTIVE) - return FALSE; - } - - // get party information - if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) - { - if ((gActiveBank & BIT_MON) == 0) - firstId = 0, lastId = 3; - else - firstId = 3, lastId = 6; - } - else - { - firstId = 0, lastId = 6; - } - - if (GetBankSide(gActiveBank) == SIDE_PLAYER) - party = gPlayerParty; - else - party = gEnemyParty; - - // find a pokemon in the party that has a super effective move - for (i = firstId; i < lastId; i++) - { - if (GetMonData(&party[i], MON_DATA_HP) == 0) - continue; - if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_NONE) - continue; - if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_EGG) - continue; - if (i == gBattlePartyID[gActiveBank]) - continue; - - GetMonData(&party[i], MON_DATA_SPECIES); // unused return value - GetMonData(&party[i], MON_DATA_ALT_ABILITY); // unused return value - - for (opposingBank = GetBankByIdentity(opposingIdentity), j = 0; j < 4; j++) - { - move = GetMonData(&party[i], MON_DATA_MOVE1 + j); - if (move == MOVE_NONE) - continue; - - moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability); - if (moveFlags & MOVESTATUS_SUPEREFFECTIVE && Random() % 3 < 2) - { - // we found a mon - *(gBattleStruct->field_294 + gActiveBank) = i; - EmitCmd_x21(1, 2, 0); - return TRUE; - } - } - } - - return FALSE; // at this point there is not a single pokemon in the party that has a super effective move against a pokemon with wonder guard -} - -bool8 FindMonThatAbsorbsOpponentsMove(void) -{ - u8 bankIn1, bankIn2; - u8 absorbingTypeAbility; - s32 firstId; - s32 lastId; // + 1 - struct Pokemon *party; - s32 i; - - if (HasSuperEffectiveMoveAgainstOpponents(TRUE) && Random() % 3 != 0) - return FALSE; - if (gUnknown_02024250[gActiveBank] == 0) - return FALSE; - if (gUnknown_02024250[gActiveBank] == 0xFFFF) - return FALSE; - if (gBattleMoves[gUnknown_02024250[gActiveBank]].power == 0) - return FALSE; - - if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - { - bankIn1 = gActiveBank; - if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)]) - bankIn2 = gActiveBank; - else - bankIn2 = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON); - } - else - { - bankIn1 = gActiveBank; - bankIn2 = gActiveBank; - } - - if (gBattleMoves[gUnknown_02024250[gActiveBank]].type == TYPE_FIRE) - absorbingTypeAbility = ABILITY_FLASH_FIRE; - else if (gBattleMoves[gUnknown_02024250[gActiveBank]].type == TYPE_WATER) - absorbingTypeAbility = ABILITY_WATER_ABSORB; - else if (gBattleMoves[gUnknown_02024250[gActiveBank]].type == TYPE_ELECTRIC) - absorbingTypeAbility = ABILITY_VOLT_ABSORB; - else - return FALSE; - - if (gBattleMons[gActiveBank].ability == absorbingTypeAbility) - return FALSE; - - if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) - { - if ((gActiveBank & BIT_MON) == 0) - firstId = 0, lastId = 3; - else - firstId = 3, lastId = 6; - } - else - { - firstId = 0, lastId = 6; - } - - if (GetBankSide(gActiveBank) == SIDE_PLAYER) - party = gPlayerParty; - else - party = gEnemyParty; - - for (i = firstId; i < lastId; i++) - { - u16 species; - u8 monAbility; - - if (GetMonData(&party[i], MON_DATA_HP) == 0) - continue; - if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_NONE) - continue; - if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_EGG) - continue; - if (i == gBattlePartyID[bankIn1]) - continue; - if (i == gBattlePartyID[bankIn2]) - continue; - if (i == *(gBattleStruct->field_5C + bankIn1)) - continue; - if (i == *(gBattleStruct->field_5C + bankIn2)) - continue; - - species = GetMonData(&party[i], MON_DATA_SPECIES); - if (GetMonData(&party[i], MON_DATA_ALT_ABILITY) != 0) - monAbility = gBaseStats[species].ability2; - else - monAbility = gBaseStats[species].ability1; - - if (absorbingTypeAbility == monAbility && Random() & 1) - { - // we found a mon - *(gBattleStruct->field_294 + gActiveBank) = i; - EmitCmd_x21(1, 2, 0); - return TRUE; - } - } - - return FALSE; -} - -bool8 ShouldSwitchIfNaturalCure(void) -{ - if (!(gBattleMons[gActiveBank].status1 & STATUS_SLEEP)) - return FALSE; - if (gBattleMons[gActiveBank].ability != ABILITY_NATURAL_CURE) - return FALSE; - if (gBattleMons[gActiveBank].hp < gBattleMons[gActiveBank].maxHP / 2) - return FALSE; - - if ((gUnknown_02024250[gActiveBank] == 0 || gUnknown_02024250[gActiveBank] == 0xFFFF) && Random() & 1) - { - *(gBattleStruct->field_294 + gActiveBank) = 6; - EmitCmd_x21(1, 2, 0); - return TRUE; - } - else if (gBattleMoves[gUnknown_02024250[gActiveBank]].power == 0 && Random() & 1) - { - *(gBattleStruct->field_294 + gActiveBank) = 6; - EmitCmd_x21(1, 2, 0); - return TRUE; - } - - if (FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTAFFECTED, 1)) - return TRUE; - if (FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTVERYEFFECTIVE, 1)) - return TRUE; - if (Random() & 1) - { - *(gBattleStruct->field_294 + gActiveBank) = 6; - EmitCmd_x21(1, 2, 0); - return TRUE; - } - - return FALSE; -} - -bool8 HasSuperEffectiveMoveAgainstOpponents(bool8 noRng) -{ - u8 opposingIdentity; - u8 opposingBank; - s32 i; - u8 moveFlags; - u16 move; - - opposingIdentity = GetBankIdentity(gActiveBank) ^ BIT_SIDE; - opposingBank = GetBankByIdentity(opposingIdentity); - - if (!(gAbsentBankFlags & gBitTable[opposingBank])) - { - for (i = 0; i < 4; i++) - { - move = gBattleMons[gActiveBank].moves[i]; - if (move == MOVE_NONE) - continue; - - moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability); - if (moveFlags & MOVESTATUS_SUPEREFFECTIVE) - { - if (noRng) - return TRUE; - if (Random() % 10 != 0) - return TRUE; - } - } - } - if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) - return FALSE; - - opposingBank = GetBankByIdentity(opposingIdentity ^ BIT_MON); - - if (!(gAbsentBankFlags & gBitTable[opposingBank])) - { - for (i = 0; i < 4; i++) - { - move = gBattleMons[gActiveBank].moves[i]; - if (move == MOVE_NONE) - continue; - - moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability); - if (moveFlags & MOVESTATUS_SUPEREFFECTIVE) - { - if (noRng) - return TRUE; - if (Random() % 10 != 0) - return TRUE; - } - } - } - - return FALSE; -} - -bool8 AreStatsRaised(void) -{ - u8 buffedStatsValue = 0; - s32 i; - - for (i = 0; i < BATTLE_STATS_NO; i++) - { - if (gBattleMons[gActiveBank].statStages[i] > 6) - buffedStatsValue += gBattleMons[gActiveBank].statStages[i] - 6; - } - - return (buffedStatsValue > 3); -} - -bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent) -{ - u8 bankIn1, bankIn2; - s32 firstId; - s32 lastId; // + 1 - struct Pokemon *party; - s32 i, j; - u16 move; - u8 moveFlags; - - if (gUnknown_02024250[gActiveBank] == 0) - return FALSE; - if (gUnknown_02024250[gActiveBank] == 0xFFFF) - return FALSE; - if (gUnknown_02024270[gActiveBank] == 0xFF) - return FALSE; - if (gBattleMoves[gUnknown_02024250[gActiveBank]].power == 0) - return FALSE; - - if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - { - bankIn1 = gActiveBank; - if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)]) - bankIn2 = gActiveBank; - else - bankIn2 = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON); - } - else - { - bankIn1 = gActiveBank; - bankIn2 = gActiveBank; - } - - if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) - { - if ((gActiveBank & BIT_MON) == 0) - firstId = 0, lastId = 3; - else - firstId = 3, lastId = 6; - } - else - { - firstId = 0, lastId = 6; - } - - if (GetBankSide(gActiveBank) == SIDE_PLAYER) - party = gPlayerParty; - else - party = gEnemyParty; - - for (i = firstId; i < lastId; i++) - { - u16 species; - u8 monAbility; - - if (GetMonData(&party[i], MON_DATA_HP) == 0) - continue; - if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_NONE) - continue; - if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_EGG) - continue; - if (i == gBattlePartyID[bankIn1]) - continue; - if (i == gBattlePartyID[bankIn2]) - continue; - if (i == *(gBattleStruct->field_5C + bankIn1)) - continue; - if (i == *(gBattleStruct->field_5C + bankIn2)) - continue; - - species = GetMonData(&party[i], MON_DATA_SPECIES); - if (GetMonData(&party[i], MON_DATA_ALT_ABILITY) != 0) - monAbility = gBaseStats[species].ability2; - else - monAbility = gBaseStats[species].ability1; - - moveFlags = AI_TypeCalc(gUnknown_02024250[gActiveBank], species, monAbility); - if (moveFlags & flags) - { - bankIn1 = gUnknown_02024270[gActiveBank]; - - for (j = 0; j < 4; j++) - { - move = GetMonData(&party[i], MON_DATA_MOVE1 + j); - if (move == 0) - continue; - - moveFlags = AI_TypeCalc(move, gBattleMons[bankIn1].species, gBattleMons[bankIn1].ability); - if (moveFlags & MOVESTATUS_SUPEREFFECTIVE && Random() % moduloPercent == 0) - { - *(gBattleStruct->field_294 + gActiveBank) = i; - EmitCmd_x21(1, 2, 0); - return TRUE; - } - } - } - } - - return FALSE; -} - -bool8 ShouldSwitch(void) -{ - u8 bankIn1, bankIn2; - u8 *activeBankPtr; // needed to match - s32 firstId; - s32 lastId; // + 1 - struct Pokemon *party; - s32 i; - s32 availableToSwitch; - - if (gBattleMons[*(activeBankPtr = &gActiveBank)].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)) - return FALSE; - if (gStatuses3[gActiveBank] & STATUS3_ROOTED) - return FALSE; - if (AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBank, ABILITY_SHADOW_TAG, 0, 0)) - return FALSE; - if (AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBank, ABILITY_ARENA_TRAP, 0, 0)) - return FALSE; // misses the flying or levitate check - if (AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, ABILITY_MAGNET_PULL, 0, 0)) - { - if (gBattleMons[gActiveBank].type1 == TYPE_STEEL) - return FALSE; - if (gBattleMons[gActiveBank].type2 == TYPE_STEEL) - return FALSE; - } - if (gBattleTypeFlags & BATTLE_TYPE_ARENA) - return FALSE; - - availableToSwitch = 0; - if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - { - bankIn1 = *activeBankPtr; - if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankIdentity(*activeBankPtr) ^ BIT_MON)]) - bankIn2 = *activeBankPtr; - else - bankIn2 = GetBankByIdentity(GetBankIdentity(*activeBankPtr) ^ BIT_MON); - } - else - { - bankIn1 = *activeBankPtr; - bankIn2 = *activeBankPtr; - } - - if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) - { - if ((gActiveBank & BIT_MON) == 0) - firstId = 0, lastId = 3; - else - firstId = 3, lastId = 6; - } - else - { - firstId = 0, lastId = 6; - } - - if (GetBankSide(gActiveBank) == SIDE_PLAYER) - party = gPlayerParty; - else - party = gEnemyParty; - - for (i = firstId; i < lastId; i++) - { - if (GetMonData(&party[i], MON_DATA_HP) == 0) - continue; - if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_NONE) - continue; - if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_EGG) - continue; - if (i == gBattlePartyID[bankIn1]) - continue; - if (i == gBattlePartyID[bankIn2]) - continue; - if (i == *(gBattleStruct->field_5C + bankIn1)) - continue; - if (i == *(gBattleStruct->field_5C + bankIn2)) - continue; - - availableToSwitch++; - } - - if (availableToSwitch == 0) - return FALSE; - if (ShouldSwitchIfPerishSong()) - return TRUE; - if (ShouldSwitchIfWonderGuard()) - return TRUE; - if (FindMonThatAbsorbsOpponentsMove()) - return TRUE; - if (ShouldSwitchIfNaturalCure()) - return TRUE; - if (HasSuperEffectiveMoveAgainstOpponents(FALSE)) - return FALSE; - if (AreStatsRaised()) - return FALSE; - if (FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTAFFECTED, 2) - || FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTVERYEFFECTIVE, 3)) - return TRUE; - - return FALSE; -} - -void AI_TrySwitchOrUseItem(void) -{ - struct Pokemon *party; - u8 bankIn1, bankIn2; - s32 firstId; - s32 lastId; // + 1 - u8 bankIdentity = GetBankIdentity(gActiveBank); - - if (GetBankSide(gActiveBank) == SIDE_PLAYER) - party = gPlayerParty; - else - party = gEnemyParty; - - if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) - { - if (ShouldSwitch()) - { - if (*(gBattleStruct->field_294 + gActiveBank) == 6) - { - s32 monToSwitchId = GetMostSuitableMonToSwitchInto(); - if (monToSwitchId == 6) - { - if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) - { - bankIn1 = GetBankByIdentity(bankIdentity); - bankIn2 = bankIn1; - } - else - { - bankIn1 = GetBankByIdentity(bankIdentity); - bankIn2 = GetBankByIdentity(bankIdentity ^ BIT_MON); - } - - if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) - { - if ((gActiveBank & BIT_MON) == 0) - firstId = 0, lastId = 3; - else - firstId = 3, lastId = 6; - } - else - { - firstId = 0, lastId = 6; - } - - for (monToSwitchId = firstId; monToSwitchId < lastId; monToSwitchId++) - { - if (GetMonData(&party[monToSwitchId], MON_DATA_HP) == 0) - continue; - if (monToSwitchId == gBattlePartyID[bankIn1]) - continue; - if (monToSwitchId == gBattlePartyID[bankIn2]) - continue; - if (monToSwitchId == *(gBattleStruct->field_5C + bankIn1)) - continue; - if (monToSwitchId == *(gBattleStruct->field_5C + bankIn2)) - continue; - - break; - } - } - - *(gBattleStruct->field_294 + gActiveBank) = monToSwitchId; - } - - *(gBattleStruct->field_5C + gActiveBank) = *(gBattleStruct->field_294 + gActiveBank); - return; - } - else if (ShouldUseItem()) - { - return; - } - } - - EmitCmd_x21(1, 0, (gActiveBank ^ BIT_SIDE) << 8); -} - -#define TYPE_FORESIGHT 0xFE -#define TYPE_ENDTABLE 0xFF - -static void ModulateByTypeEffectiveness(u8 atkType, u8 defType1, u8 defType2, u8 *var) -{ - s32 i = 0; - - while (gTypeEffectiveness[i] != TYPE_ENDTABLE) - { - if (gTypeEffectiveness[i] == TYPE_FORESIGHT) - { - i += 3; - continue; - } - else if (gTypeEffectiveness[i] == atkType) - { - // check type1 - if (gTypeEffectiveness[i + 1] == defType1) - *var = (*var * gTypeEffectiveness[i + 2]) / 10; - // check type2 - if (gTypeEffectiveness[i + 1] == defType2 && defType1 != defType2) - *var = (*var * gTypeEffectiveness[i + 2]) / 10; - } - i += 3; - } -} - -u8 GetMostSuitableMonToSwitchInto(void) -{ - u8 opposingBank; - u8 bestDmg; // note : should be changed to u32 for obvious reasons - u8 bestMonId; - u8 bankIn1, bankIn2; - s32 firstId; - s32 lastId; // + 1 - struct Pokemon *party; - s32 i, j; - u8 invalidMons; - u16 move; - - if (*(gBattleStruct->field_5C + gActiveBank) != 6) - return *(gBattleStruct->field_5C + gActiveBank); - if (gBattleTypeFlags & BATTLE_TYPE_ARENA) - return gBattlePartyID[gActiveBank] + 1; - - if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - { - bankIn1 = gActiveBank; - if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)]) - bankIn2 = gActiveBank; - else - bankIn2 = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON); - - // UB: It considers the opponent only player's side even though it can battle alongside player; - opposingBank = Random() & BIT_MON; - if (gAbsentBankFlags & gBitTable[opposingBank]) - opposingBank ^= BIT_MON; - } - else - { - opposingBank = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_SIDE); - bankIn1 = gActiveBank; - bankIn2 = gActiveBank; - } - - if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) - { - if ((gActiveBank & BIT_MON) == 0) - firstId = 0, lastId = 3; - else - firstId = 3, lastId = 6; - } - else - { - firstId = 0, lastId = 6; - } - - if (GetBankSide(gActiveBank) == SIDE_PLAYER) - party = gPlayerParty; - else - party = gEnemyParty; - - invalidMons = 0; - - while (invalidMons != 0x3F) // all mons are invalid - { - bestDmg = 0; - bestMonId = 6; - // find the mon which type is the most suitable offensively - for (i = firstId; i < lastId; i++) - { - u16 species = GetMonData(&party[i], MON_DATA_SPECIES); - if (species != SPECIES_NONE - && GetMonData(&party[i], MON_DATA_HP) != 0 - && !(gBitTable[i] & invalidMons) - && gBattlePartyID[bankIn1] != i - && gBattlePartyID[bankIn2] != i - && i != *(gBattleStruct->field_5C + bankIn1) - && i != *(gBattleStruct->field_5C + bankIn2)) - { - u8 type1 = gBaseStats[species].type1; - u8 type2 = gBaseStats[species].type2; - u8 typeDmg = 10; - ModulateByTypeEffectiveness(gBattleMons[opposingBank].type1, type1, type2, &typeDmg); - ModulateByTypeEffectiveness(gBattleMons[opposingBank].type2, type1, type2, &typeDmg); - if (bestDmg < typeDmg) - { - bestDmg = typeDmg; - bestMonId = i; - } - } - else - { - invalidMons |= gBitTable[i]; - } - } - - // ok, we know the mon has the right typing but does it have at least one super effective move? - if (bestMonId != 6) - { - for (i = 0; i < 4; i++) - { - move = GetMonData(&party[bestMonId], MON_DATA_MOVE1 + i); - if (move != MOVE_NONE && TypeCalc(move, gActiveBank, opposingBank) & MOVESTATUS_SUPEREFFECTIVE) - break; - } - - if (i != 4) - return bestMonId; // has both the typing and at least one super effective move - - invalidMons |= gBitTable[bestMonId]; // sorry buddy, we want something better - } - else - { - invalidMons = 0x3F; // no viable mon to switch - } - } - - gDynamicBasePower = 0; - gBattleStruct->dynamicMoveType = 0; - gBattleScripting.dmgMultiplier = 1; - gBattleMoveFlags = 0; - gCritMultiplier = 1; - bestDmg = 0; - bestMonId = 6; - - // if we couldn't find the best mon in terms of typing, find the one that deals most damage - for (i = firstId; i < lastId; i++) - { - if ((u16)(GetMonData(&party[i], MON_DATA_SPECIES)) == SPECIES_NONE) - continue; - if (GetMonData(&party[i], MON_DATA_HP) == 0) - continue; - if (gBattlePartyID[bankIn1] == i) - continue; - if (gBattlePartyID[bankIn2] == i) - continue; - if (i == *(gBattleStruct->field_5C + bankIn1)) - continue; - if (i == *(gBattleStruct->field_5C + bankIn2)) - continue; - - for (j = 0; j < 4; j++) - { - move = GetMonData(&party[i], MON_DATA_MOVE1 + j); - gBattleMoveDamage = 0; - if (move != MOVE_NONE && gBattleMoves[move].power != 1) - { - AI_CalcDmg(gActiveBank, opposingBank); - TypeCalc(move, gActiveBank, opposingBank); - } - if (bestDmg < gBattleMoveDamage) - { - bestDmg = gBattleMoveDamage; - bestMonId = i; - } - } - } - - return bestMonId; -} diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c index bba66983b..24377eacc 100644 --- a/src/battle_ai_script_commands.c +++ b/src/battle_ai_script_commands.c @@ -331,7 +331,7 @@ void BattleAI_HandleItemUseBeforeAISetup(u8 defaultScoreMoves) { if (gTrainers[gTrainerBattleOpponent_A].items[i] != 0) { - gBattleResources->battleHistory->TrainerItems[gBattleResources->battleHistory->itemsNo] = gTrainers[gTrainerBattleOpponent_A].items[i]; + gBattleResources->battleHistory->trainerItems[gBattleResources->battleHistory->itemsNo] = gTrainers[gTrainerBattleOpponent_A].items[i]; gBattleResources->battleHistory->itemsNo++; } } diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c new file mode 100644 index 000000000..661759a98 --- /dev/null +++ b/src/battle_ai_switch_items.c @@ -0,0 +1,951 @@ +#include "global.h" +#include "battle.h" +#include "battle_controllers.h" +#include "abilities.h" +#include "moves.h" +#include "pokemon.h" +#include "species.h" +#include "rng.h" +#include "util.h" +#include "items.h" +#include "pokemon_item_effects.h" + +extern u8 gActiveBank; +extern u8 gAbsentBankFlags; +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 gDynamicBasePower; +extern u8 gBattleMoveFlags; +extern u8 gCritMultiplier; +extern s32 gBattleMoveDamage; + +extern const struct BattleMove gBattleMoves[]; +extern const struct BaseStats gBaseStats[]; +extern const u8 gTypeEffectiveness[]; +extern const u8 * const gItemEffectTable[]; // todo: fix once struct is declared + +// this file's functions +static bool8 HasSuperEffectiveMoveAgainstOpponents(bool8 noRng); +static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent); +static bool8 ShouldUseItem(void); + +static bool8 ShouldSwitchIfPerishSong(void) +{ + if (gStatuses3[gActiveBank] & STATUS3_PERISH_SONG + && gDisableStructs[gActiveBank].perishSong1 == 0) + { + *(gBattleStruct->field_294 + gActiveBank) = 6; + EmitCmd_x21(1, 2, 0); + return TRUE; + } + + return FALSE; +} + +static bool8 ShouldSwitchIfWonderGuard(void) +{ + u8 opposingIdentity; + u8 opposingBank; + u8 moveFlags; + s32 i, j; + s32 firstId; + s32 lastId; // + 1 + struct Pokemon *party = NULL; + u16 move; + + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + return FALSE; + + opposingIdentity = GetBankIdentity(gActiveBank) ^ BIT_SIDE; + + if (gBattleMons[GetBankByIdentity(opposingIdentity)].ability != ABILITY_WONDER_GUARD) + return FALSE; + + // check if pokemon has a super effective move + for (opposingBank = GetBankByIdentity(opposingIdentity), i = 0; i < 4; i++) + { + move = gBattleMons[gActiveBank].moves[i]; + if (move == MOVE_NONE) + continue; + + moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability); + if (moveFlags & MOVESTATUS_SUPEREFFECTIVE) + return FALSE; + } + + // get party information + if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) + { + if ((gActiveBank & BIT_MON) == 0) + firstId = 0, lastId = 3; + else + firstId = 3, lastId = 6; + } + else + { + firstId = 0, lastId = 6; + } + + if (GetBankSide(gActiveBank) == SIDE_PLAYER) + party = gPlayerParty; + else + party = gEnemyParty; + + // find a pokemon in the party that has a super effective move + for (i = firstId; i < lastId; i++) + { + if (GetMonData(&party[i], MON_DATA_HP) == 0) + continue; + if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_NONE) + continue; + if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_EGG) + continue; + if (i == gBattlePartyID[gActiveBank]) + continue; + + GetMonData(&party[i], MON_DATA_SPECIES); // unused return value + GetMonData(&party[i], MON_DATA_ALT_ABILITY); // unused return value + + for (opposingBank = GetBankByIdentity(opposingIdentity), j = 0; j < 4; j++) + { + move = GetMonData(&party[i], MON_DATA_MOVE1 + j); + if (move == MOVE_NONE) + continue; + + moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability); + if (moveFlags & MOVESTATUS_SUPEREFFECTIVE && Random() % 3 < 2) + { + // we found a mon + *(gBattleStruct->field_294 + gActiveBank) = i; + EmitCmd_x21(1, 2, 0); + return TRUE; + } + } + } + + return FALSE; // at this point there is not a single pokemon in the party that has a super effective move against a pokemon with wonder guard +} + +static bool8 FindMonThatAbsorbsOpponentsMove(void) +{ + u8 bankIn1, bankIn2; + u8 absorbingTypeAbility; + s32 firstId; + s32 lastId; // + 1 + struct Pokemon *party; + s32 i; + + if (HasSuperEffectiveMoveAgainstOpponents(TRUE) && Random() % 3 != 0) + return FALSE; + if (gUnknown_02024250[gActiveBank] == 0) + return FALSE; + if (gUnknown_02024250[gActiveBank] == 0xFFFF) + return FALSE; + if (gBattleMoves[gUnknown_02024250[gActiveBank]].power == 0) + return FALSE; + + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + bankIn1 = gActiveBank; + if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)]) + bankIn2 = gActiveBank; + else + bankIn2 = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON); + } + else + { + bankIn1 = gActiveBank; + bankIn2 = gActiveBank; + } + + if (gBattleMoves[gUnknown_02024250[gActiveBank]].type == TYPE_FIRE) + absorbingTypeAbility = ABILITY_FLASH_FIRE; + else if (gBattleMoves[gUnknown_02024250[gActiveBank]].type == TYPE_WATER) + absorbingTypeAbility = ABILITY_WATER_ABSORB; + else if (gBattleMoves[gUnknown_02024250[gActiveBank]].type == TYPE_ELECTRIC) + absorbingTypeAbility = ABILITY_VOLT_ABSORB; + else + return FALSE; + + if (gBattleMons[gActiveBank].ability == absorbingTypeAbility) + return FALSE; + + if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) + { + if ((gActiveBank & BIT_MON) == 0) + firstId = 0, lastId = 3; + else + firstId = 3, lastId = 6; + } + else + { + firstId = 0, lastId = 6; + } + + if (GetBankSide(gActiveBank) == SIDE_PLAYER) + party = gPlayerParty; + else + party = gEnemyParty; + + for (i = firstId; i < lastId; i++) + { + u16 species; + u8 monAbility; + + if (GetMonData(&party[i], MON_DATA_HP) == 0) + continue; + if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_NONE) + continue; + if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_EGG) + continue; + if (i == gBattlePartyID[bankIn1]) + continue; + if (i == gBattlePartyID[bankIn2]) + continue; + if (i == *(gBattleStruct->field_5C + bankIn1)) + continue; + if (i == *(gBattleStruct->field_5C + bankIn2)) + continue; + + species = GetMonData(&party[i], MON_DATA_SPECIES); + if (GetMonData(&party[i], MON_DATA_ALT_ABILITY) != 0) + monAbility = gBaseStats[species].ability2; + else + monAbility = gBaseStats[species].ability1; + + if (absorbingTypeAbility == monAbility && Random() & 1) + { + // we found a mon + *(gBattleStruct->field_294 + gActiveBank) = i; + EmitCmd_x21(1, 2, 0); + return TRUE; + } + } + + return FALSE; +} + +static bool8 ShouldSwitchIfNaturalCure(void) +{ + if (!(gBattleMons[gActiveBank].status1 & STATUS_SLEEP)) + return FALSE; + if (gBattleMons[gActiveBank].ability != ABILITY_NATURAL_CURE) + return FALSE; + if (gBattleMons[gActiveBank].hp < gBattleMons[gActiveBank].maxHP / 2) + return FALSE; + + if ((gUnknown_02024250[gActiveBank] == 0 || gUnknown_02024250[gActiveBank] == 0xFFFF) && Random() & 1) + { + *(gBattleStruct->field_294 + gActiveBank) = 6; + EmitCmd_x21(1, 2, 0); + return TRUE; + } + else if (gBattleMoves[gUnknown_02024250[gActiveBank]].power == 0 && Random() & 1) + { + *(gBattleStruct->field_294 + gActiveBank) = 6; + EmitCmd_x21(1, 2, 0); + return TRUE; + } + + if (FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTAFFECTED, 1)) + return TRUE; + if (FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTVERYEFFECTIVE, 1)) + return TRUE; + if (Random() & 1) + { + *(gBattleStruct->field_294 + gActiveBank) = 6; + EmitCmd_x21(1, 2, 0); + return TRUE; + } + + return FALSE; +} + +static bool8 HasSuperEffectiveMoveAgainstOpponents(bool8 noRng) +{ + u8 opposingIdentity; + u8 opposingBank; + s32 i; + u8 moveFlags; + u16 move; + + opposingIdentity = GetBankIdentity(gActiveBank) ^ BIT_SIDE; + opposingBank = GetBankByIdentity(opposingIdentity); + + if (!(gAbsentBankFlags & gBitTable[opposingBank])) + { + for (i = 0; i < 4; i++) + { + move = gBattleMons[gActiveBank].moves[i]; + if (move == MOVE_NONE) + continue; + + moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability); + if (moveFlags & MOVESTATUS_SUPEREFFECTIVE) + { + if (noRng) + return TRUE; + if (Random() % 10 != 0) + return TRUE; + } + } + } + if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) + return FALSE; + + opposingBank = GetBankByIdentity(opposingIdentity ^ BIT_MON); + + if (!(gAbsentBankFlags & gBitTable[opposingBank])) + { + for (i = 0; i < 4; i++) + { + move = gBattleMons[gActiveBank].moves[i]; + if (move == MOVE_NONE) + continue; + + moveFlags = AI_TypeCalc(move, gBattleMons[opposingBank].species, gBattleMons[opposingBank].ability); + if (moveFlags & MOVESTATUS_SUPEREFFECTIVE) + { + if (noRng) + return TRUE; + if (Random() % 10 != 0) + return TRUE; + } + } + } + + return FALSE; +} + +static bool8 AreStatsRaised(void) +{ + u8 buffedStatsValue = 0; + s32 i; + + for (i = 0; i < BATTLE_STATS_NO; i++) + { + if (gBattleMons[gActiveBank].statStages[i] > 6) + buffedStatsValue += gBattleMons[gActiveBank].statStages[i] - 6; + } + + return (buffedStatsValue > 3); +} + +static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent) +{ + u8 bankIn1, bankIn2; + s32 firstId; + s32 lastId; // + 1 + struct Pokemon *party; + s32 i, j; + u16 move; + u8 moveFlags; + + if (gUnknown_02024250[gActiveBank] == 0) + return FALSE; + if (gUnknown_02024250[gActiveBank] == 0xFFFF) + return FALSE; + if (gUnknown_02024270[gActiveBank] == 0xFF) + return FALSE; + if (gBattleMoves[gUnknown_02024250[gActiveBank]].power == 0) + return FALSE; + + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + bankIn1 = gActiveBank; + if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)]) + bankIn2 = gActiveBank; + else + bankIn2 = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON); + } + else + { + bankIn1 = gActiveBank; + bankIn2 = gActiveBank; + } + + if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) + { + if ((gActiveBank & BIT_MON) == 0) + firstId = 0, lastId = 3; + else + firstId = 3, lastId = 6; + } + else + { + firstId = 0, lastId = 6; + } + + if (GetBankSide(gActiveBank) == SIDE_PLAYER) + party = gPlayerParty; + else + party = gEnemyParty; + + for (i = firstId; i < lastId; i++) + { + u16 species; + u8 monAbility; + + if (GetMonData(&party[i], MON_DATA_HP) == 0) + continue; + if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_NONE) + continue; + if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_EGG) + continue; + if (i == gBattlePartyID[bankIn1]) + continue; + if (i == gBattlePartyID[bankIn2]) + continue; + if (i == *(gBattleStruct->field_5C + bankIn1)) + continue; + if (i == *(gBattleStruct->field_5C + bankIn2)) + continue; + + species = GetMonData(&party[i], MON_DATA_SPECIES); + if (GetMonData(&party[i], MON_DATA_ALT_ABILITY) != 0) + monAbility = gBaseStats[species].ability2; + else + monAbility = gBaseStats[species].ability1; + + moveFlags = AI_TypeCalc(gUnknown_02024250[gActiveBank], species, monAbility); + if (moveFlags & flags) + { + bankIn1 = gUnknown_02024270[gActiveBank]; + + for (j = 0; j < 4; j++) + { + move = GetMonData(&party[i], MON_DATA_MOVE1 + j); + if (move == 0) + continue; + + moveFlags = AI_TypeCalc(move, gBattleMons[bankIn1].species, gBattleMons[bankIn1].ability); + if (moveFlags & MOVESTATUS_SUPEREFFECTIVE && Random() % moduloPercent == 0) + { + *(gBattleStruct->field_294 + gActiveBank) = i; + EmitCmd_x21(1, 2, 0); + return TRUE; + } + } + } + } + + return FALSE; +} + +static bool8 ShouldSwitch(void) +{ + u8 bankIn1, bankIn2; + u8 *activeBankPtr; // needed to match + s32 firstId; + s32 lastId; // + 1 + struct Pokemon *party; + s32 i; + s32 availableToSwitch; + + if (gBattleMons[*(activeBankPtr = &gActiveBank)].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)) + return FALSE; + if (gStatuses3[gActiveBank] & STATUS3_ROOTED) + return FALSE; + if (AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBank, ABILITY_SHADOW_TAG, 0, 0)) + return FALSE; + if (AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, gActiveBank, ABILITY_ARENA_TRAP, 0, 0)) + return FALSE; // misses the flying or levitate check + if (AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, ABILITY_MAGNET_PULL, 0, 0)) + { + if (gBattleMons[gActiveBank].type1 == TYPE_STEEL) + return FALSE; + if (gBattleMons[gActiveBank].type2 == TYPE_STEEL) + return FALSE; + } + if (gBattleTypeFlags & BATTLE_TYPE_ARENA) + return FALSE; + + availableToSwitch = 0; + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + bankIn1 = *activeBankPtr; + if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankIdentity(*activeBankPtr) ^ BIT_MON)]) + bankIn2 = *activeBankPtr; + else + bankIn2 = GetBankByIdentity(GetBankIdentity(*activeBankPtr) ^ BIT_MON); + } + else + { + bankIn1 = *activeBankPtr; + bankIn2 = *activeBankPtr; + } + + if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) + { + if ((gActiveBank & BIT_MON) == 0) + firstId = 0, lastId = 3; + else + firstId = 3, lastId = 6; + } + else + { + firstId = 0, lastId = 6; + } + + if (GetBankSide(gActiveBank) == SIDE_PLAYER) + party = gPlayerParty; + else + party = gEnemyParty; + + for (i = firstId; i < lastId; i++) + { + if (GetMonData(&party[i], MON_DATA_HP) == 0) + continue; + if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_NONE) + continue; + if (GetMonData(&party[i], MON_DATA_SPECIES2) == SPECIES_EGG) + continue; + if (i == gBattlePartyID[bankIn1]) + continue; + if (i == gBattlePartyID[bankIn2]) + continue; + if (i == *(gBattleStruct->field_5C + bankIn1)) + continue; + if (i == *(gBattleStruct->field_5C + bankIn2)) + continue; + + availableToSwitch++; + } + + if (availableToSwitch == 0) + return FALSE; + if (ShouldSwitchIfPerishSong()) + return TRUE; + if (ShouldSwitchIfWonderGuard()) + return TRUE; + if (FindMonThatAbsorbsOpponentsMove()) + return TRUE; + if (ShouldSwitchIfNaturalCure()) + return TRUE; + if (HasSuperEffectiveMoveAgainstOpponents(FALSE)) + return FALSE; + if (AreStatsRaised()) + return FALSE; + if (FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTAFFECTED, 2) + || FindMonWithFlagsAndSuperEffective(MOVESTATUS_NOTVERYEFFECTIVE, 3)) + return TRUE; + + return FALSE; +} + +void AI_TrySwitchOrUseItem(void) +{ + struct Pokemon *party; + u8 bankIn1, bankIn2; + s32 firstId; + s32 lastId; // + 1 + u8 bankIdentity = GetBankIdentity(gActiveBank); + + if (GetBankSide(gActiveBank) == SIDE_PLAYER) + party = gPlayerParty; + else + party = gEnemyParty; + + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) + { + if (ShouldSwitch()) + { + if (*(gBattleStruct->field_294 + gActiveBank) == 6) + { + s32 monToSwitchId = GetMostSuitableMonToSwitchInto(); + if (monToSwitchId == 6) + { + if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) + { + bankIn1 = GetBankByIdentity(bankIdentity); + bankIn2 = bankIn1; + } + else + { + bankIn1 = GetBankByIdentity(bankIdentity); + bankIn2 = GetBankByIdentity(bankIdentity ^ BIT_MON); + } + + if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) + { + if ((gActiveBank & BIT_MON) == 0) + firstId = 0, lastId = 3; + else + firstId = 3, lastId = 6; + } + else + { + firstId = 0, lastId = 6; + } + + for (monToSwitchId = firstId; monToSwitchId < lastId; monToSwitchId++) + { + if (GetMonData(&party[monToSwitchId], MON_DATA_HP) == 0) + continue; + if (monToSwitchId == gBattlePartyID[bankIn1]) + continue; + if (monToSwitchId == gBattlePartyID[bankIn2]) + continue; + if (monToSwitchId == *(gBattleStruct->field_5C + bankIn1)) + continue; + if (monToSwitchId == *(gBattleStruct->field_5C + bankIn2)) + continue; + + break; + } + } + + *(gBattleStruct->field_294 + gActiveBank) = monToSwitchId; + } + + *(gBattleStruct->field_5C + gActiveBank) = *(gBattleStruct->field_294 + gActiveBank); + return; + } + else if (ShouldUseItem()) + { + return; + } + } + + EmitCmd_x21(1, 0, (gActiveBank ^ BIT_SIDE) << 8); +} + +#define TYPE_FORESIGHT 0xFE +#define TYPE_ENDTABLE 0xFF + +static void ModulateByTypeEffectiveness(u8 atkType, u8 defType1, u8 defType2, u8 *var) +{ + s32 i = 0; + + while (gTypeEffectiveness[i] != TYPE_ENDTABLE) + { + if (gTypeEffectiveness[i] == TYPE_FORESIGHT) + { + i += 3; + continue; + } + else if (gTypeEffectiveness[i] == atkType) + { + // check type1 + if (gTypeEffectiveness[i + 1] == defType1) + *var = (*var * gTypeEffectiveness[i + 2]) / 10; + // check type2 + if (gTypeEffectiveness[i + 1] == defType2 && defType1 != defType2) + *var = (*var * gTypeEffectiveness[i + 2]) / 10; + } + i += 3; + } +} + +u8 GetMostSuitableMonToSwitchInto(void) +{ + u8 opposingBank; + u8 bestDmg; // note : should be changed to u32 for obvious reasons + u8 bestMonId; + u8 bankIn1, bankIn2; + s32 firstId; + s32 lastId; // + 1 + struct Pokemon *party; + s32 i, j; + u8 invalidMons; + u16 move; + + if (*(gBattleStruct->field_5C + gActiveBank) != 6) + return *(gBattleStruct->field_5C + gActiveBank); + if (gBattleTypeFlags & BATTLE_TYPE_ARENA) + return gBattlePartyID[gActiveBank] + 1; + + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + bankIn1 = gActiveBank; + if (gAbsentBankFlags & gBitTable[GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON)]) + bankIn2 = gActiveBank; + else + bankIn2 = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_MON); + + // UB: It considers the opponent only player's side even though it can battle alongside player; + opposingBank = Random() & BIT_MON; + if (gAbsentBankFlags & gBitTable[opposingBank]) + opposingBank ^= BIT_MON; + } + else + { + opposingBank = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ BIT_SIDE); + bankIn1 = gActiveBank; + bankIn2 = gActiveBank; + } + + if (gBattleTypeFlags & (BATTLE_TYPE_TWO_OPPONENTS | BATTLE_TYPE_x800000)) + { + if ((gActiveBank & BIT_MON) == 0) + firstId = 0, lastId = 3; + else + firstId = 3, lastId = 6; + } + else + { + firstId = 0, lastId = 6; + } + + if (GetBankSide(gActiveBank) == SIDE_PLAYER) + party = gPlayerParty; + else + party = gEnemyParty; + + invalidMons = 0; + + while (invalidMons != 0x3F) // all mons are invalid + { + bestDmg = 0; + bestMonId = 6; + // find the mon which type is the most suitable offensively + for (i = firstId; i < lastId; i++) + { + u16 species = GetMonData(&party[i], MON_DATA_SPECIES); + if (species != SPECIES_NONE + && GetMonData(&party[i], MON_DATA_HP) != 0 + && !(gBitTable[i] & invalidMons) + && gBattlePartyID[bankIn1] != i + && gBattlePartyID[bankIn2] != i + && i != *(gBattleStruct->field_5C + bankIn1) + && i != *(gBattleStruct->field_5C + bankIn2)) + { + u8 type1 = gBaseStats[species].type1; + u8 type2 = gBaseStats[species].type2; + u8 typeDmg = 10; + ModulateByTypeEffectiveness(gBattleMons[opposingBank].type1, type1, type2, &typeDmg); + ModulateByTypeEffectiveness(gBattleMons[opposingBank].type2, type1, type2, &typeDmg); + if (bestDmg < typeDmg) + { + bestDmg = typeDmg; + bestMonId = i; + } + } + else + { + invalidMons |= gBitTable[i]; + } + } + + // ok, we know the mon has the right typing but does it have at least one super effective move? + if (bestMonId != 6) + { + for (i = 0; i < 4; i++) + { + move = GetMonData(&party[bestMonId], MON_DATA_MOVE1 + i); + if (move != MOVE_NONE && TypeCalc(move, gActiveBank, opposingBank) & MOVESTATUS_SUPEREFFECTIVE) + break; + } + + if (i != 4) + return bestMonId; // has both the typing and at least one super effective move + + invalidMons |= gBitTable[bestMonId]; // sorry buddy, we want something better + } + else + { + invalidMons = 0x3F; // no viable mon to switch + } + } + + gDynamicBasePower = 0; + gBattleStruct->dynamicMoveType = 0; + gBattleScripting.dmgMultiplier = 1; + gBattleMoveFlags = 0; + gCritMultiplier = 1; + bestDmg = 0; + bestMonId = 6; + + // if we couldn't find the best mon in terms of typing, find the one that deals most damage + for (i = firstId; i < lastId; i++) + { + if ((u16)(GetMonData(&party[i], MON_DATA_SPECIES)) == SPECIES_NONE) + continue; + if (GetMonData(&party[i], MON_DATA_HP) == 0) + continue; + if (gBattlePartyID[bankIn1] == i) + continue; + if (gBattlePartyID[bankIn2] == i) + continue; + if (i == *(gBattleStruct->field_5C + bankIn1)) + continue; + if (i == *(gBattleStruct->field_5C + bankIn2)) + continue; + + for (j = 0; j < 4; j++) + { + move = GetMonData(&party[i], MON_DATA_MOVE1 + j); + gBattleMoveDamage = 0; + if (move != MOVE_NONE && gBattleMoves[move].power != 1) + { + AI_CalcDmg(gActiveBank, opposingBank); + TypeCalc(move, gActiveBank, opposingBank); + } + if (bestDmg < gBattleMoveDamage) + { + bestDmg = gBattleMoveDamage; + bestMonId = i; + } + } + } + + return bestMonId; +} + +// TODO: use PokemonItemEffect struct instead of u8 once it's documented +static u8 GetAI_ItemType(u8 itemId, const u8 *itemEffect) // NOTE: should take u16 as item Id argument +{ + if (itemId == ITEM_FULL_RESTORE) + return AI_ITEM_FULL_RESTORE; + if (itemEffect[4] & 4) + return AI_ITEM_HEAL_HP; + if (itemEffect[3] & 0x3F) + return AI_ITEM_CURE_CONDITION; + if (itemEffect[0] & 0x3F || itemEffect[1] != 0 || itemEffect[2] != 0) + return AI_ITEM_X_STAT; + if (itemEffect[3] & 0x80) + return AI_ITEM_GUARD_SPECS; + + return AI_ITEM_NOT_RECOGNIZABLE; +} + +static bool8 ShouldUseItem(void) +{ + struct Pokemon *party; + s32 i; + u8 validMons = 0; + bool8 shouldUse = FALSE; + + if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && GetBankIdentity(gActiveBank) == IDENTITY_PLAYER_MON2) + return FALSE; + + if (GetBankSide(gActiveBank) == SIDE_PLAYER) + party = gPlayerParty; + else + party = gEnemyParty; + + for (i = 0; i < 6; i++) + { + if (GetMonData(&party[i], MON_DATA_HP) != 0 + && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_NONE + && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG) + { + validMons++; + } + } + + for (i = 0; i < 4; i++) + { + u16 item; + const u8 *itemEffects; + u8 paramOffset; + u8 bankSide; + + if (i != 0 && validMons > (gBattleResources->battleHistory->itemsNo - i) + 1) + continue; + item = gBattleResources->battleHistory->trainerItems[i]; + if (item == ITEM_NONE) + continue; + if (gItemEffectTable[item - 13] == NULL) + continue; + + if (item == ITEM_ENIGMA_BERRY) + itemEffects = gSaveBlock1Ptr->enigmaBerry.itemEffect; + else + itemEffects = gItemEffectTable[item - 13]; + + *(gBattleStruct->AI_itemType + gActiveBank / 2) = GetAI_ItemType(item, itemEffects); + + switch (*(gBattleStruct->AI_itemType + gActiveBank / 2)) + { + case AI_ITEM_FULL_RESTORE: + if (gBattleMons[gActiveBank].hp >= gBattleMons[gActiveBank].maxHP / 4) + break; + if (gBattleMons[gActiveBank].hp == 0) + break; + shouldUse = TRUE; + break; + case AI_ITEM_HEAL_HP: + paramOffset = GetItemEffectParamOffset(item, 4, 4); + if (paramOffset == 0) + break; + if (gBattleMons[gActiveBank].hp == 0) + break; + if (gBattleMons[gActiveBank].hp < gBattleMons[gActiveBank].maxHP / 4 || gBattleMons[gActiveBank].maxHP - gBattleMons[gActiveBank].hp > itemEffects[paramOffset]) + shouldUse = TRUE; + break; + case AI_ITEM_CURE_CONDITION: + *(gBattleStruct->AI_itemFlags + gActiveBank / 2) = 0; + if (itemEffects[3] & 0x20 && gBattleMons[gActiveBank].status1 & STATUS_SLEEP) + { + *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x20; + shouldUse = TRUE; + } + if (itemEffects[3] & 0x10 && (gBattleMons[gActiveBank].status1 & STATUS_POISON || gBattleMons[gActiveBank].status1 & STATUS_TOXIC_POISON)) + { + *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x10; + shouldUse = TRUE; + } + if (itemEffects[3] & 0x8 && gBattleMons[gActiveBank].status1 & STATUS_BURN) + { + *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x8; + shouldUse = TRUE; + } + if (itemEffects[3] & 0x4 && gBattleMons[gActiveBank].status1 & STATUS_FREEZE) + { + *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x4; + shouldUse = TRUE; + } + if (itemEffects[3] & 0x2 && gBattleMons[gActiveBank].status1 & STATUS_PARALYSIS) + { + *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x2; + shouldUse = TRUE; + } + if (itemEffects[3] & 0x1 && gBattleMons[gActiveBank].status2 & STATUS2_CONFUSION) + { + *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x1; + shouldUse = TRUE; + } + break; + case AI_ITEM_X_STAT: + *(gBattleStruct->AI_itemFlags + gActiveBank / 2) = 0; + if (gDisableStructs[gActiveBank].isFirstTurn == 0) + break; + if (itemEffects[0] & 0xF) + *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x1; + if (itemEffects[1] & 0xF0) + *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x2; + if (itemEffects[1] & 0xF) + *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x4; + if (itemEffects[2] & 0xF) + *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x8; + if (itemEffects[2] & 0xF0) + *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x20; + if (itemEffects[0] & 0x30) + *(gBattleStruct->AI_itemFlags + gActiveBank / 2) |= 0x80; + shouldUse = TRUE; + break; + case AI_ITEM_GUARD_SPECS: + bankSide = GetBankSide(gActiveBank); + if (gDisableStructs[gActiveBank].isFirstTurn != 0 && gSideTimers[bankSide].mistTimer == 0) + shouldUse = TRUE; + break; + case AI_ITEM_NOT_RECOGNIZABLE: + return FALSE; + } + + if (shouldUse) + { + EmitCmd_x21(1, 1, 0); + *(gBattleStruct->field_C0 + (gActiveBank / 2) * 2) = item; + gBattleResources->battleHistory->trainerItems[i] = 0; + return shouldUse; + } + } + + return FALSE; +} -- cgit v1.2.3 From 31eeff93197619c653d5e9da8ed131c0aa368a82 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Tue, 10 Oct 2017 21:28:32 -0500 Subject: Use less cd and more vars --- Makefile | 109 +++++++++++++++++++++++++++++++++++---------------------------- 1 file changed, 61 insertions(+), 48 deletions(-) diff --git a/Makefile b/Makefile index d10505145..ca8348f68 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,19 @@ SHELL := /bin/bash -o pipefail +ROM := pokeemerald.gba +OBJ_DIR := build/emerald + +ELF = $(ROM:.gba=.elf) +MAP = $(ROM:.gba=.map) + +C_SUBDIR = src +ASM_SUBDIR = asm +DATA_ASM_SUBDIR = data + +C_BUILDDIR = $(OBJ_DIR)/$(C_SUBDIR) +ASM_BUILDDIR = $(OBJ_DIR)/$(ASM_SUBDIR) +DATA_ASM_BUILDDIR = $(OBJ_DIR)/$(DATA_ASM_SUBDIR) + AS := $(DEVKITARM)/bin/arm-none-eabi-as ASFLAGS := -mcpu=arm7tdmi @@ -10,7 +24,7 @@ CPP := $(DEVKITARM)/bin/arm-none-eabi-cpp CPPFLAGS := -I tools/agbcc/include -iquote include -nostdinc -undef LD := $(DEVKITARM)/bin/arm-none-eabi-ld -LDFLAGS := -T ld_script.ld -Map ../../pokeemerald.map +LDFLAGS = -Map $(MAP) OBJCOPY := $(DEVKITARM)/bin/arm-none-eabi-objcopy @@ -20,7 +34,7 @@ SHA1 := sha1sum -c GFX := tools/gbagfx/gbagfx AIF := tools/aif2pcm/aif2pcm -MID := tools/mid2agb/mid2agb +MID := $(abspath tools/mid2agb/mid2agb) SCANINC := tools/scaninc/scaninc PREPROC := tools/preproc/preproc RAMSCRGEN := tools/ramscrgen/ramscrgen @@ -35,24 +49,19 @@ RAMSCRGEN := tools/ramscrgen/ramscrgen .PHONY: rom clean compare tidy +$(shell mkdir -p $(C_BUILDDIR) $(ASM_BUILDDIR) $(DATA_ASM_BUILDDIR)) -$(shell mkdir -p build/ build/emerald/{,asm,data,src}) - -C_SRCS := $(wildcard src/*.c) -C_OBJS := $(C_SRCS:%.c=build/emerald/%.o) +C_SRCS := $(wildcard $(C_SUBDIR)/*.c) +C_OBJS := $(patsubst $(C_SUBDIR)/%.c,$(C_BUILDDIR)/%.o,$(C_SRCS)) -ASM_SRCS := $(wildcard asm/*.s) -ASM_OBJS := $(ASM_SRCS:%.s=build/emerald/%.o) +ASM_SRCS := $(wildcard $(ASM_SUBDIR)/*.s) +ASM_OBJS := $(patsubst $(ASM_SUBDIR)/%.s,$(ASM_BUILDDIR)/%.o,$(ASM_SRCS)) -DATA_ASM_SRCS := $(wildcard data/*.s) -DATA_ASM_OBJS := $(DATA_ASM_SRCS:%.s=build/emerald/%.o) +DATA_ASM_SRCS := $(wildcard $(DATA_ASM_SUBDIR)/*.s) +DATA_ASM_OBJS := $(patsubst $(DATA_ASM_SUBDIR)/%.s,$(DATA_ASM_BUILDDIR)/%.o,$(DATA_ASM_SRCS)) OBJS := $(C_OBJS) $(ASM_OBJS) $(DATA_ASM_OBJS) - -$OBJS_REL := $(OBJS:build/emerald/%=%) - -ROM := pokeemerald.gba -ELF := $(ROM:.gba=.elf) +OBJS_REL := $(patsubst $(OBJ_DIR)/%,%,$(OBJS)) rom: $(ROM) @@ -64,7 +73,7 @@ clean: tidy find . \( -iname '*.1bpp' -o -iname '*.4bpp' -o -iname '*.8bpp' -o -iname '*.gbapal' -o -iname '*.lz' -o -iname '*.latfont' -o -iname '*.hwjpnfont' -o -iname '*.fwjpnfont' \) -exec rm {} + tidy: - rm -f pokeemerald.{gba,map,elf} + rm -f $(ROM) $(ELF) $(MAP) rm -r build/* include graphics_file_rules.mk @@ -80,58 +89,62 @@ include graphics_file_rules.mk %.lz: % ; $(GFX) $< $@ %.rl: % ; $(GFX) $< $@ -%src/libc.o: CC1 := tools/agbcc/bin/old_agbcc -%src/libc.o: CFLAGS := -O2 +$(C_BUILDDIR)/libc.o: CC1 := tools/agbcc/bin/old_agbcc +$(C_BUILDDIR)/libc.o: CFLAGS := -O2 -%src/siirtc.o: CFLAGS := -mthumb-interwork +$(C_BUILDDIR)/siirtc.o: CFLAGS := -mthumb-interwork -%src/agb_flash.o: CFLAGS := -O -mthumb-interwork -%src/agb_flash_1m.o: CFLAGS := -O -mthumb-interwork -%src/agb_flash_mx.o: CFLAGS := -O -mthumb-interwork +$(C_BUILDDIR)/agb_flash.o: CFLAGS := -O -mthumb-interwork +$(C_BUILDDIR)/agb_flash_1m.o: CFLAGS := -O -mthumb-interwork +$(C_BUILDDIR)/agb_flash_mx.o: CFLAGS := -O -mthumb-interwork -%src/m4a_2.o: CC1 := tools/agbcc/bin/old_agbcc -%src/m4a_4.o: CC1 := tools/agbcc/bin/old_agbcc +$(C_BUILDDIR)/m4a_2.o: CC1 := tools/agbcc/bin/old_agbcc +$(C_BUILDDIR)/m4a_4.o: CC1 := tools/agbcc/bin/old_agbcc ifeq ($(NODEP),) -build/emerald/src/%.o: c_dep = $(shell $(SCANINC) src/$(*F).c) +$(C_BUILDDIR)/%.o: c_dep = $(shell $(SCANINC) $(C_SUBDIR)/$*.c) else -build/emerald/src/%.o: c_dep := +$(C_BUILDDIR)/%.o: c_dep := endif -build/emerald/%.o : %.c $$(c_dep) - @$(CPP) $(CPPFLAGS) $< -o build/emerald/$*.i - @$(PREPROC) build/emerald/$*.i charmap.txt | $(CC1) $(CFLAGS) -o build/emerald/$*.s - @echo -e ".text\n\t.align\t2, 0\n" >> build/emerald/$*.s - $(AS) $(ASFLAGS) -o $@ build/emerald/$*.s +$(C_BUILDDIR)/%.o : $(C_SUBDIR)/%.c $$(c_dep) + @$(CPP) $(CPPFLAGS) $< -o $(C_BUILDDIR)/$*.i + @$(PREPROC) $(C_BUILDDIR)/$*.i charmap.txt | $(CC1) $(CFLAGS) -o $(C_BUILDDIR)/$*.s + @echo -e ".text\n\t.align\t2, 0\n" >> $(C_BUILDDIR)/$*.s + $(AS) $(ASFLAGS) -o $@ $(C_BUILDDIR)/$*.s ifeq ($(NODEP),) -build/emerald/asm/%.o: asm_dep = $(shell $(SCANINC) asm/$(*F).s) -build/emerald/data/%.o: asm_dep = $(shell $(SCANINC) data/$(*F).s) +$(ASM_BUILDDIR)/%.o: asm_dep = $(shell $(SCANINC) $(ASM_SUBDIR)/$*.s) else -build/emerald/asm/%.o: asm_dep := -build/emerald/data/%.o: asm_dep := +$(ASM_BUILDDIR)/%.o: asm_dep := endif -build/emerald/asm/%.o: asm/%.s $$(asm_dep) +$(ASM_BUILDDIR)/%.o: $(ASM_SUBDIR)/%.s $$(asm_dep) $(AS) $(ASFLAGS) -o $@ $< -build/emerald/data/%.o: data/%.s $$(asm_dep) +ifeq ($(NODEP),) +$(DATA_ASM_BUILDDIR)/%.o: data_dep = $(shell $(SCANINC) $(DATA_ASM_SUBDIR)/$*.s) +else +$(DATA_ASM_BUILDDIR)/%.o: data_dep := +endif + +$(DATA_ASM_BUILDDIR)/%.o: $(DATA_ASM_SUBDIR)/%.s $$(data_dep) $(PREPROC) $< charmap.txt | $(AS) $(ASFLAGS) -o $@ -build/emerald/sym_bss.ld: sym_bss.txt - cd build/emerald && ../../$(RAMSCRGEN) .bss ../../sym_bss.txt ENGLISH >sym_bss.ld +$(OBJ_DIR)/sym_bss.ld: sym_bss.txt + $(RAMSCRGEN) .bss $< ENGLISH > $@ -build/emerald/sym_common.ld: sym_common.txt $(C_OBJS) $(wildcard common_syms/*.txt) - cd build/emerald && ../../$(RAMSCRGEN) COMMON ../../sym_common.txt ENGLISH -c src,../../common_syms >sym_common.ld +$(OBJ_DIR)/sym_common.ld: sym_common.txt $(C_OBJS) $(wildcard common_syms/*.txt) + $(RAMSCRGEN) COMMON $< ENGLISH -c $(C_BUILDDIR),common_syms > $@ -build/emerald/sym_ewram.ld: sym_ewram.txt - cd build/emerald && ../../$(RAMSCRGEN) ewram_data ../../sym_ewram.txt ENGLISH >sym_ewram.ld +$(OBJ_DIR)/sym_ewram.ld: sym_ewram.txt + $(RAMSCRGEN) ewram_data $< ENGLISH > $@ -build/emerald/ld_script.ld: ld_script.txt build/emerald/sym_bss.ld build/emerald/sym_common.ld build/emerald/sym_ewram.ld - cd build/emerald && sed -f ../../ld_script.sed ../../ld_script.txt | sed "s#tools/#../../tools/#g" | sed "s#sound/#../../sound/#g" >ld_script.ld +$(OBJ_DIR)/ld_script.ld: ld_script.txt $(OBJ_DIR)/sym_bss.ld $(OBJ_DIR)/sym_common.ld $(OBJ_DIR)/sym_ewram.ld + cd $(OBJ_DIR) && sed -f ../../ld_script.sed ../../$< | sed "s#tools/#../../tools/#g" | sed "s#sound/#../../sound/#g" > ld_script.ld -pokeemerald.elf: build/emerald/ld_script.ld $(OBJS) - cd build/emerald && $(LD) $(LDFLAGS) -o ../../$@ $(OBJS_REL) ../../$(LIBGCC) +$(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS) + cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ $(OBJS_REL) ../../$(LIBGCC) -pokeemerald.gba: %.gba: %.elf +$(ROM): $(ELF) $(OBJCOPY) -O binary --gap-fill 0xFF --pad-to 0x9000000 $< $@ -- cgit v1.2.3 From f1b6358047dff266db01545d4a5927047e6756df Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Thu, 12 Oct 2017 02:06:19 -0500 Subject: Port/decomp scrcmd --- asm/battle_frontier_1.s | 6 +- asm/battle_frontier_2.s | 8 +- asm/battle_setup.s | 64 +- asm/battle_tower.s | 14 +- asm/battle_transition.s | 4 +- asm/bike.s | 4 +- asm/cable_club.s | 22 +- asm/clock.s | 6 +- asm/coins.s | 16 +- asm/contest.s | 12 +- asm/contest_ai.s | 2 +- asm/contest_effect.s | 2 +- asm/contest_link_80F57C4.s | 10 +- asm/contest_link_81D9DE4.s | 2 +- asm/decoration.s | 4 +- asm/decoration_inventory.s | 6 +- asm/easy_chat.s | 2 +- asm/field_door.s | 36 +- asm/field_effect.s | 54 +- asm/field_effect_helpers.s | 56 +- asm/field_ground_effect.s | 24 +- asm/field_message_box.s | 24 +- asm/field_player_avatar.s | 8 +- asm/field_poison.s | 4 +- asm/field_screen.s | 34 +- asm/field_tasks.s | 8 +- asm/fldeff_80F9BCC.s | 32 +- asm/fldeff_cut.s | 4 +- asm/fldeff_groundshake.s | 4 +- asm/fldeff_strength.s | 4 +- asm/fldeff_sweetscent.s | 2 +- asm/fldeff_teleport.s | 2 +- asm/item.s | 12 +- asm/item_menu.s | 2 +- asm/item_use.s | 4 +- asm/link.s | 8 +- asm/map_obj_8097404.s | 10 +- asm/map_obj_lock.s | 16 +- asm/mauville_old_man.s | 2 +- asm/mystery_event_script.s | 8 +- asm/party_menu.s | 12 +- asm/player_pc.s | 2 +- asm/pokemon_storage_system.s | 2 +- asm/record_mixing.s | 2 +- asm/rom4.s | 114 +- asm/rom6.s | 84 +- asm/scrcmd.s | 5744 -------------------------- asm/script_menu.s | 38 +- asm/script_movement.s | 12 +- asm/script_pokemon_util_80F87D8.s | 34 +- asm/secret_base.s | 4 +- asm/shop.s | 2 +- asm/slot_machine.s | 6 +- asm/trainer_rematch.s | 2 +- asm/trainer_see.s | 12 +- asm/tv.s | 100 +- data/event_script_command_function_table.inc | 454 +- data/event_scripts.s | 6 +- data/scrcmd.s | 14 - include/battle_frontier_2.h | 9 + include/battle_setup.h | 9 + include/clock.h | 8 + include/coins.h | 4 +- include/contest_link_80F57C4.h | 8 + include/contest_painting.h | 6 + include/data2.h | 9 + include/decoration.h | 18 + include/decoration_inventory.h | 10 + include/event_data.h | 2 +- include/field_door.h | 11 + include/field_effect.h | 9 +- include/field_fadetransition.h | 12 + include/field_map_obj.h | 3 + include/field_map_obj_helpers.h | 7 + include/field_message_box.h | 10 + include/field_player_avatar.h | 6 +- include/field_screen_effect.h | 8 + include/field_specials.h | 6 + include/field_tasks.h | 6 + include/field_weather.h | 12 + include/fieldmap.h | 10 +- include/item.h | 1 + include/map_obj_lock.h | 11 + include/money.h | 2 +- include/mystery_event_script.h | 8 + include/new_menu_helpers.h | 8 + include/overworld.h | 58 + include/palette.h | 3 + include/party_menu.h | 6 + include/pokemon_3.h | 7 + include/rom4.h | 33 - include/script_menu.h | 13 + include/script_movement.h | 8 + include/script_pokemon_80F8.h | 10 + include/script_pokemon_81B9.h | 6 + include/shop.h | 8 + include/slot_machine.h | 6 + include/text.h | 1 + include/trainer_see.h | 1 + include/tv.h | 7 + ld_script.txt | 4 +- src/braille_puzzles.c | 8 +- src/coins.c | 2 +- src/event_data.c | 52 +- src/field_map_obj.c | 28 +- src/field_special_scene.c | 18 +- src/lilycove_lady.c | 2 +- src/money.c | 4 +- src/new_game.c | 4 +- src/palette.c | 6 +- src/pokemon_2.c | 2 +- src/reset_save_heap.c | 2 +- src/safari_zone.c | 2 +- src/scrcmd.c | 2438 ++++++++++- sym_ewram.txt | 23 +- 115 files changed, 3540 insertions(+), 6621 deletions(-) delete mode 100644 asm/scrcmd.s delete mode 100644 data/scrcmd.s create mode 100644 include/battle_frontier_2.h create mode 100644 include/clock.h create mode 100644 include/contest_link_80F57C4.h create mode 100644 include/contest_painting.h create mode 100644 include/data2.h create mode 100644 include/decoration.h create mode 100644 include/decoration_inventory.h create mode 100644 include/field_door.h create mode 100644 include/field_fadetransition.h create mode 100644 include/field_map_obj_helpers.h create mode 100644 include/field_message_box.h create mode 100644 include/field_screen_effect.h create mode 100644 include/field_specials.h create mode 100644 include/field_tasks.h create mode 100644 include/field_weather.h create mode 100644 include/map_obj_lock.h create mode 100644 include/mystery_event_script.h create mode 100644 include/new_menu_helpers.h create mode 100644 include/overworld.h create mode 100644 include/party_menu.h create mode 100644 include/pokemon_3.h delete mode 100644 include/rom4.h create mode 100644 include/script_menu.h create mode 100644 include/script_movement.h create mode 100644 include/script_pokemon_80F8.h create mode 100644 include/script_pokemon_81B9.h create mode 100644 include/shop.h create mode 100644 include/slot_machine.h create mode 100644 include/tv.h diff --git a/asm/battle_frontier_1.s b/asm/battle_frontier_1.s index 4c44855f9..7ac60f1be 100755 --- a/asm/battle_frontier_1.s +++ b/asm/battle_frontier_1.s @@ -14296,7 +14296,7 @@ sub_81963F0: @ 81963F0 adds r0, r1 bl FieldObjectClearAnimIfSpecialAnimFinished bl sub_80D338C - bl sub_809757C + bl UnfreezeMapObjects bl ScriptContext2_Disable _08196446: movs r0, 0x1 @@ -14680,7 +14680,7 @@ sub_8196748: @ 8196748 ldr r4, =gUnknown_085500A4 _08196750: ldrh r0, [r4] - bl trainer_flag_check + bl HasTrainerAlreadyBeenFought lsls r0, 24 cmp r0, 0 beq _0819675E @@ -14706,7 +14706,7 @@ sub_8196774: @ 8196774 ldr r5, =gUnknown_085500A4 _0819677E: ldrh r0, [r5] - bl trainer_flag_check + bl HasTrainerAlreadyBeenFought lsls r0, 24 cmp r0, 0 beq _0819679A diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s index 9e01d22d1..785cfc0a5 100755 --- a/asm/battle_frontier_2.s +++ b/asm/battle_frontier_2.s @@ -27306,7 +27306,7 @@ _081A8A74: ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] adds r3, r7, 0 - bl exec_movement + bl ScriptMovement_StartObjectMovementScript b _081A8AD4 .pool _081A8ACC: @@ -27540,7 +27540,7 @@ _081A8C72: ldr r2, [r1] ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] - bl exec_movement + bl ScriptMovement_StartObjectMovementScript b _081A8D32 .pool _081A8C9C: @@ -27618,7 +27618,7 @@ _081A8D12: ldr r2, [r1] ldrb r1, [r2, 0x5] ldrb r2, [r2, 0x4] - bl exec_movement + bl ScriptMovement_StartObjectMovementScript _081A8D32: mov r0, r9 adds r0, 0x1 @@ -28660,7 +28660,7 @@ _081A95EE: lsls r0, r7, 2 adds r0, r1 ldr r0, [r0] - bl box_related_two__2 + bl ShowFieldMessage add sp, 0x8 pop {r3,r4} mov r8, r3 diff --git a/asm/battle_setup.s b/asm/battle_setup.s index fbedfff2f..5c7196579 100644 --- a/asm/battle_setup.s +++ b/asm/battle_setup.s @@ -299,8 +299,8 @@ sub_80B086C: @ 80B086C .pool thumb_func_end sub_80B086C - thumb_func_start sub_80B08A8 -sub_80B08A8: @ 80B08A8 + thumb_func_start BattleSetup_StartScriptedWildBattle +BattleSetup_StartScriptedWildBattle: @ 80B08A8 push {lr} bl ScriptContext2_Enable ldr r1, =gMain @@ -323,7 +323,7 @@ sub_80B08A8: @ 80B08A8 pop {r0} bx r0 .pool - thumb_func_end sub_80B08A8 + thumb_func_end BattleSetup_StartScriptedWildBattle thumb_func_start sub_80B08EC sub_80B08EC: @ 80B08EC @@ -1357,7 +1357,7 @@ sub_80B1158: @ 80B1158 movs r1, 0x5 movs r2, 0 movs r3, 0 - bl sub_80F9244 + bl ScriptGiveMon bl ResetTasks bl PlayBattleBGM ldr r0, =sub_80B11A8 @@ -1686,9 +1686,9 @@ _080B141A: .pool thumb_func_end battle_80801F0 - thumb_func_start TrainerBattleConfigure -@ u8 *TrainerBattleConfigure(u8 *args) -TrainerBattleConfigure: @ 80B1430 + thumb_func_start BattleSetup_ConfigureTrainerBattle +@ u8 *BattleSetup_ConfigureTrainerBattle(u8 *args) +BattleSetup_ConfigureTrainerBattle: @ 80B1430 push {r4,r5,lr} adds r5, r0, 0 bl InitTrainerBattleVariables @@ -1872,7 +1872,7 @@ _080B161E: pop {r1} bx r1 .pool - thumb_func_end TrainerBattleConfigure + thumb_func_end BattleSetup_ConfigureTrainerBattle thumb_func_start SingleTrainerWantsBattle @ void SingleTrainerWantsBattle(u8 trainerFieldObjectId, u8 *trainerScript) @@ -1892,7 +1892,7 @@ SingleTrainerWantsBattle: @ 80B162C strh r0, [r4] adds r1, 0x1 adds r0, r1, 0 - bl TrainerBattleConfigure + bl BattleSetup_ConfigureTrainerBattle ldr r0, =gUnknown_08271354 bl ScriptContext1_SetupScript bl ScriptContext2_Enable @@ -1920,7 +1920,7 @@ TwoTrainersWantBattle: @ 80B1670 strh r0, [r4] adds r1, 0x1 adds r0, r1, 0 - bl TrainerBattleConfigure + bl BattleSetup_ConfigureTrainerBattle pop {r4} pop {r0} bx r0 @@ -2056,8 +2056,8 @@ sub_80B178C: @ 80B178C bx r0 thumb_func_end sub_80B178C - thumb_func_start trainer_flag_check -trainer_flag_check: @ 80B17A0 + thumb_func_start HasTrainerAlreadyBeenFought +HasTrainerAlreadyBeenFought: @ 80B17A0 push {lr} lsls r0, 16 movs r1, 0xA0 @@ -2069,7 +2069,7 @@ trainer_flag_check: @ 80B17A0 lsrs r0, 24 pop {r1} bx r1 - thumb_func_end trainer_flag_check + thumb_func_end HasTrainerAlreadyBeenFought thumb_func_start trainer_flag_set trainer_flag_set: @ 80B17B8 @@ -2092,13 +2092,13 @@ trainer_flag_clear: @ 80B17CC lsls r1, 19 adds r0, r1 lsrs r0, 16 - bl FlagReset + bl FlagClear pop {r0} bx r0 thumb_func_end trainer_flag_clear - thumb_func_start sub_80B17E0 -sub_80B17E0: @ 80B17E0 + thumb_func_start BattleSetup_StartTrainerBattle +BattleSetup_StartTrainerBattle: @ 80B17E0 push {r4,lr} ldr r0, =gUnknown_030060A8 ldrb r0, [r0] @@ -2217,7 +2217,7 @@ _080B190C: pop {r4} pop {r0} bx r0 - thumb_func_end sub_80B17E0 + thumb_func_end BattleSetup_StartTrainerBattle thumb_func_start sub_80B1918 sub_80B1918: @ 80B1918 @@ -2407,14 +2407,14 @@ _080B1AD8: .pool _080B1AEC: bl sub_80B1C7C - bl box_related_two__2 + bl ShowFieldMessage _080B1AF4: pop {r0} bx r0 thumb_func_end sub_80B1A14 - thumb_func_start sub_80B1AF8 -sub_80B1AF8: @ 80B1AF8 + thumb_func_start BattleSetup_GetScriptAddrAfterBattle +BattleSetup_GetScriptAddrAfterBattle: @ 80B1AF8 push {lr} ldr r0, =gUnknown_02038BEC ldr r0, [r0] @@ -2425,10 +2425,10 @@ _080B1B04: pop {r1} bx r1 .pool - thumb_func_end sub_80B1AF8 + thumb_func_end BattleSetup_GetScriptAddrAfterBattle - thumb_func_start sub_80B1B10 -sub_80B1B10: @ 80B1B10 + thumb_func_start BattleSetup_GetTrainerPostBattleScript +BattleSetup_GetTrainerPostBattleScript: @ 80B1B10 push {lr} ldr r1, =gUnknown_02038BF8 ldrb r2, [r1] @@ -2462,13 +2462,13 @@ _080B1B56: pop {r1} bx r1 .pool - thumb_func_end sub_80B1B10 + 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 box_related_two__2 + bl ShowFieldMessage pop {r0} bx r0 thumb_func_end special_trainer_unable_to_battle @@ -2796,7 +2796,7 @@ _080B1DCE: ldrh r0, [r4] cmp r0, 0 beq _080B1DE2 - bl trainer_flag_check + bl HasTrainerAlreadyBeenFought lsls r0, 24 cmp r0, 0 bne _080B1DCA @@ -2895,7 +2895,7 @@ sub_80B1E94: @ 80B1E94 lsls r0, r4, 4 adds r0, r5 ldrh r0, [r0] - bl trainer_flag_check + bl HasTrainerAlreadyBeenFought lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3076,7 +3076,7 @@ _080B1FE2: ldrh r0, [r4] cmp r0, 0 beq _080B1FCA - bl trainer_flag_check + bl HasTrainerAlreadyBeenFought lsls r0, 24 cmp r0, 0 beq _080B1FD4 @@ -3127,7 +3127,7 @@ _080B203A: ldrh r0, [r4] cmp r0, 0 beq _080B201E - bl trainer_flag_check + bl HasTrainerAlreadyBeenFought lsls r0, 24 cmp r0, 0 beq _080B2028 @@ -3233,7 +3233,7 @@ sub_80B20F4: @ 80B20F4 lsls r0, r1, 4 adds r0, r4 ldrh r0, [r0, 0x2] - bl trainer_flag_check + bl HasTrainerAlreadyBeenFought lsls r0, 24 cmp r0, 0 beq _080B211E @@ -3509,7 +3509,7 @@ sub_80B2318: @ 80B2318 lsrs r4, r0, 12 adds r6, r4, r7 ldrh r0, [r6] - bl trainer_flag_check + bl HasTrainerAlreadyBeenFought lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3527,7 +3527,7 @@ _080B2338: adds r4, r6, 0x2 _080B2346: ldrh r0, [r4] - bl trainer_flag_check + bl HasTrainerAlreadyBeenFought lsls r0, 24 cmp r0, 0 beq _080B2360 diff --git a/asm/battle_tower.s b/asm/battle_tower.s index 59971c5d2..92fca3401 100755 --- a/asm/battle_tower.s +++ b/asm/battle_tower.s @@ -3548,11 +3548,11 @@ _08163E2C: movs r0, 0 strb r0, [r4] ldr r0, =gUnknown_08224158 - bl TrainerBattleConfigure + bl BattleSetup_ConfigureTrainerBattle movs r0, 0x1 strb r0, [r4] ldr r0, =gUnknown_08224167 - bl TrainerBattleConfigure + bl BattleSetup_ConfigureTrainerBattle ldr r0, =gPartnerTrainerId strh r5, [r0] ldr r0, =sub_8163A8C @@ -4364,7 +4364,7 @@ _081644E0: strb r0, [r1, 0x1] movs r0, 0xD8 lsls r0, 2 - bl FlagReset + bl FlagClear ldr r0, [r6] adds r0, r5 ldrh r0, [r0] @@ -4525,7 +4525,7 @@ _08164660: adds r1, 0xC0 strb r0, [r1, 0x1] ldr r0, =0x00000361 - bl FlagReset + bl FlagClear ldr r0, [r6] adds r0, r5 ldrh r0, [r0] @@ -5016,7 +5016,7 @@ _08164B04: lsls r0, 2 adds r0, r1 ldr r0, [r0] - bl box_related_two__2 + bl ShowFieldMessage b _08164B54 .pool _08164B28: @@ -5040,7 +5040,7 @@ _08164B28: lsls r1, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage _08164B54: add sp, 0x8 pop {r3-r5} @@ -6056,7 +6056,7 @@ _081653E0: bne _081653F8 bl sub_80F01B8 movs r0, 0x77 - bl FlagReset + bl FlagClear _081653F8: pop {r0} bx r0 diff --git a/asm/battle_transition.s b/asm/battle_transition.s index a6e44f087..2f9637594 100644 --- a/asm/battle_transition.s +++ b/asm/battle_transition.s @@ -2151,7 +2151,7 @@ sub_8147018: @ 8147018 ands r5, r0 movs r1, 0 mov r8, r4 - ldr r6, =gFieldEffectSpawnParams + ldr r6, =gFieldEffectArguments _08147046: lsls r5, 16 asrs r5, 16 @@ -2221,7 +2221,7 @@ _081470C4: sub_81470D0: @ 81470D0 push {r4,r5,lr} ldr r0, =gUnknown_085C8E68 - ldr r5, =gFieldEffectSpawnParams + ldr r5, =gFieldEffectArguments movs r2, 0 ldrsh r1, [r5, r2] movs r3, 0x4 diff --git a/asm/bike.s b/asm/bike.s index 7ea4a4598..b5d40a312 100644 --- a/asm/bike.s +++ b/asm/bike.s @@ -2013,9 +2013,9 @@ _0811A0B0: bl SetPlayerAvatarTransitionFlags ldr r4, =0x00000193 adds r0, r4, 0 - bl sav1_set_battle_music_maybe + bl Overworld_SetSavedMusic adds r0, r4, 0 - bl sub_80858C4 + bl Overworld_ChangeMusicTo _0811A0C4: pop {r4} pop {r0} diff --git a/asm/cable_club.s b/asm/cable_club.s index d5d3af151..08455e0aa 100644 --- a/asm/cable_club.s +++ b/asm/cable_club.s @@ -434,7 +434,7 @@ sub_80B2688: @ 80B2688 movs r0, 0x15 bl PlaySE ldr r0, =gUnknown_082780B3 - bl box_related_two__3 + bl ShowFieldAutoScrollMessage ldr r0, =sub_80B270C b _080B26FA .pool @@ -442,7 +442,7 @@ _080B26EC: movs r0, 0x16 bl PlaySE ldr r0, =gUnknown_08278131 - bl box_related_two__3 + bl ShowFieldAutoScrollMessage ldr r0, =sub_80B2918 _080B26FA: str r0, [r4] @@ -545,7 +545,7 @@ sub_80B275C: @ 80B275C movs r3, 0x1 bl ConvertIntToDecimalStringN ldr r0, =gUnknown_082780F2 - bl box_related_two__3 + bl ShowFieldAutoScrollMessage mov r0, r9 subs r0, 0x8 add r0, r8 @@ -598,7 +598,7 @@ sub_80B2804: @ 80B2804 beq _080B2878 _080B2852: ldr r0, =gUnknown_082780B3 - bl box_related_two__3 + bl ShowFieldAutoScrollMessage ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 @@ -719,7 +719,7 @@ sub_80B2918: @ 80B2918 cmp r0, 0x1 bhi _080B297C bl sub_800AC34 - bl textbox_close + bl HideFieldMessageBox ldr r0, =sub_80B2CB0 b _080B29E4 .pool @@ -730,7 +730,7 @@ _080B297C: bne _080B2994 _080B2984: bl sub_80097E8 - bl textbox_close + bl HideFieldMessageBox ldr r0, =sub_80B2CB0 b _080B29E4 .pool @@ -814,7 +814,7 @@ _080B2A42: _080B2A4A: bl sub_80097E8 _080B2A4E: - bl textbox_close + bl HideFieldMessageBox ldr r0, =gTasks lsls r1, r7, 2 adds r1, r7 @@ -1151,7 +1151,7 @@ sub_80B2D2C: @ 80B2D2C bl sub_80B241C ldrb r0, [r4, 0x12] bl RemoveWindow - bl textbox_close + bl HideFieldMessageBox bl EnableBothScriptContexts adds r0, r5, 0 bl DestroyTask @@ -2297,13 +2297,13 @@ _080B3750: b _080B37CC _080B375A: ldr r0, =gUnknown_08278091 - bl box_related_two__2 + bl ShowFieldMessage movs r0, 0x1 strh r0, [r5, 0x8] b _080B37CC .pool _080B376C: - bl sub_809833C + bl IsFieldMessageBoxHidden lsls r0, 24 cmp r0, 0 beq _080B37CC @@ -2325,7 +2325,7 @@ _080B378C: beq _080B37B2 b _080B37CC _080B379E: - bl textbox_close + bl HideFieldMessageBox movs r0, 0 strh r0, [r5, 0x8] bl sub_80872C4 diff --git a/asm/clock.s b/asm/clock.s index 01c7e964e..5d771a8b6 100644 --- a/asm/clock.s +++ b/asm/clock.s @@ -27,8 +27,8 @@ sub_809E778: @ 809E778 .pool thumb_func_end sub_809E778 - thumb_func_start sub_809E7B0 -sub_809E7B0: @ 809E7B0 + thumb_func_start DoTimeBasedEvents +DoTimeBasedEvents: @ 809E7B0 push {r4,lr} ldr r0, =0x00000895 bl FlagGet @@ -50,7 +50,7 @@ _0809E7DA: pop {r0} bx r0 .pool - thumb_func_end sub_809E7B0 + thumb_func_end DoTimeBasedEvents thumb_func_start sub_809E7E8 sub_809E7E8: @ 809E7E8 diff --git a/asm/coins.s b/asm/coins.s index ea55dd85c..d2b6cbb47 100644 --- a/asm/coins.s +++ b/asm/coins.s @@ -5,9 +5,9 @@ .text - thumb_func_start AddCoins -@ bool8 AddCoins(u16 toAdd) -AddCoins: @ 8145C80 + thumb_func_start GiveCoins +@ bool8 GiveCoins(u16 toAdd) +GiveCoins: @ 8145C80 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 @@ -44,11 +44,11 @@ _08145CC0: pop {r1} bx r1 .pool - thumb_func_end AddCoins + thumb_func_end GiveCoins - thumb_func_start SubtractCoins -@ bool8 SubtractCoins(u16 toSub) -SubtractCoins: @ 8145CCC + thumb_func_start TakeCoins +@ bool8 TakeCoins(u16 toSub) +TakeCoins: @ 8145CCC push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 @@ -69,6 +69,6 @@ _08145CEE: pop {r4} pop {r1} bx r1 - thumb_func_end SubtractCoins + thumb_func_end TakeCoins .align 2, 0 @ Don't pad with nop. diff --git a/asm/contest.s b/asm/contest.s index 561c79857..972199c7c 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -6313,7 +6313,7 @@ _080DAE1E: movs r0, 0x4 b _080DAE9A _080DAE2E: - ldr r0, =gUnknown_02039F2C + ldr r0, =gScriptContestCategory ldrh r0, [r0] cmp r0, 0x4 bhi _080DAE82 @@ -8456,7 +8456,7 @@ sub_80DBED4: @ 80DBED4 adds r0, r1 ldrb r1, [r0] lsls r1, 1 - ldr r0, =gUnknown_02039F2C + ldr r0, =gScriptContestCategory ldrh r0, [r0] lsls r0, 3 adds r1, r0 @@ -11805,7 +11805,7 @@ sub_80DD9F0: @ 80DD9F0 ldrb r1, [r0, 0x1] lsls r1, 29 lsrs r1, 29 - ldr r0, =gUnknown_02039F2C + ldr r0, =gScriptContestCategory ldrh r2, [r0] lsls r0, r2, 2 adds r0, r2 @@ -14260,7 +14260,7 @@ _080DEDE6: b _080DEF90 .pool _080DEE00: - ldr r0, =gUnknown_02039F2C + ldr r0, =gScriptContestCategory ldrh r0, [r0] cmp r0, 0x4 bhi _080DEE4C @@ -14383,7 +14383,7 @@ _080DEF02: mov r2, r9 lsls r1, r2, 5 adds r0, r1 - ldr r1, =gUnknown_02039F2C + ldr r1, =gScriptContestCategory ldrh r1, [r1] ldr r3, =0x00002e9a adds r0, r3 @@ -14485,7 +14485,7 @@ _080DEFE6: b _080DF03A .pool _080DEFF8: - ldr r0, =gUnknown_02039F2C + ldr r0, =gScriptContestCategory ldrh r0, [r0] cmp r0, 0x4 bhi _080DF038 diff --git a/asm/contest_ai.s b/asm/contest_ai.s index f28492886..c3c015272 100644 --- a/asm/contest_ai.s +++ b/asm/contest_ai.s @@ -1352,7 +1352,7 @@ sub_8156CF4: @ 8156CF4 ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r1, [r0, 0xC] - ldr r0, =gUnknown_02039F2C + ldr r0, =gScriptContestCategory ldrh r0, [r0] strh r0, [r1, 0x18] ldr r1, =gAIScriptPtr diff --git a/asm/contest_effect.s b/asm/contest_effect.s index 09c06b079..3b88e16e0 100644 --- a/asm/contest_effect.s +++ b/asm/contest_effect.s @@ -2590,7 +2590,7 @@ ContestEffectFunc_080E6778: @ 80E6778 adds r0, r3 ldrb r0, [r0, 0x1] lsls r0, 29 - ldr r1, =gUnknown_02039F2C + ldr r1, =gScriptContestCategory lsrs r0, 29 ldrh r1, [r1] cmp r0, r1 diff --git a/asm/contest_link_80F57C4.s b/asm/contest_link_80F57C4.s index 03e1aaf2b..a97a39561 100644 --- a/asm/contest_link_80F57C4.s +++ b/asm/contest_link_80F57C4.s @@ -3008,7 +3008,7 @@ _080F7236: bl CopyToBgTilemapBufferRect movs r5, 0xF _080F7240: - ldr r0, =gUnknown_02039F2C + ldr r0, =gScriptContestCategory ldrh r0, [r0] cmp r0, 0 bne _080F725C @@ -4640,7 +4640,7 @@ sub_80F7F30: @ 80F7F30 adds r5, r0, 0 cmp r5, 0 beq _080F7F5E - ldr r4, =gUnknown_02039F2C + ldr r4, =gScriptContestCategory ldrb r0, [r4] ldr r1, =gUnknown_02039F2E ldrb r1, [r1] @@ -4666,7 +4666,7 @@ sub_80F7F7C: @ 80F7F7C muls r1, r0 ldr r0, =gPlayerParty adds r2, r1, r0 - ldr r0, =gUnknown_02039F2C + ldr r0, =gScriptContestCategory ldrh r0, [r0] cmp r0, 0x4 bhi _080F7FEE @@ -4730,7 +4730,7 @@ sub_80F7FFC: @ 80F7FFC beq _080F8010 b _080F8250 _080F8010: - ldr r0, =gUnknown_02039F2C + ldr r0, =gScriptContestCategory ldrh r0, [r0] cmp r0, 0x4 bls _080F801A @@ -5488,7 +5488,7 @@ _080F8678: bl sub_80F86E0 ldr r1, =gUnknown_02039F2B strb r0, [r1] - ldr r0, =gUnknown_02039F2C + ldr r0, =gScriptContestCategory ldrb r0, [r0] bl sub_80DB09C ldr r1, =sub_80FCF40 diff --git a/asm/contest_link_81D9DE4.s b/asm/contest_link_81D9DE4.s index 3fd8f56f1..5f9c25d7c 100755 --- a/asm/contest_link_81D9DE4.s +++ b/asm/contest_link_81D9DE4.s @@ -370,7 +370,7 @@ sub_81DA10C: @ 81DA10C adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 - ldr r0, =gUnknown_02039F2C + ldr r0, =gScriptContestCategory ldrb r0, [r0] bl sub_80DB09C ldr r1, =sub_80FCF40 diff --git a/asm/decoration.s b/asm/decoration.s index 89bfbe3bf..0798e3165 100644 --- a/asm/decoration.s +++ b/asm/decoration.s @@ -2094,7 +2094,7 @@ sub_8127B04: @ 8127B04 lsls r4, 24 asrs r4, 24 str r4, [sp] - bl warp1_set + bl Overworld_SetWarpDestination bl warp_in add sp, 0x4 pop {r4,r5} @@ -2490,7 +2490,7 @@ _08127E34: cmp r0, 0x1 bne _08127F1C adds r0, r4, 0 - bl FlagReset + bl FlagClear movs r2, 0 ldr r0, [r7, 0x4] ldrb r4, [r0] diff --git a/asm/decoration_inventory.s b/asm/decoration_inventory.s index 52d490c20..7a909f585 100644 --- a/asm/decoration_inventory.s +++ b/asm/decoration_inventory.s @@ -156,8 +156,8 @@ _08161910: bx r1 thumb_func_end sub_81618D0 - thumb_func_start sub_8161918 -sub_8161918: @ 8161918 + thumb_func_start CheckHasDecoration +CheckHasDecoration: @ 8161918 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 @@ -193,7 +193,7 @@ _08161958: pop {r4} pop {r1} bx r1 - thumb_func_end sub_8161918 + thumb_func_end CheckHasDecoration thumb_func_start DecorationAdd DecorationAdd: @ 8161960 diff --git a/asm/easy_chat.s b/asm/easy_chat.s index 20bf327ac..c05da82ac 100644 --- a/asm/easy_chat.s +++ b/asm/easy_chat.s @@ -9914,7 +9914,7 @@ _0811EF48: adds r1, r5, 0 bl ConvertEasyChatWordsToString adds r0, r4, 0 - bl box_related_two__3 + bl ShowFieldAutoScrollMessage _0811EF58: pop {r4,r5} pop {r0} diff --git a/asm/field_door.s b/asm/field_door.s index 4602158df..037c76566 100644 --- a/asm/field_door.s +++ b/asm/field_door.s @@ -581,8 +581,8 @@ sub_808A83C: @ 808A83C .pool thumb_func_end sub_808A83C - thumb_func_start sub_808A854 -sub_808A854: @ 808A854 + thumb_func_start FieldSetDoorOpened +FieldSetDoorOpened: @ 808A854 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 @@ -602,10 +602,10 @@ _0808A876: pop {r0} bx r0 .pool - thumb_func_end sub_808A854 + thumb_func_end FieldSetDoorOpened - thumb_func_start sub_808A880 -sub_808A880: @ 808A880 + thumb_func_start FieldSetDoorClosed +FieldSetDoorClosed: @ 808A880 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 @@ -625,10 +625,10 @@ _0808A8A2: pop {r0} bx r0 .pool - thumb_func_end sub_808A880 + thumb_func_end FieldSetDoorClosed - thumb_func_start sub_808A8AC -sub_808A8AC: @ 808A8AC + thumb_func_start FieldAnimateDoorClose +FieldAnimateDoorClose: @ 808A8AC push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 @@ -654,10 +654,10 @@ _0808A8DC: pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_808A8AC + thumb_func_end FieldAnimateDoorClose - thumb_func_start task_overworld_door_add_if_role_69_for_opening_door_at -task_overworld_door_add_if_role_69_for_opening_door_at: @ 808A8E4 + thumb_func_start FieldAnimateDoorOpen +FieldAnimateDoorOpen: @ 808A8E4 push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 @@ -683,10 +683,10 @@ _0808A914: pop {r4,r5} pop {r1} bx r1 - thumb_func_end task_overworld_door_add_if_role_69_for_opening_door_at + thumb_func_end FieldAnimateDoorOpen - thumb_func_start sub_808A91C -sub_808A91C: @ 808A91C + thumb_func_start FieldIsDoorAnimationRunning +FieldIsDoorAnimationRunning: @ 808A91C push {lr} ldr r0, =task50_overworld_door bl FuncIsActiveTask @@ -695,10 +695,10 @@ sub_808A91C: @ 808A91C pop {r1} bx r1 .pool - thumb_func_end sub_808A91C + thumb_func_end FieldIsDoorAnimationRunning - thumb_func_start cur_mapdata_get_door_sound_at -cur_mapdata_get_door_sound_at: @ 808A930 + thumb_func_start GetDoorSoundEffect +GetDoorSoundEffect: @ 808A930 push {lr} adds r3, r0, 0 adds r2, r1, 0 @@ -725,7 +725,7 @@ _0808A95C: _0808A95E: pop {r1} bx r1 - thumb_func_end cur_mapdata_get_door_sound_at + thumb_func_end GetDoorSoundEffect thumb_func_start sub_808A964 sub_808A964: @ 808A964 diff --git a/asm/field_effect.s b/asm/field_effect.s index c8ccc49b4..323e56bfe 100644 --- a/asm/field_effect.s +++ b/asm/field_effect.s @@ -1989,7 +1989,7 @@ task00_8084310: @ 80B6A24 cmp r0, 0 beq _080B6A8A bl brm_get_pokemon_selection - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments lsls r0, 24 lsrs r0, 24 str r0, [r1] @@ -2100,7 +2100,7 @@ _080B6B3E: cmp r0, 0 bne _080B6B58 bl ScriptContext2_Disable - bl sub_809757C + bl UnfreezeMapObjects adds r0, r5, 0 bl DestroyTask _080B6B58: @@ -2459,7 +2459,7 @@ sub_80B6E18: @ 80B6E18 strb r0, [r1, 0x6] bl ScriptContext2_Disable bl CameraObjectReset1 - bl sub_809757C + bl UnfreezeMapObjects bl InstallCameraPanAheadCallback ldr r0, =sub_80B6B94 bl FindTaskIdByFunc @@ -3111,7 +3111,7 @@ oei_waterfall: @ 80B734C adds r1, r0 lsls r1, 3 adds r1, r2 - ldr r2, =gFieldEffectSpawnParams + ldr r2, =gFieldEffectArguments ldr r2, [r2] strh r2, [r1, 0xA] bl _call_via_r4 @@ -3188,7 +3188,7 @@ waterfall_1_do_anim_probably: @ 80B73F0 bne _080B7420 adds r0, r5, 0 bl FieldObjectClearAnimIfSpecialAnimFinished - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments movs r2, 0xA ldrsh r0, [r4, r2] str r0, [r1] @@ -3304,7 +3304,7 @@ sub_80B74D0: @ 80B74D0 adds r1, r0 lsls r1, 3 adds r1, r2 - ldr r3, =gFieldEffectSpawnParams + ldr r3, =gFieldEffectArguments ldr r2, [r3] strh r2, [r1, 0x26] ldr r2, [r3, 0x4] @@ -3363,7 +3363,7 @@ dive_2_unknown: @ 80B7558 push {r4,lr} adds r4, r0, 0 bl ScriptContext2_Enable - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments movs r2, 0x26 ldrsh r0, [r4, r2] str r0, [r1] @@ -3536,7 +3536,7 @@ sub_80B76B8: @ 80B76B8 strh r0, [r2, 0x26] movs r0, 0x1 strh r0, [r4, 0xE] - ldr r3, =gFieldEffectSpawnParams + ldr r3, =gFieldEffectArguments movs r5, 0x10 ldrsh r0, [r1, r5] str r0, [r3] @@ -3835,7 +3835,7 @@ sub_80B791C: @ 80B791C lsls r0, 24 cmp r0, 0 beq _080B795C - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments movs r2, 0x10 ldrsh r0, [r5, r2] str r0, [r1] @@ -3919,7 +3919,7 @@ sub_80B79BC: @ 80B79BC movs r0, 0 strb r0, [r1, 0x6] bl ScriptContext2_Disable - bl sub_809757C + bl UnfreezeMapObjects ldr r0, =sub_80B7890 bl FindTaskIdByFunc lsls r0, 24 @@ -3935,7 +3935,7 @@ _080B79E6: thumb_func_start sub_80B79F4 sub_80B79F4: @ 80B79F4 push {r4,lr} - ldr r4, =gFieldEffectSpawnParams + ldr r4, =gFieldEffectArguments adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -4090,7 +4090,7 @@ sub_80B7B18: @ 80B7B18 ldrsh r0, [r5, r2] cmp r0, 0x3 ble _080B7B6C - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments movs r2, 0x10 ldrsh r0, [r4, r2] str r0, [r1] @@ -4222,7 +4222,7 @@ _080B7C2C: thumb_func_start sub_80B7C48 sub_80B7C48: @ 80B7C48 push {r4,lr} - ldr r4, =gFieldEffectSpawnParams + ldr r4, =gFieldEffectArguments adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -4583,7 +4583,7 @@ _080B7F32: ands r0, r1 strb r0, [r6, 0x1] bl ScriptContext2_Disable - bl sub_809757C + bl UnfreezeMapObjects ldr r0, =sub_80B7E94 bl FindTaskIdByFunc lsls r0, 24 @@ -5194,7 +5194,7 @@ sub_80B8410: @ 80B8410 bne _080B8484 bl ScriptContext2_Disable bl CameraObjectReset1 - bl sub_809757C + bl UnfreezeMapObjects ldr r0, =sub_80B8250 bl FindTaskIdByFunc lsls r0, 24 @@ -5229,7 +5229,7 @@ _080B84BE: bl CreateTask lsls r0, 24 lsrs r4, r0, 24 - ldr r2, =gFieldEffectSpawnParams + ldr r2, =gFieldEffectArguments ldr r0, [r2] ldr r1, [r2, 0x4] ldr r2, [r2, 0x8] @@ -5252,7 +5252,7 @@ _080B84BE: thumb_func_start sub_80B84F8 sub_80B84F8: @ 80B84F8 push {r4-r6,lr} - ldr r5, =gFieldEffectSpawnParams + ldr r5, =gFieldEffectArguments ldr r0, [r5] movs r6, 0x80 lsls r6, 24 @@ -6292,12 +6292,12 @@ sub_80B8D44: @ 80B8D44 adds r1, r0 lsls r1, 3 adds r1, r2 - ldr r0, =gFieldEffectSpawnParams + ldr r0, =gFieldEffectArguments ldr r0, [r0] strh r0, [r1, 0x26] bl sav1_reset_battle_music_maybe ldr r0, =0x0000016d - bl sub_80858C4 + bl Overworld_ChangeMusicTo movs r0, 0 pop {r1} bx r1 @@ -6421,7 +6421,7 @@ sub_80B8E60: @ 80B8E60 lsls r0, 24 cmp r0, 0 beq _080B8E96 - ldr r2, =gFieldEffectSpawnParams + ldr r2, =gFieldEffectArguments movs r1, 0x26 ldrsh r0, [r4, r1] movs r1, 0x80 @@ -6473,7 +6473,7 @@ sub_80B8EA8: @ 80B8EA8 lsrs r1, 24 adds r0, r4, 0 bl FieldObjectSetSpecialAnim - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments movs r2, 0xA ldrsh r0, [r6, r2] str r0, [r1] @@ -6527,7 +6527,7 @@ sub_80B8F24: @ 80B8F24 ldrb r0, [r4, 0x1A] movs r1, 0x1 bl sub_81555AC - bl sub_809757C + bl UnfreezeMapObjects bl ScriptContext2_Disable movs r0, 0x9 bl FieldEffectActiveListRemove @@ -6704,7 +6704,7 @@ sub_80B90CC: @ 80B90CC strb r0, [r2, 0x5] ldr r0, =sub_80B9128 str r0, [r2, 0x1C] - ldr r0, =gFieldEffectSpawnParams + ldr r0, =gFieldEffectArguments ldr r0, [r0] strh r0, [r2, 0x30] movs r0, 0x9E @@ -6793,7 +6793,7 @@ sub_80B91A4: @ 80B91A4 adds r1, r0 lsls r1, 3 adds r1, r2 - ldr r0, =gFieldEffectSpawnParams + ldr r0, =gFieldEffectArguments ldr r0, [r0] strh r0, [r1, 0xA] movs r0, 0 @@ -6884,7 +6884,7 @@ sub_80B925C: @ 80B925C ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments movs r2, 0xA ldrsh r0, [r4, r2] str r0, [r1] @@ -7922,7 +7922,7 @@ _080B9ACA: sub_80B9ADC: @ 80B9ADC push {r4,lr} sub sp, 0x4 - ldr r4, =gFieldEffectSpawnParams + ldr r4, =gFieldEffectArguments ldrb r0, [r4] ldrb r1, [r4, 0x4] ldrb r2, [r4, 0x8] @@ -8343,7 +8343,7 @@ _080B9E24: sub_80B9E28: @ 80B9E28 push {r4-r7,lr} sub sp, 0x4 - ldr r7, =gFieldEffectSpawnParams + ldr r7, =gFieldEffectArguments ldrb r0, [r7] ldrb r1, [r7, 0x4] ldrb r2, [r7, 0x8] diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s index 223a27937..754a8f7ff 100644 --- a/asm/field_effect_helpers.s +++ b/asm/field_effect_helpers.s @@ -574,7 +574,7 @@ _0815432E: thumb_func_start oei_shadow oei_shadow: @ 8154340 push {r4,r5,lr} - ldr r5, =gFieldEffectSpawnParams + ldr r5, =gFieldEffectArguments ldrb r0, [r5] ldrb r1, [r5, 0x4] ldrb r2, [r5, 0x8] @@ -742,7 +742,7 @@ _08154498: oei_grass_normal: @ 81544AC push {r4,r5,lr} sub sp, 0x4 - ldr r5, =gFieldEffectSpawnParams + ldr r5, =gFieldEffectArguments ldrh r1, [r5] mov r0, sp strh r1, [r0] @@ -951,7 +951,7 @@ _08154648: thumb_func_start sub_8154658 sub_8154658: @ 8154658 push {r4,lr} - ldr r4, =gFieldEffectSpawnParams + ldr r4, =gFieldEffectArguments adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -1080,7 +1080,7 @@ _0815474C: sub_8154758: @ 8154758 push {r4,r5,lr} sub sp, 0x4 - ldr r5, =gFieldEffectSpawnParams + ldr r5, =gFieldEffectArguments ldrh r1, [r5] mov r0, sp strh r1, [r0] @@ -1282,7 +1282,7 @@ _081548EA: thumb_func_start sub_81548FC sub_81548FC: @ 81548FC push {r4,lr} - ldr r4, =gFieldEffectSpawnParams + ldr r4, =gFieldEffectArguments adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -1336,7 +1336,7 @@ _08154958: thumb_func_start sub_815496C sub_815496C: @ 815496C push {r4-r6,lr} - ldr r6, =gFieldEffectSpawnParams + ldr r6, =gFieldEffectArguments ldrb r0, [r6] ldrb r1, [r6, 0x4] ldrb r2, [r6, 0x8] @@ -1537,7 +1537,7 @@ _08154AF2: thumb_func_start sub_8154B04 sub_8154B04: @ 8154B04 push {r4,lr} - ldr r4, =gFieldEffectSpawnParams + ldr r4, =gFieldEffectArguments adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -1591,7 +1591,7 @@ _08154B62: thumb_func_start sub_8154B78 sub_8154B78: @ 8154B78 push {r4,r5,lr} - ldr r4, =gFieldEffectSpawnParams + ldr r4, =gFieldEffectArguments adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -1646,7 +1646,7 @@ _08154BD8: thumb_func_start sub_8154BEC sub_8154BEC: @ 8154BEC push {r4,r5,lr} - ldr r4, =gFieldEffectSpawnParams + ldr r4, =gFieldEffectArguments adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -1777,7 +1777,7 @@ _08154CE4: thumb_func_start sub_8154CEC sub_8154CEC: @ 8154CEC push {r4-r6,lr} - ldr r6, =gFieldEffectSpawnParams + ldr r6, =gFieldEffectArguments ldrb r0, [r6] ldrb r1, [r6, 0x4] ldrb r2, [r6, 0x8] @@ -1922,7 +1922,7 @@ _08154E0A: thumb_func_start sub_8154E1C sub_8154E1C: @ 8154E1C push {r4,lr} - ldr r4, =gFieldEffectSpawnParams + ldr r4, =gFieldEffectArguments adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -1976,7 +1976,7 @@ _08154E78: thumb_func_start oei_water_drop_tall oei_water_drop_tall: @ 8154E8C push {r4,lr} - ldr r4, =gFieldEffectSpawnParams + ldr r4, =gFieldEffectArguments adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -2030,7 +2030,7 @@ _08154EE8: thumb_func_start sub_8154EFC sub_8154EFC: @ 8154EFC push {r4-r7,lr} - ldr r7, =gFieldEffectSpawnParams + ldr r7, =gFieldEffectArguments ldrb r0, [r7] ldrb r1, [r7, 0x4] ldrb r2, [r7, 0x8] @@ -2193,7 +2193,7 @@ oei_ripples: @ 8155054 push {r4,lr} ldr r0, =gFieldEffectObjectTemplatePointers ldr r0, [r0, 0x14] - ldr r4, =gFieldEffectSpawnParams + ldr r4, =gFieldEffectArguments movs r2, 0 ldrsh r1, [r4, r2] movs r3, 0x4 @@ -2238,7 +2238,7 @@ _081550A0: thumb_func_start sub_81550B4 sub_81550B4: @ 81550B4 push {r4-r6,lr} - ldr r6, =gFieldEffectSpawnParams + ldr r6, =gFieldEffectArguments ldrb r0, [r6] ldrb r1, [r6, 0x4] ldrb r2, [r6, 0x8] @@ -2393,7 +2393,7 @@ _081551E4: thumb_func_start sub_81551F0 sub_81551F0: @ 81551F0 push {r4,lr} - ldr r4, =gFieldEffectSpawnParams + ldr r4, =gFieldEffectArguments adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -2445,7 +2445,7 @@ _08155248: thumb_func_start sub_815525C sub_815525C: @ 815525C push {r4,lr} - ldr r4, =gFieldEffectSpawnParams + ldr r4, =gFieldEffectArguments adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -2497,7 +2497,7 @@ _081552B4: thumb_func_start sub_81552C8 sub_81552C8: @ 81552C8 push {r4,lr} - ldr r4, =gFieldEffectSpawnParams + ldr r4, =gFieldEffectArguments adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -2549,7 +2549,7 @@ _08155320: thumb_func_start sub_8155334 sub_8155334: @ 8155334 push {r4,lr} - ldr r4, =gFieldEffectSpawnParams + ldr r4, =gFieldEffectArguments adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -2603,7 +2603,7 @@ ash: @ 81553A0 push {r4,lr} lsls r2, 16 lsrs r2, 16 - ldr r4, =gFieldEffectSpawnParams + ldr r4, =gFieldEffectArguments lsls r0, 16 asrs r0, 16 str r0, [r4] @@ -2630,7 +2630,7 @@ ash: @ 81553A0 oei_ash: @ 81553D4 push {r4,r5,lr} sub sp, 0x4 - ldr r5, =gFieldEffectSpawnParams + ldr r5, =gFieldEffectArguments ldrh r1, [r5] mov r0, sp strh r1, [r0] @@ -2809,7 +2809,7 @@ _0815552C: thumb_func_start sub_8155534 sub_8155534: @ 8155534 push {r4,r5,lr} - ldr r4, =gFieldEffectSpawnParams + ldr r4, =gFieldEffectArguments adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -3261,7 +3261,7 @@ _08155888: thumb_func_start sub_8155890 sub_8155890: @ 8155890 push {r4,lr} - ldr r4, =gFieldEffectSpawnParams + ldr r4, =gFieldEffectArguments adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -3315,7 +3315,7 @@ _081558EC: thumb_func_start sub_8155900 sub_8155900: @ 8155900 push {r4-r7,lr} - ldr r7, =gFieldEffectSpawnParams + ldr r7, =gFieldEffectArguments ldrb r0, [r7] ldrb r1, [r7, 0x4] ldrb r2, [r7, 0x8] @@ -3505,7 +3505,7 @@ _08155A76: thumb_func_start sub_8155A88 sub_8155A88: @ 8155A88 push {r4,lr} - ldr r4, =gFieldEffectSpawnParams + ldr r4, =gFieldEffectArguments adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -3586,7 +3586,7 @@ _08155B20: thumb_func_start sub_8155B2C sub_8155B2C: @ 8155B2C push {r4,lr} - ldr r4, =gFieldEffectSpawnParams + ldr r4, =gFieldEffectArguments adds r1, r4, 0x4 adds r0, r4, 0 movs r2, 0x8 @@ -3689,7 +3689,7 @@ ShowDisguiseFieldEffect: @ 8155BD0 lsrs r6, r1, 24 lsls r2, 24 lsrs r7, r2, 24 - ldr r5, =gFieldEffectSpawnParams + ldr r5, =gFieldEffectArguments ldrb r0, [r5] ldrb r1, [r5, 0x4] ldrb r2, [r5, 0x8] @@ -3950,7 +3950,7 @@ _08155DD8: thumb_func_start sub_8155DDC sub_8155DDC: @ 8155DDC push {r4,lr} - ldr r4, =gFieldEffectSpawnParams + ldr r4, =gFieldEffectArguments ldr r0, [r4] adds r0, 0x7 str r0, [r4] diff --git a/asm/field_ground_effect.s b/asm/field_ground_effect.s index 7d05dbd98..2152a5c5b 100644 --- a/asm/field_ground_effect.s +++ b/asm/field_ground_effect.s @@ -1166,7 +1166,7 @@ _08096E8C: @ void GroundEffect_SpawnOnTallGrass(struct npc_state *fieldObject, struct obj *object) GroundEffect_SpawnOnTallGrass: @ 8096E90 push {lr} - ldr r3, =gFieldEffectSpawnParams + ldr r3, =gFieldEffectArguments movs r2, 0x10 ldrsh r1, [r0, r2] str r1, [r3] @@ -1205,7 +1205,7 @@ GroundEffect_SpawnOnTallGrass: @ 8096E90 @ void GroundEffect_StepOnTallGrass(struct npc_state *fieldObject, struct obj *object) GroundEffect_StepOnTallGrass: @ 8096EDC push {lr} - ldr r3, =gFieldEffectSpawnParams + ldr r3, =gFieldEffectArguments movs r2, 0x10 ldrsh r1, [r0, r2] str r1, [r3] @@ -1244,7 +1244,7 @@ GroundEffect_StepOnTallGrass: @ 8096EDC @ void GroundEffect_SpawnOnLongGrass(struct npc_state *fieldObject, struct obj *object) GroundEffect_SpawnOnLongGrass: @ 8096F28 push {lr} - ldr r3, =gFieldEffectSpawnParams + ldr r3, =gFieldEffectArguments movs r2, 0x10 ldrsh r1, [r0, r2] str r1, [r3] @@ -1283,7 +1283,7 @@ GroundEffect_SpawnOnLongGrass: @ 8096F28 @ void GroundEffect_StepOnLongGrass(struct npc_state *fieldObject, struct obj *object) GroundEffect_StepOnLongGrass: @ 8096F74 push {lr} - ldr r3, =gFieldEffectSpawnParams + ldr r3, =gFieldEffectArguments movs r2, 0x10 ldrsh r1, [r0, r2] str r1, [r3] @@ -1413,7 +1413,7 @@ DoTracksGroundEffect_Footprints: @ 8097044 mov r0, sp movs r2, 0x4 bl memcpy - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments movs r2, 0x14 ldrsh r0, [r5, r2] str r0, [r1] @@ -1449,7 +1449,7 @@ DoTracksGroundEffect_BikeTireTracks: @ 8097094 ldr r0, [r4, 0x14] cmp r1, r0 beq _080970D6 - ldr r2, =gFieldEffectSpawnParams + ldr r2, =gFieldEffectArguments movs r1, 0x14 ldrsh r0, [r4, r1] str r0, [r2] @@ -1520,7 +1520,7 @@ GroundEffect_JumpOnTallGrass: @ 8097110 sub sp, 0x4 adds r5, r0, 0 adds r6, r1, 0 - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments movs r2, 0x10 ldrsh r0, [r5, r2] str r0, [r1] @@ -1562,7 +1562,7 @@ _0809715A: @ void GroundEffect_JumpOnLongGrass(struct npc_state *fieldObject, struct obj *object) GroundEffect_JumpOnLongGrass: @ 8097168 push {lr} - ldr r2, =gFieldEffectSpawnParams + ldr r2, =gFieldEffectArguments movs r3, 0x10 ldrsh r1, [r0, r3] str r1, [r2] @@ -1585,7 +1585,7 @@ GroundEffect_JumpOnLongGrass: @ 8097168 @ void GroundEffect_JumpOnShallowWater(struct npc_state *fieldObject, struct obj *object) GroundEffect_JumpOnShallowWater: @ 8097190 push {r4,lr} - ldr r3, =gFieldEffectSpawnParams + ldr r3, =gFieldEffectArguments movs r4, 0x10 ldrsh r2, [r0, r4] str r2, [r3] @@ -1611,7 +1611,7 @@ GroundEffect_JumpOnShallowWater: @ 8097190 @ void GroundEffect_JumpOnWater(struct npc_state *fieldObject, struct obj *object) GroundEffect_JumpOnWater: @ 80971C0 push {r4,lr} - ldr r3, =gFieldEffectSpawnParams + ldr r3, =gFieldEffectArguments movs r4, 0x10 ldrsh r2, [r0, r4] str r2, [r3] @@ -1637,7 +1637,7 @@ GroundEffect_JumpOnWater: @ 80971C0 @ void GroundEffect_JumpLandingDust(struct npc_state *fieldObject, struct obj *object) GroundEffect_JumpLandingDust: @ 80971F0 push {r4,lr} - ldr r3, =gFieldEffectSpawnParams + ldr r3, =gFieldEffectArguments movs r4, 0x10 ldrsh r2, [r0, r4] str r2, [r3] @@ -1685,7 +1685,7 @@ GroundEffect_HotSprings: @ 8097230 @ void GroundEffect_Seaweed(struct npc_state *fieldObject, struct obj *object) GroundEffect_Seaweed: @ 8097240 push {lr} - ldr r2, =gFieldEffectSpawnParams + ldr r2, =gFieldEffectArguments movs r3, 0x10 ldrsh r1, [r0, r3] str r1, [r2] diff --git a/asm/field_message_box.s b/asm/field_message_box.s index 35267e8d4..0c1fae6de 100644 --- a/asm/field_message_box.s +++ b/asm/field_message_box.s @@ -108,8 +108,8 @@ _080981E4: .pool thumb_func_end task_del_textbox - thumb_func_start box_related_two__2 -box_related_two__2: @ 80981EC + thumb_func_start ShowFieldMessage +ShowFieldMessage: @ 80981EC push {r4,lr} adds r1, r0, 0 ldr r4, =gUnknown_020375BC @@ -130,7 +130,7 @@ _0809820E: pop {r4} pop {r1} bx r1 - thumb_func_end box_related_two__2 + thumb_func_end ShowFieldMessage thumb_func_start sub_8098214 sub_8098214: @ 8098214 @@ -181,8 +181,8 @@ _08098272: bx r1 thumb_func_end sub_8098238 - thumb_func_start box_related_two__3 -box_related_two__3: @ 8098278 + thumb_func_start ShowFieldAutoScrollMessage +ShowFieldAutoScrollMessage: @ 8098278 push {lr} adds r1, r0, 0 ldr r2, =gUnknown_020375BC @@ -202,7 +202,7 @@ _08098298: _0809829A: pop {r1} bx r1 - thumb_func_end box_related_two__3 + thumb_func_end ShowFieldAutoScrollMessage thumb_func_start sub_80982A0 sub_80982A0: @ 80982A0 @@ -267,8 +267,8 @@ textbox_auto_and_task_add: @ 8098304 bx r0 thumb_func_end textbox_auto_and_task_add - thumb_func_start textbox_close -textbox_close: @ 8098314 + thumb_func_start HideFieldMessageBox +HideFieldMessageBox: @ 8098314 push {lr} bl task_del_textbox movs r0, 0 @@ -280,7 +280,7 @@ textbox_close: @ 8098314 pop {r0} bx r0 .pool - thumb_func_end textbox_close + thumb_func_end HideFieldMessageBox thumb_func_start textbox_any_visible textbox_any_visible: @ 8098330 @@ -290,8 +290,8 @@ textbox_any_visible: @ 8098330 .pool thumb_func_end textbox_any_visible - thumb_func_start sub_809833C -sub_809833C: @ 809833C + thumb_func_start IsFieldMessageBoxHidden +IsFieldMessageBoxHidden: @ 809833C push {lr} ldr r0, =gUnknown_020375BC ldrb r0, [r0] @@ -305,7 +305,7 @@ _08098350: _08098352: pop {r1} bx r1 - thumb_func_end sub_809833C + thumb_func_end IsFieldMessageBoxHidden thumb_func_start sub_8098358 sub_8098358: @ 8098358 diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s index 9f47c0a55..34ff54f61 100644 --- a/asm/field_player_avatar.s +++ b/asm/field_player_avatar.s @@ -1522,7 +1522,7 @@ PlayerAvatarTransition_Surfing: @ 808B4D8 bl FieldObjectTurn movs r0, 0x8 bl SetPlayerAvatarStateMask - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments movs r2, 0x10 ldrsh r0, [r4, r2] str r0, [r1] @@ -3517,7 +3517,7 @@ _0808C3F0: lsrs r1, 24 adds r0, r4, 0 bl FieldObjectSetSpecialAnim - ldr r2, =gFieldEffectSpawnParams + ldr r2, =gFieldEffectArguments movs r1, 0x10 ldrsh r0, [r4, r1] str r0, [r2] @@ -3897,7 +3897,7 @@ sub_808C750: @ 808C750 lsrs r4, 24 bl ScriptContext2_Enable bl sav1_reset_battle_music_maybe - bl sub_8085898 + bl Overworld_ChangeMusicToDefault ldr r2, =gPlayerAvatar ldrb r1, [r2] movs r0, 0xF7 @@ -4858,7 +4858,7 @@ fishF: @ 808CF2C ldr r0, =gPlayerAvatar strb r1, [r0, 0x6] bl ScriptContext2_Disable - bl sub_809757C + bl UnfreezeMapObjects movs r0, 0 movs r1, 0x1 bl sub_8197434 diff --git a/asm/field_poison.s b/asm/field_poison.s index 5b1e24719..652026523 100644 --- a/asm/field_poison.s +++ b/asm/field_poison.s @@ -178,7 +178,7 @@ _080F96A8: strh r0, [r4] b _080F9722 _080F96AE: - bl sub_809833C + bl IsFieldMessageBoxHidden lsls r0, 24 cmp r0, 0 beq _080F9722 @@ -217,7 +217,7 @@ _080F96FC: ldrb r0, [r4, 0x2] bl sub_80F95C0 ldr r0, =gText_PkmnFainted3 - bl box_related_two__2 + bl ShowFieldMessage ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] diff --git a/asm/field_screen.s b/asm/field_screen.s index 83fea2f44..4ab8a5a53 100644 --- a/asm/field_screen.s +++ b/asm/field_screen.s @@ -7503,8 +7503,8 @@ _080AED78: bx r0 thumb_func_end bag_add_task0_by_acit - thumb_func_start sub_80AED7C -sub_80AED7C: @ 80AED7C + thumb_func_start SetSav1Weather +SetSav1Weather: @ 80AED7C push {r4,r5,lr} ldr r4, =gSaveBlock1Ptr ldr r1, [r4] @@ -7525,7 +7525,7 @@ sub_80AED7C: @ 80AED7C pop {r0} bx r0 .pool - thumb_func_end sub_80AED7C + thumb_func_end SetSav1Weather thumb_func_start sav1_get_weather_probably sav1_get_weather_probably: @ 80AEDAC @@ -7564,7 +7564,7 @@ sub_80AEDBC: @ 80AEDBC thumb_func_start sub_80AEDF0 sub_80AEDF0: @ 80AEDF0 push {lr} - bl sub_80AED7C + bl SetSav1Weather bl sav1_get_weather_probably lsls r0, 24 lsrs r0, 24 @@ -7576,7 +7576,7 @@ sub_80AEDF0: @ 80AEDF0 thumb_func_start sub_80AEE08 sub_80AEE08: @ 80AEE08 push {lr} - bl sub_80AED7C + bl SetSav1Weather bl sav1_get_weather_probably lsls r0, 24 lsrs r0, 24 @@ -7585,8 +7585,8 @@ sub_80AEE08: @ 80AEE08 bx r0 thumb_func_end sub_80AEE08 - thumb_func_start sub_80AEE20 -sub_80AEE20: @ 80AEE20 + thumb_func_start DoCurrentWeather +DoCurrentWeather: @ 80AEE20 push {r4,r5,lr} bl sav1_get_weather_probably lsls r0, 24 @@ -7627,7 +7627,7 @@ _080AEE6E: pop {r0} bx r0 .pool - thumb_func_end sub_80AEE20 + thumb_func_end DoCurrentWeather thumb_func_start sub_80AEE84 sub_80AEE84: @ 80AEE84 @@ -8390,7 +8390,7 @@ _080AF480: ldrsh r0, [r6, r1] movs r2, 0 ldrsh r1, [r7, r2] - bl sub_808A854 + bl FieldSetDoorOpened movs r0, 0x1 strh r0, [r5, 0x8] b _080AF54A @@ -8427,7 +8427,7 @@ _080AF4DC: ldrsh r0, [r6, r1] movs r2, 0 ldrsh r1, [r7, r2] - bl sub_808A8AC + bl FieldAnimateDoorClose lsls r0, 24 asrs r0, 24 strh r0, [r5, 0xA] @@ -8461,7 +8461,7 @@ _080AF520: cmp r0, 0x1 beq _080AF54A _080AF536: - bl sub_809757C + bl UnfreezeMapObjects movs r0, 0x4 strh r0, [r5, 0x8] b _080AF54A @@ -8550,7 +8550,7 @@ _080AF5EC: lsls r0, 24 cmp r0, 0 beq _080AF60A - bl sub_809757C + bl UnfreezeMapObjects movs r0, 0x3 strh r0, [r5, 0x8] b _080AF60A @@ -8593,7 +8593,7 @@ _080AF644: bl sub_80AF71C cmp r0, 0 beq _080AF65A - bl sub_809757C + bl UnfreezeMapObjects bl ScriptContext2_Disable adds r0, r5, 0 bl DestroyTask @@ -9142,7 +9142,7 @@ _080AFAD4: movs r2, 0 ldrsh r1, [r6, r2] subs r1, 0x1 - bl cur_mapdata_get_door_sound_at + bl GetDoorSoundEffect lsls r0, 16 lsrs r0, 16 bl PlaySE @@ -9151,7 +9151,7 @@ _080AFAD4: movs r2, 0 ldrsh r1, [r6, r2] subs r1, 0x1 - bl task_overworld_door_add_if_role_69_for_opening_door_at + bl FieldAnimateDoorOpen lsls r0, 24 asrs r0, 24 strh r0, [r5, 0xA] @@ -9211,7 +9211,7 @@ _080AFB6C: movs r2, 0 ldrsh r1, [r6, r2] subs r1, 0x1 - bl sub_808A8AC + bl FieldAnimateDoorClose lsls r0, 24 asrs r0, 24 strh r0, [r5, 0xA] @@ -9996,7 +9996,7 @@ _080B0198: bl sub_808D1B4 cmp r0, 0x1 beq _080B01B6 - bl sub_809757C + bl UnfreezeMapObjects bl ScriptContext2_Disable adds r0, r5, 0 bl DestroyTask diff --git a/asm/field_tasks.s b/asm/field_tasks.s index 6f8174fd8..39bd3b545 100644 --- a/asm/field_tasks.s +++ b/asm/field_tasks.s @@ -46,7 +46,7 @@ _0809D8CA: ands r0, r1 cmp r0, 0 beq _0809D8FC - bl sub_809E7B0 + bl DoTimeBasedEvents ldrh r0, [r4] adds r0, 0x1 b _0809D8FA @@ -144,8 +144,8 @@ _0809D992: .pool thumb_func_end overworld_ensure_per_step_coros_running - thumb_func_start activate_per_step_callback -activate_per_step_callback: @ 809D9A8 + thumb_func_start ActivatePerStepCallback +ActivatePerStepCallback: @ 809D9A8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 @@ -180,7 +180,7 @@ _0809D9EA: pop {r4} pop {r0} bx r0 - thumb_func_end activate_per_step_callback + thumb_func_end ActivatePerStepCallback thumb_func_start wild_encounter_reset_coro_args wild_encounter_reset_coro_args: @ 809D9F0 diff --git a/asm/fldeff_80F9BCC.s b/asm/fldeff_80F9BCC.s index 3ad2a398b..63acc9982 100644 --- a/asm/fldeff_80F9BCC.s +++ b/asm/fldeff_80F9BCC.s @@ -486,7 +486,7 @@ sub_80F9F78: @ 80F9F78 ands r0, r1 cmp r0, 0 beq _080F9FC0 - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments ldr r0, [r1, 0x4] cmp r0, 0x2 beq _080F9FAE @@ -517,7 +517,7 @@ _080F9FB6: movs r0, 0x18 b _080F9FFC _080F9FC0: - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments ldr r0, [r1, 0x4] cmp r0, 0x2 beq _080F9FEA @@ -643,7 +643,7 @@ _080FA0C4: sub_80FA0DC: @ 80FA0DC push {lr} bl brm_get_pokemon_selection - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments lsls r0, 24 lsrs r0, 24 str r0, [r1] @@ -701,7 +701,7 @@ sub_80FA13C: @ 80FA13C ldrh r1, [r2, 0x2] lsls r1, 23 lsrs r1, 23 - ldr r4, =gFieldEffectSpawnParams + ldr r4, =gFieldEffectArguments ldr r3, [r4, 0x14] adds r1, r3 lsls r1, 16 @@ -778,7 +778,7 @@ sub_80FA1D8: @ 80FA1D8 sub_80FA1E8: @ 80FA1E8 push {lr} bl brm_get_pokemon_selection - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments lsls r0, 24 lsrs r0, 24 str r0, [r1] @@ -836,13 +836,13 @@ sub_80FA248: @ 80FA248 ands r2, r0 cmp r2, 0x96 bne _080FA26A - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments movs r0, 0 str r0, [r1, 0x1C] _080FA26A: cmp r2, 0x9C bne _080FA274 - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments movs r0, 0x2 str r0, [r1, 0x1C] _080FA274: @@ -858,7 +858,7 @@ _080FA274: ldrh r1, [r2, 0x2] lsls r1, 23 lsrs r1, 23 - ldr r4, =gFieldEffectSpawnParams + ldr r4, =gFieldEffectArguments ldr r3, [r4, 0x14] adds r1, r3 lsls r1, 16 @@ -891,7 +891,7 @@ sub_80FA2D8: @ 80FA2D8 adds r4, r0, 0 movs r0, 0x9B bl PlaySE - ldr r0, =gFieldEffectSpawnParams + ldr r0, =gFieldEffectArguments ldr r1, [r0, 0x1C] adds r2, r4, 0 adds r2, 0x2A @@ -917,7 +917,7 @@ sub_80FA304: @ 80FA304 asrs r0, 16 cmp r0, 0x27 ble _080FA32E - ldr r0, =gFieldEffectSpawnParams + ldr r0, =gFieldEffectArguments ldr r0, [r0, 0x1C] cmp r0, 0 beq _080FA322 @@ -951,7 +951,7 @@ sub_80FA33C: @ 80FA33C sub_80FA34C: @ 80FA34C push {lr} bl brm_get_pokemon_selection - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments lsls r0, 24 lsrs r0, 24 str r0, [r1] @@ -1009,7 +1009,7 @@ sub_80FA3AC: @ 80FA3AC ldrh r1, [r2, 0x2] lsls r1, 23 lsrs r1, 23 - ldr r4, =gFieldEffectSpawnParams + ldr r4, =gFieldEffectArguments ldr r3, [r4, 0x14] adds r1, r3 lsls r1, 16 @@ -1807,7 +1807,7 @@ sub_80FAA7C: @ 80FAA7C mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments mov r0, sp movs r2, 0 ldrsh r0, [r0, r2] @@ -1930,7 +1930,7 @@ door_restore_tilemap: @ 80FABA4 adds r5, r0, 0 movs r0, 0x83 bl PlaySE - ldr r4, =gFieldEffectSpawnParams + ldr r4, =gFieldEffectArguments ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] subs r1, 0x1 @@ -1953,7 +1953,7 @@ _080FABDC: lsls r2, 2 bl MapGridSetMetatileIdAt _080FABEA: - ldr r4, =gFieldEffectSpawnParams + ldr r4, =gFieldEffectArguments ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] ldr r2, =0x0000020a @@ -1988,7 +1988,7 @@ sub_80FAC24: @ 80FAC24 strh r0, [r5, 0x2E] b _080FAC54 _080FAC38: - ldr r4, =gFieldEffectSpawnParams + ldr r4, =gFieldEffectArguments ldr r0, [r4, 0x14] ldr r1, [r4, 0x18] ldr r2, =0x00000e8c diff --git a/asm/fldeff_cut.s b/asm/fldeff_cut.s index 7f67185a9..e31bf22e2 100755 --- a/asm/fldeff_cut.s +++ b/asm/fldeff_cut.s @@ -385,7 +385,7 @@ hm2_ruin_valley: @ 80D3A50 movs r0, 0x1 bl FieldEffectStart bl brm_get_pokemon_selection - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments lsls r0, 24 lsrs r0, 24 str r0, [r1] @@ -421,7 +421,7 @@ sub_80D3A6C: @ 80D3A6C sub_80D3A9C: @ 80D3A9C push {lr} bl brm_get_pokemon_selection - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments lsls r0, 24 lsrs r0, 24 str r0, [r1] diff --git a/asm/fldeff_groundshake.s b/asm/fldeff_groundshake.s index cb0d2e2d8..81d92430e 100755 --- a/asm/fldeff_groundshake.s +++ b/asm/fldeff_groundshake.s @@ -161,7 +161,7 @@ sub_81BE79C: @ 81BE79C beq _081BE7B8 movs r0, 0xA7 lsls r0, 1 - bl FlagReset + bl FlagClear b _081BE7EE .pool _081BE7B8: @@ -188,7 +188,7 @@ _081BE7D4: _081BE7E6: movs r0, 0xA7 lsls r0, 1 - bl FlagReset + bl FlagClear _081BE7EE: pop {r4} pop {r0} diff --git a/asm/fldeff_strength.s b/asm/fldeff_strength.s index 98764625e..947517ed5 100644 --- a/asm/fldeff_strength.s +++ b/asm/fldeff_strength.s @@ -40,7 +40,7 @@ _08145DF2: sub_8145E0C: @ 8145E0C push {lr} bl brm_get_pokemon_selection - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments lsls r0, 24 lsrs r0, 24 str r0, [r1] @@ -66,7 +66,7 @@ sub_8145E2C: @ 8145E2C lsrs r0, r2, 16 strh r0, [r1, 0x18] strh r2, [r1, 0x1A] - ldr r0, =gFieldEffectSpawnParams + ldr r0, =gFieldEffectArguments ldr r1, [r0] movs r0, 0x64 muls r0, r1 diff --git a/asm/fldeff_sweetscent.s b/asm/fldeff_sweetscent.s index 5c83b455d..ea7b2653a 100644 --- a/asm/fldeff_sweetscent.s +++ b/asm/fldeff_sweetscent.s @@ -24,7 +24,7 @@ hm2_sweet_scent: @ 8159F10 movs r0, 0x33 bl FieldEffectStart bl brm_get_pokemon_selection - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments lsls r0, 24 lsrs r0, 24 str r0, [r1] diff --git a/asm/fldeff_teleport.s b/asm/fldeff_teleport.s index e4f4bce42..d77e29dd2 100644 --- a/asm/fldeff_teleport.s +++ b/asm/fldeff_teleport.s @@ -39,7 +39,7 @@ hm_teleport_run_dp02scr: @ 817C8FC movs r0, 0x3F bl FieldEffectStart bl brm_get_pokemon_selection - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments lsls r0, 24 lsrs r0, 24 str r0, [r1] diff --git a/asm/item.s b/asm/item.s index 97582e190..89177c5d4 100644 --- a/asm/item.s +++ b/asm/item.s @@ -676,8 +676,8 @@ _080D6D04: .pool thumb_func_end sub_80D6CE4 - thumb_func_start sub_80D6D1C -sub_80D6D1C: @ 80D6D1C + thumb_func_start CheckPCHasItem +CheckPCHasItem: @ 80D6D1C push {r4-r6,lr} lsls r0, 16 lsrs r6, r0, 16 @@ -717,10 +717,10 @@ _080D6D68: pop {r4-r6} pop {r1} bx r1 - thumb_func_end sub_80D6D1C + thumb_func_end CheckPCHasItem - thumb_func_start sub_80D6D70 -sub_80D6D70: @ 80D6D70 + thumb_func_start AddPCItem +AddPCItem: @ 80D6D70 push {r4-r7,lr} mov r7, r8 push {r7} @@ -819,7 +819,7 @@ _080D6E3A: pop {r1} bx r1 .pool - thumb_func_end sub_80D6D70 + thumb_func_end AddPCItem thumb_func_start sub_80D6E48 sub_80D6E48: @ 80D6E48 diff --git a/asm/item_menu.s b/asm/item_menu.s index c1f94b4e9..1e4dfca49 100755 --- a/asm/item_menu.s +++ b/asm/item_menu.s @@ -5388,7 +5388,7 @@ _081ADB6C: ldrh r0, [r4] mov r3, r8 ldrh r1, [r3, 0x10] - bl sub_80D6D70 + bl AddPCItem lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x1 diff --git a/asm/item_use.s b/asm/item_use.s index 42b2d8bc0..d3c724166 100644 --- a/asm/item_use.s +++ b/asm/item_use.s @@ -2215,7 +2215,7 @@ ItemUseOutOfBattle_BlackWhiteFlute: @ 80FE234 ldr r0, =0x000008ad bl FlagSet ldr r0, =0x000008ae - bl FlagReset + bl FlagClear ldr r0, =gStringVar4 ldr r1, =gText_UsedVar2WildLured bl StringExpandPlaceholders @@ -2225,7 +2225,7 @@ _080FE278: ldr r0, =0x000008ae bl FlagSet ldr r0, =0x000008ad - bl FlagReset + bl FlagClear ldr r0, =gStringVar4 ldr r1, =gText_UsedVar2WildRepelled bl StringExpandPlaceholders diff --git a/asm/link.s b/asm/link.s index fb20b1fb2..19d88b570 100644 --- a/asm/link.s +++ b/asm/link.s @@ -21117,7 +21117,7 @@ sub_8014290: @ 8014290 asrs r5, 24 str r5, [sp] adds r3, r4, 0 - bl warp1_set + bl Overworld_SetWarpDestination ldr r0, [r6] movs r1, 0x4 ldrsb r1, [r0, r1] @@ -21182,7 +21182,7 @@ sub_8014304: @ 8014304 adds r0, r4, 0 adds r1, r5, 0 mov r3, r8 - bl warp1_set + bl Overworld_SetWarpDestination bl warp_in add sp, 0x4 pop {r3} @@ -28312,7 +28312,7 @@ _080181BC: sub_80181CC: @ 80181CC push {lr} bl ScriptContext2_Enable - bl sub_80983E8 + bl ScriptFreezeMapObjects pop {r0} bx r0 thumb_func_end sub_80181CC @@ -31292,7 +31292,7 @@ flag_clear_x63: @ 8019A64 adds r0, r1 lsls r0, 16 lsrs r0, 16 - bl FlagReset + bl FlagClear pop {r0} bx r0 .pool diff --git a/asm/map_obj_8097404.s b/asm/map_obj_8097404.s index 4ed8e3bcd..96ffc2254 100644 --- a/asm/map_obj_8097404.s +++ b/asm/map_obj_8097404.s @@ -205,8 +205,8 @@ _0809756C: .pool thumb_func_end npc_sync_anim_pause_bits - thumb_func_start sub_809757C -sub_809757C: @ 809757C + thumb_func_start UnfreezeMapObjects +UnfreezeMapObjects: @ 809757C push {r4,r5,lr} movs r4, 0 ldr r5, =gMapObjects @@ -231,7 +231,7 @@ _08097598: pop {r0} bx r0 .pool - thumb_func_end sub_809757C + thumb_func_end UnfreezeMapObjects thumb_func_start little_step @ void little_step(struct obj *object, u8 direction) @@ -1396,7 +1396,7 @@ oe_exec_and_other_stuff: @ 8097DD0 adds r0, r1, 0 lsls r4, 24 lsrs r4, 24 - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments adds r2, r1, 0x4 adds r3, r1, 0 adds r3, 0x8 @@ -1434,7 +1434,7 @@ DoRippleFieldEffect: @ 8097E14 adds r4, r1, 0 ldrb r0, [r0, 0x5] bl GetFieldObjectGraphicsInfo - ldr r2, =gFieldEffectSpawnParams + ldr r2, =gFieldEffectArguments movs r3, 0x20 ldrsh r1, [r4, r3] str r1, [r2] diff --git a/asm/map_obj_lock.s b/asm/map_obj_lock.s index 60757cdd0..ee60814f5 100644 --- a/asm/map_obj_lock.s +++ b/asm/map_obj_lock.s @@ -59,8 +59,8 @@ _080983E2: bx r1 thumb_func_end sub_80983C4 - thumb_func_start sub_80983E8 -sub_80983E8: @ 80983E8 + thumb_func_start ScriptFreezeMapObjects +ScriptFreezeMapObjects: @ 80983E8 push {lr} bl player_bitmagic ldr r0, =sub_80983A4 @@ -69,7 +69,7 @@ sub_80983E8: @ 80983E8 pop {r0} bx r0 .pool - thumb_func_end sub_80983E8 + thumb_func_end ScriptFreezeMapObjects thumb_func_start sub_8098400 sub_8098400: @ 8098400 @@ -149,8 +149,8 @@ _0809849A: bx r1 thumb_func_end sub_809847C - thumb_func_start sub_80984A0 -sub_80984A0: @ 80984A0 + thumb_func_start LockSelectedMapObject +LockSelectedMapObject: @ 80984A0 push {r4,r5,lr} ldr r4, =gSelectedMapObject ldrb r0, [r4] @@ -184,7 +184,7 @@ _080984DE: pop {r0} bx r0 .pool - thumb_func_end sub_80984A0 + thumb_func_end LockSelectedMapObject thumb_func_start sub_80984F4 sub_80984F4: @ 80984F4 @@ -203,7 +203,7 @@ sub_80984F4: @ 80984F4 adds r0, r1 bl FieldObjectClearAnimIfSpecialAnimFinished bl sub_80D338C - bl sub_809757C + bl UnfreezeMapObjects pop {r0} bx r0 .pool @@ -239,7 +239,7 @@ _08098542: adds r0, r4 bl FieldObjectClearAnimIfSpecialAnimFinished bl sub_80D338C - bl sub_809757C + bl UnfreezeMapObjects pop {r4} pop {r0} bx r0 diff --git a/asm/mauville_old_man.s b/asm/mauville_old_man.s index 7b21e19e7..eb1fb781c 100644 --- a/asm/mauville_old_man.s +++ b/asm/mauville_old_man.s @@ -2205,7 +2205,7 @@ sub_8121178: @ 8121178 bl ConvertInternationalString mov r0, r8 bl sub_8120EC0 - bl box_related_two__2 + bl ShowFieldMessage pop {r3} mov r8, r3 pop {r4-r6} diff --git a/asm/mystery_event_script.s b/asm/mystery_event_script.s index d544f689f..ce8591981 100644 --- a/asm/mystery_event_script.s +++ b/asm/mystery_event_script.s @@ -46,7 +46,7 @@ sub_8153804: @ 8153804 ldr r1, =gUnknown_08674C86 bl StringExpandPlaceholders movs r0, 0x3 - bl sub_81538C4 + bl SetMysteryEventScriptStatus pop {r0} bx r0 .pool @@ -140,13 +140,13 @@ _081538AC: .pool thumb_func_end sub_81538A0 - thumb_func_start sub_81538C4 -sub_81538C4: @ 81538C4 + thumb_func_start SetMysteryEventScriptStatus +SetMysteryEventScriptStatus: @ 81538C4 ldr r1, =gUnknown_0203BBC0 str r0, [r1, 0x6C] bx lr .pool - thumb_func_end sub_81538C4 + thumb_func_end SetMysteryEventScriptStatus thumb_func_start sub_81538D0 sub_81538D0: @ 81538D0 diff --git a/asm/party_menu.s b/asm/party_menu.s index a881d4589..f4742a55e 100755 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -10051,7 +10051,7 @@ task_launch_hm_phase_2: @ 81B5750 cmp r0, 0x1 bne _081B577C bl brm_get_selected_species - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments lsls r0, 16 lsrs r0, 16 str r0, [r1] @@ -10135,7 +10135,7 @@ _081B57FE: hm_surf_run_dp02scr: @ 81B5804 push {lr} bl brm_get_pokemon_selection - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments lsls r0, 24 lsrs r0, 24 str r0, [r1] @@ -10239,7 +10239,7 @@ sub_81B58A8: @ 81B58A8 hm2_waterfall: @ 81B58D4 push {lr} bl brm_get_pokemon_selection - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments lsls r0, 24 lsrs r0, 24 str r0, [r1] @@ -10299,7 +10299,7 @@ _081B594E: sub_81B5958: @ 81B5958 push {lr} bl brm_get_pokemon_selection - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments lsls r0, 24 lsrs r0, 24 str r0, [r1] @@ -10314,7 +10314,7 @@ sub_81B5958: @ 81B5958 sub_81B5974: @ 81B5974 push {lr} bl sub_809D1E8 - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments lsls r0, 24 lsrs r0, 24 str r0, [r1, 0x4] @@ -15205,7 +15205,7 @@ sub_81B841C: @ 81B841C beq _081B8438 adds r0, r1, 0 movs r1, 0x1 - bl sub_80D6D70 + bl AddPCItem b _081B8440 .pool _081B8438: diff --git a/asm/player_pc.s b/asm/player_pc.s index 14062347c..cd91ed3e1 100644 --- a/asm/player_pc.s +++ b/asm/player_pc.s @@ -31,7 +31,7 @@ _0816AE1A: ldrh r0, [r0] adds r1, r6 ldrh r1, [r1] - bl sub_80D6D70 + bl AddPCItem lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s index 6c4c7ff13..298409e9c 100755 --- a/asm/pokemon_storage_system.s +++ b/asm/pokemon_storage_system.s @@ -6902,7 +6902,7 @@ sub_80CABE0: @ 80CABE0 cmp r1, r0 beq _080CAC0A ldr r0, =0x000008d7 - bl FlagReset + bl FlagClear ldr r4, =0x00004036 bl StorageGetCurrentBox adds r1, r0, 0 diff --git a/asm/record_mixing.s b/asm/record_mixing.s index aacc5baa0..37257eb75 100644 --- a/asm/record_mixing.s +++ b/asm/record_mixing.s @@ -2266,7 +2266,7 @@ sub_80E7F68: @ 80E7F68 bne _080E7FE4 ldrh r0, [r4] movs r1, 0x1 - bl sub_80D6D1C + bl CheckPCHasItem lsls r0, 24 cmp r0, 0 bne _080E7FE4 diff --git a/asm/rom4.s b/asm/rom4.s index 0a624620d..bf682fc51 100644 --- a/asm/rom4.s +++ b/asm/rom4.s @@ -36,15 +36,15 @@ flag_var_implications_of_teleport_: @ 8084660 push {lr} bl player_avatar_init_params_reset ldr r0, =0x0000088b - bl FlagReset + bl FlagClear ldr r0, =0x0000088d - bl FlagReset + bl FlagClear ldr r0, =0x0000088c - bl FlagReset + bl FlagClear ldr r0, =0x00000889 - bl FlagReset + bl FlagClear ldr r0, =0x00000888 - bl FlagReset + bl FlagClear pop {r0} bx r0 .pool @@ -55,15 +55,15 @@ sub_808469C: @ 808469C push {lr} bl player_avatar_init_params_reset ldr r0, =0x0000088b - bl FlagReset + bl FlagClear ldr r0, =0x0000088d - bl FlagReset + bl FlagClear ldr r0, =0x0000088c - bl FlagReset + bl FlagClear ldr r0, =0x00000889 - bl FlagReset + bl FlagClear ldr r0, =0x00000888 - bl FlagReset + bl FlagClear ldr r0, =gUnknown_08271862 bl ScriptContext2_RunNewScript pop {r0} @@ -76,15 +76,15 @@ flagmods_08054D70: @ 80846E4 push {lr} bl player_avatar_init_params_reset ldr r0, =0x0000088b - bl FlagReset + bl FlagClear ldr r0, =0x0000088d - bl FlagReset + bl FlagClear ldr r0, =0x0000088c - bl FlagReset + bl FlagClear ldr r0, =0x00000889 - bl FlagReset + bl FlagClear ldr r0, =0x00000888 - bl FlagReset + bl FlagClear pop {r0} bx r0 .pool @@ -95,15 +95,15 @@ sub_8084720: @ 8084720 push {r4,lr} bl player_avatar_init_params_reset ldr r0, =0x0000088b - bl FlagReset + bl FlagClear ldr r0, =0x0000088d - bl FlagReset + bl FlagClear ldr r0, =0x0000088c - bl FlagReset + bl FlagClear ldr r0, =0x00000889 - bl FlagReset + bl FlagClear ldr r0, =0x00000888 - bl FlagReset + bl FlagClear ldr r4, =0x00004039 adds r0, r4, 0 bl VarGet @@ -128,7 +128,7 @@ _08084764: sub_8084788: @ 8084788 push {lr} ldr r0, =0x0000088c - bl FlagReset + bl FlagClear bl sub_8085B2C bl wild_pokemon_reroll bl UpdateLocationHistoryForRoamer @@ -324,8 +324,8 @@ _080848F4: .pool thumb_func_end CopyFieldObjectTemplateCoordsToSav1 - thumb_func_start update_saveblock1_field_object_coords -update_saveblock1_field_object_coords: @ 8084910 + thumb_func_start Overworld_SetMapObjTemplateCoords +Overworld_SetMapObjTemplateCoords: @ 8084910 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 @@ -356,10 +356,10 @@ _08084944: pop {r4-r6} pop {r0} bx r0 - thumb_func_end update_saveblock1_field_object_coords + thumb_func_end Overworld_SetMapObjTemplateCoords - thumb_func_start update_saveblock1_field_object_movement_behavior -update_saveblock1_field_object_movement_behavior: @ 808494C + thumb_func_start Overworld_SetMapObjTemplateMovementType +Overworld_SetMapObjTemplateMovementType: @ 808494C push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 @@ -387,7 +387,7 @@ _08084978: pop {r4,r5} pop {r0} bx r0 - thumb_func_end update_saveblock1_field_object_movement_behavior + thumb_func_end Overworld_SetMapObjTemplateMovementType thumb_func_start mapdata_load_assets_to_gpu_and_full_redraw mapdata_load_assets_to_gpu_and_full_redraw: @ 8084980 @@ -710,9 +710,9 @@ warp_in: @ 8084BD8 bx r0 thumb_func_end warp_in - thumb_func_start warp1_set -@ void warp1_set(char bank, char map, char warpid, char enter_x, char enter_y) -warp1_set: @ 8084BEC + thumb_func_start Overworld_SetWarpDestination +@ void Overworld_SetWarpDestination(char bank, char map, char warpid, char enter_x, char enter_y) +Overworld_SetWarpDestination: @ 8084BEC push {r4-r6,lr} sub sp, 0x8 adds r4, r0, 0 @@ -741,7 +741,7 @@ warp1_set: @ 8084BEC pop {r0} bx r0 .pool - thumb_func_end warp1_set + thumb_func_end Overworld_SetWarpDestination thumb_func_start warp1_set_2 @ void warp1_set_2(char bank, char map, char warpid) @@ -757,7 +757,7 @@ warp1_set_2: @ 8084C28 movs r3, 0x1 negs r3, r3 str r3, [sp] - bl warp1_set + bl Overworld_SetWarpDestination add sp, 0x4 pop {r0} bx r0 @@ -857,7 +857,7 @@ sub_8084CCC: @ 8084CCC lsls r4, 24 asrs r4, 24 str r4, [sp] - bl warp1_set + bl Overworld_SetWarpDestination _08084CFA: add sp, 0x4 pop {r4} @@ -879,8 +879,8 @@ copy_saved_warp3_bank_and_enter_x_to_warp1: @ 8084D04 .pool thumb_func_end copy_saved_warp3_bank_and_enter_x_to_warp1 - thumb_func_start sub_8084D1C -sub_8084D1C: @ 8084D1C + thumb_func_start Overworld_SetHealLocationWarp +Overworld_SetHealLocationWarp: @ 8084D1C push {r4,r5,lr} sub sp, 0x8 lsls r0, 24 @@ -911,7 +911,7 @@ _08084D50: pop {r0} bx r0 .pool - thumb_func_end sub_8084D1C + thumb_func_end Overworld_SetHealLocationWarp thumb_func_start sub_8084D5C sub_8084D5C: @ 8084D5C @@ -1126,7 +1126,7 @@ _08084EF0: lsls r4, r6, 24 asrs r4, 24 str r4, [sp] - bl warp1_set + bl Overworld_SetWarpDestination _08084F0A: add sp, 0x4 pop {r4-r6} @@ -1289,7 +1289,7 @@ sub_8084FF8: @ 8084FF8 lsls r4, r5, 24 asrs r4, 24 str r4, [sp] - bl warp1_set + bl Overworld_SetWarpDestination b _0808504C _08085030: bl mapheader_run_script_with_tag_x6 @@ -1365,7 +1365,7 @@ mliX_load_map: @ 8085098 negs r3, r3 str r3, [sp] adds r2, r3, 0 - bl warp1_set + bl Overworld_SetWarpDestination ldr r4, =gMapHeader ldrb r0, [r4, 0x14] cmp r0, 0x3A @@ -1382,7 +1382,7 @@ _080850C8: adds r0, r6, 0 adds r1, r5, 0 bl sub_80B21B4 - bl sub_809E7B0 + bl DoTimeBasedEvents bl sub_80AEDBC bl sub_8085B2C bl update_sav1_flash_used_on_map @@ -1404,7 +1404,7 @@ _08085116: bl sub_80A0A2C bl UpdateLocationHistoryForRoamer bl RoamerMove - bl sub_80AEE20 + bl DoCurrentWeather bl wild_encounter_reset_coro_args bl mapheader_run_script_with_tag_x5 ldr r2, =gMapHeader @@ -1481,14 +1481,14 @@ _080851A2: bl sub_80B21B4 cmp r7, 0x1 beq _080851EE - bl sub_809E7B0 + bl DoTimeBasedEvents _080851EE: bl sub_80AEDBC bl sub_8085B2C cmp r5, 0 beq _08085200 ldr r0, =0x00000888 - bl FlagReset + bl FlagClear _08085200: bl update_sav1_flash_used_on_map bl sav1_reset_battle_music_maybe @@ -1858,8 +1858,8 @@ _080854DE: .pool thumb_func_end update_sav1_flash_used_on_map - thumb_func_start sub_80854EC -sub_80854EC: @ 80854EC + thumb_func_start Overworld_SetFlashLevel +Overworld_SetFlashLevel: @ 80854EC push {lr} adds r1, r0, 0 cmp r1, 0 @@ -1878,7 +1878,7 @@ _080854FE: pop {r0} bx r0 .pool - thumb_func_end sub_80854EC + thumb_func_end Overworld_SetFlashLevel thumb_func_start sav1_get_flash_used_on_map sav1_get_flash_used_on_map: @ 8085514 @@ -2263,14 +2263,14 @@ _080857E8: .pool thumb_func_end sub_8085784 - thumb_func_start sav1_set_battle_music_maybe -sav1_set_battle_music_maybe: @ 80857F4 + thumb_func_start Overworld_SetSavedMusic +Overworld_SetSavedMusic: @ 80857F4 ldr r1, =gSaveBlock1Ptr ldr r1, [r1] strh r0, [r1, 0x2C] bx lr .pool - thumb_func_end sav1_set_battle_music_maybe + thumb_func_end Overworld_SetSavedMusic thumb_func_start sav1_reset_battle_music_maybe sav1_reset_battle_music_maybe: @ 8085800 @@ -2339,8 +2339,8 @@ _08085890: bx r0 thumb_func_end sub_8085810 - thumb_func_start sub_8085898 -sub_8085898: @ 8085898 + thumb_func_start Overworld_ChangeMusicToDefault +Overworld_ChangeMusicToDefault: @ 8085898 push {r4,lr} bl GetCurrentMapMusic adds r4, r0, 0 @@ -2360,10 +2360,10 @@ _080858BE: pop {r4} pop {r0} bx r0 - thumb_func_end sub_8085898 + thumb_func_end Overworld_ChangeMusicToDefault - thumb_func_start sub_80858C4 -sub_80858C4: @ 80858C4 + thumb_func_start Overworld_ChangeMusicTo +Overworld_ChangeMusicTo: @ 80858C4 push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 @@ -2383,7 +2383,7 @@ _080858E4: pop {r0} bx r0 .pool - thumb_func_end sub_80858C4 + thumb_func_end Overworld_ChangeMusicTo thumb_func_start is_warp1_light_level_8_or_9 is_warp1_light_level_8_or_9: @ 80858F0 @@ -3525,8 +3525,8 @@ _08086278: _08086286: bl CopyFieldObjectTemplateCoordsToSav1 _0808628A: - bl sub_809757C - bl sub_809E7B0 + bl UnfreezeMapObjects + bl DoTimeBasedEvents bl sub_8084788 ldr r0, =gMapHeader ldrh r1, [r0, 0x12] diff --git a/asm/rom6.s b/asm/rom6.s index 2ed9d888e..ee2c3059d 100644 --- a/asm/rom6.s +++ b/asm/rom6.s @@ -167,7 +167,7 @@ sub_8135578: @ 8135578 cmp r4, 0 bne _081355FC bl player_get_direction_lower_nybble - ldr r6, =gFieldEffectSpawnParams + ldr r6, =gFieldEffectArguments lsls r0, 24 lsrs r0, 24 str r0, [r6, 0x4] @@ -303,7 +303,7 @@ _081356AC: sub_81356C4: @ 81356C4 push {lr} bl brm_get_pokemon_selection - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments lsls r0, 24 lsrs r0, 24 str r0, [r1] @@ -380,7 +380,7 @@ hm2_dig: @ 8135760 movs r0, 0x26 bl FieldEffectStart bl brm_get_pokemon_selection - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments lsls r0, 24 lsrs r0, 24 str r0, [r1] @@ -3381,7 +3381,7 @@ hm2_flash: @ 8137178 lsls r4, 24 lsrs r4, 24 bl brm_get_pokemon_selection - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments lsls r0, 24 lsrs r0, 24 str r0, [r1] @@ -4337,7 +4337,7 @@ sub_8137988: @ 8137988 .pool _081379C8: ldr r0, =0x0000089a - bl FlagReset + bl FlagClear _081379CE: pop {r0} bx r0 @@ -4629,7 +4629,7 @@ sub_8137C10: @ 8137C10 ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] bl sub_8137A98 - bl box_related_two__2 + bl ShowFieldMessage pop {r0} bx r0 .pool @@ -5030,7 +5030,7 @@ _08137F6E: movs r1, 0 bl VarSet movs r0, 0 - bl sav1_set_battle_music_maybe + bl Overworld_SetSavedMusic _08137F7C: pop {r4} pop {r0} @@ -5056,7 +5056,7 @@ sub_8137F90: @ 8137F90 sub_8137FB0: @ 8137FB0 push {lr} ldr r0, =0x0000088d - bl FlagReset + bl FlagClear pop {r0} bx r0 .pool @@ -6378,7 +6378,7 @@ sub_8138AA4: @ 8138AA4 sub_8138AC0: @ 8138AC0 push {lr} ldr r0, =gStringVar4 - bl box_related_two__2 + bl ShowFieldMessage pop {r0} bx r0 .pool @@ -6485,7 +6485,7 @@ sub_8138B8C: @ 8138B8C movs r0, 0x13 movs r1, 0 movs r3, 0x6 - bl warp1_set + bl Overworld_SetWarpDestination b _08138BC2 .pool _08138BB0: @@ -6496,7 +6496,7 @@ _08138BB0: movs r0, 0x13 movs r1, 0x1 movs r3, 0x6 - bl warp1_set + bl Overworld_SetWarpDestination _08138BC2: add sp, 0x4 pop {r0} @@ -6537,7 +6537,7 @@ _08138BF6: thumb_func_start sub_8138C04 sub_8138C04: @ 8138C04 push {r4,lr} - bl sub_8139688 + bl GetLeadMonIndex lsls r0, 24 lsrs r0, 24 movs r1, 0x64 @@ -7051,7 +7051,7 @@ sub_8138FEC: @ 8138FEC ldr r1, =gSpecialVar_0x8004 ldr r0, =0x000001f5 strh r0, [r1] - bl FlagReset + bl FlagClear pop {r0} bx r0 .pool @@ -7060,7 +7060,7 @@ sub_8138FEC: @ 8138FEC thumb_func_start sub_8139004 sub_8139004: @ 8139004 push {lr} - bl sub_8139688 + bl GetLeadMonIndex lsls r0, 24 lsrs r0, 24 movs r1, 0x64 @@ -7084,7 +7084,7 @@ _0813902A: thumb_func_start sub_8139030 sub_8139030: @ 8139030 push {lr} - bl sub_8139688 + bl GetLeadMonIndex lsls r0, 24 lsrs r0, 24 movs r1, 0x64 @@ -7108,7 +7108,7 @@ _08139056: thumb_func_start sub_813905C sub_813905C: @ 813905C push {lr} - bl sub_8139688 + bl GetLeadMonIndex lsls r0, 24 lsrs r0, 24 movs r1, 0x64 @@ -7132,7 +7132,7 @@ _08139082: thumb_func_start sub_8139088 sub_8139088: @ 8139088 push {lr} - bl sub_8139688 + bl GetLeadMonIndex lsls r0, 24 lsrs r0, 24 movs r1, 0x64 @@ -7156,7 +7156,7 @@ _081390AE: thumb_func_start sub_81390B4 sub_81390B4: @ 81390B4 push {lr} - bl sub_8139688 + bl GetLeadMonIndex lsls r0, 24 lsrs r0, 24 movs r1, 0x64 @@ -7295,7 +7295,7 @@ RemoveScriptFieldObject: @ 81391AC thumb_func_start sub_81391D0 sub_81391D0: @ 81391D0 push {lr} - bl sub_8139688 + bl GetLeadMonIndex lsls r0, 24 lsrs r0, 24 movs r1, 0x64 @@ -7479,7 +7479,7 @@ _08139342: thumb_func_start sub_8139348 sub_8139348: @ 8139348 push {lr} - bl sub_8139688 + bl GetLeadMonIndex lsls r0, 24 lsrs r0, 24 movs r1, 0x64 @@ -7507,7 +7507,7 @@ sub_8139370: @ 8139370 movs r1, 0x1 mov r0, sp strb r1, [r0] - bl sub_8139688 + bl GetLeadMonIndex lsls r0, 24 lsrs r0, 24 movs r1, 0x64 @@ -7538,7 +7538,7 @@ _081393B6: thumb_func_start sub_81393C8 sub_81393C8: @ 81393C8 push {lr} - bl sub_8139688 + bl GetLeadMonIndex lsls r0, 24 lsrs r0, 24 movs r1, 0x64 @@ -7858,7 +7858,7 @@ sub_8139648: @ 8139648 cmp r0, 0x1 beq _08139664 movs r0, 0x14 - bl sub_80AED7C + bl SetSav1Weather _08139664: pop {r0} bx r0 @@ -7876,14 +7876,14 @@ sub_8139668: @ 8139668 cmp r0, 0x1 beq _08139684 movs r0, 0x15 - bl sub_80AED7C + bl SetSav1Weather _08139684: pop {r0} bx r0 thumb_func_end sub_8139668 - thumb_func_start sub_8139688 -sub_8139688: @ 8139688 + thumb_func_start GetLeadMonIndex +GetLeadMonIndex: @ 8139688 push {r4-r6,lr} bl CalculatePlayerPartyCount lsls r0, 24 @@ -7926,7 +7926,7 @@ _081396D8: pop {r4-r6} pop {r1} bx r1 - thumb_func_end sub_8139688 + thumb_func_end GetLeadMonIndex thumb_func_start sub_81396E0 sub_81396E0: @ 81396E0 @@ -9094,7 +9094,7 @@ _0813A062: lsls r0, 2 adds r0, r7 ldr r0, [r0] - bl box_related_two__2 + bl ShowFieldMessage pop {r4-r7} pop {r0} bx r0 @@ -9996,7 +9996,7 @@ _0813A7C6: lsrs r0, 22 adds r0, r1 ldr r0, [r0] - bl box_related_two__2 + bl ShowFieldMessage pop {r0} bx r0 .pool @@ -10036,7 +10036,7 @@ sub_813A820: @ 813A820 lsls r0, r4, 2 adds r0, r1 ldr r0, [r0] - bl box_related_two__2 + bl ShowFieldMessage ldr r0, =0x00004031 adds r1, r4, 0 bl VarSet @@ -10056,7 +10056,7 @@ sub_813A854: @ 813A854 lsrs r0, 14 adds r0, r4 ldr r0, [r0] - bl box_related_two__2 + bl ShowFieldMessage pop {r4} pop {r0} bx r0 @@ -11039,7 +11039,7 @@ _0813B0F8: ldr r0, =sub_813B160 movs r1, 0x8 bl CreateTask - ldr r3, =gFieldEffectSpawnParams + ldr r3, =gFieldEffectArguments movs r0, 0x1 str r0, [r3] movs r0, 0x3A @@ -11074,7 +11074,7 @@ _0813B13A: adds r0, r5, r0 ldrb r2, [r0] movs r0, 0x1 - bl update_saveblock1_field_object_coords + bl Overworld_SetMapObjTemplateCoords add sp, 0x4 pop {r4,r5} pop {r0} @@ -11238,7 +11238,7 @@ _0813B27E: cmp r0, r4 beq _0813B2A6 ldr r0, =0x000008d7 - bl FlagReset + bl FlagClear _0813B2A6: ldr r0, =0x00004036 lsrs r1, r7, 16 @@ -11778,7 +11778,7 @@ _0813B728: cmp r0, 0x2 bne _0813B790 ldr r0, =gUnknown_0824979B - bl box_related_two__3 + bl ShowFieldAutoScrollMessage b _0813B790 .pool _0813B74C: @@ -11787,7 +11787,7 @@ _0813B74C: cmp r0, 0x3 bne _0813B790 ldr r0, =gUnknown_0824979B - bl box_related_two__3 + bl ShowFieldAutoScrollMessage b _0813B790 .pool _0813B764: @@ -12075,7 +12075,7 @@ sub_813B9A0: @ 813B9A0 cmp r1, r0 bne _0813B9B6 movs r0, 0x3 - bl sub_8084D1C + bl Overworld_SetHealLocationWarp _0813B9B6: pop {r0} bx r0 @@ -12187,16 +12187,16 @@ sub_813BA60: @ 813BA60 adds r1, r2 strh r0, [r1] ldr r0, =0x00000315 - bl FlagReset + bl FlagClear ldr r0, =0x00000316 - bl FlagReset + bl FlagClear ldr r0, =0x00000317 - bl FlagReset + bl FlagClear movs r0, 0xC6 lsls r0, 2 - bl FlagReset + bl FlagClear ldr r0, =0x000002da - bl FlagReset + bl FlagClear ldr r0, =0x00004095 movs r1, 0x1 bl VarSet diff --git a/asm/scrcmd.s b/asm/scrcmd.s deleted file mode 100644 index f2e61a946..000000000 --- a/asm/scrcmd.s +++ /dev/null @@ -1,5744 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start s00_nop -s00_nop: @ 80992CC - movs r0, 0 - bx lr - thumb_func_end s00_nop - - thumb_func_start s01_nop -s01_nop: @ 80992D0 - movs r0, 0 - bx lr - thumb_func_end s01_nop - - thumb_func_start s02_end -s02_end: @ 80992D4 - push {lr} - bl StopScript - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end s02_end - - thumb_func_start s24_execute_ASM_2 -s24_execute_ASM_2: @ 80992E0 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r1, r0, 0 - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - thumb_func_end s24_execute_ASM_2 - - thumb_func_start s25_extended_cmd -s25_extended_cmd: @ 80992F8 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - ldr r1, =gUnknown_081DBA64 - lsrs r0, 14 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end s25_extended_cmd - - thumb_func_start s26_extended_cmd_setvar -s26_extended_cmd_setvar: @ 8099318 - push {r4-r6,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r6, r0, 0 - ldr r4, =gUnknown_081DBA64 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 14 - adds r0, r4 - ldr r0, [r0] - bl _call_via_r0 - strh r0, [r6] - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end s26_extended_cmd_setvar - - thumb_func_start s23_execute_ASM -s23_execute_ASM: @ 809934C - push {lr} - bl ScriptReadWord - bl _call_via_r0 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end s23_execute_ASM - - thumb_func_start s27_set_to_waitstate -s27_set_to_waitstate: @ 809935C - push {lr} - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end s27_set_to_waitstate - - thumb_func_start s05_goto -s05_goto: @ 8099368 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r1, r0, 0 - adds r0, r4, 0 - bl ScriptJump - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end s05_goto - - thumb_func_start s03_return -s03_return: @ 8099380 - push {lr} - bl ScriptReturn - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end s03_return - - thumb_func_start s04_call -s04_call: @ 809938C - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r1, r0, 0 - adds r0, r4, 0 - bl ScriptCall - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end s04_call - - thumb_func_start s06_if_jump -@ int s06_if_jump(script_env *env) -s06_if_jump: @ 80993A4 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadWord - adds r2, r0, 0 - ldr r1, =gUnknown_085102C0 - lsls r0, r4, 1 - adds r0, r4 - ldrb r3, [r5, 0x2] - adds r0, r3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080993D2 - adds r0, r5, 0 - adds r1, r2, 0 - bl ScriptJump -_080993D2: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end s06_if_jump - - thumb_func_start s07_if_call -s07_if_call: @ 80993E0 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadWord - adds r2, r0, 0 - ldr r1, =gUnknown_085102C0 - lsls r0, r4, 1 - adds r0, r4 - ldrb r3, [r5, 0x2] - adds r0, r3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0809940E - adds r0, r5, 0 - adds r1, r2, 0 - bl ScriptCall -_0809940E: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end s07_if_call - - thumb_func_start sB8_set_virtual_address -@ int sB8_set_virtual_address(script_env *env) -sB8_set_virtual_address: @ 809941C - push {r4,lr} - ldr r4, [r0, 0x8] - subs r4, 0x1 - bl ScriptReadWord - ldr r1, =gUnknown_020375C4 - subs r0, r4 - str r0, [r1] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sB8_set_virtual_address - - thumb_func_start sB9_virtual_jump -@ int sB9_virtual_jump(script_env *env) -sB9_virtual_jump: @ 8099438 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r1, r0, 0 - ldr r0, =gUnknown_020375C4 - ldr r0, [r0] - subs r1, r0 - adds r0, r4, 0 - bl ScriptJump - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sB9_virtual_jump - - thumb_func_start sBA_virtual_call -sBA_virtual_call: @ 809945C - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r1, r0, 0 - ldr r0, =gUnknown_020375C4 - ldr r0, [r0] - subs r1, r0 - adds r0, r4, 0 - bl ScriptCall - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sBA_virtual_call - - thumb_func_start sBB_virtual_if_jump -sBB_virtual_if_jump: @ 8099480 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadWord - ldr r1, =gUnknown_020375C4 - ldr r1, [r1] - subs r2, r0, r1 - ldr r1, =gUnknown_085102C0 - lsls r0, r4, 1 - adds r0, r4 - ldrb r3, [r5, 0x2] - adds r0, r3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080994B2 - adds r0, r5, 0 - adds r1, r2, 0 - bl ScriptJump -_080994B2: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sBB_virtual_if_jump - - thumb_func_start sBC_virtual_if_call -sBC_virtual_if_call: @ 80994C4 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadWord - ldr r1, =gUnknown_020375C4 - ldr r1, [r1] - subs r2, r0, r1 - ldr r1, =gUnknown_085102C0 - lsls r0, r4, 1 - adds r0, r4 - ldrb r3, [r5, 0x2] - adds r0, r3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080994F6 - adds r0, r5, 0 - adds r1, r2, 0 - bl ScriptCall -_080994F6: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sBC_virtual_if_call - - thumb_func_start s08_jumpstd -s08_jumpstd: @ 8099508 - push {lr} - adds r2, r0, 0 - ldr r0, [r2, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r2, 0x8] - lsls r1, 2 - ldr r0, =gUnknown_081DC2A0 - adds r1, r0 - ldr r0, =gUnknown_081DC2CC - cmp r1, r0 - bcs _08099528 - ldr r1, [r1] - adds r0, r2, 0 - bl ScriptJump -_08099528: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end s08_jumpstd - - thumb_func_start s09_callstd -s09_callstd: @ 8099538 - push {lr} - adds r2, r0, 0 - ldr r0, [r2, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r2, 0x8] - lsls r1, 2 - ldr r0, =gUnknown_081DC2A0 - adds r1, r0 - ldr r0, =gUnknown_081DC2CC - cmp r1, r0 - bcs _08099558 - ldr r1, [r1] - adds r0, r2, 0 - bl ScriptCall -_08099558: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end s09_callstd - - thumb_func_start s0A_jumpstd_if -s0A_jumpstd_if: @ 8099568 - push {r4,lr} - adds r3, r0, 0 - ldr r0, [r3, 0x8] - ldrb r2, [r0] - adds r0, 0x1 - str r0, [r3, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r3, 0x8] - ldr r1, =gUnknown_085102C0 - lsls r0, r2, 1 - adds r0, r2 - ldrb r2, [r3, 0x2] - adds r0, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080995A0 - lsls r0, r4, 2 - ldr r1, =gUnknown_081DC2A0 - adds r1, r0, r1 - ldr r0, =gUnknown_081DC2CC - cmp r1, r0 - bcs _080995A0 - ldr r1, [r1] - adds r0, r3, 0 - bl ScriptJump -_080995A0: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end s0A_jumpstd_if - - thumb_func_start s0B_callstd_if -s0B_callstd_if: @ 80995B4 - push {r4,lr} - adds r3, r0, 0 - ldr r0, [r3, 0x8] - ldrb r2, [r0] - adds r0, 0x1 - str r0, [r3, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r3, 0x8] - ldr r1, =gUnknown_085102C0 - lsls r0, r2, 1 - adds r0, r2 - ldrb r2, [r3, 0x2] - adds r0, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080995EC - lsls r0, r4, 2 - ldr r1, =gUnknown_081DC2A0 - adds r1, r0, r1 - ldr r0, =gUnknown_081DC2CC - cmp r1, r0 - bcs _080995EC - ldr r1, [r1] - adds r0, r3, 0 - bl ScriptCall -_080995EC: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end s0B_callstd_if - - thumb_func_start s0C_restore_execution_after_sCF -s0C_restore_execution_after_sCF: @ 8099600 - push {lr} - ldr r1, =gUnknown_020375C0 - ldr r1, [r1] - bl ScriptJump - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end s0C_restore_execution_after_sCF - - thumb_func_start s0D_endscript_killram -s0D_endscript_killram: @ 8099614 - push {r4,lr} - adds r4, r0, 0 - bl ClearRamScript - adds r0, r4, 0 - bl StopScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - thumb_func_end s0D_endscript_killram - - thumb_func_start s0E_set_byte -s0E_set_byte: @ 809962C - push {lr} - ldr r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - adds r0, r2, 0 - bl sub_81538C4 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end s0E_set_byte - - thumb_func_start s0F_u32_var_to_const -@ int s0F_u32_var_to_const(script_env *env) -s0F_u32_var_to_const: @ 8099644 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x8] - ldrb r5, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - adds r0, r4, 0 - bl ScriptReadWord - lsls r5, 2 - adds r4, 0x64 - adds r4, r5 - str r0, [r4] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end s0F_u32_var_to_const - - thumb_func_start s12_u32_var_to_ptr -@ int s12_u32_var_to_ptr(script_env *env) -s12_u32_var_to_ptr: @ 8099668 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x8] - ldrb r5, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - adds r0, r4, 0 - bl ScriptReadWord - lsls r5, 2 - adds r4, 0x64 - adds r4, r5 - ldrb r0, [r0] - str r0, [r4] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end s12_u32_var_to_ptr - - thumb_func_start s11_u8_ptr_to_const -@ int s11_u8_ptr_to_const(script_env *env) -s11_u8_ptr_to_const: @ 809968C - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadWord - strb r4, [r0] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end s11_u8_ptr_to_const - - thumb_func_start s10_u8_var_to_const -@ int s10_u8_var_to_const(script_env *env) -s10_u8_var_to_const: @ 80996A4 - ldr r1, [r0, 0x8] - ldrb r3, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - lsls r3, 2 - adds r2, r0, 0 - adds r2, 0x64 - adds r2, r3 - ldrb r3, [r1] - str r3, [r2] - adds r1, 0x1 - str r1, [r0, 0x8] - movs r0, 0 - bx lr - thumb_func_end s10_u8_var_to_const - - thumb_func_start s13_u8_var_to_ptr -@ int s13_u8_var_to_ptr(script_env *env) -s13_u8_var_to_ptr: @ 80996C0 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x8] - ldrb r5, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - adds r0, r4, 0 - bl ScriptReadWord - lsls r5, 2 - adds r4, 0x64 - adds r4, r5 - ldr r1, [r4] - strb r1, [r0] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end s13_u8_var_to_ptr - - thumb_func_start s14_u32_var_to_var -s14_u32_var_to_var: @ 80996E4 - ldr r1, [r0, 0x8] - ldrb r3, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - lsls r3, 2 - adds r0, 0x64 - adds r3, r0, r3 - lsls r2, 2 - adds r0, r2 - ldr r0, [r0] - str r0, [r3] - movs r0, 0 - bx lr - thumb_func_end s14_u32_var_to_var - - thumb_func_start s15_u8_ptr_to_ptr -s15_u8_ptr_to_ptr: @ 8099704 - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r5, r0, 0 - adds r0, r4, 0 - bl ScriptReadWord - ldrb r0, [r0] - strb r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end s15_u8_ptr_to_ptr - - thumb_func_start s16_u16_gvar_to_const -s16_u16_gvar_to_const: @ 8099720 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r4, r0, 0 - adds r0, r5, 0 - bl ScriptReadHalfword - strh r0, [r4] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end s16_u16_gvar_to_const - - thumb_func_start s19_u16_gvar_gvar -s19_u16_gvar_gvar: @ 8099744 - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r5, r0, 0 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - ldrh r0, [r0] - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end s19_u16_gvar_gvar - - thumb_func_start s1A_u16_gvar_gvar -s1A_u16_gvar_gvar: @ 8099770 - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r5, r0, 0 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end s1A_u16_gvar_gvar - - thumb_func_start compare_012 -compare_012: @ 809979C - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 16 - lsrs r1, 16 - cmp r0, r1 - bcs _080997AE - movs r0, 0 - b _080997B8 -_080997AE: - cmp r0, r1 - beq _080997B6 - movs r0, 0x2 - b _080997B8 -_080997B6: - movs r0, 0x1 -_080997B8: - pop {r1} - bx r1 - thumb_func_end compare_012 - - thumb_func_start s1B_cmp_u8_var_var -s1B_cmp_u8_var_var: @ 80997BC - push {r4,lr} - adds r4, r0, 0 - ldr r2, [r4, 0x8] - ldrb r0, [r2] - lsls r0, 2 - adds r3, r4, 0 - adds r3, 0x64 - adds r0, r3, r0 - ldrb r0, [r0] - adds r2, 0x1 - str r2, [r4, 0x8] - ldrb r1, [r2] - lsls r1, 2 - adds r3, r1 - ldrb r1, [r3] - adds r2, 0x1 - str r2, [r4, 0x8] - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end s1B_cmp_u8_var_var - - thumb_func_start s1C_cmp_u8_var_const -s1C_cmp_u8_var_const: @ 80997EC - push {r4,lr} - adds r4, r0, 0 - ldr r2, [r4, 0x8] - ldrb r1, [r2] - lsls r1, 2 - adds r0, 0x64 - adds r0, r1 - ldrb r0, [r0] - adds r2, 0x1 - str r2, [r4, 0x8] - ldrb r1, [r2] - adds r2, 0x1 - str r2, [r4, 0x8] - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end s1C_cmp_u8_var_const - - thumb_func_start s1D_cmp_u8_var_ptr -s1D_cmp_u8_var_ptr: @ 8099814 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r2, [r4, 0x8] - ldrb r1, [r2] - lsls r1, 2 - adds r0, 0x64 - adds r0, r1 - ldrb r5, [r0] - adds r2, 0x1 - str r2, [r4, 0x8] - adds r0, r4, 0 - bl ScriptReadWord - ldrb r1, [r0] - adds r0, r5, 0 - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end s1D_cmp_u8_var_ptr - - thumb_func_start s1E_cmp_u8_ptr_var -s1E_cmp_u8_ptr_var: @ 8099840 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - ldrb r0, [r0] - ldr r3, [r4, 0x8] - ldrb r2, [r3] - lsls r2, 2 - adds r1, r4, 0 - adds r1, 0x64 - adds r1, r2 - ldrb r1, [r1] - adds r3, 0x1 - str r3, [r4, 0x8] - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end s1E_cmp_u8_ptr_var - - thumb_func_start s1F_cmp_u8_ptr_const -s1F_cmp_u8_ptr_const: @ 809986C - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - ldrb r0, [r0] - ldr r2, [r4, 0x8] - ldrb r1, [r2] - adds r2, 0x1 - str r2, [r4, 0x8] - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end s1F_cmp_u8_ptr_const - - thumb_func_start s20_cmp_u8_ptr_ptr -s20_cmp_u8_ptr_ptr: @ 809988C - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadWord - ldrb r5, [r0] - adds r0, r4, 0 - bl ScriptReadWord - ldrb r1, [r0] - adds r0, r5, 0 - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end s20_cmp_u8_ptr_ptr - - thumb_func_start s21_cmp_u16_gvar_const -s21_cmp_u16_gvar_const: @ 80998B0 - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - ldrh r5, [r0] - adds r0, r4, 0 - bl ScriptReadHalfword - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r5, 0 - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end s21_cmp_u16_gvar_const - - thumb_func_start s22_cmp_u16_gvar_gvar -s22_cmp_u16_gvar_gvar: @ 80998E0 - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r5, r0, 0 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - ldrh r2, [r5] - ldrh r1, [r0] - adds r0, r2, 0 - bl compare_012 - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end s22_cmp_u16_gvar_gvar - - thumb_func_start s17_u16_gvar_add_const -s17_u16_gvar_add_const: @ 8099914 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r4, r0, 0 - adds r0, r5, 0 - bl ScriptReadHalfword - ldrh r1, [r4] - adds r0, r1 - strh r0, [r4] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end s17_u16_gvar_add_const - - thumb_func_start sub_809993C -sub_809993C: @ 809993C - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r5, r0, 0 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldrh r1, [r5] - subs r1, r0 - strh r1, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809993C - - thumb_func_start s8F_get_random_val -s8F_get_random_val: @ 809996C - push {r4,r5,lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r5, =gScriptResult - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r4, 0 - bl __umodsi3 - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end s8F_get_random_val - - thumb_func_start sub_80999A0 -sub_80999A0: @ 80999A0 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - ldr r5, =gScriptResult - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl AddBagItem - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80999A0 - - thumb_func_start sub_80999E4 -sub_80999E4: @ 80999E4 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - ldr r5, =gScriptResult - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl RemoveBagItem - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80999E4 - - thumb_func_start sub_8099A28 -sub_8099A28: @ 8099A28 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - ldr r5, =gScriptResult - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl CheckBagHasSpace - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8099A28 - - thumb_func_start sub_8099A6C -sub_8099A6C: @ 8099A6C - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - ldr r5, =gScriptResult - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl CheckBagHasItem - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8099A6C - - thumb_func_start s48_get_item_type -s48_get_item_type: @ 8099AB0 - push {r4,lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r4, =gScriptResult - bl GetPocketByItemId - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end s48_get_item_type - - thumb_func_start sub_8099ADC -sub_8099ADC: @ 8099ADC - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldr r5, =gScriptResult - adds r0, r4, 0 - bl sub_80D6D70 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8099ADC - - thumb_func_start sub_8099B20 -sub_8099B20: @ 8099B20 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - ldr r5, =gScriptResult - adds r0, r4, 0 - bl sub_80D6D1C - lsls r0, 24 - lsrs r0, 24 - strh r0, [r5] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8099B20 - - thumb_func_start sub_8099B64 -sub_8099B64: @ 8099B64 - push {r4,lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r4, =gScriptResult - lsls r0, 24 - lsrs r0, 24 - bl DecorationAdd - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8099B64 - - thumb_func_start sub_8099B90 -sub_8099B90: @ 8099B90 - push {r4,lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r4, =gScriptResult - lsls r0, 24 - lsrs r0, 24 - bl DecorationRemove - lsls r0, 24 - asrs r0, 24 - strh r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8099B90 - - thumb_func_start sub_8099BBC -sub_8099BBC: @ 8099BBC - push {r4,lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r4, =gScriptResult - lsls r0, 24 - lsrs r0, 24 - bl DecorationCheckSpace - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8099BBC - - thumb_func_start sub_8099BE8 -sub_8099BE8: @ 8099BE8 - push {r4,lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r4, =gScriptResult - lsls r0, 24 - lsrs r0, 24 - bl sub_8161918 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8099BE8 - - thumb_func_start s29_flag_set -@ int s29_flag_set(script_env *env) -s29_flag_set: @ 8099C14 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl FlagSet - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end s29_flag_set - - thumb_func_start s2A_flag_clear -@ int s2A_flag_clear(script_env *env) -s2A_flag_clear: @ 8099C28 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl FlagReset - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end s2A_flag_clear - - thumb_func_start s2B_flag_check -@ int s2B_flag_check(script_env *env) -s2B_flag_check: @ 8099C3C - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl FlagGet - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end s2B_flag_check - - thumb_func_start sC3_unknown -@ int sC3_unknown(script_env *env) -sC3_unknown: @ 8099C58 - push {lr} - ldr r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - adds r0, r2, 0 - bl IncrementGameStat - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sC3_unknown - - thumb_func_start s9A_unknown -@ int s9A_unknown(script_env *env) -s9A_unknown: @ 8099C70 - push {lr} - ldr r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - adds r0, r2, 0 - bl sub_80B009C - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end s9A_unknown - - thumb_func_start s99_unknown -@ int s99_unknown(script_env *env) -s99_unknown: @ 8099C8C - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl sub_80854EC - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end s99_unknown - - thumb_func_start sub_8099CA8 -sub_8099CA8: @ 8099CA8 - push {lr} - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08099CC0 - movs r0, 0 - b _08099CC2 - .pool -_08099CC0: - movs r0, 0x1 -_08099CC2: - pop {r1} - bx r1 - thumb_func_end sub_8099CA8 - - thumb_func_start s97_screen_special_effect -@ int s97_screen_special_effect(script_env *env) -s97_screen_special_effect: @ 8099CC8 - push {r4,lr} - adds r4, r0, 0 - ldr r1, [r4, 0x8] - ldrb r0, [r1] - adds r1, 0x1 - str r1, [r4, 0x8] - movs r1, 0 - bl fade_screen - ldr r1, =sub_8099CA8 - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end s97_screen_special_effect - - thumb_func_start s98_refade_with_timer -@ int s98_refade_with_timer(script_env *env) -s98_refade_with_timer: @ 8099CF0 - push {r4,lr} - adds r4, r0, 0 - ldr r2, [r4, 0x8] - ldrb r0, [r2] - adds r2, 0x1 - str r2, [r4, 0x8] - ldrb r1, [r2] - adds r2, 0x1 - str r2, [r4, 0x8] - lsls r1, 24 - asrs r1, 24 - bl fade_screen - ldr r1, =sub_8099CA8 - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end s98_refade_with_timer - - thumb_func_start sub_8099D20 -@ int sub_8099D20(script_env *env) -sub_8099D20: @ 8099D20 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r4, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - cmp r4, 0x1 - beq _08099D3E - cmp r4, 0x1 - bgt _08099D3A - cmp r4, 0 - beq _08099D60 - b _08099D3E -_08099D3A: - cmp r4, 0x2 - beq _08099D60 -_08099D3E: - ldr r0, =gPlttBufferUnfaded - ldr r1, =gPaletteDecompressionBuffer - ldr r2, =0x04000100 - bl CpuSet - adds r0, r4, 0 - movs r1, 0 - bl fade_screen - b _08099D72 - .pool -_08099D60: - ldr r0, =gPaletteDecompressionBuffer - ldr r1, =gPlttBufferUnfaded - ldr r2, =0x04000100 - bl CpuSet - adds r0, r4, 0 - movs r1, 0 - bl fade_screen -_08099D72: - ldr r1, =sub_8099CA8 - adds r0, r5, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8099D20 - - thumb_func_start s28_pause_asm -s28_pause_asm: @ 8099D94 - push {lr} - ldr r1, =gUnknown_020375C8 - ldrh r0, [r1] - subs r0, 0x1 - strh r0, [r1] - lsls r0, 16 - cmp r0, 0 - beq _08099DAC - movs r0, 0 - b _08099DAE - .pool -_08099DAC: - movs r0, 0x1 -_08099DAE: - pop {r1} - bx r1 - thumb_func_end s28_pause_asm - - thumb_func_start s28_pause -@ int s28_pause(script_env *env) -s28_pause: @ 8099DB4 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - ldr r1, =gUnknown_020375C8 - strh r0, [r1] - ldr r1, =s28_pause_asm - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end s28_pause - - thumb_func_start s2C_unknown -@ int s2C_unknown(script_env *env) -s2C_unknown: @ 8099DD8 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl RtcInitLocalTimeOffset - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end s2C_unknown - - thumb_func_start s2D_unknown -@ int s2D_unknown(script_env *env) -s2D_unknown: @ 8099E10 - push {lr} - bl sub_809E7B0 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end s2D_unknown - - thumb_func_start s2E_unknown -@ int s2E_unknown(script_env *env) -s2E_unknown: @ 8099E1C - push {lr} - bl RtcCalcLocalTime - ldr r2, =gSpecialVar_0x8000 - ldr r1, =gLocalTime - movs r0, 0x2 - ldrsb r0, [r1, r0] - strh r0, [r2] - ldr r2, =gSpecialVar_0x8001 - movs r0, 0x3 - ldrsb r0, [r1, r0] - strh r0, [r2] - ldr r2, =gSpecialVar_0x8002 - movs r0, 0x4 - ldrsb r0, [r1, r0] - strh r0, [r2] - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end s2E_unknown - - thumb_func_start sA4_set_weather_data -@ int sA4_set_weather_data(script_env *env) -sA4_set_weather_data: @ 8099E54 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl sub_80AED7C - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sA4_set_weather_data - - thumb_func_start sA3_set_standard_weather_data -@ int sA3_set_standard_weather_data(script_env *env) -sA3_set_standard_weather_data: @ 8099E70 - push {lr} - bl sub_80AEDBC - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sA3_set_standard_weather_data - - thumb_func_start sub_8099E7C -@ int sub_8099E7C(script_env *env) -sub_8099E7C: @ 8099E7C - push {lr} - bl sub_80AEE20 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_8099E7C - - thumb_func_start sA6_activate_per_step_callback_eg_ash -@ int sA6_activate_per_step_callback_eg_ash(script_env *env) -sA6_activate_per_step_callback_eg_ash: @ 8099E88 - push {lr} - ldr r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - adds r0, r2, 0 - bl activate_per_step_callback - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sA6_activate_per_step_callback_eg_ash - - thumb_func_start sA7_set_new_map_footer -@ int sA7_set_new_map_footer(script_env *env) -sA7_set_new_map_footer: @ 8099EA0 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl sub_8085524 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sA7_set_new_map_footer - - thumb_func_start s39_warp_sfx -@ int s39_warp_sfx(script_env *env) -s39_warp_sfx: @ 8099EBC - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl warp1_set - bl sub_80AF734 - bl player_avatar_init_params_reset - movs r0, 0x1 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end s39_warp_sfx - - thumb_func_start s3A_warp_new_music -@ int s3A_warp_new_music(script_env *env) -s3A_warp_new_music: @ 8099F44 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl warp1_set - bl sp13E_warp_to_last_warp - bl player_avatar_init_params_reset - movs r0, 0x1 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end s3A_warp_new_music - - thumb_func_start s3B_warp_keep_music -@ int s3B_warp_keep_music(script_env *env) -s3B_warp_keep_music: @ 8099FCC - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl warp1_set - bl sub_80AF7D0 - bl player_avatar_init_params_reset - movs r0, 0x1 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end s3B_warp_keep_music - - thumb_func_start sub_809A054 -sub_809A054: @ 809A054 - push {r4-r6,lr} - sub sp, 0x8 - ldr r1, [r0, 0x8] - ldrb r6, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldrb r5, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - mov r4, sp - adds r4, 0x6 - add r0, sp, 0x4 - adds r1, r4, 0 - bl PlayerGetDestCoords - cmp r6, 0xFF - bne _0809A092 - cmp r5, 0xFF - bne _0809A092 - add r0, sp, 0x4 - ldrh r0, [r0] - subs r0, 0x7 - lsls r0, 16 - asrs r0, 16 - ldrh r1, [r4] - subs r1, 0x7 - lsls r1, 16 - asrs r1, 16 - bl sub_8084EBC - b _0809A0B6 -_0809A092: - lsls r0, r6, 24 - asrs r0, 24 - lsls r1, r5, 24 - asrs r1, 24 - movs r2, 0x1 - negs r2, r2 - add r3, sp, 0x4 - ldrb r3, [r3] - subs r3, 0x7 - lsls r3, 24 - asrs r3, 24 - ldrb r4, [r4] - subs r4, 0x7 - lsls r4, 24 - asrs r4, 24 - str r4, [sp] - bl warp1_set -_0809A0B6: - bl sp13F_fall_to_last_warp - bl player_avatar_init_params_reset - movs r0, 0x1 - add sp, 0x8 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_809A054 - - thumb_func_start s3D_warp_v4 -s3D_warp_v4: @ 809A0C8 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl warp1_set - bl sub_80AF848 - bl player_avatar_init_params_reset - movs r0, 0x1 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end s3D_warp_v4 - - thumb_func_start sub_809A150 -sub_809A150: @ 809A150 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl warp1_set - bl sub_80AF87C - bl player_avatar_init_params_reset - movs r0, 0x1 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_809A150 - - thumb_func_start s3E_set_new_map -s3E_set_new_map: @ 809A1D8 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl warp1_set - movs r0, 0 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end s3E_set_new_map - - thumb_func_start s3F_set_new_map_DMA -s3F_set_new_map_DMA: @ 809A258 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x8 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - str r4, [sp] - lsls r0, 24 - asrs r0, 24 - str r0, [sp, 0x4] - movs r0, 0 - mov r1, r9 - mov r2, r8 - adds r3, r6, 0 - bl saved_warp2_set_2 - movs r0, 0 - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end s3F_set_new_map_DMA - - thumb_func_start sub_809A2DC -sub_809A2DC: @ 809A2DC - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl sub_8084E2C - movs r0, 0 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_809A2DC - - thumb_func_start sub_809A35C -sub_809A35C: @ 809A35C - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl sub_8084E80 - movs r0, 0 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_809A35C - - thumb_func_start sC4_unknown -sC4_unknown: @ 809A3DC - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl sub_8084DD4 - movs r0, 0 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sC4_unknown - - thumb_func_start s42_get_map_camera_pos -@ int s42_get_map_camera_pos(script_env *env) -s42_get_map_camera_pos: @ 809A45C - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r5, r0, 0 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - ldr r2, =gSaveBlock1Ptr - ldr r1, [r2] - ldrh r1, [r1] - strh r1, [r5] - ldr r1, [r2] - ldrh r1, [r1, 0x2] - strh r1, [r0] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end s42_get_map_camera_pos - - thumb_func_start s43_get_player_party_count -s43_get_player_party_count: @ 809A498 - push {r4,lr} - ldr r4, =gScriptResult - bl CalculatePlayerPartyCount - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end s43_get_player_party_count - - thumb_func_start s2F_music_play -s2F_music_play: @ 809A4B4 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl PlaySE - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end s2F_music_play - - thumb_func_start s30_music_check_asm -s30_music_check_asm: @ 809A4C8 - push {lr} - bl IsSEPlaying - lsls r0, 24 - cmp r0, 0 - beq _0809A4D8 - movs r0, 0 - b _0809A4DA -_0809A4D8: - movs r0, 0x1 -_0809A4DA: - pop {r1} - bx r1 - thumb_func_end s30_music_check_asm - - thumb_func_start s30_music_check -s30_music_check: @ 809A4E0 - push {lr} - ldr r1, =s30_music_check_asm - bl SetupNativeScript - movs r0, 0x1 - pop {r1} - bx r1 - .pool - thumb_func_end s30_music_check - - thumb_func_start s31_PlayFanfare -s31_PlayFanfare: @ 809A4F4 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl PlayFanfare - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end s31_PlayFanfare - - thumb_func_start s32_fanfare_wait_asm -s32_fanfare_wait_asm: @ 809A508 - push {lr} - bl IsFanfareTaskInactive - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end s32_fanfare_wait_asm - - thumb_func_start s32_fanfare_wait -s32_fanfare_wait: @ 809A518 - push {lr} - ldr r1, =s32_fanfare_wait_asm - bl SetupNativeScript - movs r0, 0x1 - pop {r1} - bx r1 - .pool - thumb_func_end s32_fanfare_wait - - thumb_func_start s33_play_music -@ int s33_play_music(script_env *env) -s33_play_music: @ 809A52C - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r2, r0, 16 - adds r5, r2, 0 - ldr r0, [r4, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - cmp r1, 0x1 - bne _0809A54C - adds r0, r2, 0 - bl sav1_set_battle_music_maybe -_0809A54C: - adds r0, r5, 0 - bl PlayNewMapMusic - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end s33_play_music - - thumb_func_start s34_unknown -s34_unknown: @ 809A55C - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl sav1_set_battle_music_maybe - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end s34_unknown - - thumb_func_start s35_fade_to_default -s35_fade_to_default: @ 809A570 - push {lr} - bl sub_8085898 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end s35_fade_to_default - - thumb_func_start s36_fade_to_music -s36_fade_to_music: @ 809A57C - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl sub_80858C4 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end s36_fade_to_music - - thumb_func_start s37_fadeout -s37_fadeout: @ 809A590 - push {r4,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - cmp r1, 0 - beq _0809A5AA - lsls r0, r1, 26 - lsrs r0, 24 - bl FadeOutBGMTemporarily - b _0809A5B0 -_0809A5AA: - movs r0, 0x4 - bl FadeOutBGMTemporarily -_0809A5B0: - ldr r1, =IsBGMPausedOrStopped - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end s37_fadeout - - thumb_func_start s38_fadein -s38_fadein: @ 809A5C4 - push {lr} - ldr r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - cmp r2, 0 - beq _0809A5DC - lsls r0, r2, 26 - lsrs r0, 24 - bl FadeInBGM - b _0809A5E2 -_0809A5DC: - movs r0, 0x4 - bl FadeInBGM -_0809A5E2: - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end s38_fadein - - thumb_func_start s4F_execute_movement -s4F_execute_movement: @ 809A5E8 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadWord - adds r3, r0, 0 - lsls r0, r4, 24 - lsrs r0, 24 - ldr r1, =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl exec_movement - ldr r0, =gUnknown_020375CA - strh r4, [r0] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end s4F_execute_movement - - thumb_func_start s50_execute_movement_remote -s50_execute_movement_remote: @ 809A62C - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadWord - adds r3, r0, 0 - ldr r0, [r5, 0x8] - ldrb r2, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - lsls r0, r4, 24 - lsrs r0, 24 - bl exec_movement - ldr r0, =gUnknown_020375CA - strh r4, [r0] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end s50_execute_movement_remote - - thumb_func_start s51a_0806B288 -s51a_0806B288: @ 809A670 - push {lr} - ldr r0, =gUnknown_020375CA - ldrb r0, [r0] - ldr r1, =gUnknown_020375CE - ldrb r1, [r1] - ldr r2, =gUnknown_020375CC - ldrb r2, [r2] - bl sub_80D3340 - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - .pool - thumb_func_end s51a_0806B288 - - thumb_func_start s51_waitmove -s51_waitmove: @ 809A698 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _0809A6B4 - ldr r0, =gUnknown_020375CA - strh r1, [r0] -_0809A6B4: - ldr r1, =gUnknown_020375CC - ldr r0, =gSaveBlock1Ptr - ldr r2, [r0] - movs r0, 0x4 - ldrsb r0, [r2, r0] - strh r0, [r1] - ldr r1, =gUnknown_020375CE - movs r0, 0x5 - ldrsb r0, [r2, r0] - strh r0, [r1] - ldr r1, =s51a_0806B288 - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end s51_waitmove - - thumb_func_start s52_waitmove_remote -s52_waitmove_remote: @ 809A6EC - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _0809A708 - ldr r0, =gUnknown_020375CA - strh r1, [r0] -_0809A708: - ldr r0, [r4, 0x8] - ldrb r2, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - ldr r0, =gUnknown_020375CC - strh r2, [r0] - ldr r0, =gUnknown_020375CE - strh r1, [r0] - ldr r1, =s51a_0806B288 - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end s52_waitmove_remote - - thumb_func_start s53_hide_sprite -s53_hide_sprite: @ 809A740 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl RemoveFieldObjectByLocalIdAndMap - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end s53_hide_sprite - - thumb_func_start s54_hide_sprite_set_coords -s54_hide_sprite_set_coords: @ 809A768 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r3, [r4, 0x8] - ldrb r2, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - ldrb r1, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - bl RemoveFieldObjectByLocalIdAndMap - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end s54_hide_sprite_set_coords - - thumb_func_start s55_show_sprite -s55_show_sprite: @ 809A798 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl show_sprite - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end s55_show_sprite - - thumb_func_start s56_show_sprite_set_coords -s56_show_sprite_set_coords: @ 809A7C0 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r3, [r4, 0x8] - ldrb r2, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - ldrb r1, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - bl show_sprite - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end s56_show_sprite_set_coords - - thumb_func_start s57_move_sprites -s57_move_sprites: @ 809A7F0 - push {r4-r6,lr} - sub sp, 0x4 - adds r6, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r6, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r6, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r5, 24 - lsrs r5, 24 - ldr r1, =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - lsls r4, 16 - asrs r4, 16 - lsls r0, 16 - asrs r0, 16 - str r0, [sp] - adds r0, r5, 0 - adds r3, r4, 0 - bl sub_808EBA8 - movs r0, 0 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end s57_move_sprites - - thumb_func_start s63_new_sprite_location_permanent -s63_new_sprite_location_permanent: @ 809A858 - push {r4-r6,lr} - adds r6, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r6, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r6, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r2, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, 16 - asrs r4, 16 - lsls r2, 16 - asrs r2, 16 - adds r0, r5, 0 - adds r1, r4, 0 - bl update_saveblock1_field_object_coords - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end s63_new_sprite_location_permanent - - thumb_func_start s64_set_sprite_top_left_corner -s64_set_sprite_top_left_corner: @ 809A8B0 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl sub_808F254 - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end s64_set_sprite_top_left_corner - - thumb_func_start s58_npc_f1_clear_x20 -s58_npc_f1_clear_x20: @ 809A8D8 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r3, [r4, 0x8] - ldrb r2, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - ldrb r1, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - movs r3, 0 - bl npc_by_local_id_and_map_set_field_1_bit_x20 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end s58_npc_f1_clear_x20 - - thumb_func_start s59_npc_f1_set_x20 -s59_npc_f1_set_x20: @ 809A908 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r3, [r4, 0x8] - ldrb r2, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - ldrb r1, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - movs r3, 0x1 - bl npc_by_local_id_and_map_set_field_1_bit_x20 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end s59_npc_f1_set_x20 - - thumb_func_start sA8_unknown -sA8_unknown: @ 809A938 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r3, [r5, 0x8] - ldrb r2, [r3] - adds r3, 0x1 - str r3, [r5, 0x8] - ldrb r1, [r3] - adds r4, r3, 0x1 - str r4, [r5, 0x8] - ldrb r3, [r3, 0x1] - adds r4, 0x1 - str r4, [r5, 0x8] - lsls r0, 24 - lsrs r0, 24 - adds r3, 0x53 - lsls r3, 24 - lsrs r3, 24 - bl sub_808E78C - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sA8_unknown - - thumb_func_start sA9_unknown -sA9_unknown: @ 809A974 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r3, [r4, 0x8] - ldrb r2, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - ldrb r1, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - bl sub_808E7E4 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sA9_unknown - - thumb_func_start s5A_face_player -s5A_face_player: @ 809A9A4 - push {r4,lr} - ldr r2, =gMapObjects - ldr r0, =gSelectedMapObject - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - ldrb r0, [r4] - lsls r0, 31 - cmp r0, 0 - beq _0809A9CC - bl player_get_direction_lower_nybble - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldObjectFaceOppositeDirection -_0809A9CC: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end s5A_face_player - - thumb_func_start s5B_npc_set_direction -s5B_npc_set_direction: @ 809A9DC - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r1, [r4, 0x8] - ldrb r3, [r1] - adds r1, 0x1 - str r1, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gSaveBlock1Ptr - ldr r2, [r1] - ldrb r1, [r2, 0x5] - ldrb r2, [r2, 0x4] - bl FieldObjectTurnByLocalIdAndMap - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end s5B_npc_set_direction - - thumb_func_start s65_set_sprite_behaviour -s65_set_sprite_behaviour: @ 809AA10 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r2, [r4, 0x8] - ldrb r1, [r2] - adds r2, 0x1 - str r2, [r4, 0x8] - lsls r0, 24 - lsrs r0, 24 - bl update_saveblock1_field_object_movement_behavior - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end s65_set_sprite_behaviour - - thumb_func_start sAA_create_new_sprite -sAA_create_new_sprite: @ 809AA38 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x8 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r6, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r3, r0, 0 - ldr r0, [r5, 0x8] - ldrb r2, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - lsls r4, 16 - asrs r4, 16 - lsls r3, 16 - asrs r3, 16 - str r2, [sp] - str r1, [sp, 0x4] - mov r0, r8 - adds r1, r6, 0 - adds r2, r4, 0 - bl sprite_new - movs r0, 0 - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sAA_create_new_sprite - - thumb_func_start sAB_unknown -sAB_unknown: @ 809AAA8 - push {lr} - ldr r2, [r0, 0x8] - ldrb r3, [r2] - adds r2, 0x1 - str r2, [r0, 0x8] - ldrb r1, [r2] - adds r2, 0x1 - str r2, [r0, 0x8] - adds r0, r3, 0 - bl sub_8097B78 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sAB_unknown - - thumb_func_start sub_809AAC4 -sub_809AAC4: @ 809AAC4 - push {r4,lr} - adds r4, r0, 0 - bl is_c1_link_related_active - cmp r0, 0 - bne _0809AAE4 - bl sub_80983E8 - ldr r1, =sub_80983C4 - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - b _0809AAE6 - .pool -_0809AAE4: - movs r0, 0 -_0809AAE6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_809AAC4 - - thumb_func_start sub_809AAEC -sub_809AAEC: @ 809AAEC - push {r4,lr} - adds r4, r0, 0 - bl is_c1_link_related_active - cmp r0, 0 - beq _0809AAFC - movs r0, 0 - b _0809AB3A -_0809AAFC: - ldr r2, =gMapObjects - ldr r0, =gSelectedMapObject - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - beq _0809AB2C - bl sub_80984A0 - ldr r1, =sub_809847C - adds r0, r4, 0 - bl SetupNativeScript - b _0809AB38 - .pool -_0809AB2C: - bl sub_80983E8 - ldr r1, =sub_80983C4 - adds r0, r4, 0 - bl SetupNativeScript -_0809AB38: - movs r0, 0x1 -_0809AB3A: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_809AAEC - - thumb_func_start s6B_release -s6B_release: @ 809AB44 - push {lr} - bl textbox_close - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gMapObjects - adds r0, r1 - bl FieldObjectClearAnimIfSpecialAnimFinished - bl sub_80D338C - bl sub_809757C - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end s6B_release - - thumb_func_start s6C_release_2 -s6C_release_2: @ 809AB7C - push {r4,lr} - bl textbox_close - ldr r4, =gMapObjects - ldr r0, =gSelectedMapObject - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r4 - ldrb r0, [r1] - lsls r0, 31 - cmp r0, 0 - beq _0809AB9E - adds r0, r1, 0 - bl FieldObjectClearAnimIfSpecialAnimFinished -_0809AB9E: - movs r0, 0xFF - movs r1, 0 - movs r2, 0 - bl GetFieldObjectIdByLocalIdAndMap - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - bl FieldObjectClearAnimIfSpecialAnimFinished - bl sub_80D338C - bl sub_809757C - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end s6C_release_2 - - thumb_func_start s67_execute_box -s67_execute_box: @ 809ABD4 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - cmp r0, 0 - bne _0809ABE2 - ldr r0, [r4, 0x64] -_0809ABE2: - bl box_related_two__2 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end s67_execute_box - - thumb_func_start sub_809ABF0 -sub_809ABF0: @ 809ABF0 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - cmp r0, 0 - bne _0809ABFE - ldr r0, [r4, 0x64] -_0809ABFE: - bl sub_8098238 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_809ABF0 - - thumb_func_start s9B_unknown -s9B_unknown: @ 809AC0C - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r3, r0, 0 - cmp r3, 0 - bne _0809AC1C - ldr r3, [r4, 0x64] -_0809AC1C: - ldr r2, =gTextFlags - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - movs r1, 0x8 - orrs r0, r1 - strb r0, [r2] - adds r0, r3, 0 - bl box_related_two__3 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end s9B_unknown - - thumb_func_start sub_809AC3C -sub_809AC3C: @ 809AC3C - push {r4,r5,lr} - sub sp, 0xC - adds r5, r0, 0 - bl ScriptReadWord - adds r4, r0, 0 - cmp r4, 0 - bne _0809AC4E - ldr r4, [r5, 0x64] -_0809AC4E: - bl sub_81973A4 - movs r0, 0 - movs r1, 0x1 - bl sub_81973C4 - movs r0, 0x1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - movs r1, 0x1 - adds r2, r4, 0 - movs r3, 0 - bl PrintTextOnWindow - movs r0, 0 - add sp, 0xC - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809AC3C - - thumb_func_start sub_809AC78 -sub_809AC78: @ 809AC78 - push {lr} - ldr r1, =sub_809833C - bl SetupNativeScript - movs r0, 0x1 - pop {r1} - bx r1 - .pool - thumb_func_end sub_809AC78 - - thumb_func_start s68_close_box -s68_close_box: @ 809AC8C - push {lr} - bl textbox_close - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end s68_close_box - - thumb_func_start sub_809AC98 -sub_809AC98: @ 809AC98 - push {lr} - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0809ACB8 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _0809ACB8 - movs r0, 0 - b _0809ACBA - .pool -_0809ACB8: - movs r0, 0x1 -_0809ACBA: - pop {r1} - bx r1 - thumb_func_end sub_809AC98 - - thumb_func_start sub_809ACC0 -sub_809ACC0: @ 809ACC0 - push {lr} - ldr r1, =sub_809AC98 - bl SetupNativeScript - movs r0, 0x1 - pop {r1} - bx r1 - .pool - thumb_func_end sub_809ACC0 - - thumb_func_start s6E_yes_no -s6E_yes_no: @ 809ACD4 - push {lr} - ldr r2, [r0, 0x8] - ldrb r3, [r2] - adds r2, 0x1 - str r2, [r0, 0x8] - ldrb r1, [r2] - adds r2, 0x1 - str r2, [r0, 0x8] - adds r0, r3, 0 - bl yes_no_box - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809ACF6 - movs r0, 0 - b _0809ACFC -_0809ACF6: - bl ScriptContext1_Stop - movs r0, 0x1 -_0809ACFC: - pop {r1} - bx r1 - thumb_func_end s6E_yes_no - - thumb_func_start s6F_multichoice -s6F_multichoice: @ 809AD00 - push {r4,r5,lr} - ldr r2, [r0, 0x8] - ldrb r5, [r2] - adds r2, 0x1 - str r2, [r0, 0x8] - ldrb r1, [r2] - adds r3, r2, 0x1 - str r3, [r0, 0x8] - ldrb r2, [r2, 0x1] - adds r4, r3, 0x1 - str r4, [r0, 0x8] - ldrb r3, [r3, 0x1] - adds r4, 0x1 - str r4, [r0, 0x8] - adds r0, r5, 0 - bl Multichoice - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809AD2E - movs r0, 0 - b _0809AD34 -_0809AD2E: - bl ScriptContext1_Stop - movs r0, 0x1 -_0809AD34: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end s6F_multichoice - - thumb_func_start sub_809AD3C -sub_809AD3C: @ 809AD3C - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - ldr r2, [r0, 0x8] - ldrb r1, [r2] - mov r8, r1 - adds r2, 0x1 - str r2, [r0, 0x8] - ldrb r1, [r2] - adds r3, r2, 0x1 - str r3, [r0, 0x8] - ldrb r2, [r2, 0x1] - adds r5, r3, 0x1 - str r5, [r0, 0x8] - ldrb r6, [r3, 0x1] - adds r4, r5, 0x1 - str r4, [r0, 0x8] - ldrb r3, [r5, 0x1] - adds r4, 0x1 - str r4, [r0, 0x8] - str r6, [sp] - mov r0, r8 - bl sub_80E1E58 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809AD7A - movs r0, 0 - b _0809AD80 -_0809AD7A: - bl ScriptContext1_Stop - movs r0, 0x1 -_0809AD80: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_809AD3C - - thumb_func_start sub_809AD8C -sub_809AD8C: @ 809AD8C - movs r0, 0 - bx lr - thumb_func_end sub_809AD8C - - thumb_func_start sub_809AD90 -sub_809AD90: @ 809AD90 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - ldr r2, [r0, 0x8] - ldrb r1, [r2] - mov r8, r1 - adds r2, 0x1 - str r2, [r0, 0x8] - ldrb r1, [r2] - adds r3, r2, 0x1 - str r3, [r0, 0x8] - ldrb r2, [r2, 0x1] - adds r5, r3, 0x1 - str r5, [r0, 0x8] - ldrb r6, [r3, 0x1] - adds r4, r5, 0x1 - str r4, [r0, 0x8] - ldrb r3, [r5, 0x1] - adds r4, 0x1 - str r4, [r0, 0x8] - str r6, [sp] - mov r0, r8 - bl sub_80E21D0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809ADCE - movs r0, 0 - b _0809ADD4 -_0809ADCE: - bl ScriptContext1_Stop - movs r0, 0x1 -_0809ADD4: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_809AD90 - - thumb_func_start s73_nop_skip_word -s73_nop_skip_word: @ 809ADE0 - ldr r1, [r0, 0x8] - adds r1, 0x4 - str r1, [r0, 0x8] - movs r0, 0 - bx lr - thumb_func_end s73_nop_skip_word - - thumb_func_start sub_809ADEC -sub_809ADEC: @ 809ADEC - ldr r1, [r0, 0x8] - adds r1, 0x4 - str r1, [r0, 0x8] - movs r0, 0 - bx lr - thumb_func_end sub_809ADEC - - thumb_func_start sub_809ADF8 -sub_809ADF8: @ 809ADF8 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r3, [r4, 0x8] - ldrb r1, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - ldrb r2, [r3] - adds r3, 0x1 - str r3, [r4, 0x8] - bl sub_80E2900 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_809ADF8 - - thumb_func_start s76_close_picture_box -s76_close_picture_box: @ 809AE28 - push {r4,lr} - adds r4, r0, 0 - bl picbox_close - adds r1, r0, 0 - cmp r1, 0 - beq _0809AE40 - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - b _0809AE42 -_0809AE40: - movs r0, 0 -_0809AE42: - pop {r4} - pop {r1} - bx r1 - thumb_func_end s76_close_picture_box - - thumb_func_start sub_809AE48 -sub_809AE48: @ 809AE48 - push {lr} - ldr r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - cmp r2, 0 - beq _0809AE5C - adds r0, r2, 0 - bl sub_812FDA8 -_0809AE5C: - bl sub_80F8ADC - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_809AE48 - - thumb_func_start sub_809AE6C -sub_809AE6C: @ 809AE6C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x20 - bl ScriptReadWord - adds r1, r0, 0 - ldr r4, =gStringVar4 - adds r1, 0x6 - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r2, 0x1 - negs r2, r2 - movs r0, 0x6 - adds r1, r4, 0 - bl GetStringWidth - lsrs r0, 3 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x1C - bls _0809AE9C - movs r7, 0x1C -_0809AE9C: - movs r5, 0x4 - ldrb r0, [r4] - adds r2, r7, 0x2 - add r1, sp, 0x18 - mov r8, r1 - cmp r0, 0xFF - beq _0809AEC0 - adds r1, r4, 0 -_0809AEAC: - ldrb r0, [r1] - adds r1, 0x1 - cmp r0, 0xFE - bne _0809AEBA - adds r0, r5, 0x3 - lsls r0, 24 - lsrs r5, r0, 24 -_0809AEBA: - ldrb r0, [r1] - cmp r0, 0xFF - bne _0809AEAC -_0809AEC0: - cmp r5, 0x12 - bls _0809AEC6 - movs r5, 0x12 -_0809AEC6: - lsls r0, r2, 24 - lsrs r0, 24 - movs r2, 0x1E - subs r2, r0 - lsrs r0, r2, 31 - adds r2, r0 - asrs r2, 1 - lsls r2, 24 - adds r0, r5, 0x2 - lsls r0, 24 - lsrs r0, 24 - movs r4, 0x14 - subs r4, r0 - lsrs r0, r4, 31 - adds r4, r0 - asrs r4, 1 - lsls r4, 24 - lsrs r6, r2, 24 - movs r0, 0x80 - lsls r0, 17 - adds r2, r0 - lsrs r2, 24 - lsrs r3, r4, 24 - movs r1, 0x80 - lsls r1, 18 - adds r4, r1 - lsrs r4, 24 - subs r6, r2, r6 - subs r6, 0x1 - lsls r6, 3 - adds r6, 0x3 - lsls r6, 24 - lsrs r6, 24 - subs r4, r3 - subs r4, 0x1 - lsls r4, 27 - lsrs r4, 24 - adds r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - str r7, [sp] - str r5, [sp, 0x4] - movs r0, 0xF - str r0, [sp, 0x8] - movs r0, 0x1 - str r0, [sp, 0xC] - add r0, sp, 0x10 - movs r1, 0 - bl sub_8198A50 - ldr r0, [sp, 0x10] - ldr r1, [sp, 0x14] - str r0, [sp, 0x18] - str r1, [sp, 0x1C] - ldr r5, =gUnknown_03000F30 - mov r0, r8 - bl AddWindow - strb r0, [r5] - ldrb r0, [r5] - movs r1, 0x85 - lsls r1, 2 - movs r2, 0xE0 - bl sub_809882C - ldrb r0, [r5] - movs r1, 0 - bl sub_81973FC - ldrb r0, [r5] - bl PutWindowTilemap - ldrb r0, [r5] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldrb r0, [r5] - ldr r2, =gStringVar4 - str r4, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x6 - adds r3, r6, 0 - bl PrintTextOnWindow - ldrb r0, [r5] - movs r1, 0x3 - bl CopyWindowToVram - movs r0, 0 - add sp, 0x20 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_809AE6C - - thumb_func_start sub_809AF94 -sub_809AF94: @ 809AF94 - push {lr} - bl sub_809BDB4 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_809AF94 - - thumb_func_start sBD_virtual_message -sBD_virtual_message: @ 809AFA0 - push {lr} - bl ScriptReadWord - ldr r1, =gUnknown_020375C4 - ldr r1, [r1] - subs r0, r1 - bl box_related_two__2 - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sBD_virtual_message - - thumb_func_start s7D_load_pokename -s7D_load_pokename: @ 809AFBC - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r1, =gUnknown_085102D4 - lsls r4, 2 - adds r4, r1 - ldr r2, [r4] - movs r1, 0xB - muls r1, r0 - ldr r0, =gSpeciesNames - adds r1, r0 - adds r0, r2, 0 - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end s7D_load_pokename - - thumb_func_start s7E_load_first_pokenames -s7E_load_first_pokenames: @ 809AFFC - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldr r0, =gUnknown_085102D4 - lsls r2, 2 - adds r2, r0 - ldr r4, [r2] - bl sub_8139688 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - movs r1, 0xB - muls r1, r0 - ldr r0, =gSpeciesNames - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end s7E_load_first_pokenames - - thumb_func_start s7F_load_pokename_team -s7F_load_pokename_team: @ 809B048 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r1, =gUnknown_085102D4 - lsls r4, 2 - adds r4, r1 - ldr r4, [r4] - movs r1, 0x2 - adds r2, r4, 0 - bl GetMonData - adds r0, r4, 0 - bl StringGetEnd10 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end s7F_load_pokename_team - - thumb_func_start s80_load_item_name -s80_load_item_name: @ 809B090 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r1, =gUnknown_085102D4 - lsls r4, 2 - adds r4, r1 - ldr r1, [r4] - bl CopyItemName - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end s80_load_item_name - - thumb_func_start sub_809B0C4 -sub_809B0C4: @ 809B0C4 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r6, [r0] - adds r0, 0x1 - str r0, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r2, r0, 0 - lsls r2, 16 - lsrs r2, 16 - ldr r0, =gUnknown_085102D4 - lsls r6, 2 - adds r6, r0 - ldr r1, [r6] - adds r0, r4, 0 - bl CopyItemNameHandlePlural - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_809B0C4 - - thumb_func_start sub_809B114 -sub_809B114: @ 809B114 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - lsls r1, 16 - ldr r0, =gUnknown_085102D4 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - lsrs r1, 11 - ldr r2, =gDecorations + 1 - adds r1, r2 - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_809B114 - - thumb_func_start s82_load_item_name -s82_load_item_name: @ 809B150 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r1, =gUnknown_085102D4 - lsls r4, 2 - adds r4, r1 - ldr r2, [r4] - movs r1, 0xD - muls r1, r0 - ldr r0, =gMoveNames - adds r1, r0 - adds r0, r2, 0 - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end s82_load_item_name - - thumb_func_start s83_load_textvar_var -s83_load_textvar_var: @ 809B190 - push {r4,r5,lr} - ldr r1, [r0, 0x8] - ldrb r5, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - bl sub_80EF370 - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - ldr r0, =gUnknown_085102D4 - lsls r5, 2 - adds r5, r0 - ldr r0, [r5] - adds r1, r4, 0 - movs r2, 0 - bl ConvertIntToDecimalStringN - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end s83_load_textvar_var - - thumb_func_start s84_load_textvar_std_expression -s84_load_textvar_std_expression: @ 809B1D4 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - ldr r1, =gUnknown_085102D4 - lsls r4, 2 - adds r4, r1 - ldr r2, [r4] - ldr r1, =gUnknown_0858BAF0 - lsrs r0, 14 - adds r0, r1 - ldr r1, [r0] - adds r0, r2, 0 - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end s84_load_textvar_std_expression - - thumb_func_start sub_809B214 -sub_809B214: @ 809B214 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - ldr r0, =gUnknown_085102D4 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - lsls r1, 24 - lsrs r1, 24 - bl sub_818E868 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_809B214 - - thumb_func_start s85_load_textvar_pointer -s85_load_textvar_pointer: @ 809B248 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadWord - adds r1, r0, 0 - ldr r0, =gUnknown_085102D4 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end s85_load_textvar_pointer - - thumb_func_start sBE_virtual_load_text -sBE_virtual_load_text: @ 809B270 - push {lr} - bl ScriptReadWord - adds r1, r0, 0 - ldr r0, =gUnknown_020375C4 - ldr r0, [r0] - subs r1, r0 - ldr r0, =gStringVar4 - bl StringExpandPlaceholders - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sBE_virtual_load_text - - thumb_func_start sBF_virtual_load_textbuffer -sBF_virtual_load_textbuffer: @ 809B294 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadWord - adds r1, r0, 0 - ldr r0, =gUnknown_020375C4 - ldr r0, [r0] - subs r1, r0 - ldr r0, =gUnknown_085102D4 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sBF_virtual_load_textbuffer - - thumb_func_start sC6_load_textvar_box_label -sC6_load_textvar_box_label: @ 809B2C8 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r1, =gUnknown_085102D4 - lsls r4, 2 - adds r4, r1 - ldr r4, [r4] - lsls r0, 24 - lsrs r0, 24 - bl GetBoxNamePtr - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sC6_load_textvar_box_label - - thumb_func_start s79_give_pokemon -s79_give_pokemon: @ 809B304 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x8 - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r6, r0, 0 - lsls r6, 16 - lsrs r6, 16 - ldr r0, [r4, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r4, 0x8] - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r4, 0 - bl ScriptReadWord - mov r8, r0 - adds r0, r4, 0 - bl ScriptReadWord - ldr r1, [r4, 0x8] - ldrb r2, [r1] - adds r1, 0x1 - str r1, [r4, 0x8] - ldr r4, =gScriptResult - str r0, [sp] - str r2, [sp, 0x4] - adds r0, r6, 0 - mov r1, r9 - adds r2, r5, 0 - mov r3, r8 - bl sub_80F9244 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - movs r0, 0 - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end s79_give_pokemon - - thumb_func_start s7A_create_egg -s7A_create_egg: @ 809B384 - push {r4,lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r4, =gScriptResult - bl sub_80F92C8 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end s7A_create_egg - - thumb_func_start s7B_change_pokedata_AP -s7B_change_pokedata_AP: @ 809B3B0 - push {r4,r5,lr} - ldr r1, [r0, 0x8] - ldrb r5, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r5, 0 - adds r2, r4, 0 - bl sub_80F9400 - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end s7B_change_pokedata_AP - - thumb_func_start sub_809B3DC -sub_809B3DC: @ 809B3DC - push {r4-r7,lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r7, r0, 16 - ldr r1, =gScriptResult - movs r0, 0x6 - strh r0, [r1] - movs r6, 0 - b _0809B42A - .pool -_0809B3F4: - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _0809B424 - adds r0, r4, 0 - adds r1, r7, 0 - bl pokemon_has_move - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809B424 - ldr r0, =gScriptResult - strh r6, [r0] - ldr r0, =gSpecialVar_0x8004 - strh r5, [r0] - b _0809B44A - .pool -_0809B424: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0809B42A: - cmp r6, 0x5 - bhi _0809B44A - movs r0, 0x64 - adds r1, r6, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - lsls r0, 16 - lsrs r5, r0, 16 - cmp r5, 0 - bne _0809B3F4 -_0809B44A: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_809B3DC - - thumb_func_start s90_AddMoney -@ int s90_AddMoney(script_env *env) -s90_AddMoney: @ 809B458 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r2, r0, 0 - ldr r0, [r4, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - cmp r1, 0 - bne _0809B47E - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x92 - lsls r1, 3 - adds r0, r1 - adds r1, r2, 0 - bl AddMoney -_0809B47E: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end s90_AddMoney - - thumb_func_start s91_SubtractMoney -@ int s91_SubtractMoney(script_env *env) -s91_SubtractMoney: @ 809B48C - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r2, r0, 0 - ldr r0, [r4, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - cmp r1, 0 - bne _0809B4B2 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x92 - lsls r1, 3 - adds r0, r1 - adds r1, r2, 0 - bl SubtractMoney -_0809B4B2: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end s91_SubtractMoney - - thumb_func_start s92_check_money -@ int s92_check_money(script_env *env) -s92_check_money: @ 809B4C0 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadWord - adds r2, r0, 0 - ldr r0, [r4, 0x8] - ldrb r1, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - cmp r1, 0 - bne _0809B4EE - ldr r4, =gScriptResult - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x92 - lsls r1, 3 - adds r0, r1 - adds r1, r2, 0 - bl IsEnoughMoney - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] -_0809B4EE: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end s92_check_money - - thumb_func_start s93_display_money -@ int s93_display_money(script_env *env) -s93_display_money: @ 809B500 - push {r4,r5,lr} - ldr r1, [r0, 0x8] - ldrb r5, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldrb r4, [r1] - adds r2, r1, 0x1 - str r2, [r0, 0x8] - ldrb r1, [r1, 0x1] - adds r2, 0x1 - str r2, [r0, 0x8] - cmp r1, 0 - bne _0809B530 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x92 - lsls r1, 3 - adds r0, r1 - bl GetMoney - adds r1, r5, 0 - adds r2, r4, 0 - bl DrawMoneyBox -_0809B530: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end s93_display_money - - thumb_func_start s94_hide_money -s94_hide_money: @ 809B53C - push {lr} - bl HideMoneyBox - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end s94_hide_money - - thumb_func_start s95_update_money -@ int s95_update_money(script_env *env) -s95_update_money: @ 809B548 - push {lr} - ldr r1, [r0, 0x8] - adds r1, 0x1 - adds r2, r1, 0x1 - str r2, [r0, 0x8] - ldrb r1, [r1, 0x1] - adds r2, 0x1 - str r2, [r0, 0x8] - cmp r1, 0 - bne _0809B56E - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x92 - lsls r1, 3 - adds r0, r1 - bl GetMoney - bl ChangeAmountInMoneyBox -_0809B56E: - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end s95_update_money - - thumb_func_start sub_809B578 -sub_809B578: @ 809B578 - push {r4,r5,lr} - ldr r1, [r0, 0x8] - ldrb r5, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl GetCoins - lsls r0, 16 - lsrs r0, 16 - adds r1, r5, 0 - adds r2, r4, 0 - bl ShowCoinsWindow - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809B578 - - thumb_func_start sC1_hide_coins -sC1_hide_coins: @ 809B5A0 - push {lr} - ldr r1, [r0, 0x8] - adds r1, 0x2 - str r1, [r0, 0x8] - bl HideCoinsWindow - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sC1_hide_coins - - thumb_func_start sC2_update_coins -sC2_update_coins: @ 809B5B4 - push {lr} - ldr r1, [r0, 0x8] - adds r1, 0x2 - str r1, [r0, 0x8] - bl GetCoins - lsls r0, 16 - lsrs r0, 16 - bl PrintCoinsString - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sC2_update_coins - - thumb_func_start s5C_trainer_battle_configure_and_start -s5C_trainer_battle_configure_and_start: @ 809B5D0 - push {r4,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x8] - bl TrainerBattleConfigure - str r0, [r4, 0x8] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end s5C_trainer_battle_configure_and_start - - thumb_func_start sub_809B5E4 -sub_809B5E4: @ 809B5E4 - push {lr} - bl sub_80B17E0 - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_809B5E4 - - thumb_func_start sub_809B5F0 -sub_809B5F0: @ 809B5F0 - push {r4,lr} - adds r4, r0, 0 - bl sub_80B1AF8 - str r0, [r4, 0x8] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_809B5F0 - - thumb_func_start sub_809B604 -@ bool8 sub_809B604(struct script_env *env) -sub_809B604: @ 809B604 - push {r4,lr} - adds r4, r0, 0 - bl sub_80B1B10 - str r0, [r4, 0x8] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_809B604 - - thumb_func_start s60_check_trainer_flag -s60_check_trainer_flag: @ 809B618 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl trainer_flag_check - strb r0, [r4, 0x2] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end s60_check_trainer_flag - - thumb_func_start s61_set_trainer_flag -s61_set_trainer_flag: @ 809B63C - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl trainer_flag_set - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end s61_set_trainer_flag - - thumb_func_start s62_unset_trainer_flag -s62_unset_trainer_flag: @ 809B658 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl trainer_flag_clear - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end s62_unset_trainer_flag - - thumb_func_start sB6_load_battle -sB6_load_battle: @ 809B674 - push {r4-r6,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - ldr r0, [r4, 0x8] - ldrb r6, [r0] - adds r0, 0x1 - str r0, [r4, 0x8] - adds r0, r4, 0 - bl ScriptReadHalfword - adds r2, r0, 0 - lsls r2, 16 - lsrs r2, 16 - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_80F93A0 - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sB6_load_battle - - thumb_func_start sub_809B6A8 -sub_809B6A8: @ 809B6A8 - push {lr} - bl sub_80B08A8 - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_809B6A8 - - thumb_func_start s86_pokemart -s86_pokemart: @ 809B6B8 - push {lr} - bl ScriptReadWord - bl CreatePokemartMenu - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end s86_pokemart - - thumb_func_start s87_pokemartdecor -s87_pokemartdecor: @ 809B6CC - push {lr} - bl ScriptReadWord - bl CreateDecorationShop1Menu - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end s87_pokemartdecor - - thumb_func_start s88_pokemartbp -s88_pokemartbp: @ 809B6E0 - push {lr} - bl ScriptReadWord - bl CreateDecorationShop2Menu - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end s88_pokemartbp - - thumb_func_start s89_open_casino_game1 -s89_open_casino_game1: @ 809B6F4 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - ldr r1, =c2_exit_to_overworld_1_continue_scripts_restart_music - bl sub_812A540 - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - .pool - thumb_func_end s89_open_casino_game1 - - thumb_func_start berry_script_cmd -@ bool8 berry_script_cmd(struct script_env *env) -berry_script_cmd: @ 809B71C - push {r4,r5,lr} - ldr r1, [r0, 0x8] - ldrb r5, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - ldrb r3, [r1] - adds r2, r1, 0x1 - str r2, [r0, 0x8] - ldrb r4, [r1, 0x1] - adds r2, 0x1 - str r2, [r0, 0x8] - cmp r3, 0 - bne _0809B744 - adds r0, r5, 0 - movs r1, 0 - adds r2, r4, 0 - movs r3, 0 - bl PlantBerryTree - b _0809B750 -_0809B744: - adds r0, r5, 0 - adds r1, r3, 0 - adds r2, r4, 0 - movs r3, 0 - bl PlantBerryTree -_0809B750: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end berry_script_cmd - - thumb_func_start sub_809B758 -sub_809B758: @ 809B758 - push {r4,lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r4, =gScriptResult - lsls r0, 24 - lsrs r0, 24 - bl GetPriceReduction - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_809B758 - - thumb_func_start sub_809B784 -sub_809B784: @ 809B784 - push {lr} - bl sub_81B9404 - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_809B784 - - thumb_func_start sub_809B794 -sub_809B794: @ 809B794 - push {lr} - bl sub_80F840C - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_809B794 - - thumb_func_start sub_809B7A4 -sub_809B7A4: @ 809B7A4 - push {lr} - bl sub_80F8484 - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_809B7A4 - - thumb_func_start sub_809B7B4 -sub_809B7B4: @ 809B7B4 - push {lr} - ldr r0, =gUnknown_02039F2C - ldrb r0, [r0] - bl sub_80F84C4 - bl ScriptContext1_Stop - movs r0, 0x1 - pop {r1} - bx r1 - .pool - thumb_func_end sub_809B7B4 - - thumb_func_start s9C_execute_HM -s9C_execute_HM: @ 809B7CC - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r1, =gUnknown_020375D0 - strh r0, [r1] - lsls r0, 24 - lsrs r0, 24 - bl FieldEffectStart - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end s9C_execute_HM - - thumb_func_start s9D_set_HM_animation_data -s9D_set_HM_animation_data: @ 809B7F4 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r1, =gFieldEffectSpawnParams - lsls r4, 2 - adds r4, r1 - lsls r0, 16 - asrs r0, 16 - str r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end s9D_set_HM_animation_data - - thumb_func_start sub_809B824 -sub_809B824: @ 809B824 - push {lr} - ldr r0, =gUnknown_020375D0 - ldrb r0, [r0] - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - beq _0809B83C - movs r0, 0 - b _0809B83E - .pool -_0809B83C: - movs r0, 0x1 -_0809B83E: - pop {r1} - bx r1 - thumb_func_end sub_809B824 - - thumb_func_start s9E_checkarray_HM_animation -s9E_checkarray_HM_animation: @ 809B844 - push {r4,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - ldr r1, =gUnknown_020375D0 - strh r0, [r1] - ldr r1, =sub_809B824 - adds r0, r4, 0 - bl SetupNativeScript - movs r0, 0x1 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end s9E_checkarray_HM_animation - - thumb_func_start s9F_changeposition_fly -s9F_changeposition_fly: @ 809B870 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - bl sub_8084D1C - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end s9F_changeposition_fly - - thumb_func_start sA0_check_gender -sA0_check_gender: @ 809B88C - ldr r1, =gScriptResult - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - strh r0, [r1] - movs r0, 0 - bx lr - .pool - thumb_func_end sA0_check_gender - - thumb_func_start sA1_play_cry -sA1_play_cry: @ 809B8A4 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl PlayCry5 - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sA1_play_cry - - thumb_func_start sub_809B8DC -sub_809B8DC: @ 809B8DC - push {lr} - ldr r1, =IsCryFinished - bl SetupNativeScript - movs r0, 0x1 - pop {r1} - bx r1 - .pool - thumb_func_end sub_809B8DC - - thumb_func_start sA2_setmaptile -sA2_setmaptile: @ 809B8F0 - push {r4-r7,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r7, r0, 16 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - adds r1, r6, 0x7 - lsls r1, 16 - lsrs r6, r1, 16 - adds r1, r5, 0x7 - lsls r1, 16 - lsrs r5, r1, 16 - cmp r0, 0 - bne _0809B954 - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r7, 0 - bl MapGridSetMetatileIdAt - b _0809B966 -_0809B954: - movs r1, 0xC0 - lsls r1, 4 - adds r0, r1, 0 - adds r2, r7, 0 - orrs r2, r0 - adds r0, r6, 0 - adds r1, r5, 0 - bl MapGridSetMetatileIdAt -_0809B966: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sA2_setmaptile - - thumb_func_start sAC_open_door -sAC_open_door: @ 809B970 - push {r4,r5,lr} - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - adds r5, 0x7 - lsls r5, 16 - lsrs r5, 16 - movs r0, 0xE0 - lsls r0, 11 - adds r4, r0 - lsrs r4, 16 - adds r0, r5, 0 - adds r1, r4, 0 - bl cur_mapdata_get_door_sound_at - lsls r0, 16 - lsrs r0, 16 - bl PlaySE - adds r0, r5, 0 - adds r1, r4, 0 - bl task_overworld_door_add_if_role_69_for_opening_door_at - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sAC_open_door - - thumb_func_start sub_809B9C8 -sub_809B9C8: @ 809B9C8 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - lsls r1, 16 - adds r4, 0x7 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0xE0 - lsls r0, 11 - adds r1, r0 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_808A8AC - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809B9C8 - - thumb_func_start sub_809BA0C -sub_809BA0C: @ 809BA0C - push {lr} - bl sub_808A91C - lsls r0, 24 - cmp r0, 0 - beq _0809BA1C - movs r0, 0 - b _0809BA1E -_0809BA1C: - movs r0, 0x1 -_0809BA1E: - pop {r1} - bx r1 - thumb_func_end sub_809BA0C - - thumb_func_start sub_809BA24 -sub_809BA24: @ 809BA24 - push {lr} - ldr r1, =sub_809BA0C - bl SetupNativeScript - movs r0, 0x1 - pop {r1} - bx r1 - .pool - thumb_func_end sub_809BA24 - - thumb_func_start sub_809BA38 -sub_809BA38: @ 809BA38 - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - lsls r1, 16 - adds r4, 0x7 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0xE0 - lsls r0, 11 - adds r1, r0 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_808A854 - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809BA38 - - thumb_func_start sub_809BA7C -sub_809BA7C: @ 809BA7C - push {r4,r5,lr} - adds r5, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r1, r0, 0 - lsls r1, 16 - adds r4, 0x7 - lsls r4, 16 - lsrs r4, 16 - movs r0, 0xE0 - lsls r0, 11 - adds r1, r0 - lsrs r1, 16 - adds r0, r4, 0 - bl sub_808A880 - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809BA7C - - thumb_func_start sub_809BAC0 -sub_809BAC0: @ 809BAC0 - push {r4,lr} - adds r4, r0, 0 - ldr r0, [r4, 0x8] - adds r0, 0x1 - str r0, [r4, 0x8] - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r0, r4, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_809BAC0 - - thumb_func_start sub_809BAFC -sub_809BAFC: @ 809BAFC - movs r0, 0 - bx lr - thumb_func_end sub_809BAFC - - thumb_func_start sB3_get_coin_amount -sB3_get_coin_amount: @ 809BB00 - push {r4,lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl GetVarPointer - adds r4, r0, 0 - bl GetCoins - strh r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sB3_get_coin_amount - - thumb_func_start sub_809BB20 -sub_809BB20: @ 809BB20 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl AddCoins - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809BB48 - ldr r1, =gScriptResult - movs r0, 0 - b _0809BB4C - .pool -_0809BB48: - ldr r1, =gScriptResult - movs r0, 0x1 -_0809BB4C: - strh r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_809BB20 - - thumb_func_start sub_809BB58 -sub_809BB58: @ 809BB58 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - bl SubtractCoins - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809BB80 - ldr r1, =gScriptResult - movs r0, 0 - b _0809BB84 - .pool -_0809BB80: - ldr r1, =gScriptResult - movs r0, 0x1 -_0809BB84: - strh r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_809BB58 - - thumb_func_start sub_809BB90 -sub_809BB90: @ 809BB90 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - bl sub_81A89A0 - ldr r1, =gUnknown_020375CA - strh r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_809BB90 - - thumb_func_start sub_809BBB4 -sub_809BBB4: @ 809BBB4 - push {lr} - bl sub_81A8AF8 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_809BBB4 - - thumb_func_start ScrCmd_MossdeepGymSwitch -ScrCmd_MossdeepGymSwitch: @ 809BBC0 - push {lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 24 - lsrs r0, 24 - bl sub_81A8934 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end ScrCmd_MossdeepGymSwitch - - thumb_func_start sub_809BBDC -sub_809BBDC: @ 809BBDC - push {lr} - bl sub_81A895C - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_809BBDC - - thumb_func_start sub_809BBE8 -sub_809BBE8: @ 809BBE8 - push {lr} - bl sub_80B47BC - ldr r1, =gSelectedMapObject - strb r0, [r1] - movs r0, 0 - pop {r1} - bx r1 - .pool - thumb_func_end sub_809BBE8 - - thumb_func_start sub_809BBFC -sub_809BBFC: @ 809BBFC - push {r4,lr} - adds r4, r0, 0 - bl is_c1_link_related_active - cmp r0, 0 - beq _0809BC0C - movs r0, 0 - b _0809BC30 -_0809BC0C: - ldr r2, =gMapObjects - ldr r0, =gSelectedMapObject - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - beq _0809BC2E - bl sub_8098630 - ldr r1, =sub_8098734 - adds r0, r4, 0 - bl SetupNativeScript -_0809BC2E: - movs r0, 0x1 -_0809BC30: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_809BBFC - - thumb_func_start sCD_set_obedient_bit -sCD_set_obedient_bit: @ 809BC44 - push {lr} - sub sp, 0x4 - movs r2, 0x1 - mov r1, sp - strb r2, [r1] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x50 - mov r2, sp - bl SetMonData - movs r0, 0 - add sp, 0x4 - pop {r1} - bx r1 - .pool - thumb_func_end sCD_set_obedient_bit - - thumb_func_start sCE_check_obedient_bit -sCE_check_obedient_bit: @ 809BC7C - push {r4,lr} - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r4, =gScriptResult - movs r1, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x50 - movs r2, 0 - bl GetMonData - strh r0, [r4] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sCE_check_obedient_bit - - thumb_func_start sCF_execute_RAM_script_DMA -sCF_execute_RAM_script_DMA: @ 809BCB4 - push {r4,lr} - adds r4, r0, 0 - bl sub_8099244 - adds r2, r0, 0 - cmp r2, 0 - beq _0809BCD0 - ldr r1, =gUnknown_020375C0 - ldr r0, [r4, 0x8] - str r0, [r1] - adds r0, r4, 0 - adds r1, r2, 0 - bl ScriptJump -_0809BCD0: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sCF_execute_RAM_script_DMA - - thumb_func_start sD1_warp_v5 -sD1_warp_v5: @ 809BCDC - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl warp1_set - bl player_get_direction_lower_nybble - lsls r0, 24 - lsrs r0, 24 - bl sub_808D074 - bl sub_80B0244 - bl player_avatar_init_params_reset - movs r0, 0x1 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sD1_warp_v5 - - thumb_func_start sub_809BD70 -sub_809BD70: @ 809BD70 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r3, r0, 16 - ldr r0, [r4, 0x8] - ldrb r2, [r0] - mov r1, sp - strb r2, [r1] - adds r0, 0x1 - str r0, [r4, 0x8] - cmp r3, 0x5 - bhi _0809BDA6 - movs r0, 0x64 - muls r0, r3 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x23 - mov r2, sp - bl SetMonData -_0809BDA6: - movs r0, 0 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_809BD70 - - thumb_func_start sub_809BDB4 -sub_809BDB4: @ 809BDB4 - push {r4,lr} - ldr r4, =gUnknown_03000F30 - ldrb r0, [r4] - movs r1, 0x1 - bl sub_819746C - ldrb r0, [r4] - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_809BDB4 - - thumb_func_start sub_809BDD0 -sub_809BDD0: @ 809BDD0 - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r1, =gUnknown_085102D4 - lsls r4, 2 - adds r4, r1 - ldr r4, [r4] - bl GetTrainerClassNameFromId - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_809BDD0 - - thumb_func_start sub_809BE0C -sub_809BE0C: @ 809BE0C - push {r4,lr} - ldr r1, [r0, 0x8] - ldrb r4, [r1] - adds r1, 0x1 - str r1, [r0, 0x8] - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldr r1, =gUnknown_085102D4 - lsls r4, 2 - adds r4, r1 - ldr r4, [r4] - bl GetTrainerNameFromId - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_809BE0C - - thumb_func_start sub_809BE48 -sub_809BE48: @ 809BE48 - ldr r1, =gUnknown_020375CA - strh r0, [r1] - bx lr - .pool - thumb_func_end sub_809BE48 - - thumb_func_start sub_809BE54 -sub_809BE54: @ 809BE54 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - adds r5, r0, 0 - ldr r0, [r5, 0x8] - ldrb r1, [r0] - mov r9, r1 - adds r0, 0x1 - str r0, [r5, 0x8] - ldrb r1, [r0] - mov r8, r1 - adds r1, r0, 0x1 - str r1, [r5, 0x8] - ldrb r6, [r0, 0x1] - adds r1, 0x1 - str r1, [r5, 0x8] - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - bl ScriptReadHalfword - lsls r0, 16 - lsrs r0, 16 - bl VarGet - mov r1, r9 - lsls r1, 24 - asrs r1, 24 - mov r9, r1 - mov r1, r8 - lsls r1, 24 - asrs r1, 24 - mov r8, r1 - lsls r6, 24 - asrs r6, 24 - lsls r4, 24 - asrs r4, 24 - lsls r0, 24 - asrs r0, 24 - str r0, [sp] - mov r0, r9 - adds r2, r6, 0 - adds r3, r4, 0 - bl warp1_set - bl sub_80AF79C - bl player_avatar_init_params_reset - movs r0, 0x1 - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_809BE54 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/script_menu.s b/asm/script_menu.s index 8aecbf696..55ce5736a 100644 --- a/asm/script_menu.s +++ b/asm/script_menu.s @@ -5,9 +5,9 @@ .text - thumb_func_start Multichoice -@ bool8 Multichoice(u8 x, u8 y, u8 menuId, bool8 noCancelling) -Multichoice: @ 80E1E08 + thumb_func_start ScriptMenu_Multichoice +@ bool8 ScriptMenu_Multichoice(u8 x, u8 y, u8 menuId, bool8 noCancelling) +ScriptMenu_Multichoice: @ 80E1E08 push {r4-r7,lr} sub sp, 0x4 lsls r0, 24 @@ -44,10 +44,10 @@ _080E1E4E: pop {r4-r7} pop {r1} bx r1 - thumb_func_end Multichoice + thumb_func_end ScriptMenu_Multichoice - thumb_func_start sub_80E1E58 -sub_80E1E58: @ 80E1E58 + thumb_func_start ScriptMenu_MultichoiceWithDefault +ScriptMenu_MultichoiceWithDefault: @ 80E1E58 push {r4-r7,lr} mov r7, r8 push {r7} @@ -91,7 +91,7 @@ _080E1EAA: pop {r4-r7} pop {r1} bx r1 - thumb_func_end sub_80E1E58 + thumb_func_end ScriptMenu_MultichoiceWithDefault thumb_func_start sub_80E1EB8 sub_80E1EB8: @ 80E1EB8 @@ -379,8 +379,8 @@ _080E20FC: .pool thumb_func_end sub_80E2058 - thumb_func_start yes_no_box -yes_no_box: @ 80E2108 + thumb_func_start ScriptMenu_YesNo +ScriptMenu_YesNo: @ 80E2108 push {r4,lr} ldr r4, =task_yes_no_maybe adds r0, r4, 0 @@ -405,7 +405,7 @@ _080E213A: pop {r4} pop {r1} bx r1 - thumb_func_end yes_no_box + thumb_func_end ScriptMenu_YesNo thumb_func_start sub_80E2140 sub_80E2140: @ 80E2140 @@ -485,8 +485,8 @@ _080E21C4: .pool thumb_func_end task_yes_no_maybe - thumb_func_start sub_80E21D0 -sub_80E21D0: @ 80E21D0 + thumb_func_start ScriptMenu_MultichoiceGrid +ScriptMenu_MultichoiceGrid: @ 80E21D0 push {r4-r7,lr} mov r7, r10 mov r6, r9 @@ -627,7 +627,7 @@ _080E22E8: pop {r1} bx r1 .pool - thumb_func_end sub_80E21D0 + thumb_func_end ScriptMenu_MultichoiceGrid thumb_func_start sub_80E2308 sub_80E2308: @ 80E2308 @@ -1334,8 +1334,8 @@ _080E28F8: bx r0 thumb_func_end task_picbox - thumb_func_start sub_80E2900 -sub_80E2900: @ 80E2900 + thumb_func_start ScriptMenu_ShowPokemonPic +ScriptMenu_ShowPokemonPic: @ 80E2900 push {r4-r7,lr} mov r7, r8 push {r7} @@ -1422,10 +1422,10 @@ _080E29BA: pop {r4-r7} pop {r1} bx r1 - thumb_func_end sub_80E2900 + thumb_func_end ScriptMenu_ShowPokemonPic - thumb_func_start picbox_close -picbox_close: @ 80E29C4 + thumb_func_start ScriptMenu_GetPicboxWaitFunc +ScriptMenu_GetPicboxWaitFunc: @ 80E29C4 push {lr} ldr r0, =task_picbox bl FindTaskIdByFunc @@ -1449,7 +1449,7 @@ _080E29F4: _080E29F6: pop {r1} bx r1 - thumb_func_end picbox_close + thumb_func_end ScriptMenu_GetPicboxWaitFunc thumb_func_start sub_80E29FC sub_80E29FC: @ 80E29FC diff --git a/asm/script_movement.s b/asm/script_movement.s index f28fc9d44..5f06fd179 100755 --- a/asm/script_movement.s +++ b/asm/script_movement.s @@ -5,8 +5,8 @@ .text - thumb_func_start exec_movement -exec_movement: @ 80D32E8 + thumb_func_start ScriptMovement_StartObjectMovementScript +ScriptMovement_StartObjectMovementScript: @ 80D32E8 push {r4,lr} sub sp, 0x4 adds r4, r3, 0 @@ -47,10 +47,10 @@ _080D3332: pop {r1} bx r1 .pool - thumb_func_end exec_movement + thumb_func_end ScriptMovement_StartObjectMovementScript - thumb_func_start sub_80D3340 -sub_80D3340: @ 80D3340 + thumb_func_start ScriptMovement_IsObjectMovementFinished +ScriptMovement_IsObjectMovementFinished: @ 80D3340 push {r4,lr} sub sp, 0x4 lsls r0, 24 @@ -87,7 +87,7 @@ _080D3384: pop {r4} pop {r1} bx r1 - thumb_func_end sub_80D3340 + thumb_func_end ScriptMovement_IsObjectMovementFinished thumb_func_start sub_80D338C sub_80D338C: @ 80D338C diff --git a/asm/script_pokemon_util_80F87D8.s b/asm/script_pokemon_util_80F87D8.s index 231879f02..2bdf99aca 100644 --- a/asm/script_pokemon_util_80F87D8.s +++ b/asm/script_pokemon_util_80F87D8.s @@ -83,7 +83,7 @@ sub_80F8850: @ 80F8850 thumb_func_start sub_80F8864 sub_80F8864: @ 80F8864 push {lr} - ldr r0, =gUnknown_02039F2C + ldr r0, =gScriptContestCategory ldrh r0, [r0] cmp r0, 0x4 bhi _080F88A4 @@ -397,8 +397,8 @@ sub_80F8ACC: @ 80F8ACC .pool thumb_func_end sub_80F8ACC - thumb_func_start sub_80F8ADC -sub_80F8ADC: @ 80F8ADC + thumb_func_start ShowContestWinner +ShowContestWinner: @ 80F8ADC push {lr} ldr r0, =sub_812FDEC bl SetMainCallback2 @@ -408,7 +408,7 @@ sub_80F8ADC: @ 80F8ADC pop {r0} bx r0 .pool - thumb_func_end sub_80F8ADC + thumb_func_end ShowContestWinner thumb_func_start sub_80F8AFC sub_80F8AFC: @ 80F8AFC @@ -1269,9 +1269,9 @@ _080F922C: .pool thumb_func_end sp000_heal_pokemon - thumb_func_start sub_80F9244 -@ void sub_80F9244(s16 species_num, u8 level, int held_item) -sub_80F9244: @ 80F9244 + thumb_func_start ScriptGiveMon +@ void ScriptGiveMon(s16 species_num, u8 level, int held_item) +ScriptGiveMon: @ 80F9244 push {r4-r6,lr} mov r6, r8 push {r6} @@ -1332,10 +1332,10 @@ _080F92B8: pop {r4-r6} pop {r1} bx r1 - thumb_func_end sub_80F9244 + thumb_func_end ScriptGiveMon - thumb_func_start sub_80F92C8 -sub_80F92C8: @ 80F92C8 + thumb_func_start ScriptGiveEgg +ScriptGiveEgg: @ 80F92C8 push {lr} sub sp, 0x68 adds r1, r0, 0 @@ -1357,7 +1357,7 @@ sub_80F92C8: @ 80F92C8 add sp, 0x68 pop {r1} bx r1 - thumb_func_end sub_80F92C8 + thumb_func_end ScriptGiveEgg thumb_func_start sub_80F92F8 sub_80F92F8: @ 80F92F8 @@ -1450,8 +1450,8 @@ _080F9392: .pool thumb_func_end sub_80F9370 - thumb_func_start sub_80F93A0 -sub_80F93A0: @ 80F93A0 + thumb_func_start CreateScriptedWildMon +CreateScriptedWildMon: @ 80F93A0 push {r4-r7,lr} mov r7, r8 push {r7} @@ -1496,10 +1496,10 @@ _080F93EE: pop {r0} bx r0 .pool - thumb_func_end sub_80F93A0 + thumb_func_end CreateScriptedWildMon - thumb_func_start sub_80F9400 -sub_80F9400: @ 80F9400 + thumb_func_start ScriptSetMonMoveSlot +ScriptSetMonMoveSlot: @ 80F9400 push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 @@ -1525,7 +1525,7 @@ _080F941C: pop {r0} bx r0 .pool - thumb_func_end sub_80F9400 + thumb_func_end ScriptSetMonMoveSlot thumb_func_start sub_80F9438 sub_80F9438: @ 80F9438 diff --git a/asm/secret_base.s b/asm/secret_base.s index 0290e9f7f..be156982c 100644 --- a/asm/secret_base.s +++ b/asm/secret_base.s @@ -861,7 +861,7 @@ sub_80E916C: @ 80E916C asrs r0, 24 str r0, [sp] adds r0, r5, 0 - bl warp1_set + bl Overworld_SetWarpDestination bl warp_in ldr r1, =gFieldCallback ldr r0, =sub_80E9108 @@ -1208,7 +1208,7 @@ _080E9462: adds r0, 0xAE lsls r0, 16 lsrs r0, 16 - bl FlagReset + bl FlagClear ldrb r0, [r6] ldr r5, =gSaveBlock1Ptr ldr r2, [r5] diff --git a/asm/shop.s b/asm/shop.s index 08e935bb1..94756624c 100644 --- a/asm/shop.s +++ b/asm/shop.s @@ -2465,7 +2465,7 @@ BuyMenuSubtractMoney: @ 80E0F88 lsls r2, 6 adds r1, r2 ldr r1, [r1] - bl SubtractMoney + bl RemoveMoney movs r0, 0x5F bl PlaySE ldr r0, [r5] diff --git a/asm/slot_machine.s b/asm/slot_machine.s index 6bd62ed9f..6390ae992 100644 --- a/asm/slot_machine.s +++ b/asm/slot_machine.s @@ -55,8 +55,8 @@ _0812A530: .pool thumb_func_end sub_812A4DC - thumb_func_start sub_812A540 -sub_812A540: @ 812A540 + thumb_func_start PlaySlotMachine +PlaySlotMachine: @ 812A540 push {r4-r6,lr} adds r4, r0, 0 adds r6, r1, 0 @@ -85,7 +85,7 @@ sub_812A540: @ 812A540 pop {r0} bx r0 .pool - thumb_func_end sub_812A540 + thumb_func_end PlaySlotMachine thumb_func_start sub_812A588 sub_812A588: @ 812A588 diff --git a/asm/trainer_rematch.s b/asm/trainer_rematch.s index 0c30cfea9..b814934a3 100755 --- a/asm/trainer_rematch.s +++ b/asm/trainer_rematch.s @@ -185,7 +185,7 @@ _081DA6D4: adds r0, r1 adds r0, r6 ldrh r0, [r0] - bl trainer_flag_check + bl HasTrainerAlreadyBeenFought lsls r0, 24 cmp r0, 0 bne _081DA6F0 diff --git a/asm/trainer_see.s b/asm/trainer_see.s index d638498ee..59dd9f74b 100644 --- a/asm/trainer_see.s +++ b/asm/trainer_see.s @@ -734,7 +734,7 @@ sub_80B417C: @ 80B417C push {r4,r5,lr} adds r5, r1, 0 adds r4, r2, 0 - ldr r1, =gFieldEffectSpawnParams + ldr r1, =gFieldEffectArguments adds r2, r1, 0x4 adds r3, r1, 0 adds r3, 0x8 @@ -1050,7 +1050,7 @@ sub_80B43E0: @ 80B43E0 lsls r0, 24 cmp r0, 0 beq _080B4426 - ldr r2, =gFieldEffectSpawnParams + ldr r2, =gFieldEffectArguments movs r1, 0x10 ldrsh r0, [r4, r1] str r0, [r2] @@ -1303,7 +1303,7 @@ sub_80B45D0: @ 80B45D0 ldr r1, =gScriptResult movs r0, 0x1 strh r0, [r1] - bl sub_809757C + bl UnfreezeMapObjects ldr r0, =gUnknown_03006090 ldrb r0, [r0, 0xC] bl sub_80974D0 @@ -1432,7 +1432,7 @@ sub_80B46D8: @ 80B46D8 orrs r3, r4 mov r4, r12 strb r3, [r4] - ldr r4, =gFieldEffectSpawnParams + ldr r4, =gFieldEffectArguments ldr r3, [r4] strh r3, [r0, 0x2E] ldr r3, [r4, 0x4] @@ -1609,7 +1609,7 @@ sub_80B4808: @ 80B4808 ldrb r1, [r0, 0x5] ldrb r2, [r0, 0x4] movs r0, 0xFF - bl exec_movement + bl ScriptMovement_StartObjectMovementScript b _080B489E .pool _080B4870: @@ -1633,7 +1633,7 @@ _080B4870: ldrb r1, [r0, 0x5] ldrb r2, [r0, 0x4] movs r0, 0xFF - bl exec_movement + bl ScriptMovement_StartObjectMovementScript _080B489E: movs r0, 0xFF bl sub_809BE48 diff --git a/asm/tv.s b/asm/tv.s index d61392fa1..313b1f6c0 100644 --- a/asm/tv.s +++ b/asm/tv.s @@ -233,7 +233,7 @@ _080EC080: beq _080EC0BE _080EC0AE: ldr r0, =0x00000891 - bl FlagReset + bl FlagClear adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x3 @@ -1407,7 +1407,7 @@ sub_80ECA38: @ 80ECA38 ldr r1, =gSaveBlock2Ptr ldr r1, [r1] bl StringCopy - ldr r0, =gUnknown_02039F2C + ldr r0, =gScriptContestCategory ldrh r0, [r0] strb r0, [r4, 0x1C] ldr r0, =gUnknown_02039F24 @@ -2114,7 +2114,7 @@ sub_80ED090: @ 80ED090 ands r2, r1 orrs r2, r0 strb r2, [r7, 0x13] - ldr r0, =gUnknown_02039F2C + ldr r0, =gScriptContestCategory ldrb r0, [r0] movs r1, 0x7 ands r1, r0 @@ -2609,7 +2609,7 @@ sub_80ED548: @ 80ED548 ldr r1, =gSaveBlock2Ptr ldr r1, [r1] bl StringCopy - bl sub_8139688 + bl GetLeadMonIndex lsls r0, 24 lsrs r0, 24 movs r1, 0x64 @@ -2689,7 +2689,7 @@ sub_80ED610: @ 80ED610 mov r8, r0 mov r1, r8 strb r1, [r5, 0x1] - bl sub_8139688 + bl GetLeadMonIndex lsls r0, 24 lsrs r0, 24 movs r7, 0x64 @@ -2719,7 +2719,7 @@ sub_80ED610: @ 80ED610 ldr r1, =gSaveBlock2Ptr ldr r1, [r1] bl StringCopy - bl sub_8139688 + bl GetLeadMonIndex lsls r0, 24 lsrs r0, 24 muls r0, r7 @@ -2731,7 +2731,7 @@ sub_80ED610: @ 80ED610 bl GetMonData adds r0, r4, 0 bl StripExtCtrlCodes - bl sub_8139688 + bl GetLeadMonIndex lsls r0, 24 lsrs r0, 24 muls r0, r7 @@ -2747,7 +2747,7 @@ sub_80ED610: @ 80ED610 strb r0, [r5, 0xD] cmp r0, 0x1 beq _080ED6D4 - bl sub_8139688 + bl GetLeadMonIndex lsls r0, 24 lsrs r0, 24 muls r0, r7 @@ -2761,7 +2761,7 @@ _080ED6D4: b _080ED706 .pool _080ED6F4: - bl sub_8139688 + bl GetLeadMonIndex lsls r0, 24 lsrs r0, 24 muls r0, r7 @@ -5699,7 +5699,7 @@ _080EEFD0: lsls r0, 2 adds r0, r1 ldr r0, [r0] - bl box_related_two__2 + bl ShowFieldMessage b _080EF016 .pool _080EEFE8: @@ -5723,7 +5723,7 @@ _080EEFE8: lsls r0, 2 adds r0, r1 ldr r0, [r0] - bl box_related_two__2 + bl ShowFieldMessage _080EF016: ldr r1, =gScriptResult movs r0, 0x1 @@ -6495,7 +6495,7 @@ sub_80EF64C: @ 80EF64C cmp r0, 0 bne _080EF6A0 ldr r4, =gStringVar1 - bl sub_8139688 + bl GetLeadMonIndex lsls r0, 24 lsrs r0, 24 movs r1, 0x64 @@ -6569,7 +6569,7 @@ sub_80EF704: @ 80EF704 cmp r0, 0 bne _080EF774 ldr r6, =gStringVar1 - bl sub_8139688 + bl GetLeadMonIndex lsls r0, 24 lsrs r0, 24 movs r5, 0x64 @@ -6585,7 +6585,7 @@ sub_80EF704: @ 80EF704 adds r1, r0 adds r0, r6, 0 bl StringCopy - bl sub_8139688 + bl GetLeadMonIndex lsls r0, 24 lsrs r0, 24 muls r0, r5 @@ -6788,7 +6788,7 @@ _080EF8EE: thumb_func_start sub_80EF8F8 sub_80EF8F8: @ 80EF8F8 push {lr} - bl sub_8139688 + bl GetLeadMonIndex lsls r0, 24 lsrs r0, 24 bl sub_80EF88C @@ -10706,7 +10706,7 @@ _080F1952: lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage pop {r4,r5} pop {r0} bx r0 @@ -10958,7 +10958,7 @@ _080F1BEA: lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage pop {r4,r5} pop {r0} bx r0 @@ -11190,7 +11190,7 @@ _080F1E2C: lsls r1, r6, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage pop {r4-r6} pop {r0} bx r0 @@ -11485,7 +11485,7 @@ _080F20FE: lsls r1, r6, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage add sp, 0x8 pop {r4-r6} pop {r0} @@ -11707,7 +11707,7 @@ _080F2358: lsls r1, r6, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage pop {r4-r6} pop {r0} bx r0 @@ -11846,7 +11846,7 @@ _080F24C0: lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage pop {r4,r5} pop {r0} bx r0 @@ -12019,7 +12019,7 @@ _080F26A6: movs r3, 0x2 bl ConvertEasyChatWordsToString adds r0, r4, 0 - bl box_related_two__2 + bl ShowFieldMessage ldr r1, =gUnknown_0203A030 movs r0, 0x1 strb r0, [r1] @@ -12033,7 +12033,7 @@ _080F26CC: movs r3, 0x2 bl ConvertEasyChatWordsToString adds r0, r4, 0 - bl box_related_two__2 + bl ShowFieldMessage ldr r1, =gUnknown_0203A030 movs r0, 0x3 strb r0, [r1] @@ -12044,7 +12044,7 @@ _080F26F0: lsls r1, r7, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage _080F26FC: pop {r4-r7} pop {r0} @@ -12173,7 +12173,7 @@ _080F2868: movs r3, 0x2 bl ConvertEasyChatWordsToString adds r0, r4, 0 - bl box_related_two__2 + bl ShowFieldMessage ldr r1, =gUnknown_0203A030 movs r0, 0x1 strb r0, [r1] @@ -12184,7 +12184,7 @@ _080F288C: lsls r1, r6, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage _080F2898: pop {r4-r7} pop {r0} @@ -12278,7 +12278,7 @@ _080F297E: lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage pop {r4-r6} pop {r0} bx r0 @@ -12322,7 +12322,7 @@ DoTVShowPokemonNewsMassOutbreak: @ 80F29A0 lsls r0, 2 adds r0, r1 ldr r0, [r0] - bl box_related_two__2 + bl ShowFieldMessage pop {r4} pop {r0} bx r0 @@ -13075,7 +13075,7 @@ _080F311C: lsls r1, r7, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage pop {r4-r7} pop {r0} bx r0 @@ -13285,7 +13285,7 @@ _080F3362: lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage pop {r4,r5} pop {r0} bx r0 @@ -13535,7 +13535,7 @@ _080F3624: lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage pop {r4,r5} pop {r0} bx r0 @@ -13721,7 +13721,7 @@ _080F37EA: lsls r1, r7, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage pop {r4-r7} pop {r0} bx r0 @@ -13806,7 +13806,7 @@ _080F38E0: lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage pop {r4,r5} pop {r0} bx r0 @@ -13894,7 +13894,7 @@ _080F39BE: lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage pop {r4-r6} pop {r0} bx r0 @@ -14124,7 +14124,7 @@ _080F3BE8: lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage pop {r4,r5} pop {r0} bx r0 @@ -14257,7 +14257,7 @@ _080F3D54: lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage pop {r4,r5} pop {r0} bx r0 @@ -14362,7 +14362,7 @@ _080F3E5C: lsls r1, r6, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage pop {r4-r7} pop {r0} bx r0 @@ -14532,7 +14532,7 @@ _080F4008: lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage pop {r4,r5} pop {r0} bx r0 @@ -14835,7 +14835,7 @@ _080F4344: lsls r1, r7, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage pop {r4-r7} pop {r0} bx r0 @@ -15063,7 +15063,7 @@ _080F4588: lsls r1, r6, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage pop {r4-r6} pop {r0} bx r0 @@ -15133,7 +15133,7 @@ _080F4634: lsls r0, r6, 2 adds r0, r1 ldr r0, [r0] - bl box_related_two__2 + bl ShowFieldMessage pop {r4-r6} pop {r0} bx r0 @@ -15330,7 +15330,7 @@ _080F4858: lsls r1, r7, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage pop {r4-r7} pop {r0} bx r0 @@ -15453,7 +15453,7 @@ _080F499A: lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage pop {r4,r5} pop {r0} bx r0 @@ -15623,7 +15623,7 @@ _080F4B3A: lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage pop {r4,r5} pop {r0} bx r0 @@ -15846,7 +15846,7 @@ _080F4D84: lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage pop {r4,r5} pop {r0} bx r0 @@ -16107,7 +16107,7 @@ _080F5014: lsls r1, r7, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage pop {r4-r7} pop {r0} bx r0 @@ -16245,7 +16245,7 @@ _080F5164: lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage pop {r4,r5} pop {r0} bx r0 @@ -16650,7 +16650,7 @@ _080F552A: lsls r1, r2, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage pop {r3,r4} mov r8, r3 mov r9, r4 @@ -16821,7 +16821,7 @@ _080F56BC: lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage pop {r4,r5} pop {r0} bx r0 @@ -16895,7 +16895,7 @@ _080F575E: lsls r1, r5, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage pop {r4-r6} pop {r0} bx r0 diff --git a/data/event_script_command_function_table.inc b/data/event_script_command_function_table.inc index f44cdb7db..675da0ea7 100644 --- a/data/event_script_command_function_table.inc +++ b/data/event_script_command_function_table.inc @@ -1,229 +1,229 @@ .align 2 gScriptCmdTable:: @ 81DB67C - .4byte s00_nop - .4byte s01_nop - .4byte s02_end - .4byte s03_return - .4byte s04_call - .4byte s05_goto - .4byte s06_if_jump - .4byte s07_if_call - .4byte s08_jumpstd - .4byte s09_callstd - .4byte s0A_jumpstd_if - .4byte s0B_callstd_if - .4byte s0C_restore_execution_after_sCF - .4byte s0D_endscript_killram - .4byte s0E_set_byte - .4byte s0F_u32_var_to_const - .4byte s10_u8_var_to_const - .4byte s11_u8_ptr_to_const - .4byte s12_u32_var_to_ptr - .4byte s13_u8_var_to_ptr - .4byte s14_u32_var_to_var - .4byte s15_u8_ptr_to_ptr - .4byte s16_u16_gvar_to_const - .4byte s17_u16_gvar_add_const - .4byte sub_809993C - .4byte s19_u16_gvar_gvar - .4byte s1A_u16_gvar_gvar - .4byte s1B_cmp_u8_var_var - .4byte s1C_cmp_u8_var_const - .4byte s1D_cmp_u8_var_ptr - .4byte s1E_cmp_u8_ptr_var - .4byte s1F_cmp_u8_ptr_const - .4byte s20_cmp_u8_ptr_ptr - .4byte s21_cmp_u16_gvar_const - .4byte s22_cmp_u16_gvar_gvar - .4byte s23_execute_ASM - .4byte s24_execute_ASM_2 - .4byte s25_extended_cmd - .4byte s26_extended_cmd_setvar - .4byte s27_set_to_waitstate - .4byte s28_pause - .4byte s29_flag_set - .4byte s2A_flag_clear - .4byte s2B_flag_check - .4byte s2C_unknown - .4byte s2D_unknown - .4byte s2E_unknown - .4byte s2F_music_play - .4byte s30_music_check - .4byte s31_PlayFanfare - .4byte s32_fanfare_wait - .4byte s33_play_music - .4byte s34_unknown - .4byte s35_fade_to_default - .4byte s36_fade_to_music - .4byte s37_fadeout - .4byte s38_fadein - .4byte s39_warp_sfx - .4byte s3A_warp_new_music - .4byte s3B_warp_keep_music - .4byte sub_809A054 - .4byte s3D_warp_v4 - .4byte s3E_set_new_map - .4byte s3F_set_new_map_DMA - .4byte sub_809A2DC - .4byte sub_809A35C - .4byte s42_get_map_camera_pos - .4byte s43_get_player_party_count - .4byte sub_80999A0 - .4byte sub_80999E4 - .4byte sub_8099A28 - .4byte sub_8099A6C - .4byte s48_get_item_type - .4byte sub_8099ADC - .4byte sub_8099B20 - .4byte sub_8099B64 - .4byte sub_8099B90 - .4byte sub_8099BE8 - .4byte sub_8099BBC - .4byte s4F_execute_movement - .4byte s50_execute_movement_remote - .4byte s51_waitmove - .4byte s52_waitmove_remote - .4byte s53_hide_sprite - .4byte s54_hide_sprite_set_coords - .4byte s55_show_sprite - .4byte s56_show_sprite_set_coords - .4byte s57_move_sprites - .4byte s58_npc_f1_clear_x20 - .4byte s59_npc_f1_set_x20 - .4byte s5A_face_player - .4byte s5B_npc_set_direction - .4byte s5C_trainer_battle_configure_and_start - .4byte sub_809B5E4 - .4byte sub_809B5F0 - .4byte sub_809B604 - .4byte s60_check_trainer_flag - .4byte s61_set_trainer_flag - .4byte s62_unset_trainer_flag - .4byte s63_new_sprite_location_permanent - .4byte s64_set_sprite_top_left_corner - .4byte s65_set_sprite_behaviour - .4byte sub_809AC78 - .4byte s67_execute_box - .4byte s68_close_box - .4byte sub_809AAC4 - .4byte sub_809AAEC - .4byte s6B_release - .4byte s6C_release_2 - .4byte sub_809ACC0 - .4byte s6E_yes_no - .4byte s6F_multichoice - .4byte sub_809AD3C - .4byte sub_809AD90 - .4byte sub_809AD8C - .4byte s73_nop_skip_word - .4byte sub_809ADEC - .4byte sub_809ADF8 - .4byte s76_close_picture_box - .4byte sub_809AE48 - .4byte sub_809AE6C - .4byte s79_give_pokemon - .4byte s7A_create_egg - .4byte s7B_change_pokedata_AP - .4byte sub_809B3DC - .4byte s7D_load_pokename - .4byte s7E_load_first_pokenames - .4byte s7F_load_pokename_team - .4byte s80_load_item_name - .4byte sub_809B114 - .4byte s82_load_item_name - .4byte s83_load_textvar_var - .4byte s84_load_textvar_std_expression - .4byte s85_load_textvar_pointer - .4byte s86_pokemart - .4byte s87_pokemartdecor - .4byte s88_pokemartbp - .4byte s89_open_casino_game1 - .4byte berry_script_cmd - .4byte sub_809B784 - .4byte sub_809B794 - .4byte sub_809B7A4 - .4byte sub_809B7B4 - .4byte s8F_get_random_val - .4byte s90_AddMoney - .4byte s91_SubtractMoney - .4byte s92_check_money - .4byte s93_display_money - .4byte s94_hide_money - .4byte s95_update_money - .4byte sub_809B758 - .4byte s97_screen_special_effect - .4byte s98_refade_with_timer - .4byte s99_unknown - .4byte s9A_unknown - .4byte s9B_unknown - .4byte s9C_execute_HM - .4byte s9D_set_HM_animation_data - .4byte s9E_checkarray_HM_animation - .4byte s9F_changeposition_fly - .4byte sA0_check_gender - .4byte sA1_play_cry - .4byte sA2_setmaptile - .4byte sA3_set_standard_weather_data - .4byte sA4_set_weather_data - .4byte sub_8099E7C - .4byte sA6_activate_per_step_callback_eg_ash - .4byte sA7_set_new_map_footer - .4byte sA8_unknown - .4byte sA9_unknown - .4byte sAA_create_new_sprite - .4byte sAB_unknown - .4byte sAC_open_door - .4byte sub_809B9C8 - .4byte sub_809BA24 - .4byte sub_809BA38 - .4byte sub_809BA7C - .4byte sub_809BAC0 - .4byte sub_809BAFC - .4byte sB3_get_coin_amount - .4byte sub_809BB20 - .4byte sub_809BB58 - .4byte sB6_load_battle - .4byte sub_809B6A8 - .4byte sB8_set_virtual_address - .4byte sB9_virtual_jump - .4byte sBA_virtual_call - .4byte sBB_virtual_if_jump - .4byte sBC_virtual_if_call - .4byte sBD_virtual_message - .4byte sBE_virtual_load_text - .4byte sBF_virtual_load_textbuffer - .4byte sub_809B578 - .4byte sC1_hide_coins - .4byte sC2_update_coins - .4byte sC3_unknown - .4byte sC4_unknown - .4byte sub_809B8DC - .4byte sC6_load_textvar_box_label - .4byte s01_nop - .4byte s01_nop - .4byte s01_nop - .4byte s01_nop - .4byte s01_nop - .4byte s01_nop - .4byte sCD_set_obedient_bit - .4byte sCE_check_obedient_bit - .4byte sCF_execute_RAM_script_DMA - .4byte s01_nop - .4byte sD1_warp_v5 - .4byte sub_809BD70 - .4byte sub_809BB90 - .4byte sub_809BBB4 - .4byte ScrCmd_MossdeepGymSwitch - .4byte sub_809BBDC - .4byte sub_809A150 - .4byte sub_809BBE8 - .4byte sub_809BBFC - .4byte sub_809AF94 - .4byte sub_809AC3C - .4byte sub_8099D20 - .4byte sub_809BDD0 - .4byte sub_809BE0C - .4byte sub_809ABF0 - .4byte sub_809BE54 - .4byte sub_809B214 - .4byte sub_809B0C4 + .4byte ScrCmd_nop + .4byte ScrCmd_nop1 + .4byte ScrCmd_end + .4byte ScrCmd_return + .4byte ScrCmd_call + .4byte ScrCmd_goto + .4byte ScrCmd_goto_if + .4byte ScrCmd_call_if + .4byte ScrCmd_gotostd + .4byte ScrCmd_callstd + .4byte ScrCmd_gotostd_if + .4byte ScrCmd_callstd_if + .4byte ScrCmd_gotoram + .4byte ScrCmd_killscript + .4byte ScrCmd_setmysteryeventstatus + .4byte ScrCmd_loadword + .4byte ScrCmd_loadbyte + .4byte ScrCmd_writebytetoaddr + .4byte ScrCmd_loadbytefromaddr + .4byte ScrCmd_setptrbyte + .4byte ScrCmd_copylocal + .4byte ScrCmd_copybyte + .4byte ScrCmd_setvar + .4byte ScrCmd_addvar + .4byte ScrCmd_subvar + .4byte ScrCmd_copyvar + .4byte ScrCmd_setorcopyvar + .4byte ScrCmd_compare_local_to_local + .4byte ScrCmd_compare_local_to_value + .4byte ScrCmd_compare_local_to_addr + .4byte ScrCmd_compare_addr_to_local + .4byte ScrCmd_compare_addr_to_value + .4byte ScrCmd_compare_addr_to_addr + .4byte ScrCmd_compare_var_to_value + .4byte ScrCmd_compare_var_to_var + .4byte ScrCmd_callnative + .4byte ScrCmd_gotonative + .4byte ScrCmd_special + .4byte ScrCmd_specialvar + .4byte ScrCmd_waitstate + .4byte ScrCmd_delay + .4byte ScrCmd_setflag + .4byte ScrCmd_clearflag + .4byte ScrCmd_checkflag + .4byte ScrCmd_initclock + .4byte ScrCmd_dodailyevents + .4byte ScrCmd_gettime + .4byte ScrCmd_playse + .4byte ScrCmd_waitse + .4byte ScrCmd_playfanfare + .4byte ScrCmd_waitfanfare + .4byte ScrCmd_playbgm + .4byte ScrCmd_savebgm + .4byte ScrCmd_fadedefaultbgm + .4byte ScrCmd_fadenewbgm + .4byte ScrCmd_fadeoutbgm + .4byte ScrCmd_fadeinbgm + .4byte ScrCmd_warp + .4byte ScrCmd_warpsilent + .4byte ScrCmd_warpdoor + .4byte ScrCmd_warphole + .4byte ScrCmd_warpteleport + .4byte ScrCmd_setwarp + .4byte ScrCmd_setdynamicwarp + .4byte ScrCmd_setdivewarp + .4byte ScrCmd_setholewarp + .4byte ScrCmd_getplayerxy + .4byte ScrCmd_countpokemon + .4byte ScrCmd_additem + .4byte ScrCmd_removeitem + .4byte ScrCmd_checkitemspace + .4byte ScrCmd_checkitem + .4byte ScrCmd_checkitemtype + .4byte ScrCmd_addpcitem + .4byte ScrCmd_checkpcitem + .4byte ScrCmd_adddecor + .4byte ScrCmd_removedecor + .4byte ScrCmd_hasdecor + .4byte ScrCmd_checkdecor + .4byte ScrCmd_applymovement + .4byte ScrCmd_applymovement_at + .4byte ScrCmd_waitmovement + .4byte ScrCmd_waitmovement_at + .4byte ScrCmd_removeobject + .4byte ScrCmd_removeobject_at + .4byte ScrCmd_addobject + .4byte ScrCmd_addobject_at + .4byte ScrCmd_setobjectxy + .4byte ScrCmd_showobject + .4byte ScrCmd_hideobject + .4byte ScrCmd_faceplayer + .4byte ScrCmd_turnobject + .4byte ScrCmd_trainerbattle + .4byte ScrCmd_battlebegin + .4byte ScrCmd_ontrainerbattleend + .4byte ScrCmd_ontrainerbattleendgoto + .4byte ScrCmd_checktrainerflag + .4byte ScrCmd_settrainerflag + .4byte ScrCmd_cleartrainerflag + .4byte ScrCmd_setobjectxyperm + .4byte ScrCmd_moveobjectoffscreen + .4byte ScrCmd_setobjectmovementtype + .4byte ScrCmd_waitmessage + .4byte ScrCmd_message + .4byte ScrCmd_closemessage + .4byte ScrCmd_lockall + .4byte ScrCmd_lock + .4byte ScrCmd_releaseall + .4byte ScrCmd_release + .4byte ScrCmd_waitbutton + .4byte ScrCmd_yesnobox + .4byte ScrCmd_multichoice + .4byte ScrCmd_multichoicedefault + .4byte ScrCmd_multichoicegrid + .4byte ScrCmd_cmd72 + .4byte ScrCmd_cmd73 + .4byte ScrCmd_cmd74 + .4byte ScrCmd_drawpokepic + .4byte ScrCmd_erasepokepic + .4byte ScrCmd_drawcontestwinner + .4byte ScrCmd_braillemessage + .4byte ScrCmd_givepoke + .4byte ScrCmd_giveegg + .4byte ScrCmd_setpokemove + .4byte ScrCmd_checkpokemove + .4byte ScrCmd_getspeciesname + .4byte ScrCmd_getfirstpartypokename + .4byte ScrCmd_getpartypokename + .4byte ScrCmd_getitemname + .4byte ScrCmd_getdecorname + .4byte ScrCmd_getmovename + .4byte ScrCmd_getnumberstring + .4byte ScrCmd_getstdstring + .4byte ScrCmd_getstring + .4byte ScrCmd_pokemart + .4byte ScrCmd_pokemartdecor + .4byte ScrCmd_pokemartbp + .4byte ScrCmd_playslotmachine + .4byte ScrCmd_plantberrytree + .4byte ScrCmd_choosecontestpkmn + .4byte ScrCmd_startcontest + .4byte ScrCmd_showcontestresults + .4byte ScrCmd_contestlinktransfer + .4byte ScrCmd_random + .4byte ScrCmd_givemoney + .4byte ScrCmd_takemoney + .4byte ScrCmd_checkmoney + .4byte ScrCmd_showmoneybox + .4byte ScrCmd_hidemoneybox + .4byte ScrCmd_updatemoneybox + .4byte ScrCmd_getpricereduction + .4byte ScrCmd_fadescreen + .4byte ScrCmd_fadescreendelay + .4byte ScrCmd_setdarklevel + .4byte ScrCmd_animdarklevel + .4byte ScrCmd_messageautoscroll + .4byte ScrCmd_dofieldeffect + .4byte ScrCmd_setfieldeffect + .4byte ScrCmd_waitfieldeffect + .4byte ScrCmd_sethealplace + .4byte ScrCmd_checkplayergender + .4byte ScrCmd_playpokecry + .4byte ScrCmd_setmaptile + .4byte ScrCmd_resetweather + .4byte ScrCmd_setweather + .4byte ScrCmd_doweather + .4byte ScrCmd_tileeffect + .4byte ScrCmd_setmaplayoutindex + .4byte ScrCmd_setobjectpriority + .4byte ScrCmd_resetobjectpriority + .4byte ScrCmd_createvobject + .4byte ScrCmd_turnvobject + .4byte ScrCmd_opendoor + .4byte ScrCmd_closedoor + .4byte ScrCmd_waitdooranim + .4byte ScrCmd_setdooropen + .4byte ScrCmd_setdoorclosed + .4byte ScrCmd_cmdB1 + .4byte ScrCmd_cmdB2 + .4byte ScrCmd_checkcoins + .4byte ScrCmd_givecoins + .4byte ScrCmd_takecoins + .4byte ScrCmd_setwildbattle + .4byte ScrCmd_dowildbattle + .4byte ScrCmd_setvaddress + .4byte ScrCmd_vgoto + .4byte ScrCmd_vcall + .4byte ScrCmd_vgoto_if + .4byte ScrCmd_vcall_if + .4byte ScrCmd_vmessage + .4byte ScrCmd_vloadword + .4byte ScrCmd_vgetstring + .4byte ScrCmd_showcoinsbox + .4byte ScrCmd_hidecoinsbox + .4byte ScrCmd_updatecoinsbox + .4byte ScrCmd_incrementgamestat + .4byte ScrCmd_setescapewarp + .4byte ScrCmd_waitpokecry + .4byte ScrCmd_cmdC6 + .4byte ScrCmd_nop1 + .4byte ScrCmd_nop1 + .4byte ScrCmd_nop1 + .4byte ScrCmd_nop1 + .4byte ScrCmd_nop1 + .4byte ScrCmd_nop1 + .4byte ScrCmd_cmdCD + .4byte ScrCmd_cmdCE + .4byte ScrCmd_cmdCF + .4byte ScrCmd_nop1 + .4byte ScrCmd_cmdD1 + .4byte ScrCmd_cmdD2 + .4byte ScrCmd_cmdD3 + .4byte ScrCmd_cmdD4 + .4byte ScrCmd_cmdD5 + .4byte ScrCmd_cmdD6 + .4byte ScrCmd_cmdD7 + .4byte ScrCmd_cmdD8 + .4byte ScrCmd_cmdD9 + .4byte ScrCmd_cmdDA + .4byte ScrCmd_cmdDB + .4byte ScrCmd_cmdDC + .4byte ScrCmd_cmdDD + .4byte ScrCmd_cmdDE + .4byte ScrCmd_cmdDF + .4byte ScrCmd_cmdE0 + .4byte ScrCmd_cmdE1 + .4byte ScrCmd_cmdE2 diff --git a/data/event_scripts.s b/data/event_scripts.s index 4dd5761e5..aaa5873c3 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -12,13 +12,13 @@ gScriptCmdTableEnd:: @ 81DBA08 gSpecialVars:: @ 81DBA0C .incbin "baserom.gba", 0x1dba0c, 0x58 -gUnknown_081DBA64:: @ 81DBA64 +gSpecials:: @ 81DBA64 .incbin "baserom.gba", 0x1dba64, 0x83c -gUnknown_081DC2A0:: @ 81DC2A0 +gStdScripts:: @ 81DC2A0 .incbin "baserom.gba", 0x1dc2a0, 0x2c -gUnknown_081DC2CC:: @ 81DC2CC +gStdScripts_End:: @ 81DC2CC .incbin "baserom.gba", 0x1dc2cc, 0x34ee gUnknown_081DF7BA:: @ 81DF7BA diff --git a/data/scrcmd.s b/data/scrcmd.s deleted file mode 100644 index dfa802684..000000000 --- a/data/scrcmd.s +++ /dev/null @@ -1,14 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2, 0 - -gNullScriptPtr:: @ 85102BC - .incbin "baserom.gba", 0x5102bc, 0x4 - -gUnknown_085102C0:: @ 85102C0 - .incbin "baserom.gba", 0x5102c0, 0x14 - -gUnknown_085102D4:: @ 85102D4 - .incbin "baserom.gba", 0x5102d4, 0xc diff --git a/include/battle_frontier_2.h b/include/battle_frontier_2.h new file mode 100644 index 000000000..4f37248cc --- /dev/null +++ b/include/battle_frontier_2.h @@ -0,0 +1,9 @@ +#ifndef GUARD_BATTLE_FRONTIER_2_H +#define GUARD_BATTLE_FRONTIER_2_H + +void sub_81A8934(u8); +void sub_81A895C(void); +u16 sub_81A89A0(u8); +void sub_81A8AF8(void); + +#endif // GUARD_BATTLE_FRONTIER_2_H diff --git a/include/battle_setup.h b/include/battle_setup.h index 80fb55da2..e4acd8601 100644 --- a/include/battle_setup.h +++ b/include/battle_setup.h @@ -1,6 +1,15 @@ #ifndef GUARD_BATTLE_SETUP_H #define GUARD_BATTLE_SETUP_H +void BattleSetup_StartScriptedWildBattle(void); u8 BattleSetup_GetTerrainId(void); +u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data); + +u8 HasTrainerAlreadyBeenFought(u16); +void trainer_flag_set(u16); +void trainer_flag_clear(u16); +void BattleSetup_StartTrainerBattle(void); +u8 *BattleSetup_GetScriptAddrAfterBattle(void); +u8 *BattleSetup_GetTrainerPostBattleScript(void); #endif // GUARD_BATTLE_SETUP_H diff --git a/include/clock.h b/include/clock.h new file mode 100644 index 000000000..4e6560c91 --- /dev/null +++ b/include/clock.h @@ -0,0 +1,8 @@ +#ifndef GUARD_CLOCK_H +#define GUARD_CLOCK_H + +// TODO: time of day and seconds in a day defines + +void DoTimeBasedEvents(void); + +#endif diff --git a/include/coins.h b/include/coins.h index 43434b227..996519605 100644 --- a/include/coins.h +++ b/include/coins.h @@ -6,7 +6,7 @@ void ShowCoinsWindow(u32 coinAmount, u8 x, u8 y); void HideCoinsWindow(void); u16 GetCoins(void); void SetCoins(u16 coinAmount); -bool8 AddCoins(u16 toAdd); -bool8 SubtractCoins(u16 toSub); +bool8 GiveCoins(u16 toAdd); +bool8 TakeCoins(u16 toSub); #endif // GUARD_COINS_H diff --git a/include/contest_link_80F57C4.h b/include/contest_link_80F57C4.h new file mode 100644 index 000000000..98523c175 --- /dev/null +++ b/include/contest_link_80F57C4.h @@ -0,0 +1,8 @@ +#ifndef GUARD_CONTEST_LINK_80F57C4_H +#define GUARD_CONTEST_LINK_80F57C4_H + +void sub_80F840C(void); +void sub_80F8484(void); +void sub_80F84C4(u8); + +#endif // GUARD_CONTEST_LINK_80F57C4_H diff --git a/include/contest_painting.h b/include/contest_painting.h new file mode 100644 index 000000000..f8366a997 --- /dev/null +++ b/include/contest_painting.h @@ -0,0 +1,6 @@ +#ifndef GUARD_CONTESTPAINTING_H +#define GUARD_CONTESTPAINTING_H + +void sub_812FDA8(u32); + +#endif diff --git a/include/data2.h b/include/data2.h new file mode 100644 index 000000000..ccb9b4b7e --- /dev/null +++ b/include/data2.h @@ -0,0 +1,9 @@ +#ifndef GUARD_DATA2_H +#define GUARD_DATA2_H + +extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1]; +extern const u8 gMoveNames[][13]; +extern const u8 gAbilityNames[][13]; +extern const u8 gTypeNames[][7]; + +#endif // GUARD_DATA2_H diff --git a/include/decoration.h b/include/decoration.h new file mode 100644 index 000000000..f54f952e4 --- /dev/null +++ b/include/decoration.h @@ -0,0 +1,18 @@ +#ifndef GUARD_DECORATION_H +#define GUARD_DECORATION_H + +struct Decoration +{ + /*0x00*/ u8 id; + /*0x01*/ u8 name[16]; + /*0x11*/ u8 permission; + /*0x12*/ u8 shape; + /*0x13*/ u8 category; + /*0x14*/ u16 price; + /*0x18*/ const u8 *description; + /*0x1c*/ const u16 *tiles; +}; + +extern const struct Decoration gDecorations[]; + +#endif // GUARD_DECORATION_H diff --git a/include/decoration_inventory.h b/include/decoration_inventory.h new file mode 100644 index 000000000..5ca345933 --- /dev/null +++ b/include/decoration_inventory.h @@ -0,0 +1,10 @@ +#ifndef GUARD_DECORATION_INVENTORY_H +#define GUARD_DECORATION_INVENTORY_H + +void ClearDecorationInventories(void); +u8 CheckHasDecoration(u8); +u8 DecorationAdd(u8); +u8 DecorationCheckSpace(u8); +s8 DecorationRemove(u8); + +#endif // GUARD_DECORATION_INVENTORY_H diff --git a/include/event_data.h b/include/event_data.h index a2a501283..0bd11fdcd 100644 --- a/include/event_data.h +++ b/include/event_data.h @@ -27,7 +27,7 @@ bool8 VarSet(u16 id, u16 value); u8 VarGetFieldObjectGraphicsId(u8 id); u8 *GetFlagPointer(u16 id); u8 FlagSet(u16 id); -u8 FlagReset(u16 id); +u8 FlagClear(u16 id); bool8 FlagGet(u16 id); extern u16 gSpecialVar_0x8000; diff --git a/include/field_door.h b/include/field_door.h new file mode 100644 index 000000000..f1dfc551d --- /dev/null +++ b/include/field_door.h @@ -0,0 +1,11 @@ +#ifndef GUARD_FIELDDOOR_H +#define GUARD_FIELDDOOR_H + +void FieldSetDoorOpened(u32, u32); +void FieldSetDoorClosed(u32, u32); +s8 FieldAnimateDoorClose(u32, u32); +s8 FieldAnimateDoorOpen(u32, u32); +bool8 FieldIsDoorAnimationRunning(void); +u32 GetDoorSoundEffect(u32 x, u32 y); + +#endif diff --git a/include/field_effect.h b/include/field_effect.h index 7ec26b3d7..aa3f7eba0 100644 --- a/include/field_effect.h +++ b/include/field_effect.h @@ -1,7 +1,3 @@ -// -// Created by Scott Norton on 9/15/17. -// - #ifndef GUARD_FIELD_EFFECTS_H #define GUARD_FIELD_EFFECTS_H @@ -73,8 +69,9 @@ enum FieldEffectScriptIdx FLDEFF_USE_TELEPORT }; -extern u32 gFieldEffectSpawnParams[8]; - u8 FieldEffectStart(u8); +bool8 FieldEffectActiveListContains(u8 id); + +extern u32 gFieldEffectArguments[8]; #endif //GUARD_FIELD_EFFECTS_H diff --git a/include/field_fadetransition.h b/include/field_fadetransition.h new file mode 100644 index 000000000..7c2d16a24 --- /dev/null +++ b/include/field_fadetransition.h @@ -0,0 +1,12 @@ +#ifndef GUARD_FIELD_FADETRANSITION_H +#define GUARD_FIELD_FADETRANSITION_H + +void sub_80AF734(void); +void sp13E_warp_to_last_warp(void); +void sub_80AF7D0(void); +void sp13F_fall_to_last_warp(void); + +void sub_80AF848(void); +void sub_80AF87C(void); + +#endif // GUARD_FIELD_FADETRANSITION_H diff --git a/include/field_map_obj.h b/include/field_map_obj.h index 40cc64054..b18b6cfd3 100755 --- a/include/field_map_obj.h +++ b/include/field_map_obj.h @@ -33,6 +33,7 @@ u8 sub_808D4F4(void); void RemoveFieldObjectByLocalIdAndMap(u8, u8, u8); void npc_load_two_palettes__no_record(u16, u8); void npc_load_two_palettes__and_record(u16, u8); +void sub_808EBA8(u8, u8, u8, s16, s16); void pal_patch_for_npc(u16, u8); void sub_808E16C(s16, s16); void sub_8092FF0(s16, s16, s16 *, s16 *); @@ -63,6 +64,7 @@ void npc_coords_shift(struct MapObject *, s16, s16); void sub_808EB08(struct MapObject *, s16, s16); void sub_808F254(u8, u8, u8); void FieldObjectStep(struct MapObject *, struct Sprite *, bool8(struct MapObject *, struct Sprite *)); +u8 FieldObjectFaceOppositeDirection(struct MapObject *, u8); u8 GetOppositeDirection(u8); u8 GetStepInPlaceDelay4AnimId(u32); u8 GetStepInPlaceDelay8AnimId(u32); @@ -71,6 +73,7 @@ u8 GetStepInPlaceDelay32AnimId(u32); u8 npc_block_way(struct MapObject *, s16, s16, u32); void MoveCoords(u8, s16 *, s16 *); bool8 FieldObjectIsSpecialAnimActive(struct MapObject *); +u8 FieldObjectClearAnimIfSpecialAnimFinished(struct MapObject *); // Exported data declarations diff --git a/include/field_map_obj_helpers.h b/include/field_map_obj_helpers.h new file mode 100644 index 000000000..ba797ec98 --- /dev/null +++ b/include/field_map_obj_helpers.h @@ -0,0 +1,7 @@ +#ifndef GUARD_FIELDMAPOBJHELP_H +#define GUARD_FIELDMAPOBJHELP_H + +void UnfreezeMapObjects(void); +void sub_8097B78(u8, u8); + +#endif diff --git a/include/field_message_box.h b/include/field_message_box.h new file mode 100644 index 000000000..432c9078b --- /dev/null +++ b/include/field_message_box.h @@ -0,0 +1,10 @@ +#ifndef GUARD_FIELD_MESSAGE_BOX_H +#define GUARD_FIELD_MESSAGE_BOX_H + +bool8 ShowFieldMessage(const u8 *message); +bool8 sub_8098238(const u8 *message); +bool8 ShowFieldAutoScrollMessage(const u8 *message); +void HideFieldMessageBox(void); +bool8 IsFieldMessageBoxHidden(void); + +#endif // GUARD_FIELD_MESSAGE_BOX_H diff --git a/include/field_player_avatar.h b/include/field_player_avatar.h index a787cf805..5c16e9414 100644 --- a/include/field_player_avatar.h +++ b/include/field_player_avatar.h @@ -1,7 +1,3 @@ -// -// Created by Scott Norton on 9/6/17. -// - #ifndef GUARD_FIELD_PLAYER_AVATAR_H #define GUARD_FIELD_PLAYER_AVATAR_H @@ -14,4 +10,6 @@ u8 player_get_direction_lower_nybble(void); u8 player_get_direction_upper_nybble(void); u8 player_get_x22(void); +void sub_808D074(u8); + #endif //GUARD_FIELD_PLAYER_AVATAR_H diff --git a/include/field_screen_effect.h b/include/field_screen_effect.h new file mode 100644 index 000000000..ef81c2f9e --- /dev/null +++ b/include/field_screen_effect.h @@ -0,0 +1,8 @@ +#ifndef GUARD_FIELD_SCREEN_EFFECT_H +#define GUARD_FIELD_SCREEN_EFFECT_H + +void sub_80AF79C(void); +void sub_80B009C(u8); +void sub_80B0244(void); + +#endif // GUARD_FIELD_SCREEN_EFFECT_H diff --git a/include/field_specials.h b/include/field_specials.h new file mode 100644 index 000000000..1f8fbf147 --- /dev/null +++ b/include/field_specials.h @@ -0,0 +1,6 @@ +#ifndef GUARD_FIELD_SPECIALS_H +#define GUARD_FIELD_SPECIALS_H + +u8 GetLeadMonIndex(void); + +#endif // GUARD_FIELD_SPECIALS_H diff --git a/include/field_tasks.h b/include/field_tasks.h new file mode 100644 index 000000000..2a2a772d8 --- /dev/null +++ b/include/field_tasks.h @@ -0,0 +1,6 @@ +#ifndef GUARD_FIELD_TASKS_H +#define GUARD_FIELD_TASKS_H + +void ActivatePerStepCallback(u8); + +#endif // GUARD_FIELD_TASKS_H diff --git a/include/field_weather.h b/include/field_weather.h new file mode 100644 index 000000000..e12107e70 --- /dev/null +++ b/include/field_weather.h @@ -0,0 +1,12 @@ +#ifndef GUARD_WEATHER_H +#define GUARD_WEATHER_H + +void fade_screen(u8, s8); + +void SetSav1Weather(u32); +u8 GetSav1Weather(void); +void sub_80AEDBC(void); + +void DoCurrentWeather(void); + +#endif // GUARD_WEATHER_H diff --git a/include/fieldmap.h b/include/fieldmap.h index 7174d98cc..5d60d9f2c 100644 --- a/include/fieldmap.h +++ b/include/fieldmap.h @@ -1,16 +1,8 @@ -// -// Created by scott on 9/16/2017. -// - #ifndef GUARD_FIELDMAP_H #define GUARD_FIELDMAP_H -// Exported type declarations - -// Exported RAM declarations - -// Exported ROM declarations u8 MapGridGetMetatileBehaviorAt(s16, s16); +void MapGridSetMetatileIdAt(int, int, u16); void GetCameraCoords(u16*, u16*); bool8 MapGridIsImpassableAt(s16, s16); s32 GetMapBorderIdAt(s16, s16); diff --git a/include/item.h b/include/item.h index eaefa0298..431bd93d0 100644 --- a/include/item.h +++ b/include/item.h @@ -31,6 +31,7 @@ extern struct BagPocket gBagPockets[]; void GetBerryCountString(u8* dst, const u8* berryName, u32 quantity); void CopyItemName(u16 itemId, u8 *string); +void CopyItemNameHandlePlural(u16 itemId, u8 *string, u32 quantity); bool8 IsBagPocketNonEmpty(u8 pocket); bool8 CheckBagHasItem(u16 itemId, u16 count); bool8 CheckBagHasSpace(u16 itemId, u16 count); diff --git a/include/map_obj_lock.h b/include/map_obj_lock.h new file mode 100644 index 000000000..a10648f2f --- /dev/null +++ b/include/map_obj_lock.h @@ -0,0 +1,11 @@ +#ifndef GUARD_MAP_OBJ_LOCK_H +#define GUARD_MAP_OBJ_LOCK_H + +bool8 sub_80983C4(void); +void ScriptFreezeMapObjects(void); +bool8 sub_809847C(void); +void LockSelectedMapObject(void); +void sub_8098630(void); +bool8 sub_8098734(void); + +#endif // GUARD_MAP_OBJ_LOCK_H diff --git a/include/money.h b/include/money.h index 22a3657f6..5c7c1c984 100644 --- a/include/money.h +++ b/include/money.h @@ -5,7 +5,7 @@ u32 GetMoney(u32* moneyPtr); void SetMoney(u32* moneyPtr, u32 newValue); bool8 IsEnoughMoney(u32* moneyPtr, u32 cost); void AddMoney(u32* moneyPtr, u32 toAdd); -void SubtractMoney(u32* moneyPtr, u32 toSub); +void RemoveMoney(u32* moneyPtr, u32 toSub); bool8 IsEnoughForCostInVar0x8005(void); void SubtractMoneyFromVar0x8005(void); void PrintMoneyAmountInMoneyBox(u8 windowId, int amount, u8 speed); diff --git a/include/mystery_event_script.h b/include/mystery_event_script.h new file mode 100644 index 000000000..ab23a8d00 --- /dev/null +++ b/include/mystery_event_script.h @@ -0,0 +1,8 @@ +#ifndef GUARD_MYSTERY_EVENT_SCRIPT_H +#define GUARD_MYSTERY_EVENT_SCRIPT_H + +u32 RunMysteryEventScript(u8 *); +void SetMysteryEventScriptStatus(u32 val); +u16 GetRecordMixingGift(void); + +#endif // GUARD_MYSTERY_EVENT_SCRIPT_H diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h new file mode 100644 index 000000000..a597fc9a2 --- /dev/null +++ b/include/new_menu_helpers.h @@ -0,0 +1,8 @@ +#ifndef GUARD_NEW_MENU_HELPERS_H +#define GUARD_NEW_MENU_HELPERS_H + +void sub_81973A4(void); +void sub_81973C4(u8, u8); +void sub_819746C(u8 windowId, bool8 copyToVram); + +#endif // GUARD_NEW_MENU_HELPERS_H diff --git a/include/overworld.h b/include/overworld.h new file mode 100644 index 000000000..0475e8e8c --- /dev/null +++ b/include/overworld.h @@ -0,0 +1,58 @@ +#ifndef GUARD_ROM4_H +#define GUARD_ROM4_H + +struct UnkPlayerStruct +{ + u8 player_field_0; + u8 player_field_1; +}; + +struct LinkPlayerMapObject +{ + u8 active; + u8 linkPlayerId; + u8 mapObjId; + u8 mode; +}; + +struct UCoords32 +{ + u32 x, y; +}; + +extern struct LinkPlayerMapObject gLinkPlayerMapObjects[4]; + +void IncrementGameStat(u8 index); + +void Overworld_SetMapObjTemplateCoords(u8, s16, s16); +void Overworld_SetMapObjTemplateMovementType(u8, u8); + +void Overworld_SetWarpDestination(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); + +void saved_warp2_set_2(int unused, s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); +void Overworld_SetHealLocationWarp(u8); +void sub_8084DD4(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); +void sub_8084E2C(s8, s8, s8, s8, s8); +void sub_8084E80(s8, s8, s8, s8, s8); +void sub_8084EBC(s16, s16); + +void player_avatar_init_params_reset(void); + +void Overworld_SetFlashLevel(s32 a1); +//u8 Overworld_GetFlashLevel(void); +void sub_8085524(u16); + +void Overworld_SetSavedMusic(u16); +void Overworld_ChangeMusicToDefault(void); +void Overworld_ChangeMusicTo(u16); + +bool32 is_c1_link_related_active(void); + +void strange_npc_table_clear(void); +const struct MapHeader *get_mapheader_by_bank_and_number(u8, u8); +void FieldObjectMoveDestCoords(struct MapObject *, u32, s16 *, s16 *); +void sub_8086230(void); +void c2_exit_to_overworld_2_switch(void); +void c2_exit_to_overworld_1_continue_scripts_restart_music(void); + +#endif //GUARD_ROM4_H diff --git a/include/palette.h b/include/palette.h index de2cf0083..d3bcd2271 100644 --- a/include/palette.h +++ b/include/palette.h @@ -8,6 +8,9 @@ #define gPaletteFade_delay (gPaletteFade.multipurpose2) // normal and hardware fade #define gPaletteFade_submode (gPaletteFade.multipurpose2) // fast fade +#define PLTT_BUFFER_SIZE 0x200 +#define PLTT_DECOMP_BUFFER_SIZE (PLTT_BUFFER_SIZE * 2) + enum { FAST_FADE_IN_FROM_WHITE, diff --git a/include/party_menu.h b/include/party_menu.h new file mode 100644 index 000000000..175aba639 --- /dev/null +++ b/include/party_menu.h @@ -0,0 +1,6 @@ +#ifndef GUARD_PARTY_MENU_H +#define GUARD_PARTY_MENU_H + +bool8 pokemon_has_move(struct Pokemon *, u16); + +#endif // GUARD_PARTY_MENU_H diff --git a/include/pokemon_3.h b/include/pokemon_3.h new file mode 100644 index 000000000..5c9862d57 --- /dev/null +++ b/include/pokemon_3.h @@ -0,0 +1,7 @@ +#ifndef GUARD_POKEMON_3_H +#define GUARD_POKEMON_3_H + +const u8* GetTrainerClassNameFromId(u16 trainerId); +const u8* GetTrainerNameFromId(u16 trainerId); + +#endif // GUARD_POKEMON_3_H diff --git a/include/rom4.h b/include/rom4.h deleted file mode 100644 index e19d277a6..000000000 --- a/include/rom4.h +++ /dev/null @@ -1,33 +0,0 @@ - -#ifndef GUARD_ROM4_H -#define GUARD_ROM4_H - -struct UnkPlayerStruct -{ - u8 player_field_0; - u8 player_field_1; -}; - -struct LinkPlayerMapObject -{ - u8 active; - u8 linkPlayerId; - u8 mapObjId; - u8 mode; -}; - -struct UCoords32 -{ - u32 x, y; -}; - - -extern struct LinkPlayerMapObject gLinkPlayerMapObjects[4]; - -void strange_npc_table_clear(void); -const struct MapHeader *get_mapheader_by_bank_and_number(u8, u8); -void FieldObjectMoveDestCoords(struct MapObject *, u32, s16 *, s16 *); -void sub_8086230(void); -void c2_exit_to_overworld_2_switch(void); - -#endif //GUARD_ROM4_H diff --git a/include/script_menu.h b/include/script_menu.h new file mode 100644 index 000000000..f921a4348 --- /dev/null +++ b/include/script_menu.h @@ -0,0 +1,13 @@ +#ifndef GUARD_SCRIPTMENU_H +#define GUARD_SCRIPTMENU_H + +extern const u8 *const gUnknown_0858BAF0[]; + +bool8 ScriptMenu_Multichoice(u8 left, u8 top, u8 var3, u8 var4); +bool8 ScriptMenu_MultichoiceWithDefault(u8 left, u8 top, u8 var3, u8 var4, u8 var5); +bool8 ScriptMenu_YesNo(u8 var1, u8 var2); +bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, u8 a4, u8 columnCount); +bool8 ScriptMenu_ShowPokemonPic(u16 var1, u8 var2, u8 var3); +bool8 (*ScriptMenu_GetPicboxWaitFunc(void))(void); + +#endif diff --git a/include/script_movement.h b/include/script_movement.h new file mode 100644 index 000000000..8f505cc67 --- /dev/null +++ b/include/script_movement.h @@ -0,0 +1,8 @@ +#ifndef GUARD_SCRIPT_MOVEMENT_H +#define GUARD_SCRIPT_MOVEMENT_H + +bool8 ScriptMovement_StartObjectMovementScript(u8, u8, u8, u8 *); +bool8 ScriptMovement_IsObjectMovementFinished(u8, u8, u8); +void sub_80D338C(void); + +#endif // GUARD_SCRIPT_MOVEMENT_H diff --git a/include/script_pokemon_80F8.h b/include/script_pokemon_80F8.h new file mode 100644 index 000000000..8dd7ed0c0 --- /dev/null +++ b/include/script_pokemon_80F8.h @@ -0,0 +1,10 @@ +#ifndef GUARD_SCRIPTPOKE80F8_H +#define GUARD_SCRIPTPOKE80F8_H + +void ShowContestWinner(void); +u8 ScriptGiveMon(u16, u8, u16, u32, u32, u8); +u8 ScriptGiveEgg(u16); +void CreateScriptedWildMon(u16, u8, u16); +void ScriptSetMonMoveSlot(u8, u16, u8); + +#endif diff --git a/include/script_pokemon_81B9.h b/include/script_pokemon_81B9.h new file mode 100644 index 000000000..1b8563ee6 --- /dev/null +++ b/include/script_pokemon_81B9.h @@ -0,0 +1,6 @@ +#ifndef GUARD_SCRIPTPOKE81B9_H +#define GUARD_SCRIPTPOKE81B9_H + +void sub_81B9404(void); + +#endif diff --git a/include/shop.h b/include/shop.h new file mode 100644 index 000000000..d14c839ee --- /dev/null +++ b/include/shop.h @@ -0,0 +1,8 @@ +#ifndef GUARD_SHOP_H +#define GUARD_SHOP_H + +void CreatePokemartMenu(u16 *); +void CreateDecorationShop1Menu(u16 *); +void CreateDecorationShop2Menu(u16 *); + +#endif // GUARD_SHOP_H diff --git a/include/slot_machine.h b/include/slot_machine.h new file mode 100644 index 000000000..8334e56fc --- /dev/null +++ b/include/slot_machine.h @@ -0,0 +1,6 @@ +#ifndef GUARD_SLOT_MACHINE_H +#define GUARD_SLOT_MACHINE_H + +void PlaySlotMachine(u8, void *); + +#endif // GUARD_SLOT_MACHINE_H diff --git a/include/text.h b/include/text.h index c09b41ad3..c3b27f7f1 100644 --- a/include/text.h +++ b/include/text.h @@ -170,6 +170,7 @@ typedef struct { u8 flag_0:1; u8 flag_1:1; u8 flag_2:1; + u8 flag_3:1; } TextFlags; extern TextFlags gTextFlags; diff --git a/include/trainer_see.h b/include/trainer_see.h index 3f39783b8..ab035d9f8 100644 --- a/include/trainer_see.h +++ b/include/trainer_see.h @@ -2,6 +2,7 @@ #define GUARD_TRAINER_SEE_H void sub_80B4578(struct MapObject *); +u8 sub_80B47BC(void); void sub_8155D78(struct MapObject *); #endif //GUARD_TRAINER_SEE_H diff --git a/include/tv.h b/include/tv.h new file mode 100644 index 000000000..ccd8e0050 --- /dev/null +++ b/include/tv.h @@ -0,0 +1,7 @@ +#ifndef GUARD_TV_H +#define GUARD_TV_H + +bool8 GetPriceReduction(u8); +size_t sub_80EF370(int); + +#endif // GUARD_TV_H diff --git a/ld_script.txt b/ld_script.txt index 3e47864f1..d1b3bfd48 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -101,7 +101,7 @@ SECTIONS { asm/map_obj_lock.o(.text); src/text_window.o(.text); src/script.o(.text); - asm/scrcmd.o(.text); + src/scrcmd.o(.text); asm/field_control_avatar.o(.text); src/event_data.o(.text); asm/coord_event_weather.o(.text); @@ -354,7 +354,7 @@ SECTIONS { data/field_ground_effect.o(.rodata); data/map_obj_8097404.o(.rodata); data/text_window.o(.rodata); - data/scrcmd.o(.rodata); + src/scrcmd.o(.rodata); data/coord_event_weather.o(.rodata); data/field_tasks.o(.rodata); data/reset_rtc_screen.o(.rodata); diff --git a/src/braille_puzzles.c b/src/braille_puzzles.c index 83d32b56c..9a6f0371c 100755 --- a/src/braille_puzzles.c +++ b/src/braille_puzzles.c @@ -220,7 +220,7 @@ bool8 ShouldDoBrailleStrengthEffect(void) void sub_8179834(void) { - gFieldEffectSpawnParams[0] = brm_get_pokemon_selection(); + gFieldEffectArguments[0] = brm_get_pokemon_selection(); FieldEffectStart(FLDEFF_USE_FLY_ANCIENT_TOMB); } @@ -256,7 +256,7 @@ bool8 ShouldDoBrailleFlyEffect(void) void sub_8179918(void) { - gFieldEffectSpawnParams[0] = brm_get_pokemon_selection(); + gFieldEffectArguments[0] = brm_get_pokemon_selection(); FieldEffectStart(FLDEFF_USE_FLY_ANCIENT_TOMB); } @@ -417,7 +417,7 @@ bool8 ShouldDoBrailleRegicePuzzle(void) } // TODO: Find what flags 2 and 3 are. FlagSet(3); - FlagReset(2); + FlagClear(2); return FALSE; } #else @@ -568,7 +568,7 @@ _08179B44:\n\ movs r0, 0x3\n\ bl FlagSet\n\ movs r0, 0x2\n\ - bl FlagReset\n\ + bl FlagClear\n\ _08179B5A:\n\ movs r0, 0\n\ _08179B5C:\n\ diff --git a/src/coins.c b/src/coins.c index 4ee601b22..e651bc6ca 100644 --- a/src/coins.c +++ b/src/coins.c @@ -54,7 +54,7 @@ void SetCoins(u16 coinAmount) } /* Can't match it lol -bool8 AddCoins(u16 toAdd) +bool8 GiveCoins(u16 toAdd) { u16 newAmount; u16 ownedCoins = GetCoins(); diff --git a/src/event_data.c b/src/event_data.c index fb2edb063..19a310db5 100644 --- a/src/event_data.c +++ b/src/event_data.c @@ -40,11 +40,11 @@ void ClearTempFieldEventData(void) { memset(gSaveBlock1Ptr->flags, 0, TEMP_FLAGS_SIZE); memset(gSaveBlock1Ptr->vars, 0, TEMP_VARS_SIZE); - FlagReset(SYS_ENC_UP_ITEM); - FlagReset(SYS_ENC_DOWN_ITEM); - FlagReset(SYS_USE_STRENGTH); - FlagReset(SYS_CTRL_OBJ_DELETE); - FlagReset(SYS_UNKNOWN_880); + FlagClear(SYS_ENC_UP_ITEM); + FlagClear(SYS_ENC_DOWN_ITEM); + FlagClear(SYS_USE_STRENGTH); + FlagClear(SYS_CTRL_OBJ_DELETE); + FlagClear(SYS_UNKNOWN_880); } // probably had different flag splits at one point. @@ -58,7 +58,7 @@ void DisableNationalPokedex(void) u16 *nationalDexVar = GetVarPointer(VAR_NATIONAL_DEX); gSaveBlock2Ptr->pokedex.nationalMagic = 0; *nationalDexVar = 0; - FlagReset(SYS_NATIONAL_DEX); + FlagClear(SYS_NATIONAL_DEX); } void EnableNationalPokedex(void) @@ -82,7 +82,7 @@ bool32 IsNationalPokedexEnabled(void) void DisableMysteryEvent(void) { - FlagReset(SYS_MYSTERY_EVENT_ENABLE); + FlagClear(SYS_MYSTERY_EVENT_ENABLE); } void EnableMysteryEvent(void) @@ -97,7 +97,7 @@ bool32 IsMysteryEventEnabled(void) void DisableMysteryGift(void) { - FlagReset(SYS_MYSTERY_GIFT_ENABLE); + FlagClear(SYS_MYSTERY_GIFT_ENABLE); } void EnableMysteryGift(void) @@ -112,22 +112,22 @@ bool32 IsMysteryGiftEnabled(void) void sub_809D4D8(void) { - FlagReset(0x1E4); - FlagReset(0x1E5); - FlagReset(0x1E6); - FlagReset(0x1E7); - FlagReset(0x1E8); - FlagReset(0x1E9); - FlagReset(0x1EA); - FlagReset(0x1EB); - FlagReset(0x1EC); - FlagReset(0x1ED); - FlagReset(0x1EE); - FlagReset(0x1EF); - FlagReset(0x1F0); - FlagReset(0x1F1); - FlagReset(0x1F2); - FlagReset(0x1F3); + FlagClear(0x1E4); + FlagClear(0x1E5); + FlagClear(0x1E6); + FlagClear(0x1E7); + FlagClear(0x1E8); + FlagClear(0x1E9); + FlagClear(0x1EA); + FlagClear(0x1EB); + FlagClear(0x1EC); + FlagClear(0x1ED); + FlagClear(0x1EE); + FlagClear(0x1EF); + FlagClear(0x1F0); + FlagClear(0x1F1); + FlagClear(0x1F2); + FlagClear(0x1F3); } void sub_809D570(void) @@ -145,7 +145,7 @@ void sub_809D570(void) void DisableResetRTC(void) { VarSet(VAR_RESET_RTC_ENABLE, 0); - FlagReset(SYS_RESET_RTC_ENABLE); + FlagClear(SYS_RESET_RTC_ENABLE); } void EnableResetRTC(void) @@ -214,7 +214,7 @@ u8 FlagSet(u16 id) return 0; } -u8 FlagReset(u16 id) +u8 FlagClear(u16 id) { u8 *ptr = GetFlagPointer(id); if (ptr) diff --git a/src/field_map_obj.c b/src/field_map_obj.c index e80e402c8..e822fc1ca 100755 --- a/src/field_map_obj.c +++ b/src/field_map_obj.c @@ -3,7 +3,7 @@ #include "global.h" #include "malloc.h" #include "sprite.h" -#include "rom4.h" +#include "overworld.h" #include "rng.h" #include "event_scripts.h" #include "berry.h" @@ -2386,10 +2386,10 @@ bool8 do_berry_tree_growth_sparkle_1 (struct MapObject *mapObject, struct Sprite { if (!(sprite->data7 & 0x0004) && sprite->animNum == 4) { - gFieldEffectSpawnParams[0] = mapObject->coords2.x; - gFieldEffectSpawnParams[1] = mapObject->coords2.y; - gFieldEffectSpawnParams[2] = sprite->subpriority - 1; - gFieldEffectSpawnParams[3] = sprite->oam.priority; + gFieldEffectArguments[0] = mapObject->coords2.x; + gFieldEffectArguments[1] = mapObject->coords2.y; + gFieldEffectArguments[2] = sprite->subpriority - 1; + gFieldEffectArguments[3] = sprite->oam.priority; FieldEffectStart(FLDEFF_BERRY_TREE_GROWTH_SPARKLE); sprite->animNum = berryStage; } @@ -2425,10 +2425,10 @@ bool8 do_berry_tree_growth_sparkle_2 (struct MapObject *mapObject, struct Sprite sprite->data1 = 3; sprite->data2 = 0; sprite->data7 |= 0x0002; - gFieldEffectSpawnParams[0] = mapObject->coords2.x; - gFieldEffectSpawnParams[1] = mapObject->coords2.y; - gFieldEffectSpawnParams[2] = sprite->subpriority - 1; - gFieldEffectSpawnParams[3] = sprite->oam.priority; + gFieldEffectArguments[0] = mapObject->coords2.x; + gFieldEffectArguments[1] = mapObject->coords2.y; + gFieldEffectArguments[2] = sprite->subpriority - 1; + gFieldEffectArguments[3] = sprite->oam.priority; FieldEffectStart(FLDEFF_BERRY_TREE_GROWTH_SPARKLE); return TRUE; } @@ -3425,7 +3425,7 @@ void FieldObjectCB_TreeDisguise(struct Sprite *sprite) mapObject = &gMapObjects[sprite->data0]; if (mapObject->mapobj_unk_21 == 0 || (mapObject->mapobj_unk_21 == 1 && !sprite->data7)) { - FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectSpawnParams[0], (u8 *)&gFieldEffectSpawnParams[1], (u8 *)&gFieldEffectSpawnParams[2]); + 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 ++; @@ -3446,7 +3446,7 @@ void FieldObjectCB_MountainDisguise(struct Sprite *sprite) mapObject = &gMapObjects[sprite->data0]; if (mapObject->mapobj_unk_21 == 0 || (mapObject->mapobj_unk_21 == 1 && !sprite->data7)) { - FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectSpawnParams[0], (u8 *)&gFieldEffectSpawnParams[1], (u8 *)&gFieldEffectSpawnParams[2]); + 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 ++; @@ -4693,7 +4693,7 @@ bool8 sub_80954CC(struct MapObject *mapObject, struct Sprite *sprite) bool8 do_exclamation_mark_bubble_1(struct MapObject *mapObject, struct Sprite *sprite) { - FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectSpawnParams[0], (u8 *)&gFieldEffectSpawnParams[1], (u8 *)&gFieldEffectSpawnParams[2]); + FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]); FieldEffectStart(FLDEFF_EXCLAMATION_MARK_ICON_1); sprite->data2 = 1; return TRUE; @@ -4701,7 +4701,7 @@ bool8 do_exclamation_mark_bubble_1(struct MapObject *mapObject, struct Sprite *s bool8 do_exclamation_mark_bubble_2(struct MapObject *mapObject, struct Sprite *sprite) { - FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectSpawnParams[0], (u8 *)&gFieldEffectSpawnParams[1], (u8 *)&gFieldEffectSpawnParams[2]); + FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]); FieldEffectStart(FLDEFF_EXCLAMATION_MARK_ICON_2); sprite->data2 = 1; return TRUE; @@ -4709,7 +4709,7 @@ bool8 do_exclamation_mark_bubble_2(struct MapObject *mapObject, struct Sprite *s bool8 do_heart_bubble(struct MapObject *mapObject, struct Sprite *sprite) { - FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectSpawnParams[0], (u8 *)&gFieldEffectSpawnParams[1], (u8 *)&gFieldEffectSpawnParams[2]); + FieldObjectGetLocalIdAndMap(mapObject, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]); FieldEffectStart(FLDEFF_HEART_ICON); sprite->data2 = 1; return TRUE; diff --git a/src/field_special_scene.c b/src/field_special_scene.c index 9c35a33da..54c1d8144 100755 --- a/src/field_special_scene.c +++ b/src/field_special_scene.c @@ -13,10 +13,10 @@ #define SECONDS(value) ((signed) (60.0 * value + 0.5)) extern u8 GetSSTidalLocation(s8 *, s8 *, s16 *, s16 *); // should be in field_specials.h -extern void warp1_set(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); -extern bool8 sub_80D3340(u8, u8, u8); +extern void Overworld_SetWarpDestination(s8 mapGroup, s8 mapNum, s8 warpId, s8 x, s8 y); +extern bool8 ScriptMovement_IsObjectMovementFinished(u8, u8, u8); extern bool32 CountSSTidalStep(u16); -extern bool8 exec_movement(u8, u8, u8, u8 *); +extern bool8 ScriptMovement_StartObjectMovementScript(u8, u8, u8, u8 *); extern void copy_saved_warp2_bank_and_enter_x_to_warp1(u8 unused); extern void sp13E_warp_to_last_warp(void); extern void saved_warp2_set(int unused, s8 mapGroup, s8 mapNum, s8 warpId); @@ -264,7 +264,7 @@ bool8 sub_80FB59C(void) } else { - warp1_set(mapGroup, mapNum, -1, x, y); + Overworld_SetWarpDestination(mapGroup, mapNum, -1, x, y); return TRUE; } } @@ -287,7 +287,7 @@ void Task_HandlePorthole(u8 taskId) case IDLE_CHECK: // idle and move. if (gMain.newKeys & A_BUTTON) data[1] = 1; - if (!sub_80D3340(0xFF, location->mapNum, location->mapGroup)) + if (!ScriptMovement_IsObjectMovementFinished(0xFF, location->mapNum, location->mapGroup)) return; if (CountSSTidalStep(1) == TRUE) { @@ -308,18 +308,18 @@ void Task_HandlePorthole(u8 taskId) // run this once. if (*var == 2) // which direction? { - exec_movement(0xFF, location->mapNum, location->mapGroup, gUnknown_0858E8AB); + ScriptMovement_StartObjectMovementScript(0xFF, location->mapNum, location->mapGroup, gUnknown_0858E8AB); data[0] = IDLE_CHECK; // run case 1. } else { - exec_movement(0xFF, location->mapNum, location->mapGroup, gUnknown_0858E8AD); + ScriptMovement_StartObjectMovementScript(0xFF, location->mapNum, location->mapGroup, gUnknown_0858E8AD); data[0] = IDLE_CHECK; // run case 1. } break; case EXIT_PORTHOLE: // exit porthole. - FlagReset(0x4001); - FlagReset(0x4000); + FlagClear(0x4001); + FlagClear(0x4000); copy_saved_warp2_bank_and_enter_x_to_warp1(0); sp13E_warp_to_last_warp(); DestroyTask(taskId); diff --git a/src/lilycove_lady.c b/src/lilycove_lady.c index 9f38824f9..3b7ae49f2 100644 --- a/src/lilycove_lady.c +++ b/src/lilycove_lady.c @@ -4,7 +4,7 @@ #include "global.h" #include "main.h" -#include "rom4.h" +#include "overworld.h" #include "rom6.h" #include "event_data.h" #include "script.h" diff --git a/src/money.c b/src/money.c index 65a45b158..98f25a42a 100644 --- a/src/money.c +++ b/src/money.c @@ -110,7 +110,7 @@ void AddMoney(u32* moneyPtr, u32 toAdd) SetMoney(moneyPtr, toSet); } -void SubtractMoney(u32* moneyPtr, u32 toSub) +void RemoveMoney(u32* moneyPtr, u32 toSub) { u32 toSet = GetMoney(moneyPtr); @@ -130,7 +130,7 @@ bool8 IsEnoughForCostInVar0x8005(void) void SubtractMoneyFromVar0x8005(void) { - SubtractMoney(&gSaveBlock1Ptr->money, gSpecialVar_0x8005); + RemoveMoney(&gSaveBlock1Ptr->money, gSpecialVar_0x8005); } void PrintMoneyAmountInMoneyBox(u8 windowId, int amount, u8 speed) diff --git a/src/new_game.c b/src/new_game.c index 5a482c593..53219ae97 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -28,7 +28,7 @@ extern u8 gUnknown_030060B0; // TODO: replace those declarations with file headers extern u16 GetGeneratedTrainerIdLower(void); extern void ClearContestWinnerPicsInContestHall(void); -extern void warp1_set(s8 mapBank, s8 mapNo, s8 warpNo, s8 xPos, s8 yPos); +extern void Overworld_SetWarpDestination(s8 mapBank, s8 mapNo, s8 warpNo, s8 xPos, s8 yPos); extern void warp_in(void); extern void sub_80BB358(void); extern void ResetBagScrollPositions(void); @@ -131,7 +131,7 @@ void sub_8084400(void) void WarpToTruck(void) { - warp1_set(25, 40, -1, -1, -1); // inside of truck + Overworld_SetWarpDestination(25, 40, -1, -1, -1); // inside of truck warp_in(); } diff --git a/src/palette.c b/src/palette.c index d60efdbc5..d4bb593da 100644 --- a/src/palette.c +++ b/src/palette.c @@ -53,13 +53,13 @@ static void UpdateBlendRegisters(void); static bool8 IsSoftwarePaletteFadeFinishing(void); static void sub_80A2D54(u8 taskId); -EWRAM_DATA u16 gPlttBufferUnfaded[0x200] = {0}; -EWRAM_DATA u16 gPlttBufferFaded[0x200] = {0}; +EWRAM_DATA u16 gPlttBufferUnfaded[PLTT_BUFFER_SIZE] = {0}; +EWRAM_DATA u16 gPlttBufferFaded[PLTT_BUFFER_SIZE] = {0}; EWRAM_DATA struct PaletteStruct sPaletteStructs[0x10] = {0}; EWRAM_DATA struct PaletteFadeControl gPaletteFade = {0}; static EWRAM_DATA u32 gFiller_2037FE0 = 0; static EWRAM_DATA u32 sPlttBufferTransferPending = 0; -EWRAM_DATA u8 gPaletteDecompressionBuffer[0x400] = {0}; +EWRAM_DATA u8 gPaletteDecompressionBuffer[PLTT_DECOMP_BUFFER_SIZE] = {0}; static const struct PaletteStructTemplate gDummyPaletteStructTemplate = { .uid = 0xFFFF, diff --git a/src/pokemon_2.c b/src/pokemon_2.c index ee54f0e4d..27441f952 100644 --- a/src/pokemon_2.c +++ b/src/pokemon_2.c @@ -1089,7 +1089,7 @@ u8 SendMonToPC(struct Pokemon* mon) gSpecialVar_0x8012 = boxNo; gSpecialVar_0x8013 = boxPos; if (get_unknown_box_id() != boxNo) - FlagReset(SYS_STORAGE_UNKNOWN_FLAG); + FlagClear(SYS_STORAGE_UNKNOWN_FLAG); VarSet(VAR_STORAGE_UNKNOWN, boxNo); return MON_GIVEN_TO_PC; } diff --git a/src/reset_save_heap.c b/src/reset_save_heap.c index b786ff9f8..d4dbc5f42 100644 --- a/src/reset_save_heap.c +++ b/src/reset_save_heap.c @@ -5,7 +5,7 @@ #include "load_save.h" #include "save.h" #include "new_game.h" -#include "rom4.h" +#include "overworld.h" #include "malloc.h" void sub_81700F8(void) diff --git a/src/safari_zone.c b/src/safari_zone.c index 3e25468bf..2125b092d 100644 --- a/src/safari_zone.c +++ b/src/safari_zone.c @@ -60,7 +60,7 @@ void SetSafariZoneFlag(void) void ResetSafariZoneFlag(void) { - FlagReset(SYS_SAFARI_MODE); + FlagClear(SYS_SAFARI_MODE); } void EnterSafariMode(void) diff --git a/src/scrcmd.c b/src/scrcmd.c index b56a53caf..f2c11e4b0 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -1,15 +1,2439 @@ - -// Includes #include "global.h" +#include "battle_frontier_2.h" +#include "battle_setup.h" +#include "berry.h" +#include "clock.h" +#include "coins.h" +#include "contest_link_80F57C4.h" +#include "contest_painting.h" +#include "data2.h" +#include "decoration.h" +#include "decoration_inventory.h" +#include "event_data.h" +#include "field_door.h" +#include "field_effect.h" +#include "field_fadetransition.h" +#include "field_map_obj.h" +#include "field_map_obj_helpers.h" +#include "field_message_box.h" +#include "field_player_avatar.h" +#include "field_screen_effect.h" +#include "field_specials.h" +#include "field_tasks.h" +#include "field_weather.h" +#include "fieldmap.h" +#include "item.h" +#include "lilycove_lady.h" +#include "main.h" +#include "map_obj_lock.h" +#include "money.h" +#include "mystery_event_script.h" +#include "new_menu_helpers.h" +#include "palette.h" +#include "party_menu.h" +#include "pokemon_3.h" +#include "pokemon_storage_system.h" +#include "rng.h" +#include "overworld.h" +#include "rtc.h" +#include "script.h" +#include "script_menu.h" +#include "script_movement.h" +#include "script_pokemon_80F8.h" +#include "script_pokemon_81B9.h" +#include "shop.h" +#include "slot_machine.h" +#include "sound.h" +#include "string_util.h" +#include "text.h" +#include "trainer_see.h" +#include "tv.h" +#include "window.h" + +typedef u16 (*SpecialFunc)(void); +typedef void (*NativeFunc)(void); + +extern u32 gUnknown_020375C0; + +static EWRAM_DATA u32 gUnknown_020375C4 = 0; +static EWRAM_DATA u16 sPauseCounter = 0; +static EWRAM_DATA u16 sMovingNpcId = 0; +static EWRAM_DATA u16 sMovingNpcMapBank = 0; +static EWRAM_DATA u16 sMovingNpcMapId = 0; +static EWRAM_DATA u16 sFieldEffectScriptId = 0; -// Static type declarations +extern u16 gSpecialVar_0x8000; +extern u16 gSpecialVar_0x8001; +extern u16 gSpecialVar_0x8002; +extern u16 gSpecialVar_0x8004; -// Static RAM declarations +extern u16 gScriptResult; + +extern u16 gScriptContestCategory; IWRAM_DATA u8 gUnknown_03000F30; -// Static ROM declarations +extern SpecialFunc gSpecials[]; +extern u8 *gStdScripts[]; +extern u8 *gStdScripts_End[]; + +void sub_809BDB4(void); + +// This is defined in here so the optimizer can't see its value when compiling +// script.c. +void * const gNullScriptPtr = NULL; + +static const u8 sScriptConditionTable[6][3] = +{ +// < = > + 1, 0, 0, // < + 0, 1, 0, // = + 0, 0, 1, // > + 1, 1, 0, // <= + 0, 1, 1, // >= + 1, 0, 1, // != +}; + +static u8 * const sScriptStringVars[] = +{ + gStringVar1, + gStringVar2, + gStringVar3, +}; + +bool8 ScrCmd_nop(struct ScriptContext *ctx) +{ + return FALSE; +} + +bool8 ScrCmd_nop1(struct ScriptContext *ctx) +{ + return FALSE; +} + +bool8 ScrCmd_end(struct ScriptContext *ctx) +{ + StopScript(ctx); + return FALSE; +} + +bool8 ScrCmd_gotonative(struct ScriptContext *ctx) +{ + bool8 (*addr)(void) = (bool8 (*)(void))ScriptReadWord(ctx); + + SetupNativeScript(ctx, addr); + return TRUE; +} + +bool8 ScrCmd_special(struct ScriptContext *ctx) +{ + u16 index = ScriptReadHalfword(ctx); + + gSpecials[index](); + return FALSE; +} + +bool8 ScrCmd_specialvar(struct ScriptContext *ctx) +{ + u16 *var = GetVarPointer(ScriptReadHalfword(ctx)); + + *var = gSpecials[ScriptReadHalfword(ctx)](); + return FALSE; +} + +bool8 ScrCmd_callnative(struct ScriptContext *ctx) +{ + NativeFunc func = (NativeFunc)ScriptReadWord(ctx); + + func(); + return FALSE; +} + +bool8 ScrCmd_waitstate(struct ScriptContext *ctx) +{ + ScriptContext1_Stop(); + return TRUE; +} + +bool8 ScrCmd_goto(struct ScriptContext *ctx) +{ + u8 *ptr = (u8 *)ScriptReadWord(ctx); + + ScriptJump(ctx, ptr); + return FALSE; +} + +bool8 ScrCmd_return(struct ScriptContext *ctx) +{ + ScriptReturn(ctx); + return FALSE; +} + +bool8 ScrCmd_call(struct ScriptContext *ctx) +{ + u8 *ptr = (u8 *)ScriptReadWord(ctx); + + ScriptCall(ctx, ptr); + return FALSE; +} + +bool8 ScrCmd_goto_if(struct ScriptContext *ctx) +{ + u8 condition = ScriptReadByte(ctx); + u8 *ptr = (u8 *)ScriptReadWord(ctx); + + if (sScriptConditionTable[condition][ctx->comparisonResult] == 1) + ScriptJump(ctx, ptr); + return FALSE; +} + +bool8 ScrCmd_call_if(struct ScriptContext *ctx) +{ + u8 condition = ScriptReadByte(ctx); + u8 *ptr = (u8 *)ScriptReadWord(ctx); + + if (sScriptConditionTable[condition][ctx->comparisonResult] == 1) + ScriptCall(ctx, ptr); + return FALSE; +} + +bool8 ScrCmd_setvaddress(struct ScriptContext *ctx) +{ + u32 addr1 = (u32)ctx->scriptPtr - 1; + u32 addr2 = ScriptReadWord(ctx); + + gUnknown_020375C4 = addr2 - addr1; + return FALSE; +} + +bool8 ScrCmd_vgoto(struct ScriptContext *ctx) +{ + u32 addr = ScriptReadWord(ctx); + + ScriptJump(ctx, (u8 *)(addr - gUnknown_020375C4)); + return FALSE; +} + +bool8 ScrCmd_vcall(struct ScriptContext *ctx) +{ + u32 addr = ScriptReadWord(ctx); + + ScriptCall(ctx, (u8 *)(addr - gUnknown_020375C4)); + return FALSE; +} + +bool8 ScrCmd_vgoto_if(struct ScriptContext *ctx) +{ + u8 condition = ScriptReadByte(ctx); + u8 *ptr = (u8 *)(ScriptReadWord(ctx) - gUnknown_020375C4); + + if (sScriptConditionTable[condition][ctx->comparisonResult] == 1) + ScriptJump(ctx, ptr); + return FALSE; +} + +bool8 ScrCmd_vcall_if(struct ScriptContext *ctx) +{ + u8 condition = ScriptReadByte(ctx); + u8 *ptr = (u8 *)(ScriptReadWord(ctx) - gUnknown_020375C4); + + if (sScriptConditionTable[condition][ctx->comparisonResult] == 1) + ScriptCall(ctx, ptr); + return FALSE; +} + +bool8 ScrCmd_gotostd(struct ScriptContext *ctx) +{ + u8 index = ScriptReadByte(ctx); + u8 **ptr = &gStdScripts[index]; + + if (ptr < gStdScripts_End) + ScriptJump(ctx, *ptr); + return FALSE; +} + +bool8 ScrCmd_callstd(struct ScriptContext *ctx) +{ + u8 index = ScriptReadByte(ctx); + u8 **ptr = &gStdScripts[index]; + + if (ptr < gStdScripts_End) + ScriptCall(ctx, *ptr); + return FALSE; +} + +bool8 ScrCmd_gotostd_if(struct ScriptContext *ctx) +{ + u8 condition = ScriptReadByte(ctx); + u8 index = ScriptReadByte(ctx); + + if (sScriptConditionTable[condition][ctx->comparisonResult] == 1) + { + u8 **ptr = &gStdScripts[index]; + if (ptr < gStdScripts_End) + ScriptJump(ctx, *ptr); + } + return FALSE; +} + +bool8 ScrCmd_callstd_if(struct ScriptContext *ctx) +{ + u8 condition = ScriptReadByte(ctx); + u8 index = ScriptReadByte(ctx); + + if (sScriptConditionTable[condition][ctx->comparisonResult] == 1) + { + u8 **ptr = &gStdScripts[index]; + if (ptr < gStdScripts_End) + ScriptCall(ctx, *ptr); + } + return FALSE; +} + +bool8 ScrCmd_gotoram(struct ScriptContext *ctx) +{ + ScriptJump(ctx, (u8 *)gUnknown_020375C0); + return FALSE; +} + +bool8 ScrCmd_killscript(struct ScriptContext *ctx) +{ + ClearRamScript(); + StopScript(ctx); + return TRUE; +} + +bool8 ScrCmd_setmysteryeventstatus(struct ScriptContext *ctx) +{ + u8 value = ScriptReadByte(ctx); + + SetMysteryEventScriptStatus(value); + return FALSE; +} + +bool8 ScrCmd_loadword(struct ScriptContext *ctx) +{ + u8 index = ScriptReadByte(ctx); + + ctx->data[index] = ScriptReadWord(ctx); + return FALSE; +} + +bool8 ScrCmd_loadbytefromaddr(struct ScriptContext *ctx) +{ + u8 index = ScriptReadByte(ctx); + + ctx->data[index] = *(u8 *)ScriptReadWord(ctx); + return FALSE; +} + +bool8 ScrCmd_writebytetoaddr(struct ScriptContext *ctx) +{ + u8 value = ScriptReadByte(ctx); + + *(u8 *)ScriptReadWord(ctx) = value; + return FALSE; +} + +bool8 ScrCmd_loadbyte(struct ScriptContext *ctx) +{ + u8 index = ScriptReadByte(ctx); + + ctx->data[index] = ScriptReadByte(ctx); + return FALSE; +} + +bool8 ScrCmd_setptrbyte(struct ScriptContext *ctx) +{ + u8 index = ScriptReadByte(ctx); + + *(u8 *)ScriptReadWord(ctx) = ctx->data[index]; + return FALSE; +} + +bool8 ScrCmd_copylocal(struct ScriptContext *ctx) +{ + u8 destIndex = ScriptReadByte(ctx); + u8 srcIndex = ScriptReadByte(ctx); + + ctx->data[destIndex] = ctx->data[srcIndex]; + return FALSE; +} + +bool8 ScrCmd_copybyte(struct ScriptContext *ctx) +{ + u8 *ptr = (u8 *)ScriptReadWord(ctx); + *ptr = *(u8 *)ScriptReadWord(ctx); + return FALSE; +} + +bool8 ScrCmd_setvar(struct ScriptContext *ctx) +{ + u16 *ptr = GetVarPointer(ScriptReadHalfword(ctx)); + *ptr = ScriptReadHalfword(ctx); + return FALSE; +} + +bool8 ScrCmd_copyvar(struct ScriptContext *ctx) +{ + u16 *ptr = GetVarPointer(ScriptReadHalfword(ctx)); + *ptr = *GetVarPointer(ScriptReadHalfword(ctx)); + return FALSE; +} + +bool8 ScrCmd_setorcopyvar(struct ScriptContext *ctx) +{ + u16 *ptr = GetVarPointer(ScriptReadHalfword(ctx)); + *ptr = VarGet(ScriptReadHalfword(ctx)); + return FALSE; +} + +u8 compare_012(u16 a1, u16 a2) +{ + if (a1 < a2) + return 0; + if (a1 == a2) + return 1; + return 2; +} + +// comparelocaltolocal +bool8 ScrCmd_compare_local_to_local(struct ScriptContext *ctx) +{ + u8 value1 = ctx->data[ScriptReadByte(ctx)]; + u8 value2 = ctx->data[ScriptReadByte(ctx)]; + + ctx->comparisonResult = compare_012(value1, value2); + return FALSE; +} + +// comparelocaltoimm +bool8 ScrCmd_compare_local_to_value(struct ScriptContext *ctx) +{ + u8 value1 = ctx->data[ScriptReadByte(ctx)]; + u8 value2 = ScriptReadByte(ctx); + + ctx->comparisonResult = compare_012(value1, value2); + return FALSE; +} + +bool8 ScrCmd_compare_local_to_addr(struct ScriptContext *ctx) +{ + u8 value1 = ctx->data[ScriptReadByte(ctx)]; + u8 value2 = *(u8 *)ScriptReadWord(ctx); + + ctx->comparisonResult = compare_012(value1, value2); + return FALSE; +} + +bool8 ScrCmd_compare_addr_to_local(struct ScriptContext *ctx) +{ + u8 value1 = *(u8 *)ScriptReadWord(ctx); + u8 value2 = ctx->data[ScriptReadByte(ctx)]; + + ctx->comparisonResult = compare_012(value1, value2); + return FALSE; +} + +bool8 ScrCmd_compare_addr_to_value(struct ScriptContext *ctx) +{ + u8 value1 = *(u8 *)ScriptReadWord(ctx); + u8 value2 = ScriptReadByte(ctx); + + ctx->comparisonResult = compare_012(value1, value2); + return FALSE; +} + +bool8 ScrCmd_compare_addr_to_addr(struct ScriptContext *ctx) +{ + u8 value1 = *(u8 *)ScriptReadWord(ctx); + u8 value2 = *(u8 *)ScriptReadWord(ctx); + + ctx->comparisonResult = compare_012(value1, value2); + return FALSE; +} + +bool8 ScrCmd_compare_var_to_value(struct ScriptContext *ctx) +{ + u16 value1 = *GetVarPointer(ScriptReadHalfword(ctx)); + u16 value2 = ScriptReadHalfword(ctx); + + ctx->comparisonResult = compare_012(value1, value2); + return FALSE; +} + +bool8 ScrCmd_compare_var_to_var(struct ScriptContext *ctx) +{ + u16 *ptr1 = GetVarPointer(ScriptReadHalfword(ctx)); + u16 *ptr2 = GetVarPointer(ScriptReadHalfword(ctx)); + + ctx->comparisonResult = compare_012(*ptr1, *ptr2); + return FALSE; +} + +bool8 ScrCmd_addvar(struct ScriptContext *ctx) +{ + u16 *ptr = GetVarPointer(ScriptReadHalfword(ctx)); + *ptr += ScriptReadHalfword(ctx); + return FALSE; +} + +bool8 ScrCmd_subvar(struct ScriptContext *ctx) +{ + u16 *ptr = GetVarPointer(ScriptReadHalfword(ctx)); + *ptr -= VarGet(ScriptReadHalfword(ctx)); + return FALSE; +} + +bool8 ScrCmd_random(struct ScriptContext *ctx) +{ + u16 max = VarGet(ScriptReadHalfword(ctx)); + + gScriptResult = Random() % max; + return FALSE; +} + +bool8 ScrCmd_additem(struct ScriptContext *ctx) +{ + u16 itemId = VarGet(ScriptReadHalfword(ctx)); + u32 quantity = VarGet(ScriptReadHalfword(ctx)); + + gScriptResult = AddBagItem(itemId, (u8)quantity); + return FALSE; +} + +bool8 ScrCmd_removeitem(struct ScriptContext *ctx) +{ + u16 itemId = VarGet(ScriptReadHalfword(ctx)); + u32 quantity = VarGet(ScriptReadHalfword(ctx)); + + gScriptResult = RemoveBagItem(itemId, (u8)quantity); + return FALSE; +} + +bool8 ScrCmd_checkitemspace(struct ScriptContext *ctx) +{ + u16 itemId = VarGet(ScriptReadHalfword(ctx)); + u32 quantity = VarGet(ScriptReadHalfword(ctx)); + + gScriptResult = CheckBagHasSpace(itemId, (u8)quantity); + return FALSE; +} + +bool8 ScrCmd_checkitem(struct ScriptContext *ctx) +{ + u16 itemId = VarGet(ScriptReadHalfword(ctx)); + u32 quantity = VarGet(ScriptReadHalfword(ctx)); + + gScriptResult = CheckBagHasItem(itemId, (u8)quantity); + return FALSE; +} + +bool8 ScrCmd_checkitemtype(struct ScriptContext *ctx) +{ + u16 itemId = VarGet(ScriptReadHalfword(ctx)); + + gScriptResult = GetPocketByItemId(itemId); + return FALSE; +} + +bool8 ScrCmd_addpcitem(struct ScriptContext *ctx) +{ + u16 itemId = VarGet(ScriptReadHalfword(ctx)); + u16 quantity = VarGet(ScriptReadHalfword(ctx)); + + gScriptResult = AddPCItem(itemId, quantity); + return FALSE; +} + +bool8 ScrCmd_checkpcitem(struct ScriptContext *ctx) +{ + u16 itemId = VarGet(ScriptReadHalfword(ctx)); + u16 quantity = VarGet(ScriptReadHalfword(ctx)); + + gScriptResult = CheckPCHasItem(itemId, quantity); + return FALSE; +} + +bool8 ScrCmd_adddecor(struct ScriptContext *ctx) +{ + u32 decorId = VarGet(ScriptReadHalfword(ctx)); + + gScriptResult = DecorationAdd(decorId); + return FALSE; +} + +bool8 ScrCmd_removedecor(struct ScriptContext *ctx) +{ + u32 decorId = VarGet(ScriptReadHalfword(ctx)); + + gScriptResult = DecorationRemove(decorId); + return FALSE; +} + +bool8 ScrCmd_checkdecor(struct ScriptContext *ctx) +{ + u32 decorId = VarGet(ScriptReadHalfword(ctx)); + + gScriptResult = DecorationCheckSpace(decorId); + return FALSE; +} + +bool8 ScrCmd_hasdecor(struct ScriptContext *ctx) +{ + u32 decorId = VarGet(ScriptReadHalfword(ctx)); + + gScriptResult = CheckHasDecoration(decorId); + return FALSE; +} + +bool8 ScrCmd_setflag(struct ScriptContext *ctx) +{ + FlagSet(ScriptReadHalfword(ctx)); + return FALSE; +} + +bool8 ScrCmd_clearflag(struct ScriptContext *ctx) +{ + FlagClear(ScriptReadHalfword(ctx)); + return FALSE; +} + +bool8 ScrCmd_checkflag(struct ScriptContext *ctx) +{ + ctx->comparisonResult = FlagGet(ScriptReadHalfword(ctx)); + return FALSE; +} + +bool8 ScrCmd_incrementgamestat(struct ScriptContext *ctx) +{ + IncrementGameStat(ScriptReadByte(ctx)); + return FALSE; +} + +bool8 ScrCmd_animdarklevel(struct ScriptContext *ctx) +{ + sub_80B009C(ScriptReadByte(ctx)); + ScriptContext1_Stop(); + return TRUE; +} + +bool8 ScrCmd_setdarklevel(struct ScriptContext *ctx) +{ + u16 flashLevel = VarGet(ScriptReadHalfword(ctx)); + + Overworld_SetFlashLevel(flashLevel); + return FALSE; +} + +static bool8 IsPaletteNotActive(void) +{ + if (!gPaletteFade.active) + return TRUE; + else + return FALSE; +} + +bool8 ScrCmd_fadescreen(struct ScriptContext *ctx) +{ + fade_screen(ScriptReadByte(ctx), 0); + SetupNativeScript(ctx, IsPaletteNotActive); + return TRUE; +} + +bool8 ScrCmd_fadescreendelay(struct ScriptContext *ctx) +{ + u8 duration = ScriptReadByte(ctx); + u8 delay = ScriptReadByte(ctx); + + fade_screen(duration, delay); + SetupNativeScript(ctx, IsPaletteNotActive); + return TRUE; +} + +int ScrCmd_cmdDC(struct ScriptContext *ctx) +{ + u8 duration = ScriptReadByte(ctx); + + switch (duration) + { + case 1: + default: + CpuCopy32(gPlttBufferUnfaded, gPaletteDecompressionBuffer, PLTT_DECOMP_BUFFER_SIZE); + fade_screen(duration, 0); + break; + case 0: + case 2: + CpuCopy32(gPaletteDecompressionBuffer, gPlttBufferUnfaded, PLTT_DECOMP_BUFFER_SIZE); + fade_screen(duration, 0); + break; + } + + SetupNativeScript(ctx, IsPaletteNotActive); + return TRUE; +} + +static bool8 RunPauseTimer(void) +{ + sPauseCounter--; + + if (sPauseCounter == 0) + return TRUE; + else + return FALSE; +} + +bool8 ScrCmd_delay(struct ScriptContext *ctx) +{ + sPauseCounter = ScriptReadHalfword(ctx); + SetupNativeScript(ctx, RunPauseTimer); + return TRUE; +} + +bool8 ScrCmd_initclock(struct ScriptContext *ctx) +{ + u8 hour = VarGet(ScriptReadHalfword(ctx)); + u8 minute = VarGet(ScriptReadHalfword(ctx)); + + RtcInitLocalTimeOffset(hour, minute); + return FALSE; +} + +bool8 ScrCmd_dodailyevents(struct ScriptContext *ctx) +{ + DoTimeBasedEvents(); + return FALSE; +} + +bool8 ScrCmd_gettime(struct ScriptContext *ctx) +{ + RtcCalcLocalTime(); + gSpecialVar_0x8000 = gLocalTime.hours; + gSpecialVar_0x8001 = gLocalTime.minutes; + gSpecialVar_0x8002 = gLocalTime.seconds; + return FALSE; +} + +bool8 ScrCmd_setweather(struct ScriptContext *ctx) +{ + u16 weather = VarGet(ScriptReadHalfword(ctx)); + + SetSav1Weather(weather); + return FALSE; +} + +bool8 ScrCmd_resetweather(struct ScriptContext *ctx) +{ + sub_80AEDBC(); + return FALSE; +} + +bool8 ScrCmd_doweather(struct ScriptContext *ctx) +{ + DoCurrentWeather(); + return FALSE; +} + +bool8 ScrCmd_tileeffect(struct ScriptContext *ctx) +{ + ActivatePerStepCallback(ScriptReadByte(ctx)); + return FALSE; +} + +bool8 ScrCmd_setmaplayoutindex(struct ScriptContext *ctx) +{ + u16 value = VarGet(ScriptReadHalfword(ctx)); + + sub_8085524(value); + return FALSE; +} + +bool8 ScrCmd_warp(struct ScriptContext *ctx) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); + sub_80AF734(); + player_avatar_init_params_reset(); + return TRUE; +} + +bool8 ScrCmd_warpsilent(struct ScriptContext *ctx) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); + sp13E_warp_to_last_warp(); + player_avatar_init_params_reset(); + return TRUE; +} + +bool8 ScrCmd_warpdoor(struct ScriptContext *ctx) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); + sub_80AF7D0(); + player_avatar_init_params_reset(); + return TRUE; +} + +bool8 ScrCmd_warphole(struct ScriptContext *ctx) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u16 x; + u16 y; + + PlayerGetDestCoords(&x, &y); + if (mapGroup == 0xFF && mapNum == 0xFF) + sub_8084EBC(x - 7, y - 7); + else + Overworld_SetWarpDestination(mapGroup, mapNum, -1, x - 7, y - 7); + sp13F_fall_to_last_warp(); + player_avatar_init_params_reset(); + return TRUE; +} + +bool8 ScrCmd_warpteleport(struct ScriptContext *ctx) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); + sub_80AF848(); + player_avatar_init_params_reset(); + return TRUE; +} + +bool8 ScrCmd_cmdD7(struct ScriptContext *ctx) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); + sub_80AF87C(); + player_avatar_init_params_reset(); + return TRUE; +} + +bool8 ScrCmd_setwarp(struct ScriptContext *ctx) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); + return FALSE; +} + +bool8 ScrCmd_setdynamicwarp(struct ScriptContext *ctx) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + saved_warp2_set_2(0, mapGroup, mapNum, warpId, x, y); + return FALSE; +} + +bool8 ScrCmd_setdivewarp(struct ScriptContext *ctx) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + sub_8084E2C(mapGroup, mapNum, warpId, x, y); + return FALSE; +} + +bool8 ScrCmd_setholewarp(struct ScriptContext *ctx) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + sub_8084E80(mapGroup, mapNum, warpId, x, y); + return FALSE; +} + +bool8 ScrCmd_setescapewarp(struct ScriptContext *ctx) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + sub_8084DD4(mapGroup, mapNum, warpId, x, y); + return FALSE; +} + +bool8 ScrCmd_getplayerxy(struct ScriptContext *ctx) +{ + u16 *pX = GetVarPointer(ScriptReadHalfword(ctx)); + u16 *pY = GetVarPointer(ScriptReadHalfword(ctx)); + + *pX = gSaveBlock1Ptr->pos.x; + *pY = gSaveBlock1Ptr->pos.y; + return FALSE; +} + +bool8 ScrCmd_countpokemon(struct ScriptContext *ctx) +{ + gScriptResult = CalculatePlayerPartyCount(); + return FALSE; +} + +bool8 ScrCmd_playse(struct ScriptContext *ctx) +{ + PlaySE(ScriptReadHalfword(ctx)); + return FALSE; +} + +static bool8 WaitForSoundEffectFinish(void) +{ + if (!IsSEPlaying()) + return TRUE; + else + return FALSE; +} + +bool8 ScrCmd_waitse(struct ScriptContext *ctx) +{ + SetupNativeScript(ctx, WaitForSoundEffectFinish); + return TRUE; +} + +bool8 ScrCmd_playfanfare(struct ScriptContext *ctx) +{ + PlayFanfare(ScriptReadHalfword(ctx)); + return FALSE; +} + +static bool8 WaitForFanfareFinish(void) +{ + return IsFanfareTaskInactive(); +} + +bool8 ScrCmd_waitfanfare(struct ScriptContext *ctx) +{ + SetupNativeScript(ctx, WaitForFanfareFinish); + return TRUE; +} + +bool8 ScrCmd_playbgm(struct ScriptContext *ctx) +{ + u16 songId = ScriptReadHalfword(ctx); + bool8 val = ScriptReadByte(ctx); + + if (val == TRUE) + Overworld_SetSavedMusic(songId); + PlayNewMapMusic(songId); + return FALSE; +} + +bool8 ScrCmd_savebgm(struct ScriptContext *ctx) +{ + Overworld_SetSavedMusic(ScriptReadHalfword(ctx)); + return FALSE; +} + +bool8 ScrCmd_fadedefaultbgm(struct ScriptContext *ctx) +{ + Overworld_ChangeMusicToDefault(); + return FALSE; +} + +bool8 ScrCmd_fadenewbgm(struct ScriptContext *ctx) +{ + Overworld_ChangeMusicTo(ScriptReadHalfword(ctx)); + return FALSE; +} + +bool8 ScrCmd_fadeoutbgm(struct ScriptContext *ctx) +{ + u8 speed = ScriptReadByte(ctx); + + if (speed != 0) + FadeOutBGMTemporarily(4 * speed); + else + FadeOutBGMTemporarily(4); + SetupNativeScript(ctx, IsBGMPausedOrStopped); + return TRUE; +} + +bool8 ScrCmd_fadeinbgm(struct ScriptContext *ctx) +{ + u8 speed = ScriptReadByte(ctx); + + if (speed != 0) + FadeInBGM(4 * speed); + else + FadeInBGM(4); + return FALSE; +} + +bool8 ScrCmd_applymovement(struct ScriptContext *ctx) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + void *movementScript = (void *)ScriptReadWord(ctx); + + ScriptMovement_StartObjectMovementScript(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, movementScript); + sMovingNpcId = localId; + return FALSE; +} + +bool8 ScrCmd_applymovement_at(struct ScriptContext *ctx) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + void *movementScript = (void *)ScriptReadWord(ctx); + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + + ScriptMovement_StartObjectMovementScript(localId, mapNum, mapGroup, movementScript); + sMovingNpcId = localId; + return FALSE; +} + +static bool8 WaitForMovementFinish(void) +{ + return ScriptMovement_IsObjectMovementFinished(sMovingNpcId, sMovingNpcMapId, sMovingNpcMapBank); +} + +bool8 ScrCmd_waitmovement(struct ScriptContext *ctx) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + + if (localId != 0) + sMovingNpcId = localId; + sMovingNpcMapBank = gSaveBlock1Ptr->location.mapGroup; + sMovingNpcMapId = gSaveBlock1Ptr->location.mapNum; + SetupNativeScript(ctx, WaitForMovementFinish); + return TRUE; +} + +bool8 ScrCmd_waitmovement_at(struct ScriptContext *ctx) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + u8 mapBank; + u8 mapId; + + if (localId != 0) + sMovingNpcId = localId; + mapBank = ScriptReadByte(ctx); + mapId = ScriptReadByte(ctx); + sMovingNpcMapBank = mapBank; + sMovingNpcMapId = mapId; + SetupNativeScript(ctx, WaitForMovementFinish); + return TRUE; +} + +bool8 ScrCmd_removeobject(struct ScriptContext *ctx) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + + RemoveFieldObjectByLocalIdAndMap(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + return FALSE; +} + +bool8 ScrCmd_removeobject_at(struct ScriptContext *ctx) +{ + u16 objectId = VarGet(ScriptReadHalfword(ctx)); + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + + RemoveFieldObjectByLocalIdAndMap(objectId, mapNum, mapGroup); + return FALSE; +} + +bool8 ScrCmd_addobject(struct ScriptContext *ctx) +{ + u16 objectId = VarGet(ScriptReadHalfword(ctx)); + + show_sprite(objectId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + return FALSE; +} + +bool8 ScrCmd_addobject_at(struct ScriptContext *ctx) +{ + u16 objectId = VarGet(ScriptReadHalfword(ctx)); + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + + show_sprite(objectId, mapNum, mapGroup); + return FALSE; +} + +bool8 ScrCmd_setobjectxy(struct ScriptContext *ctx) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + sub_808EBA8(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, x, y); + return FALSE; +} + +bool8 ScrCmd_setobjectxyperm(struct ScriptContext *ctx) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + Overworld_SetMapObjTemplateCoords(localId, x, y); + return FALSE; +} + +bool8 ScrCmd_moveobjectoffscreen(struct ScriptContext *ctx) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + + sub_808F254(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + return FALSE; +} + +bool8 ScrCmd_showobject(struct ScriptContext *ctx) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + + npc_by_local_id_and_map_set_field_1_bit_x20(localId, mapNum, mapGroup, 0); + return FALSE; +} + +bool8 ScrCmd_hideobject(struct ScriptContext *ctx) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + + npc_by_local_id_and_map_set_field_1_bit_x20(localId, mapNum, mapGroup, 1); + return FALSE; +} + +bool8 ScrCmd_setobjectpriority(struct ScriptContext *ctx) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 priority = ScriptReadByte(ctx); + + sub_808E78C(localId, mapNum, mapGroup, priority + 83); + return FALSE; +} + +bool8 ScrCmd_resetobjectpriority(struct ScriptContext *ctx) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + + sub_808E7E4(localId, mapNum, mapGroup); + return FALSE; +} + +bool8 ScrCmd_faceplayer(struct ScriptContext *ctx) +{ + if (gMapObjects[gSelectedMapObject].active) + { + FieldObjectFaceOppositeDirection(&gMapObjects[gSelectedMapObject], + player_get_direction_lower_nybble()); + } + return FALSE; +} + +bool8 ScrCmd_turnobject(struct ScriptContext *ctx) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + u8 direction = ScriptReadByte(ctx); + + FieldObjectTurnByLocalIdAndMap(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, direction); + return FALSE; +} + +bool8 ScrCmd_setobjectmovementtype(struct ScriptContext *ctx) +{ + u16 localId = VarGet(ScriptReadHalfword(ctx)); + u8 movementType = ScriptReadByte(ctx); + + Overworld_SetMapObjTemplateMovementType(localId, movementType); + return FALSE; +} + +bool8 ScrCmd_createvobject(struct ScriptContext *ctx) +{ + u8 graphicsId = ScriptReadByte(ctx); + u8 v2 = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u32 y = VarGet(ScriptReadHalfword(ctx)); + u8 elevation = ScriptReadByte(ctx); + u8 direction = ScriptReadByte(ctx); + + sprite_new(graphicsId, v2, x, y, elevation, direction); + return FALSE; +} + +bool8 ScrCmd_turnvobject(struct ScriptContext *ctx) +{ + u8 v1 = ScriptReadByte(ctx); + u8 direction = ScriptReadByte(ctx); + + sub_8097B78(v1, direction); + return FALSE; +} + +bool8 ScrCmd_lockall(struct ScriptContext *ctx) +{ + if (is_c1_link_related_active()) + { + return FALSE; + } + else + { + ScriptFreezeMapObjects(); + SetupNativeScript(ctx, sub_80983C4); + return TRUE; + } +} + +bool8 ScrCmd_lock(struct ScriptContext *ctx) +{ + if (is_c1_link_related_active()) + { + return FALSE; + } + else + { + if (gMapObjects[gSelectedMapObject].active) + { + LockSelectedMapObject(); + SetupNativeScript(ctx, sub_809847C); + } + else + { + ScriptFreezeMapObjects(); + SetupNativeScript(ctx, sub_80983C4); + } + return TRUE; + } +} + +bool8 ScrCmd_releaseall(struct ScriptContext *ctx) +{ + u8 objectId; + + HideFieldMessageBox(); + objectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0); + FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[objectId]); + sub_80D338C(); + UnfreezeMapObjects(); + return FALSE; +} + +bool8 ScrCmd_release(struct ScriptContext *ctx) +{ + u8 objectId; + + HideFieldMessageBox(); + if (gMapObjects[gSelectedMapObject].active) + FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[gSelectedMapObject]); + objectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0); + FieldObjectClearAnimIfSpecialAnimFinished(&gMapObjects[objectId]); + sub_80D338C(); + UnfreezeMapObjects(); + return FALSE; +} + +bool8 ScrCmd_message(struct ScriptContext *ctx) +{ + u8 *msg = (u8 *)ScriptReadWord(ctx); + + if (msg == NULL) + msg = (u8 *)ctx->data[0]; + ShowFieldMessage(msg); + return FALSE; +} + +bool8 ScrCmd_cmdDF(struct ScriptContext *ctx) +{ + u8 *msg = (u8 *)ScriptReadWord(ctx); + + if (msg == NULL) + msg = (u8 *)ctx->data[0]; + sub_8098238(msg); + return FALSE; +} + +bool8 ScrCmd_messageautoscroll(struct ScriptContext *ctx) +{ + u8 *msg = (u8 *)ScriptReadWord(ctx); + + if (msg == NULL) + msg = (u8 *)ctx->data[0]; + gTextFlags.flag_2 = TRUE; + gTextFlags.flag_3 = TRUE; + ShowFieldAutoScrollMessage(msg); + return FALSE; +} + +bool8 ScrCmd_cmdDB(struct ScriptContext *ctx) +{ + u8 *msg = (u8 *)ScriptReadWord(ctx); + + if (msg == NULL) + msg = (u8 *)ctx->data[0]; + sub_81973A4(); + sub_81973C4(0, 1); + PrintTextOnWindow(0, 1, msg, 0, 1, 0, 0); + return FALSE; +} + +bool8 ScrCmd_waitmessage(struct ScriptContext *ctx) +{ + SetupNativeScript(ctx, IsFieldMessageBoxHidden); + return TRUE; +} + +bool8 ScrCmd_closemessage(struct ScriptContext *ctx) +{ + HideFieldMessageBox(); + return FALSE; +} + +static bool8 WaitForAorBPress(void) +{ + if (gMain.newKeys & A_BUTTON) + return TRUE; + if (gMain.newKeys & B_BUTTON) + return TRUE; + return FALSE; +} + +bool8 ScrCmd_waitbutton(struct ScriptContext *ctx) +{ + SetupNativeScript(ctx, WaitForAorBPress); + return TRUE; +} + +bool8 ScrCmd_yesnobox(struct ScriptContext *ctx) +{ + u8 left = ScriptReadByte(ctx); + u8 top = ScriptReadByte(ctx); + + if (ScriptMenu_YesNo(left, top) == TRUE) + { + ScriptContext1_Stop(); + return TRUE; + } + else + { + return FALSE; + } +} + +bool8 ScrCmd_multichoice(struct ScriptContext *ctx) +{ + u8 left = ScriptReadByte(ctx); + u8 top = ScriptReadByte(ctx); + u8 multichoiceId = ScriptReadByte(ctx); + u8 ignoreBPress = ScriptReadByte(ctx); + + if (ScriptMenu_Multichoice(left, top, multichoiceId, ignoreBPress) == TRUE) + { + ScriptContext1_Stop(); + return TRUE; + } + else + { + return FALSE; + } +} + +bool8 ScrCmd_multichoicedefault(struct ScriptContext *ctx) +{ + u8 left = ScriptReadByte(ctx); + u8 top = ScriptReadByte(ctx); + u8 multichoiceId = ScriptReadByte(ctx); + u8 defaultChoice = ScriptReadByte(ctx); + u8 ignoreBPress = ScriptReadByte(ctx); + + if (ScriptMenu_MultichoiceWithDefault(left, top, multichoiceId, ignoreBPress, defaultChoice) == TRUE) + { + ScriptContext1_Stop(); + return TRUE; + } + else + { + return FALSE; + } +} + +bool8 ScrCmd_cmd72(struct ScriptContext *ctx) +{ + /*u8 left = ScriptReadByte(ctx); + u8 top = ScriptReadByte(ctx); + u8 right = ScriptReadByte(ctx); + u8 bottom = ScriptReadByte(ctx); + + MenuDrawTextWindow(left, top, right, bottom);*/ + return FALSE; +} + +bool8 ScrCmd_multichoicegrid(struct ScriptContext *ctx) +{ + u8 left = ScriptReadByte(ctx); + u8 top = ScriptReadByte(ctx); + u8 multichoiceId = ScriptReadByte(ctx); + u8 numColumns = ScriptReadByte(ctx); + u8 ignoreBPress = ScriptReadByte(ctx); + + if (ScriptMenu_MultichoiceGrid(left, top, multichoiceId, ignoreBPress, numColumns) == TRUE) + { + ScriptContext1_Stop(); + return TRUE; + } + else + { + return FALSE; + } +} + +bool8 ScrCmd_cmd73(struct ScriptContext *ctx) +{ + u8 left = ScriptReadByte(ctx); + u8 top = ScriptReadByte(ctx); + u8 right = ScriptReadByte(ctx); + u8 bottom = ScriptReadByte(ctx); + + // MenuZeroFillWindowRect(left, top, right, bottom); + return FALSE; +} + +bool8 ScrCmd_cmd74(struct ScriptContext *ctx) +{ + u8 left = ScriptReadByte(ctx); + u8 top = ScriptReadByte(ctx); + u8 multichoiceId = ScriptReadByte(ctx); + u8 ignoreBPress = ScriptReadByte(ctx); + + /*if (Multichoice(left, top, multichoiceId, ignoreBPress) == TRUE) + { + ScriptContext1_Stop(); + return TRUE; + }*/ + return FALSE; +} + +bool8 ScrCmd_drawpokepic(struct ScriptContext *ctx) +{ + u16 species = VarGet(ScriptReadHalfword(ctx)); + u8 x = ScriptReadByte(ctx); + u8 y = ScriptReadByte(ctx); + + ScriptMenu_ShowPokemonPic(species, x, y); + return FALSE; +} + +bool8 ScrCmd_erasepokepic(struct ScriptContext *ctx) +{ + bool8 (*func)(void) = ScriptMenu_GetPicboxWaitFunc(); + + if (func == NULL) + return FALSE; + SetupNativeScript(ctx, func); + return TRUE; +} + +bool8 ScrCmd_drawcontestwinner(struct ScriptContext *ctx) +{ + u8 v1 = ScriptReadByte(ctx); + + if (v1) + sub_812FDA8(v1); + ShowContestWinner(); + ScriptContext1_Stop(); + return TRUE; +} + +// Temporary, will come back to this later. +/*bool8 ScrCmd_braillemessage(struct ScriptContext *ctx) +{ + u8 *ptr = (u8 *)ScriptReadWord(ctx); + u8 *localStringVar4; + u8 width; + u8 height; + u8 temp; + + StringExpandPlaceholders(gStringVar4, ptr); + + width = GetStringWidth(6, gStringVar4, -1) / 8; + + if (width > 0x1C) + width = 0x1C; + + height = 4; + localStringVar4 = gStringVar4; + temp = width + 2; + + for (; *localStringVar4 != 0xFF; localStringVar4++) + { + if (*localStringVar4 == 0xFE) + height += 4; + } + + if (height > 0x12) + height = 0x12; + + temp = 0x1E - temp; + + u8 v2 = ptr[0]; + u8 v3 = ptr[1]; + u8 v4 = ptr[2]; + u8 v5 = ptr[3]; + u8 v6 = ptr[4]; + u8 v7 = ptr[5]; + StringBraille(gStringVar4, ptr + 6); + MenuDrawTextWindow(v2, v3, v4, v5); + MenuPrint(gStringVar4, v6, v7); + return FALSE; +}*/ +__attribute__((naked)) +bool8 ScrCmd_braillemessage(struct ScriptContext *ctx) +{ + asm("push {r4-r7,lr}\n\ + mov r7, r8\n\ + push {r7}\n\ + sub sp, #0x20\n\ + bl ScriptReadWord\n\ + add r1, r0, #0\n\ + ldr r4, =gStringVar4\n\ + add r1, #0x6\n\ + add r0, r4, #0\n\ + bl StringExpandPlaceholders\n\ + mov r2, #0x1\n\ + neg r2, r2\n\ + mov r0, #0x6\n\ + add r1, r4, #0\n\ + bl GetStringWidth\n\ + lsr r0, #3\n\ + lsl r0, #24\n\ + lsr r7, r0, #24\n\ + cmp r7, #0x1C\n\ + bls _0809AE9C\n\ + mov r7, #0x1C\n\ +_0809AE9C:\n\ + mov r5, #0x4\n\ + ldrb r0, [r4]\n\ + add r2, r7, #0x2\n\ + add r1, sp, #0x18\n\ + mov r8, r1\n\ + cmp r0, #0xFF\n\ + beq _0809AEC0\n\ + add r1, r4, #0\n\ +_0809AEAC:\n\ + ldrb r0, [r1]\n\ + add r1, #0x1\n\ + cmp r0, #0xFE\n\ + bne _0809AEBA\n\ + add r0, r5, #0x3\n\ + lsl r0, #24\n\ + lsr r5, r0, #24\n\ +_0809AEBA:\n\ + ldrb r0, [r1]\n\ + cmp r0, #0xFF\n\ + bne _0809AEAC\n\ +_0809AEC0:\n\ + cmp r5, #0x12\n\ + bls _0809AEC6\n\ + mov r5, #0x12\n\ +_0809AEC6:\n\ + lsl r0, r2, #24\n\ + lsr r0, #24\n\ + mov r2, #0x1E\n\ + sub r2, r0\n\ + lsr r0, r2, #31\n\ + add r2, r0\n\ + asr r2, #1\n\ + lsl r2, #24\n\ + add r0, r5, #0x2\n\ + lsl r0, #24\n\ + lsr r0, #24\n\ + mov r4, #0x14\n\ + sub r4, r0\n\ + lsr r0, r4, #31\n\ + add r4, r0\n\ + asr r4, #1\n\ + lsl r4, #24\n\ + lsr r6, r2, #24\n\ + mov r0, #0x80\n\ + lsl r0, #17\n\ + add r2, r0\n\ + lsr r2, #24\n\ + lsr r3, r4, #24\n\ + mov r1, #0x80\n\ + lsl r1, #18\n\ + add r4, r1\n\ + lsr r4, #24\n\ + sub r6, r2, r6\n\ + sub r6, #0x1\n\ + lsl r6, #3\n\ + add r6, #0x3\n\ + lsl r6, #24\n\ + lsr r6, #24\n\ + sub r4, r3\n\ + sub r4, #0x1\n\ + lsl r4, #27\n\ + lsr r4, #24\n\ + add r3, #0x1\n\ + lsl r3, #24\n\ + lsr r3, #24\n\ + str r7, [sp]\n\ + str r5, [sp, #0x4]\n\ + mov r0, #0xF\n\ + str r0, [sp, #0x8]\n\ + mov r0, #0x1\n\ + str r0, [sp, #0xC]\n\ + add r0, sp, #0x10\n\ + mov r1, #0\n\ + bl sub_8198A50\n\ + ldr r0, [sp, #0x10]\n\ + ldr r1, [sp, #0x14]\n\ + str r0, [sp, #0x18]\n\ + str r1, [sp, #0x1C]\n\ + ldr r5, =gUnknown_03000F30\n\ + mov r0, r8\n\ + bl AddWindow\n\ + strb r0, [r5]\n\ + ldrb r0, [r5]\n\ + mov r1, #0x85\n\ + lsl r1, #2\n\ + mov r2, #0xE0\n\ + bl sub_809882C\n\ + ldrb r0, [r5]\n\ + mov r1, #0\n\ + bl sub_81973FC\n\ + ldrb r0, [r5]\n\ + bl PutWindowTilemap\n\ + ldrb r0, [r5]\n\ + mov r1, #0x11\n\ + bl FillWindowPixelBuffer\n\ + ldrb r0, [r5]\n\ + ldr r2, =gStringVar4\n\ + str r4, [sp]\n\ + mov r1, #0xFF\n\ + str r1, [sp, #0x4]\n\ + mov r1, #0\n\ + str r1, [sp, #0x8]\n\ + mov r1, #0x6\n\ + add r3, r6, #0\n\ + bl PrintTextOnWindow\n\ + ldrb r0, [r5]\n\ + mov r1, #0x3\n\ + bl CopyWindowToVram\n\ + mov r0, #0\n\ + add sp, #0x20\n\ + pop {r3}\n\ + mov r8, r3\n\ + pop {r4-r7}\n\ + pop {r1}\n\ + bx r1\n\ + .pool"); +} + +bool8 ScrCmd_cmdDA(struct ScriptContext *ctx) +{ + sub_809BDB4(); + return FALSE; +} + +bool8 ScrCmd_vmessage(struct ScriptContext *ctx) +{ + u32 v1 = ScriptReadWord(ctx); + + ShowFieldMessage((u8 *)(v1 - gUnknown_020375C4)); + return FALSE; +} + +bool8 ScrCmd_getspeciesname(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 species = VarGet(ScriptReadHalfword(ctx)); + + StringCopy(sScriptStringVars[stringVarIndex], gSpeciesNames[species]); + return FALSE; +} + +bool8 ScrCmd_getfirstpartypokename(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + + u8 *dest = sScriptStringVars[stringVarIndex]; + u8 partyIndex = GetLeadMonIndex(); + u32 species = GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPECIES, NULL); + StringCopy(dest, gSpeciesNames[species]); + return FALSE; +} + +bool8 ScrCmd_getpartypokename(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 partyIndex = VarGet(ScriptReadHalfword(ctx)); + + GetMonData(&gPlayerParty[partyIndex], MON_DATA_NICKNAME, sScriptStringVars[stringVarIndex]); + StringGetEnd10(sScriptStringVars[stringVarIndex]); + return FALSE; +} + +bool8 ScrCmd_getitemname(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 itemId = VarGet(ScriptReadHalfword(ctx)); + + CopyItemName(itemId, sScriptStringVars[stringVarIndex]); + return FALSE; +} + +bool8 ScrCmd_cmdE2(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 itemId = VarGet(ScriptReadHalfword(ctx)); + u16 quantity = VarGet(ScriptReadHalfword(ctx)); + + CopyItemNameHandlePlural(itemId, sScriptStringVars[stringVarIndex], quantity); + return FALSE; +} + +bool8 ScrCmd_getdecorname(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 decorId = VarGet(ScriptReadHalfword(ctx)); + + StringCopy(sScriptStringVars[stringVarIndex], gDecorations[decorId].name); + return FALSE; +} + +bool8 ScrCmd_getmovename(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 moveId = VarGet(ScriptReadHalfword(ctx)); + + StringCopy(sScriptStringVars[stringVarIndex], gMoveNames[moveId]); + return FALSE; +} + +bool8 ScrCmd_getnumberstring(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 v1 = VarGet(ScriptReadHalfword(ctx)); + u8 v2 = sub_80EF370(v1); + + ConvertIntToDecimalStringN(sScriptStringVars[stringVarIndex], v1, 0, v2); + return FALSE; +} + +bool8 ScrCmd_getstdstring(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 index = VarGet(ScriptReadHalfword(ctx)); + + StringCopy(sScriptStringVars[stringVarIndex], gUnknown_0858BAF0[index]); + return FALSE; +} + +bool8 ScrCmd_cmdE1(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 index = VarGet(ScriptReadHalfword(ctx)); + + sub_818E868(sScriptStringVars[stringVarIndex], index); + return FALSE; +} + +bool8 ScrCmd_getstring(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u8 *text = (u8 *)ScriptReadWord(ctx); + + StringCopy(sScriptStringVars[stringVarIndex], text); + return FALSE; +} + +bool8 ScrCmd_vloadword(struct ScriptContext *ctx) +{ + u8 *ptr = (u8 *)(ScriptReadWord(ctx) - gUnknown_020375C4); + + StringExpandPlaceholders(gStringVar4, ptr); + return FALSE; +} + +bool8 ScrCmd_vgetstring(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u32 addr = ScriptReadWord(ctx); + + u8 *src = (u8 *)(addr - gUnknown_020375C4); + u8 *dest = sScriptStringVars[stringVarIndex]; + StringCopy(dest, src); + return FALSE; +} + +bool8 ScrCmd_cmdC6(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 boxId = VarGet(ScriptReadHalfword(ctx)); + + StringCopy(sScriptStringVars[stringVarIndex], GetBoxNamePtr(boxId)); + return FALSE; +} + +bool8 ScrCmd_givepoke(struct ScriptContext *ctx) +{ + u16 species = VarGet(ScriptReadHalfword(ctx)); + u8 level = ScriptReadByte(ctx); + u16 item = VarGet(ScriptReadHalfword(ctx)); + u32 unkParam1 = ScriptReadWord(ctx); + u32 unkParam2 = ScriptReadWord(ctx); + u8 unkParam3 = ScriptReadByte(ctx); + + gScriptResult = ScriptGiveMon(species, level, item, unkParam1, unkParam2, unkParam3); + return FALSE; +} + +bool8 ScrCmd_giveegg(struct ScriptContext *ctx) +{ + u16 species = VarGet(ScriptReadHalfword(ctx)); + + gScriptResult = ScriptGiveEgg(species); + return FALSE; +} + +bool8 ScrCmd_setpokemove(struct ScriptContext *ctx) +{ + u8 partyIndex = ScriptReadByte(ctx); + u8 slot = ScriptReadByte(ctx); + u16 move = ScriptReadHalfword(ctx); + + ScriptSetMonMoveSlot(partyIndex, move, slot); + return FALSE; +} + +bool8 ScrCmd_checkpokemove(struct ScriptContext *ctx) +{ + u8 i; + u16 moveId = ScriptReadHalfword(ctx); + + gScriptResult = 6; + for (i = 0; i < 6; i++) + { + u16 species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES, NULL); + if (!species) + break; + // UB: GetMonData() arguments don't match function definition + if (!GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG) && pokemon_has_move(&gPlayerParty[i], moveId) == TRUE) + { + gScriptResult = i; + gSpecialVar_0x8004 = species; + break; + } + } + return FALSE; +} + +bool8 ScrCmd_givemoney(struct ScriptContext *ctx) +{ + u32 amount = ScriptReadWord(ctx); + u8 ignore = ScriptReadByte(ctx); + + if (!ignore) + AddMoney(&gSaveBlock1Ptr->money, amount); + return FALSE; +} + +bool8 ScrCmd_takemoney(struct ScriptContext *ctx) +{ + u32 amount = ScriptReadWord(ctx); + u8 ignore = ScriptReadByte(ctx); + + if (!ignore) + RemoveMoney(&gSaveBlock1Ptr->money, amount); + return FALSE; +} + +bool8 ScrCmd_checkmoney(struct ScriptContext *ctx) +{ + u32 amount = ScriptReadWord(ctx); + u8 ignore = ScriptReadByte(ctx); + + if (!ignore) + gScriptResult = IsEnoughMoney(&gSaveBlock1Ptr->money, amount); + return FALSE; +} + +bool8 ScrCmd_showmoneybox(struct ScriptContext *ctx) +{ + u8 x = ScriptReadByte(ctx); + u8 y = ScriptReadByte(ctx); + u8 ignore = ScriptReadByte(ctx); + + if (!ignore) + DrawMoneyBox(GetMoney(&gSaveBlock1Ptr->money), x, y); + return FALSE; +} + +bool8 ScrCmd_hidemoneybox(struct ScriptContext *ctx) +{ + /*u8 x = ScriptReadByte(ctx); + u8 y = ScriptReadByte(ctx);*/ + + HideMoneyBox(); + return FALSE; +} + +bool8 ScrCmd_updatemoneybox(struct ScriptContext *ctx) +{ + u8 x = ScriptReadByte(ctx); + u8 y = ScriptReadByte(ctx); + u8 ignore = ScriptReadByte(ctx); + + if (!ignore) + ChangeAmountInMoneyBox(GetMoney(&gSaveBlock1Ptr->money)); + return FALSE; +} + +bool8 ScrCmd_showcoinsbox(struct ScriptContext *ctx) +{ + u8 x = ScriptReadByte(ctx); + u8 y = ScriptReadByte(ctx); + + ShowCoinsWindow(GetCoins(), x, y); + return FALSE; +} + +bool8 ScrCmd_hidecoinsbox(struct ScriptContext *ctx) +{ + u8 x = ScriptReadByte(ctx); + u8 y = ScriptReadByte(ctx); + + HideCoinsWindow(); + return FALSE; +} + +bool8 ScrCmd_updatecoinsbox(struct ScriptContext *ctx) +{ + u8 x = ScriptReadByte(ctx); + u8 y = ScriptReadByte(ctx); + + PrintCoinsString(GetCoins()); + return FALSE; +} + +bool8 ScrCmd_trainerbattle(struct ScriptContext *ctx) +{ + ctx->scriptPtr = BattleSetup_ConfigureTrainerBattle(ctx->scriptPtr); + return FALSE; +} + +bool8 ScrCmd_battlebegin(struct ScriptContext *ctx) +{ + BattleSetup_StartTrainerBattle(); + return TRUE; +} + +bool8 ScrCmd_ontrainerbattleend(struct ScriptContext *ctx) +{ + ctx->scriptPtr = BattleSetup_GetScriptAddrAfterBattle(); + return FALSE; +} + +bool8 ScrCmd_ontrainerbattleendgoto(struct ScriptContext *ctx) +{ + ctx->scriptPtr = BattleSetup_GetTrainerPostBattleScript(); + return FALSE; +} + +bool8 ScrCmd_checktrainerflag(struct ScriptContext *ctx) +{ + u16 index = VarGet(ScriptReadHalfword(ctx)); + + ctx->comparisonResult = HasTrainerAlreadyBeenFought(index); + return FALSE; +} + +bool8 ScrCmd_settrainerflag(struct ScriptContext *ctx) +{ + u16 index = VarGet(ScriptReadHalfword(ctx)); + + trainer_flag_set(index); + return FALSE; +} + +bool8 ScrCmd_cleartrainerflag(struct ScriptContext *ctx) +{ + u16 index = VarGet(ScriptReadHalfword(ctx)); + + trainer_flag_clear(index); + return FALSE; +} + +bool8 ScrCmd_setwildbattle(struct ScriptContext *ctx) +{ + u16 species = ScriptReadHalfword(ctx); + u8 level = ScriptReadByte(ctx); + u16 item = ScriptReadHalfword(ctx); + + CreateScriptedWildMon(species, level, item); + return FALSE; +} + +bool8 ScrCmd_dowildbattle(struct ScriptContext *ctx) +{ + BattleSetup_StartScriptedWildBattle(); + ScriptContext1_Stop(); + return TRUE; +} + +bool8 ScrCmd_pokemart(struct ScriptContext *ctx) +{ + void *ptr = (void *)ScriptReadWord(ctx); + + CreatePokemartMenu(ptr); + ScriptContext1_Stop(); + return TRUE; +} + +bool8 ScrCmd_pokemartdecor(struct ScriptContext *ctx) +{ + void *ptr = (void *)ScriptReadWord(ctx); + + CreateDecorationShop1Menu(ptr); + ScriptContext1_Stop(); + return TRUE; +} + +bool8 ScrCmd_pokemartbp(struct ScriptContext *ctx) +{ + void *ptr = (void *)ScriptReadWord(ctx); + + CreateDecorationShop2Menu(ptr); + ScriptContext1_Stop(); + return TRUE; +} + +bool8 ScrCmd_playslotmachine(struct ScriptContext *ctx) +{ + u8 slotMachineIndex = VarGet(ScriptReadHalfword(ctx)); + + PlaySlotMachine(slotMachineIndex, c2_exit_to_overworld_1_continue_scripts_restart_music); + ScriptContext1_Stop(); + return TRUE; +} + +bool8 ScrCmd_plantberrytree(struct ScriptContext *ctx) +{ + u8 treeId = ScriptReadByte(ctx); + u8 berry = ScriptReadByte(ctx); + u8 growthStage = ScriptReadByte(ctx); + + if (berry == 0) + PlantBerryTree(treeId, 0, growthStage, FALSE); + else + PlantBerryTree(treeId, berry, growthStage, FALSE); + return FALSE; +} + +bool8 ScrCmd_getpricereduction(struct ScriptContext *ctx) +{ + u16 value = VarGet(ScriptReadHalfword(ctx)); + + gScriptResult = GetPriceReduction(value); + return FALSE; +} + +bool8 ScrCmd_choosecontestpkmn(struct ScriptContext *ctx) +{ + sub_81B9404(); + ScriptContext1_Stop(); + return TRUE; +} + + +bool8 ScrCmd_startcontest(struct ScriptContext *ctx) +{ + sub_80F840C(); + ScriptContext1_Stop(); + return TRUE; +} + +bool8 ScrCmd_showcontestresults(struct ScriptContext *ctx) +{ + sub_80F8484(); + ScriptContext1_Stop(); + return TRUE; +} + +bool8 ScrCmd_contestlinktransfer(struct ScriptContext *ctx) +{ + sub_80F84C4(gScriptContestCategory); + ScriptContext1_Stop(); + return TRUE; +} + +bool8 ScrCmd_dofieldeffect(struct ScriptContext *ctx) +{ + u16 effectId = VarGet(ScriptReadHalfword(ctx)); + + sFieldEffectScriptId = effectId; + FieldEffectStart(sFieldEffectScriptId); + return FALSE; +} + +bool8 ScrCmd_setfieldeffect(struct ScriptContext *ctx) +{ + u8 argNum = ScriptReadByte(ctx); + + gFieldEffectArguments[argNum] = (s16)VarGet(ScriptReadHalfword(ctx)); + return FALSE; +} + +static bool8 WaitForFieldEffectFinish(void) +{ + if (!FieldEffectActiveListContains(sFieldEffectScriptId)) + return TRUE; + else + return FALSE; +} + +bool8 ScrCmd_waitfieldeffect(struct ScriptContext *ctx) +{ + sFieldEffectScriptId = VarGet(ScriptReadHalfword(ctx)); + SetupNativeScript(ctx, WaitForFieldEffectFinish); + return TRUE; +} + +bool8 ScrCmd_sethealplace(struct ScriptContext *ctx) +{ + u16 healLocationId = VarGet(ScriptReadHalfword(ctx)); + + Overworld_SetHealLocationWarp(healLocationId); + return FALSE; +} + +bool8 ScrCmd_checkplayergender(struct ScriptContext *ctx) +{ + gScriptResult = gSaveBlock2Ptr->playerGender; + return FALSE; +} + +bool8 ScrCmd_playpokecry(struct ScriptContext *ctx) +{ + u16 species = VarGet(ScriptReadHalfword(ctx)); + u16 mode = VarGet(ScriptReadHalfword(ctx)); + + PlayCry5(species, mode); + return FALSE; +} + +bool8 ScrCmd_waitpokecry(struct ScriptContext *ctx) +{ + SetupNativeScript(ctx, IsCryFinished); + return TRUE; +} + +bool8 ScrCmd_setmaptile(struct ScriptContext *ctx) +{ + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + u16 tileId = VarGet(ScriptReadHalfword(ctx)); + u16 v8 = VarGet(ScriptReadHalfword(ctx)); + + x += 7; + y += 7; + if (!v8) + MapGridSetMetatileIdAt(x, y, tileId); + else + MapGridSetMetatileIdAt(x, y, tileId | 0xC00); + return FALSE; +} + +bool8 ScrCmd_opendoor(struct ScriptContext *ctx) +{ + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + x += 7; + y += 7; + PlaySE(GetDoorSoundEffect(x, y)); + FieldAnimateDoorOpen(x, y); + return FALSE; +} + +bool8 ScrCmd_closedoor(struct ScriptContext *ctx) +{ + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + x += 7; + y += 7; + FieldAnimateDoorClose(x, y); + return FALSE; +} + +static bool8 IsDoorAnimationStopped(void) +{ + if (!FieldIsDoorAnimationRunning()) + return TRUE; + else + return FALSE; +} + +bool8 ScrCmd_waitdooranim(struct ScriptContext *ctx) +{ + SetupNativeScript(ctx, IsDoorAnimationStopped); + return TRUE; +} + +bool8 ScrCmd_setdooropen(struct ScriptContext *ctx) +{ + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + x += 7; + y += 7; + FieldSetDoorOpened(x, y); + return FALSE; +} + +bool8 ScrCmd_setdoorclosed(struct ScriptContext *ctx) +{ + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + x += 7; + y += 7; + FieldSetDoorClosed(x, y); + return FALSE; +} + +bool8 ScrCmd_cmdB1(struct ScriptContext *ctx) +{ + u8 v3 = ScriptReadByte(ctx); + u16 v5 = VarGet(ScriptReadHalfword(ctx)); + u16 v7 = VarGet(ScriptReadHalfword(ctx)); + u16 v9 = VarGet(ScriptReadHalfword(ctx)); + + //ScriptAddElevatorMenuItem(v3, v5, v7, v9); + return FALSE; +} + +bool8 ScrCmd_cmdB2(struct ScriptContext *ctx) +{ + /*ScriptShowElevatorMenu(); + ScriptContext1_Stop(); + return TRUE;*/ + return FALSE; +} + +bool8 ScrCmd_checkcoins(struct ScriptContext *ctx) +{ + u16 *ptr = GetVarPointer(ScriptReadHalfword(ctx)); + *ptr = GetCoins(); + return FALSE; +} + +bool8 ScrCmd_givecoins(struct ScriptContext *ctx) +{ + u16 coins = VarGet(ScriptReadHalfword(ctx)); + + if (GiveCoins(coins) == TRUE) + gScriptResult = 0; + else + gScriptResult = 1; + return FALSE; +} + +bool8 ScrCmd_takecoins(struct ScriptContext *ctx) +{ + u16 coins = VarGet(ScriptReadHalfword(ctx)); + + if (TakeCoins(coins) == TRUE) + gScriptResult = 0; + else + gScriptResult = 1; + return FALSE; +} + +bool8 ScrCmd_cmdD3(struct ScriptContext *ctx) +{ + u16 v1 = VarGet(ScriptReadHalfword(ctx)); + + sMovingNpcId = sub_81A89A0(v1); + return FALSE; +} + +bool8 ScrCmd_cmdD4(struct ScriptContext *ctx) +{ + sub_81A8AF8(); + return FALSE; +} + +bool8 ScrCmd_cmdD5(struct ScriptContext *ctx) +{ + u16 v1 = VarGet(ScriptReadHalfword(ctx)); + + sub_81A8934(v1); + return FALSE; +} + +bool8 ScrCmd_cmdD6(struct ScriptContext *ctx) +{ + sub_81A895C(); + return FALSE; +} + +bool8 ScrCmd_cmdD8(struct ScriptContext *ctx) +{ + gSelectedMapObject = sub_80B47BC(); + return FALSE; +} + +bool8 ScrCmd_cmdD9(struct ScriptContext *ctx) +{ + if (is_c1_link_related_active()) + { + return FALSE; + } + else + { + if (gMapObjects[gSelectedMapObject].active) + { + sub_8098630(); + SetupNativeScript(ctx, sub_8098734); + } + return TRUE; + } +} + +bool8 ScrCmd_cmdCD(struct ScriptContext *ctx) +{ + bool8 obedient = TRUE; + u16 partyIndex = VarGet(ScriptReadHalfword(ctx)); + + SetMonData(&gPlayerParty[partyIndex], MON_DATA_OBEDIENCE, &obedient); + return FALSE; +} + +bool8 ScrCmd_cmdCE(struct ScriptContext *ctx) +{ + u16 partyIndex = VarGet(ScriptReadHalfword(ctx)); + + gScriptResult = GetMonData(&gPlayerParty[partyIndex], MON_DATA_OBEDIENCE, NULL); + return FALSE; +} + +bool8 ScrCmd_cmdCF(struct ScriptContext *ctx) +{ + u8* v1 = sub_8099244(); + + if (v1) + { + ((u8*)gUnknown_020375C0) = ctx->scriptPtr; + ScriptJump(ctx, v1); + } + return FALSE; +} + +bool8 ScrCmd_cmdD1(struct ScriptContext *ctx) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); + + Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); + sub_808D074(player_get_direction_lower_nybble()); + sub_80B0244(); + player_avatar_init_params_reset(); + return TRUE; +} + +bool8 ScrCmd_cmdD2(struct ScriptContext *ctx) +{ + u16 partyIndex = VarGet(ScriptReadHalfword(ctx)); + u8 location = ScriptReadByte(ctx); + + if (partyIndex < PARTY_SIZE) + SetMonData(&gPlayerParty[partyIndex], MON_DATA_MET_LOCATION, &location); + return FALSE; +} + +void sub_809BDB4(void) +{ + sub_819746C(gUnknown_03000F30, 1); + RemoveWindow(gUnknown_03000F30); +} + +bool8 ScrCmd_cmdDD(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 trainerClassId = VarGet(ScriptReadHalfword(ctx)); + + StringCopy(sScriptStringVars[stringVarIndex], GetTrainerClassNameFromId(trainerClassId)); + return FALSE; +} + +bool8 ScrCmd_cmdDE(struct ScriptContext *ctx) +{ + u8 stringVarIndex = ScriptReadByte(ctx); + u16 trainerClassId = VarGet(ScriptReadHalfword(ctx)); + + StringCopy(sScriptStringVars[stringVarIndex], GetTrainerNameFromId(trainerClassId)); + return FALSE; +} + +void sub_809BE48(u16 npcId) +{ + sMovingNpcId = npcId; +} -// .rodata +bool8 ScrCmd_cmdE0(struct ScriptContext *ctx) +{ + u8 mapGroup = ScriptReadByte(ctx); + u8 mapNum = ScriptReadByte(ctx); + u8 warpId = ScriptReadByte(ctx); + u16 x = VarGet(ScriptReadHalfword(ctx)); + u16 y = VarGet(ScriptReadHalfword(ctx)); -// .text + Overworld_SetWarpDestination(mapGroup, mapNum, warpId, x, y); + sub_80AF79C(); + player_avatar_init_params_reset(); + return TRUE; +} diff --git a/sym_ewram.txt b/sym_ewram.txt index 944a51b62..2c021866e 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -680,24 +680,9 @@ gUnknown_020375BC: @ 20375BC gUnknown_020375C0: @ 20375C0 .space 0x4 -gUnknown_020375C4: @ 20375C4 - .space 0x4 - -gUnknown_020375C8: @ 20375C8 - .space 0x2 - -gUnknown_020375CA: @ 20375CA - .space 0x2 - -gUnknown_020375CC: @ 20375CC - .space 0x2 - -gUnknown_020375CE: @ 20375CE - .space 0x2 - -gUnknown_020375D0: @ 20375D0 - .space 0x4 + .include "src/scrcmd.o" + .align 2 gUnknown_020375D4: @ 20375D4 .space 0x2 @@ -878,7 +863,7 @@ gUnknown_02038C00: @ 2038C00 gUnknown_02038C04: @ 2038C04 .space 0x4 -gFieldEffectSpawnParams: @ 2038C08 +gFieldEffectArguments: @ 2038C08 .space 0x20 gUnknown_02038C28: @ 2038C28 @@ -1070,7 +1055,7 @@ gUnknown_02039F2A: @ 2039F2A gUnknown_02039F2B: @ 2039F2B .space 0x1 -gUnknown_02039F2C: @ 2039F2C +gScriptContestCategory: @ 2039F2C .space 0x2 gUnknown_02039F2E: @ 2039F2E -- cgit v1.2.3 From 4178e32ec9b2887b25d353ca51afc3f8a19b3370 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Thu, 12 Oct 2017 17:49:24 +0200 Subject: ABE is matching --- src/battle_util.c | 3274 ++--------------------------------------------------- 1 file changed, 107 insertions(+), 3167 deletions(-) diff --git a/src/battle_util.c b/src/battle_util.c index c6762dd99..a5ecc4b06 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -132,6 +132,8 @@ 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[]; @@ -1859,13 +1861,12 @@ u8 CastformDataTypeChange(u8 bank) return formChange; } -// We meet again, ABE. -#ifdef NONMATCHING +// The largest function in the game, but even it could not save itself from decompiling. u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) { u8 effect = 0; - struct Pokemon* pokeAtk; - struct Pokemon* pokeDef; + struct Pokemon *pokeAtk; + struct Pokemon *pokeDef; u16 speciesAtk; u16 speciesDef; u32 pidAtk; @@ -1893,12 +1894,11 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) // why isn't that check done at the beginning? { - int i; // r4 + u8 moveType; + s32 i; u16 move; - // Hmm... - #define moveType moveArg - //u16 moveType; u8 side; + u8 target1; if (special) gLastUsedAbility = special; @@ -1918,44 +1918,45 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) switch (caseID) { case ABILITYEFFECT_ON_SWITCHIN: // 0 - //_08042A18 if (gBankAttacker >= gNoOfAllBanks) gBankAttacker = bank; switch (gLastUsedAbility) { case ABILITYEFFECT_SWITCH_IN_WEATHER: - //_08042A86 - switch (weather_get_current()) + if (!(gBattleTypeFlags & BATTLE_TYPE_RECORDED)) { - case 3: - case 5: - case 13: - if (!(gBattleWeather & WEATHER_RAIN_ANY)) - { - gBattleWeather = (WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_PERMANENT); - gBattleScripting.animArg1 = 0xA; - gBattleScripting.bank = bank; - effect++; - } - break; - case 8: - if (!(gBattleWeather & WEATHER_SANDSTORM_ANY)) - { - gBattleWeather = (WEATHER_SANDSTORM_PERMANENT | WEATHER_SANDSTORM_TEMPORARY); - gBattleScripting.animArg1 = 0xC; - gBattleScripting.bank = bank; - effect++; - } - break; - case 12: - if (!(gBattleWeather & WEATHER_SUN_ANY)) + switch (weather_get_current()) { - gBattleWeather = (WEATHER_SUN_PERMANENT | WEATHER_SUN_TEMPORARY); - gBattleScripting.animArg1 = 0xB; - gBattleScripting.bank = bank; - effect++; + case 3: + case 5: + case 13: + if (!(gBattleWeather & WEATHER_RAIN_ANY)) + { + gBattleWeather = (WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_PERMANENT); + gBattleScripting.animArg1 = B_ANIM_RAIN_CONTINUES; + gBattleScripting.bank = bank; + effect++; + } + break; + case 8: + if (!(gBattleWeather & WEATHER_SANDSTORM_ANY)) + { + gBattleWeather = (WEATHER_SANDSTORM_PERMANENT | WEATHER_SANDSTORM_TEMPORARY); + gBattleScripting.animArg1 = B_ANIM_SANDSTORM_CONTINUES; + gBattleScripting.bank = bank; + effect++; + } + break; + case 12: + if (!(gBattleWeather & WEATHER_SUN_ANY)) + { + gBattleWeather = (WEATHER_SUN_PERMANENT | WEATHER_SUN_TEMPORARY); + gBattleScripting.animArg1 = B_ANIM_SUN_CONTINUES; + gBattleScripting.bank = bank; + effect++; + } + break; } - break; } if (effect) { @@ -1964,7 +1965,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_DRIZZLE: - //_08042B78 if (!(gBattleWeather & WEATHER_RAIN_PERMANENT)) { gBattleWeather = (WEATHER_RAIN_PERMANENT | WEATHER_RAIN_TEMPORARY); @@ -1974,7 +1974,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_SAND_STREAM: - //_08042BA8 if (!(gBattleWeather & WEATHER_SANDSTORM_PERMANENT)) { gBattleWeather = (WEATHER_SANDSTORM_PERMANENT | WEATHER_SANDSTORM_TEMPORARY); @@ -1984,7 +1983,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_DROUGHT: - //_08042BD8 if (!(gBattleWeather & WEATHER_SUN_PERMANENT)) { gBattleWeather = (WEATHER_SUN_PERMANENT | WEATHER_SUN_TEMPORARY); @@ -1994,7 +1992,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_INTIMIDATE: - //_08042C08 if (!(gSpecialStatuses[bank].intimidatedPoke)) { gStatuses3[bank] |= STATUS3_INTIMIDATE_POKES; @@ -2002,13 +1999,12 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_FORECAST: - //_08042C3C effect = CastformDataTypeChange(bank); if (effect != 0) { BattleScriptPushCursorAndCallback(BattleScript_CastformChange); gBattleScripting.bank = bank; - gBattleStruct->formToChangeInto = effect - 1; + *(&gBattleStruct->formToChangeInto) = effect - 1; } break; case ABILITY_TRACE: @@ -2021,18 +2017,15 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) case ABILITY_CLOUD_NINE: case ABILITY_AIR_LOCK: { - u8 i; - - for (i = 0; i < gNoOfAllBanks; i++) + // that's a weird choice for a variable, why not use i or bank? + for (target1 = 0; target1 < gNoOfAllBanks; target1++) { - // TODO: i should be in r6 here - //asm("":::"r4","r5"); - effect = CastformDataTypeChange(i); + effect = CastformDataTypeChange(target1); if (effect != 0) { BattleScriptPushCursorAndCallback(BattleScript_CastformChange); - gBattleScripting.bank = i; - gBattleStruct->formToChangeInto = effect - 1; + gBattleScripting.bank = target1; + *(&gBattleStruct->formToChangeInto) = effect - 1; break; } } @@ -2041,18 +2034,16 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_ENDTURN: // 1 - //_08042CDC if (gBattleMons[bank].hp != 0) { gBankAttacker = bank; switch (gLastUsedAbility) { case ABILITY_RAIN_DISH: - //_08042D22 if (WEATHER_HAS_EFFECT && (gBattleWeather & WEATHER_RAIN_ANY) && gBattleMons[bank].maxHP > gBattleMons[bank].hp) { - gLastUsedAbility = ABILITY_RAIN_DISH; //why + gLastUsedAbility = ABILITY_RAIN_DISH; // why BattleScriptPushCursorAndCallback(BattleScript_RainDishActivates); gBattleMoveDamage = gBattleMons[bank].maxHP / 16; if (gBattleMoveDamage == 0) @@ -2062,7 +2053,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_SHED_SKIN: - //_08042DA0 if ((gBattleMons[bank].status1 & STATUS_ANY) && (Random() % 3) == 0) { if (gBattleMons[bank].status1 & (STATUS_POISON | STATUS_TOXIC_POISON)) @@ -2076,7 +2066,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (gBattleMons[bank].status1 & STATUS_FREEZE) StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn); gBattleMons[bank].status1 = 0; - gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); // fix nighmare glitch + gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); // fix nightmare glitch gBattleScripting.bank = gActiveBank = bank; BattleScriptPushCursorAndCallback(BattleScript_ShedSkinActivates); EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1); @@ -2085,7 +2075,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_SPEED_BOOST: - //_08042E84 if (gBattleMons[bank].statStages[STAT_STAGE_SPEED] < 0xC && gDisableStructs[bank].isFirstTurn != 2) { gBattleMons[bank].statStages[STAT_STAGE_SPEED]++; @@ -2103,7 +2092,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_MOVES_BLOCK: // 2 - //_08042EF8 if (gLastUsedAbility == ABILITY_SOUNDPROOF) { for (i = 0; sSoundMovesTable[i] != 0xFFFF; i++) @@ -2132,6 +2120,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) gBattlescriptCurrInstr = BattleScript_MoveHPDrain; else gBattlescriptCurrInstr = BattleScript_MoveHPDrain_PPLoss; + effect = 1; } break; @@ -2142,11 +2131,11 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) gBattlescriptCurrInstr = BattleScript_MoveHPDrain; else gBattlescriptCurrInstr = BattleScript_MoveHPDrain_PPLoss; + effect = 1; } break; case ABILITY_FLASH_FIRE: - //_0804305C if (moveType == TYPE_FIRE && !(gBattleMons[bank].status1 & STATUS_FREEZE)) { if (!(gBattleResources->flags->flags[bank] & UNKNOWN_FLAG_FLASH_FIRE)) @@ -2156,6 +2145,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) gBattlescriptCurrInstr = BattleScript_FlashFireBoost; else gBattlescriptCurrInstr = BattleScript_FlashFireBoost_PPLoss; + gBattleResources->flags->flags[bank] |= UNKNOWN_FLAG_FLASH_FIRE; effect = 2; } @@ -2166,6 +2156,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) gBattlescriptCurrInstr = BattleScript_FlashFireBoost; else gBattlescriptCurrInstr = BattleScript_FlashFireBoost_PPLoss; + effect = 2; } } @@ -2176,9 +2167,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 = BattleScript_MoveHPDrain; + gBattlescriptCurrInstr = gUnknown_082DB592; else - gBattlescriptCurrInstr = BattleScript_MoveHPDrain_PPLoss; + gBattlescriptCurrInstr = gUnknown_082DB591; } else { @@ -2191,11 +2182,9 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITYEFFECT_CONTACT: // 4 - //_080431AC switch (gLastUsedAbility) { case ABILITY_COLOR_CHANGE: - //_08043288 if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) && move != MOVE_STRUGGLE && gBattleMoves[move].power != 0 @@ -2206,17 +2195,13 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) { gBattleMons[bank].type1 = moveType; gBattleMons[bank].type2 = moveType; - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 3; - gBattleTextBuff1[2] = moveType; - gBattleTextBuff1[3] = 0xFF; + PREPARE_TYPE_BUFFER(gBattleTextBuff1, moveType) BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_ColorChangeActivates; effect++; } break; case ABILITY_ROUGH_SKIN: - //_08043350 if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg @@ -2232,7 +2217,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_EFFECT_SPORE: - //_08043410 if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg @@ -2244,9 +2228,11 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) { gBattleCommunication[MOVE_EFFECT_BYTE] = Random() & 3; } while (gBattleCommunication[MOVE_EFFECT_BYTE] == 0); - if (gBattleCommunication[MOVE_EFFECT_BYTE] == 3) - gBattleCommunication[MOVE_EFFECT_BYTE] += 2; - gBattleCommunication[MOVE_EFFECT_BYTE] += 0x40; + + if (gBattleCommunication[MOVE_EFFECT_BYTE] == MOVE_EFFECT_BURN) + gBattleCommunication[MOVE_EFFECT_BYTE] += 2; // 5 MOVE_EFFECT_PARALYSIS + + gBattleCommunication[MOVE_EFFECT_BYTE] += MOVE_EFFECT_AFFECTS_USER; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; @@ -2261,7 +2247,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) && (Random() % 3) == 0) { - gBattleCommunication[MOVE_EFFECT_BYTE] = 0x42; + gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_POISON; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; @@ -2276,7 +2262,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) && (Random() % 3) == 0) { - gBattleCommunication[MOVE_EFFECT_BYTE] = 0x45; + gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_PARALYSIS; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; @@ -2291,7 +2277,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) && (Random() % 3) == 0) { - gBattleCommunication[MOVE_EFFECT_BYTE] = 0x43; + gBattleCommunication[MOVE_EFFECT_BYTE] = MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_BURN; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; @@ -2299,7 +2285,6 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; case ABILITY_CUTE_CHARM: - //_0804379C if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) && gBattleMons[gBankAttacker].hp != 0 && !gProtectStructs[gBankAttacker].confusionSelfDmg @@ -2310,10 +2295,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) && gBattleMons[gBankAttacker].ability != ABILITY_OBLIVIOUS && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) && !(gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION) - && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != 0xFF - && GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) != 0xFF) + && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != MON_GENDERLESS + && GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) != MON_GENDERLESS) { - gBattleMons[gBankAttacker].status2 |= (gBitTable[gBankTarget] << 0x10); + gBattleMons[gBankAttacker].status2 |= STATUS2_INFATUATED_WITH(gBankTarget); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_CuteCharmActivates; effect++; @@ -2323,28 +2308,26 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) break; case ABILITYEFFECT_IMMUNITY: // 5 { - #define i bank - for (i = 0; i < gNoOfAllBanks; i++) + for (bank = 0; bank < gNoOfAllBanks; bank++) { - switch (gBattleMons[i].ability) + switch (gBattleMons[bank].ability) { case ABILITY_IMMUNITY: - if (gBattleMons[i].status1 & (STATUS_POISON | STATUS_TOXIC_POISON | 0xF00)) // TODO: what is 0xF00? + if (gBattleMons[bank].status1 & (STATUS_POISON | STATUS_TOXIC_POISON | STATUS_TOXIC_COUNTER)) { StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn); effect = 1; } break; case ABILITY_OWN_TEMPO: - //_08043A7C - if (gBattleMons[i].status2 & STATUS2_CONFUSION) + if (gBattleMons[bank].status2 & STATUS2_CONFUSION) { StringCopy(gBattleTextBuff1, gStatusConditionString_ConfusionJpn); effect = 2; } break; case ABILITY_LIMBER: - if (gBattleMons[i].status1 & STATUS_PARALYSIS) + if (gBattleMons[bank].status1 & STATUS_PARALYSIS) { StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn); effect = 1; @@ -2352,30 +2335,29 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) break; case ABILITY_INSOMNIA: case ABILITY_VITAL_SPIRIT: - if (gBattleMons[i].status1 & STATUS_SLEEP) + if (gBattleMons[bank].status1 & STATUS_SLEEP) { - gBattleMons[i].status2 &= ~(STATUS2_NIGHTMARE); + gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); effect = 1; } break; case ABILITY_WATER_VEIL: - if (gBattleMons[i].status1 & STATUS_BURN) + if (gBattleMons[bank].status1 & STATUS_BURN) { StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn); effect = 1; } break; case ABILITY_MAGMA_ARMOR: - if (gBattleMons[i].status1 & STATUS_FREEZE) + if (gBattleMons[bank].status1 & STATUS_FREEZE) { StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn); effect = 1; } break; case ABILITY_OBLIVIOUS: - //_08043B70 - if (gBattleMons[i].status2 & STATUS2_INFATUATION) + if (gBattleMons[bank].status2 & STATUS2_INFATUATION) { StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn); effect = 3; @@ -2387,56 +2369,52 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) switch (effect) { case 1: // status cleared - gBattleMons[i].status1 = 0; + gBattleMons[bank].status1 = 0; break; case 2: // get rid of confusion - gBattleMons[i].status2 &= ~(STATUS2_CONFUSION); + gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION); break; case 3: // get rid of infatuation - gBattleMons[i].status2 &= ~(STATUS2_INFATUATION); + gBattleMons[bank].status2 &= ~(STATUS2_INFATUATION); break; } + BattleScriptPushCursor(); gBattlescriptCurrInstr = gUnknown_082DB68C; - gBattleScripting.bank = i; - gActiveBank = i; + gBattleScripting.bank = bank; + gActiveBank = bank; EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); MarkBufferBankForExecution(gActiveBank); return effect; } } - #undef i } break; case ABILITYEFFECT_FORECAST: // 6 + for (bank = 0; bank < gNoOfAllBanks; bank++) { - #define i bank - for (i = 0; i < gNoOfAllBanks; i++) + if (gBattleMons[bank].ability == ABILITY_FORECAST) { - if (gBattleMons[i].ability == ABILITY_FORECAST) + effect = CastformDataTypeChange(bank); + if (effect) { - effect = CastformDataTypeChange(i); - if (effect) - { - BattleScriptPushCursorAndCallback(BattleScript_CastformChange); - gBattleScripting.bank = i; - gBattleStruct->formToChangeInto = effect - 1; - return effect; - } + BattleScriptPushCursorAndCallback(BattleScript_CastformChange); + gBattleScripting.bank = bank; + *(&gBattleStruct->formToChangeInto) = effect - 1; + return effect; } } - #undef i } break; case ABILITYEFFECT_SYNCHRONIZE: // 7 - //_08043CBC if (gLastUsedAbility == ABILITY_SYNCHRONIZE && (gHitMarker & HITMARKER_SYNCHRONISE_EFFECT)) { gHitMarker &= ~(HITMARKER_SYNCHRONISE_EFFECT); - gBattleStruct->synchronizeMoveEffect &= 0x3F; - if (gBattleStruct->synchronizeMoveEffect == 6) - gBattleStruct->synchronizeMoveEffect = 2; - gBattleCommunication[MOVE_EFFECT_BYTE] = gBattleStruct->synchronizeMoveEffect + 0x40; + gBattleStruct->synchronizeMoveEffect &= ~(MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN); + if (gBattleStruct->synchronizeMoveEffect == MOVE_EFFECT_TOXIC) + gBattleStruct->synchronizeMoveEffect = MOVE_EFFECT_POISON; + + gBattleCommunication[MOVE_EFFECT_BYTE] = gBattleStruct->synchronizeMoveEffect + MOVE_EFFECT_AFFECTS_USER; gBattleScripting.bank = gBankTarget; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SynchronizeActivates; @@ -2448,9 +2426,10 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) if (gLastUsedAbility == ABILITY_SYNCHRONIZE && (gHitMarker & HITMARKER_SYNCHRONISE_EFFECT)) { gHitMarker &= ~(HITMARKER_SYNCHRONISE_EFFECT); - gBattleStruct->synchronizeMoveEffect &= 0x3F; - if (gBattleStruct->synchronizeMoveEffect == 6) - gBattleStruct->synchronizeMoveEffect = 2; + gBattleStruct->synchronizeMoveEffect &= ~(MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN); + if (gBattleStruct->synchronizeMoveEffect == MOVE_EFFECT_TOXIC) + gBattleStruct->synchronizeMoveEffect = MOVE_EFFECT_POISON; + gBattleCommunication[MOVE_EFFECT_BYTE] = gBattleStruct->synchronizeMoveEffect; gBattleScripting.bank = gBankAttacker; BattleScriptPushCursor(); @@ -2478,15 +2457,16 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) { if (gBattleMons[i].ability == ABILITY_TRACE && (gStatuses3[i] & STATUS3_TRACE)) { - u8 opposite = (GetBankIdentity(i) ^ 1) & 1; - u8 target1 = GetBankByIdentity(opposite); - u8 target2 = GetBankByIdentity(opposite + 2); + u8 target2; + side = (GetBankIdentity(i) ^ BIT_SIDE) & BIT_SIDE; // side of the opposing pokemon + target1 = GetBankByIdentity(side); + target2 = GetBankByIdentity(side + BIT_MON); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { if (gBattleMons[target1].ability != 0 && gBattleMons[target1].hp != 0 && gBattleMons[target2].ability != 0 && gBattleMons[target2].hp != 0) { - gActiveBank = GetBankByIdentity(((Random() & 1) * 2) | opposite); + gActiveBank = GetBankByIdentity(((Random() & 1) * 2) | side); gBattleMons[i].ability = gBattleMons[gActiveBank].ability; gLastUsedAbility = gBattleMons[gActiveBank].ability; effect++; @@ -2522,16 +2502,8 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) gStatuses3[i] &= ~(STATUS3_TRACE); gBattleScripting.bank = i; - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 4; - gBattleTextBuff1[2] = gActiveBank; - gBattleTextBuff1[3] = gBattlePartyID[gActiveBank]; - gBattleTextBuff1[4] = EOS; - - gBattleTextBuff2[0] = 0xFD; - gBattleTextBuff2[1] = 9; - gBattleTextBuff2[2] = gLastUsedAbility; - gBattleTextBuff2[3] = EOS; + PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gActiveBank, gBattlePartyID[gActiveBank]) + PREPARE_ABILITY_BUFFER(gBattleTextBuff2, gLastUsedAbility) break; } } @@ -2656,3045 +2628,13 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) } break; } - if (effect && caseID < 0xC && gLastUsedAbility != 0xFF) + + if (effect && caseID < ABILITYEFFECT_CHECK_OTHER_SIDE && gLastUsedAbility != 0xFF) RecordAbilityBattle(bank, gLastUsedAbility); } return effect; } -#else -__attribute__((naked)) -u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) -{ - asm( - "\n\ - .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, 0x28\n\ - ldr r4, [sp, 0x48]\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - str r0, [sp, 0x4]\n\ - lsls r1, 24\n\ - lsrs r1, 24\n\ - mov r10, r1\n\ - lsls r2, 24\n\ - lsrs r6, r2, 24\n\ - lsls r3, 24\n\ - lsrs r3, 24\n\ - mov r8, r3\n\ - lsls r4, 16\n\ - lsrs r4, 16\n\ - movs r0, 0\n\ - mov r9, r0\n\ - ldr r5, =gBankAttacker\n\ - ldr r1, =gNoOfAllBanks\n\ - ldrb r0, [r5]\n\ - ldrb r1, [r1]\n\ - cmp r0, r1\n\ - bcc _08042864\n\ - mov r1, r10\n\ - strb r1, [r5]\n\ -_08042864:\n\ - ldrb r0, [r5]\n\ - bl GetBankSide\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bne _08042894\n\ - ldr r1, =gBattlePartyID\n\ - ldrb r0, [r5]\n\ - lsls r0, 1\n\ - adds r0, r1\n\ - ldrh r1, [r0]\n\ - movs r0, 0x64\n\ - muls r1, r0\n\ - ldr r0, =gPlayerParty\n\ - b _080428A4\n\ - .pool\n\ -_08042894:\n\ - ldr r1, =gBattlePartyID\n\ - ldrb r0, [r5]\n\ - lsls r0, 1\n\ - adds r0, r1\n\ - ldrh r1, [r0]\n\ - movs r0, 0x64\n\ - muls r1, r0\n\ - ldr r0, =gEnemyParty\n\ -_080428A4:\n\ - adds r7, r1, r0\n\ - ldr r5, =gBankTarget\n\ - ldr r1, =gNoOfAllBanks\n\ - ldrb r0, [r5]\n\ - ldrb r1, [r1]\n\ - cmp r0, r1\n\ - bcc _080428B6\n\ - mov r2, r10\n\ - strb r2, [r5]\n\ -_080428B6:\n\ - ldrb r0, [r5]\n\ - bl GetBankSide\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - bne _080428E8\n\ - ldr r1, =gBattlePartyID\n\ - ldrb r0, [r5]\n\ - lsls r0, 1\n\ - adds r0, r1\n\ - ldrh r1, [r0]\n\ - movs r0, 0x64\n\ - muls r1, r0\n\ - ldr r0, =gPlayerParty\n\ - b _080428F8\n\ - .pool\n\ -_080428E8:\n\ - ldr r1, =gBattlePartyID\n\ - ldrb r0, [r5]\n\ - lsls r0, 1\n\ - adds r0, r1\n\ - ldrh r1, [r0]\n\ - movs r0, 0x64\n\ - muls r1, r0\n\ - ldr r0, =gEnemyParty\n\ -_080428F8:\n\ - adds r5, r1, r0\n\ - adds r0, r7, 0\n\ - movs r1, 0xB\n\ - bl GetMonData\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - str r0, [sp, 0x8]\n\ - adds r0, r7, 0\n\ - movs r1, 0\n\ - bl GetMonData\n\ - str r0, [sp, 0x10]\n\ - adds r0, r5, 0\n\ - movs r1, 0xB\n\ - bl GetMonData\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - str r0, [sp, 0xC]\n\ - adds r0, r5, 0\n\ - movs r1, 0\n\ - bl GetMonData\n\ - str r0, [sp, 0x14]\n\ - ldr r0, =gBattleTypeFlags\n\ - ldr r0, [r0]\n\ - movs r1, 0x80\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0804293A\n\ - bl _0804443A\n\ -_0804293A:\n\ - mov r3, r8\n\ - cmp r3, 0\n\ - beq _08042958\n\ - ldr r0, =gLastUsedAbility\n\ - strb r3, [r0]\n\ - adds r7, r0, 0\n\ - b _0804296E\n\ - .pool\n\ -_08042958:\n\ - ldr r2, =gLastUsedAbility\n\ - ldr r1, =gBattleMons\n\ - movs r0, 0x58\n\ - mov r5, r10\n\ - muls r5, r0\n\ - adds r0, r5, 0\n\ - adds r0, r1\n\ - adds r0, 0x20\n\ - ldrb r0, [r0]\n\ - strb r0, [r2]\n\ - adds r7, r2, 0\n\ -_0804296E:\n\ - cmp r4, 0\n\ - beq _08042980\n\ - adds r5, r4, 0\n\ - b _08042984\n\ - .pool\n\ -_08042980:\n\ - ldr r0, =gCurrentMove\n\ - ldrh r5, [r0]\n\ -_08042984:\n\ - ldr r1, =gBattleStruct\n\ - ldr r0, [r1]\n\ - ldrb r0, [r0, 0x13]\n\ - mov r8, r1\n\ - cmp r0, 0\n\ - beq _080429A0\n\ - movs r3, 0x3F\n\ - ands r3, r0\n\ - b _080429AC\n\ - .pool\n\ -_080429A0:\n\ - ldr r1, =gBattleMoves\n\ - lsls r0, r5, 1\n\ - adds r0, r5\n\ - lsls r0, 2\n\ - adds r0, r1\n\ - ldrb r3, [r0, 0x2]\n\ -_080429AC:\n\ - ldr r0, [sp, 0x4]\n\ - cmp r0, 0x13\n\ - bls _080429B6\n\ - bl _0804441E\n\ -_080429B6:\n\ - lsls r0, 2\n\ - ldr r1, =_080429C8\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ - .pool\n\ - .align 2, 0\n\ -_080429C8:\n\ - .4byte _08042A18\n\ - .4byte _08042CDC\n\ - .4byte _08042EF8\n\ - .4byte _08042F8C\n\ - .4byte _080431AC\n\ - .4byte _08043908\n\ - .4byte _08043C6C\n\ - .4byte _08043CBC\n\ - .4byte _08043D40\n\ - .4byte _08043DC4\n\ - .4byte _08043FE4\n\ - .4byte _08043E08\n\ - .4byte _08044028\n\ - .4byte _08044084\n\ - .4byte _080440E0\n\ - .4byte _080441DC\n\ - .4byte _08044220\n\ - .4byte _0804427C\n\ - .4byte _080443EC\n\ - .4byte _08044196\n\ -_08042A18:\n\ - ldr r2, =gBankAttacker\n\ - ldr r0, =gNoOfAllBanks\n\ - ldrb r1, [r2]\n\ - adds r5, r0, 0\n\ - ldrb r3, [r5]\n\ - cmp r1, r3\n\ - bcc _08042A2A\n\ - mov r0, r10\n\ - strb r0, [r2]\n\ -_08042A2A:\n\ - ldrb r0, [r7]\n\ - cmp r0, 0x2D\n\ - bne _08042A32\n\ - b _08042BA8\n\ -_08042A32:\n\ - cmp r0, 0x2D\n\ - bgt _08042A64\n\ - cmp r0, 0xD\n\ - bne _08042A3C\n\ - b _08042CA4\n\ -_08042A3C:\n\ - cmp r0, 0xD\n\ - bgt _08042A54\n\ - cmp r0, 0x2\n\ - bne _08042A46\n\ - b _08042B78\n\ -_08042A46:\n\ - bl _0804441E\n\ - .pool\n\ -_08042A54:\n\ - cmp r0, 0x16\n\ - bne _08042A5A\n\ - b _08042C08\n\ -_08042A5A:\n\ - cmp r0, 0x24\n\ - bne _08042A60\n\ - b _08042C68\n\ -_08042A60:\n\ - bl _0804441E\n\ -_08042A64:\n\ - cmp r0, 0x46\n\ - bne _08042A6A\n\ - b _08042BD8\n\ -_08042A6A:\n\ - cmp r0, 0x46\n\ - bgt _08042A78\n\ - cmp r0, 0x3B\n\ - bne _08042A74\n\ - b _08042C3C\n\ -_08042A74:\n\ - bl _0804441E\n\ -_08042A78:\n\ - cmp r0, 0x4D\n\ - bne _08042A7E\n\ - b _08042CA4\n\ -_08042A7E:\n\ - cmp r0, 0xFF\n\ - beq _08042A86\n\ - bl _0804441E\n\ -_08042A86:\n\ - ldr r0, =gBattleTypeFlags\n\ - ldr r0, [r0]\n\ - movs r1, 0x80\n\ - lsls r1, 17\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08042B4C\n\ - bl weather_get_current\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - subs r0, 0x3\n\ - cmp r0, 0xA\n\ - bhi _08042B4C\n\ - lsls r0, 2\n\ - ldr r1, =_08042AB4\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ - .pool\n\ - .align 2, 0\n\ -_08042AB4:\n\ - .4byte _08042AE0\n\ - .4byte _08042B4C\n\ - .4byte _08042AE0\n\ - .4byte _08042B4C\n\ - .4byte _08042B4C\n\ - .4byte _08042B04\n\ - .4byte _08042B4C\n\ - .4byte _08042B4C\n\ - .4byte _08042B4C\n\ - .4byte _08042B28\n\ - .4byte _08042AE0\n\ -_08042AE0:\n\ - ldr r2, =gBattleWeather\n\ - ldrh r1, [r2]\n\ - movs r0, 0x7\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08042B4C\n\ - movs r0, 0x5\n\ - strh r0, [r2]\n\ - ldr r1, =gBattleScripting\n\ - movs r0, 0xA\n\ - strb r0, [r1, 0x10]\n\ - mov r2, r10\n\ - strb r2, [r1, 0x17]\n\ - b _08042B42\n\ - .pool\n\ -_08042B04:\n\ - ldr r3, =gBattleWeather\n\ - ldrh r1, [r3]\n\ - movs r2, 0x18\n\ - adds r0, r2, 0\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08042B4C\n\ - strh r2, [r3]\n\ - ldr r1, =gBattleScripting\n\ - movs r0, 0xC\n\ - strb r0, [r1, 0x10]\n\ - mov r3, r10\n\ - strb r3, [r1, 0x17]\n\ - b _08042B42\n\ - .pool\n\ -_08042B28:\n\ - ldr r3, =gBattleWeather\n\ - ldrh r1, [r3]\n\ - movs r2, 0x60\n\ - adds r0, r2, 0\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08042B4C\n\ - strh r2, [r3]\n\ - ldr r1, =gBattleScripting\n\ - movs r0, 0xB\n\ - strb r0, [r1, 0x10]\n\ - mov r5, r10\n\ - strb r5, [r1, 0x17]\n\ -_08042B42:\n\ - mov r0, r9\n\ - adds r0, 0x1\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r9, r0\n\ -_08042B4C:\n\ - mov r0, r9\n\ - cmp r0, 0\n\ - bne _08042B56\n\ - bl _0804443A\n\ -_08042B56:\n\ - bl weather_get_current\n\ - ldr r1, =gBattleCommunication\n\ - strb r0, [r1, 0x5]\n\ - ldr r0, =gUnknown_082DACE7\n\ - bl BattleScriptPushCursorAndCallback\n\ - bl _0804441E\n\ - .pool\n\ -_08042B78:\n\ - ldr r2, =gBattleWeather\n\ - ldrh r1, [r2]\n\ - movs r0, 0x4\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08042B88\n\ - bl _0804441E\n\ -_08042B88:\n\ - movs r0, 0x5\n\ - strh r0, [r2]\n\ - ldr r0, =BattleScript_DrizzleActivates\n\ - bl BattleScriptPushCursorAndCallback\n\ - ldr r0, =gBattleScripting\n\ - mov r1, r10\n\ - strb r1, [r0, 0x17]\n\ - bl _080443D0\n\ - .pool\n\ -_08042BA8:\n\ - ldr r2, =gBattleWeather\n\ - ldrh r1, [r2]\n\ - movs r0, 0x10\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08042BB8\n\ - bl _0804441E\n\ -_08042BB8:\n\ - movs r0, 0x18\n\ - strh r0, [r2]\n\ - ldr r0, =BattleScript_SandstreamActivates\n\ - bl BattleScriptPushCursorAndCallback\n\ - ldr r0, =gBattleScripting\n\ - mov r2, r10\n\ - strb r2, [r0, 0x17]\n\ - bl _080443D0\n\ - .pool\n\ -_08042BD8:\n\ - ldr r2, =gBattleWeather\n\ - ldrh r1, [r2]\n\ - movs r0, 0x40\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08042BE8\n\ - bl _0804441E\n\ -_08042BE8:\n\ - movs r0, 0x60\n\ - strh r0, [r2]\n\ - ldr r0, =BattleScript_DroughtActivates\n\ - bl BattleScriptPushCursorAndCallback\n\ - ldr r0, =gBattleScripting\n\ - mov r3, r10\n\ - strb r3, [r0, 0x17]\n\ - bl _080443D0\n\ - .pool\n\ -_08042C08:\n\ - ldr r0, =gSpecialStatuses\n\ - mov r5, r10\n\ - lsls r2, r5, 2\n\ - adds r1, r2, r5\n\ - lsls r1, 2\n\ - adds r3, r1, r0\n\ - ldrb r0, [r3]\n\ - lsls r0, 28\n\ - cmp r0, 0\n\ - bge _08042C20\n\ - bl _0804441E\n\ -_08042C20:\n\ - ldr r1, =gStatuses3\n\ - adds r1, r2, r1\n\ - ldr r0, [r1]\n\ - movs r2, 0x80\n\ - lsls r2, 12\n\ - orrs r0, r2\n\ - str r0, [r1]\n\ - ldrb r0, [r3]\n\ - movs r1, 0x8\n\ - b _08042C92\n\ - .pool\n\ -_08042C3C:\n\ - mov r0, r10\n\ - bl CastformDataTypeChange\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r9, r0\n\ - cmp r0, 0\n\ - bne _08042C50\n\ - bl _0804443A\n\ -_08042C50:\n\ - ldr r0, =BattleScript_CastformChange\n\ - bl BattleScriptPushCursorAndCallback\n\ - ldr r0, =gBattleScripting\n\ - mov r1, r10\n\ - strb r1, [r0, 0x17]\n\ - bl _080442E2\n\ - .pool\n\ -_08042C68:\n\ - ldr r0, =gSpecialStatuses\n\ - mov r3, r10\n\ - lsls r2, r3, 2\n\ - adds r1, r2, r3\n\ - lsls r1, 2\n\ - adds r3, r1, r0\n\ - ldrb r0, [r3]\n\ - lsls r0, 27\n\ - cmp r0, 0\n\ - bge _08042C80\n\ - bl _0804441E\n\ -_08042C80:\n\ - ldr r1, =gStatuses3\n\ - adds r1, r2, r1\n\ - ldr r0, [r1]\n\ - movs r2, 0x80\n\ - lsls r2, 13\n\ - orrs r0, r2\n\ - str r0, [r1]\n\ - ldrb r0, [r3]\n\ - movs r1, 0x10\n\ -_08042C92:\n\ - orrs r0, r1\n\ - strb r0, [r3]\n\ - bl _0804441E\n\ - .pool\n\ -_08042CA4:\n\ - movs r6, 0\n\ - ldrb r5, [r5]\n\ - cmp r6, r5\n\ - bcc _08042CB0\n\ - bl _0804441E\n\ -_08042CB0:\n\ - adds r0, r6, 0\n\ - bl CastformDataTypeChange\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r9, r0\n\ - cmp r0, 0\n\ - beq _08042CC4\n\ - bl _080442D8\n\ -_08042CC4:\n\ - adds r0, r6, 0x1\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - ldr r0, =gNoOfAllBanks\n\ - ldrb r0, [r0]\n\ - cmp r6, r0\n\ - bcc _08042CB0\n\ - bl _0804441E\n\ - .pool\n\ -_08042CDC:\n\ - ldr r5, =gBattleMons\n\ - mov r8, r5\n\ - movs r0, 0x58\n\ - mov r6, r10\n\ - muls r6, r0\n\ - adds r4, r6, r5\n\ - ldrh r0, [r4, 0x28]\n\ - cmp r0, 0\n\ - bne _08042CF2\n\ - bl _0804441E\n\ -_08042CF2:\n\ - ldr r0, =gBankAttacker\n\ - mov r1, r10\n\ - strb r1, [r0]\n\ - ldrb r5, [r7]\n\ - cmp r5, 0x2C\n\ - beq _08042D22\n\ - cmp r5, 0x2C\n\ - bgt _08042D14\n\ - cmp r5, 0x3\n\ - bne _08042D08\n\ - b _08042E84\n\ -_08042D08:\n\ - bl _0804441E\n\ - .pool\n\ -_08042D14:\n\ - cmp r5, 0x36\n\ - bne _08042D1A\n\ - b _08042ED0\n\ -_08042D1A:\n\ - cmp r5, 0x3D\n\ - beq _08042DA0\n\ - bl _0804441E\n\ -_08042D22:\n\ - movs r0, 0\n\ - str r0, [sp]\n\ - movs r0, 0x13\n\ - movs r1, 0\n\ - movs r2, 0xD\n\ - movs r3, 0\n\ - bl AbilityBattleEffects\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0\n\ - beq _08042D3E\n\ - bl _0804441E\n\ -_08042D3E:\n\ - str r0, [sp]\n\ - movs r0, 0x13\n\ - movs r1, 0\n\ - movs r2, 0x4D\n\ - movs r3, 0\n\ - bl AbilityBattleEffects\n\ - lsls r0, 24\n\ - cmp r0, 0\n\ - beq _08042D56\n\ - bl _0804441E\n\ -_08042D56:\n\ - ldr r0, =gBattleWeather\n\ - ldrh r1, [r0]\n\ - movs r0, 0x7\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08042D66\n\ - bl _0804441E\n\ -_08042D66:\n\ - ldrh r0, [r4, 0x2C]\n\ - ldrh r2, [r4, 0x28]\n\ - cmp r0, r2\n\ - bhi _08042D72\n\ - bl _0804441E\n\ -_08042D72:\n\ - strb r5, [r7]\n\ - ldr r0, =BattleScript_RainDishActivates\n\ - bl BattleScriptPushCursorAndCallback\n\ - ldr r1, =gBattleMoveDamage\n\ - ldrh r0, [r4, 0x2C]\n\ - lsrs r0, 4\n\ - str r0, [r1]\n\ - cmp r0, 0\n\ - bne _08042D8A\n\ - movs r0, 0x1\n\ - str r0, [r1]\n\ -_08042D8A:\n\ - ldr r0, [r1]\n\ - negs r0, r0\n\ - str r0, [r1]\n\ - bl _080443D0\n\ - .pool\n\ -_08042DA0:\n\ - mov r0, r8\n\ - adds r0, 0x4C\n\ - adds r5, r6, r0\n\ - ldrb r0, [r5]\n\ - cmp r0, 0\n\ - bne _08042DB0\n\ - bl _0804441E\n\ -_08042DB0:\n\ - bl Random\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - movs r1, 0x3\n\ - bl __umodsi3\n\ - lsls r0, 16\n\ - lsrs r4, r0, 16\n\ - cmp r4, 0\n\ - beq _08042DCA\n\ - bl _0804441E\n\ -_08042DCA:\n\ - ldr r0, [r5]\n\ - movs r1, 0x88\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08042DDC\n\ - ldr r0, =gBattleTextBuff1\n\ - ldr r1, =gStatusConditionString_PoisonJpn\n\ - bl StringCopy\n\ -_08042DDC:\n\ - ldr r0, [r5]\n\ - movs r1, 0x7\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08042DEE\n\ - ldr r0, =gBattleTextBuff1\n\ - ldr r1, =gStatusConditionString_SleepJpn\n\ - bl StringCopy\n\ -_08042DEE:\n\ - ldr r0, [r5]\n\ - movs r1, 0x40\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08042E00\n\ - ldr r0, =gBattleTextBuff1\n\ - ldr r1, =gStatusConditionString_ParalysisJpn\n\ - bl StringCopy\n\ -_08042E00:\n\ - ldr r0, [r5]\n\ - movs r1, 0x10\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08042E12\n\ - ldr r0, =gBattleTextBuff1\n\ - ldr r1, =gStatusConditionString_BurnJpn\n\ - bl StringCopy\n\ -_08042E12:\n\ - ldr r0, [r5]\n\ - movs r1, 0x20\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08042E24\n\ - ldr r0, =gBattleTextBuff1\n\ - ldr r1, =gStatusConditionString_IceJpn\n\ - bl StringCopy\n\ -_08042E24:\n\ - str r4, [r5]\n\ - mov r1, r8\n\ - adds r1, 0x50\n\ - adds r1, r6, r1\n\ - ldr r0, [r1]\n\ - ldr r2, =0xf7ffffff\n\ - ands r0, r2\n\ - str r0, [r1]\n\ - ldr r0, =gBattleScripting\n\ - ldr r4, =gActiveBank\n\ - mov r3, r10\n\ - strb r3, [r4]\n\ - strb r3, [r0, 0x17]\n\ - ldr r0, =BattleScript_ShedSkinActivates\n\ - bl BattleScriptPushCursorAndCallback\n\ - str r5, [sp]\n\ - movs r0, 0\n\ - movs r1, 0x28\n\ - movs r2, 0\n\ - movs r3, 0x4\n\ - bl EmitSetMonData\n\ - ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ - bl _080443D0\n\ - .pool\n\ -_08042E84:\n\ - ldrb r2, [r4, 0x1B]\n\ - movs r0, 0x1B\n\ - ldrsb r0, [r4, r0]\n\ - cmp r0, 0xB\n\ - ble _08042E92\n\ - bl _0804441E\n\ -_08042E92:\n\ - ldr r0, =gDisableStructs\n\ - mov r5, r10\n\ - lsls r1, r5, 3\n\ - subs r1, r5\n\ - lsls r1, 2\n\ - adds r1, r0\n\ - ldrb r0, [r1, 0x16]\n\ - cmp r0, 0x2\n\ - bne _08042EA8\n\ - bl _0804441E\n\ -_08042EA8:\n\ - adds r0, r2, 0x1\n\ - movs r1, 0\n\ - strb r0, [r4, 0x1B]\n\ - ldr r4, =gBattleScripting\n\ - movs r0, 0x11\n\ - strb r0, [r4, 0x10]\n\ - strb r1, [r4, 0x11]\n\ - ldr r0, =BattleScript_SpeedBoostActivates\n\ - bl BattleScriptPushCursorAndCallback\n\ - strb r5, [r4, 0x17]\n\ - bl _080443D0\n\ - .pool\n\ -_08042ED0:\n\ - ldr r2, =gDisableStructs\n\ - ldrb r0, [r0]\n\ - lsls r1, r0, 3\n\ - subs r1, r0\n\ - lsls r1, 2\n\ - adds r1, r2\n\ - ldrb r3, [r1, 0x18]\n\ - lsls r0, r3, 31\n\ - lsrs r0, 31\n\ - movs r2, 0x1\n\ - eors r2, r0\n\ - movs r0, 0x2\n\ - negs r0, r0\n\ - ands r0, r3\n\ - orrs r0, r2\n\ - strb r0, [r1, 0x18]\n\ - bl _0804441E\n\ - .pool\n\ -_08042EF8:\n\ - ldrb r0, [r7]\n\ - cmp r0, 0x2B\n\ - beq _08042F02\n\ - bl _0804441E\n\ -_08042F02:\n\ - movs r4, 0\n\ - ldr r0, =sSoundMovesTable\n\ - ldrh r2, [r0]\n\ - ldr r3, =0x0000ffff\n\ - adds r1, r0, 0\n\ - cmp r2, r3\n\ - bne _08042F14\n\ - bl _0804441E\n\ -_08042F14:\n\ - cmp r2, r5\n\ - beq _08042F2C\n\ - adds r2, r1, 0\n\ -_08042F1A:\n\ - adds r2, 0x2\n\ - adds r4, 0x1\n\ - ldrh r0, [r2]\n\ - cmp r0, r3\n\ - bne _08042F28\n\ - bl _0804441E\n\ -_08042F28:\n\ - cmp r0, r5\n\ - bne _08042F1A\n\ -_08042F2C:\n\ - lsls r0, r4, 1\n\ - adds r0, r1\n\ - ldrh r1, [r0]\n\ - ldr r0, =0x0000ffff\n\ - cmp r1, r0\n\ - bne _08042F3C\n\ - bl _0804441E\n\ -_08042F3C:\n\ - ldr r1, =gBattleMons\n\ - ldr r0, =gBankAttacker\n\ - ldrb r2, [r0]\n\ - movs r0, 0x58\n\ - muls r0, r2\n\ - adds r1, 0x50\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - movs r1, 0x80\n\ - lsls r1, 5\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08042F62\n\ - ldr r0, =gHitMarker\n\ - ldr r1, [r0]\n\ - movs r2, 0x80\n\ - lsls r2, 4\n\ - orrs r1, r2\n\ - str r1, [r0]\n\ -_08042F62:\n\ - ldr r1, =gBattlescriptCurrInstr\n\ - ldr r0, =BattleScript_SoundproofProtected\n\ - str r0, [r1]\n\ - movs r0, 0x1\n\ - mov r9, r0\n\ - bl _08044424\n\ - .pool\n\ -_08042F8C:\n\ - cmp r5, 0\n\ - bne _08042F94\n\ - bl _0804441E\n\ -_08042F94:\n\ - ldrb r0, [r7]\n\ - cmp r0, 0xB\n\ - beq _08043004\n\ - cmp r0, 0xB\n\ - bgt _08042FA4\n\ - cmp r0, 0xA\n\ - beq _08042FAA\n\ - b _08043126\n\ -_08042FA4:\n\ - cmp r0, 0x12\n\ - beq _0804305C\n\ - b _08043126\n\ -_08042FAA:\n\ - cmp r3, 0xD\n\ - beq _08042FB0\n\ - b _08043126\n\ -_08042FB0:\n\ - ldr r0, =gBattleMoves\n\ - lsls r1, r5, 1\n\ - adds r1, r5\n\ - lsls r1, 2\n\ - adds r1, r0\n\ - ldrb r0, [r1, 0x1]\n\ - cmp r0, 0\n\ - bne _08042FC2\n\ - b _08043126\n\ -_08042FC2:\n\ - ldr r1, =gProtectStructs\n\ - ldr r0, =gBankAttacker\n\ - ldrb r0, [r0]\n\ - lsls r0, 4\n\ - adds r0, r1\n\ - ldrb r0, [r0, 0x2]\n\ - lsls r0, 28\n\ - cmp r0, 0\n\ - bge _08042FF0\n\ - ldr r1, =gBattlescriptCurrInstr\n\ - ldr r0, =BattleScript_MoveHPDrain\n\ - b _08042FF4\n\ - .pool\n\ -_08042FF0:\n\ - ldr r1, =gBattlescriptCurrInstr\n\ - ldr r0, =BattleScript_MoveHPDrain_PPLoss\n\ -_08042FF4:\n\ - str r0, [r1]\n\ - movs r1, 0x1\n\ - b _08043124\n\ - .pool\n\ -_08043004:\n\ - cmp r3, 0xB\n\ - beq _0804300A\n\ - b _08043126\n\ -_0804300A:\n\ - ldr r0, =gBattleMoves\n\ - lsls r1, r5, 1\n\ - adds r1, r5\n\ - lsls r1, 2\n\ - adds r1, r0\n\ - ldrb r0, [r1, 0x1]\n\ - cmp r0, 0\n\ - bne _0804301C\n\ - b _08043126\n\ -_0804301C:\n\ - ldr r1, =gProtectStructs\n\ - ldr r0, =gBankAttacker\n\ - ldrb r0, [r0]\n\ - lsls r0, 4\n\ - adds r0, r1\n\ - ldrb r0, [r0, 0x2]\n\ - lsls r0, 28\n\ - cmp r0, 0\n\ - bge _08043048\n\ - ldr r1, =gBattlescriptCurrInstr\n\ - ldr r0, =BattleScript_MoveHPDrain\n\ - b _0804304C\n\ - .pool\n\ -_08043048:\n\ - ldr r1, =gBattlescriptCurrInstr\n\ - ldr r0, =BattleScript_MoveHPDrain_PPLoss\n\ -_0804304C:\n\ - str r0, [r1]\n\ - movs r2, 0x1\n\ - mov r9, r2\n\ - b _08043126\n\ - .pool\n\ -_0804305C:\n\ - cmp r3, 0xA\n\ - bne _08043126\n\ - ldr r1, =gBattleMons\n\ - movs r0, 0x58\n\ - mov r3, r10\n\ - muls r3, r0\n\ - adds r0, r3, 0\n\ - adds r1, 0x4C\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - movs r1, 0x20\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08043126\n\ - ldr r2, =gBattleResources\n\ - ldr r0, [r2]\n\ - ldr r0, [r0, 0x4]\n\ - mov r5, r10\n\ - lsls r1, r5, 2\n\ - adds r0, r1\n\ - ldr r3, [r0]\n\ - movs r4, 0x1\n\ - ands r3, r4\n\ - adds r5, r1, 0\n\ - cmp r3, 0\n\ - bne _080430EC\n\ - ldr r0, =gBattleCommunication\n\ - strb r3, [r0, 0x5]\n\ - ldr r1, =gProtectStructs\n\ - ldr r0, =gBankAttacker\n\ - ldrb r0, [r0]\n\ - lsls r0, 4\n\ - adds r0, r1\n\ - ldrb r0, [r0, 0x2]\n\ - lsls r0, 28\n\ - cmp r0, 0\n\ - bge _080430C8\n\ - ldr r1, =gBattlescriptCurrInstr\n\ - ldr r0, =BattleScript_FlashFireBoost\n\ - b _080430CC\n\ - .pool\n\ -_080430C8:\n\ - ldr r1, =gBattlescriptCurrInstr\n\ - ldr r0, =BattleScript_FlashFireBoost_PPLoss\n\ -_080430CC:\n\ - str r0, [r1]\n\ - ldr r0, [r2]\n\ - ldr r1, [r0, 0x4]\n\ - adds r1, r5\n\ - ldr r0, [r1]\n\ - movs r2, 0x1\n\ - orrs r0, r2\n\ - str r0, [r1]\n\ - movs r0, 0x2\n\ - mov r9, r0\n\ - b _08043126\n\ - .pool\n\ -_080430EC:\n\ - ldr r0, =gBattleCommunication\n\ - strb r4, [r0, 0x5]\n\ - ldr r1, =gProtectStructs\n\ - ldr r0, =gBankAttacker\n\ - ldrb r0, [r0]\n\ - lsls r0, 4\n\ - adds r0, r1\n\ - ldrb r0, [r0, 0x2]\n\ - lsls r0, 28\n\ - cmp r0, 0\n\ - bge _0804311C\n\ - ldr r1, =gBattlescriptCurrInstr\n\ - ldr r0, =BattleScript_FlashFireBoost\n\ - b _08043120\n\ - .pool\n\ -_0804311C:\n\ - ldr r1, =gBattlescriptCurrInstr\n\ - ldr r0, =BattleScript_FlashFireBoost_PPLoss\n\ -_08043120:\n\ - str r0, [r1]\n\ - movs r1, 0x2\n\ -_08043124:\n\ - mov r9, r1\n\ -_08043126:\n\ - mov r2, r9\n\ - cmp r2, 0x1\n\ - beq _08043130\n\ - bl _0804441E\n\ -_08043130:\n\ - ldr r1, =gBattleMons\n\ - movs r0, 0x58\n\ - mov r3, r10\n\ - muls r3, r0\n\ - adds r0, r3, 0\n\ - adds r1, r0, r1\n\ - ldrh r0, [r1, 0x2C]\n\ - ldrh r5, [r1, 0x28]\n\ - cmp r0, r5\n\ - bne _0804318C\n\ - ldr r1, =gProtectStructs\n\ - ldr r0, =gBankAttacker\n\ - ldrb r0, [r0]\n\ - lsls r0, 4\n\ - adds r0, r1\n\ - ldrb r0, [r0, 0x2]\n\ - lsls r0, 28\n\ - cmp r0, 0\n\ - bge _08043178\n\ - ldr r1, =gBattlescriptCurrInstr\n\ - ldr r0, =gUnknown_082DB592\n\ - str r0, [r1]\n\ - bl _0804441E\n\ - .pool\n\ -_08043178:\n\ - ldr r1, =gBattlescriptCurrInstr\n\ - ldr r0, =gUnknown_082DB591\n\ - str r0, [r1]\n\ - bl _0804441E\n\ - .pool\n\ -_0804318C:\n\ - ldr r2, =gBattleMoveDamage\n\ - ldrh r0, [r1, 0x2C]\n\ - lsrs r0, 2\n\ - str r0, [r2]\n\ - cmp r0, 0\n\ - bne _0804319C\n\ - mov r0, r9\n\ - str r0, [r2]\n\ -_0804319C:\n\ - ldr r0, [r2]\n\ - negs r0, r0\n\ - str r0, [r2]\n\ - bl _0804441E\n\ - .pool\n\ -_080431AC:\n\ - ldrb r0, [r7]\n\ - subs r0, 0x9\n\ - cmp r0, 0x2F\n\ - bls _080431B8\n\ - bl _0804441E\n\ -_080431B8:\n\ - lsls r0, 2\n\ - ldr r1, =_080431C8\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ - .pool\n\ - .align 2, 0\n\ -_080431C8:\n\ - .4byte _080435E4\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _08043288\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _08043350\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _08043410\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _08043508\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _080436C0\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _0804441E\n\ - .4byte _0804379C\n\ -_08043288:\n\ - ldr r0, =gBattleMoveFlags\n\ - ldrb r1, [r0]\n\ - movs r0, 0x29\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08043298\n\ - bl _0804441E\n\ -_08043298:\n\ - cmp r5, 0xA5\n\ - bne _080432A0\n\ - bl _0804441E\n\ -_080432A0:\n\ - ldr r0, =gBattleMoves\n\ - lsls r1, r5, 1\n\ - adds r1, r5\n\ - lsls r1, 2\n\ - adds r1, r0\n\ - ldrb r0, [r1, 0x1]\n\ - cmp r0, 0\n\ - bne _080432B4\n\ - bl _0804441E\n\ -_080432B4:\n\ - ldr r2, =gSpecialStatuses\n\ - ldr r0, =gBankTarget\n\ - ldrb r1, [r0]\n\ - lsls r0, r1, 2\n\ - adds r0, r1\n\ - lsls r1, r0, 2\n\ - adds r0, r2, 0\n\ - adds r0, 0x8\n\ - adds r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, 0\n\ - bne _080432DC\n\ - adds r0, r2, 0\n\ - adds r0, 0xC\n\ - adds r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, 0\n\ - bne _080432DC\n\ - bl _0804441E\n\ -_080432DC:\n\ - ldr r1, =gBattleMons\n\ - movs r0, 0x58\n\ - mov r2, r10\n\ - muls r2, r0\n\ - adds r0, r2, 0\n\ - adds r1, r0, r1\n\ - adds r4, r1, 0\n\ - adds r4, 0x21\n\ - ldrb r0, [r4]\n\ - cmp r0, r3\n\ - bne _080432F6\n\ - bl _0804441E\n\ -_080432F6:\n\ - adds r2, r1, 0\n\ - adds r2, 0x22\n\ - ldrb r0, [r2]\n\ - cmp r0, r3\n\ - bne _08043304\n\ - bl _0804441E\n\ -_08043304:\n\ - ldrh r0, [r1, 0x28]\n\ - cmp r0, 0\n\ - bne _0804330E\n\ - bl _0804441E\n\ -_0804330E:\n\ - strb r3, [r4]\n\ - strb r3, [r2]\n\ - ldr r1, =gBattleTextBuff1\n\ - movs r0, 0xFD\n\ - strb r0, [r1]\n\ - movs r0, 0x3\n\ - strb r0, [r1, 0x1]\n\ - strb r3, [r1, 0x2]\n\ - movs r0, 0xFF\n\ - strb r0, [r1, 0x3]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, =gBattlescriptCurrInstr\n\ - ldr r0, =BattleScript_ColorChangeActivates\n\ - str r0, [r1]\n\ - bl _080443D0\n\ - .pool\n\ -_08043350:\n\ - ldr r0, =gBattleMoveFlags\n\ - ldrb r1, [r0]\n\ - movs r0, 0x29\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08043360\n\ - bl _0804441E\n\ -_08043360:\n\ - ldr r1, =gBattleMons\n\ - ldr r0, =gBankAttacker\n\ - ldrb r2, [r0]\n\ - movs r0, 0x58\n\ - muls r0, r2\n\ - adds r3, r0, r1\n\ - ldrh r0, [r3, 0x28]\n\ - cmp r0, 0\n\ - bne _08043376\n\ - bl _0804441E\n\ -_08043376:\n\ - ldr r0, =gProtectStructs\n\ - lsls r1, r2, 4\n\ - adds r1, r0\n\ - ldrb r0, [r1, 0x1]\n\ - lsls r0, 31\n\ - cmp r0, 0\n\ - beq _08043388\n\ - bl _0804441E\n\ -_08043388:\n\ - ldr r2, =gSpecialStatuses\n\ - ldr r0, =gBankTarget\n\ - ldrb r1, [r0]\n\ - lsls r0, r1, 2\n\ - adds r0, r1\n\ - lsls r1, r0, 2\n\ - adds r0, r2, 0\n\ - adds r0, 0x8\n\ - adds r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, 0\n\ - bne _080433B0\n\ - adds r0, r2, 0\n\ - adds r0, 0xC\n\ - adds r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, 0\n\ - bne _080433B0\n\ - bl _0804441E\n\ -_080433B0:\n\ - ldr r1, =gBattleMoves\n\ - lsls r0, r5, 1\n\ - adds r0, r5\n\ - lsls r0, 2\n\ - adds r0, r1\n\ - ldrb r1, [r0, 0x8]\n\ - movs r2, 0x1\n\ - adds r0, r2, 0\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _080433CA\n\ - bl _0804441E\n\ -_080433CA:\n\ - ldr r1, =gBattleMoveDamage\n\ - ldrh r0, [r3, 0x2C]\n\ - lsrs r0, 4\n\ - str r0, [r1]\n\ - cmp r0, 0\n\ - bne _080433D8\n\ - str r2, [r1]\n\ -_080433D8:\n\ - bl BattleScriptPushCursor\n\ - ldr r1, =gBattlescriptCurrInstr\n\ - ldr r0, =BattleScript_RoughSkinActivates\n\ - str r0, [r1]\n\ - bl _080443D0\n\ - .pool\n\ -_08043410:\n\ - ldr r0, =gBattleMoveFlags\n\ - ldrb r1, [r0]\n\ - movs r0, 0x29\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08043420\n\ - bl _0804441E\n\ -_08043420:\n\ - ldr r1, =gBattleMons\n\ - ldr r0, =gBankAttacker\n\ - ldrb r2, [r0]\n\ - movs r0, 0x58\n\ - muls r0, r2\n\ - adds r0, r1\n\ - ldrh r0, [r0, 0x28]\n\ - cmp r0, 0\n\ - bne _08043436\n\ - bl _0804441E\n\ -_08043436:\n\ - ldr r0, =gProtectStructs\n\ - lsls r1, r2, 4\n\ - adds r1, r0\n\ - ldrb r0, [r1, 0x1]\n\ - lsls r0, 31\n\ - cmp r0, 0\n\ - beq _08043448\n\ - bl _0804441E\n\ -_08043448:\n\ - ldr r2, =gSpecialStatuses\n\ - ldr r0, =gBankTarget\n\ - ldrb r1, [r0]\n\ - lsls r0, r1, 2\n\ - adds r0, r1\n\ - lsls r1, r0, 2\n\ - adds r0, r2, 0\n\ - adds r0, 0x8\n\ - adds r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, 0\n\ - bne _08043470\n\ - adds r0, r2, 0\n\ - adds r0, 0xC\n\ - adds r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, 0\n\ - bne _08043470\n\ - bl _0804441E\n\ -_08043470:\n\ - ldr r1, =gBattleMoves\n\ - lsls r0, r5, 1\n\ - adds r0, r5\n\ - lsls r0, 2\n\ - adds r0, r1\n\ - ldrb r1, [r0, 0x8]\n\ - movs r0, 0x1\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08043488\n\ - bl _0804441E\n\ -_08043488:\n\ - bl Random\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - movs r1, 0xA\n\ - bl __umodsi3\n\ - lsls r0, 16\n\ - cmp r0, 0\n\ - beq _080434A0\n\ - bl _0804441E\n\ -_080434A0:\n\ - ldr r5, =gBattleCommunication\n\ - movs r4, 0x3\n\ -_080434A4:\n\ - bl Random\n\ - ands r0, r4\n\ - strb r0, [r5, 0x3]\n\ - cmp r0, 0\n\ - beq _080434A4\n\ - ldr r1, =gBattleCommunication\n\ - ldrb r0, [r1, 0x3]\n\ - cmp r0, 0x3\n\ - bne _080434BC\n\ - adds r0, 0x2\n\ - strb r0, [r1, 0x3]\n\ -_080434BC:\n\ - ldrb r0, [r1, 0x3]\n\ - adds r0, 0x40\n\ - strb r0, [r1, 0x3]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, =gBattlescriptCurrInstr\n\ - ldr r0, =BattleScript_ApplySecondaryEffect\n\ - str r0, [r1]\n\ - ldr r2, =gHitMarker\n\ - ldr r0, [r2]\n\ - movs r1, 0x80\n\ - lsls r1, 6\n\ - orrs r0, r1\n\ - str r0, [r2]\n\ - bl _080443D0\n\ - .pool\n\ -_08043508:\n\ - ldr r0, =gBattleMoveFlags\n\ - ldrb r1, [r0]\n\ - movs r0, 0x29\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08043518\n\ - bl _0804441E\n\ -_08043518:\n\ - ldr r1, =gBattleMons\n\ - ldr r0, =gBankAttacker\n\ - ldrb r2, [r0]\n\ - movs r0, 0x58\n\ - muls r0, r2\n\ - adds r0, r1\n\ - ldrh r0, [r0, 0x28]\n\ - cmp r0, 0\n\ - bne _0804352E\n\ - bl _0804441E\n\ -_0804352E:\n\ - ldr r0, =gProtectStructs\n\ - lsls r1, r2, 4\n\ - adds r1, r0\n\ - ldrb r0, [r1, 0x1]\n\ - lsls r0, 31\n\ - cmp r0, 0\n\ - beq _08043540\n\ - bl _0804441E\n\ -_08043540:\n\ - ldr r2, =gSpecialStatuses\n\ - ldr r0, =gBankTarget\n\ - ldrb r1, [r0]\n\ - lsls r0, r1, 2\n\ - adds r0, r1\n\ - lsls r1, r0, 2\n\ - adds r0, r2, 0\n\ - adds r0, 0x8\n\ - adds r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, 0\n\ - bne _08043568\n\ - adds r0, r2, 0\n\ - adds r0, 0xC\n\ - adds r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, 0\n\ - bne _08043568\n\ - bl _0804441E\n\ -_08043568:\n\ - ldr r1, =gBattleMoves\n\ - lsls r0, r5, 1\n\ - adds r0, r5\n\ - lsls r0, 2\n\ - adds r0, r1\n\ - ldrb r1, [r0, 0x8]\n\ - movs r0, 0x1\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08043580\n\ - bl _0804441E\n\ -_08043580:\n\ - bl Random\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - movs r1, 0x3\n\ - bl __umodsi3\n\ - lsls r0, 16\n\ - cmp r0, 0\n\ - beq _08043598\n\ - bl _0804441E\n\ -_08043598:\n\ - ldr r1, =gBattleCommunication\n\ - movs r0, 0x42\n\ - strb r0, [r1, 0x3]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, =gBattlescriptCurrInstr\n\ - ldr r0, =BattleScript_ApplySecondaryEffect\n\ - str r0, [r1]\n\ - ldr r2, =gHitMarker\n\ - ldr r0, [r2]\n\ - movs r1, 0x80\n\ - lsls r1, 6\n\ - orrs r0, r1\n\ - str r0, [r2]\n\ - bl _080443D0\n\ - .pool\n\ -_080435E4:\n\ - ldr r0, =gBattleMoveFlags\n\ - ldrb r1, [r0]\n\ - movs r0, 0x29\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _080435F4\n\ - bl _0804441E\n\ -_080435F4:\n\ - ldr r1, =gBattleMons\n\ - ldr r0, =gBankAttacker\n\ - ldrb r2, [r0]\n\ - movs r0, 0x58\n\ - muls r0, r2\n\ - adds r0, r1\n\ - ldrh r0, [r0, 0x28]\n\ - cmp r0, 0\n\ - bne _0804360A\n\ - bl _0804441E\n\ -_0804360A:\n\ - ldr r0, =gProtectStructs\n\ - lsls r1, r2, 4\n\ - adds r1, r0\n\ - ldrb r0, [r1, 0x1]\n\ - lsls r0, 31\n\ - cmp r0, 0\n\ - beq _0804361C\n\ - bl _0804441E\n\ -_0804361C:\n\ - ldr r2, =gSpecialStatuses\n\ - ldr r0, =gBankTarget\n\ - ldrb r1, [r0]\n\ - lsls r0, r1, 2\n\ - adds r0, r1\n\ - lsls r1, r0, 2\n\ - adds r0, r2, 0\n\ - adds r0, 0x8\n\ - adds r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, 0\n\ - bne _08043644\n\ - adds r0, r2, 0\n\ - adds r0, 0xC\n\ - adds r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, 0\n\ - bne _08043644\n\ - bl _0804441E\n\ -_08043644:\n\ - ldr r1, =gBattleMoves\n\ - lsls r0, r5, 1\n\ - adds r0, r5\n\ - lsls r0, 2\n\ - adds r0, r1\n\ - ldrb r1, [r0, 0x8]\n\ - movs r0, 0x1\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _0804365C\n\ - bl _0804441E\n\ -_0804365C:\n\ - bl Random\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - movs r1, 0x3\n\ - bl __umodsi3\n\ - lsls r0, 16\n\ - cmp r0, 0\n\ - beq _08043674\n\ - bl _0804441E\n\ -_08043674:\n\ - ldr r1, =gBattleCommunication\n\ - movs r0, 0x45\n\ - strb r0, [r1, 0x3]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, =gBattlescriptCurrInstr\n\ - ldr r0, =BattleScript_ApplySecondaryEffect\n\ - str r0, [r1]\n\ - ldr r2, =gHitMarker\n\ - ldr r0, [r2]\n\ - movs r1, 0x80\n\ - lsls r1, 6\n\ - orrs r0, r1\n\ - str r0, [r2]\n\ - bl _080443D0\n\ - .pool\n\ -_080436C0:\n\ - ldr r0, =gBattleMoveFlags\n\ - ldrb r1, [r0]\n\ - movs r0, 0x29\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _080436D0\n\ - bl _0804441E\n\ -_080436D0:\n\ - ldr r1, =gBattleMons\n\ - ldr r0, =gBankAttacker\n\ - ldrb r2, [r0]\n\ - movs r0, 0x58\n\ - muls r0, r2\n\ - adds r0, r1\n\ - ldrh r0, [r0, 0x28]\n\ - cmp r0, 0\n\ - bne _080436E6\n\ - bl _0804441E\n\ -_080436E6:\n\ - ldr r0, =gProtectStructs\n\ - lsls r1, r2, 4\n\ - adds r1, r0\n\ - ldrb r0, [r1, 0x1]\n\ - lsls r0, 31\n\ - cmp r0, 0\n\ - beq _080436F8\n\ - bl _0804441E\n\ -_080436F8:\n\ - ldr r1, =gBattleMoves\n\ - lsls r0, r5, 1\n\ - adds r0, r5\n\ - lsls r0, 2\n\ - adds r0, r1\n\ - ldrb r1, [r0, 0x8]\n\ - movs r0, 0x1\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08043710\n\ - bl _0804441E\n\ -_08043710:\n\ - ldr r2, =gSpecialStatuses\n\ - ldr r0, =gBankTarget\n\ - ldrb r1, [r0]\n\ - lsls r0, r1, 2\n\ - adds r0, r1\n\ - lsls r1, r0, 2\n\ - adds r0, r2, 0\n\ - adds r0, 0x8\n\ - adds r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, 0\n\ - bne _08043738\n\ - adds r0, r2, 0\n\ - adds r0, 0xC\n\ - adds r0, r1, r0\n\ - ldr r0, [r0]\n\ - cmp r0, 0\n\ - bne _08043738\n\ - bl _0804441E\n\ -_08043738:\n\ - bl Random\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - movs r1, 0x3\n\ - bl __umodsi3\n\ - lsls r0, 16\n\ - cmp r0, 0\n\ - beq _08043750\n\ - bl _0804441E\n\ -_08043750:\n\ - ldr r1, =gBattleCommunication\n\ - movs r0, 0x43\n\ - strb r0, [r1, 0x3]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, =gBattlescriptCurrInstr\n\ - ldr r0, =BattleScript_ApplySecondaryEffect\n\ - str r0, [r1]\n\ - ldr r2, =gHitMarker\n\ - ldr r0, [r2]\n\ - movs r1, 0x80\n\ - lsls r1, 6\n\ - orrs r0, r1\n\ - str r0, [r2]\n\ - bl _080443D0\n\ - .pool\n\ -_0804379C:\n\ - ldr r0, =gBattleMoveFlags\n\ - ldrb r1, [r0]\n\ - movs r0, 0x29\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _080437AC\n\ - bl _0804441E\n\ -_080437AC:\n\ - ldr r6, =gBattleMons\n\ - ldr r3, =gBankAttacker\n\ - mov r8, r3\n\ - ldrb r1, [r3]\n\ - movs r7, 0x58\n\ - adds r0, r1, 0\n\ - muls r0, r7\n\ - adds r0, r6\n\ - ldrh r0, [r0, 0x28]\n\ - cmp r0, 0\n\ - bne _080437C6\n\ - bl _0804441E\n\ -_080437C6:\n\ - ldr r0, =gProtectStructs\n\ - lsls r1, 4\n\ - adds r1, r0\n\ - ldrb r0, [r1, 0x1]\n\ - lsls r0, 31\n\ - cmp r0, 0\n\ - beq _080437D8\n\ - bl _0804441E\n\ -_080437D8:\n\ - ldr r1, =gBattleMoves\n\ - lsls r0, r5, 1\n\ - adds r0, r5\n\ - lsls r0, 2\n\ - adds r0, r1\n\ - ldrb r1, [r0, 0x8]\n\ - movs r0, 0x1\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _080437F0\n\ - bl _0804441E\n\ -_080437F0:\n\ - ldr r3, =gSpecialStatuses\n\ - ldr r5, =gBankTarget\n\ - ldrb r1, [r5]\n\ - lsls r0, r1, 2\n\ - adds r0, r1\n\ - lsls r2, r0, 2\n\ - adds r0, r3, 0\n\ - adds r0, 0x8\n\ - adds r0, r2, r0\n\ - ldr r0, [r0]\n\ - cmp r0, 0\n\ - bne _08043818\n\ - adds r0, r3, 0\n\ - adds r0, 0xC\n\ - adds r0, r2, r0\n\ - ldr r0, [r0]\n\ - cmp r0, 0\n\ - bne _08043818\n\ - bl _0804441E\n\ -_08043818:\n\ - adds r0, r1, 0\n\ - muls r0, r7\n\ - adds r0, r6\n\ - ldrh r0, [r0, 0x28]\n\ - cmp r0, 0\n\ - bne _08043828\n\ - bl _0804441E\n\ -_08043828:\n\ - bl Random\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - movs r1, 0x3\n\ - bl __umodsi3\n\ - lsls r0, 16\n\ - cmp r0, 0\n\ - beq _08043840\n\ - bl _0804441E\n\ -_08043840:\n\ - mov r1, r8\n\ - ldrb r0, [r1]\n\ - muls r0, r7\n\ - adds r0, r6\n\ - adds r0, 0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, 0xC\n\ - bne _08043854\n\ - bl _0804441E\n\ -_08043854:\n\ - ldr r0, [sp, 0x8]\n\ - ldr r1, [sp, 0x10]\n\ - bl GetGenderFromSpeciesAndPersonality\n\ - adds r4, r0, 0\n\ - ldr r0, [sp, 0xC]\n\ - ldr r1, [sp, 0x14]\n\ - bl GetGenderFromSpeciesAndPersonality\n\ - lsls r4, 24\n\ - lsls r0, 24\n\ - cmp r4, r0\n\ - bne _08043872\n\ - bl _0804441E\n\ -_08043872:\n\ - mov r2, r8\n\ - ldrb r0, [r2]\n\ - muls r0, r7\n\ - adds r4, r6, 0\n\ - adds r4, 0x50\n\ - adds r0, r4\n\ - ldr r0, [r0]\n\ - movs r1, 0xF0\n\ - lsls r1, 12\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _0804388E\n\ - bl _0804441E\n\ -_0804388E:\n\ - ldr r0, [sp, 0x8]\n\ - ldr r1, [sp, 0x10]\n\ - bl GetGenderFromSpeciesAndPersonality\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0xFF\n\ - bne _080438A2\n\ - bl _0804441E\n\ -_080438A2:\n\ - ldr r0, [sp, 0xC]\n\ - ldr r1, [sp, 0x14]\n\ - bl GetGenderFromSpeciesAndPersonality\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, 0xFF\n\ - bne _080438B6\n\ - bl _0804441E\n\ -_080438B6:\n\ - mov r3, r8\n\ - ldrb r0, [r3]\n\ - adds r2, r0, 0\n\ - muls r2, r7\n\ - adds r2, r4\n\ - ldr r1, =gBitTable\n\ - ldrb r0, [r5]\n\ - lsls r0, 2\n\ - adds r0, r1\n\ - ldr r1, [r0]\n\ - lsls r1, 16\n\ - ldr r0, [r2]\n\ - orrs r0, r1\n\ - str r0, [r2]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, =gBattlescriptCurrInstr\n\ - ldr r0, =BattleScript_CuteCharmActivates\n\ - str r0, [r1]\n\ - bl _080443D0\n\ - .pool\n\ -_08043908:\n\ - movs r5, 0\n\ - mov r10, r5\n\ - ldr r0, =gNoOfAllBanks\n\ - ldrb r0, [r0]\n\ - cmp r10, r0\n\ - bcc _08043918\n\ - bl _0804441E\n\ -_08043918:\n\ - ldr r1, =gBattleMons\n\ - movs r0, 0x58\n\ - mov r2, r10\n\ - muls r2, r0\n\ - adds r0, r2, 0\n\ - adds r0, r1\n\ - adds r0, 0x20\n\ - ldrb r0, [r0]\n\ - subs r0, 0x7\n\ - adds r2, r1, 0\n\ - cmp r0, 0x41\n\ - bls _08043932\n\ - b _08043B96\n\ -_08043932:\n\ - lsls r0, 2\n\ - ldr r1, =_08043948\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - mov pc, r0\n\ - .pool\n\ - .align 2, 0\n\ -_08043948:\n\ - .4byte _08043AAC\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B70\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043AD4\n\ - .4byte _08043B96\n\ - .4byte _08043A50\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043A7C\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B40\n\ - .4byte _08043B10\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043B96\n\ - .4byte _08043AD4\n\ -_08043A50:\n\ - movs r0, 0x58\n\ - mov r3, r10\n\ - muls r3, r0\n\ - adds r0, r3, 0\n\ - adds r1, r2, 0\n\ - adds r1, 0x4C\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - ldr r1, =0x00000f88\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08043A6A\n\ - b _08043B96\n\ -_08043A6A:\n\ - ldr r0, =gBattleTextBuff1\n\ - ldr r1, =gStatusConditionString_PoisonJpn\n\ - b _08043B5C\n\ - .pool\n\ -_08043A7C:\n\ - movs r0, 0x58\n\ - mov r1, r10\n\ - muls r1, r0\n\ - adds r0, r1, 0\n\ - adds r1, r2, 0\n\ - adds r1, 0x50\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - movs r1, 0x7\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08043A96\n\ - b _08043B96\n\ -_08043A96:\n\ - ldr r0, =gBattleTextBuff1\n\ - ldr r1, =gStatusConditionString_ConfusionJpn\n\ - bl StringCopy\n\ - movs r2, 0x2\n\ - mov r9, r2\n\ - b _08043B9C\n\ - .pool\n\ -_08043AAC:\n\ - movs r0, 0x58\n\ - mov r3, r10\n\ - muls r3, r0\n\ - adds r0, r3, 0\n\ - adds r1, r2, 0\n\ - adds r1, 0x4C\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - movs r1, 0x40\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08043B96\n\ - ldr r0, =gBattleTextBuff1\n\ - ldr r1, =gStatusConditionString_ParalysisJpn\n\ - b _08043B5C\n\ - .pool\n\ -_08043AD4:\n\ - movs r0, 0x58\n\ - mov r3, r10\n\ - muls r3, r0\n\ - adds r0, r2, 0\n\ - adds r0, 0x4C\n\ - adds r0, r3, r0\n\ - ldr r0, [r0]\n\ - movs r1, 0x7\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08043B96\n\ - adds r2, 0x50\n\ - adds r2, r3, r2\n\ - ldr r0, [r2]\n\ - ldr r1, =0xf7ffffff\n\ - ands r0, r1\n\ - str r0, [r2]\n\ - ldr r0, =gBattleTextBuff1\n\ - ldr r1, =gStatusConditionString_SleepJpn\n\ - bl StringCopy\n\ - movs r0, 0x1\n\ - mov r9, r0\n\ - b _08043B9C\n\ - .pool\n\ -_08043B10:\n\ - movs r0, 0x58\n\ - mov r1, r10\n\ - muls r1, r0\n\ - adds r0, r1, 0\n\ - adds r1, r2, 0\n\ - adds r1, 0x4C\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - movs r1, 0x10\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08043B96\n\ - ldr r0, =gBattleTextBuff1\n\ - ldr r1, =gStatusConditionString_BurnJpn\n\ - bl StringCopy\n\ - movs r2, 0x1\n\ - mov r9, r2\n\ - b _08043B9C\n\ - .pool\n\ -_08043B40:\n\ - movs r0, 0x58\n\ - mov r3, r10\n\ - muls r3, r0\n\ - adds r0, r3, 0\n\ - adds r1, r2, 0\n\ - adds r1, 0x4C\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - movs r1, 0x20\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08043B96\n\ - ldr r0, =gBattleTextBuff1\n\ - ldr r1, =gStatusConditionString_IceJpn\n\ -_08043B5C:\n\ - bl StringCopy\n\ - movs r5, 0x1\n\ - mov r9, r5\n\ - b _08043B9C\n\ - .pool\n\ -_08043B70:\n\ - movs r0, 0x58\n\ - mov r1, r10\n\ - muls r1, r0\n\ - adds r0, r1, 0\n\ - adds r1, r2, 0\n\ - adds r1, 0x50\n\ - adds r0, r1\n\ - ldr r0, [r0]\n\ - movs r1, 0xF0\n\ - lsls r1, 12\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - beq _08043B96\n\ - ldr r0, =gBattleTextBuff1\n\ - ldr r1, =gStatusConditionString_LoveJpn\n\ - bl StringCopy\n\ - movs r2, 0x3\n\ - mov r9, r2\n\ -_08043B96:\n\ - mov r3, r9\n\ - cmp r3, 0\n\ - beq _08043C50\n\ -_08043B9C:\n\ - mov r5, r9\n\ - cmp r5, 0x2\n\ - beq _08043BD0\n\ - cmp r5, 0x2\n\ - bgt _08043BB4\n\ - cmp r5, 0x1\n\ - beq _08043BBC\n\ - b _08043BFC\n\ - .pool\n\ -_08043BB4:\n\ - mov r0, r9\n\ - cmp r0, 0x3\n\ - beq _08043BE8\n\ - b _08043BFC\n\ -_08043BBC:\n\ - ldr r1, =gBattleMons\n\ - movs r0, 0x58\n\ - mov r2, r10\n\ - muls r2, r0\n\ - adds r1, 0x4C\n\ - adds r2, r1\n\ - movs r0, 0\n\ - b _08043BFA\n\ - .pool\n\ -_08043BD0:\n\ - ldr r1, =gBattleMons\n\ - movs r0, 0x58\n\ - mov r2, r10\n\ - muls r2, r0\n\ - adds r1, 0x50\n\ - adds r2, r1\n\ - ldr r0, [r2]\n\ - movs r1, 0x8\n\ - negs r1, r1\n\ - b _08043BF8\n\ - .pool\n\ -_08043BE8:\n\ - ldr r1, =gBattleMons\n\ - movs r0, 0x58\n\ - mov r2, r10\n\ - muls r2, r0\n\ - adds r1, 0x50\n\ - adds r2, r1\n\ - ldr r0, [r2]\n\ - ldr r1, =0xfff0ffff\n\ -_08043BF8:\n\ - ands r0, r1\n\ -_08043BFA:\n\ - str r0, [r2]\n\ -_08043BFC:\n\ - bl BattleScriptPushCursor\n\ - ldr r1, =gBattlescriptCurrInstr\n\ - ldr r0, =gUnknown_082DB68C\n\ - str r0, [r1]\n\ - ldr r0, =gBattleScripting\n\ - mov r1, r10\n\ - strb r1, [r0, 0x17]\n\ - ldr r4, =gActiveBank\n\ - strb r1, [r4]\n\ - ldrb r1, [r4]\n\ - movs r0, 0x58\n\ - muls r0, r1\n\ - ldr r1, =gBattleMons + 0x4C\n\ - adds r0, r1\n\ - str r0, [sp]\n\ - movs r0, 0\n\ - movs r1, 0x28\n\ - movs r2, 0\n\ - movs r3, 0x4\n\ - bl EmitSetMonData\n\ - ldrb r0, [r4]\n\ - bl MarkBufferBankForExecution\n\ - bl _0804443A\n\ - .pool\n\ -_08043C50:\n\ - mov r0, r10\n\ - adds r0, 0x1\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r10, r0\n\ - ldr r0, =gNoOfAllBanks\n\ - ldrb r0, [r0]\n\ - cmp r10, r0\n\ - bcs _08043C64\n\ - b _08043918\n\ -_08043C64:\n\ - bl _0804441E\n\ - .pool\n\ -_08043C6C:\n\ - movs r2, 0\n\ - mov r10, r2\n\ - ldr r0, =gNoOfAllBanks\n\ - ldrb r0, [r0]\n\ - cmp r10, r0\n\ - bcc _08043C7A\n\ - b _0804441E\n\ -_08043C7A:\n\ - ldr r4, =gBattleMons\n\ -_08043C7C:\n\ - movs r0, 0x58\n\ - mov r3, r10\n\ - muls r3, r0\n\ - adds r0, r3, 0\n\ - adds r0, r4\n\ - adds r0, 0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, 0x3B\n\ - bne _08043CA0\n\ - mov r0, r10\n\ - bl CastformDataTypeChange\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r9, r0\n\ - cmp r0, 0\n\ - beq _08043CA0\n\ - b _080442FC\n\ -_08043CA0:\n\ - mov r0, r10\n\ - adds r0, 0x1\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r10, r0\n\ - ldr r0, =gNoOfAllBanks\n\ - ldrb r0, [r0]\n\ - cmp r10, r0\n\ - bcc _08043C7C\n\ - b _0804441E\n\ - .pool\n\ -_08043CBC:\n\ - ldrb r0, [r7]\n\ - cmp r0, 0x1C\n\ - beq _08043CC4\n\ - b _0804441E\n\ -_08043CC4:\n\ - ldr r4, =gHitMarker\n\ - ldr r1, [r4]\n\ - movs r0, 0x80\n\ - lsls r0, 7\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08043CD4\n\ - b _0804441E\n\ -_08043CD4:\n\ - ldr r0, =0xffffbfff\n\ - ands r1, r0\n\ - str r1, [r4]\n\ - mov r5, r8\n\ - ldr r1, [r5]\n\ - adds r1, 0xB2\n\ - ldrb r2, [r1]\n\ - movs r0, 0x3F\n\ - ands r0, r2\n\ - strb r0, [r1]\n\ - ldr r0, [r5]\n\ - adds r1, r0, 0\n\ - adds r1, 0xB2\n\ - ldrb r0, [r1]\n\ - cmp r0, 0x6\n\ - bne _08043CF8\n\ - movs r0, 0x2\n\ - strb r0, [r1]\n\ -_08043CF8:\n\ - ldr r1, =gBattleCommunication\n\ - mov r2, r8\n\ - ldr r0, [r2]\n\ - adds r0, 0xB2\n\ - ldrb r0, [r0]\n\ - adds r0, 0x40\n\ - strb r0, [r1, 0x3]\n\ - ldr r1, =gBattleScripting\n\ - ldr r0, =gBankTarget\n\ - ldrb r0, [r0]\n\ - strb r0, [r1, 0x17]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, =gBattlescriptCurrInstr\n\ - ldr r0, =BattleScript_SynchronizeActivates\n\ - str r0, [r1]\n\ - ldr r0, [r4]\n\ - movs r1, 0x80\n\ - lsls r1, 6\n\ - orrs r0, r1\n\ - str r0, [r4]\n\ - b _080443D0\n\ - .pool\n\ -_08043D40:\n\ - ldrb r0, [r7]\n\ - cmp r0, 0x1C\n\ - beq _08043D48\n\ - b _0804441E\n\ -_08043D48:\n\ - ldr r4, =gHitMarker\n\ - ldr r1, [r4]\n\ - movs r0, 0x80\n\ - lsls r0, 7\n\ - ands r0, r1\n\ - cmp r0, 0\n\ - bne _08043D58\n\ - b _0804441E\n\ -_08043D58:\n\ - ldr r0, =0xffffbfff\n\ - ands r1, r0\n\ - str r1, [r4]\n\ - mov r3, r8\n\ - ldr r1, [r3]\n\ - adds r1, 0xB2\n\ - ldrb r2, [r1]\n\ - movs r0, 0x3F\n\ - ands r0, r2\n\ - strb r0, [r1]\n\ - ldr r0, [r3]\n\ - adds r1, r0, 0\n\ - adds r1, 0xB2\n\ - ldrb r0, [r1]\n\ - cmp r0, 0x6\n\ - bne _08043D7C\n\ - movs r0, 0x2\n\ - strb r0, [r1]\n\ -_08043D7C:\n\ - ldr r1, =gBattleCommunication\n\ - mov r3, r8\n\ - ldr r0, [r3]\n\ - adds r0, 0xB2\n\ - ldrb r0, [r0]\n\ - strb r0, [r1, 0x3]\n\ - ldr r1, =gBattleScripting\n\ - ldr r0, =gBankAttacker\n\ - ldrb r0, [r0]\n\ - strb r0, [r1, 0x17]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, =gBattlescriptCurrInstr\n\ - ldr r0, =BattleScript_SynchronizeActivates\n\ - str r0, [r1]\n\ - ldr r0, [r4]\n\ - movs r1, 0x80\n\ - lsls r1, 6\n\ - orrs r0, r1\n\ - str r0, [r4]\n\ - b _080443D0\n\ - .pool\n\ -_08043DC4:\n\ - movs r4, 0\n\ - ldr r0, =gNoOfAllBanks\n\ - ldrb r1, [r0]\n\ - cmp r4, r1\n\ - blt _08043DD0\n\ - b _0804441E\n\ -_08043DD0:\n\ - ldr r0, =gBattleMons\n\ - adds r5, r1, 0\n\ - ldr r2, =gStatuses3\n\ - adds r3, r0, 0\n\ - adds r3, 0x20\n\ - movs r6, 0x80\n\ - lsls r6, 12\n\ -_08043DDE:\n\ - ldrb r1, [r3]\n\ - cmp r1, 0x16\n\ - bne _08043DEE\n\ - ldr r0, [r2]\n\ - ands r0, r6\n\ - cmp r0, 0\n\ - beq _08043DEE\n\ - b _08044324\n\ -_08043DEE:\n\ - adds r2, 0x4\n\ - adds r3, 0x58\n\ - adds r4, 0x1\n\ - cmp r4, r5\n\ - blt _08043DDE\n\ - b _0804441E\n\ - .pool\n\ -_08043E08:\n\ - movs r4, 0\n\ - ldr r0, =gNoOfAllBanks\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt _08043E14\n\ - b _0804441E\n\ -_08043E14:\n\ - ldr r5, =gActiveBank\n\ - mov r8, r5\n\ - ldr r0, =gBattleMons\n\ - adds r0, 0x20\n\ - str r0, [sp, 0x1C]\n\ - movs r1, 0\n\ - str r1, [sp, 0x20]\n\ -_08043E22:\n\ - ldr r2, [sp, 0x1C]\n\ - ldrb r0, [r2]\n\ - cmp r0, 0x24\n\ - beq _08043E2C\n\ - b _08043FBE\n\ -_08043E2C:\n\ - ldr r0, =gStatuses3\n\ - ldr r3, [sp, 0x20]\n\ - adds r0, r3, r0\n\ - ldr r1, [r0]\n\ - movs r0, 0x80\n\ - lsls r0, 13\n\ - ands r1, r0\n\ - str r3, [sp, 0x18]\n\ - cmp r1, 0\n\ - bne _08043E42\n\ - b _08043FBE\n\ -_08043E42:\n\ - lsls r0, r4, 24\n\ - lsrs r0, 24\n\ - bl GetBankIdentity\n\ - movs r1, 0x1\n\ - adds r5, r0, 0\n\ - eors r5, r1\n\ - ands r5, r1\n\ - adds r0, r5, 0\n\ - bl GetBankByIdentity\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - adds r0, r5, 0x2\n\ - bl GetBankByIdentity\n\ - lsls r0, 24\n\ - lsrs r7, r0, 24\n\ - ldr r0, =gBattleTypeFlags\n\ - ldr r0, [r0]\n\ - movs r2, 0x1\n\ - ands r0, r2\n\ - cmp r0, 0\n\ - bne _08043E74\n\ - b _08043F84\n\ -_08043E74:\n\ - movs r1, 0x58\n\ - adds r0, r6, 0\n\ - muls r0, r1\n\ - ldr r3, =gBattleMons\n\ - adds r1, r0, r3\n\ - adds r0, r1, 0\n\ - adds r0, 0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, 0\n\ - beq _08043F40\n\ - ldrh r0, [r1, 0x28]\n\ - cmp r0, 0\n\ - beq _08043EFC\n\ - movs r1, 0x58\n\ - adds r0, r7, 0\n\ - muls r0, r1\n\ - adds r1, r0, r3\n\ - adds r0, r1, 0\n\ - adds r0, 0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, 0\n\ - beq _08043EFC\n\ - ldrh r0, [r1, 0x28]\n\ - cmp r0, 0\n\ - beq _08043EFC\n\ - str r2, [sp, 0x24]\n\ - bl Random\n\ - ldr r2, [sp, 0x24]\n\ - adds r1, r2, 0\n\ - ands r1, r0\n\ - lsls r1, 1\n\ - orrs r5, r1\n\ - adds r0, r5, 0\n\ - bl GetBankByIdentity\n\ - mov r2, r8\n\ - strb r0, [r2]\n\ - ldrb r0, [r2]\n\ - movs r3, 0x58\n\ - muls r0, r3\n\ - ldr r5, =gBattleMons\n\ - adds r0, r5\n\ - adds r0, 0x20\n\ - ldrb r0, [r0]\n\ - ldr r1, [sp, 0x1C]\n\ - strb r0, [r1]\n\ - ldrb r0, [r2]\n\ - muls r0, r3\n\ - adds r0, r5\n\ - adds r0, 0x20\n\ - ldrb r0, [r0]\n\ - ldr r2, =gLastUsedAbility\n\ - strb r0, [r2]\n\ - b _08043FAC\n\ - .pool\n\ -_08043EFC:\n\ - ldr r3, =gBattleMons\n\ - movs r2, 0x58\n\ - adds r0, r6, 0\n\ - muls r0, r2\n\ - adds r1, r0, r3\n\ - adds r0, r1, 0\n\ - adds r0, 0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, 0\n\ - beq _08043F40\n\ - ldrh r0, [r1, 0x28]\n\ - cmp r0, 0\n\ - beq _08043F40\n\ - mov r5, r8\n\ - strb r6, [r5]\n\ - adds r1, r4, 0\n\ - muls r1, r2\n\ - adds r1, r3\n\ - ldrb r0, [r5]\n\ - muls r0, r2\n\ - adds r0, r3\n\ - adds r0, 0x20\n\ - ldrb r0, [r0]\n\ - adds r1, 0x20\n\ - strb r0, [r1]\n\ - ldrb r0, [r5]\n\ - muls r0, r2\n\ - adds r0, r3\n\ - adds r0, 0x20\n\ - ldrb r0, [r0]\n\ - b _08043FA8\n\ - .pool\n\ -_08043F40:\n\ - ldr r3, =gBattleMons\n\ - movs r2, 0x58\n\ - adds r0, r7, 0\n\ - muls r0, r2\n\ - adds r1, r0, r3\n\ - adds r0, r1, 0\n\ - adds r0, 0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, 0\n\ - beq _08043FB6\n\ - ldrh r0, [r1, 0x28]\n\ - cmp r0, 0\n\ - beq _08043FB6\n\ - mov r5, r8\n\ - strb r7, [r5]\n\ - adds r1, r4, 0\n\ - muls r1, r2\n\ - adds r1, r3\n\ - ldrb r0, [r5]\n\ - muls r0, r2\n\ - adds r0, r3\n\ - adds r0, 0x20\n\ - ldrb r0, [r0]\n\ - adds r1, 0x20\n\ - strb r0, [r1]\n\ - ldrb r0, [r5]\n\ - muls r0, r2\n\ - adds r0, r3\n\ - adds r0, 0x20\n\ - ldrb r0, [r0]\n\ - b _08043FA8\n\ - .pool\n\ -_08043F84:\n\ - mov r2, r8\n\ - strb r6, [r2]\n\ - movs r3, 0x58\n\ - adds r0, r6, 0\n\ - muls r0, r3\n\ - ldr r5, =gBattleMons\n\ - adds r0, r5\n\ - adds r2, r0, 0\n\ - adds r2, 0x20\n\ - ldrb r1, [r2]\n\ - cmp r1, 0\n\ - beq _08043FB6\n\ - ldrh r0, [r0, 0x28]\n\ - cmp r0, 0\n\ - beq _08043FB6\n\ - ldr r0, [sp, 0x1C]\n\ - strb r1, [r0]\n\ - ldrb r0, [r2]\n\ -_08043FA8:\n\ - ldr r1, =gLastUsedAbility\n\ - strb r0, [r1]\n\ -_08043FAC:\n\ - mov r0, r9\n\ - adds r0, 0x1\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r9, r0\n\ -_08043FB6:\n\ - mov r2, r9\n\ - cmp r2, 0\n\ - beq _08043FBE\n\ - b _08044340\n\ -_08043FBE:\n\ - ldr r3, [sp, 0x1C]\n\ - adds r3, 0x58\n\ - str r3, [sp, 0x1C]\n\ - ldr r5, [sp, 0x20]\n\ - adds r5, 0x4\n\ - str r5, [sp, 0x20]\n\ - adds r4, 0x1\n\ - ldr r0, =gNoOfAllBanks\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - bge _08043FD6\n\ - b _08043E22\n\ -_08043FD6:\n\ - b _0804441E\n\ - .pool\n\ -_08043FE4:\n\ - movs r4, 0\n\ - ldr r0, =gNoOfAllBanks\n\ - ldrb r1, [r0]\n\ - cmp r4, r1\n\ - blt _08043FF0\n\ - b _0804441E\n\ -_08043FF0:\n\ - ldr r0, =gBattleMons\n\ - adds r5, r1, 0\n\ - ldr r2, =gStatuses3\n\ - adds r3, r0, 0\n\ - adds r3, 0x20\n\ - movs r6, 0x80\n\ - lsls r6, 12\n\ -_08043FFE:\n\ - ldrb r1, [r3]\n\ - cmp r1, 0x16\n\ - bne _0804400E\n\ - ldr r0, [r2]\n\ - ands r0, r6\n\ - cmp r0, 0\n\ - beq _0804400E\n\ - b _080443B4\n\ -_0804400E:\n\ - adds r2, 0x4\n\ - adds r3, 0x58\n\ - adds r4, 0x1\n\ - cmp r4, r5\n\ - blt _08043FFE\n\ - b _0804441E\n\ - .pool\n\ -_08044028:\n\ - mov r0, r10\n\ - bl GetBankSide\n\ - lsls r0, 24\n\ - lsrs r5, r0, 24\n\ - movs r4, 0\n\ - ldr r0, =gNoOfAllBanks\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt _0804403E\n\ - b _0804441E\n\ -_0804403E:\n\ - ldr r7, =gBattleMons\n\ -_08044040:\n\ - lsls r0, r4, 24\n\ - lsrs r0, 24\n\ - bl GetBankSide\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - adds r3, r4, 0x1\n\ - cmp r0, r5\n\ - beq _0804406A\n\ - movs r0, 0x58\n\ - muls r0, r4\n\ - adds r0, r7\n\ - adds r0, 0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, r6\n\ - bne _0804406A\n\ - ldr r0, =gLastUsedAbility\n\ - strb r6, [r0]\n\ - lsls r0, r3, 24\n\ - lsrs r0, 24\n\ - mov r9, r0\n\ -_0804406A:\n\ - adds r4, r3, 0\n\ - ldr r0, =gNoOfAllBanks\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt _08044040\n\ - b _0804441E\n\ - .pool\n\ -_08044084:\n\ - mov r0, r10\n\ - bl GetBankSide\n\ - lsls r0, 24\n\ - lsrs r5, r0, 24\n\ - movs r4, 0\n\ - ldr r0, =gNoOfAllBanks\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt _0804409A\n\ - b _0804441E\n\ -_0804409A:\n\ - ldr r7, =gBattleMons\n\ -_0804409C:\n\ - lsls r0, r4, 24\n\ - lsrs r0, 24\n\ - bl GetBankSide\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - adds r3, r4, 0x1\n\ - cmp r0, r5\n\ - bne _080440C6\n\ - movs r0, 0x58\n\ - muls r0, r4\n\ - adds r0, r7\n\ - adds r0, 0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, r6\n\ - bne _080440C6\n\ - ldr r0, =gLastUsedAbility\n\ - strb r6, [r0]\n\ - lsls r0, r3, 24\n\ - lsrs r0, 24\n\ - mov r9, r0\n\ -_080440C6:\n\ - adds r4, r3, 0\n\ - ldr r0, =gNoOfAllBanks\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt _0804409C\n\ - b _0804441E\n\ - .pool\n\ -_080440E0:\n\ - ldrb r0, [r7]\n\ - cmp r0, 0xFD\n\ - beq _08044104\n\ - cmp r0, 0xFE\n\ - beq _0804413C\n\ - movs r4, 0\n\ - ldr r0, =gNoOfAllBanks\n\ - adds r5, r0, 0\n\ - ldrb r0, [r5]\n\ - cmp r4, r0\n\ - blt _080440F8\n\ - b _0804441E\n\ -_080440F8:\n\ - ldr r2, =gBattleMons\n\ - b _08044174\n\ - .pool\n\ -_08044104:\n\ - movs r4, 0\n\ - ldr r0, =gNoOfAllBanks\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt _08044110\n\ - b _0804441E\n\ -_08044110:\n\ - ldr r5, =gStatuses3\n\ - movs r2, 0x80\n\ - lsls r2, 9\n\ - adds r1, r0, 0\n\ -_08044118:\n\ - lsls r0, r4, 2\n\ - adds r0, r5\n\ - ldr r0, [r0]\n\ - ands r0, r2\n\ - adds r3, r4, 0x1\n\ - cmp r0, 0\n\ - beq _0804412C\n\ - lsls r0, r3, 24\n\ - lsrs r0, 24\n\ - mov r9, r0\n\ -_0804412C:\n\ - adds r4, r3, 0\n\ - cmp r4, r1\n\ - blt _08044118\n\ - b _0804441E\n\ - .pool\n\ -_0804413C:\n\ - movs r4, 0\n\ - ldr r0, =gNoOfAllBanks\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt _08044148\n\ - b _0804441E\n\ -_08044148:\n\ - ldr r5, =gStatuses3\n\ - movs r2, 0x80\n\ - lsls r2, 10\n\ - adds r1, r0, 0\n\ -_08044150:\n\ - lsls r0, r4, 2\n\ - adds r0, r5\n\ - ldr r0, [r0]\n\ - ands r0, r2\n\ - adds r3, r4, 0x1\n\ - cmp r0, 0\n\ - beq _08044164\n\ - lsls r0, r3, 24\n\ - lsrs r0, 24\n\ - mov r9, r0\n\ -_08044164:\n\ - adds r4, r3, 0\n\ - cmp r4, r1\n\ - blt _08044150\n\ - b _0804441E\n\ - .pool\n\ -_08044174:\n\ - movs r0, 0x58\n\ - muls r0, r4\n\ - adds r0, r2\n\ - adds r0, 0x20\n\ - ldrb r0, [r0]\n\ - adds r3, r4, 0x1\n\ - cmp r0, r6\n\ - bne _0804418C\n\ - strb r6, [r7]\n\ - lsls r0, r3, 24\n\ - lsrs r0, 24\n\ - mov r9, r0\n\ -_0804418C:\n\ - adds r4, r3, 0\n\ - ldrb r1, [r5]\n\ - cmp r4, r1\n\ - blt _08044174\n\ - b _0804441E\n\ -_08044196:\n\ - movs r4, 0\n\ - ldr r0, =gNoOfAllBanks\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt _080441A2\n\ - b _0804441E\n\ -_080441A2:\n\ - ldr r2, =gBattleMons\n\ - mov r8, r2\n\ - adds r2, r0, 0\n\ - movs r5, 0x58\n\ -_080441AA:\n\ - adds r0, r4, 0\n\ - muls r0, r5\n\ - mov r3, r8\n\ - adds r1, r0, r3\n\ - adds r0, r1, 0\n\ - adds r0, 0x20\n\ - ldrb r0, [r0]\n\ - adds r3, r4, 0x1\n\ - cmp r0, r6\n\ - bne _080441CC\n\ - ldrh r0, [r1, 0x28]\n\ - cmp r0, 0\n\ - beq _080441CC\n\ - strb r6, [r7]\n\ - lsls r0, r3, 24\n\ - lsrs r0, 24\n\ - mov r9, r0\n\ -_080441CC:\n\ - adds r4, r3, 0\n\ - cmp r4, r2\n\ - blt _080441AA\n\ - b _0804441E\n\ - .pool\n\ -_080441DC:\n\ - movs r4, 0\n\ - ldr r0, =gNoOfAllBanks\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt _080441E8\n\ - b _0804441E\n\ -_080441E8:\n\ - ldr r7, =gBattleMons\n\ - adds r1, r0, 0\n\ - movs r5, 0x58\n\ - ldr r2, =gLastUsedAbility\n\ -_080441F0:\n\ - adds r0, r4, 0\n\ - muls r0, r5\n\ - adds r0, r7\n\ - adds r0, 0x20\n\ - ldrb r0, [r0]\n\ - adds r3, r4, 0x1\n\ - cmp r0, r6\n\ - bne _0804420C\n\ - cmp r4, r10\n\ - beq _0804420C\n\ - strb r6, [r2]\n\ - lsls r0, r3, 24\n\ - lsrs r0, 24\n\ - mov r9, r0\n\ -_0804420C:\n\ - adds r4, r3, 0\n\ - cmp r4, r1\n\ - blt _080441F0\n\ - b _0804441E\n\ - .pool\n\ -_08044220:\n\ - mov r0, r10\n\ - bl GetBankSide\n\ - lsls r0, 24\n\ - lsrs r5, r0, 24\n\ - movs r4, 0\n\ - ldr r0, =gNoOfAllBanks\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt _08044236\n\ - b _0804441E\n\ -_08044236:\n\ - ldr r7, =gBattleMons\n\ -_08044238:\n\ - lsls r0, r4, 24\n\ - lsrs r0, 24\n\ - bl GetBankSide\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, r5\n\ - beq _08044264\n\ - movs r0, 0x58\n\ - muls r0, r4\n\ - adds r0, r7\n\ - adds r0, 0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, r6\n\ - bne _08044264\n\ - ldr r0, =gLastUsedAbility\n\ - strb r6, [r0]\n\ - mov r0, r9\n\ - adds r0, 0x1\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r9, r0\n\ -_08044264:\n\ - adds r4, 0x1\n\ - ldr r0, =gNoOfAllBanks\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt _08044238\n\ - b _0804441E\n\ - .pool\n\ -_0804427C:\n\ - mov r0, r10\n\ - bl GetBankSide\n\ - lsls r0, 24\n\ - lsrs r5, r0, 24\n\ - movs r4, 0\n\ - ldr r0, =gNoOfAllBanks\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt _08044292\n\ - b _0804441E\n\ -_08044292:\n\ - ldr r7, =gBattleMons\n\ -_08044294:\n\ - lsls r0, r4, 24\n\ - lsrs r0, 24\n\ - bl GetBankSide\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - cmp r0, r5\n\ - bne _080442C0\n\ - movs r0, 0x58\n\ - muls r0, r4\n\ - adds r0, r7\n\ - adds r0, 0x20\n\ - ldrb r0, [r0]\n\ - cmp r0, r6\n\ - bne _080442C0\n\ - ldr r0, =gLastUsedAbility\n\ - strb r6, [r0]\n\ - mov r0, r9\n\ - adds r0, 0x1\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r9, r0\n\ -_080442C0:\n\ - adds r4, 0x1\n\ - ldr r0, =gNoOfAllBanks\n\ - ldrb r0, [r0]\n\ - cmp r4, r0\n\ - blt _08044294\n\ - b _0804441E\n\ - .pool\n\ -_080442D8:\n\ - ldr r0, =BattleScript_CastformChange\n\ - bl BattleScriptPushCursorAndCallback\n\ - ldr r0, =gBattleScripting\n\ - strb r6, [r0, 0x17]\n\ -_080442E2:\n\ - ldr r0, =gBattleStruct\n\ - ldr r0, [r0]\n\ - adds r0, 0x7F\n\ - mov r1, r9\n\ - subs r1, 0x1\n\ - strb r1, [r0]\n\ - b _0804441E\n\ - .pool\n\ -_080442FC:\n\ - ldr r0, =BattleScript_CastformChange\n\ - bl BattleScriptPushCursorAndCallback\n\ - ldr r0, =gBattleScripting\n\ - mov r5, r10\n\ - strb r5, [r0, 0x17]\n\ - ldr r0, =gBattleStruct\n\ - ldr r0, [r0]\n\ - adds r0, 0x7F\n\ - mov r1, r9\n\ - subs r1, 0x1\n\ - strb r1, [r0]\n\ - b _0804443A\n\ - .pool\n\ -_08044324:\n\ - strb r1, [r7]\n\ - ldr r0, [r2]\n\ - ldr r1, =0xfff7ffff\n\ - ands r0, r1\n\ - str r0, [r2]\n\ - ldr r0, =gUnknown_082DB4B8\n\ - bl BattleScriptPushCursorAndCallback\n\ - b _080443C8\n\ - .pool\n\ -_08044340:\n\ - ldr r0, =BattleScript_TraceActivates\n\ - bl BattleScriptPushCursorAndCallback\n\ - ldr r1, =gStatuses3\n\ - ldr r0, [sp, 0x18]\n\ - adds r1, r0, r1\n\ - ldr r0, [r1]\n\ - ldr r2, =0xffefffff\n\ - ands r0, r2\n\ - str r0, [r1]\n\ - ldr r0, =gBattleScripting\n\ - strb r4, [r0, 0x17]\n\ - ldr r1, =gBattleTextBuff1\n\ - movs r4, 0xFD\n\ - strb r4, [r1]\n\ - movs r0, 0x4\n\ - strb r0, [r1, 0x1]\n\ - ldr r2, =gActiveBank\n\ - ldrb r0, [r2]\n\ - strb r0, [r1, 0x2]\n\ - ldr r3, =gBattlePartyID\n\ - ldrb r0, [r2]\n\ - lsls r0, 1\n\ - adds r0, r3\n\ - ldrh r0, [r0]\n\ - strb r0, [r1, 0x3]\n\ - movs r0, 0xFF\n\ - strb r0, [r1, 0x4]\n\ - ldr r1, =gBattleTextBuff2\n\ - strb r4, [r1]\n\ - movs r0, 0x9\n\ - strb r0, [r1, 0x1]\n\ - ldr r0, =gLastUsedAbility\n\ - ldrb r0, [r0]\n\ - strb r0, [r1, 0x2]\n\ - movs r0, 0x1\n\ - negs r0, r0\n\ - strb r0, [r1, 0x3]\n\ - b _0804441E\n\ - .pool\n\ -_080443B4:\n\ - strb r1, [r7]\n\ - ldr r0, [r2]\n\ - ldr r1, =0xfff7ffff\n\ - ands r0, r1\n\ - str r0, [r2]\n\ - bl BattleScriptPushCursor\n\ - ldr r1, =gBattlescriptCurrInstr\n\ - ldr r0, =gUnknown_082DB4C1\n\ - str r0, [r1]\n\ -_080443C8:\n\ - ldr r0, =gBattleStruct\n\ - ldr r0, [r0]\n\ - adds r0, 0xD8\n\ - strb r4, [r0]\n\ -_080443D0:\n\ - mov r0, r9\n\ - adds r0, 0x1\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r9, r0\n\ - b _0804441E\n\ - .pool\n\ -_080443EC:\n\ - movs r4, 0\n\ - ldr r0, =gNoOfAllBanks\n\ - ldrb r1, [r0]\n\ - cmp r4, r1\n\ - bge _0804441E\n\ - ldr r0, =gBattleMons\n\ - adds r2, r1, 0\n\ - adds r1, r0, 0\n\ - adds r1, 0x20\n\ - ldr r3, =gLastUsedAbility\n\ -_08044400:\n\ - ldrb r0, [r1]\n\ - cmp r0, r6\n\ - bne _08044416\n\ - cmp r4, r10\n\ - beq _08044416\n\ - strb r6, [r3]\n\ - mov r0, r9\n\ - adds r0, 0x1\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - mov r9, r0\n\ -_08044416:\n\ - adds r1, 0x58\n\ - adds r4, 0x1\n\ - cmp r4, r2\n\ - blt _08044400\n\ -_0804441E:\n\ - mov r1, r9\n\ - cmp r1, 0\n\ - beq _0804443A\n\ -_08044424:\n\ - ldr r2, [sp, 0x4]\n\ - cmp r2, 0xB\n\ - bhi _0804443A\n\ - ldr r1, =gLastUsedAbility\n\ - ldrb r0, [r1]\n\ - cmp r0, 0xFF\n\ - beq _0804443A\n\ - adds r1, r0, 0\n\ - mov r0, r10\n\ - bl RecordAbilityBattle\n\ -_0804443A:\n\ - mov r0, r9\n\ - add sp, 0x28\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r1}\n\ - bx r1\n\ - .pool\n\ - .syntax divided"); -} -#endif // NONMATCHING void BattleScriptExecute(const u8* BS_ptr) { -- cgit v1.2.3 From f300f853c8675817d00bbbc0caf57e5f80d6b573 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Thu, 12 Oct 2017 14:36:26 -0500 Subject: Add const qualifiers to scrcmd --- include/script.h | 4 +- include/script_movement.h | 2 +- include/shop.h | 6 +-- include/text.h | 2 +- src/scrcmd.c | 98 +++++++++++++++++++++++------------------------ src/script.c | 4 +- src/text.c | 2 +- 7 files changed, 59 insertions(+), 59 deletions(-) diff --git a/include/script.h b/include/script.h index ec6a212bc..2b5f8c2ce 100644 --- a/include/script.h +++ b/include/script.h @@ -28,8 +28,8 @@ void StopScript(struct ScriptContext *ctx); bool8 RunScriptCommand(struct ScriptContext *ctx); u8 ScriptPush(struct ScriptContext *ctx, const u8 *ptr); const u8 *ScriptPop(struct ScriptContext *ctx); -void ScriptJump(struct ScriptContext *ctx, u8 *ptr); -void ScriptCall(struct ScriptContext *ctx, u8 *ptr); +void ScriptJump(struct ScriptContext *ctx, const u8 *ptr); +void ScriptCall(struct ScriptContext *ctx, const u8 *ptr); void ScriptReturn(struct ScriptContext *ctx); u16 ScriptReadHalfword(struct ScriptContext *ctx); u32 ScriptReadWord(struct ScriptContext *ctx); diff --git a/include/script_movement.h b/include/script_movement.h index 8f505cc67..4c3fa6002 100644 --- a/include/script_movement.h +++ b/include/script_movement.h @@ -1,7 +1,7 @@ #ifndef GUARD_SCRIPT_MOVEMENT_H #define GUARD_SCRIPT_MOVEMENT_H -bool8 ScriptMovement_StartObjectMovementScript(u8, u8, u8, u8 *); +bool8 ScriptMovement_StartObjectMovementScript(u8, u8, u8, const u8 *); bool8 ScriptMovement_IsObjectMovementFinished(u8, u8, u8); void sub_80D338C(void); diff --git a/include/shop.h b/include/shop.h index d14c839ee..ee2887779 100644 --- a/include/shop.h +++ b/include/shop.h @@ -1,8 +1,8 @@ #ifndef GUARD_SHOP_H #define GUARD_SHOP_H -void CreatePokemartMenu(u16 *); -void CreateDecorationShop1Menu(u16 *); -void CreateDecorationShop2Menu(u16 *); +void CreatePokemartMenu(const u16 *); +void CreateDecorationShop1Menu(const u16 *); +void CreateDecorationShop2Menu(const u16 *); #endif // GUARD_SHOP_H diff --git a/include/text.h b/include/text.h index c3b27f7f1..594661717 100644 --- a/include/text.h +++ b/include/text.h @@ -196,7 +196,7 @@ u8 gGlyphDimensions[0x2]; void SetFontsPointer(const struct FontInfo *fonts); void DeactivateAllTextPrinters(void); -u16 PrintTextOnWindow(u8 windowId, u8 fontId, u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextSubPrinter *, u16)); +u16 PrintTextOnWindow(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextSubPrinter *, u16)); bool16 AddTextPrinter(struct TextSubPrinter *textSubPrinter, u8 speed, void (*callback)(struct TextSubPrinter *, u16)); void RunTextPrinters(void); bool16 IsTextPrinterActive(u8 id); diff --git a/src/scrcmd.c b/src/scrcmd.c index f2c11e4b0..1bc7d709a 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -73,9 +73,9 @@ extern u16 gScriptContestCategory; IWRAM_DATA u8 gUnknown_03000F30; -extern SpecialFunc gSpecials[]; -extern u8 *gStdScripts[]; -extern u8 *gStdScripts_End[]; +extern const SpecialFunc gSpecials[]; +extern const u8 *gStdScripts[]; +extern const u8 *gStdScripts_End[]; void sub_809BDB4(void); @@ -157,7 +157,7 @@ bool8 ScrCmd_waitstate(struct ScriptContext *ctx) bool8 ScrCmd_goto(struct ScriptContext *ctx) { - u8 *ptr = (u8 *)ScriptReadWord(ctx); + const u8 *ptr = (const u8 *)ScriptReadWord(ctx); ScriptJump(ctx, ptr); return FALSE; @@ -171,7 +171,7 @@ bool8 ScrCmd_return(struct ScriptContext *ctx) bool8 ScrCmd_call(struct ScriptContext *ctx) { - u8 *ptr = (u8 *)ScriptReadWord(ctx); + const u8 *ptr = (const u8 *)ScriptReadWord(ctx); ScriptCall(ctx, ptr); return FALSE; @@ -180,7 +180,7 @@ bool8 ScrCmd_call(struct ScriptContext *ctx) bool8 ScrCmd_goto_if(struct ScriptContext *ctx) { u8 condition = ScriptReadByte(ctx); - u8 *ptr = (u8 *)ScriptReadWord(ctx); + const u8 *ptr = (const u8 *)ScriptReadWord(ctx); if (sScriptConditionTable[condition][ctx->comparisonResult] == 1) ScriptJump(ctx, ptr); @@ -190,7 +190,7 @@ bool8 ScrCmd_goto_if(struct ScriptContext *ctx) bool8 ScrCmd_call_if(struct ScriptContext *ctx) { u8 condition = ScriptReadByte(ctx); - u8 *ptr = (u8 *)ScriptReadWord(ctx); + const u8 *ptr = (const u8 *)ScriptReadWord(ctx); if (sScriptConditionTable[condition][ctx->comparisonResult] == 1) ScriptCall(ctx, ptr); @@ -225,7 +225,7 @@ bool8 ScrCmd_vcall(struct ScriptContext *ctx) bool8 ScrCmd_vgoto_if(struct ScriptContext *ctx) { u8 condition = ScriptReadByte(ctx); - u8 *ptr = (u8 *)(ScriptReadWord(ctx) - gUnknown_020375C4); + const u8 *ptr = (const u8 *)(ScriptReadWord(ctx) - gUnknown_020375C4); if (sScriptConditionTable[condition][ctx->comparisonResult] == 1) ScriptJump(ctx, ptr); @@ -235,7 +235,7 @@ bool8 ScrCmd_vgoto_if(struct ScriptContext *ctx) bool8 ScrCmd_vcall_if(struct ScriptContext *ctx) { u8 condition = ScriptReadByte(ctx); - u8 *ptr = (u8 *)(ScriptReadWord(ctx) - gUnknown_020375C4); + const u8 *ptr = (const u8 *)(ScriptReadWord(ctx) - gUnknown_020375C4); if (sScriptConditionTable[condition][ctx->comparisonResult] == 1) ScriptCall(ctx, ptr); @@ -245,7 +245,7 @@ bool8 ScrCmd_vcall_if(struct ScriptContext *ctx) bool8 ScrCmd_gotostd(struct ScriptContext *ctx) { u8 index = ScriptReadByte(ctx); - u8 **ptr = &gStdScripts[index]; + const u8 **ptr = &gStdScripts[index]; if (ptr < gStdScripts_End) ScriptJump(ctx, *ptr); @@ -255,7 +255,7 @@ bool8 ScrCmd_gotostd(struct ScriptContext *ctx) bool8 ScrCmd_callstd(struct ScriptContext *ctx) { u8 index = ScriptReadByte(ctx); - u8 **ptr = &gStdScripts[index]; + const u8 **ptr = &gStdScripts[index]; if (ptr < gStdScripts_End) ScriptCall(ctx, *ptr); @@ -269,7 +269,7 @@ bool8 ScrCmd_gotostd_if(struct ScriptContext *ctx) if (sScriptConditionTable[condition][ctx->comparisonResult] == 1) { - u8 **ptr = &gStdScripts[index]; + const u8 **ptr = &gStdScripts[index]; if (ptr < gStdScripts_End) ScriptJump(ctx, *ptr); } @@ -283,7 +283,7 @@ bool8 ScrCmd_callstd_if(struct ScriptContext *ctx) if (sScriptConditionTable[condition][ctx->comparisonResult] == 1) { - u8 **ptr = &gStdScripts[index]; + const u8 **ptr = &gStdScripts[index]; if (ptr < gStdScripts_End) ScriptCall(ctx, *ptr); } @@ -292,7 +292,7 @@ bool8 ScrCmd_callstd_if(struct ScriptContext *ctx) bool8 ScrCmd_gotoram(struct ScriptContext *ctx) { - ScriptJump(ctx, (u8 *)gUnknown_020375C0); + ScriptJump(ctx, (const u8 *)gUnknown_020375C0); return FALSE; } @@ -323,7 +323,7 @@ bool8 ScrCmd_loadbytefromaddr(struct ScriptContext *ctx) { u8 index = ScriptReadByte(ctx); - ctx->data[index] = *(u8 *)ScriptReadWord(ctx); + ctx->data[index] = *(const u8 *)ScriptReadWord(ctx); return FALSE; } @@ -363,7 +363,7 @@ bool8 ScrCmd_copylocal(struct ScriptContext *ctx) bool8 ScrCmd_copybyte(struct ScriptContext *ctx) { u8 *ptr = (u8 *)ScriptReadWord(ctx); - *ptr = *(u8 *)ScriptReadWord(ctx); + *ptr = *(const u8 *)ScriptReadWord(ctx); return FALSE; } @@ -400,8 +400,8 @@ u8 compare_012(u16 a1, u16 a2) // comparelocaltolocal bool8 ScrCmd_compare_local_to_local(struct ScriptContext *ctx) { - u8 value1 = ctx->data[ScriptReadByte(ctx)]; - u8 value2 = ctx->data[ScriptReadByte(ctx)]; + const u8 value1 = ctx->data[ScriptReadByte(ctx)]; + const u8 value2 = ctx->data[ScriptReadByte(ctx)]; ctx->comparisonResult = compare_012(value1, value2); return FALSE; @@ -410,8 +410,8 @@ bool8 ScrCmd_compare_local_to_local(struct ScriptContext *ctx) // comparelocaltoimm bool8 ScrCmd_compare_local_to_value(struct ScriptContext *ctx) { - u8 value1 = ctx->data[ScriptReadByte(ctx)]; - u8 value2 = ScriptReadByte(ctx); + const u8 value1 = ctx->data[ScriptReadByte(ctx)]; + const u8 value2 = ScriptReadByte(ctx); ctx->comparisonResult = compare_012(value1, value2); return FALSE; @@ -419,8 +419,8 @@ bool8 ScrCmd_compare_local_to_value(struct ScriptContext *ctx) bool8 ScrCmd_compare_local_to_addr(struct ScriptContext *ctx) { - u8 value1 = ctx->data[ScriptReadByte(ctx)]; - u8 value2 = *(u8 *)ScriptReadWord(ctx); + const u8 value1 = ctx->data[ScriptReadByte(ctx)]; + const u8 value2 = *(const u8 *)ScriptReadWord(ctx); ctx->comparisonResult = compare_012(value1, value2); return FALSE; @@ -428,8 +428,8 @@ bool8 ScrCmd_compare_local_to_addr(struct ScriptContext *ctx) bool8 ScrCmd_compare_addr_to_local(struct ScriptContext *ctx) { - u8 value1 = *(u8 *)ScriptReadWord(ctx); - u8 value2 = ctx->data[ScriptReadByte(ctx)]; + const u8 value1 = *(const u8 *)ScriptReadWord(ctx); + const u8 value2 = ctx->data[ScriptReadByte(ctx)]; ctx->comparisonResult = compare_012(value1, value2); return FALSE; @@ -437,8 +437,8 @@ bool8 ScrCmd_compare_addr_to_local(struct ScriptContext *ctx) bool8 ScrCmd_compare_addr_to_value(struct ScriptContext *ctx) { - u8 value1 = *(u8 *)ScriptReadWord(ctx); - u8 value2 = ScriptReadByte(ctx); + const u8 value1 = *(const u8 *)ScriptReadWord(ctx); + const u8 value2 = ScriptReadByte(ctx); ctx->comparisonResult = compare_012(value1, value2); return FALSE; @@ -446,8 +446,8 @@ bool8 ScrCmd_compare_addr_to_value(struct ScriptContext *ctx) bool8 ScrCmd_compare_addr_to_addr(struct ScriptContext *ctx) { - u8 value1 = *(u8 *)ScriptReadWord(ctx); - u8 value2 = *(u8 *)ScriptReadWord(ctx); + const u8 value1 = *(const u8 *)ScriptReadWord(ctx); + const u8 value2 = *(const u8 *)ScriptReadWord(ctx); ctx->comparisonResult = compare_012(value1, value2); return FALSE; @@ -455,8 +455,8 @@ bool8 ScrCmd_compare_addr_to_addr(struct ScriptContext *ctx) bool8 ScrCmd_compare_var_to_value(struct ScriptContext *ctx) { - u16 value1 = *GetVarPointer(ScriptReadHalfword(ctx)); - u16 value2 = ScriptReadHalfword(ctx); + const u16 value1 = *GetVarPointer(ScriptReadHalfword(ctx)); + const u16 value2 = ScriptReadHalfword(ctx); ctx->comparisonResult = compare_012(value1, value2); return FALSE; @@ -464,8 +464,8 @@ bool8 ScrCmd_compare_var_to_value(struct ScriptContext *ctx) bool8 ScrCmd_compare_var_to_var(struct ScriptContext *ctx) { - u16 *ptr1 = GetVarPointer(ScriptReadHalfword(ctx)); - u16 *ptr2 = GetVarPointer(ScriptReadHalfword(ctx)); + const u16 *ptr1 = GetVarPointer(ScriptReadHalfword(ctx)); + const u16 *ptr2 = GetVarPointer(ScriptReadHalfword(ctx)); ctx->comparisonResult = compare_012(*ptr1, *ptr2); return FALSE; @@ -1003,7 +1003,7 @@ bool8 ScrCmd_fadeinbgm(struct ScriptContext *ctx) bool8 ScrCmd_applymovement(struct ScriptContext *ctx) { u16 localId = VarGet(ScriptReadHalfword(ctx)); - void *movementScript = (void *)ScriptReadWord(ctx); + const void *movementScript = (const void *)ScriptReadWord(ctx); ScriptMovement_StartObjectMovementScript(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, movementScript); sMovingNpcId = localId; @@ -1013,7 +1013,7 @@ bool8 ScrCmd_applymovement(struct ScriptContext *ctx) bool8 ScrCmd_applymovement_at(struct ScriptContext *ctx) { u16 localId = VarGet(ScriptReadHalfword(ctx)); - void *movementScript = (void *)ScriptReadWord(ctx); + const void *movementScript = (const void *)ScriptReadWord(ctx); u8 mapGroup = ScriptReadByte(ctx); u8 mapNum = ScriptReadByte(ctx); @@ -1274,30 +1274,30 @@ bool8 ScrCmd_release(struct ScriptContext *ctx) bool8 ScrCmd_message(struct ScriptContext *ctx) { - u8 *msg = (u8 *)ScriptReadWord(ctx); + const u8 *msg = (const u8 *)ScriptReadWord(ctx); if (msg == NULL) - msg = (u8 *)ctx->data[0]; + msg = (const u8 *)ctx->data[0]; ShowFieldMessage(msg); return FALSE; } bool8 ScrCmd_cmdDF(struct ScriptContext *ctx) { - u8 *msg = (u8 *)ScriptReadWord(ctx); + const u8 *msg = (const u8 *)ScriptReadWord(ctx); if (msg == NULL) - msg = (u8 *)ctx->data[0]; + msg = (const u8 *)ctx->data[0]; sub_8098238(msg); return FALSE; } bool8 ScrCmd_messageautoscroll(struct ScriptContext *ctx) { - u8 *msg = (u8 *)ScriptReadWord(ctx); + const u8 *msg = (const u8 *)ScriptReadWord(ctx); if (msg == NULL) - msg = (u8 *)ctx->data[0]; + msg = (const u8 *)ctx->data[0]; gTextFlags.flag_2 = TRUE; gTextFlags.flag_3 = TRUE; ShowFieldAutoScrollMessage(msg); @@ -1306,10 +1306,10 @@ bool8 ScrCmd_messageautoscroll(struct ScriptContext *ctx) bool8 ScrCmd_cmdDB(struct ScriptContext *ctx) { - u8 *msg = (u8 *)ScriptReadWord(ctx); + const u8 *msg = (const u8 *)ScriptReadWord(ctx); if (msg == NULL) - msg = (u8 *)ctx->data[0]; + msg = (const u8 *)ctx->data[0]; sub_81973A4(); sub_81973C4(0, 1); PrintTextOnWindow(0, 1, msg, 0, 1, 0, 0); @@ -1780,7 +1780,7 @@ bool8 ScrCmd_cmdE1(struct ScriptContext *ctx) bool8 ScrCmd_getstring(struct ScriptContext *ctx) { u8 stringVarIndex = ScriptReadByte(ctx); - u8 *text = (u8 *)ScriptReadWord(ctx); + const u8 *text = (u8 *)ScriptReadWord(ctx); StringCopy(sScriptStringVars[stringVarIndex], text); return FALSE; @@ -1788,7 +1788,7 @@ bool8 ScrCmd_getstring(struct ScriptContext *ctx) bool8 ScrCmd_vloadword(struct ScriptContext *ctx) { - u8 *ptr = (u8 *)(ScriptReadWord(ctx) - gUnknown_020375C4); + const u8 *ptr = (u8 *)(ScriptReadWord(ctx) - gUnknown_020375C4); StringExpandPlaceholders(gStringVar4, ptr); return FALSE; @@ -1799,7 +1799,7 @@ bool8 ScrCmd_vgetstring(struct ScriptContext *ctx) u8 stringVarIndex = ScriptReadByte(ctx); u32 addr = ScriptReadWord(ctx); - u8 *src = (u8 *)(addr - gUnknown_020375C4); + const u8 *src = (u8 *)(addr - gUnknown_020375C4); u8 *dest = sScriptStringVars[stringVarIndex]; StringCopy(dest, src); return FALSE; @@ -2022,7 +2022,7 @@ bool8 ScrCmd_dowildbattle(struct ScriptContext *ctx) bool8 ScrCmd_pokemart(struct ScriptContext *ctx) { - void *ptr = (void *)ScriptReadWord(ctx); + const void *ptr = (void *)ScriptReadWord(ctx); CreatePokemartMenu(ptr); ScriptContext1_Stop(); @@ -2031,7 +2031,7 @@ bool8 ScrCmd_pokemart(struct ScriptContext *ctx) bool8 ScrCmd_pokemartdecor(struct ScriptContext *ctx) { - void *ptr = (void *)ScriptReadWord(ctx); + const void *ptr = (void *)ScriptReadWord(ctx); CreateDecorationShop1Menu(ptr); ScriptContext1_Stop(); @@ -2040,7 +2040,7 @@ bool8 ScrCmd_pokemartdecor(struct ScriptContext *ctx) bool8 ScrCmd_pokemartbp(struct ScriptContext *ctx) { - void *ptr = (void *)ScriptReadWord(ctx); + const void *ptr = (void *)ScriptReadWord(ctx); CreateDecorationShop2Menu(ptr); ScriptContext1_Stop(); @@ -2360,7 +2360,7 @@ bool8 ScrCmd_cmdCE(struct ScriptContext *ctx) bool8 ScrCmd_cmdCF(struct ScriptContext *ctx) { - u8* v1 = sub_8099244(); + const u8* v1 = sub_8099244(); if (v1) { diff --git a/src/script.c b/src/script.c index b2809a137..5a1c5daa9 100644 --- a/src/script.c +++ b/src/script.c @@ -134,12 +134,12 @@ const u8 *ScriptPop(struct ScriptContext *ctx) return ctx->stack[ctx->stackDepth]; } -void ScriptJump(struct ScriptContext *ctx, u8 *ptr) +void ScriptJump(struct ScriptContext *ctx, const u8 *ptr) { ctx->scriptPtr = ptr; } -void ScriptCall(struct ScriptContext *ctx, u8 *ptr) +void ScriptCall(struct ScriptContext *ctx, const u8 *ptr) { ScriptPush(ctx, ctx->scriptPtr); ctx->scriptPtr = ptr; diff --git a/src/text.c b/src/text.c index 7cc46cd92..8108a6867 100644 --- a/src/text.c +++ b/src/text.c @@ -145,7 +145,7 @@ void DeactivateAllTextPrinters (void) gTextPrinters[printer].sub_union.sub.active = 0; } -u16 PrintTextOnWindow(u8 windowId, u8 fontId, u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextSubPrinter *, u16)) +u16 PrintTextOnWindow(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextSubPrinter *, u16)) { struct TextSubPrinter subPrinter; -- cgit v1.2.3 From 24bd8c73e17fa8795808a1b53745854026b8c3a0 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Thu, 12 Oct 2017 22:34:58 -0500 Subject: Name some new script commands --- data/event_script_command_function_table.inc | 44 ++++++++++----------- include/data2.h | 10 +++++ src/scrcmd.c | 57 ++++++++++++++-------------- 3 files changed, 61 insertions(+), 50 deletions(-) diff --git a/data/event_script_command_function_table.inc b/data/event_script_command_function_table.inc index 675da0ea7..7cd00c37d 100644 --- a/data/event_script_command_function_table.inc +++ b/data/event_script_command_function_table.inc @@ -114,9 +114,9 @@ gScriptCmdTable:: @ 81DB67C .4byte ScrCmd_multichoice .4byte ScrCmd_multichoicedefault .4byte ScrCmd_multichoicegrid - .4byte ScrCmd_cmd72 - .4byte ScrCmd_cmd73 - .4byte ScrCmd_cmd74 + .4byte ScrCmd_drawbox + .4byte ScrCmd_erasebox + .4byte ScrCmd_drawboxtext .4byte ScrCmd_drawpokepic .4byte ScrCmd_erasepokepic .4byte ScrCmd_drawcontestwinner @@ -177,8 +177,8 @@ gScriptCmdTable:: @ 81DB67C .4byte ScrCmd_waitdooranim .4byte ScrCmd_setdooropen .4byte ScrCmd_setdoorclosed - .4byte ScrCmd_cmdB1 - .4byte ScrCmd_cmdB2 + .4byte ScrCmd_addelevmenuitem + .4byte ScrCmd_showelevmenu .4byte ScrCmd_checkcoins .4byte ScrCmd_givecoins .4byte ScrCmd_takecoins @@ -198,32 +198,32 @@ gScriptCmdTable:: @ 81DB67C .4byte ScrCmd_incrementgamestat .4byte ScrCmd_setescapewarp .4byte ScrCmd_waitpokecry - .4byte ScrCmd_cmdC6 + .4byte ScrCmd_getboxname .4byte ScrCmd_nop1 .4byte ScrCmd_nop1 .4byte ScrCmd_nop1 .4byte ScrCmd_nop1 .4byte ScrCmd_nop1 .4byte ScrCmd_nop1 - .4byte ScrCmd_cmdCD - .4byte ScrCmd_cmdCE + .4byte ScrCmd_setpokeobedient + .4byte ScrCmd_checkpokeobedience .4byte ScrCmd_cmdCF .4byte ScrCmd_nop1 - .4byte ScrCmd_cmdD1 - .4byte ScrCmd_cmdD2 - .4byte ScrCmd_cmdD3 - .4byte ScrCmd_cmdD4 - .4byte ScrCmd_cmdD5 - .4byte ScrCmd_cmdD6 - .4byte ScrCmd_cmdD7 + .4byte ScrCmd_warpD1 + .4byte ScrCmd_setpokemetlocation + .4byte ScrCmd_mossdeepgym1 + .4byte ScrCmd_mossdeepgym2 + .4byte ScrCmd_mossdeepgym3 + .4byte ScrCmd_mossdeepgym4 + .4byte ScrCmd_warpD7 .4byte ScrCmd_cmdD8 .4byte ScrCmd_cmdD9 .4byte ScrCmd_cmdDA .4byte ScrCmd_cmdDB - .4byte ScrCmd_cmdDC - .4byte ScrCmd_cmdDD - .4byte ScrCmd_cmdDE - .4byte ScrCmd_cmdDF - .4byte ScrCmd_cmdE0 - .4byte ScrCmd_cmdE1 - .4byte ScrCmd_cmdE2 + .4byte ScrCmd_fadescreenswapbuffers + .4byte ScrCmd_gettrainerclass + .4byte ScrCmd_gettrainername + .4byte ScrCmd_pokenavcall + .4byte ScrCmd_warpE0 + .4byte ScrCmd_getcontesttype + .4byte ScrCmd_getitemnameplural diff --git a/include/data2.h b/include/data2.h index ccb9b4b7e..db9532811 100644 --- a/include/data2.h +++ b/include/data2.h @@ -1,6 +1,16 @@ #ifndef GUARD_DATA2_H #define GUARD_DATA2_H +struct MonCoords +{ + // This would use a bitfield, but some function + // uses it as a u8 and casting won't match. + u8 coords; // u8 x:4, y:4; + u8 y_offset; +}; + +extern struct MonCoords gTrainerBackPicCoords[]; + extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1]; extern const u8 gMoveNames[][13]; extern const u8 gAbilityNames[][13]; diff --git a/src/scrcmd.c b/src/scrcmd.c index 1bc7d709a..f6039142c 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -643,29 +643,29 @@ bool8 ScrCmd_fadescreen(struct ScriptContext *ctx) bool8 ScrCmd_fadescreendelay(struct ScriptContext *ctx) { - u8 duration = ScriptReadByte(ctx); + u8 mode = ScriptReadByte(ctx); u8 delay = ScriptReadByte(ctx); - fade_screen(duration, delay); + fade_screen(mode, delay); SetupNativeScript(ctx, IsPaletteNotActive); return TRUE; } -int ScrCmd_cmdDC(struct ScriptContext *ctx) +bool8 ScrCmd_fadescreenswapbuffers(struct ScriptContext *ctx) { - u8 duration = ScriptReadByte(ctx); + u8 mode = ScriptReadByte(ctx); - switch (duration) + switch (mode) { case 1: default: CpuCopy32(gPlttBufferUnfaded, gPaletteDecompressionBuffer, PLTT_DECOMP_BUFFER_SIZE); - fade_screen(duration, 0); + fade_screen(mode, 0); break; case 0: case 2: CpuCopy32(gPaletteDecompressionBuffer, gPlttBufferUnfaded, PLTT_DECOMP_BUFFER_SIZE); - fade_screen(duration, 0); + fade_screen(mode, 0); break; } @@ -821,7 +821,7 @@ bool8 ScrCmd_warpteleport(struct ScriptContext *ctx) return TRUE; } -bool8 ScrCmd_cmdD7(struct ScriptContext *ctx) +bool8 ScrCmd_warpD7(struct ScriptContext *ctx) { u8 mapGroup = ScriptReadByte(ctx); u8 mapNum = ScriptReadByte(ctx); @@ -1282,7 +1282,7 @@ bool8 ScrCmd_message(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_cmdDF(struct ScriptContext *ctx) +bool8 ScrCmd_pokenavcall(struct ScriptContext *ctx) { const u8 *msg = (const u8 *)ScriptReadWord(ctx); @@ -1396,7 +1396,7 @@ bool8 ScrCmd_multichoicedefault(struct ScriptContext *ctx) } } -bool8 ScrCmd_cmd72(struct ScriptContext *ctx) +bool8 ScrCmd_drawbox(struct ScriptContext *ctx) { /*u8 left = ScriptReadByte(ctx); u8 top = ScriptReadByte(ctx); @@ -1426,7 +1426,7 @@ bool8 ScrCmd_multichoicegrid(struct ScriptContext *ctx) } } -bool8 ScrCmd_cmd73(struct ScriptContext *ctx) +bool8 ScrCmd_erasebox(struct ScriptContext *ctx) { u8 left = ScriptReadByte(ctx); u8 top = ScriptReadByte(ctx); @@ -1437,7 +1437,7 @@ bool8 ScrCmd_cmd73(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_cmd74(struct ScriptContext *ctx) +bool8 ScrCmd_drawboxtext(struct ScriptContext *ctx) { u8 left = ScriptReadByte(ctx); u8 top = ScriptReadByte(ctx); @@ -1721,7 +1721,7 @@ bool8 ScrCmd_getitemname(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_cmdE2(struct ScriptContext *ctx) +bool8 ScrCmd_getitemnameplural(struct ScriptContext *ctx) { u8 stringVarIndex = ScriptReadByte(ctx); u16 itemId = VarGet(ScriptReadHalfword(ctx)); @@ -1768,7 +1768,7 @@ bool8 ScrCmd_getstdstring(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_cmdE1(struct ScriptContext *ctx) +bool8 ScrCmd_getcontesttype(struct ScriptContext *ctx) { u8 stringVarIndex = ScriptReadByte(ctx); u16 index = VarGet(ScriptReadHalfword(ctx)); @@ -1805,7 +1805,7 @@ bool8 ScrCmd_vgetstring(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_cmdC6(struct ScriptContext *ctx) +bool8 ScrCmd_getboxname(struct ScriptContext *ctx) { u8 stringVarIndex = ScriptReadByte(ctx); u16 boxId = VarGet(ScriptReadHalfword(ctx)); @@ -2242,7 +2242,7 @@ bool8 ScrCmd_setdoorclosed(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_cmdB1(struct ScriptContext *ctx) +bool8 ScrCmd_addelevmenuitem(struct ScriptContext *ctx) { u8 v3 = ScriptReadByte(ctx); u16 v5 = VarGet(ScriptReadHalfword(ctx)); @@ -2253,7 +2253,7 @@ bool8 ScrCmd_cmdB1(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_cmdB2(struct ScriptContext *ctx) +bool8 ScrCmd_showelevmenu(struct ScriptContext *ctx) { /*ScriptShowElevatorMenu(); ScriptContext1_Stop(); @@ -2290,7 +2290,7 @@ bool8 ScrCmd_takecoins(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_cmdD3(struct ScriptContext *ctx) +bool8 ScrCmd_mossdeepgym1(struct ScriptContext *ctx) { u16 v1 = VarGet(ScriptReadHalfword(ctx)); @@ -2298,13 +2298,13 @@ bool8 ScrCmd_cmdD3(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_cmdD4(struct ScriptContext *ctx) +bool8 ScrCmd_mossdeepgym2(struct ScriptContext *ctx) { sub_81A8AF8(); return FALSE; } -bool8 ScrCmd_cmdD5(struct ScriptContext *ctx) +bool8 ScrCmd_mossdeepgym3(struct ScriptContext *ctx) { u16 v1 = VarGet(ScriptReadHalfword(ctx)); @@ -2312,7 +2312,7 @@ bool8 ScrCmd_cmdD5(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_cmdD6(struct ScriptContext *ctx) +bool8 ScrCmd_mossdeepgym4(struct ScriptContext *ctx) { sub_81A895C(); return FALSE; @@ -2341,7 +2341,8 @@ bool8 ScrCmd_cmdD9(struct ScriptContext *ctx) } } -bool8 ScrCmd_cmdCD(struct ScriptContext *ctx) +// This command will force the Pokémon to be obedient, you don't get to choose which value to set its obedience to +bool8 ScrCmd_setpokeobedient(struct ScriptContext *ctx) { bool8 obedient = TRUE; u16 partyIndex = VarGet(ScriptReadHalfword(ctx)); @@ -2350,7 +2351,7 @@ bool8 ScrCmd_cmdCD(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_cmdCE(struct ScriptContext *ctx) +bool8 ScrCmd_checkpokeobedience(struct ScriptContext *ctx) { u16 partyIndex = VarGet(ScriptReadHalfword(ctx)); @@ -2370,7 +2371,7 @@ bool8 ScrCmd_cmdCF(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_cmdD1(struct ScriptContext *ctx) +bool8 ScrCmd_warpD1(struct ScriptContext *ctx) { u8 mapGroup = ScriptReadByte(ctx); u8 mapNum = ScriptReadByte(ctx); @@ -2385,7 +2386,7 @@ bool8 ScrCmd_cmdD1(struct ScriptContext *ctx) return TRUE; } -bool8 ScrCmd_cmdD2(struct ScriptContext *ctx) +bool8 ScrCmd_setpokemetlocation(struct ScriptContext *ctx) { u16 partyIndex = VarGet(ScriptReadHalfword(ctx)); u8 location = ScriptReadByte(ctx); @@ -2401,7 +2402,7 @@ void sub_809BDB4(void) RemoveWindow(gUnknown_03000F30); } -bool8 ScrCmd_cmdDD(struct ScriptContext *ctx) +bool8 ScrCmd_gettrainerclass(struct ScriptContext *ctx) { u8 stringVarIndex = ScriptReadByte(ctx); u16 trainerClassId = VarGet(ScriptReadHalfword(ctx)); @@ -2410,7 +2411,7 @@ bool8 ScrCmd_cmdDD(struct ScriptContext *ctx) return FALSE; } -bool8 ScrCmd_cmdDE(struct ScriptContext *ctx) +bool8 ScrCmd_gettrainername(struct ScriptContext *ctx) { u8 stringVarIndex = ScriptReadByte(ctx); u16 trainerClassId = VarGet(ScriptReadHalfword(ctx)); @@ -2424,7 +2425,7 @@ void sub_809BE48(u16 npcId) sMovingNpcId = npcId; } -bool8 ScrCmd_cmdE0(struct ScriptContext *ctx) +bool8 ScrCmd_warpE0(struct ScriptContext *ctx) { u8 mapGroup = ScriptReadByte(ctx); u8 mapNum = ScriptReadByte(ctx); -- cgit v1.2.3 From 0f44747788b774021519d600cb612c8c3303aa7d Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Fri, 13 Oct 2017 12:25:32 +0200 Subject: review changes --- data/data2b.s | 2 +- include/bg.h | 10 ++++++++++ src/reshow_battle_screen.c | 11 ----------- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/data/data2b.s b/data/data2b.s index 77dd6a892..e723b4c97 100644 --- a/data/data2b.s +++ b/data/data2b.s @@ -4510,7 +4510,7 @@ gUnknown_08305D0C:: @ 8305D0C @ 8305DCC .include "data/enemy_mon_elevation.inc" -@ 8309AAC +@ 8305F68 .include "data/graphics/pokemon/front_anims.inc" @ 830A18C diff --git a/include/bg.h b/include/bg.h index 0dcb84a34..0c6b4ac26 100644 --- a/include/bg.h +++ b/include/bg.h @@ -1,6 +1,16 @@ #ifndef GUARD_BG_H #define GUARD_BG_H +struct BGCntrlBitfield // for the I/O registers +{ + volatile u16 priority:2; + volatile u16 charBaseBlock:2; + volatile u16 field_0_2:4; + volatile u16 field_1_0:5; + volatile u16 areaOverflowMode:1; + volatile u16 screenSize:2; +}; + enum { BG_CTRL_ATTR_VISIBLE = 1, diff --git a/src/reshow_battle_screen.c b/src/reshow_battle_screen.c index 1c13448d4..25c2ca658 100644 --- a/src/reshow_battle_screen.c +++ b/src/reshow_battle_screen.c @@ -197,17 +197,6 @@ static void CB2_ReshowBattleScreenAfterMenu(void) gBattleScripting.reshowMainState++; } -// todo: find a better place for the struct declaration -struct BGCntrlBitfield -{ - volatile u16 priority:2; - volatile u16 charBaseBlock:2; - volatile u16 field_0_2:4; - volatile u16 field_1_0:5; - volatile u16 areaOverflowMode:1; - volatile u16 screenSize:2; -}; - static void sub_80A95F4(void) { struct BGCntrlBitfield *regBgcnt1, *regBgcnt2; -- cgit v1.2.3 From 52db3ad5aa83ae70e06eae87f502b09fff55aecc Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 13 Oct 2017 11:09:36 -0400 Subject: Decompile TV (#80) * ClearTVShowData * special_0x44 * DoTVShow (nonmatching because align) * DoTVShowBravoTrainerPokemonProfile * Update field names * DoTVShowBravoTrainerBattleTower * Renaming of struct fields * sub_80EBFF4 and UpdateTVScreensOnMap * SetTVMetatilesOnMap * Power buttons for the TV screens on the map * special_0x45 * sub_80EC18C * special_0x4a * ResetGabbyAndTy * GabbyAndTyBeforeInterview * GabbyAndTyAfterInterview * Through IsTVShowInSearchOfTrainersAiring * GabbyAndTyGetLastQuote * GabbyAndTyGetLastBattleTrivia * GabbyAndTySetScriptVarsToFieldObjectLocalIds * InterviewAfter; use TVShow as a precursor for making the individual show structs anonymous * Make TV structs anonymous within the union * Move the TV union to its own subheader * Move TV show enums to the global.tv.h subheader * Funcion renaming * Apply static attributes where able * PutPokemonTodayCaughtOnAir * sub_80EC8A4 * PutPokemonTodayFailedOnTheAir * sub_80EC9E8, sub_80ECA10 * sub_80ECA38 * sub_80ECB00 * Put3CheersForPokeblocksOnTheAir * PutFanClubSpecialOnTheAir * ContestLiveUpdates_BeforeInterview * Other before-interview Contest Live Updates functions * ContestLiveUpdates_BeforeInterview_5 * InterviewAfter_BravoTrainerPokemonProfile * BravoTrainerPokemonProfile_BeforeInterview1 * BravoTrainerPokemonProfile_BeforeInterview2 * Disassemble TV data * Decompile TV data * InterviewAfter_BravoTrainerBattleTowerProfile * SaveRecordedItemPurchasesForTVShow * PutNameRaterShowOnTheAir * StartMassOutbreak * PutLilycoveContestLadyShowOnTheAir * InterviewAfter_FanClubLetter * Rip TV strings * InterviewAfter_RecentHappenings * InterviewAfter_PkmnFanClubOpinions * sub_80ED718 * EndMassOutbreak * sub_80ED888 * sub_80ED8B4 * UpdateMassOutbreakTimeLeft * sub_80ED950 * PutFishingAdviceShowOnTheAir * through sub_80EDA80 * ewram and common syms are now fetched from the object files * BSS symbols are taken from the tv.o file * through sub_80EDC60 * sub_80EDCE8 * sub_80EDD78 * through sub_80EDE84 * nomatching sub_80EDE98 * sub_80EDFB4 * sub_80EE104 * sub_80EE104 * sub_80EE184 * sub_80EE2CC * sub_80EE35C * sub_80EE44C * sub_80EE4DC * sub_80EE5A4 * sub_80EE69C * sub_80EE72C * sub_80EE7C0 * sub_80EE818 * sub_80EE8C8 * sub_80EEA70 * sub_80EEB98 * sub_80EEBF4 * through sub_80EED60 * Functions relating to Pokemon News * sub_80EEF6C * GetPriceReduction * IsPriceDiscounted * sub_80EF120 * through sub_80EF370 * sub_80EF40C * HasMixableShowAlreadyBeenSpawnedWithPlayerID * TV_SortPurchasesByQuantity * FindActiveBroadcastByShowType_SetScriptResult * InterviewBefore * through sub_80EF88C * through sub_80EF93C * through sub_80EFA24 * through TV_BernoulliTrial * sub_80EFB58 * sub_80EFBA4 * sub_80EFBDC * through sub_80EFD98 * ChangePokemonNickname * ChangeBoxPokemonNickname * sub_80EFF9C * through player_id_to_dword * CheckForBigMovieOrEmergencyNewsOnTV * GetMomOrDadStringForTVMessage * sub_80F01E8 * sub_80F0358 * sub_80F049C * TV record mixing functions * sub_80F06D0 * sub_80F0708 nonmatching * through sub_80F0B24 * sub_80F0B64 * through sub_80F0C04 * sub_80F0C7C * sub_80F0D60 * sub_80F0E58 * sub_80F0E84 * through sub_80F0F24 * sub_80F0F64 * sub_80F1208 * sub_80F1254 * sub_80F1290 * sub_80F12A4 * sub_80F14F8 * DoTVShowTodaysSmartShopper * DoTVShowTheNameRaterShow * DoTVShowPokemonTodaySuccessfulCapture * DoTVShowPokemonTodayFailedCapture * DoTVShowPokemonFanClubLetter * DoTVShowRecentHappenings * DoTVShowPokemonFanClubOpinions * DoTVShowPokemonNewsMassOutbreak * DoTVShowPokemonContestLiveUpdates * DoTVShowPokemonBattleUpdate * DoTVShow3CheersForPokeblocks * DoTVShowInSearchOfTrainers * Label GabbyAndTyData fields; remove ddump comments from data/text/tv.inc * DoTVShowPokemonAngler * DoTVShowTheWorldOfMasters; update RAM symbols and field names * Decorate static functions * DoTVShowTodaysRivalTrainer; region map enums * TVDewfordTrendWatcherNetworkTextGroup * DoTVShowHoennTreasureInvestigators * DoTVShowFindThatGamer * DoTVShowBreakingNewsTV * DoTVShowSecretBaseVisit * DoTVShowPokemonLotterWinnerFlashReport * DoTVShowThePokemonBattleSeminar * DoTVShowTrainerFanClubSpecial, DoTVShowTrainerFanClub * DoTVShowSpotTheCuties * DoTVShowPokemonNewsBattleFrontier * DoTVShowWhatsNo1InHoennToday * Helpers for DoTVShowSecretBaseSecrets * DoTVShowSecretBaseSecrets * DoTVShowSafariFanClub * Finish decompilation of tv.s * Some renaming * Rename text group pointers * revoke statis; pokenews enums * Labels are number one * Label all TV struct fields * Make data/text/tv.inc more readable * Split data/text/tv.inc * Rename pokenews text pointers * Frontier Symbol constants; indicate static rodata objects with 's' prefix * Fix leading spaces/tabs F*** CLion sometimes * Fix inconsequential warning --- asm/battle_frontier_2.s | 12 +- asm/battle_link_817C95C.s | 4 +- asm/battle_setup.s | 4 +- asm/battle_tower.s | 10 +- asm/berry_blender.s | 18 +- asm/cable_club.s | 10 +- asm/contest.s | 40 +- asm/contest_ai.s | 4 +- asm/contest_link_80F57C4.s | 24 +- asm/contest_link_80FC4F4.s | 2 +- asm/dewford_trend.s | 2 +- asm/easy_chat.s | 10 +- asm/field_message_box.s | 6 +- asm/field_poison.s | 2 +- asm/international_string_util.s | 6 +- asm/link.s | 70 +- asm/mauville_old_man.s | 10 +- asm/pokemon_summary_screen.s | 2 +- asm/record_mixing.s | 22 +- asm/recorded_battle.s | 4 +- asm/rom3.s | 2 +- asm/rom6.s | 48 +- asm/scrcmd.s | 6 +- asm/script_pokemon_util_80F87D8.s | 4 +- asm/secret_base.s | 2 +- asm/trade.s | 4 +- asm/tv.s | 16938 ---------------------------------- common_syms/tv.txt | 4 + data/event_scripts.s | 10 +- data/text/pokemon_news.inc | 165 + data/text/tv.inc | 2891 ++++++ data/tv.s | 128 - include/battle.h | 17 +- include/battle_tower.h | 6 + include/contest.h | 18 + include/decoration.h | 147 + include/easy_chat.h | 6 +- include/event_scripts.h | 349 + include/field_camera.h | 2 + include/field_message_box.h | 12 + include/fieldmap.h | 7 +- include/flags.h | 16 +- include/game_stat.h | 3 + include/global.h | 324 +- include/global.tv.h | 535 ++ include/international_string_util.h | 13 + include/item.h | 1 + include/link.h | 2 +- include/malloc.h | 2 +- include/moves.h | 1 + include/pokedex.h | 4 +- include/pokemon_storage_system.h | 2 + include/region_map.h | 227 + include/rom4.h | 1 + include/rom6.h | 1 + include/script_menu.h | 11 + include/secret_base.h | 11 + include/shop.h | 12 + include/species.h | 1 + include/string_util.h | 2 +- include/strings.h | 33 + include/tv.h | 21 + include/vars.h | 10 + ld_script.txt | 4 +- src/battle_2.c | 13 +- src/battle_script_commands.c | 2 +- src/battle_util.c | 2 +- src/egg_hatch.c | 6 +- src/new_game.c | 2 +- src/safari_zone.c | 2 +- src/start_menu.c | 4 +- src/string_util.c | 2 +- src/tv.c | 7927 ++++++++++++++++ sym_bss.txt | 11 +- sym_common.txt | 22 +- sym_ewram.txt | 32 +- 76 files changed, 12689 insertions(+), 17601 deletions(-) delete mode 100644 asm/tv.s create mode 100644 common_syms/tv.txt create mode 100644 data/text/pokemon_news.inc create mode 100644 data/text/tv.inc delete mode 100644 data/tv.s create mode 100644 include/battle_tower.h create mode 100644 include/contest.h create mode 100644 include/decoration.h create mode 100644 include/field_message_box.h create mode 100644 include/global.tv.h create mode 100644 include/international_string_util.h create mode 100644 include/region_map.h create mode 100644 include/script_menu.h create mode 100644 include/secret_base.h create mode 100644 include/shop.h create mode 100644 include/strings.h create mode 100644 include/tv.h create mode 100644 src/tv.c diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s index 9e01d22d1..88ee1c1ed 100755 --- a/asm/battle_frontier_2.s +++ b/asm/battle_frontier_2.s @@ -12935,7 +12935,7 @@ _081A1118: adds r1, r0, 0 mov r0, sp movs r2, 0x2 - bl sub_81DB5E8 + bl TVShowConvertInternationalString adds r0, r5, 0 mov r1, sp bl StringCopy @@ -18997,7 +18997,7 @@ sub_81A4594: @ 81A4594 adds r1, r6, 0x6 ldrb r2, [r6, 0xE] add r0, sp, 0xC - bl sub_81DB5E8 + bl TVShowConvertInternationalString ldr r1, =gUnknown_0203AB74 ldrb r0, [r1] mov r3, r8 @@ -19111,7 +19111,7 @@ sub_81A4684: @ 81A4684 adds r1, 0xA ldrb r2, [r5, 0x1A] add r0, sp, 0xC - bl sub_81DB5E8 + bl TVShowConvertInternationalString ldr r1, =gUnknown_0203AB74 ldrb r0, [r1] adds r3, r7, 0x2 @@ -19133,13 +19133,13 @@ sub_81A4684: @ 81A4684 adds r4, r5, 0 adds r4, 0x12 adds r0, r4, 0 - bl sub_8009228 + bl IsStringJapanese cmp r0, 0 beq _081A4734 add r0, sp, 0xC adds r1, r4, 0 movs r2, 0x1 - bl sub_81DB5E8 + bl TVShowConvertInternationalString b _081A473C .pool _081A4734: @@ -28660,7 +28660,7 @@ _081A95EE: lsls r0, r7, 2 adds r0, r1 ldr r0, [r0] - bl box_related_two__2 + bl ShowFieldMessage add sp, 0x8 pop {r3,r4} mov r8, r3 diff --git a/asm/battle_link_817C95C.s b/asm/battle_link_817C95C.s index ec5baadd9..aa887bc25 100644 --- a/asm/battle_link_817C95C.s +++ b/asm/battle_link_817C95C.s @@ -3193,7 +3193,7 @@ _0817E63A: adds r1, r4, 0 ldr r2, [sp] ldr r3, [sp, 0x4] - bl sub_80ECB00 + bl PutBattleUpdateOnTheAir b _0817E670 .pool _0817E65C: @@ -3205,7 +3205,7 @@ _0817E65C: adds r1, r4, 0 ldr r2, [sp] ldr r3, [sp, 0x4] - bl sub_80ECB00 + bl PutBattleUpdateOnTheAir _0817E670: add sp, 0x20 pop {r3-r5} diff --git a/asm/battle_setup.s b/asm/battle_setup.s index fbedfff2f..b345ca96d 100644 --- a/asm/battle_setup.s +++ b/asm/battle_setup.s @@ -2407,7 +2407,7 @@ _080B1AD8: .pool _080B1AEC: bl sub_80B1C7C - bl box_related_two__2 + bl ShowFieldMessage _080B1AF4: pop {r0} bx r0 @@ -2468,7 +2468,7 @@ _080B1B56: special_trainer_unable_to_battle: @ 80B1B60 push {lr} bl sub_80B1D18 - bl box_related_two__2 + bl ShowFieldMessage pop {r0} bx r0 thumb_func_end special_trainer_unable_to_battle diff --git a/asm/battle_tower.s b/asm/battle_tower.s index 59971c5d2..4d86e8d28 100755 --- a/asm/battle_tower.s +++ b/asm/battle_tower.s @@ -1795,7 +1795,7 @@ _08162ED8: adds r0, 0xE4 ldrb r2, [r0] adds r0, r6, 0 - bl sub_81DB5E8 + bl TVShowConvertInternationalString b _08162F62 .pool _08162F00: @@ -1835,7 +1835,7 @@ _08162F3E: adds r1, r0, 0 adds r0, r6, 0 adds r2, r4, 0 - bl sub_81DB5E8 + bl TVShowConvertInternationalString b _08162F62 .pool _08162F5C: @@ -5016,7 +5016,7 @@ _08164B04: lsls r0, 2 adds r0, r1 ldr r0, [r0] - bl box_related_two__2 + bl ShowFieldMessage b _08164B54 .pool _08164B28: @@ -5040,7 +5040,7 @@ _08164B28: lsls r1, 2 adds r1, r0 ldr r0, [r1] - bl box_related_two__2 + bl ShowFieldMessage _08164B54: add sp, 0x8 pop {r3-r5} @@ -5673,7 +5673,7 @@ _0816508C: bl SetMonData ldr r0, [r7] adds r0, r4 - bl sub_80EE5A4 + bl GetRibbonCount strb r0, [r5, 0x1] _081650D4: adds r5, 0x4 diff --git a/asm/berry_blender.s b/asm/berry_blender.s index 277a49d2f..6d18ab7cb 100644 --- a/asm/berry_blender.s +++ b/asm/berry_blender.s @@ -1275,7 +1275,7 @@ _080802AC: strh r0, [r1] adds r5, 0x1 _080802D4: - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r5, r0 @@ -1295,7 +1295,7 @@ _080802EC: bl sub_807FD90 b _08080336 _08080302: - bl sub_8009FCC + bl GetLinkPlayerCount ldr r2, =gUnknown_020322A4 ldr r1, [r2] adds r1, 0x7C @@ -6091,7 +6091,7 @@ _08082BEE: lsls r0, 24 lsrs r5, r0, 24 _08082BF4: - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r5, r0 @@ -6104,7 +6104,7 @@ _08082C0C: lsls r0, 24 lsrs r5, r0, 24 _08082C12: - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r5, r0 @@ -6118,7 +6118,7 @@ _08082C12: cmp r0, 0 bne _08082C0C _08082C2E: - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r5, r0 @@ -6132,7 +6132,7 @@ _08082C48: lsls r0, 24 lsrs r5, r0, 24 _08082C4E: - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r5, r0 @@ -6149,7 +6149,7 @@ _08082C6A: ldr r4, =gUnknown_03003110 adds r0, r4, 0 bl sub_8081F94 - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r5, r0 @@ -8568,7 +8568,7 @@ sub_8083F94: @ 8083F94 ldrb r0, [r5, 0x12] str r0, [sp] adds r0, r7, 0 - bl sub_80ECC04 + bl Put3CheersForPokeblocksOnTheAir lsls r0, 24 cmp r0, 0 bne _080840BA @@ -8617,7 +8617,7 @@ _08084058: ldrb r0, [r5, 0x12] str r0, [sp] adds r0, r7, 0 - bl sub_80ECC04 + bl Put3CheersForPokeblocksOnTheAir lsls r0, 24 cmp r0, 0 beq _080840C4 diff --git a/asm/cable_club.s b/asm/cable_club.s index d5d3af151..4d2bee19d 100644 --- a/asm/cable_club.s +++ b/asm/cable_club.s @@ -1059,7 +1059,7 @@ _080B2C5C: lsls r0, 24 lsrs r4, r0, 24 _080B2C7E: - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r4, r0 @@ -1361,7 +1361,7 @@ _080B2F0C: movs r0, 0 mov r8, r0 mov r9, r0 - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 @@ -1984,7 +1984,7 @@ _080B3474: adds r5, 0x1C adds r4, 0x1 _080B349A: - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r4, r0 @@ -2080,7 +2080,7 @@ _080B3574: beq _080B35F8 b _080B35FE _080B357A: - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r3, r0, 24 movs r4, 0 @@ -2297,7 +2297,7 @@ _080B3750: b _080B37CC _080B375A: ldr r0, =gUnknown_08278091 - bl box_related_two__2 + bl ShowFieldMessage movs r0, 0x1 strh r0, [r5, 0x8] b _080B37CC diff --git a/asm/contest.s b/asm/contest.s index 561c79857..07883f1cd 100644 --- a/asm/contest.s +++ b/asm/contest.s @@ -1525,7 +1525,7 @@ sub_80D8490: @ 80D8490 movs r6, 0 ldr r0, =gUnknown_02039F25 mov r8, r0 - ldr r2, =gUnknown_02039E1E + ldr r2, =gUnknown_02039E00 + 30 mov r10, r2 ldr r7, =gUnknown_02039F34 _080D84B8: @@ -2624,7 +2624,7 @@ _080D8EF2: bl sub_80DB89C ldr r0, =gStringVar1 lsls r1, r6, 6 - ldr r2, =gUnknown_02039E02 + ldr r2, =gUnknown_02039E00 + 2 adds r1, r2 bl StringCopy mov r2, r9 @@ -3562,7 +3562,7 @@ _080D96D4: bl sub_80DB89C ldr r0, =gStringVar1 lsls r1, r6, 6 - ldr r2, =gUnknown_02039E02 + ldr r2, =gUnknown_02039E00 + 2 adds r1, r2 bl StringCopy ldr r4, =gStringVar4 @@ -3671,7 +3671,7 @@ _080D97DC: bl sub_80DB89C ldr r0, =gStringVar1 lsls r1, r6, 6 - ldr r2, =gUnknown_02039E02 + ldr r2, =gUnknown_02039E00 + 2 adds r1, r2 bl StringCopy ldr r4, =gStringVar4 @@ -3809,7 +3809,7 @@ _080D9904: bl sub_80DB89C ldr r0, =gStringVar1 lsls r1, r6, 6 - ldr r2, =gUnknown_02039E02 + ldr r2, =gUnknown_02039E00 + 2 adds r1, r2 bl StringCopy ldr r4, =gStringVar4 @@ -4010,7 +4010,7 @@ _080D9AD2: bl sub_80DB89C ldr r0, =gStringVar1 lsls r1, r6, 6 - ldr r2, =gUnknown_02039E02 + ldr r2, =gUnknown_02039E00 + 2 adds r1, r2 bl StringCopy ldr r4, =gUnknown_02039F34 @@ -4381,7 +4381,7 @@ _080D9DD4: lsls r1, 20 lsrs r1, 29 lsls r1, 6 - ldr r4, =gUnknown_02039E02 + ldr r4, =gUnknown_02039E00 + 2 adds r1, r4 bl StringCopy ldr r0, =gStringVar1 @@ -4476,7 +4476,7 @@ _080D9EDC: bl sub_80DC9B4 ldr r0, =gStringVar1 lsls r1, r6, 6 - ldr r2, =gUnknown_02039E02 + ldr r2, =gUnknown_02039E00 + 2 adds r1, r2 bl StringCopy ldr r0, =gStringVar2 @@ -4626,7 +4626,7 @@ _080DA038: bl sub_80DB89C ldr r0, =gStringVar1 lsls r1, r6, 6 - ldr r2, =gUnknown_02039E02 + ldr r2, =gUnknown_02039E00 + 2 adds r1, r2 bl StringCopy ldr r4, =gStringVar4 @@ -5096,7 +5096,7 @@ sub_80DA3CC: @ 80DA3CC ldr r0, =gStringVar1 ldrb r1, [r5] lsls r1, 6 - ldr r2, =gUnknown_02039E02 + ldr r2, =gUnknown_02039E00 + 2 adds r1, r2 bl StringCopy ldr r5, =gStringVar4 @@ -5360,7 +5360,7 @@ _080DA600: lsls r0, 2 adds r0, r2 ldrh r0, [r0, 0x8] - bl sub_80ED03C + bl BravoTrainerPokemonProfile_BeforeInterview1 b _080DA668 .pool _080DA65C: @@ -5667,7 +5667,7 @@ _080DA8F2: ldr r5, =gUnknown_02039F25 ldrb r0, [r5] lsls r0, 6 - ldr r4, =gUnknown_02039E0D + ldr r4, =gUnknown_02039E00 + 13 adds r0, r4 mov r1, sp movs r2, 0x8 @@ -6451,7 +6451,7 @@ sub_80DAF1C: @ 80DAF1C add r0, sp, 0x4 bl StringCopy lsls r1, r5, 6 - ldr r0, =gUnknown_02039E0D + ldr r0, =gUnknown_02039E00 + 13 adds r1, r0 add r0, sp, 0x4 bl StringAppend @@ -6508,7 +6508,7 @@ sub_80DAFA0: @ 80DAFA0 lsls r1, 24 lsrs r1, 24 lsls r0, r4, 6 - ldr r2, =gUnknown_02039E02 + ldr r2, =gUnknown_02039E00 + 2 adds r0, r2 bl sub_80DAED4 ldr r0, =gUnknown_02039F26 @@ -11173,7 +11173,7 @@ sub_80DD45C: @ 80DD45C lsrs r6, r1, 24 ldr r0, =gStringVar1 lsls r1, r4, 6 - ldr r2, =gUnknown_02039E02 + ldr r2, =gUnknown_02039E00 + 2 adds r1, r2 bl StringCopy ldr r0, =gStringVar2 @@ -15385,21 +15385,21 @@ _080DF6AE: beq _080DF6AE _080DF6C4: mov r0, r9 - bl sub_80ECDA4 + bl ContestLiveUpdates_BeforeInterview_1 mov r0, r10 - bl sub_80ECDF4 + bl ContestLiveUpdates_BeforeInterview_2 ldr r5, [sp, 0x4] lsrs r0, r5, 24 - bl sub_80ECE34 + bl ContestLiveUpdates_BeforeInterview_3 ldr r0, =gUnknown_02039F34 ldr r0, [r0] ldr r0, [r0, 0x1C] add r0, r8 ldrh r0, [r0, 0xA] - bl sub_80ECE74 + bl ContestLiveUpdates_BeforeInterview_4 adds r0, r4, 0 adds r1, r6, 0 - bl sub_80ECEB4 + bl ContestLiveUpdates_BeforeInterview_5 _080DF6EE: add sp, 0xC pop {r3-r5} diff --git a/asm/contest_ai.s b/asm/contest_ai.s index f28492886..af2ee5286 100644 --- a/asm/contest_ai.s +++ b/asm/contest_ai.s @@ -144,7 +144,7 @@ sub_81563B0: @ 81563B0 beq _081564A0 adds r7, r5, 0 ldr r6, =gAIScriptPtr - ldr r0, =gUnknown_02039E1E + ldr r0, =gUnknown_02039E00 + 30 mov r8, r0 _081563CC: ldr r0, [r7] @@ -5030,7 +5030,7 @@ sub_8158948: @ 8158948 push {r4-r6,lr} movs r5, 0 movs r4, 0 - ldr r6, =gUnknown_02039E1E + ldr r6, =gUnknown_02039E00 + 30 _08158950: lsls r1, r4, 1 ldr r0, =gUnknown_02039F34 diff --git a/asm/contest_link_80F57C4.s b/asm/contest_link_80F57C4.s index 03e1aaf2b..34e2811d9 100644 --- a/asm/contest_link_80F57C4.s +++ b/asm/contest_link_80F57C4.s @@ -1239,7 +1239,7 @@ _080F6334: ldr r1, =gUnknown_02039F20 ldrb r0, [r1] ldr r7, =gStringVar1 - ldr r2, =gUnknown_02039E0D + ldr r2, =gUnknown_02039E00 + 13 mov r8, r2 cmp r0, 0 beq _080F636E @@ -1750,7 +1750,7 @@ task_repel: @ 80F67C4 ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] - bl sub_80ED090 + bl BravoTrainerPokemonProfile_BeforeInterview2 _080F67E6: movs r0, 0 str r0, [sp] @@ -4785,7 +4785,7 @@ _080F8074: ldrb r0, [r6] muls r0, r5 adds r0, r4 - bl sub_80EE5A4 + bl GetRibbonCount lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 @@ -4834,7 +4834,7 @@ _080F80E2: ldrb r0, [r7] muls r0, r6 adds r0, r5 - bl sub_80EE5A4 + bl GetRibbonCount lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 @@ -4883,7 +4883,7 @@ _080F814E: ldrb r0, [r7] muls r0, r6 adds r0, r5 - bl sub_80EE5A4 + bl GetRibbonCount lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 @@ -4926,7 +4926,7 @@ _080F8190: ldrb r0, [r7] muls r0, r6 adds r0, r5 - bl sub_80EE5A4 + bl GetRibbonCount lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 @@ -4969,7 +4969,7 @@ _080F81F8: ldrb r0, [r7] muls r0, r6 adds r0, r5 - bl sub_80EE5A4 + bl GetRibbonCount lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 @@ -4994,7 +4994,7 @@ sub_80F8264: @ 80F8264 ldr r0, =gSpecialVar_0x8006 ldrh r1, [r0] lsls r1, 6 - ldr r0, =gUnknown_02039E0D + ldr r0, =gUnknown_02039E00 + 13 adds r1, r0 adds r0, r4, 0 bl StringCopy @@ -5013,7 +5013,7 @@ sub_80F8290: @ 80F8290 ldr r1, =gSpecialVar_0x8006 ldrh r1, [r1] lsls r1, 6 - ldr r2, =gUnknown_02039E02 + ldr r2, =gUnknown_02039E00 + 2 adds r1, r2 bl StringCopy pop {r0} @@ -5104,7 +5104,7 @@ sub_80F834C: @ 80F834C ldr r2, =gUnknown_02039F20 ldrb r0, [r2] ldr r4, =gStringVar3 - ldr r3, =gUnknown_02039E0D + ldr r3, =gUnknown_02039E00 + 13 cmp r0, 0 beq _080F836E _080F835C: @@ -5137,7 +5137,7 @@ sub_80F8390: @ 80F8390 ldr r2, =gUnknown_02039F20 ldrb r0, [r2] ldr r4, =gStringVar1 - ldr r3, =gUnknown_02039E02 + ldr r3, =gUnknown_02039E00 + 2 cmp r0, 0 beq _080F83B2 _080F83A0: @@ -5578,7 +5578,7 @@ sub_80F8714: @ 80F8714 b _080F877E .pool _080F8748: - ldr r5, =gUnknown_02039E02 + ldr r5, =gUnknown_02039E00 + 2 movs r4, 0x3 _080F874C: adds r0, r5, 0 diff --git a/asm/contest_link_80FC4F4.s b/asm/contest_link_80FC4F4.s index ad22946c5..4565c75aa 100644 --- a/asm/contest_link_80FC4F4.s +++ b/asm/contest_link_80FC4F4.s @@ -141,7 +141,7 @@ sub_80FC5DC: @ 80FC5DC bl GetMultiplayerId ldr r1, =gUnknown_02039F25 strb r0, [r1] - bl sub_8009FCC + bl GetLinkPlayerCount ldr r4, =gUnknown_02039F30 strb r0, [r4] ldr r1, =gUnknown_02039F2A diff --git a/asm/dewford_trend.s b/asm/dewford_trend.s index c3a7b192c..40df2d6a0 100644 --- a/asm/dewford_trend.s +++ b/asm/dewford_trend.s @@ -492,7 +492,7 @@ sub_812287C: @ 812287C bl Free b _08122980 _081228B0: - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 mov r9, r0 diff --git a/asm/easy_chat.s b/asm/easy_chat.s index 20bf327ac..fbbc85c25 100644 --- a/asm/easy_chat.s +++ b/asm/easy_chat.s @@ -565,7 +565,7 @@ _0811A72C: ldr r4, =gStringVar3 adds r0, r4, 0 movs r1, 0x2 - bl sub_811F88C + bl InitializeEasyChatWordArray b _0811A7C2 .pool _0811A73C: @@ -3704,7 +3704,7 @@ sub_811BDF0: @ 811BDF0 ldrb r2, [r0] mov r0, sp adds r1, r5, 0 - bl sub_81DB5E8 + bl TVShowConvertInternationalString movs r0, 0 mov r1, sp bl sub_81AFC0C @@ -11109,8 +11109,8 @@ _0811F886: bx r1 thumb_func_end sub_811F860 - thumb_func_start sub_811F88C -sub_811F88C: @ 811F88C + thumb_func_start InitializeEasyChatWordArray +InitializeEasyChatWordArray: @ 811F88C push {lr} adds r2, r0, 0 lsls r1, 16 @@ -11133,7 +11133,7 @@ _0811F8AE: pop {r0} bx r0 .pool - thumb_func_end sub_811F88C + thumb_func_end InitializeEasyChatWordArray thumb_func_start sub_811F8BC sub_811F8BC: @ 811F8BC diff --git a/asm/field_message_box.s b/asm/field_message_box.s index 35267e8d4..b86b6b738 100644 --- a/asm/field_message_box.s +++ b/asm/field_message_box.s @@ -108,8 +108,8 @@ _080981E4: .pool thumb_func_end task_del_textbox - thumb_func_start box_related_two__2 -box_related_two__2: @ 80981EC + thumb_func_start ShowFieldMessage +ShowFieldMessage: @ 80981EC push {r4,lr} adds r1, r0, 0 ldr r4, =gUnknown_020375BC @@ -130,7 +130,7 @@ _0809820E: pop {r4} pop {r1} bx r1 - thumb_func_end box_related_two__2 + thumb_func_end ShowFieldMessage thumb_func_start sub_8098214 sub_8098214: @ 8098214 diff --git a/asm/field_poison.s b/asm/field_poison.s index 5b1e24719..fde35ecce 100644 --- a/asm/field_poison.s +++ b/asm/field_poison.s @@ -217,7 +217,7 @@ _080F96FC: ldrb r0, [r4, 0x2] bl sub_80F95C0 ldr r0, =gText_PkmnFainted3 - bl box_related_two__2 + bl ShowFieldMessage ldrh r0, [r4] adds r0, 0x1 strh r0, [r4] diff --git a/asm/international_string_util.s b/asm/international_string_util.s index 7c52fc41a..c4369887d 100755 --- a/asm/international_string_util.s +++ b/asm/international_string_util.s @@ -389,8 +389,8 @@ _081DB5E4: bx r0 thumb_func_end sub_81DB5AC - thumb_func_start sub_81DB5E8 -sub_81DB5E8: @ 81DB5E8 + thumb_func_start TVShowConvertInternationalString +TVShowConvertInternationalString: @ 81DB5E8 push {r4,r5,lr} adds r5, r0, 0 adds r4, r2, 0 @@ -403,7 +403,7 @@ sub_81DB5E8: @ 81DB5E8 pop {r4,r5} pop {r0} bx r0 - thumb_func_end sub_81DB5E8 + thumb_func_end TVShowConvertInternationalString thumb_func_start sub_81DB604 sub_81DB604: @ 81DB604 diff --git a/asm/link.s b/asm/link.s index fb20b1fb2..b5f777139 100644 --- a/asm/link.s +++ b/asm/link.s @@ -1371,8 +1371,8 @@ _08009FC4: .pool thumb_func_end sub_8009FAC - thumb_func_start sub_8009FCC -sub_8009FCC: @ 8009FCC + thumb_func_start GetLinkPlayerCount +GetLinkPlayerCount: @ 8009FCC push {lr} ldr r0, =gLinkVSyncDisabled ldrb r0, [r0] @@ -1392,14 +1392,14 @@ _08009FEC: _08009FF4: pop {r1} bx r1 - thumb_func_end sub_8009FCC + thumb_func_end GetLinkPlayerCount thumb_func_start sub_8009FF8 sub_8009FF8: @ 8009FF8 push {r4-r7,lr} adds r6, r0, 0 adds r5, r1, 0 - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r4, r0, 24 movs r2, 0 @@ -1442,7 +1442,7 @@ sub_800A03C: @ 800A03C thumb_func_start sub_800A040 sub_800A040: @ 800A040 push {lr} - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 @@ -1546,7 +1546,7 @@ _0800A0EA: b _0800A22E .pool _0800A0FC: - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 cmp r0, 0 bne _0800A10E @@ -1572,12 +1572,12 @@ _0800A130: adds r5, 0x1C adds r6, 0x1 _0800A134: - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r6, r0 blt _0800A120 - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r7, r0 @@ -1714,12 +1714,12 @@ _0800A266: lsls r0, 24 lsrs r4, r0, 24 _0800A26C: - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r4, r0 bcc _0800A24C - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r6, r0 @@ -1742,8 +1742,8 @@ _0800A298: .pool thumb_func_end sub_800A23C - thumb_func_start sub_800A2A4 -sub_800A2A4: @ 800A2A4 + thumb_func_start GetLinkPlayerTrainerId +GetLinkPlayerTrainerId: @ 800A2A4 lsls r0, 24 lsrs r0, 24 ldr r2, =gLinkPlayers @@ -1755,7 +1755,7 @@ sub_800A2A4: @ 800A2A4 ldr r0, [r1] bx lr .pool - thumb_func_end sub_800A2A4 + thumb_func_end GetLinkPlayerTrainerId thumb_func_start sub_800A2BC sub_800A2BC: @ 800A2BC @@ -2697,7 +2697,7 @@ _0800A9E2: lsrs r4, r0, 24 adds r5, 0x1 _0800A9EE: - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r5, r0 @@ -3044,7 +3044,7 @@ _0800AC96: thumb_func_start sub_800ACAC sub_800ACAC: @ 800ACAC push {r4,lr} - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r2, r0, 24 movs r3, 0 @@ -3142,7 +3142,7 @@ _0800AD72: thumb_func_start sub_800AD88 sub_800AD88: @ 800AD88 push {r4,r5,lr} - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r3, r0, 24 movs r1, 0 @@ -3239,7 +3239,7 @@ _0800AE46: thumb_func_start sub_800AE5C sub_800AE5C: @ 800AE5C push {r4,lr} - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r2, r0, 24 movs r1, 0 @@ -9671,7 +9671,7 @@ _0800E1C8: lsls r0, 24 lsrs r5, r0, 24 _0800E1E6: - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 subs r0, 0x1 @@ -9965,7 +9965,7 @@ _0800E428: ble _0800E3FC mov r4, r9 _0800E434: - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r4, r0 @@ -10019,7 +10019,7 @@ _0800E4A6: adds r5, 0x1C adds r4, 0x1 _0800E4AC: - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r4, r0 @@ -13627,7 +13627,7 @@ sub_80102B8: @ 80102B8 bl sub_800FD14 strh r4, [r5] _080102E6: - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r2, r0, 24 movs r1, 0 @@ -13734,7 +13734,7 @@ sub_8010390: @ 8010390 b _0801041C .pool _080103CC: - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r2, r0, 24 movs r1, 0x1 @@ -15290,7 +15290,7 @@ _08011048: strb r0, [r1, 0x3] adds r4, 0x1 _08011054: - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r4, r0 @@ -20950,12 +20950,12 @@ _08014138: adds r5, 0x1C adds r4, 0x1 _08014152: - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r4, r0 blt _08014138 - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 @@ -21159,7 +21159,7 @@ sub_8014304: @ 8014304 strh r1, [r0] ldr r0, =0x00004087 bl VarSet - bl sub_8009FCC + bl GetLinkPlayerCount ldr r1, =gUnknown_03005DB8 strb r0, [r1] bl GetMultiplayerId @@ -39697,7 +39697,7 @@ sub_801DDD0: @ 801DDD0 strb r5, [r4, 0x16] movs r0, 0xFF strb r0, [r4, 0x1A] - bl sub_8009FCC + bl GetLinkPlayerCount strb r0, [r4, 0xD] bl GetMultiplayerId strb r0, [r4, 0x13] @@ -42285,7 +42285,7 @@ _0801F30A: movs r0, 0x1 strh r0, [r4] _0801F30E: - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 adds r2, r0, 0 @@ -42446,7 +42446,7 @@ _0801F448: ldrsh r0, [r4, r3] cmp r0, 0 beq _0801F47C - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 @@ -45504,7 +45504,7 @@ _08020C8E: b _08020CF8 .pool _08020CAC: - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 mov r8, r0 @@ -53271,7 +53271,7 @@ _08024B2C: _08024B6A: ldr r0, [sp, 0x10] strb r1, [r0] - bl sub_8009FCC + bl GetLinkPlayerCount mov r1, r8 strb r0, [r1] bl GetMultiplayerId @@ -57700,7 +57700,7 @@ _08026EF6: adds r4, 0xC adds r5, 0x1 _08026EFE: - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r5, r0 @@ -59511,7 +59511,7 @@ _08027C76: thumb_func_start sub_8027D20 sub_8027D20: @ 8027D20 push {lr} - bl sub_8009FCC + bl GetLinkPlayerCount ldr r1, =gUnknown_02022C98 ldr r1, [r1] adds r1, 0x24 @@ -64891,7 +64891,7 @@ sub_802AA48: @ 802AA48 sub_802AA60: @ 802AA60 push {r4,lr} adds r4, r0, 0 - bl sub_8009FCC + bl GetLinkPlayerCount movs r2, 0 strb r0, [r4, 0x5] adds r1, r4, 0 @@ -68775,7 +68775,7 @@ _0802C8A4: thumb_func_start sub_802C8AC sub_802C8AC: @ 802C8AC push {lr} - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 pop {r1} diff --git a/asm/mauville_old_man.s b/asm/mauville_old_man.s index 7b21e19e7..4972d4096 100644 --- a/asm/mauville_old_man.s +++ b/asm/mauville_old_man.s @@ -1392,7 +1392,7 @@ _08120BB0: movs r0, 0xFF strb r0, [r7, 0x7] mov r0, sp - bl sub_8009228 + bl IsStringJapanese cmp r0, 0 beq _08120BF8 mov r0, sp @@ -1458,7 +1458,7 @@ _08120C48: muls r0, r5 adds r0, 0x5 adds r0, r6, r0 - bl sub_8009228 + bl IsStringJapanese cmp r0, 0 beq _08120C5E mov r0, r8 @@ -1480,7 +1480,7 @@ _08120C6A: movs r5, 0x3 _08120C74: adds r0, r6, 0 - bl sub_8009228 + bl IsStringJapanese cmp r0, 0 beq _08120C84 mov r1, r8 @@ -1569,7 +1569,7 @@ _08120CF2: mov r1, r8 strb r0, [r1, 0x7] mov r0, sp - bl sub_8009228 + bl IsStringJapanese cmp r0, 0 beq _08120D1A movs r0, 0x1 @@ -2205,7 +2205,7 @@ sub_8121178: @ 8121178 bl ConvertInternationalString mov r0, r8 bl sub_8120EC0 - bl box_related_two__2 + bl ShowFieldMessage pop {r3} mov r8, r3 pop {r4-r6} diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s index e1a5e4e4c..7c314f8db 100755 --- a/asm/pokemon_summary_screen.s +++ b/asm/pokemon_summary_screen.s @@ -6514,7 +6514,7 @@ sub_81C3220: @ 81C3220 b _081C3282 .pool _081C326C: - bl sub_80F0020 + bl GetPlayerIDAsU32 adds r4, r0, 0 ldr r0, =0x0000ffff ands r4, r0 diff --git a/asm/record_mixing.s b/asm/record_mixing.s index aacc5baa0..2e946ad2a 100644 --- a/asm/record_mixing.s +++ b/asm/record_mixing.s @@ -1162,7 +1162,7 @@ _080E7714: lsrs r0, 24 mov r8, r0 _080E771C: - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r8, r0 @@ -1179,7 +1179,7 @@ _080E771C: adds r1, 0x1 strh r1, [r0, 0x8] _080E773E: - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 ldr r4, [sp, 0x8] @@ -1312,7 +1312,7 @@ sub_80E7820: @ 80E7820 sub_80E7830: @ 80E7830 push {r4,lr} adds r4, r0, 0 - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 @@ -1341,7 +1341,7 @@ _080E7856: .pool _080E7868: movs r0, 0 - bl sub_800A2A4 + bl GetLinkPlayerTrainerId adds r2, r0, 0 movs r0, 0x1 ands r2, r0 @@ -1362,7 +1362,7 @@ _080E7880: .pool _080E7894: movs r0, 0 - bl sub_800A2A4 + bl GetLinkPlayerTrainerId movs r1, 0x9 bl __umodsi3 adds r2, r0, 0 @@ -1523,7 +1523,7 @@ _080E79CE: adds r4, r1, 0 adds r4, 0x20 adds r0, r4, 0 - bl sub_8009228 + bl IsStringJapanese cmp r0, 0 beq _080E79F2 adds r0, r4, 0 @@ -1738,7 +1738,7 @@ sub_80E7B60: @ 80E7B60 ldr r0, =gLinkPlayers ldrh r0, [r0, 0x4] bl SeedRng2 - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r4, r0, 24 movs r0, 0 @@ -1878,7 +1878,7 @@ _080E7C9A: bne _080E7CEE adds r0, r5, 0 adds r0, 0x24 - bl sub_8009228 + bl IsStringJapanese cmp r0, 0 beq _080E7CBA adds r0, r5, 0 @@ -1901,7 +1901,7 @@ _080E7CC6: adds r4, r0, 0 adds r0, r5, 0 adds r0, 0x2C - bl sub_8009228 + bl IsStringJapanese cmp r0, 0 beq _080E7CE2 ldrb r0, [r4] @@ -1931,7 +1931,7 @@ _080E7CFA: lsrs r0, 16 mov r8, r0 _080E7D04: - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r8, r0 @@ -3557,7 +3557,7 @@ sub_80E89AC: @ 80E89AC adds r6, r0, 0 mov r8, r1 mov r9, r2 - bl sub_8009FCC + bl GetLinkPlayerCount adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 diff --git a/asm/recorded_battle.s b/asm/recorded_battle.s index e742cbe7d..2209312c2 100644 --- a/asm/recorded_battle.s +++ b/asm/recorded_battle.s @@ -125,7 +125,7 @@ _08184EAC: bl GetMultiplayerId ldr r1, =gUnknown_0203C7B4 strb r0, [r1] - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 mov r10, r0 @@ -505,7 +505,7 @@ _081851D0: adds r4, 0x1C adds r5, 0x1 _081851DA: - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r5, r0 diff --git a/asm/rom3.s b/asm/rom3.s index 649097eb6..0159a453a 100644 --- a/asm/rom3.s +++ b/asm/rom3.s @@ -1963,7 +1963,7 @@ _08033726: lsls r0, r1, 24 lsrs r4, r0, 24 _0803372C: - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r4, r0 diff --git a/asm/rom6.s b/asm/rom6.s index 2ed9d888e..6df7ea0f4 100644 --- a/asm/rom6.s +++ b/asm/rom6.s @@ -4121,7 +4121,7 @@ _081377BC: add r2, sp, 0x18 bl SetMonData adds r0, r4, 0 - bl sub_80EE5A4 + bl GetRibbonCount strb r0, [r5, 0x1] movs r7, 0x1 _0813780A: @@ -4629,7 +4629,7 @@ sub_8137C10: @ 8137C10 ldr r0, =gSpecialVar_0x8004 ldrh r0, [r0] bl sub_8137A98 - bl box_related_two__2 + bl ShowFieldMessage pop {r0} bx r0 .pool @@ -5399,13 +5399,13 @@ sub_8138240: @ 8138240 bl GetMultiplayerId lsls r0, 24 lsrs r7, r0, 24 - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r5, r0, 24 movs r4, 0 cmp r4, r5 bcs _0813828A - ldr r0, =gUnknown_0858D144 + ldr r0, =gTVStringVarPtrs mov r8, r0 _08138262: cmp r7, r4 @@ -6378,7 +6378,7 @@ sub_8138AA4: @ 8138AA4 sub_8138AC0: @ 8138AC0 push {lr} ldr r0, =gStringVar4 - bl box_related_two__2 + bl ShowFieldMessage pop {r0} bx r0 .pool @@ -6537,7 +6537,7 @@ _08138BF6: thumb_func_start sub_8138C04 sub_8138C04: @ 8138C04 push {r4,lr} - bl sub_8139688 + bl GetIdxOfFirstPartyMemberThatIsNotAnEgg lsls r0, 24 lsrs r0, 24 movs r1, 0x64 @@ -7060,7 +7060,7 @@ sub_8138FEC: @ 8138FEC thumb_func_start sub_8139004 sub_8139004: @ 8139004 push {lr} - bl sub_8139688 + bl GetIdxOfFirstPartyMemberThatIsNotAnEgg lsls r0, 24 lsrs r0, 24 movs r1, 0x64 @@ -7084,7 +7084,7 @@ _0813902A: thumb_func_start sub_8139030 sub_8139030: @ 8139030 push {lr} - bl sub_8139688 + bl GetIdxOfFirstPartyMemberThatIsNotAnEgg lsls r0, 24 lsrs r0, 24 movs r1, 0x64 @@ -7108,7 +7108,7 @@ _08139056: thumb_func_start sub_813905C sub_813905C: @ 813905C push {lr} - bl sub_8139688 + bl GetIdxOfFirstPartyMemberThatIsNotAnEgg lsls r0, 24 lsrs r0, 24 movs r1, 0x64 @@ -7132,7 +7132,7 @@ _08139082: thumb_func_start sub_8139088 sub_8139088: @ 8139088 push {lr} - bl sub_8139688 + bl GetIdxOfFirstPartyMemberThatIsNotAnEgg lsls r0, 24 lsrs r0, 24 movs r1, 0x64 @@ -7156,7 +7156,7 @@ _081390AE: thumb_func_start sub_81390B4 sub_81390B4: @ 81390B4 push {lr} - bl sub_8139688 + bl GetIdxOfFirstPartyMemberThatIsNotAnEgg lsls r0, 24 lsrs r0, 24 movs r1, 0x64 @@ -7295,7 +7295,7 @@ RemoveScriptFieldObject: @ 81391AC thumb_func_start sub_81391D0 sub_81391D0: @ 81391D0 push {lr} - bl sub_8139688 + bl GetIdxOfFirstPartyMemberThatIsNotAnEgg lsls r0, 24 lsrs r0, 24 movs r1, 0x64 @@ -7479,7 +7479,7 @@ _08139342: thumb_func_start sub_8139348 sub_8139348: @ 8139348 push {lr} - bl sub_8139688 + bl GetIdxOfFirstPartyMemberThatIsNotAnEgg lsls r0, 24 lsrs r0, 24 movs r1, 0x64 @@ -7507,7 +7507,7 @@ sub_8139370: @ 8139370 movs r1, 0x1 mov r0, sp strb r1, [r0] - bl sub_8139688 + bl GetIdxOfFirstPartyMemberThatIsNotAnEgg lsls r0, 24 lsrs r0, 24 movs r1, 0x64 @@ -7519,7 +7519,7 @@ sub_8139370: @ 8139370 mov r2, sp bl SetMonData adds r0, r4, 0 - bl sub_80EE5A4 + bl GetRibbonCount lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 @@ -7538,7 +7538,7 @@ _081393B6: thumb_func_start sub_81393C8 sub_81393C8: @ 81393C8 push {lr} - bl sub_8139688 + bl GetIdxOfFirstPartyMemberThatIsNotAnEgg lsls r0, 24 lsrs r0, 24 movs r1, 0x64 @@ -7882,8 +7882,8 @@ _08139684: bx r0 thumb_func_end sub_8139668 - thumb_func_start sub_8139688 -sub_8139688: @ 8139688 + thumb_func_start GetIdxOfFirstPartyMemberThatIsNotAnEgg +GetIdxOfFirstPartyMemberThatIsNotAnEgg: @ 8139688 push {r4-r6,lr} bl CalculatePlayerPartyCount lsls r0, 24 @@ -7926,7 +7926,7 @@ _081396D8: pop {r4-r6} pop {r1} bx r1 - thumb_func_end sub_8139688 + thumb_func_end GetIdxOfFirstPartyMemberThatIsNotAnEgg thumb_func_start sub_81396E0 sub_81396E0: @ 81396E0 @@ -8050,7 +8050,7 @@ sub_81397C4: @ 81397C4 cmp r1, r0 bls _081397E0 movs r0, 0 - bl sub_80EF340 + bl TV_PrintIntToStringVar b _08139862 .pool _081397E0: @@ -9094,7 +9094,7 @@ _0813A062: lsls r0, 2 adds r0, r7 ldr r0, [r0] - bl box_related_two__2 + bl ShowFieldMessage pop {r4-r7} pop {r0} bx r0 @@ -9996,7 +9996,7 @@ _0813A7C6: lsrs r0, 22 adds r0, r1 ldr r0, [r0] - bl box_related_two__2 + bl ShowFieldMessage pop {r0} bx r0 .pool @@ -10036,7 +10036,7 @@ sub_813A820: @ 813A820 lsls r0, r4, 2 adds r0, r1 ldr r0, [r0] - bl box_related_two__2 + bl ShowFieldMessage ldr r0, =0x00004031 adds r1, r4, 0 bl VarSet @@ -10056,7 +10056,7 @@ sub_813A854: @ 813A854 lsrs r0, 14 adds r0, r4 ldr r0, [r0] - bl box_related_two__2 + bl ShowFieldMessage pop {r4} pop {r0} bx r0 diff --git a/asm/scrcmd.s b/asm/scrcmd.s index f2e61a946..e8a838010 100644 --- a/asm/scrcmd.s +++ b/asm/scrcmd.s @@ -3267,7 +3267,7 @@ s67_execute_box: @ 809ABD4 bne _0809ABE2 ldr r0, [r4, 0x64] _0809ABE2: - bl box_related_two__2 + bl ShowFieldMessage movs r0, 0 pop {r4} pop {r1} @@ -3793,7 +3793,7 @@ sBD_virtual_message: @ 809AFA0 ldr r1, =gUnknown_020375C4 ldr r1, [r1] subs r0, r1 - bl box_related_two__2 + bl ShowFieldMessage movs r0, 0 pop {r1} bx r1 @@ -3841,7 +3841,7 @@ s7E_load_first_pokenames: @ 809AFFC lsls r2, 2 adds r2, r0 ldr r4, [r2] - bl sub_8139688 + bl GetIdxOfFirstPartyMemberThatIsNotAnEgg lsls r0, 24 lsrs r0, 24 movs r1, 0x64 diff --git a/asm/script_pokemon_util_80F87D8.s b/asm/script_pokemon_util_80F87D8.s index 231879f02..52e3b40db 100644 --- a/asm/script_pokemon_util_80F87D8.s +++ b/asm/script_pokemon_util_80F87D8.s @@ -222,7 +222,7 @@ sub_80F8970: @ 80F8970 mov r12, r0 ldr r1, =gSpecialVar_0x8006 mov r9, r1 - ldr r2, =gUnknown_02039E02 + ldr r2, =gUnknown_02039E00 + 2 mov r10, r2 mov r2, r12 mov r1, sp @@ -625,7 +625,7 @@ sub_80F8C7C: @ 80F8C7C ldrb r0, [r6] muls r0, r5 adds r0, r4 - bl sub_80EE5A4 + bl GetRibbonCount lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 diff --git a/asm/secret_base.s b/asm/secret_base.s index 0290e9f7f..0e47eaf4f 100644 --- a/asm/secret_base.s +++ b/asm/secret_base.s @@ -4494,7 +4494,7 @@ sub_80EAF80: @ 80EAF80 bne _080EAF9A b _080EB16A _080EAF9A: - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r0, 0x2 diff --git a/asm/trade.s b/asm/trade.s index d4c54cef6..31c16195e 100644 --- a/asm/trade.s +++ b/asm/trade.s @@ -6603,7 +6603,7 @@ _0807A97C: adds r4, 0x1C adds r5, 0x1 _0807A980: - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r5, r0 @@ -6632,7 +6632,7 @@ _0807A9B0: adds r4, 0x1C adds r5, 0x1 _0807A9B4: - bl sub_8009FCC + bl GetLinkPlayerCount lsls r0, 24 lsrs r0, 24 cmp r5, r0 diff --git a/asm/tv.s b/asm/tv.s deleted file mode 100644 index d61392fa1..000000000 --- a/asm/tv.s +++ /dev/null @@ -1,16938 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start ClearTVShowData -ClearTVShowData: @ 80EBEE0 - push {r4-r7,lr} - movs r3, 0 - ldr r6, =gSaveBlock1Ptr - movs r5, 0 - ldr r7, =0x000027ce -_080EBEEA: - ldr r0, [r6] - lsls r1, r3, 3 - adds r1, r3 - lsls r1, 2 - adds r0, r1 - ldr r2, =0x000027cc - adds r0, r2 - strb r5, [r0] - ldr r0, [r6] - adds r0, r1 - adds r2, 0x1 - adds r0, r2 - strb r5, [r0] - movs r2, 0 - adds r4, r3, 0x1 - adds r3, r1, 0 -_080EBF0A: - ldr r0, [r6] - adds r1, r2, r3 - adds r0, r7 - adds r0, r1 - strb r5, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x21 - bls _080EBF0A - lsls r0, r4, 24 - lsrs r3, r0, 24 - cmp r3, 0x18 - bls _080EBEEA - bl sub_80EEE5C - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end ClearTVShowData - - thumb_func_start special_0x44 -special_0x44: @ 80EBF3C - push {r4-r7,lr} - movs r4, 0x5 - ldr r1, =gSaveBlock1Ptr - ldr r0, [r1] - movs r2, 0xA2 - lsls r2, 6 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _080EBF70 - adds r3, r1, 0 - subs r2, 0xB4 -_080EBF54: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x17 - bhi _080EBF70 - ldr r0, [r3] - lsls r1, r4, 3 - adds r1, r4 - lsls r1, 2 - adds r0, r1 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080EBF54 -_080EBF70: - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r4, 0 - bl __modsi3 - lsls r0, 24 - lsrs r5, r0, 24 - adds r7, r5, 0 - ldr r6, =gSaveBlock1Ptr -_080EBF86: - ldr r1, [r6] - lsls r0, r5, 3 - adds r0, r5 - lsls r4, r0, 2 - adds r1, r4 - ldr r0, =0x000027cc - adds r1, r0 - ldrb r0, [r1] - bl sub_80EFFE0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x4 - beq _080EBFBC - ldr r0, [r6] - adds r0, r4 - ldr r1, =0x000027cd - adds r0, r1 - ldrb r0, [r0] - b _080EBFCC - .pool -_080EBFBC: - ldr r2, =0x000027cc - adds r0, r4, r2 - ldr r1, [r6] - adds r1, r0 - ldrh r0, [r1, 0x16] - cmp r0, 0 - bne _080EBFD8 - ldrb r0, [r1, 0x1] -_080EBFCC: - cmp r0, 0x1 - bne _080EBFD8 - adds r0, r5, 0 - b _080EBFEC - .pool -_080EBFD8: - cmp r5, 0 - bne _080EBFE0 - movs r5, 0x17 - b _080EBFE6 -_080EBFE0: - subs r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_080EBFE6: - cmp r5, r7 - bne _080EBF86 - movs r0, 0xFF -_080EBFEC: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end special_0x44 - - thumb_func_start sub_80EBFF4 -sub_80EBFF4: @ 80EBFF4 - push {lr} - bl special_0x44 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xFF - bne _080EC006 - movs r0, 0xFF - b _080EC03E -_080EC006: - ldr r0, =gSaveBlock1Ptr - ldr r2, [r0] - ldr r3, =0x00002b90 - adds r0, r2, r3 - ldrh r0, [r0] - cmp r0, 0 - beq _080EC03C - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2, r0 - ldr r2, =0x000027cc - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x29 - bne _080EC03C - bl sub_80EC18C - lsls r0, 24 - lsrs r0, 24 - b _080EC03E - .pool -_080EC03C: - adds r0, r1, 0 -_080EC03E: - pop {r1} - bx r1 - thumb_func_end sub_80EBFF4 - - thumb_func_start UpdateTVScreensOnMap -@ void UpdateTVScreensOnMap(s32 mapWidth, s32 mapHeight) -UpdateTVScreensOnMap: @ 80EC044 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, =0x00000891 - bl FlagSet - bl CheckForBigMovieOrEmergencyNewsOnTV - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080EC06A - cmp r0, 0x2 - beq _080EC0BE - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r0, [r0, 0x4] - cmp r0, 0xD - bne _080EC080 -_080EC06A: - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x3 - bl SetTVMetatilesOnMap - b _080EC0BE - .pool -_080EC080: - ldr r0, =0x00000892 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _080EC0BE - bl sub_80EBFF4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _080EC0AE - bl sub_80EEF20 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _080EC0AE - bl IsTVShowInSearchOfTrainersAiring - lsls r0, 24 - cmp r0, 0 - beq _080EC0BE -_080EC0AE: - ldr r0, =0x00000891 - bl FlagReset - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0x3 - bl SetTVMetatilesOnMap -_080EC0BE: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end UpdateTVScreensOnMap - - thumb_func_start SetTVMetatilesOnMap -@ void SetTVMetatilesOnMap(s32 mapWidth, s32 mapHeight, u16 metatileId) -SetTVMetatilesOnMap: @ 80EC0CC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r9, r0 - mov r10, r1 - lsls r2, 16 - lsrs r2, 16 - movs r5, 0 - cmp r5, r10 - bge _080EC120 - movs r1, 0xC0 - lsls r1, 4 - adds r0, r1, 0 - mov r8, r2 - mov r1, r8 - orrs r1, r0 - mov r8, r1 -_080EC0F2: - movs r4, 0 - adds r7, r5, 0x1 - cmp r4, r9 - bge _080EC11A - mov r0, r8 - lsls r6, r0, 16 -_080EC0FE: - adds r0, r4, 0 - adds r1, r5, 0 - bl MapGridGetMetatileBehaviorAt - cmp r0, 0x86 - bne _080EC114 - adds r0, r4, 0 - adds r1, r5, 0 - lsrs r2, r6, 16 - bl MapGridSetMetatileIdAt -_080EC114: - adds r4, 0x1 - cmp r4, r9 - blt _080EC0FE -_080EC11A: - adds r5, r7, 0 - cmp r5, r10 - blt _080EC0F2 -_080EC120: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end SetTVMetatilesOnMap - - thumb_func_start TurnOffTVScreen -TurnOffTVScreen: @ 80EC130 - push {lr} - ldr r1, =gUnknown_03005DC0 - ldr r0, [r1] - ldr r1, [r1, 0x4] - movs r2, 0x2 - bl SetTVMetatilesOnMap - bl DrawWholeMapView - pop {r0} - bx r0 - .pool - thumb_func_end TurnOffTVScreen - - thumb_func_start TurnOnTVScreen -TurnOnTVScreen: @ 80EC14C - push {lr} - ldr r1, =gUnknown_03005DC0 - ldr r0, [r1] - ldr r1, [r1, 0x4] - movs r2, 0x3 - bl SetTVMetatilesOnMap - bl DrawWholeMapView - pop {r0} - bx r0 - .pool - thumb_func_end TurnOnTVScreen - - thumb_func_start special_0x45 -special_0x45: @ 80EC168 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, =gSpecialVar_0x8004 - ldrh r2, [r0] - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r1, r0 - ldr r0, =0x000027cc - adds r1, r0 - ldrb r0, [r1] - bx lr - .pool - thumb_func_end special_0x45 - - thumb_func_start sub_80EC18C -sub_80EC18C: @ 80EC18C - push {r4,lr} - movs r2, 0 - ldr r0, =gSaveBlock1Ptr - ldr r3, [r0] -_080EC194: - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r1, r3, r0 - ldr r4, =0x000027cc - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _080EC1C0 - cmp r0, 0x29 - beq _080EC1C0 - adds r4, 0x1 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080EC1C0 - adds r0, r2, 0 - b _080EC1CC - .pool -_080EC1C0: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x17 - bls _080EC194 - movs r0, 0xFF -_080EC1CC: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80EC18C - - thumb_func_start special_0x4a -special_0x4a: @ 80EC1D4 - push {lr} - ldr r3, =gSaveBlock1Ptr - ldr r2, =gSpecialVar_0x8004 - ldrh r1, [r2] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r3, [r3] - adds r0, r3, r0 - ldrb r0, [r0] - cmp r0, 0x29 - bne _080EC214 - ldr r1, =0x00002b90 - adds r0, r3, r1 - ldrh r0, [r0] - cmp r0, 0 - beq _080EC214 - bl sub_80EC18C - lsls r0, 24 - lsrs r0, 24 - b _080EC216 - .pool -_080EC214: - ldrb r0, [r2] -_080EC216: - pop {r1} - bx r1 - thumb_func_end special_0x4a - - thumb_func_start ResetGabbyAndTy -ResetGabbyAndTy: @ 80EC21C - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - ldr r3, =gSaveBlock1Ptr - ldr r2, [r3] - ldr r1, =0x00002ba4 - adds r0, r2, r1 - movs r4, 0 - mov r10, r4 - movs r1, 0 - strh r1, [r0] - ldr r4, =0x00002ba6 - adds r0, r2, r4 - strh r1, [r0] - adds r4, 0x2 - adds r0, r2, r4 - strh r1, [r0] - ldr r0, =0x00002baa - adds r1, r2, r0 - ldr r0, =0x0000ffff - strh r0, [r1] - adds r4, 0x6 - adds r2, r4 - ldrb r1, [r2] - movs r0, 0x2 - negs r0, r0 - mov r9, r0 - ands r0, r1 - strb r0, [r2] - ldr r1, [r3] - adds r1, r4 - ldrb r2, [r1] - movs r0, 0x3 - negs r0, r0 - mov r8, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r3] - adds r1, r4 - ldrb r2, [r1] - movs r6, 0x5 - negs r6, r6 - adds r0, r6, 0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r3] - adds r1, r4 - ldrb r2, [r1] - movs r5, 0x9 - negs r5, r5 - adds r0, r5, 0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r3] - adds r1, r4 - ldrb r2, [r1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r3] - adds r1, r4 - ldrb r2, [r1] - movs r0, 0x1F - ands r0, r2 - strb r0, [r1] - ldr r0, [r3] - ldr r2, =0x00002baf - adds r0, r2 - ldrb r1, [r0] - mov r4, r9 - ands r4, r1 - strb r4, [r0] - ldr r0, [r3] - adds r0, r2 - ldrb r1, [r0] - mov r4, r8 - ands r4, r1 - strb r4, [r0] - ldr r0, [r3] - adds r0, r2 - ldrb r1, [r0] - ands r6, r1 - strb r6, [r0] - ldr r0, [r3] - adds r0, r2 - ldrb r1, [r0] - ands r5, r1 - strb r5, [r0] - ldr r1, [r3] - adds r1, r2 - ldrb r2, [r1] - movs r0, 0xF - ands r0, r2 - strb r0, [r1] - ldr r0, [r3] - ldr r1, =0x00002bac - adds r0, r1 - mov r4, r10 - strb r4, [r0] - ldr r0, [r3] - adds r1, 0x1 - adds r0, r1 - strb r4, [r0] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end ResetGabbyAndTy - - thumb_func_start GabbyAndTyBeforeInterview -GabbyAndTyBeforeInterview: @ 80EC31C - push {r4,lr} - ldr r3, =gSaveBlock1Ptr - ldr r2, [r3] - ldr r0, =gBattleResults - mov r12, r0 - ldrh r1, [r0, 0x6] - ldr r4, =0x00002ba4 - adds r0, r2, r4 - strh r1, [r0] - mov r0, r12 - ldrh r1, [r0, 0x26] - adds r4, 0x2 - adds r0, r2, r4 - strh r1, [r0] - mov r0, r12 - ldrh r1, [r0, 0x22] - adds r4, 0x2 - adds r0, r2, r4 - strh r1, [r0] - ldr r0, =0x00002bad - adds r2, r0 - ldrb r1, [r2] - adds r0, r1, 0 - adds r4, r3, 0 - cmp r0, 0xFF - beq _080EC354 - adds r0, r1, 0x1 - strb r0, [r2] -_080EC354: - ldr r2, [r4] - mov r0, r12 - ldrb r1, [r0, 0x5] - lsls r1, 31 - ldr r0, =0x00002bae - adds r2, r0 - lsrs r1, 31 - ldrb r3, [r2] - movs r0, 0x2 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - mov r1, r12 - ldrb r0, [r1] - cmp r0, 0 - beq _080EC398 - ldr r0, [r4] - ldr r1, =0x00002bae - adds r0, r1 - ldrb r1, [r0] - movs r2, 0x2 - orrs r1, r2 - b _080EC3A6 - .pool -_080EC398: - ldr r0, [r4] - ldr r1, =0x00002bae - adds r0, r1 - ldrb r2, [r0] - movs r1, 0x3 - negs r1, r1 - ands r1, r2 -_080EC3A6: - strb r1, [r0] - mov r1, r12 - ldrb r0, [r1, 0x3] - cmp r0, 0 - beq _080EC3C4 - ldr r0, [r4] - ldr r1, =0x00002bae - adds r0, r1 - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - b _080EC3D2 - .pool -_080EC3C4: - ldr r0, [r4] - ldr r1, =0x00002bae - adds r0, r1 - ldrb r2, [r0] - movs r1, 0x5 - negs r1, r1 - ands r1, r2 -_080EC3D2: - strb r1, [r0] - mov r0, r12 - ldrb r1, [r0, 0x5] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _080EC410 - movs r1, 0 - mov r0, r12 - adds r0, 0x36 - ldrb r0, [r0] - cmp r0, 0 - bne _080EC410 -_080EC3EC: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xA - bhi _080EC41E - mov r0, r12 - adds r0, 0x36 - adds r0, r1, r0 - ldrb r0, [r0] - cmp r0, 0 - beq _080EC3EC - ldr r0, [r4] - ldr r4, =0x00002bae - adds r0, r4 - b _080EC416 - .pool -_080EC410: - ldr r0, [r4] - ldr r1, =0x00002bae - adds r0, r1 -_080EC416: - ldrb r1, [r0] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0] -_080EC41E: - bl TakeTVShowInSearchOfTrainersOffTheAir - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r4, =0x00002ba8 - adds r0, r4 - ldrh r0, [r0] - cmp r0, 0 - bne _080EC436 - movs r0, 0x1 - bl FlagSet -_080EC436: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end GabbyAndTyBeforeInterview - - thumb_func_start GabbyAndTyAfterInterview -GabbyAndTyAfterInterview: @ 80EC448 - push {r4-r6,lr} - ldr r5, =gSaveBlock1Ptr - ldr r2, [r5] - ldr r6, =0x00002bae - adds r0, r2, r6 - ldrb r1, [r0] - lsls r1, 31 - ldr r4, =0x00002baf - adds r2, r4 - lsrs r1, 31 - ldrb r3, [r2] - movs r0, 0x2 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldr r2, [r5] - adds r0, r2, r6 - ldrb r0, [r0] - adds r2, r4 - movs r1, 0x2 - ands r1, r0 - ldrb r3, [r2] - movs r0, 0x3 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldr r2, [r5] - adds r0, r2, r6 - ldrb r0, [r0] - adds r2, r4 - movs r1, 0x4 - ands r1, r0 - ldrb r3, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldr r2, [r5] - adds r0, r2, r6 - ldrb r0, [r0] - adds r2, r4 - movs r1, 0x8 - ands r1, r0 - ldrb r3, [r2] - movs r0, 0x9 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldr r1, [r5] - adds r1, r6 - ldrb r0, [r1] - movs r2, 0x10 - orrs r0, r2 - strb r0, [r1] - ldr r0, [r5] - ldr r1, =gMapHeader - ldrb r1, [r1, 0x14] - ldr r2, =0x00002bac - adds r0, r2 - strb r1, [r0] - movs r0, 0x6 - bl IncrementGameStat - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end GabbyAndTyAfterInterview - - thumb_func_start TakeTVShowInSearchOfTrainersOffTheAir -TakeTVShowInSearchOfTrainersOffTheAir: @ 80EC4E8 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, =0x00002bae - adds r1, r0 - ldrb r2, [r1] - movs r0, 0x11 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - bx lr - .pool - thumb_func_end TakeTVShowInSearchOfTrainersOffTheAir - - thumb_func_start GabbyAndTyGetBattleNum -GabbyAndTyGetBattleNum: @ 80EC504 - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r2, =0x00002bad - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0x5 - bls _080EC522 - ldrb r0, [r1] - movs r1, 0x3 - bl __umodsi3 - adds r0, 0x6 - lsls r0, 24 - lsrs r0, 24 -_080EC522: - pop {r1} - bx r1 - .pool - thumb_func_end GabbyAndTyGetBattleNum - - thumb_func_start IsTVShowInSearchOfTrainersAiring -IsTVShowInSearchOfTrainersAiring: @ 80EC530 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00002bae - adds r0, r1 - ldrb r0, [r0] - lsls r0, 27 - lsrs r0, 31 - bx lr - .pool - thumb_func_end IsTVShowInSearchOfTrainersAiring - - thumb_func_start GabbyAndTyGetLastQuote -GabbyAndTyGetLastQuote: @ 80EC548 - push {r4,r5,lr} - ldr r5, =gSaveBlock1Ptr - ldr r0, [r5] - ldr r2, =0x00002baa - adds r1, r0, r2 - ldrh r0, [r1] - ldr r4, =0x0000ffff - cmp r0, r4 - beq _080EC584 - ldr r0, =gStringVar1 - ldrh r1, [r1] - bl CopyEasyChatWord - ldr r1, [r5] - ldr r0, =0x00002baa - adds r1, r0 - ldrh r2, [r1] - adds r0, r4, 0 - orrs r0, r2 - strh r0, [r1] - movs r0, 0x1 - b _080EC586 - .pool -_080EC584: - movs r0, 0 -_080EC586: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end GabbyAndTyGetLastQuote - - thumb_func_start GabbyAndTyGetLastBattleTrivia -GabbyAndTyGetLastBattleTrivia: @ 80EC58C - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00002baf - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080EC5AC - movs r0, 0x1 - b _080EC5D2 - .pool -_080EC5AC: - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080EC5B8 - movs r0, 0x2 - b _080EC5D2 -_080EC5B8: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080EC5C4 - movs r0, 0x3 - b _080EC5D2 -_080EC5C4: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _080EC5D0 - movs r0, 0 - b _080EC5D2 -_080EC5D0: - movs r0, 0x4 -_080EC5D2: - pop {r1} - bx r1 - thumb_func_end GabbyAndTyGetLastBattleTrivia - - thumb_func_start GabbyAndTySetScriptVarsToFieldObjectLocalIds -GabbyAndTySetScriptVarsToFieldObjectLocalIds: @ 80EC5D8 - push {lr} - bl GabbyAndTyGetBattleNum - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - cmp r0, 0x7 - bhi _080EC6B0 - lsls r0, 2 - ldr r1, =_080EC5F8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080EC5F8: - .4byte _080EC618 - .4byte _080EC62C - .4byte _080EC640 - .4byte _080EC654 - .4byte _080EC668 - .4byte _080EC67C - .4byte _080EC690 - .4byte _080EC6A4 -_080EC618: - ldr r1, =gSpecialVar_0x8004 - movs r0, 0xE - strh r0, [r1] - ldr r1, =gSpecialVar_0x8005 - movs r0, 0xD - b _080EC6AE - .pool -_080EC62C: - ldr r1, =gSpecialVar_0x8004 - movs r0, 0x5 - strh r0, [r1] - ldr r1, =gSpecialVar_0x8005 - movs r0, 0x6 - b _080EC6AE - .pool -_080EC640: - ldr r1, =gSpecialVar_0x8004 - movs r0, 0x12 - strh r0, [r1] - ldr r1, =gSpecialVar_0x8005 - movs r0, 0x11 - b _080EC6AE - .pool -_080EC654: - ldr r1, =gSpecialVar_0x8004 - movs r0, 0x15 - strh r0, [r1] - ldr r1, =gSpecialVar_0x8005 - movs r0, 0x16 - b _080EC6AE - .pool -_080EC668: - ldr r1, =gSpecialVar_0x8004 - movs r0, 0x8 - strh r0, [r1] - ldr r1, =gSpecialVar_0x8005 - movs r0, 0x9 - b _080EC6AE - .pool -_080EC67C: - ldr r1, =gSpecialVar_0x8004 - movs r0, 0x13 - strh r0, [r1] - ldr r1, =gSpecialVar_0x8005 - movs r0, 0x14 - b _080EC6AE - .pool -_080EC690: - ldr r1, =gSpecialVar_0x8004 - movs r0, 0x17 - strh r0, [r1] - ldr r1, =gSpecialVar_0x8005 - movs r0, 0x18 - b _080EC6AE - .pool -_080EC6A4: - ldr r1, =gSpecialVar_0x8004 - movs r0, 0xA - strh r0, [r1] - ldr r1, =gSpecialVar_0x8005 - movs r0, 0xB -_080EC6AE: - strh r0, [r1] -_080EC6B0: - pop {r0} - bx r0 - .pool - thumb_func_end GabbyAndTySetScriptVarsToFieldObjectLocalIds - - thumb_func_start InterviewAfter -InterviewAfter: @ 80EC6BC - push {lr} - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - subs r0, 0x1 - cmp r0, 0x7 - bhi _080EC724 - lsls r0, 2 - ldr r1, =_080EC6DC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080EC6DC: - .4byte _080EC6FC - .4byte _080EC702 - .4byte _080EC708 - .4byte _080EC70E - .4byte _080EC724 - .4byte _080EC714 - .4byte _080EC71A - .4byte _080EC720 -_080EC6FC: - bl sub_80ED548 - b _080EC724 -_080EC702: - bl sub_80ED5B8 - b _080EC724 -_080EC708: - bl sub_80ED610 - b _080EC724 -_080EC70E: - bl TaskDummy5 - b _080EC724 -_080EC714: - bl sub_80ECF5C - b _080EC724 -_080EC71A: - bl sub_80ED164 - b _080EC724 -_080EC720: - bl sub_80ECA38 -_080EC724: - pop {r0} - bx r0 - thumb_func_end InterviewAfter - - thumb_func_start sub_80EC728 -sub_80EC728: @ 80EC728 - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r4, 0 - bl sub_80EED88 - bl sub_80ED718 - ldr r5, =gBattleResults - ldrh r0, [r5, 0x28] - cmp r0, 0 - bne _080EC74C - bl sub_80EC8FC - b _080EC888 - .pool -_080EC74C: - bl sub_80EC8A4 - ldr r0, =0x0000ffff - bl sub_80EFB38 - lsls r0, 24 - cmp r0, 0 - beq _080EC75E - b _080EC888 -_080EC75E: - ldrh r1, [r5, 0x28] - movs r0, 0xB - muls r0, r1 - ldr r1, =gSpeciesNames - adds r0, r1 - adds r1, r5, 0 - adds r1, 0x2A - bl StringCompare - cmp r0, 0 - bne _080EC776 - b _080EC888 -_080EC776: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x000027cc - adds r0, r1 - bl sub_80EFB08 - ldr r1, =gUnknown_030060BC - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080EC888 - movs r0, 0x15 - movs r1, 0 - bl sub_80EF46C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080EC888 - movs r2, 0 - adds r1, r5, 0 - adds r1, 0x36 -_080EC7A8: - adds r0, r2, r1 - ldrb r0, [r0] - adds r0, r4, r0 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xA - bls _080EC7A8 - cmp r4, 0 - bne _080EC7CA - ldrb r1, [r5, 0x5] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080EC888 -_080EC7CA: - movs r4, 0 - ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_030060BC - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r6, r1, r0 - movs r0, 0x15 - strb r0, [r6] - strb r4, [r6, 0x1] - ldrb r1, [r5, 0x5] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080EC81C - movs r4, 0x1 - movs r0, 0x1 - adds r3, r6, 0 - adds r3, 0x13 - ldr r1, =gSaveBlock2Ptr - mov r8, r1 - adds r7, r6, 0x4 - b _080EC84E - .pool -_080EC81C: - movs r2, 0 - ldr r0, =gLastUsedItem - mov r12, r0 - adds r3, r6, 0 - adds r3, 0x13 - ldr r1, =gSaveBlock2Ptr - mov r8, r1 - adds r7, r6, 0x4 - adds r1, r5, 0 - adds r1, 0x36 -_080EC830: - adds r0, r2, r1 - ldrb r0, [r0] - adds r0, r4, r0 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xA - bls _080EC830 - cmp r4, 0xFF - bls _080EC84A - movs r4, 0xFF -_080EC84A: - mov r1, r12 - ldrh r0, [r1] -_080EC84E: - strb r4, [r6, 0x12] - strb r0, [r6, 0xF] - mov r0, r8 - ldr r1, [r0] - adds r0, r3, 0 - bl StringCopy - ldr r4, =gUnknown_03005D3A - adds r0, r7, 0 - adds r1, r4, 0 - bl StringCopy - adds r0, r7, 0 - bl sub_81DB604 - adds r5, r0, 0 - adds r0, r7, 0 - bl StripExtCtrlCodes - subs r4, 0x2A - ldrh r0, [r4, 0x28] - strh r0, [r6, 0x10] - adds r0, r6, 0 - bl sub_80EC9E8 - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r6, 0x2] - strb r5, [r6, 0x3] -_080EC888: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EC728 - - thumb_func_start sub_80EC8A4 -sub_80EC8A4: @ 80EC8A4 - push {r4,lr} - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, =0x00002b2c - adds r4, r1, r0 - ldrb r0, [r4] - cmp r0, 0x19 - beq _080EC8CA - ldr r2, =0x000027cc - adds r0, r1, r2 - movs r1, 0x18 - bl sub_80EF910 - movs r0, 0x5 - bl GetGameStat - strh r0, [r4, 0x6] - movs r0, 0x19 - strb r0, [r4] -_080EC8CA: - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - ldr r1, =gBattleResults - ldrh r0, [r1, 0x28] - strh r0, [r4, 0x4] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x8] - ldr r0, =gMapHeader - ldrb r0, [r0, 0x14] - strb r0, [r4, 0xA] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EC8A4 - - thumb_func_start sub_80EC8FC -sub_80EC8FC: @ 80EC8FC - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, =0x0000ffff - bl sub_80EFB38 - lsls r0, 24 - cmp r0, 0 - bne _080EC9B4 - movs r1, 0 - movs r5, 0 - ldr r2, =gUnknown_03005D46 -_080EC914: - adds r0, r1, r2 - ldrb r0, [r0] - adds r0, r5, r0 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xA - bls _080EC914 - cmp r5, 0xFF - bls _080EC92E - movs r5, 0xFF -_080EC92E: - cmp r5, 0x2 - bls _080EC9B4 - ldr r0, =gBattleOutcome - mov r8, r0 - ldrb r0, [r0] - cmp r0, 0x6 - beq _080EC940 - cmp r0, 0x1 - bne _080EC9B4 -_080EC940: - ldr r7, =gSaveBlock1Ptr - ldr r0, [r7] - ldr r6, =0x000027cc - adds r0, r6 - bl sub_80EFB08 - ldr r4, =gUnknown_030060BC - strb r0, [r4] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080EC9B4 - movs r0, 0x17 - movs r1, 0 - bl sub_80EF46C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080EC9B4 - movs r1, 0 - ldrsb r1, [r4, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldr r4, [r7] - adds r4, r0 - movs r1, 0 - movs r0, 0x17 - strb r0, [r4] - strb r1, [r4, 0x1] - ldr r1, =gBattleResults - ldrh r0, [r1, 0x6] - strh r0, [r4, 0xC] - ldrh r0, [r1, 0x20] - strh r0, [r4, 0xE] - strb r5, [r4, 0x10] - mov r1, r8 - ldrb r0, [r1] - strb r0, [r4, 0x11] - ldr r0, =gMapHeader - ldrb r0, [r0, 0x14] - strb r0, [r4, 0x12] - adds r0, r4, 0 - adds r0, 0x13 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - bl StringCopy - adds r0, r4, 0 - bl sub_80EC9E8 - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r4, 0x2] -_080EC9B4: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EC8FC - - thumb_func_start sub_80EC9E8 -sub_80EC9E8: @ 80EC9E8 - push {r4,lr} - adds r4, r0, 0 - bl sub_80F0020 - strb r0, [r4, 0x1E] - lsrs r2, r0, 8 - strb r2, [r4, 0x1F] - adds r1, r4, 0 - adds r1, 0x20 - strb r0, [r1] - adds r1, 0x1 - strb r2, [r1] - adds r1, 0x1 - strb r0, [r1] - adds r0, r4, 0 - adds r0, 0x23 - strb r2, [r0] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80EC9E8 - - thumb_func_start sub_80ECA10 -sub_80ECA10: @ 80ECA10 - push {r4,lr} - adds r4, r0, 0 - bl sub_80F0020 - adds r1, r4, 0 - adds r1, 0x20 - strb r0, [r1] - lsrs r1, r0, 8 - adds r2, r4, 0 - adds r2, 0x21 - strb r1, [r2] - adds r2, 0x1 - strb r0, [r2] - adds r0, r4, 0 - adds r0, 0x23 - strb r1, [r0] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80ECA10 - - thumb_func_start sub_80ECA38 -sub_80ECA38: @ 80ECA38 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r0, =gSaveBlock1Ptr - mov r8, r0 - ldr r7, [r0] - ldr r1, =0x00002b2c - adds r6, r7, r1 - ldrb r1, [r6] - cmp r1, 0x8 - bne _080ECACE - ldr r0, =gUnknown_030060BC - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r5, =0x000027cc - adds r4, r5 - adds r4, r7, r4 - strb r1, [r4] - movs r0, 0x1 - strb r0, [r4, 0x1] - adds r0, r4, 0 - adds r0, 0x14 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - bl StringCopy - ldr r0, =gUnknown_02039F2C - ldrh r0, [r0] - strb r0, [r4, 0x1C] - ldr r0, =gUnknown_02039F24 - ldrb r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - strh r0, [r4, 0x12] - ldrh r0, [r6, 0x2] - strh r0, [r4, 0x2] - ldrb r0, [r6, 0xC] - strb r0, [r4, 0xC] - ldrb r0, [r6, 0xD] - strb r0, [r4, 0xD] - ldrb r0, [r6, 0xE] - strb r0, [r4, 0xE] - ldrh r0, [r6, 0x10] - strh r0, [r4, 0x10] - ldrb r0, [r6, 0xF] - strb r0, [r4, 0xF] - adds r0, r4, 0x4 - ldr r2, =0x00002b30 - adds r1, r7, r2 - bl StringCopy - adds r0, r4, 0 - bl sub_80ECA10 - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r4, 0x1D] - ldrb r0, [r6, 0x1E] - strb r0, [r4, 0x1E] - mov r1, r8 - ldr r0, [r1] - adds r0, r5 - movs r1, 0x18 - bl sub_80EF910 -_080ECACE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80ECA38 - - thumb_func_start sub_80ECB00 -sub_80ECB00: @ 80ECB00 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 16 - lsrs r1, 16 - mov r10, r1 - lsls r2, 16 - lsrs r2, 16 - mov r9, r2 - lsls r3, 16 - lsrs r3, 16 - mov r8, r3 - ldr r6, =gSaveBlock1Ptr - ldr r0, [r6] - ldr r5, =0x000027cc - adds r0, r5 - bl sub_80EFADC - ldr r4, =gUnknown_030060BC - strb r0, [r4] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080ECBEC - movs r0, 0xA - bl sub_80EF550 - ldr r0, =gScriptResult - ldrh r0, [r0] - cmp r0, 0x1 - beq _080ECBEC - movs r1, 0 - ldrsb r1, [r4, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, [r6] - adds r4, r1, r0 - movs r0, 0xA - strb r0, [r4] - movs r5, 0x1 - strb r5, [r4, 0x1] - adds r0, r4, 0x4 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - bl StringCopy - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _080ECBA0 - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _080ECBA2 - strb r5, [r4, 0x18] - b _080ECBA4 - .pool -_080ECBA0: - movs r0, 0x2 -_080ECBA2: - strb r0, [r4, 0x18] -_080ECBA4: - mov r0, r10 - strh r0, [r4, 0x14] - mov r0, r9 - strh r0, [r4, 0x16] - mov r0, r8 - strh r0, [r4, 0x2] - lsls r0, r7, 3 - subs r0, r7 - lsls r5, r0, 2 - ldr r6, =gLinkPlayers + 8 - adds r1, r5, r6 - mov r0, sp - bl StringCopy - mov r0, sp - bl StripExtCtrlCodes - adds r0, r4, 0 - adds r0, 0xC - mov r1, sp - bl StringCopy - adds r0, r4, 0 - bl sub_80ECA10 - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r4, 0x19] - cmp r0, 0x1 - beq _080ECBE8 - adds r0, r6, r5 - ldrh r0, [r0, 0x12] - cmp r0, 0x1 - bne _080ECBEA -_080ECBE8: - movs r0, 0x1 -_080ECBEA: - strb r0, [r4, 0x1A] -_080ECBEC: - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80ECB00 - - thumb_func_start sub_80ECC04 -sub_80ECC04: @ 80ECC04 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - mov r10, r0 - ldr r0, [sp, 0x44] - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r6, r2, 24 - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x20] - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r0, =gSaveBlock1Ptr - mov r8, r0 - ldr r0, [r0] - ldr r7, =0x000027cc - adds r0, r7 - bl sub_80EFADC - ldr r4, =gUnknown_030060BC - strb r0, [r4] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080ECC54 - movs r0, 0x9 - bl sub_80EF550 - ldr r0, =gScriptResult - ldrh r0, [r0] - cmp r0, 0x1 - bne _080ECC68 -_080ECC54: - movs r0, 0 - b _080ECCEE - .pool -_080ECC68: - movs r1, 0 - ldrsb r1, [r4, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - mov r2, r8 - ldr r1, [r2] - adds r4, r1, r0 - movs r0, 0x9 - strb r0, [r4] - movs r7, 0x1 - strb r7, [r4, 0x1] - adds r0, r4, 0 - adds r0, 0xC - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - bl StringCopy - mov r0, sp - mov r1, r10 - bl StringCopy - mov r0, sp - bl StripExtCtrlCodes - adds r0, r4, 0x4 - mov r1, sp - bl StringCopy - movs r0, 0x7 - ands r5, r0 - ldrb r1, [r4, 0x3] - subs r0, 0xF - ands r0, r1 - orrs r0, r5 - movs r1, 0x3 - ands r6, r1 - lsls r2, r6, 3 - subs r1, 0x1C - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x3] - add r0, sp, 0x20 - ldrb r0, [r0] - strb r0, [r4, 0x2] - adds r0, r4, 0 - bl sub_80ECA10 - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r4, 0x14] - cmp r0, 0x1 - beq _080ECCDA - mov r1, r9 - cmp r1, 0x1 - bne _080ECCE8 -_080ECCDA: - strb r7, [r4, 0x15] - b _080ECCEC - .pool -_080ECCE8: - mov r2, r9 - strb r2, [r4, 0x15] -_080ECCEC: - movs r0, 0x1 -_080ECCEE: - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80ECC04 - - thumb_func_start sub_80ECD00 -sub_80ECD00: @ 80ECD00 - push {r4-r6,lr} - sub sp, 0x20 - ldr r6, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8006 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r6] - adds r4, r1, r0 - ldr r0, =gSpecialVar_0x8005 - ldrh r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 1 - strb r0, [r4, 0x16] - adds r0, r4, 0x2 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - bl StringCopy - movs r0, 0xB - strb r0, [r4] - movs r5, 0x1 - strb r5, [r4, 0x1] - bl sub_80F0020 - strb r0, [r4, 0xA] - lsrs r0, 8 - strb r0, [r4, 0xB] - ldr r1, =gStringVar1 - mov r0, sp - bl StringCopy - mov r0, sp - bl StripExtCtrlCodes - adds r0, r4, 0 - adds r0, 0xC - mov r1, sp - bl StringCopy - adds r0, r4, 0 - bl sub_80ECA10 - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r4, 0x17] - cmp r0, 0x1 - beq _080ECD74 - ldr r0, [r6] - ldr r1, =0x000031a0 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080ECD98 -_080ECD74: - strb r5, [r4, 0x18] - b _080ECD9A - .pool -_080ECD98: - strb r0, [r4, 0x18] -_080ECD9A: - add sp, 0x20 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80ECD00 - - thumb_func_start sub_80ECDA4 -sub_80ECDA4: @ 80ECDA4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r5, =gSaveBlock1Ptr - ldr r0, [r5] - ldr r4, =0x000027cc - adds r0, r4 - movs r1, 0x18 - bl sub_80EF910 - ldr r0, [r5] - adds r0, r4 - bl sub_80EFADC - ldr r1, =gUnknown_030060BC - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080ECDDC - ldr r0, [r5] - ldr r1, =0x00002b2c - adds r0, r1 - strb r6, [r0, 0xD] - movs r1, 0x8 - strb r1, [r0] -_080ECDDC: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80ECDA4 - - thumb_func_start sub_80ECDF4 -sub_80ECDF4: @ 80ECDF4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00002b2c - adds r4, r0, r1 - ldr r1, =0x000027cc - adds r0, r1 - bl sub_80EFADC - ldr r1, =gUnknown_030060BC - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080ECE1C - strb r5, [r4, 0xE] -_080ECE1C: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80ECDF4 - - thumb_func_start sub_80ECE34 -sub_80ECE34: @ 80ECE34 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00002b2c - adds r4, r0, r1 - ldr r1, =0x000027cc - adds r0, r1 - bl sub_80EFADC - ldr r1, =gUnknown_030060BC - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080ECE5C - strb r5, [r4, 0xF] -_080ECE5C: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80ECE34 - - thumb_func_start sub_80ECE74 -sub_80ECE74: @ 80ECE74 - push {r4,r5,lr} - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00002b2c - adds r4, r0, r1 - ldr r1, =0x000027cc - adds r0, r1 - bl sub_80EFADC - ldr r1, =gUnknown_030060BC - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080ECE9C - strh r5, [r4, 0x10] -_080ECE9C: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80ECE74 - - thumb_func_start sub_80ECEB4 -sub_80ECEB4: @ 80ECEB4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r1, 24 - lsrs r6, r1, 24 - ldr r0, =gSaveBlock1Ptr - ldr r4, [r0] - ldr r0, =0x00002b2c - adds r5, r4, r0 - ldr r1, =0x000027cc - adds r0, r4, r1 - bl sub_80EFADC - ldr r1, =gUnknown_030060BC - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080ECF4C - ldr r2, =gUnknown_02039E00 - lsls r1, r6, 6 - adds r0, r1, r2 - ldrh r0, [r0] - strh r0, [r5, 0x2] - ldr r0, =0x00002b30 - adds r4, r0 - adds r2, 0xD - adds r1, r2 - adds r0, r4, 0 - bl StringCopy - adds r0, r4, 0 - bl StripExtCtrlCodes - strb r7, [r5, 0xC] - adds r1, r6, 0x1 - ldr r0, =gUnknown_02039F30 - ldrb r0, [r0] - cmp r1, r0 - ble _080ECF30 - ldr r0, =gLinkPlayers - ldrh r0, [r0, 0x1A] - b _080ECF4A - .pool -_080ECF30: - ldr r0, =gGameLanguage - ldrb r0, [r0] - cmp r0, 0x1 - beq _080ECF48 - ldr r1, =gLinkPlayers - lsls r0, r6, 3 - subs r0, r6 - lsls r0, 2 - adds r0, r1 - ldrh r0, [r0, 0x1A] - cmp r0, 0x1 - bne _080ECF4A -_080ECF48: - movs r0, 0x1 -_080ECF4A: - strb r0, [r5, 0x1E] -_080ECF4C: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80ECEB4 - - thumb_func_start sub_80ECF5C -sub_80ECF5C: @ 80ECF5C - push {r4-r7,lr} - ldr r0, =gSaveBlock1Ptr - ldr r6, [r0] - ldr r0, =0x00002b2c - adds r5, r6, r0 - ldrb r2, [r5] - cmp r2, 0x6 - bne _080ED02C - ldr r0, =gUnknown_030060BC - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - adds r4, r6, r0 - strb r2, [r4] - movs r7, 0x1 - strb r7, [r4, 0x1] - ldrh r0, [r5, 0x2] - strh r0, [r4, 0x2] - adds r0, r4, 0 - adds r0, 0x16 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - bl StringCopy - adds r0, r4, 0 - adds r0, 0x8 - ldr r2, =0x00002b34 - adds r1, r6, r2 - bl StringCopy - ldrb r0, [r5, 0x13] - lsls r0, 29 - lsrs r0, 29 - ldrb r2, [r4, 0x13] - movs r3, 0x8 - negs r3, r3 - adds r1, r3, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x13] - ldrb r2, [r5, 0x13] - movs r0, 0x18 - ands r0, r2 - movs r2, 0x19 - negs r2, r2 - ands r2, r1 - orrs r2, r0 - strb r2, [r4, 0x13] - ldrh r0, [r5, 0x14] - strh r0, [r4, 0x14] - ldrb r0, [r5, 0x13] - movs r1, 0x60 - ands r1, r0 - movs r0, 0x61 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x13] - ldrb r1, [r5, 0x13] - lsls r1, 29 - lsrs r1, 29 - ands r0, r3 - orrs r0, r1 - strb r0, [r4, 0x13] - adds r0, r4, 0 - bl sub_80ECA10 - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r4, 0x1E] - cmp r0, 0x1 - beq _080ECFFA - ldrb r0, [r5, 0x1F] - cmp r0, 0x1 - bne _080ED01C -_080ECFFA: - strb r7, [r4, 0x1F] - b _080ED01E - .pool -_080ED01C: - strb r0, [r4, 0x1F] -_080ED01E: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x000027cc - adds r0, r1 - movs r1, 0x18 - bl sub_80EF910 -_080ED02C: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80ECF5C - - thumb_func_start sub_80ED03C -sub_80ED03C: @ 80ED03C - push {r4-r6,lr} - lsls r0, 16 - lsrs r6, r0, 16 - ldr r4, =gSaveBlock1Ptr - ldr r0, [r4] - ldr r1, =0x00002b2c - adds r5, r0, r1 - bl sub_80EF7B4 - ldr r0, [r4] - ldr r1, =0x000027cc - adds r0, r1 - bl sub_80EFADC - ldr r1, =gUnknown_030060BC - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080ED07A - ldr r0, [r4] - ldr r1, =0x000027cc - adds r0, r1 - movs r1, 0x18 - bl sub_80EF910 - strh r6, [r5, 0x14] - movs r0, 0x6 - strb r0, [r5] -_080ED07A: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80ED03C - - thumb_func_start sub_80ED090 -sub_80ED090: @ 80ED090 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gSaveBlock1Ptr - ldr r4, [r0] - ldr r0, =0x00002b2c - adds r7, r4, r0 - ldr r1, =0x000027cc - adds r0, r4, r1 - bl sub_80EFADC - ldr r1, =gUnknown_030060BC - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080ED134 - movs r3, 0x3 - adds r0, r5, 0 - ands r0, r3 - lsls r0, 5 - ldrb r1, [r7, 0x13] - movs r2, 0x61 - negs r2, r2 - ands r2, r1 - orrs r2, r0 - strb r2, [r7, 0x13] - ldr r0, =gUnknown_02039F2C - ldrb r0, [r0] - movs r1, 0x7 - ands r1, r0 - movs r0, 0x8 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r7, 0x13] - ldr r1, =gUnknown_02039F2E - ldrb r1, [r1] - ands r3, r1 - lsls r3, 3 - movs r1, 0x19 - negs r1, r1 - ands r0, r1 - orrs r0, r3 - strb r0, [r7, 0x13] - ldr r0, =gUnknown_02039F24 - mov r8, r0 - ldrb r0, [r0] - movs r6, 0x64 - muls r0, r6 - ldr r5, =gPlayerParty - adds r0, r5 - movs r1, 0xB - movs r2, 0 - bl GetMonData - strh r0, [r7, 0x2] - mov r1, r8 - ldrb r0, [r1] - muls r0, r6 - adds r0, r5 - ldr r1, =0x00002b34 - adds r4, r1 - movs r1, 0x2 - adds r2, r4, 0 - bl GetMonData - adds r0, r4, 0 - bl StripExtCtrlCodes - mov r1, r8 - ldrb r0, [r1] - muls r0, r6 - adds r0, r5 - movs r1, 0x3 - bl GetMonData - strb r0, [r7, 0x1F] -_080ED134: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80ED090 - - thumb_func_start sub_80ED164 -sub_80ED164: @ 80ED164 - push {r4-r6,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_030060BC - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r6, r1, r0 - movs r0, 0x7 - strb r0, [r6] - movs r0, 0x1 - strb r0, [r6, 0x1] - adds r0, r6, 0x2 - ldr r4, =gSaveBlock2Ptr - ldr r1, [r4] - bl StringCopy - adds r0, r6, 0 - adds r0, 0xC - ldr r1, [r4] - ldr r2, =0x00000bd8 - adds r1, r2 - bl StringCopy - ldr r1, [r4] - ldr r2, =0x00000bd4 - adds r0, r1, r2 - ldrh r0, [r0] - strh r0, [r6, 0xA] - adds r2, 0x2 - adds r0, r1, r2 - ldrh r0, [r0] - strh r0, [r6, 0x14] - ldr r5, =0x00000d07 - adds r1, r5 - ldrb r0, [r1] - movs r1, 0 - bl sub_8164FCC - strh r0, [r6, 0x16] - ldr r0, [r4] - ldr r1, =0x00000d06 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r6, 0x1C] - ldr r0, [r4] - adds r0, r5 - ldrb r0, [r0] - cmp r0, 0 - bne _080ED1F4 - movs r0, 0x32 - b _080ED1F6 - .pool -_080ED1F4: - movs r0, 0x64 -_080ED1F6: - strb r0, [r6, 0x1A] - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - strb r0, [r6, 0x1B] - adds r0, r6, 0 - bl sub_80ECA10 - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r6, 0x1D] - cmp r0, 0x1 - beq _080ED21C - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r2, =0x00000beb - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080ED21E -_080ED21C: - movs r0, 0x1 -_080ED21E: - strb r0, [r6, 0x1E] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80ED164 - - thumb_func_start SaveRecordedItemPurchasesForTVShow -@ void SaveRecordedItemPurchasesForTVShow() -SaveRecordedItemPurchasesForTVShow: @ 80ED238 - push {r4-r7,lr} - ldr r5, =gSaveBlock1Ptr - ldr r0, [r5] - ldrh r1, [r0, 0x4] - ldr r0, =0x00003c1a - cmp r1, r0 - beq _080ED2F2 - ldr r0, =0x0000371a - cmp r1, r0 - beq _080ED2F2 - ldr r0, =0x00005555 - bl sub_80EFB38 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080ED2F2 - ldr r0, [r5] - ldr r7, =0x000027cc - adds r0, r7 - bl sub_80EFB08 - ldr r6, =gUnknown_030060BC - strb r0, [r6] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080ED2F2 - movs r0, 0x16 - movs r1, 0 - bl sub_80EF46C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080ED2F2 - bl sub_80EF500 - ldr r2, =gUnknown_02039F80 - ldrh r0, [r2, 0x2] - cmp r0, 0x13 - bls _080ED2F2 - movs r1, 0 - ldrsb r1, [r6, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r7 - ldr r1, [r5] - adds r5, r1, r0 - movs r0, 0x16 - strb r0, [r5] - strb r4, [r5, 0x1] - ldr r0, =gMapHeader - ldrb r0, [r0, 0x14] - strb r0, [r5, 0x12] - movs r4, 0 - adds r7, r5, 0x6 - mov r12, r2 - adds r6, r5, 0 - adds r6, 0xC -_080ED2B6: - lsls r2, r4, 1 - adds r3, r7, r2 - lsls r1, r4, 2 - add r1, r12 - ldrh r0, [r1] - strh r0, [r3] - adds r2, r6, r2 - ldrh r0, [r1, 0x2] - strh r0, [r2] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _080ED2B6 - movs r0, 0x1 - bl GetPriceReduction - strb r0, [r5, 0x2] - adds r0, r5, 0 - adds r0, 0x13 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - bl StringCopy - adds r0, r5, 0 - bl sub_80EC9E8 - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r5, 0x3] -_080ED2F2: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end SaveRecordedItemPurchasesForTVShow - - thumb_func_start sub_80ED320 -sub_80ED320: @ 80ED320 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - bl sub_80EF7A8 - ldr r0, =gScriptResult - ldrh r0, [r0] - cmp r0, 0x1 - beq _080ED400 - ldr r0, =gSpecialVar_0x8004 - mov r8, r0 - ldrh r0, [r0] - movs r7, 0x64 - muls r0, r7 - ldr r6, =gPlayerParty - adds r0, r6 - ldr r4, =gStringVar1 - movs r1, 0x2 - adds r2, r4, 0 - bl GetMonData - ldr r1, =gSaveBlock2Ptr - mov r9, r1 - ldr r0, [r1] - bl StringLength - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bls _080ED400 - adds r0, r4, 0 - bl StringLength - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bls _080ED400 - ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_030060BC - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r4, [r2] - adds r4, r0 - movs r0, 0x5 - strb r0, [r4] - movs r5, 0x1 - strb r5, [r4, 0x1] - mov r2, r8 - ldrh r0, [r2] - muls r0, r7 - adds r0, r6 - movs r1, 0xB - movs r2, 0 - bl GetMonData - strh r0, [r4, 0x2] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - strb r0, [r4, 0x1A] - bl Random - lsls r0, 16 - lsrs r0, 16 - ands r0, r5 - strb r0, [r4, 0x1B] - ldrh r0, [r4, 0x2] - bl sub_80EFA24 - strh r0, [r4, 0x1C] - adds r0, r4, 0 - adds r0, 0xF - mov r2, r9 - ldr r1, [r2] - bl StringCopy - mov r1, r8 - ldrh r0, [r1] - muls r0, r7 - adds r0, r6 - adds r5, r4, 0x4 - movs r1, 0x2 - adds r2, r5, 0 - bl GetMonData - adds r0, r5, 0 - bl StripExtCtrlCodes - adds r0, r4, 0 - bl sub_80ECA10 - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r4, 0x1E] - mov r2, r8 - ldrh r0, [r2] - muls r0, r7 - adds r0, r6 - movs r1, 0x3 - bl GetMonData - strb r0, [r4, 0x1F] -_080ED400: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80ED320 - - thumb_func_start StartMassOutbreak -StartMassOutbreak: @ 80ED430 - push {r4,r5,lr} - ldr r4, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, =0x000027cc - adds r1, r0 - ldr r2, [r4] - adds r1, r2, r1 - ldrh r3, [r1, 0xC] - ldr r5, =0x00002b90 - adds r0, r2, r5 - strh r3, [r0] - ldrb r0, [r1, 0x10] - ldr r3, =0x00002b92 - adds r2, r3 - strb r0, [r2] - ldr r0, [r4] - ldrb r2, [r1, 0x11] - adds r5, 0x3 - adds r0, r5 - strb r2, [r0] - ldr r0, [r4] - ldrb r2, [r1, 0x14] - adds r3, 0x2 - adds r0, r3 - strb r2, [r0] - ldr r0, [r4] - ldrb r2, [r1, 0x2] - adds r5, 0x2 - adds r0, r5 - strb r2, [r0] - ldr r2, [r4] - ldrh r3, [r1, 0xE] - adds r5, 0x1 - adds r0, r2, r5 - strh r3, [r0] - ldrh r3, [r1, 0x4] - adds r5, 0x2 - adds r0, r2, r5 - strh r3, [r0] - ldrh r3, [r1, 0x6] - adds r5, 0x2 - adds r0, r2, r5 - strh r3, [r0] - ldrh r3, [r1, 0x8] - adds r5, 0x2 - adds r0, r2, r5 - strh r3, [r0] - ldrh r3, [r1, 0xA] - adds r5, 0x2 - adds r0, r2, r5 - strh r3, [r0] - ldrb r0, [r1, 0x3] - ldr r3, =0x00002ba0 - adds r2, r3 - strb r0, [r2] - ldr r0, [r4] - ldrb r1, [r1, 0x13] - adds r5, 0x3 - adds r0, r5 - strb r1, [r0] - ldr r0, [r4] - ldr r1, =0x00002ba2 - adds r0, r1 - movs r1, 0x2 - strh r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end StartMassOutbreak - - thumb_func_start sub_80ED4DC -sub_80ED4DC: @ 80ED4DC - push {r4,lr} - bl sub_80EFA88 - ldr r0, =gScriptResult - ldrh r0, [r0] - cmp r0, 0x1 - beq _080ED532 - ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_030060BC - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - adds r0, r4, 0 - adds r0, 0x17 - bl sub_818E848 - movs r0, 0x2 - strb r0, [r4, 0x18] - movs r0, 0xC - strb r0, [r4] - movs r0, 0x1 - strb r0, [r4, 0x1] - adds r0, r4, 0x2 - bl sub_818E81C - adds r0, r4, 0 - adds r0, 0xA - adds r1, r4, 0 - adds r1, 0xB - bl sub_818E7E0 - bl sub_818E880 - strb r0, [r4, 0x16] - adds r0, r4, 0 - bl sub_80ECA10 -_080ED532: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80ED4DC - - thumb_func_start sub_80ED548 -sub_80ED548: @ 80ED548 - push {r4,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_030060BC - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r4, [r2] - adds r4, r0 - movs r0, 0x1 - strb r0, [r4] - strb r0, [r4, 0x1] - adds r0, r4, 0 - adds r0, 0x10 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - bl StringCopy - bl sub_8139688 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - strh r0, [r4, 0x2] - adds r0, r4, 0 - bl sub_80ECA10 - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r4, 0x18] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80ED548 - - thumb_func_start sub_80ED5B8 -sub_80ED5B8: @ 80ED5B8 - push {r4,r5,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_030060BC - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r4, [r2] - adds r4, r0 - movs r5, 0 - movs r0, 0x2 - strb r0, [r4] - movs r0, 0x1 - strb r0, [r4, 0x1] - adds r0, r4, 0 - adds r0, 0x10 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - bl StringCopy - strh r5, [r4, 0x2] - adds r0, r4, 0 - bl sub_80ECA10 - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r4, 0x18] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80ED5B8 - - thumb_func_start sub_80ED610 -sub_80ED610: @ 80ED610 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_030060BC - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r5, r1, r0 - movs r0, 0x3 - strb r0, [r5] - movs r0, 0x1 - mov r8, r0 - mov r1, r8 - strb r1, [r5, 0x1] - bl sub_8139688 - lsls r0, 24 - lsrs r0, 24 - movs r7, 0x64 - muls r0, r7 - ldr r6, =gPlayerParty - adds r0, r6 - movs r1, 0x20 - movs r2, 0 - bl GetMonData - lsrs r0, 4 - movs r1, 0xF - ands r0, r1 - ldrb r2, [r5, 0x4] - movs r1, 0x10 - negs r1, r1 - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x4] - ldr r0, =gSpecialVar_0x8007 - ldrb r0, [r0] - lsls r0, 4 - movs r2, 0xF - ands r1, r2 - orrs r1, r0 - strb r1, [r5, 0x4] - adds r0, r5, 0x5 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - bl StringCopy - bl sub_8139688 - lsls r0, 24 - lsrs r0, 24 - muls r0, r7 - adds r0, r6 - adds r4, r5, 0 - adds r4, 0x10 - movs r1, 0x2 - adds r2, r4, 0 - bl GetMonData - adds r0, r4, 0 - bl StripExtCtrlCodes - bl sub_8139688 - lsls r0, 24 - lsrs r0, 24 - muls r0, r7 - adds r0, r6 - movs r1, 0xB - movs r2, 0 - bl GetMonData - strh r0, [r5, 0x2] - adds r0, r5, 0 - bl sub_80ECA10 - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r5, 0xD] - cmp r0, 0x1 - beq _080ED6D4 - bl sub_8139688 - lsls r0, 24 - lsrs r0, 24 - muls r0, r7 - adds r0, r6 - movs r1, 0x3 - bl GetMonData - cmp r0, 0x1 - bne _080ED6F4 -_080ED6D4: - mov r0, r8 - b _080ED706 - .pool -_080ED6F4: - bl sub_8139688 - lsls r0, 24 - lsrs r0, 24 - muls r0, r7 - adds r0, r6 - movs r1, 0x3 - bl GetMonData -_080ED706: - strb r0, [r5, 0xE] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80ED610 - - thumb_func_start TaskDummy5 -TaskDummy5: @ 80ED714 - bx lr - thumb_func_end TaskDummy5 - - thumb_func_start sub_80ED718 -sub_80ED718: @ 80ED718 - push {r4-r6,lr} - ldr r0, =0x00000864 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _080ED7E4 - movs r1, 0 - ldr r0, =gSaveBlock1Ptr - ldr r2, [r0] - ldr r3, =0x000027cc -_080ED72E: - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2, r0 - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0x29 - beq _080ED7E4 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x17 - bls _080ED72E - ldr r0, =0x00000147 - bl sub_80EFB38 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0 - bne _080ED7E4 - ldr r6, =gSaveBlock1Ptr - ldr r0, [r6] - ldr r1, =0x000027cc - adds r0, r1 - bl sub_80EFADC - ldr r4, =gUnknown_030060BC - strb r0, [r4] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080ED7E4 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x5 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - movs r2, 0 - ldrsb r2, [r4, r2] - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - ldr r2, =0x000027cc - adds r1, r2 - ldr r4, [r6] - adds r4, r1 - movs r1, 0x29 - strb r1, [r4] - movs r3, 0x1 - strb r3, [r4, 0x1] - ldr r2, =gUnknown_0858D094 - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0xA] - strb r0, [r4, 0x14] - strb r5, [r4, 0x2] - strb r5, [r4, 0x3] - ldrh r0, [r1] - movs r2, 0 - strh r0, [r4, 0xC] - strh r5, [r4, 0xE] - ldrh r0, [r1, 0x2] - strh r0, [r4, 0x4] - ldrh r0, [r1, 0x4] - strh r0, [r4, 0x6] - ldrh r0, [r1, 0x6] - strh r0, [r4, 0x8] - ldrh r0, [r1, 0x8] - strh r0, [r4, 0xA] - ldrb r0, [r1, 0xB] - strb r0, [r4, 0x10] - strb r2, [r4, 0x11] - strb r2, [r4, 0x12] - movs r0, 0x32 - strb r0, [r4, 0x13] - strb r2, [r4, 0x15] - strh r3, [r4, 0x16] - adds r0, r4, 0 - bl sub_80ECA10 - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r4, 0x18] -_080ED7E4: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80ED718 - - thumb_func_start EndMassOutbreak -EndMassOutbreak: @ 80ED808 - push {r4,r5,lr} - ldr r3, =gSaveBlock1Ptr - ldr r0, [r3] - ldr r2, =0x00002b90 - adds r1, r0, r2 - movs r4, 0 - movs r2, 0 - strh r2, [r1] - ldr r5, =0x00002b92 - adds r0, r5 - strb r4, [r0] - ldr r0, [r3] - ldr r1, =0x00002b93 - adds r0, r1 - strb r4, [r0] - ldr r0, [r3] - adds r5, 0x2 - adds r0, r5 - strb r4, [r0] - ldr r0, [r3] - adds r1, 0x2 - adds r0, r1 - strb r4, [r0] - ldr r0, [r3] - adds r5, 0x2 - adds r1, r0, r5 - strh r2, [r1] - adds r5, 0x2 - adds r1, r0, r5 - strh r2, [r1] - adds r5, 0x2 - adds r1, r0, r5 - strh r2, [r1] - adds r5, 0x2 - adds r1, r0, r5 - strh r2, [r1] - adds r5, 0x2 - adds r1, r0, r5 - strh r2, [r1] - ldr r1, =0x00002ba0 - adds r0, r1 - strb r4, [r0] - ldr r0, [r3] - adds r5, 0x3 - adds r0, r5 - strb r4, [r0] - ldr r0, [r3] - adds r1, 0x2 - adds r0, r1 - strh r2, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end EndMassOutbreak - - thumb_func_start sub_80ED888 -sub_80ED888: @ 80ED888 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r4, 0 - bl sub_80ED8B4 - adds r0, r4, 0 - bl UpdateMassOutbreakTimeLeft - adds r0, r4, 0 - bl sub_80EF120 - adds r0, r4, 0 - bl sub_80EDA48 - adds r0, r4, 0 - bl sub_80EEB98 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80ED888 - - thumb_func_start sub_80ED8B4 -sub_80ED8B4: @ 80ED8B4 - push {r4-r7,lr} - lsls r0, 16 - lsrs r5, r0, 16 - ldr r1, =gSaveBlock1Ptr - ldr r0, [r1] - ldr r2, =0x00002b90 - adds r0, r2 - ldrh r0, [r0] - mov r12, r1 - cmp r0, 0 - bne _080ED91C - movs r1, 0 - ldr r6, =0x000027cc -_080ED8CE: - mov r7, r12 - ldr r4, [r7] - lsls r0, r1, 3 - adds r0, r1 - lsls r3, r0, 2 - adds r2, r4, r3 - adds r0, r2, r6 - ldrb r0, [r0] - cmp r0, 0x29 - bne _080ED912 - ldr r7, =0x000027cd - adds r0, r2, r7 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080ED912 - adds r0, r3, r6 - adds r1, r4, r0 - ldrh r0, [r1, 0x16] - cmp r0, r5 - bcs _080ED90C - movs r0, 0 - strh r0, [r1, 0x16] - b _080ED91C - .pool -_080ED90C: - subs r0, r5 - strh r0, [r1, 0x16] - b _080ED91C -_080ED912: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x17 - bls _080ED8CE -_080ED91C: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80ED8B4 - - thumb_func_start UpdateMassOutbreakTimeLeft -UpdateMassOutbreakTimeLeft: @ 80ED924 - push {lr} - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r3, =0x00002ba2 - adds r1, r0, r3 - ldrh r0, [r1] - cmp r0, r2 - bhi _080ED948 - bl EndMassOutbreak - b _080ED94C - .pool -_080ED948: - subs r0, r2 - strh r0, [r1] -_080ED94C: - pop {r0} - bx r0 - thumb_func_end UpdateMassOutbreakTimeLeft - - thumb_func_start sub_80ED950 -sub_80ED950: @ 80ED950 - push {r4,lr} - lsls r0, 24 - cmp r0, 0 - beq _080ED978 - ldr r4, =gUnknown_0203A026 - ldrh r0, [r4] - lsrs r0, 8 - cmp r0, 0x4 - bls _080ED966 - bl sub_80ED9A8 -_080ED966: - ldrb r0, [r4] - strh r0, [r4] - cmp r0, 0xFF - beq _080ED99C - adds r0, 0x1 - b _080ED99A - .pool -_080ED978: - ldr r4, =gUnknown_0203A026 - ldrb r0, [r4] - cmp r0, 0x4 - bls _080ED984 - bl sub_80ED9A8 -_080ED984: - ldrh r0, [r4] - movs r1, 0xFF - lsls r1, 8 - ands r1, r0 - strh r1, [r4] - lsrs r0, r1, 8 - cmp r0, 0xFF - beq _080ED99C - movs r2, 0x80 - lsls r2, 1 - adds r0, r1, r2 -_080ED99A: - strh r0, [r4] -_080ED99C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80ED950 - - thumb_func_start sub_80ED9A8 -sub_80ED9A8: @ 80ED9A8 - push {r4-r6,lr} - ldr r6, =gSaveBlock1Ptr - ldr r0, [r6] - ldr r5, =0x000027cc - adds r0, r5 - bl sub_80EFB08 - ldr r4, =gUnknown_030060BC - strb r0, [r4] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080EDA18 - movs r0, 0x18 - movs r1, 0 - bl sub_80EF46C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080EDA18 - movs r1, 0 - ldrsb r1, [r4, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r4, [r6] - adds r4, r0 - movs r1, 0 - movs r0, 0x18 - strb r0, [r4] - strb r1, [r4, 0x1] - ldr r1, =gUnknown_0203A026 - ldrh r0, [r1] - strb r0, [r4, 0x2] - ldrh r0, [r1] - lsrs r0, 8 - strb r0, [r4, 0x3] - ldr r0, =gUnknown_0203A024 - ldrh r0, [r0] - strh r0, [r4, 0x4] - adds r0, r4, 0 - adds r0, 0x13 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - bl StringCopy - adds r0, r4, 0 - bl sub_80EC9E8 - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r4, 0x6] -_080EDA18: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80ED9A8 - - thumb_func_start sub_80EDA3C -sub_80EDA3C: @ 80EDA3C - ldr r1, =gUnknown_0203A024 - strh r0, [r1] - bx lr - .pool - thumb_func_end sub_80EDA3C - - thumb_func_start sub_80EDA48 -sub_80EDA48: @ 80EDA48 - push {r4,lr} - ldr r4, =gSaveBlock1Ptr - ldr r0, [r4] - ldr r2, =0x00002b2c - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0x19 - bne _080EDA6E - ldrh r0, [r1, 0x2] - cmp r0, 0x13 - bls _080EDA62 - bl sub_80EDA80 -_080EDA62: - ldr r0, [r4] - ldr r1, =0x000027cc - adds r0, r1 - movs r1, 0x18 - bl sub_80EF910 -_080EDA6E: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EDA48 - - thumb_func_start sub_80EDA80 -sub_80EDA80: @ 80EDA80 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r7, =gSaveBlock1Ptr - ldr r0, [r7] - ldr r1, =0x00002b2c - adds r5, r0, r1 - ldr r0, =0x0000ffff - bl sub_80EFB38 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - bne _080EDB1C - ldr r0, [r7] - ldr r1, =0x000027cc - mov r8, r1 - add r0, r8 - bl sub_80EFB08 - ldr r4, =gUnknown_030060BC - strb r0, [r4] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080EDB1C - movs r0, 0x19 - movs r1, 0 - bl sub_80EF46C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080EDB1C - movs r1, 0 - ldrsb r1, [r4, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - add r0, r8 - ldr r4, [r7] - adds r4, r0 - movs r0, 0x19 - strb r0, [r4] - strb r6, [r4, 0x1] - ldrh r0, [r5, 0x2] - strh r0, [r4, 0x2] - movs r0, 0x5 - bl GetGameStat - ldrh r1, [r5, 0x6] - subs r0, r1 - strh r0, [r4, 0x6] - ldrh r0, [r5, 0x4] - strh r0, [r4, 0x4] - ldrh r0, [r5, 0x8] - strh r0, [r4, 0x8] - ldrb r0, [r5, 0xA] - strb r0, [r4, 0xA] - adds r0, r4, 0 - adds r0, 0x13 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - bl StringCopy - adds r0, r4, 0 - bl sub_80EC9E8 - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r4, 0xB] - ldr r0, [r7] - add r0, r8 - movs r1, 0x18 - bl sub_80EF910 -_080EDB1C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EDA80 - - thumb_func_start sub_80EDB44 -sub_80EDB44: @ 80EDB44 - push {r4-r7,lr} - movs r0, 0x1A - movs r1, 0x1 - bl sub_80EF46C - ldr r4, =gSaveBlock1Ptr - ldr r0, [r4] - ldr r1, =0x000027cc - adds r0, r1 - bl sub_80EFB08 - ldr r2, =gUnknown_030060BC - strb r0, [r2] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080EDC40 - movs r1, 0 - ldrsb r1, [r2, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r2, =0x000027cc - adds r0, r2 - ldr r1, [r4] - adds r4, r1, r0 - movs r1, 0 - movs r0, 0x1A - strb r0, [r4] - strb r1, [r4, 0x1] - ldr r6, =0x00000867 - movs r5, 0 -_080EDB88: - lsls r0, r6, 16 - lsrs r0, 16 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _080EDB9C - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_080EDB9C: - adds r6, 0x1 - ldr r0, =0x0000086e - cmp r6, r0 - bls _080EDB88 - strb r5, [r4, 0x4] - bl IsNationalPokedexEnabled - cmp r0, 0 - beq _080EDBCC - movs r0, 0x1 - bl pokedex_count - b _080EDBD2 - .pool -_080EDBCC: - movs r0, 0x1 - bl sub_80C0844 -_080EDBD2: - strh r0, [r4, 0x2] - ldr r1, =gMapHeader - ldrb r0, [r1, 0x14] - strb r0, [r4, 0x7] - ldrh r0, [r1, 0x12] - movs r1, 0 - strh r0, [r4, 0xA] - strb r1, [r4, 0x5] - strb r1, [r4, 0x6] - movs r6, 0 - adds r7, r4, 0 - adds r7, 0x13 -_080EDBEA: - ldr r0, =gUnknown_0858D0DE - lsls r5, r6, 1 - adds r0, r5, r0 - ldrh r0, [r0] - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080EDC04 - ldrb r0, [r4, 0x5] - adds r0, 0x1 - strb r0, [r4, 0x5] -_080EDC04: - ldr r0, =gUnknown_0858D0D0 - adds r0, r5, r0 - ldrh r0, [r0] - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080EDC1C - ldrb r0, [r4, 0x6] - adds r0, 0x1 - strb r0, [r4, 0x6] -_080EDC1C: - adds r6, 0x1 - cmp r6, 0x6 - bls _080EDBEA - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - ldr r2, =0x00000eb8 - adds r0, r1, r2 - ldrh r0, [r0] - strh r0, [r4, 0x8] - adds r0, r7, 0 - bl StringCopy - adds r0, r4, 0 - bl sub_80EC9E8 - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r4, 0xC] -_080EDC40: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EDB44 - - thumb_func_start sub_80EDC60 -sub_80EDC60: @ 80EDC60 - push {r4-r7,lr} - adds r5, r0, 0 - ldr r7, =gSaveBlock1Ptr - ldr r0, [r7] - ldr r6, =0x000027cc - adds r0, r6 - bl sub_80EFB08 - ldr r4, =gUnknown_030060BC - strb r0, [r4] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080EDCCE - movs r0, 0x1B - movs r1, 0 - bl sub_80EF46C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080EDCCE - movs r1, 0 - ldrsb r1, [r4, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldr r4, [r7] - adds r4, r0 - movs r1, 0 - movs r0, 0x1B - strb r0, [r4] - strb r1, [r4, 0x1] - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - ldrb r0, [r0, 0x8] - strb r0, [r4, 0x8] - ldrh r0, [r5] - strh r0, [r4, 0x4] - ldrh r0, [r5, 0x2] - strh r0, [r4, 0x6] - adds r0, r4, 0 - adds r0, 0x13 - ldr r1, [r1] - bl StringCopy - adds r0, r4, 0 - bl sub_80EC9E8 - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r4, 0x9] -_080EDCCE: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EDC60 - - thumb_func_start sub_80EDCE8 -sub_80EDCE8: @ 80EDCE8 - push {r4-r6,lr} - ldr r6, =gSaveBlock1Ptr - ldr r0, [r6] - ldr r5, =0x000027cc - adds r0, r5 - bl sub_80EFB08 - ldr r4, =gUnknown_030060BC - strb r0, [r4] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080EDD56 - movs r0, 0x1C - movs r1, 0 - bl sub_80EF46C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080EDD56 - movs r1, 0 - ldrsb r1, [r4, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r4, [r6] - adds r4, r0 - movs r1, 0 - movs r0, 0x1C - strb r0, [r4] - strb r1, [r4, 0x1] - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - strh r0, [r4, 0x2] - ldr r1, =gMapHeader - ldrb r0, [r1, 0x14] - strb r0, [r4, 0x4] - ldrh r0, [r1, 0x12] - strh r0, [r4, 0x6] - adds r0, r4, 0 - adds r0, 0x13 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - bl StringCopy - adds r0, r4, 0 - bl sub_80EC9E8 - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r4, 0x5] -_080EDD56: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EDCE8 - - thumb_func_start sub_80EDD78 -sub_80EDD78: @ 80EDD78 - push {r4-r6,lr} - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x000027cc - adds r0, r1 - bl sub_80EFB08 - ldr r1, =gUnknown_030060BC - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080EDE54 - movs r0, 0x1D - movs r1, 0 - bl sub_80EF46C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080EDE54 - movs r5, 0 - ldr r0, =gUnknown_0203A02A - ldrb r1, [r0] - adds r6, r0, 0 - cmp r1, 0 - beq _080EDDCC - cmp r1, 0x1 - beq _080EDDEE - b _080EDE54 - .pool -_080EDDCC: - ldr r0, =gUnknown_0203A028 - ldrh r1, [r0] - adds r0, r1, 0 - adds r0, 0xC8 - cmp r4, r0 - blt _080EDDE4 - movs r5, 0x1 - subs r0, r4, r1 - b _080EDE12 - .pool -_080EDDE4: - cmp r1, 0x63 - bls _080EDE54 - adds r0, r1, 0 - subs r0, 0x64 - b _080EDE0C -_080EDDEE: - ldr r0, =gUnknown_0203A028 - ldrh r1, [r0] - adds r0, r1, 0 - adds r0, 0x32 - cmp r4, r0 - blt _080EDE04 - movs r5, 0x1 - subs r0, r4, r1 - b _080EDE12 - .pool -_080EDE04: - cmp r1, 0x31 - bls _080EDE54 - adds r0, r1, 0 - subs r0, 0x32 -_080EDE0C: - cmp r4, r0 - bgt _080EDE54 - subs r0, r1, r4 -_080EDE12: - lsls r0, 16 - lsrs r3, r0, 16 - ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_030060BC - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r4, [r2] - adds r4, r0 - movs r1, 0 - movs r0, 0x1D - strb r0, [r4] - strb r1, [r4, 0x1] - strh r3, [r4, 0x4] - ldrb r0, [r6] - strb r0, [r4, 0x3] - strb r5, [r4, 0x2] - adds r0, r4, 0 - adds r0, 0x13 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - bl StringCopy - adds r0, r4, 0 - bl sub_80EC9E8 - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r4, 0x8] -_080EDE54: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EDD78 - - thumb_func_start sub_80EDE70 -sub_80EDE70: @ 80EDE70 - ldr r2, =gUnknown_0203A02A - movs r1, 0 - strb r1, [r2] - ldr r1, =gUnknown_0203A028 - strh r0, [r1] - bx lr - .pool - thumb_func_end sub_80EDE70 - - thumb_func_start sub_80EDE84 -sub_80EDE84: @ 80EDE84 - ldr r2, =gUnknown_0203A02A - movs r1, 0x1 - strb r1, [r2] - ldr r1, =gUnknown_0203A028 - strh r0, [r1] - bx lr - .pool - thumb_func_end sub_80EDE84 - - thumb_func_start sub_80EDE98 -sub_80EDE98: @ 80EDE98 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - mov r8, r0 - movs r3, 0 - ldr r6, =gUnknown_030060D0 - ldr r7, =gSaveBlock1Ptr - adds r2, r6, 0 - movs r1, 0 -_080EDEAC: - adds r0, r3, r2 - strb r1, [r0] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0xF - bls _080EDEAC - movs r3, 0 - movs r5, 0 -_080EDEBE: - ldr r0, [r7] - ldr r1, =0x00001aae - adds r0, r1 - adds r0, r3 - ldrb r4, [r0] - adds r3, 0x1 - cmp r4, 0 - beq _080EDF0A - movs r1, 0 - ldrb r0, [r6] - cmp r0, 0 - bne _080EDEE8 - strb r4, [r6] - b _080EDF04 - .pool -_080EDEE8: - adds r0, r1, r6 - ldrb r0, [r0] - cmp r0, r4 - beq _080EDF0A - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bhi _080EDF0A - adds r2, r1, r6 - ldrb r0, [r2] - cmp r0, 0 - bne _080EDEE8 - strb r4, [r2] -_080EDF04: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_080EDF0A: - lsls r0, r3, 24 - lsrs r3, r0, 24 - cmp r3, 0xF - bls _080EDEBE - cmp r5, 0x4 - bls _080EDF1E - movs r0, 0x4 - mov r1, r8 - strb r0, [r1, 0x3] - b _080EDF22 -_080EDF1E: - mov r0, r8 - strb r5, [r0, 0x3] -_080EDF22: - mov r1, r8 - ldrb r0, [r1, 0x3] - cmp r0, 0 - beq _080EDFA4 - cmp r0, 0x1 - bne _080EDF34 - ldrb r0, [r6] - strb r0, [r1, 0x4] - b _080EDFA4 -_080EDF34: - movs r6, 0 - adds r7, r5, 0 - muls r7, r5 - cmp r6, r7 - bge _080EDF7E - ldr r0, =gUnknown_030060D0 - mov r9, r0 -_080EDF42: - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r5, 0 - bl __modsi3 - lsls r0, 24 - lsrs r4, r0, 24 - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r5, 0 - bl __modsi3 - lsls r0, 24 - lsrs r1, r0, 24 - mov r0, r9 - adds r2, r4, r0 - ldrb r3, [r2] - add r1, r9 - ldrb r0, [r1] - strb r0, [r2] - strb r3, [r1] - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - cmp r6, r7 - blt _080EDF42 -_080EDF7E: - movs r3, 0 - mov r1, r8 - ldrb r1, [r1, 0x3] - cmp r3, r1 - bcs _080EDFA4 - mov r2, r8 - adds r2, 0x4 - ldr r4, =gUnknown_030060D0 -_080EDF8E: - adds r1, r2, r3 - adds r0, r3, r4 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - mov r0, r8 - ldrb r0, [r0, 0x3] - cmp r3, r0 - bcc _080EDF8E -_080EDFA4: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EDE98 - - thumb_func_start sub_80EDFB4 -sub_80EDFB4: @ 80EDFB4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - mov r10, r0 - movs r7, 0 - movs r0, 0 - mov r9, r0 - ldr r1, =gUnknown_030060C0 - mov r8, r1 -_080EDFCA: - movs r0, 0x64 - adds r1, r7, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - cmp r0, 0 - beq _080EE094 - adds r0, r4, 0 - movs r1, 0x2D - bl GetMonData - cmp r0, 0 - bne _080EE094 - adds r0, r4, 0 - movs r1, 0x38 - bl GetMonData - ldr r2, =gUnknown_030060E0 - mov r3, r9 - lsls r1, r3, 3 - adds r6, r1, r2 - strb r0, [r6] - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - strh r0, [r6, 0x2] - movs r5, 0 - adds r0, r4, 0 - movs r1, 0xD - bl GetMonData - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _080EE020 - mov r0, r8 - strh r1, [r0] - movs r5, 0x1 -_080EE020: - adds r0, r4, 0 - movs r1, 0xE - bl GetMonData - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _080EE03C - lsls r0, r5, 1 - add r0, r8 - strh r1, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_080EE03C: - adds r0, r4, 0 - movs r1, 0xF - bl GetMonData - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _080EE058 - lsls r0, r5, 1 - add r0, r8 - strh r1, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_080EE058: - adds r0, r4, 0 - movs r1, 0x10 - bl GetMonData - lsls r0, 16 - lsrs r1, r0, 16 - cmp r1, 0 - beq _080EE074 - lsls r0, r5, 1 - add r0, r8 - strh r1, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_080EE074: - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r5, 0 - bl __modsi3 - lsls r0, 1 - add r0, r8 - ldrh r0, [r0] - strh r0, [r6, 0x4] - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_080EE094: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x5 - bls _080EDFCA - movs r7, 0 - movs r1, 0 - cmp r1, r9 - bcs _080EE0BE - ldr r2, =gUnknown_030060E0 -_080EE0A8: - lsls r0, r7, 3 - adds r0, r2 - ldrb r0, [r0] - adds r0, r1, r0 - lsls r0, 16 - lsrs r1, r0, 16 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, r9 - bcc _080EE0A8 -_080EE0BE: - adds r0, r1, 0 - mov r1, r9 - bl __divsi3 - mov r1, r10 - strb r0, [r1, 0x2] - bl Random - lsls r0, 16 - lsrs r0, 16 - mov r1, r9 - bl __modsi3 - lsls r0, 16 - ldr r1, =gUnknown_030060E0 - lsrs r0, 13 - adds r0, r1 - ldrh r1, [r0, 0x2] - mov r2, r10 - strh r1, [r2, 0x8] - ldrh r0, [r0, 0x4] - strh r0, [r2, 0xA] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EDFB4 - - thumb_func_start sub_80EE104 -sub_80EE104: @ 80EE104 - push {r4,lr} - movs r0, 0x1F - movs r1, 0x1 - bl sub_80EF46C - ldr r4, =gSaveBlock1Ptr - ldr r0, [r4] - ldr r1, =0x000027cc - adds r0, r1 - bl sub_80EFB08 - ldr r2, =gUnknown_030060BC - strb r0, [r2] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080EE168 - movs r1, 0 - ldrsb r1, [r2, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r4, [r4] - adds r4, r0 - movs r1, 0 - movs r0, 0x1F - strb r0, [r4] - strb r1, [r4, 0x1] - adds r0, r4, 0 - adds r0, 0x13 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - bl StringCopy - adds r0, r4, 0 - bl sub_80EDE98 - adds r0, r4, 0 - bl sub_80EDFB4 - adds r0, r4, 0 - bl sub_80EC9E8 - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r4, 0xC] -_080EE168: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EE104 - - thumb_func_start sub_80EE184 -sub_80EE184: @ 80EE184 - push {r4-r7,lr} - ldr r6, =gSaveBlock1Ptr - ldr r0, [r6] - ldr r5, =0x000027cc - adds r0, r5 - bl sub_80EFB08 - ldr r4, =gUnknown_030060BC - strb r0, [r4] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080EE1A4 - b _080EE2C2 -_080EE1A4: - movs r0, 0x1E - movs r1, 0 - bl sub_80EF46C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080EE1B6 - b _080EE2C2 -_080EE1B6: - movs r1, 0 - ldrsb r1, [r4, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, [r6] - adds r4, r1, r0 - movs r1, 0 - movs r0, 0x1E - strb r0, [r4] - strb r1, [r4, 0x1] - movs r5, 0 - ldr r6, =gBattleResults - ldr r3, =gMapHeader - ldr r7, =gSaveBlock2Ptr - adds r2, r6, 0 - adds r2, 0x36 -_080EE1DA: - adds r0, r1, r2 - ldrb r0, [r0] - adds r0, r5, r0 - lsls r0, 16 - lsrs r5, r0, 16 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xA - bls _080EE1DA - ldrb r1, [r6, 0x5] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080EE1FE - adds r0, r5, 0x1 - lsls r0, 16 - lsrs r5, r0, 16 -_080EE1FE: - ldrb r0, [r3, 0x14] - strb r0, [r4, 0x4] - adds r0, r4, 0 - adds r0, 0x13 - ldr r1, [r7] - bl StringCopy - ldrh r0, [r6, 0x6] - strh r0, [r4, 0xA] - ldr r0, =gBattleOutcome - ldrb r0, [r0] - subs r0, 0x1 - cmp r0, 0x9 - bhi _080EE282 - lsls r0, 2 - ldr r1, =_080EE244 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080EE244: - .4byte _080EE276 - .4byte _080EE26C - .4byte _080EE26C - .4byte _080EE27A - .4byte _080EE27A - .4byte _080EE27E - .4byte _080EE272 - .4byte _080EE27A - .4byte _080EE282 - .4byte _080EE27E -_080EE26C: - movs r0, 0 - strb r0, [r4] - b _080EE2C2 -_080EE272: - movs r0, 0 - b _080EE280 -_080EE276: - movs r0, 0x1 - b _080EE280 -_080EE27A: - movs r0, 0x2 - b _080EE280 -_080EE27E: - movs r0, 0x3 -_080EE280: - strb r0, [r4, 0x5] -_080EE282: - ldr r1, =gBattleResults - ldrh r0, [r1, 0x20] - strh r0, [r4, 0x2] - ldrb r0, [r4, 0x5] - cmp r0, 0x1 - beq _080EE2B2 - cmp r0, 0x1 - bgt _080EE2B6 - cmp r0, 0 - bne _080EE2B6 - ldrb r1, [r1, 0x5] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080EE2A8 - movs r0, 0x1 - b _080EE2AC - .pool -_080EE2A8: - lsls r0, r1, 26 - lsrs r0, 28 -_080EE2AC: - strh r0, [r4, 0x6] - strh r5, [r4, 0x8] - b _080EE2B6 -_080EE2B2: - ldrh r0, [r1, 0x22] - strh r0, [r4, 0xC] -_080EE2B6: - adds r0, r4, 0 - bl sub_80EC9E8 - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r4, 0xE] -_080EE2C2: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EE184 - - thumb_func_start sub_80EE2CC -sub_80EE2CC: @ 80EE2CC - push {r4-r6,lr} - ldr r6, =gSaveBlock1Ptr - ldr r0, [r6] - ldr r5, =0x000027cc - adds r0, r5 - bl sub_80EFB08 - ldr r4, =gUnknown_030060BC - strb r0, [r4] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080EE33A - movs r0, 0x20 - movs r1, 0 - bl sub_80EF46C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080EE33A - movs r1, 0 - ldrsb r1, [r4, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r4, [r6] - adds r4, r0 - movs r1, 0 - movs r0, 0x20 - strb r0, [r4] - strb r1, [r4, 0x1] - adds r0, r4, 0 - adds r0, 0x13 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - bl StringCopy - ldr r0, =gSpecialVar_0x8004 - ldrb r1, [r0] - movs r0, 0x4 - subs r0, r1 - strb r0, [r4, 0x4] - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - strh r0, [r4, 0x2] - adds r0, r4, 0 - bl sub_80EC9E8 - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r4, 0x5] -_080EE33A: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EE2CC - - thumb_func_start sub_80EE35C -sub_80EE35C: @ 80EE35C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r7, r3, 0 - ldr r3, [sp, 0x24] - lsls r0, 16 - lsrs r0, 16 - mov r10, r0 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - lsls r2, 24 - lsrs r6, r2, 24 - lsls r3, 16 - lsrs r3, 16 - str r3, [sp] - ldr r0, =gSaveBlock1Ptr - mov r8, r0 - ldr r0, [r0] - ldr r5, =0x000027cc - adds r0, r5 - bl sub_80EFB08 - ldr r4, =gUnknown_030060BC - strb r0, [r4] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080EE426 - movs r0, 0x21 - movs r1, 0 - bl sub_80EF46C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080EE426 - movs r1, 0 - ldrsb r1, [r4, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - mov r2, r8 - ldr r1, [r2] - adds r4, r1, r0 - movs r1, 0 - movs r0, 0x21 - strb r0, [r4] - strb r1, [r4, 0x1] - adds r0, r4, 0 - adds r0, 0x13 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - bl StringCopy - mov r0, r10 - strh r0, [r4, 0x4] - mov r1, r9 - strh r1, [r4, 0x6] - lsls r0, r6, 1 - adds r0, r7 - ldrh r0, [r0] - strh r0, [r4, 0x2] - movs r2, 0 - movs r3, 0 - adds r5, r4, 0 - adds r5, 0x8 -_080EE3EE: - cmp r2, r6 - beq _080EE408 - lsls r0, r2, 1 - adds r0, r7 - ldrh r1, [r0] - cmp r1, 0 - beq _080EE408 - lsls r0, r3, 1 - adds r0, r5, r0 - strh r1, [r0] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 -_080EE408: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _080EE3EE - strb r3, [r4, 0x10] - mov r2, sp - ldrh r2, [r2] - strh r2, [r4, 0xE] - adds r0, r4, 0 - bl sub_80EC9E8 - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r4, 0x11] -_080EE426: - 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_80EE35C - - thumb_func_start sub_80EE44C -sub_80EE44C: @ 80EE44C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r7, r1, 24 - ldr r6, =gSaveBlock1Ptr - ldr r0, [r6] - ldr r5, =0x000027cc - adds r0, r5 - bl sub_80EFB08 - ldr r4, =gUnknown_030060BC - strb r0, [r4] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080EE4BE - movs r0, 0x27 - movs r1, 0 - bl sub_80EF46C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080EE4BE - movs r1, 0 - ldrsb r1, [r4, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r4, [r6] - adds r4, r0 - movs r1, 0 - movs r0, 0x27 - strb r0, [r4] - strb r1, [r4, 0x1] - adds r0, r4, 0 - adds r0, 0x13 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - bl StringCopy - mov r0, r8 - strb r0, [r4, 0x2] - strb r7, [r4, 0x3] - adds r0, r4, 0 - bl sub_80EC9E8 - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r4, 0x4] -_080EE4BE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EE44C - - thumb_func_start sub_80EE4DC -sub_80EE4DC: @ 80EE4DC - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - ldr r7, =gSaveBlock1Ptr - ldr r0, [r7] - ldr r5, =0x000027cc - adds r0, r5 - bl sub_80EFB08 - ldr r4, =gUnknown_030060BC - strb r0, [r4] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080EE59A - movs r0, 0x23 - movs r1, 0 - bl sub_80EF46C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080EE59A - movs r1, 0 - ldrsb r1, [r4, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldr r1, [r7] - adds r5, r1, r0 - movs r1, 0 - movs r0, 0x23 - strb r0, [r5] - strb r1, [r5, 0x1] - adds r0, r5, 0 - adds r0, 0x13 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - bl StringCopy - adds r4, r5, 0x4 - adds r0, r6, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl GetMonData - adds r0, r4, 0 - bl StripExtCtrlCodes - adds r0, r6, 0 - bl sub_80EE5A4 - strb r0, [r5, 0x2] - mov r0, r8 - bl sub_80EE69C - strb r0, [r5, 0x3] - adds r0, r5, 0 - bl sub_80EC9E8 - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r5, 0xF] - cmp r0, 0x1 - beq _080EE578 - adds r0, r6, 0 - movs r1, 0x3 - bl GetMonData - cmp r0, 0x1 - bne _080EE590 -_080EE578: - movs r0, 0x1 - b _080EE598 - .pool -_080EE590: - adds r0, r6, 0 - movs r1, 0x3 - bl GetMonData -_080EE598: - strb r0, [r5, 0x10] -_080EE59A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80EE4DC - - thumb_func_start sub_80EE5A4 -sub_80EE5A4: @ 80EE5A4 - push {r4,r5,lr} - adds r5, r0, 0 - movs r1, 0x32 - bl GetMonData - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x33 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x34 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x35 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x36 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x43 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x44 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x45 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x46 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x47 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x48 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x49 - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x4A - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x4B - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x4C - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x4D - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x4E - bl GetMonData - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80EE5A4 - - thumb_func_start sub_80EE69C -sub_80EE69C: @ 80EE69C - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x43 - beq _080EE722 - cmp r0, 0x32 - bne _080EE6AE - movs r0, 0x1 - b _080EE728 -_080EE6AE: - cmp r0, 0x33 - bne _080EE6B6 - movs r0, 0x5 - b _080EE728 -_080EE6B6: - cmp r0, 0x34 - bne _080EE6BE - movs r0, 0x9 - b _080EE728 -_080EE6BE: - cmp r0, 0x35 - bne _080EE6C6 - movs r0, 0xD - b _080EE728 -_080EE6C6: - cmp r0, 0x36 - bne _080EE6CE - movs r0, 0x11 - b _080EE728 -_080EE6CE: - cmp r0, 0x44 - bne _080EE6D6 - movs r0, 0x15 - b _080EE728 -_080EE6D6: - cmp r0, 0x45 - bne _080EE6DE - movs r0, 0x16 - b _080EE728 -_080EE6DE: - cmp r0, 0x46 - bne _080EE6E6 - movs r0, 0x17 - b _080EE728 -_080EE6E6: - cmp r0, 0x47 - bne _080EE6EE - movs r0, 0x18 - b _080EE728 -_080EE6EE: - cmp r0, 0x48 - bne _080EE6F6 - movs r0, 0x19 - b _080EE728 -_080EE6F6: - cmp r0, 0x49 - bne _080EE6FE - movs r0, 0x1A - b _080EE728 -_080EE6FE: - cmp r0, 0x4A - bne _080EE706 - movs r0, 0x1B - b _080EE728 -_080EE706: - cmp r0, 0x4B - bne _080EE70E - movs r0, 0x1C - b _080EE728 -_080EE70E: - cmp r0, 0x4C - bne _080EE716 - movs r0, 0x1D - b _080EE728 -_080EE716: - cmp r0, 0x4D - bne _080EE71E - movs r0, 0x1E - b _080EE728 -_080EE71E: - cmp r0, 0x4E - beq _080EE726 -_080EE722: - movs r0, 0 - b _080EE728 -_080EE726: - movs r0, 0x1F -_080EE728: - pop {r1} - bx r1 - thumb_func_end sub_80EE69C - - thumb_func_start sub_80EE72C -sub_80EE72C: @ 80EE72C - push {r4-r6,lr} - ldr r5, =gSaveBlock1Ptr - ldr r0, [r5] - ldr r6, =0x000027cc - adds r0, r6 - bl sub_80EFB08 - ldr r4, =gUnknown_030060BC - strb r0, [r4] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080EE79C - movs r0, 0x22 - movs r1, 0 - bl sub_80EF46C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080EE79C - movs r1, 0 - ldrsb r1, [r4, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldr r4, [r5] - adds r4, r0 - movs r1, 0 - movs r0, 0x22 - strb r0, [r4] - strb r1, [r4, 0x1] - adds r0, r4, 0 - adds r0, 0x13 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - bl StringCopy - ldr r0, [r5] - ldr r2, =0x00002bb0 - adds r1, r0, r2 - ldrh r1, [r1] - strh r1, [r4, 0x4] - ldr r1, =0x00002bb2 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r4, 0x6] - adds r0, r4, 0 - bl sub_80EC9E8 - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r4, 0x8] -_080EE79C: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EE72C - - thumb_func_start sub_80EE7C0 -sub_80EE7C0: @ 80EE7C0 - push {r4,lr} - ldr r4, =gSaveBlock1Ptr - ldr r0, [r4] - ldr r1, =0x000027cc - adds r0, r1 - bl sub_80EFADC - ldr r1, =gUnknown_030060BC - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080EE810 - movs r0, 0xB - bl sub_80EF550 - ldr r0, =gScriptResult - ldrh r0, [r0] - cmp r0, 0x1 - beq _080EE810 - ldr r0, [r4] - ldr r1, =0x00003150 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0xFF - beq _080EE810 - movs r0, 0 - b _080EE812 - .pool -_080EE810: - movs r0, 0x1 -_080EE812: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80EE7C0 - - thumb_func_start sub_80EE818 -sub_80EE818: @ 80EE818 - push {r4-r7,lr} - movs r0, 0x24 - movs r1, 0 - bl sub_80EF46C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080EE870 - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x000027cc - adds r7, r0, r1 - bl sub_80F0020 - adds r4, r0, 0 - movs r6, 0x5 - lsrs r5, r4, 8 -_080EE83C: - lsls r0, r6, 3 - adds r0, r6 - lsls r0, 2 - adds r1, r0, r7 - ldrb r0, [r1] - cmp r0, 0x24 - bne _080EE866 - movs r3, 0xFF - adds r0, r4, 0 - ands r0, r3 - adds r2, r1, 0 - adds r2, 0x22 - ldrb r2, [r2] - cmp r0, r2 - bne _080EE866 - adds r0, r5, 0 - ands r0, r3 - adds r1, 0x23 - ldrb r1, [r1] - cmp r0, r1 - beq _080EE89C -_080EE866: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x17 - bls _080EE83C -_080EE870: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x000027cc - adds r0, r1 - bl sub_80EFB08 - ldr r1, =gUnknown_030060BC - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080EE8C0 - movs r0, 0x1 - b _080EE8C2 - .pool -_080EE89C: - ldr r5, =gSaveBlock1Ptr - ldr r0, [r5] - ldr r4, =0x000027cc - adds r0, r4 - adds r1, r6, 0 - bl sub_80EF910 - ldr r0, [r5] - adds r0, r4 - bl sub_80EF93C - movs r0, 0x1 - b _080EE8C2 - .pool -_080EE8C0: - movs r0, 0 -_080EE8C2: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80EE818 - - thumb_func_start sub_80EE8C8 -sub_80EE8C8: @ 80EE8C8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r6, r0, 16 - lsls r1, 24 - lsrs r4, r1, 24 - ldr r5, =gSaveBlock1Ptr - ldr r0, [r5] - ldr r1, =0x000027cc - adds r0, r1 - bl sub_80EFB08 - ldr r2, =gUnknown_030060BC - strb r0, [r2] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080EE8F4 - b _080EEA52 -_080EE8F4: - movs r1, 0 - ldrsb r1, [r2, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r2, =0x000027cc - adds r0, r2 - ldr r1, [r5] - adds r7, r1, r0 - movs r1, 0 - movs r0, 0x24 - strb r0, [r7] - strb r1, [r7, 0x1] - adds r0, r7, 0 - adds r0, 0x13 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - bl StringCopy - strh r6, [r7, 0x2] - strb r4, [r7, 0xD] - subs r0, r4, 0x1 - cmp r0, 0xC - bls _080EE926 - b _080EEA46 -_080EE926: - lsls r0, 2 - ldr r1, =_080EE944 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080EE944: - .4byte _080EE978 - .4byte _080EE9A8 - .4byte _080EE9E8 - .4byte _080EEA00 - .4byte _080EE978 - .4byte _080EE978 - .4byte _080EE978 - .4byte _080EE978 - .4byte _080EE978 - .4byte _080EE978 - .4byte _080EE978 - .4byte _080EE978 - .4byte _080EE978 -_080EE978: - ldr r4, =gPlayerParty - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - strh r0, [r7, 0x4] - adds r0, r4, 0 - adds r0, 0x64 - movs r1, 0xB - movs r2, 0 - bl GetMonData - strh r0, [r7, 0x6] - adds r4, 0xC8 - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - strh r0, [r7, 0x8] - b _080EEA46 - .pool -_080EE9A8: - ldr r4, =gPlayerParty - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - strh r0, [r7, 0x4] - adds r0, r4, 0 - adds r0, 0x64 - movs r1, 0xB - movs r2, 0 - bl GetMonData - strh r0, [r7, 0x6] - adds r0, r4, 0 - adds r0, 0xC8 - movs r1, 0xB - movs r2, 0 - bl GetMonData - strh r0, [r7, 0x8] - movs r1, 0x96 - lsls r1, 1 - adds r0, r4, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - strh r0, [r7, 0xA] - b _080EEA46 - .pool -_080EE9E8: - ldr r4, =gPlayerParty - adds r0, r4, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - strh r0, [r7, 0x4] - adds r4, 0x64 - adds r0, r4, 0 - b _080EEA3C - .pool -_080EEA00: - ldr r2, =gSaveBlock1Ptr - mov r8, r2 - ldr r6, =gSaveBlock2Ptr - ldr r0, [r6] - ldr r1, =0x00000caa - adds r0, r1 - ldrh r0, [r0] - movs r5, 0x64 - adds r1, r0, 0 - muls r1, r5 - movs r4, 0xEA - lsls r4, 1 - adds r1, r4 - ldr r0, [r2] - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - strh r0, [r7, 0x4] - ldr r0, [r6] - ldr r2, =0x00000cac - adds r0, r2 - ldrh r0, [r0] - adds r1, r0, 0 - muls r1, r5 - adds r1, r4 - mov r2, r8 - ldr r0, [r2] - adds r0, r1 -_080EEA3C: - movs r1, 0xB - movs r2, 0 - bl GetMonData - strh r0, [r7, 0x6] -_080EEA46: - adds r0, r7, 0 - bl sub_80EC9E8 - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r7, 0xC] -_080EEA52: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EE8C8 - - thumb_func_start sub_80EEA70 -sub_80EEA70: @ 80EEA70 - push {r4-r7,lr} - sub sp, 0x20 - movs r0, 0x26 - movs r1, 0 - bl sub_80EF46C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080EEA86 - b _080EEB8C -_080EEA86: - ldr r7, =gSaveBlock1Ptr - ldr r0, [r7] - ldr r1, =0x000027cc - adds r0, r1 - bl sub_80EFB08 - ldr r2, =gUnknown_030060BC - strb r0, [r2] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080EEB8C - movs r1, 0 - ldrsb r1, [r2, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r7] - adds r5, r1, r0 - movs r1, 0 - movs r0, 0x26 - strb r0, [r5] - strb r1, [r5, 0x1] - adds r0, r5, 0 - adds r0, 0x13 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - bl StringCopy - ldr r0, =0x000040ec - bl VarGet - strh r0, [r5, 0x2] - bl sub_80E980C - ldr r1, =gStringVar1 - mov r0, sp - bl StringCopy - mov r0, sp - bl StripExtCtrlCodes - adds r0, r5, 0x4 - mov r1, sp - bl StringCopy - ldr r0, =0x000040ed - bl VarGet - strh r0, [r5, 0x10] - ldr r0, =0x000040ee - bl VarGet - adds r4, r0, 0 - ldr r0, =0x000040ef - bl VarGet - lsls r4, 16 - lsrs r4, 16 - lsls r0, 16 - adds r4, r0 - str r4, [r5, 0xC] - adds r0, r5, 0 - bl sub_80EC9E8 - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r5, 0x1B] - cmp r0, 0x1 - beq _080EEB3A - ldr r4, [r7] - ldr r6, =0x00004054 - adds r0, r6, 0 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 5 - adds r4, r1 - ldr r0, =0x00001aa9 - adds r4, r0 - ldrb r0, [r4] - cmp r0, 0x1 - bne _080EEB70 -_080EEB3A: - movs r0, 0x1 - b _080EEB8A - .pool -_080EEB70: - adds r0, r6, 0 - bl VarGet - ldr r2, [r7] - lsls r0, 16 - lsrs r0, 16 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 5 - adds r2, r1 - ldr r1, =0x00001aa9 - adds r2, r1 - ldrb r0, [r2] -_080EEB8A: - strb r0, [r5, 0x1C] -_080EEB8C: - add sp, 0x20 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EEA70 - - thumb_func_start sub_80EEB98 -sub_80EEB98: @ 80EEB98 - push {r4-r7,lr} - movs r5, 0 - ldr r6, =gUnknown_0858D0EC - adds r7, r6, 0x2 - b _080EEBAE - .pool -_080EEBA8: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_080EEBAE: - cmp r5, 0x6 - bhi _080EEBCE - lsls r4, r5, 2 - adds r0, r4, r6 - ldrh r0, [r0] - bl VarGet - adds r4, r7 - lsls r0, 16 - lsrs r0, 16 - ldrh r4, [r4] - cmp r0, r4 - bcc _080EEBA8 - adds r0, r5, 0 - bl sub_80EEBF4 -_080EEBCE: - movs r5, 0 - ldr r4, =gUnknown_0858D0EC -_080EEBD2: - lsls r0, r5, 2 - adds r0, r4 - ldrh r0, [r0] - movs r1, 0 - bl VarSet - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x6 - bls _080EEBD2 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EEB98 - - thumb_func_start sub_80EEBF4 -sub_80EEBF4: @ 80EEBF4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x25 - movs r1, 0x1 - bl sub_80EF46C - ldr r4, =gSaveBlock1Ptr - ldr r0, [r4] - ldr r1, =0x000027cc - adds r0, r1 - bl sub_80EFB08 - ldr r2, =gUnknown_030060BC - strb r0, [r2] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080EEC60 - movs r1, 0 - ldrsb r1, [r2, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r4, [r4] - adds r4, r0 - movs r1, 0 - movs r0, 0x25 - strb r0, [r4] - strb r1, [r4, 0x1] - adds r0, r4, 0 - adds r0, 0x13 - ldr r1, =gSaveBlock2Ptr - ldr r1, [r1] - bl StringCopy - strb r5, [r4, 0x4] - ldr r1, =gUnknown_0858D0EC - lsls r0, r5, 2 - adds r0, r1 - ldrh r0, [r0] - bl VarGet - strh r0, [r4, 0x2] - adds r0, r4, 0 - bl sub_80EC9E8 - ldr r0, =gGameLanguage - ldrb r0, [r0] - strb r0, [r4, 0x5] -_080EEC60: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EEBF4 - - thumb_func_start sub_80EEC80 -sub_80EEC80: @ 80EEC80 - push {r4,lr} - ldr r4, =0x000040e6 - adds r0, r4, 0 - bl VarGet - adds r1, r0, 0 - adds r1, 0x1 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl VarSet - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EEC80 - - thumb_func_start sub_80EECA4 -sub_80EECA4: @ 80EECA4 - push {r4,lr} - ldr r4, =0x000040eb - adds r0, r4, 0 - bl VarGet - adds r1, r0, 0 - adds r1, 0x1 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl VarSet - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EECA4 - - thumb_func_start sub_80EECC8 -sub_80EECC8: @ 80EECC8 - push {r4,lr} - ldr r4, =0x000040e7 - adds r0, r4, 0 - bl VarGet - adds r1, r0, 0 - adds r1, 0x1 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl VarSet - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EECC8 - - thumb_func_start sub_80EECEC -sub_80EECEC: @ 80EECEC - push {r4,lr} - ldr r4, =0x000040e8 - adds r0, r4, 0 - bl VarGet - adds r1, r0, 0 - adds r1, 0x1 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl VarSet - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EECEC - - thumb_func_start sub_80EED10 -sub_80EED10: @ 80EED10 - push {r4,lr} - ldr r4, =0x000040e9 - adds r0, r4, 0 - bl VarGet - adds r1, r0, 0 - adds r1, 0x1 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl VarSet - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EED10 - - thumb_func_start sub_80EED34 -sub_80EED34: @ 80EED34 - push {r4,lr} - ldr r4, =0x000040ea - adds r0, r4, 0 - bl VarGet - adds r1, r0, 0 - ldr r0, =gSpecialVar_0x8006 - ldrh r0, [r0] - adds r1, r0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl VarSet - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EED34 - - thumb_func_start sub_80EED60 -sub_80EED60: @ 80EED60 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r5, =0x000040f1 - adds r0, r5, 0 - bl VarGet - adds r4, r0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r5, 0 - adds r1, r4, 0 - bl VarSet - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EED60 - - thumb_func_start sub_80EED88 -sub_80EED88: @ 80EED88 - push {r4-r7,lr} - ldr r0, =0x00000864 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _080EEE0C - ldr r6, =gSaveBlock1Ptr - ldr r0, [r6] - ldr r7, =0x00002b50 - adds r0, r7 - bl sub_80EEE30 - ldr r5, =gUnknown_030060BC - strb r0, [r5] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080EEE0C - ldr r0, =0x0000028f - bl sub_80EFB38 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080EEE0C - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - ands r0, r1 - adds r4, r0, 0x1 - adds r0, r4, 0 - bl sub_80EF0E4 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080EEE0C - ldr r1, [r6] - movs r0, 0 - ldrsb r0, [r5, r0] - lsls r0, 2 - adds r1, r0 - adds r1, r7 - strb r4, [r1] - ldr r2, [r6] - movs r0, 0 - ldrsb r0, [r5, r0] - lsls r0, 2 - adds r0, r2, r0 - ldr r1, =0x00002b52 - adds r0, r1 - movs r1, 0x4 - strh r1, [r0] - movs r0, 0 - ldrsb r0, [r5, r0] - lsls r0, 2 - adds r2, r0 - ldr r0, =0x00002b51 - adds r2, r0 - movs r0, 0x1 - strb r0, [r2] -_080EEE0C: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EED88 - - thumb_func_start sub_80EEE30 -sub_80EEE30: @ 80EEE30 - push {lr} - adds r2, r0, 0 - movs r1, 0 -_080EEE36: - lsls r0, r1, 24 - asrs r1, r0, 24 - lsls r0, r1, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080EEE48 - adds r0, r1, 0 - b _080EEE58 -_080EEE48: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - asrs r0, 24 - cmp r0, 0xF - ble _080EEE36 - movs r0, 0x1 - negs r0, r0 -_080EEE58: - pop {r1} - bx r1 - thumb_func_end sub_80EEE30 - - thumb_func_start sub_80EEE5C -sub_80EEE5C: @ 80EEE5C - push {r4,lr} - movs r4, 0 -_080EEE60: - adds r0, r4, 0 - bl sub_80EEE78 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _080EEE60 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80EEE5C - - thumb_func_start sub_80EEE78 -sub_80EEE78: @ 80EEE78 - push {r4,lr} - lsls r0, 24 - ldr r3, =gSaveBlock1Ptr - ldr r1, [r3] - lsrs r0, 22 - adds r1, r0 - ldr r2, =0x00002b50 - adds r1, r2 - movs r2, 0 - strb r2, [r1] - ldr r1, [r3] - adds r1, r0 - ldr r4, =0x00002b51 - adds r1, r4 - strb r2, [r1] - ldr r1, [r3] - adds r1, r0 - ldr r0, =0x00002b52 - adds r1, r0 - strh r2, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EEE78 - - thumb_func_start sub_80EEEB8 -sub_80EEEB8: @ 80EEEB8 - push {r4-r7,lr} - movs r2, 0 - ldr r6, =gSaveBlock1Ptr -_080EEEBE: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - lsls r1, r2, 2 - adds r0, r1 - ldr r3, =0x00002b50 - adds r0, r3 - ldrb r0, [r0] - adds r5, r2, 0x1 - cmp r0, 0 - bne _080EEF12 - lsls r0, r5, 24 - b _080EEF0C - .pool -_080EEEE0: - ldr r3, [r6] - lsls r4, r2, 2 - adds r0, r3, r4 - ldr r7, =0x00002b50 - adds r0, r7 - ldrb r0, [r0] - cmp r0, 0 - beq _080EEF08 - adds r0, r3, r7 - adds r1, r0, r1 - adds r0, r4 - ldr r0, [r0] - str r0, [r1] - adds r0, r2, 0 - bl sub_80EEE78 - b _080EEF12 - .pool -_080EEF08: - adds r0, r2, 0x1 - lsls r0, 24 -_080EEF0C: - lsrs r2, r0, 24 - cmp r2, 0xF - bls _080EEEE0 -_080EEF12: - lsls r0, r5, 24 - lsrs r2, r0, 24 - cmp r2, 0xE - bls _080EEEBE - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80EEEB8 - - thumb_func_start sub_80EEF20 -sub_80EEF20: @ 80EEF20 - push {r4,lr} - movs r2, 0 - ldr r0, =gSaveBlock1Ptr - ldr r3, [r0] -_080EEF28: - lsls r0, r2, 2 - adds r1, r3, r0 - ldr r4, =0x00002b50 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _080EEF58 - adds r4, 0x1 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080EEF58 - adds r4, 0x1 - adds r0, r1, r4 - ldrh r0, [r0] - cmp r0, 0x2 - bhi _080EEF58 - adds r0, r2, 0 - b _080EEF64 - .pool -_080EEF58: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xF - bls _080EEF28 - movs r0, 0xFF -_080EEF64: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80EEF20 - - thumb_func_start sub_80EEF6C -sub_80EEF6C: @ 80EEF6C - push {r4,r5,lr} - bl sub_80EEF20 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - bne _080EEF84 - ldr r1, =gScriptResult - movs r0, 0 - b _080EF01A - .pool -_080EEF84: - ldr r5, =gSaveBlock1Ptr - ldr r0, [r5] - lsls r4, r2, 2 - adds r1, r0, r4 - ldr r0, =0x00002b52 - adds r2, r1, r0 - ldrh r0, [r2] - cmp r0, 0 - bne _080EEFE8 - ldr r2, =0x00002b51 - adds r1, r2 - movs r0, 0x2 - strb r0, [r1] - ldr r0, =gLocalTime - ldrb r0, [r0, 0x2] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x13 - bgt _080EEFC8 - ldr r1, =gUnknown_0858D11C - ldr r0, [r5] - adds r0, r4 - subs r2, 0x1 - b _080EEFD0 - .pool -_080EEFC8: - ldr r1, =gUnknown_0858D130 - ldr r0, [r5] - adds r0, r4 - ldr r2, =0x00002b50 -_080EEFD0: - adds r0, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl box_related_two__2 - b _080EF016 - .pool -_080EEFE8: - ldrh r1, [r2] - ldr r0, =gStringVar1 - movs r2, 0 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - ldr r0, [r5] - adds r0, r4 - ldr r1, =0x00002b51 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - ldr r1, =gUnknown_0858D108 - ldr r0, [r5] - adds r0, r4 - ldr r2, =0x00002b50 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl box_related_two__2 -_080EF016: - ldr r1, =gScriptResult - movs r0, 0x1 -_080EF01A: - strh r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EEF6C - - thumb_func_start GetPriceReduction -GetPriceReduction: @ 80EF038 - push {r4,r5,lr} - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0 - bne _080EF048 - b _080EF08A -_080EF044: - movs r0, 0x1 - b _080EF08C -_080EF048: - movs r2, 0 - ldr r4, =gSaveBlock1Ptr -_080EF04C: - ldr r1, [r4] - lsls r0, r2, 2 - adds r1, r0 - ldr r5, =0x00002b50 - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, r3 - bne _080EF080 - ldr r2, =0x00002b51 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x2 - bne _080EF08A - adds r0, r3, 0 - bl IsPriceDiscounted - lsls r0, 24 - cmp r0, 0 - bne _080EF044 - b _080EF08A - .pool -_080EF080: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xF - bls _080EF04C -_080EF08A: - movs r0, 0 -_080EF08C: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end GetPriceReduction - - thumb_func_start IsPriceDiscounted -IsPriceDiscounted: @ 80EF094 - push {lr} - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080EF0A6 - cmp r0, 0x3 - beq _080EF0C8 -_080EF0A2: - movs r0, 0x1 - b _080EF0D6 -_080EF0A6: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r1, [r0, 0x4] - movs r0, 0x80 - lsls r0, 1 - cmp r1, r0 - bne _080EF0D4 - ldr r0, =gScriptLastTalked - ldrh r0, [r0] - cmp r0, 0x19 - beq _080EF0A2 - b _080EF0D4 - .pool -_080EF0C8: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrh r1, [r0, 0x4] - ldr r0, =0x0000150d - cmp r1, r0 - beq _080EF0A2 -_080EF0D4: - movs r0, 0 -_080EF0D6: - pop {r1} - bx r1 - .pool - thumb_func_end IsPriceDiscounted - - thumb_func_start sub_80EF0E4 -sub_80EF0E4: @ 80EF0E4 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _080EF0F2 -_080EF0EE: - movs r0, 0x1 - b _080EF112 -_080EF0F2: - movs r1, 0 - ldr r0, =gSaveBlock1Ptr - ldr r3, [r0] - ldr r4, =0x00002b50 -_080EF0FA: - lsls r0, r1, 2 - adds r0, r3, r0 - adds r0, r4 - ldrb r0, [r0] - cmp r0, r2 - beq _080EF0EE - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _080EF0FA - movs r0, 0 -_080EF112: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80EF0E4 - - thumb_func_start sub_80EF120 -sub_80EF120: @ 80EF120 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 16 - lsrs r7, r0, 16 - movs r6, 0 - ldr r0, =gSaveBlock1Ptr - mov r8, r0 -_080EF130: - mov r1, r8 - ldr r0, [r1] - lsls r1, r6, 2 - adds r2, r0, r1 - ldr r3, =0x00002b50 - adds r0, r2, r3 - ldrb r0, [r0] - adds r4, r1, 0 - cmp r0, 0 - beq _080EF196 - ldr r1, =0x00002b52 - adds r0, r2, r1 - ldrh r0, [r0] - cmp r0, r7 - bcs _080EF164 - adds r0, r6, 0 - bl sub_80EEE78 - b _080EF196 - .pool -_080EF164: - ldr r5, =0x00002b51 - adds r0, r2, r5 - ldrb r0, [r0] - cmp r0, 0 - bne _080EF186 - ldr r0, =0x00000864 - bl FlagGet - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1 - bne _080EF186 - mov r2, r8 - ldr r0, [r2] - adds r0, r4 - adds r0, r5 - strb r1, [r0] -_080EF186: - mov r3, r8 - ldr r1, [r3] - adds r1, r4 - ldr r0, =0x00002b52 - adds r1, r0 - ldrh r0, [r1] - subs r0, r7 - strh r0, [r1] -_080EF196: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0xF - bls _080EF130 - bl sub_80EEEB8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EF120 - - thumb_func_start sub_80EF1BC -sub_80EF1BC: @ 80EF1BC - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - adds r2, r1, 0 - cmp r1, 0x1 - beq _080EF1FC - cmp r1, 0x1 - bgt _080EF1D6 - cmp r1, 0 - beq _080EF1E0 - b _080EF244 -_080EF1D6: - cmp r2, 0x2 - beq _080EF218 - cmp r2, 0x3 - beq _080EF234 - b _080EF244 -_080EF1E0: - ldr r1, =gUnknown_0858D144 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, =gUnknown_0858BAF0 - ldr r1, [r1, 0x14] - bl StringCopy - b _080EF244 - .pool -_080EF1FC: - ldr r1, =gUnknown_0858D144 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, =gUnknown_0858BAF0 - ldr r1, [r1, 0x18] - bl StringCopy - b _080EF244 - .pool -_080EF218: - ldr r1, =gUnknown_0858D144 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, =gUnknown_0858BAF0 - ldr r1, [r1, 0x1C] - bl StringCopy - b _080EF244 - .pool -_080EF234: - ldr r1, =gUnknown_0858D144 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, =gUnknown_0858BAF0 - ldr r1, [r1, 0x20] - bl StringCopy -_080EF244: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EF1BC - - thumb_func_start CopyContestCategoryToStringVar -@ void CopyContestCategoryToStringVar(u8 stringVarIndex, u8 contestCategoryId) -CopyContestCategoryToStringVar: @ 80EF250 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r0, r1, 24 - cmp r0, 0x4 - bhi _080EF300 - lsls r0, 2 - ldr r1, =_080EF26C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080EF26C: - .4byte _080EF280 - .4byte _080EF29C - .4byte _080EF2B8 - .4byte _080EF2D4 - .4byte _080EF2F0 -_080EF280: - ldr r1, =gUnknown_0858D144 - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, =gUnknown_0858BAF0 - ldr r1, [r1] - bl StringCopy - b _080EF300 - .pool -_080EF29C: - ldr r1, =gUnknown_0858D144 - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, =gUnknown_0858BAF0 - ldr r1, [r1, 0x4] - bl StringCopy - b _080EF300 - .pool -_080EF2B8: - ldr r1, =gUnknown_0858D144 - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, =gUnknown_0858BAF0 - ldr r1, [r1, 0x8] - bl StringCopy - b _080EF300 - .pool -_080EF2D4: - ldr r1, =gUnknown_0858D144 - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, =gUnknown_0858BAF0 - ldr r1, [r1, 0xC] - bl StringCopy - b _080EF300 - .pool -_080EF2F0: - ldr r1, =gUnknown_0858D144 - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ldr r1, =gUnknown_0858BAF0 - ldr r1, [r1, 0x10] - bl StringCopy -_080EF300: - pop {r0} - bx r0 - .pool - thumb_func_end CopyContestCategoryToStringVar - - thumb_func_start SetContestCategoryStringVarForInterview -@ void SetContestCategoryStringVarForInterview() -SetContestCategoryStringVarForInterview: @ 80EF30C - push {lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r1, r0 - ldrb r1, [r1, 0x13] - lsls r1, 29 - lsrs r1, 29 - movs r0, 0x1 - bl CopyContestCategoryToStringVar - pop {r0} - bx r0 - .pool - thumb_func_end SetContestCategoryStringVarForInterview - - thumb_func_start sub_80EF340 -sub_80EF340: @ 80EF340 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - bl sub_80EF370 - adds r3, r0, 0 - ldr r0, =gUnknown_0858D144 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - lsls r3, 24 - lsrs r3, 24 - adds r1, r5, 0 - movs r2, 0 - bl ConvertIntToDecimalStringN - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EF340 - - thumb_func_start sub_80EF370 -sub_80EF370: @ 80EF370 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0xA - bl __divsi3 - cmp r0, 0 - beq _080EF3FC - adds r0, r4, 0 - movs r1, 0x64 - bl __divsi3 - cmp r0, 0 - bne _080EF38E - movs r0, 0x2 - b _080EF406 -_080EF38E: - movs r1, 0xFA - lsls r1, 2 - adds r0, r4, 0 - bl __divsi3 - cmp r0, 0 - bne _080EF3A0 - movs r0, 0x3 - b _080EF406 -_080EF3A0: - ldr r1, =0x00002710 - adds r0, r4, 0 - bl __divsi3 - cmp r0, 0 - bne _080EF3B4 - movs r0, 0x4 - b _080EF406 - .pool -_080EF3B4: - ldr r1, =0x000186a0 - adds r0, r4, 0 - bl __divsi3 - cmp r0, 0 - bne _080EF3C8 - movs r0, 0x5 - b _080EF406 - .pool -_080EF3C8: - ldr r1, =0x000f4240 - adds r0, r4, 0 - bl __divsi3 - cmp r0, 0 - bne _080EF3DC - movs r0, 0x6 - b _080EF406 - .pool -_080EF3DC: - ldr r1, =0x00989680 - adds r0, r4, 0 - bl __divsi3 - cmp r0, 0 - bne _080EF3F0 - movs r0, 0x7 - b _080EF406 - .pool -_080EF3F0: - ldr r1, =0x05f5e100 - adds r0, r4, 0 - bl __divsi3 - cmp r0, 0 - beq _080EF404 -_080EF3FC: - movs r0, 0x1 - b _080EF406 - .pool -_080EF404: - movs r0, 0x8 -_080EF406: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80EF370 - - thumb_func_start sub_80EF40C -sub_80EF40C: @ 80EF40C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r1, 0 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r7, 0 - movs r5, 0 -_080EF41E: - lsls r4, r5, 1 - adds r0, r6, 0x6 - adds r1, r0, r4 - ldrh r0, [r1] - cmp r0, 0 - beq _080EF43E - bl itemid_get_market_price - lsls r0, 16 - lsrs r0, 16 - adds r1, r6, 0 - adds r1, 0xC - adds r1, r4 - ldrh r1, [r1] - muls r0, r1 - adds r7, r0 -_080EF43E: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _080EF41E - ldrb r0, [r6, 0x2] - cmp r0, 0x1 - bne _080EF458 - asrs r1, r7, 1 - mov r0, r8 - bl sub_80EF340 - b _080EF460 -_080EF458: - mov r0, r8 - adds r1, r7, 0 - bl sub_80EF340 -_080EF460: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80EF40C - - thumb_func_start sub_80EF46C -sub_80EF46C: @ 80EF46C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - lsls r1, 24 - lsrs r1, 24 - mov r9, r1 - ldr r5, =gSaveBlock1Ptr - ldr r0, [r5] - ldr r4, =0x000027cc - adds r0, r4 - mov r8, r0 - bl sub_80F0020 - adds r7, r0, 0 - movs r6, 0x5 -_080EF494: - lsls r0, r6, 3 - adds r0, r6 - lsls r0, 2 - mov r2, r8 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, r10 - bne _080EF4E4 - movs r3, 0xFF - adds r0, r7, 0 - ands r0, r3 - adds r2, r1, 0 - adds r2, 0x22 - ldrb r2, [r2] - cmp r0, r2 - bne _080EF4E4 - lsrs r0, r7, 8 - ands r0, r3 - adds r1, 0x23 - ldrb r1, [r1] - cmp r0, r1 - bne _080EF4E4 - mov r0, r9 - cmp r0, 0x1 - bne _080EF4D8 - ldr r0, [r5] - adds r0, r4 - adds r1, r6, 0 - bl sub_80EF910 - ldr r0, [r5] - adds r0, r4 - bl sub_80EF93C -_080EF4D8: - movs r0, 0x1 - b _080EF4F0 - .pool -_080EF4E4: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x17 - bls _080EF494 - movs r0, 0 -_080EF4F0: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80EF46C - - thumb_func_start sub_80EF500 -sub_80EF500: @ 80EF500 - push {r4-r7,lr} - movs r2, 0 -_080EF504: - adds r1, r2, 0x1 - lsls r0, r1, 24 - lsrs r5, r0, 24 - adds r7, r1, 0 - cmp r5, 0x2 - bhi _080EF53C - ldr r6, =gUnknown_02039F80 - lsls r0, r2, 2 - adds r4, r0, r6 -_080EF516: - lsls r0, r5, 2 - adds r3, r0, r6 - ldrh r0, [r4, 0x2] - ldrh r1, [r3, 0x2] - cmp r0, r1 - bcs _080EF532 - ldrh r1, [r4] - adds r2, r0, 0 - ldrh r0, [r3] - strh r0, [r4] - ldrh r0, [r3, 0x2] - strh r0, [r4, 0x2] - strh r1, [r3] - strh r2, [r3, 0x2] -_080EF532: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _080EF516 -_080EF53C: - lsls r0, r7, 24 - lsrs r2, r0, 24 - cmp r2, 0x1 - bls _080EF504 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EF500 - - thumb_func_start sub_80EF550 -sub_80EF550: @ 80EF550 - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r1, 0 - ldr r5, =gSaveBlock1Ptr - ldr r4, =0x000027cc -_080EF55C: - ldr r3, [r5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r2, r3, r0 - adds r0, r2, r4 - ldrb r0, [r0] - cmp r0, r6 - bne _080EF5A4 - ldr r6, =0x000027cd - adds r0, r2, r6 - ldrb r2, [r0] - cmp r2, 0x1 - bne _080EF590 - ldr r0, =gScriptResult - strh r2, [r0] - b _080EF5B2 - .pool -_080EF590: - adds r0, r3, r4 - bl sub_80EF910 - ldr r0, [r5] - adds r0, r4 - bl sub_80EF93C - bl sub_80EFA88 - b _080EF5B2 -_080EF5A4: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x4 - bls _080EF55C - bl sub_80EFA88 -_080EF5B2: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80EF550 - - thumb_func_start InterviewBefore -InterviewBefore: @ 80EF5B8 - push {lr} - ldr r1, =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - subs r0, 0x1 - cmp r0, 0xA - bhi _080EF646 - lsls r0, 2 - ldr r1, =_080EF5E0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080EF5E0: - .4byte _080EF60C - .4byte _080EF612 - .4byte _080EF618 - .4byte _080EF61E - .4byte _080EF624 - .4byte _080EF62A - .4byte _080EF630 - .4byte _080EF636 - .4byte _080EF63C - .4byte _080EF646 - .4byte _080EF642 -_080EF60C: - bl sub_80EF64C - b _080EF646 -_080EF612: - bl sub_80EF6C4 - b _080EF646 -_080EF618: - bl sub_80EF704 - b _080EF646 -_080EF61E: - bl sub_80EF79C - b _080EF646 -_080EF624: - bl sub_80EF7A8 - b _080EF646 -_080EF62A: - bl sub_80EF7B4 - b _080EF646 -_080EF630: - bl sub_80EF80C - b _080EF646 -_080EF636: - bl sub_80EF7F4 - b _080EF646 -_080EF63C: - bl sub_80EF800 - b _080EF646 -_080EF642: - bl sub_80EF84C -_080EF646: - pop {r0} - bx r0 - thumb_func_end InterviewBefore - - thumb_func_start sub_80EF64C -sub_80EF64C: @ 80EF64C - push {r4,lr} - movs r0, 0x1 - bl sub_80EF550 - ldr r0, =gScriptResult - ldrh r0, [r0] - cmp r0, 0 - bne _080EF6A0 - ldr r4, =gStringVar1 - bl sub_8139688 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0xB - movs r2, 0 - bl GetMonData - movs r1, 0xB - muls r1, r0 - ldr r0, =gSpeciesNames - adds r1, r0 - adds r0, r4, 0 - bl StringCopy - ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_030060BC - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, [r2] - adds r0, r1 - ldr r1, =0x000027d0 - adds r0, r1 - movs r1, 0x6 - bl sub_811F88C -_080EF6A0: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EF64C - - thumb_func_start sub_80EF6C4 -sub_80EF6C4: @ 80EF6C4 - push {lr} - movs r0, 0x2 - bl sub_80EF550 - ldr r0, =gScriptResult - ldrh r0, [r0] - cmp r0, 0 - bne _080EF6F0 - ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_030060BC - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, [r2] - adds r0, r1 - ldr r1, =0x000027d0 - adds r0, r1 - movs r1, 0x6 - bl sub_811F88C -_080EF6F0: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EF6C4 - - thumb_func_start sub_80EF704 -sub_80EF704: @ 80EF704 - push {r4-r6,lr} - movs r0, 0x3 - bl sub_80EF550 - ldr r0, =gScriptResult - ldrh r0, [r0] - cmp r0, 0 - bne _080EF774 - ldr r6, =gStringVar1 - bl sub_8139688 - lsls r0, 24 - lsrs r0, 24 - movs r5, 0x64 - muls r0, r5 - ldr r4, =gPlayerParty - adds r0, r4 - movs r1, 0xB - movs r2, 0 - bl GetMonData - movs r1, 0xB - muls r1, r0 - ldr r0, =gSpeciesNames - adds r1, r0 - adds r0, r6, 0 - bl StringCopy - bl sub_8139688 - lsls r0, 24 - lsrs r0, 24 - muls r0, r5 - adds r0, r4 - ldr r4, =gStringVar2 - movs r1, 0x2 - adds r2, r4, 0 - bl GetMonData - adds r0, r4, 0 - bl StringGetEnd10 - ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_030060BC - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, [r2] - adds r0, r1 - ldr r1, =0x000027e8 - adds r0, r1 - movs r1, 0x2 - bl sub_811F88C -_080EF774: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EF704 - - thumb_func_start sub_80EF79C -sub_80EF79C: @ 80EF79C - ldr r1, =gScriptResult - movs r0, 0x1 - strh r0, [r1] - bx lr - .pool - thumb_func_end sub_80EF79C - - thumb_func_start sub_80EF7A8 -sub_80EF7A8: @ 80EF7A8 - push {lr} - movs r0, 0x5 - bl sub_80EF550 - pop {r0} - bx r0 - thumb_func_end sub_80EF7A8 - - thumb_func_start sub_80EF7B4 -sub_80EF7B4: @ 80EF7B4 - push {lr} - movs r0, 0x6 - bl sub_80EF550 - ldr r0, =gScriptResult - ldrh r0, [r0] - cmp r0, 0 - bne _080EF7E0 - ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_030060BC - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, [r2] - adds r0, r1 - ldr r1, =0x000027d0 - adds r0, r1 - movs r1, 0x2 - bl sub_811F88C -_080EF7E0: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EF7B4 - - thumb_func_start sub_80EF7F4 -sub_80EF7F4: @ 80EF7F4 - push {lr} - movs r0, 0x8 - bl sub_80EF550 - pop {r0} - bx r0 - thumb_func_end sub_80EF7F4 - - thumb_func_start sub_80EF800 -sub_80EF800: @ 80EF800 - push {lr} - movs r0, 0x9 - bl sub_80EF550 - pop {r0} - bx r0 - thumb_func_end sub_80EF800 - - thumb_func_start sub_80EF80C -sub_80EF80C: @ 80EF80C - push {lr} - movs r0, 0x7 - bl sub_80EF550 - ldr r0, =gScriptResult - ldrh r0, [r0] - cmp r0, 0 - bne _080EF838 - ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_030060BC - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, [r2] - adds r0, r1 - ldr r1, =0x000027e4 - adds r0, r1 - movs r1, 0x1 - bl sub_811F88C -_080EF838: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EF80C - - thumb_func_start sub_80EF84C -sub_80EF84C: @ 80EF84C - push {lr} - movs r0, 0xB - bl sub_80EF550 - ldr r0, =gScriptResult - ldrh r0, [r0] - cmp r0, 0 - bne _080EF878 - ldr r2, =gSaveBlock1Ptr - ldr r0, =gUnknown_030060BC - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, [r2] - adds r0, r1 - ldr r1, =0x000027e0 - adds r0, r1 - movs r1, 0x1 - bl sub_811F88C -_080EF878: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EF84C - - thumb_func_start sub_80EF88C -sub_80EF88C: @ 80EF88C - push {r4-r6,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r1, r0 - ldr r0, =gPlayerParty - adds r5, r1, r0 - ldr r6, =gStringVar1 - adds r0, r5, 0 - movs r1, 0x2 - adds r2, r6, 0 - bl GetMonData - mov r4, sp - adds r0, r5, 0 - movs r1, 0x3 - mov r2, sp - bl GetMonData - strb r0, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _080EF8EC - adds r0, r5, 0 - movs r1, 0xB - movs r2, 0 - bl GetMonData - movs r1, 0xB - muls r0, r1 - ldr r1, =gSpeciesNames - adds r0, r1 - adds r1, r6, 0 - bl StringCompare - cmp r0, 0 - bne _080EF8EC - movs r0, 0 - b _080EF8EE - .pool -_080EF8EC: - movs r0, 0x1 -_080EF8EE: - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80EF88C - - thumb_func_start sub_80EF8F8 -sub_80EF8F8: @ 80EF8F8 - push {lr} - bl sub_8139688 - lsls r0, 24 - lsrs r0, 24 - bl sub_80EF88C - lsls r0, 24 - lsrs r0, 24 - pop {r1} - bx r1 - thumb_func_end sub_80EF8F8 - - thumb_func_start sub_80EF910 -sub_80EF910: @ 80EF910 - push {lr} - lsls r1, 24 - lsrs r1, 24 - lsls r2, r1, 3 - adds r2, r1 - lsls r2, 2 - adds r2, r0 - movs r0, 0 - strb r0, [r2] - strb r0, [r2, 0x1] - movs r1, 0 - adds r2, 0x2 - movs r3, 0 -_080EF92A: - adds r0, r2, r1 - strb r3, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x21 - bls _080EF92A - pop {r0} - bx r0 - thumb_func_end sub_80EF910 - - thumb_func_start sub_80EF93C -sub_80EF93C: @ 80EF93C - push {r4-r7,lr} - adds r4, r0, 0 - movs r5, 0 -_080EF942: - lsls r0, r5, 3 - adds r0, r5 - lsls r1, r0, 2 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0 - bne _080EF986 - adds r0, r5, 0x1 - b _080EF97E -_080EF954: - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r3, r0, r4 - ldrb r0, [r3] - cmp r0, 0 - beq _080EF97C - adds r1, r4 - adds r0, r3, 0 - ldm r0!, {r3,r6,r7} - stm r1!, {r3,r6,r7} - ldm r0!, {r3,r6,r7} - stm r1!, {r3,r6,r7} - ldm r0!, {r3,r6,r7} - stm r1!, {r3,r6,r7} - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_80EF910 - b _080EF986 -_080EF97C: - adds r0, r2, 0x1 -_080EF97E: - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x4 - bls _080EF954 -_080EF986: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _080EF942 - movs r5, 0x5 -_080EF992: - lsls r0, r5, 3 - adds r0, r5 - lsls r1, r0, 2 - adds r0, r1, r4 - ldrb r0, [r0] - adds r5, 0x1 - cmp r0, 0 - bne _080EF9D8 - lsls r0, r5, 24 - b _080EF9D2 -_080EF9A6: - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r3, r0, r4 - ldrb r0, [r3] - cmp r0, 0 - beq _080EF9CE - adds r1, r4 - adds r0, r3, 0 - ldm r0!, {r3,r6,r7} - stm r1!, {r3,r6,r7} - ldm r0!, {r3,r6,r7} - stm r1!, {r3,r6,r7} - ldm r0!, {r3,r6,r7} - stm r1!, {r3,r6,r7} - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_80EF910 - b _080EF9D8 -_080EF9CE: - adds r0, r2, 0x1 - lsls r0, 24 -_080EF9D2: - lsrs r2, r0, 24 - cmp r2, 0x17 - bls _080EF9A6 -_080EF9D8: - lsls r0, r5, 24 - lsrs r5, r0, 24 - cmp r5, 0x17 - bls _080EF992 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80EF93C - - thumb_func_start sub_80EF9E8 -sub_80EF9E8: @ 80EF9E8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r0, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, 16 - lsrs r0, 16 - bl sub_80EFA24 - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - ldr r0, =gUnknown_0858D144 - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - movs r1, 0xB - muls r1, r5 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80EF9E8 - - thumb_func_start sub_80EFA24 -sub_80EFA24: @ 80EFA24 - push {r4-r6,lr} - lsls r0, 16 - lsrs r5, r0, 16 - bl Random - lsls r0, 16 - lsrs r0, 16 - ldr r1, =0x0000019b - bl __umodsi3 - adds r0, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - adds r6, r4, 0 - b _080EFA62 - .pool -_080EFA48: - cmp r4, 0x1 - bne _080EFA54 - ldr r4, =0x0000019b - b _080EFA5A - .pool -_080EFA54: - subs r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 -_080EFA5A: - cmp r4, r6 - bne _080EFA62 - adds r4, r5, 0 - b _080EFA7E -_080EFA62: - adds r0, r4, 0 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - bl GetSetPokedexFlag - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - bne _080EFA48 - cmp r4, r5 - beq _080EFA48 -_080EFA7E: - adds r0, r4, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80EFA24 - - thumb_func_start sub_80EFA88 -sub_80EFA88: @ 80EFA88 - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x000027cc - adds r0, r1 - bl sub_80EFADC - ldr r1, =gUnknown_030060BC - strb r0, [r1] - ldr r2, =gSpecialVar_0x8006 - ldrb r1, [r1] - lsls r1, 24 - asrs r1, 24 - strh r1, [r2] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - bne _080EFACC - ldr r1, =gScriptResult - movs r0, 0x1 - b _080EFAD0 - .pool -_080EFACC: - ldr r1, =gScriptResult - movs r0, 0 -_080EFAD0: - strh r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EFA88 - - thumb_func_start sub_80EFADC -sub_80EFADC: @ 80EFADC - push {lr} - adds r2, r0, 0 - movs r1, 0 -_080EFAE2: - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080EFAF6 - lsls r0, r1, 24 - asrs r0, 24 - b _080EFB04 -_080EFAF6: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x4 - bls _080EFAE2 - movs r0, 0x1 - negs r0, r0 -_080EFB04: - pop {r1} - bx r1 - thumb_func_end sub_80EFADC - - thumb_func_start sub_80EFB08 -sub_80EFB08: @ 80EFB08 - push {lr} - adds r2, r0, 0 - movs r1, 0x5 -_080EFB0E: - lsls r0, r1, 24 - asrs r1, r0, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080EFB24 - adds r0, r1, 0 - b _080EFB34 -_080EFB24: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - asrs r0, 24 - cmp r0, 0x17 - ble _080EFB0E - movs r0, 0x1 - negs r0, r0 -_080EFB34: - pop {r1} - bx r1 - thumb_func_end sub_80EFB08 - - thumb_func_start sub_80EFB38 -sub_80EFB38: @ 80EFB38 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - bl Random - lsls r0, 16 - lsrs r0, 16 - cmp r0, r4 - bls _080EFB50 - movs r0, 0x1 - b _080EFB52 -_080EFB50: - movs r0, 0 -_080EFB52: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80EFB38 - - thumb_func_start sub_80EFB58 -sub_80EFB58: @ 80EFB58 - push {r4-r6,lr} - adds r4, r0, 0 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x6 - bl __umodsi3 - lsls r0, 24 - lsrs r2, r0, 24 - adds r5, r4, 0x4 - ldr r6, =0x0000ffff - b _080EFB7E - .pool -_080EFB78: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 -_080EFB7E: - cmp r2, 0x6 - bne _080EFB84 - movs r2, 0 -_080EFB84: - lsls r1, r2, 1 - adds r0, r5, r1 - ldrh r0, [r0] - adds r3, r4, 0x4 - cmp r0, r6 - beq _080EFB78 - ldr r0, =gStringVar3 - adds r1, r3, r1 - ldrh r1, [r1] - bl CopyEasyChatWord - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EFB58 - - thumb_func_start sub_80EFBA4 -sub_80EFBA4: @ 80EFBA4 - push {lr} - adds r2, r0, 0 - movs r3, 0 - movs r1, 0 - ldrb r0, [r2, 0x4] - cmp r0, 0xFF - beq _080EFBD0 - adds r2, 0x4 -_080EFBB4: - adds r0, r2, r1 - ldrb r0, [r0] - adds r0, r3, r0 - lsls r0, 16 - lsrs r3, r0, 16 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xA - bhi _080EFBD0 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080EFBB4 -_080EFBD0: - movs r0, 0x7 - ands r3, r0 - adds r0, r3, 0 - pop {r1} - bx r1 - thumb_func_end sub_80EFBA4 - - thumb_func_start sub_80EFBDC -sub_80EFBDC: @ 80EFBDC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x10 - ldr r4, [sp, 0x2C] - ldr r5, [sp, 0x30] - mov r8, r5 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r6, r2, 24 - lsls r3, 16 - lsrs r3, 16 - lsls r4, 16 - lsrs r4, 16 - movs r2, 0 - movs r7, 0xFF -_080EFC06: - mov r1, sp - adds r0, r1, r2 - ldrb r1, [r0] - orrs r1, r7 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x2 - bls _080EFC06 - cmp r3, 0 - bne _080EFC72 - mov r4, r8 - adds r4, 0xF - adds r0, r4, 0 - bl StringLength - lsls r0, 16 - lsrs r2, r0, 16 - cmp r6, 0 - bne _080EFC36 - mov r0, sp - adds r1, r4, r5 - b _080EFC40 -_080EFC36: - cmp r6, 0x1 - bne _080EFC46 - mov r0, sp - subs r1, r2, r5 - adds r1, r4, r1 -_080EFC40: - ldrb r1, [r1] - strb r1, [r0] - b _080EFC6C -_080EFC46: - cmp r6, 0x2 - bne _080EFC56 - mov r1, sp - adds r0, r4, r5 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r5, 0x1 - b _080EFC66 -_080EFC56: - mov r1, sp - subs r0, r2, 0x2 - subs r0, r5 - adds r0, r4, r0 - ldrb r0, [r0] - strb r0, [r1] - subs r0, r2, 0x1 - subs r0, r5 -_080EFC66: - adds r0, r4, r0 - ldrb r0, [r0] - strb r0, [r1, 0x1] -_080EFC6C: - mov r2, r8 - ldrb r1, [r2, 0x1E] - b _080EFCC8 -_080EFC72: - cmp r3, 0x1 - bne _080EFCD0 - mov r4, r8 - adds r4, 0x4 - adds r0, r4, 0 - bl StringLength - lsls r0, 16 - lsrs r2, r0, 16 - cmp r6, 0 - bne _080EFC8E - mov r0, sp - adds r1, r4, r5 - b _080EFC98 -_080EFC8E: - cmp r6, 0x1 - bne _080EFC9E - mov r0, sp - subs r1, r2, r5 - adds r1, r4, r1 -_080EFC98: - ldrb r1, [r1] - strb r1, [r0] - b _080EFCC4 -_080EFC9E: - cmp r6, 0x2 - bne _080EFCAE - mov r1, sp - adds r0, r4, r5 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r5, 0x1 - b _080EFCBE -_080EFCAE: - mov r1, sp - subs r0, r2, 0x2 - subs r0, r5 - adds r0, r4, r0 - ldrb r0, [r0] - strb r0, [r1] - subs r0, r2, 0x1 - subs r0, r5 -_080EFCBE: - adds r0, r4, r0 - ldrb r0, [r0] - strb r0, [r1, 0x1] -_080EFCC4: - mov r5, r8 - ldrb r1, [r5, 0x1F] -_080EFCC8: - mov r0, sp - bl ConvertInternationalString - b _080EFD30 -_080EFCD0: - movs r0, 0xB - muls r4, r0 - ldr r7, =gSpeciesNames - adds r0, r4, r7 - bl StringLength - lsls r0, 16 - lsrs r2, r0, 16 - cmp r6, 0 - bne _080EFCF0 - mov r0, sp - adds r1, r5, r4 - b _080EFCFA - .pool -_080EFCF0: - cmp r6, 0x1 - bne _080EFD02 - mov r0, sp - subs r1, r2, r5 - adds r1, r4 -_080EFCFA: - adds r1, r7 - ldrb r1, [r1] - strb r1, [r0] - b _080EFD30 -_080EFD02: - cmp r6, 0x2 - bne _080EFD16 - mov r1, sp - adds r0, r5, r4 - adds r0, r7 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r4, 0x1 - adds r0, r5, r0 - b _080EFD2A -_080EFD16: - mov r1, sp - subs r0, r2, 0x2 - subs r0, r5 - adds r0, r4 - adds r0, r7 - ldrb r0, [r0] - strb r0, [r1] - subs r0, r2, 0x1 - subs r0, r5 - adds r0, r4 -_080EFD2A: - adds r0, r7 - ldrb r0, [r0] - strb r0, [r1, 0x1] -_080EFD30: - ldr r0, =gUnknown_0858D144 - mov r2, r9 - lsls r1, r2, 2 - adds r1, r0 - ldr r0, [r1] - mov r1, sp - bl StringCopy - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EFBDC - - thumb_func_start sub_80EFD54 -sub_80EFD54: @ 80EFD54 - push {r4,lr} - movs r1, 0 - ldr r0, =gSaveBlock1Ptr - ldr r3, [r0] - ldr r0, =gSpecialVar_0x8004 - ldrh r2, [r0] - ldr r4, =0x000027cc -_080EFD62: - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r3, r0 - adds r0, r4 - ldrb r0, [r0] - cmp r0, r2 - bne _080EFD84 - movs r0, 0x1 - b _080EFD90 - .pool -_080EFD84: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x4 - bls _080EFD62 - movs r0, 0 -_080EFD90: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80EFD54 - - thumb_func_start sub_80EFD98 -sub_80EFD98: @ 80EFD98 - push {r4,lr} - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r4, =gStringVar1 - movs r1, 0x2 - adds r2, r4, 0 - bl GetMonData - ldr r0, =gStringVar3 - adds r1, r4, 0 - bl StringCompare - cmp r0, 0 - beq _080EFDD4 - bl sub_80ED320 - movs r0, 0x1 - b _080EFDD6 - .pool -_080EFDD4: - movs r0, 0 -_080EFDD6: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80EFD98 - - thumb_func_start sub_80EFDDC -sub_80EFDDC: @ 80EFDDC - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x8 - ldr r0, =gSpecialVar_0x8004 - mov r9, r0 - ldrh r0, [r0] - movs r1, 0x64 - mov r8, r1 - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - ldr r6, =gPlayerParty - adds r0, r6 - ldr r2, =gStringVar3 - movs r1, 0x2 - bl GetMonData - mov r1, r9 - ldrh r0, [r1] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - ldr r1, =gStringVar2 - mov r10, r1 - movs r1, 0x2 - mov r2, r10 - bl GetMonData - mov r1, r9 - ldrh r0, [r1] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - movs r1, 0xB - movs r2, 0 - bl GetMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - mov r1, r9 - ldrh r0, [r1] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - bl GetMonGender - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r1, r9 - ldrh r0, [r1] - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - adds r0, r6 - movs r1, 0 - movs r2, 0 - bl GetMonData - str r0, [sp] - ldr r0, =c2_080CC144 - str r0, [sp, 0x4] - movs r0, 0x3 - mov r1, r10 - adds r2, r5, 0 - adds r3, r4, 0 - bl DoNamingScreen - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EFDDC - - thumb_func_start c2_080CC144 -c2_080CC144: @ 80EFE98 - push {lr} - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r2, =gStringVar2 - movs r1, 0x2 - bl SetMonData - bl c2_exit_to_overworld_1_continue_scripts_restart_music - pop {r0} - bx r0 - .pool - thumb_func_end c2_080CC144 - - thumb_func_start sub_80EFEC4 -sub_80EFEC4: @ 80EFEC4 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x8 - ldr r0, =gSpecialVar_0x8012 - ldrb r0, [r0] - ldr r1, =gSpecialVar_0x8013 - ldrb r1, [r1] - bl GetBoxedMonPtr - adds r6, r0, 0 - ldr r2, =gStringVar3 - movs r1, 0x2 - bl GetBoxMonData - ldr r0, =gStringVar2 - mov r8, r0 - adds r0, r6, 0 - movs r1, 0x2 - mov r2, r8 - bl GetBoxMonData - adds r0, r6, 0 - movs r1, 0xB - movs r2, 0 - bl GetBoxMonData - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 16 - adds r0, r6, 0 - bl GetBoxMonGender - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r6, 0 - movs r1, 0 - movs r2, 0 - bl GetBoxMonData - str r0, [sp] - ldr r0, =sub_80EFF48 - str r0, [sp, 0x4] - movs r0, 0x3 - mov r1, r8 - adds r2, r5, 0 - adds r3, r4, 0 - bl DoNamingScreen - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EFEC4 - - thumb_func_start sub_80EFF48 -sub_80EFF48: @ 80EFF48 - push {lr} - ldr r0, =gSpecialVar_0x8012 - ldrb r0, [r0] - ldr r1, =gSpecialVar_0x8013 - ldrb r1, [r1] - ldr r2, =gStringVar2 - bl SetBoxMonNickFromAnyBox - bl c2_exit_to_overworld_1_continue_scripts_restart_music - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EFF48 - - thumb_func_start sub_80EFF6C -sub_80EFF6C: @ 80EFF6C - push {r4,lr} - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - ldr r4, =gStringVar1 - movs r1, 0x2 - adds r2, r4, 0 - bl GetMonData - adds r0, r4, 0 - bl StringGetEnd10 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EFF6C - - thumb_func_start sub_80EFF9C -sub_80EFF9C: @ 80EFF9C - push {r4,lr} - bl sub_80F0020 - adds r4, r0, 0 - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - movs r0, 0x64 - muls r0, r1 - ldr r1, =gPlayerParty - adds r0, r1 - movs r1, 0x1 - movs r2, 0 - bl GetMonData - cmp r4, r0 - bne _080EFFD0 - ldr r1, =gScriptResult - movs r0, 0 - b _080EFFD4 - .pool -_080EFFD0: - ldr r1, =gScriptResult - movs r0, 0x1 -_080EFFD4: - strh r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80EFF9C - - thumb_func_start sub_80EFFE0 -sub_80EFFE0: @ 80EFFE0 - push {lr} - lsls r0, 24 - lsrs r1, r0, 24 - adds r2, r1, 0 - cmp r1, 0 - beq _080F0016 - subs r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bhi _080EFFFA - movs r0, 0x2 - b _080F001C -_080EFFFA: - adds r0, r1, 0 - subs r0, 0x15 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bhi _080F000A - movs r0, 0x3 - b _080F001C -_080F000A: - adds r0, r2, 0 - subs r0, 0x29 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x13 - bls _080F001A -_080F0016: - movs r0, 0 - b _080F001C -_080F001A: - movs r0, 0x4 -_080F001C: - pop {r1} - bx r1 - thumb_func_end sub_80EFFE0 - - thumb_func_start sub_80F0020 -sub_80F0020: @ 80F0020 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldrb r0, [r2, 0xD] - lsls r0, 24 - ldrb r1, [r2, 0xC] - lsls r1, 16 - orrs r0, r1 - ldrb r1, [r2, 0xB] - lsls r1, 8 - orrs r0, r1 - ldrb r1, [r2, 0xA] - orrs r0, r1 - bx lr - .pool - thumb_func_end sub_80F0020 - - thumb_func_start CheckForBigMovieOrEmergencyNewsOnTV -CheckForBigMovieOrEmergencyNewsOnTV: @ 80F0040 - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - movs r0, 0x4 - ldrsb r0, [r1, r0] - cmp r0, 0x1 - bne _080F0060 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _080F006C - movs r0, 0x5 - ldrsb r0, [r1, r0] - cmp r0, 0 - beq _080F0074 -_080F0060: - movs r0, 0 - b _080F009E - .pool -_080F006C: - movs r0, 0x5 - ldrsb r0, [r1, r0] - cmp r0, 0x2 - bne _080F0060 -_080F0074: - ldr r0, =0x000008bd - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080F0092 - movs r0, 0x89 - lsls r0, 4 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080F009C -_080F0092: - movs r0, 0x1 - b _080F009E - .pool -_080F009C: - movs r0, 0x2 -_080F009E: - pop {r1} - bx r1 - thumb_func_end CheckForBigMovieOrEmergencyNewsOnTV - - thumb_func_start GetMomOrDadStringForTVMessage -GetMomOrDadStringForTVMessage: @ 80F00A4 - push {r4,lr} - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - movs r0, 0x4 - ldrsb r0, [r1, r0] - cmp r0, 0x1 - bne _080F0104 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _080F00EC - movs r0, 0x5 - ldrsb r0, [r1, r0] - cmp r0, 0 - bne _080F0104 - ldr r0, =gStringVar1 - ldr r1, =gText_Mom - bl StringCopy - ldr r0, =0x00004003 - movs r1, 0x1 - bl VarSet - b _080F0104 - .pool -_080F00EC: - movs r0, 0x5 - ldrsb r0, [r1, r0] - cmp r0, 0x2 - bne _080F0104 - ldr r0, =gStringVar1 - ldr r1, =gText_Mom - bl StringCopy - ldr r0, =0x00004003 - movs r1, 0x1 - bl VarSet -_080F0104: - ldr r4, =0x00004003 - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - beq _080F0142 - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - beq _080F0158 - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - bls _080F016C - adds r0, r4, 0 - bl VarGet - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080F0158 -_080F0142: - ldr r0, =gStringVar1 - ldr r1, =gText_Mom - bl StringCopy - b _080F01A8 - .pool -_080F0158: - ldr r0, =gStringVar1 - ldr r1, =gText_Dad - bl StringCopy - b _080F01A8 - .pool -_080F016C: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080F0198 - ldr r0, =gStringVar1 - ldr r1, =gText_Mom - bl StringCopy - adds r0, r4, 0 - movs r1, 0x1 - bl VarSet - b _080F01A8 - .pool -_080F0198: - ldr r0, =gStringVar1 - ldr r1, =gText_Dad - bl StringCopy - adds r0, r4, 0 - movs r1, 0x2 - bl VarSet -_080F01A8: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end GetMomOrDadStringForTVMessage - - thumb_func_start sub_80F01B8 -sub_80F01B8: @ 80F01B8 - push {lr} - ldr r0, =0x000040bc - movs r1, 0 - bl VarSet - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldrb r1, [r0, 0x5] - ldrb r2, [r0, 0x4] - movs r0, 0x5 - bl RemoveFieldObjectByLocalIdAndMap - ldr r0, =0x00000396 - bl FlagSet - pop {r0} - bx r0 - .pool - thumb_func_end sub_80F01B8 - - thumb_func_start sub_80F01E8 -sub_80F01E8: @ 80F01E8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - adds r5, r1, 0 - lsls r2, 24 - lsrs r6, r2, 24 - movs r0, 0xE1 - lsls r0, 4 - bl Alloc - mov r8, r0 - cmp r0, 0 - bne _080F0206 - b _080F0344 -_080F0206: - movs r4, 0 -_080F0208: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 5 - adds r0, r4 - lsls r0, 2 - add r0, r8 - adds r1, r4, 0 - muls r1, r5 - adds r1, r7, r1 - movs r2, 0xE1 - lsls r2, 2 - bl memcpy - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080F0208 - mov r5, r8 - movs r4, 0 - ldr r7, =gLinkPlayers - b _080F0276 - .pool -_080F0238: - lsls r0, r4, 3 - subs r2, r0, r4 - lsls r0, r2, 2 - adds r3, r0, r7 - ldrb r1, [r3] - subs r0, r1, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _080F025A - lsls r0, r2, 5 - adds r0, r4 - lsls r0, 2 - adds r0, r5, r0 - bl sub_80F1254 - b _080F0270 -_080F025A: - cmp r1, 0x3 - bne _080F0270 - ldrh r0, [r3, 0x1A] - cmp r0, 0x1 - bne _080F0270 - lsls r0, r2, 5 - adds r0, r4 - lsls r0, 2 - adds r0, r5, r0 - bl sub_80F12A4 -_080F0270: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_080F0276: - bl sub_8009FCC - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bcc _080F0238 - cmp r6, 0x1 - beq _080F02C4 - cmp r6, 0x1 - bgt _080F0290 - cmp r6, 0 - beq _080F029A - b _080F031E -_080F0290: - cmp r6, 0x2 - beq _080F02DC - cmp r6, 0x3 - beq _080F0304 - b _080F031E -_080F029A: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x000027cc - adds r0, r1 - movs r2, 0xE1 - lsls r2, 2 - adds r1, r5, r2 - movs r3, 0xE1 - lsls r3, 3 - adds r2, r5, r3 - ldr r4, =0x00000a8c - adds r3, r5, r4 - bl sub_80F0358 - b _080F031E - .pool -_080F02C4: - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, =0x000027cc - adds r1, r0 - movs r3, 0xE1 - lsls r3, 3 - adds r2, r5, r3 - b _080F02EA - .pool -_080F02DC: - movs r0, 0xE1 - lsls r0, 2 - adds r1, r5, r0 - ldr r0, =gSaveBlock1Ptr - ldr r2, [r0] - ldr r3, =0x000027cc - adds r2, r3 -_080F02EA: - ldr r4, =0x00000a8c - adds r3, r5, r4 - adds r0, r5, 0 - bl sub_80F0358 - b _080F031E - .pool -_080F0304: - movs r0, 0xE1 - lsls r0, 2 - adds r1, r5, r0 - movs r3, 0xE1 - lsls r3, 3 - adds r2, r5, r3 - ldr r0, =gSaveBlock1Ptr - ldr r3, [r0] - ldr r4, =0x000027cc - adds r3, r4 - adds r0, r5, 0 - bl sub_80F0358 -_080F031E: - ldr r5, =gSaveBlock1Ptr - ldr r0, [r5] - ldr r4, =0x000027cc - adds r0, r4 - bl sub_80EF93C - bl sub_80F0C04 - ldr r0, [r5] - adds r0, r4 - bl sub_80EF93C - bl sub_80F0708 - bl sub_80F0B64 - mov r0, r8 - bl Free -_080F0344: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80F01E8 - - thumb_func_start sub_80F0358 -sub_80F0358: @ 80F0358 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - str r0, [sp, 0x10] - str r1, [sp, 0x14] - str r2, [sp, 0x18] - str r3, [sp, 0x1C] - add r0, sp, 0x10 - str r0, [sp] - add r0, sp, 0x14 - str r0, [sp, 0x4] - add r0, sp, 0x18 - str r0, [sp, 0x8] - add r0, sp, 0x1C - str r0, [sp, 0xC] - bl sub_8009FCC - ldr r1, =gUnknown_03001174 - strb r0, [r1] -_080F0384: - movs r6, 0 - ldr r0, =gUnknown_03001174 - ldrb r1, [r0] - cmp r6, r1 - bcs _080F0384 - mov r10, r0 -_080F0390: - cmp r6, 0 - bne _080F0398 - ldr r2, =gUnknown_0203A02C - strb r6, [r2] -_080F0398: - lsls r4, r6, 2 - mov r3, sp - adds r0, r3, r4 - ldr r0, [r0] - ldr r0, [r0] - bl sub_80F06D0 - ldr r1, =gUnknown_03001176 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - adds r7, r4, 0 - cmp r0, r1 - bne _080F03E0 - ldr r1, =gUnknown_0203A02C - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - mov r2, r10 - ldrb r2, [r2] - cmp r0, r2 - beq _080F048C - adds r6, 0x1 - mov r9, r6 - b _080F0470 - .pool -_080F03E0: - movs r5, 0 - mov r3, r10 - ldrb r0, [r3] - subs r0, 0x1 - adds r2, r6, 0x1 - mov r9, r2 - cmp r5, r0 - bge _080F0456 - ldr r3, =gUnknown_03001174 - mov r8, r3 -_080F03F4: - adds r0, r6, r5 - adds r4, r0, 0x1 - mov r0, r8 - ldrb r1, [r0] - adds r0, r4, 0 - bl __modsi3 - lsls r0, 2 - add r0, sp - ldr r0, [r0] - ldr r0, [r0] - bl sub_80EFB08 - ldr r1, =gUnknown_030060BC - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080F0446 - mov r2, r8 - ldrb r1, [r2] - adds r0, r4, 0 - bl __modsi3 - adds r2, r0, 0 - lsls r0, r2, 2 - add r0, sp - ldr r0, [r0] - mov r3, sp - adds r1, r3, r7 - ldr r1, [r1] - lsls r2, 24 - lsrs r2, 24 - bl sub_80F049C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080F0456 -_080F0446: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - mov r1, r8 - ldrb r0, [r1] - subs r0, 0x1 - cmp r5, r0 - blt _080F03F4 -_080F0456: - mov r2, r10 - ldrb r0, [r2] - subs r0, 0x1 - cmp r5, r0 - bne _080F0470 - mov r3, sp - adds r0, r3, r7 - ldr r0, [r0] - ldr r0, [r0] - ldr r1, =gUnknown_03001176 - ldrb r1, [r1] - bl sub_80EF910 -_080F0470: - mov r1, r9 - lsls r0, r1, 24 - lsrs r6, r0, 24 - mov r2, r10 - ldrb r2, [r2] - cmp r6, r2 - bcc _080F0390 - b _080F0384 - .pool -_080F048C: - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80F0358 - - thumb_func_start sub_80F049C -sub_80F049C: @ 80F049C - push {r4-r7,lr} - sub sp, 0x4 - lsls r2, 24 - lsrs r7, r2, 24 - ldr r4, [r0] - ldr r6, [r1] - movs r5, 0 - ldr r2, =gUnknown_03001176 - movs r1, 0 - ldrsb r1, [r2, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - ldrb r0, [r0] - str r2, [sp] - bl sub_80EFFE0 - lsls r0, 24 - lsrs r0, 24 - adds r1, r0, 0 - ldr r2, [sp] - cmp r0, 0x3 - beq _080F050C - cmp r0, 0x3 - bgt _080F04DC - cmp r0, 0x2 - beq _080F04E2 - b _080F055A - .pool -_080F04DC: - cmp r1, 0x4 - beq _080F0534 - b _080F055A -_080F04E2: - ldr r0, =gUnknown_030060BC - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4, r0 - ldrb r2, [r2] - lsls r2, 24 - asrs r2, 24 - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - adds r1, r6, r1 - adds r2, r7, 0 - bl sub_80F0580 - b _080F0556 - .pool -_080F050C: - ldr r0, =gUnknown_030060BC - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4, r0 - ldrb r2, [r2] - lsls r2, 24 - asrs r2, 24 - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - adds r1, r6, r1 - adds r2, r7, 0 - bl sub_80F05E8 - b _080F0556 - .pool -_080F0534: - ldr r0, =gUnknown_030060BC - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4, r0 - ldrb r2, [r2] - lsls r2, 24 - asrs r2, 24 - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - adds r1, r6, r1 - adds r2, r7, 0 - bl sub_80F0668 -_080F0556: - lsls r0, 24 - lsrs r5, r0, 24 -_080F055A: - cmp r5, 0x1 - beq _080F0568 - movs r0, 0 - b _080F0574 - .pool -_080F0568: - ldr r0, =gUnknown_03001176 - ldrb r1, [r0] - adds r0, r6, 0 - bl sub_80EF910 - movs r0, 0x1 -_080F0574: - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80F049C - - thumb_func_start sub_80F0580 -sub_80F0580: @ 80F0580 - push {r4-r6,lr} - adds r6, r0, 0 - adds r4, r1, 0 - lsls r0, r2, 24 - lsrs r0, 24 - bl sub_800A2A4 - adds r5, r0, 0 - movs r2, 0xFF - ands r0, r2 - adds r1, r4, 0 - adds r1, 0x22 - ldrb r1, [r1] - cmp r0, r1 - bne _080F05B0 - lsrs r0, r5, 8 - ands r0, r2 - adds r1, r4, 0 - adds r1, 0x23 - ldrb r1, [r1] - cmp r0, r1 - bne _080F05B0 - movs r0, 0 - b _080F05E0 -_080F05B0: - adds r1, r4, 0 - adds r1, 0x20 - ldrb r0, [r1] - adds r2, r4, 0 - adds r2, 0x22 - strb r0, [r2] - adds r3, r4, 0 - adds r3, 0x21 - ldrb r0, [r3] - adds r2, 0x1 - strb r0, [r2] - strb r5, [r1] - lsrs r0, r5, 8 - strb r0, [r3] - adds r1, r6, 0 - adds r0, r4, 0 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - movs r0, 0x1 - strb r0, [r6, 0x1] -_080F05E0: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80F0580 - - thumb_func_start sub_80F05E8 -sub_80F05E8: @ 80F05E8 - push {r4-r6,lr} - adds r6, r0, 0 - adds r4, r1, 0 - lsls r0, r2, 24 - lsrs r0, 24 - bl sub_800A2A4 - adds r2, r0, 0 - movs r3, 0xFF - ands r0, r3 - adds r1, r4, 0 - adds r1, 0x20 - ldrb r1, [r1] - cmp r0, r1 - bne _080F0614 - lsrs r0, r2, 8 - ands r0, r3 - adds r1, r4, 0 - adds r1, 0x21 - ldrb r1, [r1] - cmp r0, r1 - beq _080F0634 -_080F0614: - movs r3, 0xFF - adds r0, r2, 0 - ands r0, r3 - adds r1, r4, 0 - adds r1, 0x22 - lsrs r5, r2, 8 - ldrb r1, [r1] - cmp r0, r1 - bne _080F0638 - adds r0, r5, 0 - ands r0, r3 - adds r1, r4, 0 - adds r1, 0x23 - ldrb r1, [r1] - cmp r0, r1 - bne _080F0638 -_080F0634: - movs r0, 0 - b _080F0660 -_080F0638: - ldrb r1, [r4, 0x1E] - adds r0, r4, 0 - adds r0, 0x20 - strb r1, [r0] - ldrb r0, [r4, 0x1F] - adds r1, r4, 0 - adds r1, 0x21 - strb r0, [r1] - strb r2, [r4, 0x1E] - strb r5, [r4, 0x1F] - adds r1, r6, 0 - adds r0, r4, 0 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - movs r0, 0x1 - strb r0, [r6, 0x1] -_080F0660: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80F05E8 - - thumb_func_start sub_80F0668 -sub_80F0668: @ 80F0668 - push {r4-r6,lr} - adds r6, r0, 0 - adds r4, r1, 0 - lsls r0, r2, 24 - lsrs r0, 24 - bl sub_800A2A4 - adds r5, r0, 0 - movs r2, 0xFF - ands r0, r2 - adds r1, r4, 0 - adds r1, 0x22 - ldrb r1, [r1] - cmp r0, r1 - bne _080F0698 - lsrs r0, r5, 8 - ands r0, r2 - adds r1, r4, 0 - adds r1, 0x23 - ldrb r1, [r1] - cmp r0, r1 - bne _080F0698 - movs r0, 0 - b _080F06CA -_080F0698: - adds r1, r4, 0 - adds r1, 0x20 - ldrb r0, [r1] - adds r2, r4, 0 - adds r2, 0x22 - strb r0, [r2] - adds r3, r4, 0 - adds r3, 0x21 - ldrb r0, [r3] - adds r2, 0x1 - strb r0, [r2] - strb r5, [r1] - lsrs r0, r5, 8 - strb r0, [r3] - adds r1, r6, 0 - adds r0, r4, 0 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - movs r0, 0x1 - strb r0, [r6, 0x1] - strh r0, [r6, 0x16] -_080F06CA: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80F0668 - - thumb_func_start sub_80F06D0 -sub_80F06D0: @ 80F06D0 - push {lr} - adds r3, r0, 0 - movs r2, 0 -_080F06D6: - lsls r0, r2, 3 - adds r0, r2 - lsls r0, 2 - adds r1, r0, r3 - ldrb r0, [r1, 0x1] - cmp r0, 0 - bne _080F06F6 - ldrb r0, [r1] - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3B - bhi _080F06F6 - lsls r0, r2, 24 - asrs r0, 24 - b _080F0704 -_080F06F6: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x17 - bls _080F06D6 - movs r0, 0x1 - negs r0, r0 -_080F0704: - pop {r1} - bx r1 - thumb_func_end sub_80F06D0 - - thumb_func_start sub_80F0708 -sub_80F0708: @ 80F0708 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - movs r0, 0 - mov r9, r0 -_080F0716: - ldr r3, =gSaveBlock1Ptr - ldr r1, [r3] - mov r4, r9 - lsls r2, r4, 3 - adds r0, r2, r4 - lsls r0, 2 - adds r1, r0 - ldr r0, =0x000027cc - adds r1, r0 - ldrb r0, [r1] - adds r7, r2, 0 - cmp r0, 0x29 - bls _080F0732 - b _080F0AD8 -_080F0732: - lsls r0, 2 - ldr r1, =_080F0748 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F0748: - .4byte _080F0AE2 - .4byte _080F0848 - .4byte _080F0AE2 - .4byte _080F0860 - .4byte _080F0878 - .4byte _080F0890 - .4byte _080F08BC - .4byte _080F08D4 - .4byte _080F07F0 - .4byte _080F0AE2 - .4byte _080F081C - .4byte _080F0AE2 - .4byte _080F0AE2 - .4byte _080F0AD8 - .4byte _080F0AD8 - .4byte _080F0AD8 - .4byte _080F0AD8 - .4byte _080F0AD8 - .4byte _080F0AD8 - .4byte _080F0AD8 - .4byte _080F0AD8 - .4byte _080F0900 - .4byte _080F0AE2 - .4byte _080F0918 - .4byte _080F0944 - .4byte _080F095C - .4byte _080F0AE2 - .4byte _080F0AE2 - .4byte _080F0AE2 - .4byte _080F0AE2 - .4byte _080F0974 - .4byte _080F09A0 - .4byte _080F0AE2 - .4byte _080F09C0 - .4byte _080F0AE2 - .4byte _080F0AE2 - .4byte _080F09F4 - .4byte _080F0AE2 - .4byte _080F0AE2 - .4byte _080F0AE2 - .4byte _080F0AD8 - .4byte _080F0AE2 -_080F07F0: - ldr r0, [r3] - mov r1, r9 - adds r4, r7, r1 - lsls r4, 2 - adds r0, r4, r0 - ldr r6, =0x000027cc - adds r0, r6 - ldrh r0, [r0, 0x12] - lsls r5, r1, 24 - lsrs r5, 24 - adds r1, r5, 0 - str r3, [sp, 0x4] - bl sub_80F0B24 - ldr r3, [sp, 0x4] - ldr r0, [r3] - adds r4, r0 - adds r4, r6 - ldrh r0, [r4, 0x2] - b _080F09E6 - .pool -_080F081C: - ldr r0, [r3] - mov r2, r9 - adds r4, r7, r2 - lsls r4, 2 - adds r0, r4, r0 - ldr r6, =0x000027cc - adds r0, r6 - ldrh r0, [r0, 0x16] - lsls r5, r2, 24 - lsrs r5, 24 - adds r1, r5, 0 - str r3, [sp, 0x4] - bl sub_80F0B24 - ldr r3, [sp, 0x4] - ldr r0, [r3] - adds r4, r0 - adds r4, r6 - ldrh r0, [r4, 0x2] - b _080F09E6 - .pool -_080F0848: - ldr r0, [r3] - mov r4, r9 - adds r1, r7, r4 - lsls r1, 2 - adds r1, r0 - ldr r0, =0x000027cc - adds r1, r0 - ldrh r0, [r1, 0x2] - b _080F09B0 - .pool -_080F0860: - ldr r0, [r3] - mov r2, r9 - adds r1, r7, r2 - lsls r1, 2 - adds r1, r0 - ldr r4, =0x000027cc - adds r1, r4 - ldrh r0, [r1, 0x2] - lsls r1, r2, 24 - b _080F09B2 - .pool -_080F0878: - ldr r0, [r3] - mov r2, r9 - adds r1, r7, r2 - lsls r1, 2 - adds r1, r0 - ldr r4, =0x000027cc - adds r1, r4 - ldrh r0, [r1, 0x6] - lsls r1, r2, 24 - b _080F09B2 - .pool -_080F0890: - ldr r0, [r3] - mov r1, r9 - adds r4, r7, r1 - lsls r4, 2 - adds r0, r4, r0 - ldr r6, =0x000027cc - adds r0, r6 - ldrh r0, [r0, 0x2] - lsls r5, r1, 24 - lsrs r5, 24 - adds r1, r5, 0 - str r3, [sp, 0x4] - bl sub_80F0B24 - ldr r3, [sp, 0x4] - ldr r0, [r3] - adds r4, r0 - adds r4, r6 - ldrh r0, [r4, 0x1C] - b _080F09E6 - .pool -_080F08BC: - ldr r0, [r3] - mov r2, r9 - adds r1, r7, r2 - lsls r1, 2 - adds r1, r0 - ldr r4, =0x000027cc - adds r1, r4 - ldrh r0, [r1, 0x2] - lsls r1, r2, 24 - b _080F09B2 - .pool -_080F08D4: - ldr r0, [r3] - mov r1, r9 - adds r4, r7, r1 - lsls r4, 2 - adds r0, r4, r0 - ldr r6, =0x000027cc - adds r0, r6 - ldrh r0, [r0, 0xA] - lsls r5, r1, 24 - lsrs r5, 24 - adds r1, r5, 0 - str r3, [sp, 0x4] - bl sub_80F0B24 - ldr r3, [sp, 0x4] - ldr r0, [r3] - adds r4, r0 - adds r4, r6 - ldrh r0, [r4, 0x14] - b _080F09E6 - .pool -_080F0900: - ldr r0, [r3] - mov r2, r9 - adds r1, r7, r2 - lsls r1, 2 - adds r1, r0 - ldr r4, =0x000027cc - adds r1, r4 - ldrh r0, [r1, 0x10] - lsls r1, r2, 24 - b _080F09B2 - .pool -_080F0918: - ldr r0, [r3] - mov r1, r9 - adds r4, r7, r1 - lsls r4, 2 - adds r0, r4, r0 - ldr r6, =0x000027cc - adds r0, r6 - ldrh r0, [r0, 0xC] - lsls r5, r1, 24 - lsrs r5, 24 - adds r1, r5, 0 - str r3, [sp, 0x4] - bl sub_80F0B24 - ldr r3, [sp, 0x4] - ldr r0, [r3] - adds r4, r0 - adds r4, r6 - ldrh r0, [r4, 0xE] - b _080F09E6 - .pool -_080F0944: - ldr r0, [r3] - mov r2, r9 - adds r1, r7, r2 - lsls r1, 2 - adds r1, r0 - ldr r4, =0x000027cc - adds r1, r4 - ldrh r0, [r1, 0x4] - lsls r1, r2, 24 - b _080F09B2 - .pool -_080F095C: - ldr r0, [r3] - mov r1, r9 - adds r4, r7, r1 - lsls r4, 2 - adds r0, r4, r0 - ldr r6, =0x000027cc - adds r0, r6 - ldrh r0, [r0, 0x8] - b _080F09D0 - .pool -_080F0974: - ldr r0, [r3] - mov r2, r9 - adds r4, r7, r2 - lsls r4, 2 - adds r0, r4, r0 - ldr r6, =0x000027cc - adds r0, r6 - ldrh r0, [r0, 0x2] - lsls r5, r2, 24 - lsrs r5, 24 - adds r1, r5, 0 - str r3, [sp, 0x4] - bl sub_80F0B24 - ldr r3, [sp, 0x4] - ldr r0, [r3] - adds r4, r0 - adds r4, r6 - ldrh r0, [r4, 0xA] - b _080F09E6 - .pool -_080F09A0: - ldr r0, [r3] - mov r4, r9 - adds r1, r7, r4 - lsls r1, 2 - adds r1, r0 - ldr r0, =0x000027cc - adds r1, r0 - ldrh r0, [r1, 0x8] -_080F09B0: - lsls r1, r4, 24 -_080F09B2: - lsrs r1, 24 - bl sub_80F0B24 - b _080F0AE2 - .pool -_080F09C0: - ldr r0, [r3] - mov r1, r9 - adds r4, r7, r1 - lsls r4, 2 - adds r0, r4, r0 - ldr r6, =0x000027cc - adds r0, r6 - ldrh r0, [r0, 0x6] -_080F09D0: - lsls r5, r1, 24 - lsrs r5, 24 - adds r1, r5, 0 - str r3, [sp, 0x4] - bl sub_80F0B24 - ldr r3, [sp, 0x4] - ldr r0, [r3] - adds r4, r0 - adds r4, r6 - ldrh r0, [r4, 0x4] -_080F09E6: - adds r1, r5, 0 - bl sub_80F0B24 - b _080F0AE2 - .pool -_080F09F4: - ldr r0, [r3] - mov r2, r9 - adds r4, r7, r2 - lsls r4, 2 - adds r0, r4, r0 - ldr r5, =0x000027cc - adds r0, r5 - ldrh r0, [r0, 0x4] - lsls r2, 24 - mov r8, r2 - lsrs r6, r2, 24 - adds r1, r6, 0 - str r3, [sp, 0x4] - bl sub_80F0B24 - ldr r3, [sp, 0x4] - ldr r0, [r3] - adds r0, r4, r0 - adds r0, r5 - ldrh r0, [r0, 0x6] - adds r1, r6, 0 - bl sub_80F0B24 - ldr r3, [sp, 0x4] - ldr r0, [r3] - adds r4, r0 - adds r4, r5 - ldrb r0, [r4, 0xD] - subs r0, 0x1 - mov r6, r8 - cmp r0, 0xC - bhi _080F0AE2 - lsls r0, 2 - ldr r1, =_080F0A48 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F0A48: - .4byte _080F0A7C - .4byte _080F0AA0 - .4byte _080F0AE2 - .4byte _080F0AE2 - .4byte _080F0A7C - .4byte _080F0A7C - .4byte _080F0A7C - .4byte _080F0A7C - .4byte _080F0A7C - .4byte _080F0A7C - .4byte _080F0A7C - .4byte _080F0A7C - .4byte _080F0A7C -_080F0A7C: - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - mov r4, r9 - adds r0, r7, r4 - lsls r0, 2 - adds r0, r1 - ldr r1, =0x000027cc - adds r0, r1 - ldrh r0, [r0, 0x8] - lsrs r1, r6, 24 - bl sub_80F0B24 - b _080F0AE2 - .pool -_080F0AA0: - ldr r2, =gSaveBlock1Ptr - ldr r0, [r2] - mov r1, r9 - adds r4, r7, r1 - lsls r4, 2 - adds r0, r4, r0 - ldr r5, =0x000027cc - adds r0, r5 - ldrh r0, [r0, 0x8] - lsrs r6, 24 - adds r1, r6, 0 - str r2, [sp] - bl sub_80F0B24 - ldr r2, [sp] - ldr r0, [r2] - adds r4, r0 - adds r4, r5 - ldrh r0, [r4, 0xA] - adds r1, r6, 0 - bl sub_80F0B24 - b _080F0AE2 - .pool -_080F0AD8: - mov r2, r9 - lsls r0, r2, 24 - lsrs r0, 24 - bl sub_80F0B00 -_080F0AE2: - mov r0, r9 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r9, r0 - cmp r0, 0x17 - bhi _080F0AF2 - b _080F0716 -_080F0AF2: - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80F0708 - - thumb_func_start sub_80F0B00 -sub_80F0B00: @ 80F0B00 - 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 - ldr r0, =0x000027cd - adds r2, r0 - movs r0, 0 - strb r0, [r2] - bx lr - .pool - thumb_func_end sub_80F0B00 - - thumb_func_start sub_80F0B24 -sub_80F0B24: @ 80F0B24 - push {r4,lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 24 - lsrs r4, r1, 24 - bl SpeciesToNationalPokedexNum - lsls r0, 16 - lsrs r0, 16 - movs r1, 0 - bl GetSetPokedexFlag - lsls r0, 24 - asrs r2, r0, 24 - cmp r2, 0 - bne _080F0B56 - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - adds r1, r0 - ldr r0, =0x000027cd - adds r1, r0 - strb r2, [r1] -_080F0B56: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80F0B24 - - thumb_func_start sub_80F0B64 -sub_80F0B64: @ 80F0B64 - push {r4-r6,lr} - ldr r0, =0x00000864 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080F0BA2 - movs r2, 0 - ldr r4, =0x000027cd - movs r3, 0 - ldr r5, =gSaveBlock1Ptr -_080F0B7C: - ldr r0, [r5] - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - adds r1, r0, r1 - ldr r6, =0x000027cc - adds r0, r1, r6 - ldrb r0, [r0] - cmp r0, 0x7 - beq _080F0B94 - cmp r0, 0x29 - bne _080F0B98 -_080F0B94: - adds r0, r1, r4 - strb r3, [r0] -_080F0B98: - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0x17 - bls _080F0B7C -_080F0BA2: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80F0B64 - - thumb_func_start sub_80F0BB8 -sub_80F0BB8: @ 80F0BB8 - push {r4-r6,lr} - movs r5, 0 - ldr r6, =gSaveBlock1Ptr -_080F0BBE: - ldr r1, [r6] - lsls r0, r5, 3 - adds r0, r5 - lsls r4, r0, 2 - adds r1, r4 - ldr r0, =0x000027cc - adds r1, r0 - ldrb r0, [r1] - bl sub_80EFFE0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _080F0BE6 - ldr r0, [r6] - adds r0, r4 - ldr r1, =0x000027cd - adds r0, r1 - movs r1, 0 - strb r1, [r0] -_080F0BE6: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x4 - bls _080F0BBE - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80F0BB8 - - thumb_func_start sub_80F0C04 -sub_80F0C04: @ 80F0C04 - push {r4,r5,lr} - movs r3, 0 - movs r2, 0x5 - ldr r0, =gSaveBlock1Ptr - ldr r4, [r0] - ldr r5, =0x000027cc -_080F0C10: - lsls r0, r2, 24 - asrs r1, r0, 24 - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4, r0 - adds r0, r5 - ldrb r0, [r0] - cmp r0, 0 - bne _080F0C2E - lsls r0, r3, 24 - movs r2, 0x80 - lsls r2, 17 - adds r0, r2 - lsrs r3, r0, 24 -_080F0C2E: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - asrs r0, 24 - cmp r0, 0x17 - ble _080F0C10 - movs r2, 0 - lsls r0, r3, 24 - asrs r0, 24 - movs r1, 0x5 - subs r0, r1, r0 - cmp r2, r0 - bge _080F0C6E - adds r5, r0, 0 -_080F0C4A: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x000027cc - adds r0, r1 - lsls r1, r2, 24 - asrs r4, r1, 24 - movs r2, 0xA0 - lsls r2, 19 - adds r1, r2 - lsrs r1, 24 - bl sub_80EF910 - adds r4, 0x1 - lsls r4, 24 - lsrs r2, r4, 24 - asrs r4, 24 - cmp r4, r5 - blt _080F0C4A -_080F0C6E: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80F0C04 - - thumb_func_start sub_80F0C7C -sub_80F0C7C: @ 80F0C7C - push {r4-r7,lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r7, r1, 0 - lsls r2, 24 - lsrs r6, r2, 24 - movs r0, 0x80 - lsls r0, 1 - bl Alloc - adds r5, r0, 0 - cmp r5, 0 - beq _080F0D4C - movs r4, 0 -_080F0C9A: - lsls r0, r4, 6 - adds r0, r5 - adds r1, r4, 0 - muls r1, r7 - add r1, r8 - movs r2, 0x40 - bl memcpy - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x3 - bls _080F0C9A - cmp r6, 0x1 - beq _080F0CF0 - cmp r6, 0x1 - bgt _080F0CC2 - cmp r6, 0 - beq _080F0CCC - b _080F0D3E -_080F0CC2: - cmp r6, 0x2 - beq _080F0D08 - cmp r6, 0x3 - beq _080F0D28 - b _080F0D3E -_080F0CCC: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00002b50 - adds r0, r1 - adds r1, r5, 0 - adds r1, 0x40 - adds r2, r5, 0 - adds r2, 0x80 - adds r3, r5, 0 - adds r3, 0xC0 - bl sub_80F0D60 - b _080F0D3E - .pool -_080F0CF0: - ldr r0, =gSaveBlock1Ptr - ldr r1, [r0] - ldr r0, =0x00002b50 - adds r1, r0 - adds r2, r5, 0 - adds r2, 0x80 - b _080F0D14 - .pool -_080F0D08: - adds r1, r5, 0 - adds r1, 0x40 - ldr r0, =gSaveBlock1Ptr - ldr r2, [r0] - ldr r0, =0x00002b50 - adds r2, r0 -_080F0D14: - adds r3, r5, 0 - adds r3, 0xC0 - adds r0, r5, 0 - bl sub_80F0D60 - b _080F0D3E - .pool -_080F0D28: - adds r1, r5, 0 - adds r1, 0x40 - adds r2, r5, 0 - adds r2, 0x80 - ldr r0, =gSaveBlock1Ptr - ldr r3, [r0] - ldr r0, =0x00002b50 - adds r3, r0 - adds r0, r5, 0 - bl sub_80F0D60 -_080F0D3E: - bl sub_80F0EEC - bl sub_80F0F24 - adds r0, r5, 0 - bl Free -_080F0D4C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80F0C7C - - thumb_func_start sub_80F0D60 -sub_80F0D60: @ 80F0D60 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x24 - str r0, [sp, 0x10] - str r1, [sp, 0x14] - str r2, [sp, 0x18] - str r3, [sp, 0x1C] - add r0, sp, 0x10 - str r0, [sp] - add r0, sp, 0x14 - str r0, [sp, 0x4] - add r0, sp, 0x18 - str r0, [sp, 0x8] - add r0, sp, 0x1C - str r0, [sp, 0xC] - bl sub_8009FCC - ldr r1, =gUnknown_03001175 - strb r0, [r1] - movs r0, 0 - mov r10, r0 -_080F0D90: - movs r7, 0 - mov r1, r10 - adds r1, 0x1 - str r1, [sp, 0x20] - b _080F0E28 - .pool -_080F0DA0: - lsls r4, r7, 2 - mov r1, sp - adds r0, r1, r4 - ldr r0, [r0] - ldr r0, [r0] - mov r1, r10 - bl sub_80F0ECC - ldr r1, =gUnknown_03001176 - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - mov r8, r4 - adds r1, r7, 0x1 - mov r9, r1 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080F0E22 - movs r5, 0 - ldr r1, =gUnknown_03001175 - ldrb r0, [r1] - subs r0, 0x1 - cmp r5, r0 - bge _080F0E22 - adds r6, r1, 0 -_080F0DD4: - adds r0, r7, r5 - adds r4, r0, 0x1 - ldrb r1, [r6] - adds r0, r4, 0 - bl __modsi3 - lsls r0, 2 - add r0, sp - ldr r0, [r0] - ldr r0, [r0] - bl sub_80EEE30 - ldr r1, =gUnknown_030060BC - strb r0, [r1] - lsls r0, 24 - asrs r0, 24 - movs r1, 0x1 - negs r1, r1 - cmp r0, r1 - beq _080F0E14 - ldrb r1, [r6] - adds r0, r4, 0 - bl __modsi3 - lsls r0, 2 - add r0, sp - ldr r0, [r0] - mov r1, sp - add r1, r8 - ldr r1, [r1] - bl sub_80F0E58 -_080F0E14: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldrb r0, [r6] - subs r0, 0x1 - cmp r5, r0 - blt _080F0DD4 -_080F0E22: - mov r1, r9 - lsls r0, r1, 24 - lsrs r7, r0, 24 -_080F0E28: - ldr r0, =gUnknown_03001175 - ldrb r0, [r0] - cmp r7, r0 - bcc _080F0DA0 - ldr r1, [sp, 0x20] - lsls r0, r1, 24 - lsrs r0, 24 - mov r10, r0 - cmp r0, 0xF - bls _080F0D90 - add sp, 0x24 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80F0D60 - - thumb_func_start sub_80F0E58 -sub_80F0E58: @ 80F0E58 - push {lr} - ldr r0, [r0] - ldr r1, [r1] - ldr r2, =gUnknown_03001176 - ldrb r2, [r2] - lsls r2, 24 - asrs r2, 24 - lsls r2, 2 - adds r1, r2 - ldr r2, =gUnknown_030060BC - ldrb r2, [r2] - lsls r2, 24 - asrs r2, 24 - bl sub_80F0E84 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80F0E58 - - thumb_func_start sub_80F0E84 -sub_80F0E84: @ 80F0E84 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r2, 24 - lsrs r6, r2, 24 - ldrb r3, [r5] - adds r0, r3, 0 - cmp r0, 0 - bne _080F0E9A -_080F0E96: - movs r0, 0 - b _080F0EC6 -_080F0E9A: - movs r1, 0 - adds r2, r3, 0 - adds r3, r0, 0 -_080F0EA0: - lsls r0, r1, 2 - adds r0, r4 - ldrb r0, [r0] - cmp r0, r3 - beq _080F0E96 - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0xF - bls _080F0EA0 - lsls r0, r6, 24 - asrs r0, 22 - adds r0, r4 - strb r2, [r0] - movs r1, 0x1 - strb r1, [r0, 0x1] - ldrh r1, [r5, 0x2] - strh r1, [r0, 0x2] - movs r0, 0x1 -_080F0EC6: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80F0E84 - - thumb_func_start sub_80F0ECC -sub_80F0ECC: @ 80F0ECC - push {lr} - lsls r1, 24 - lsrs r2, r1, 24 - lsls r1, r2, 2 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _080F0EE2 - lsls r0, r2, 24 - asrs r0, 24 - b _080F0EE6 -_080F0EE2: - movs r0, 0x1 - negs r0, r0 -_080F0EE6: - pop {r1} - bx r1 - thumb_func_end sub_80F0ECC - - thumb_func_start sub_80F0EEC -sub_80F0EEC: @ 80F0EEC - push {r4,lr} - movs r4, 0 -_080F0EF0: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - lsls r1, r4, 2 - adds r0, r1 - ldr r1, =0x00002b50 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x4 - bls _080F0F08 - adds r0, r4, 0 - bl sub_80EEE78 -_080F0F08: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xF - bls _080F0EF0 - bl sub_80EEEB8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80F0EEC - - thumb_func_start sub_80F0F24 -sub_80F0F24: @ 80F0F24 - push {r4,r5,lr} - ldr r0, =0x00000864 - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080F0F50 - movs r2, 0 - ldr r5, =gSaveBlock1Ptr - ldr r4, =0x00002b51 - movs r3, 0 -_080F0F3C: - ldr r0, [r5] - lsls r1, r2, 2 - adds r0, r1 - adds r0, r4 - strb r3, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xF - bls _080F0F3C -_080F0F50: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80F0F24 - - thumb_func_start sub_80F0F64 -sub_80F0F64: @ 80F0F64 - push {r4-r7,lr} - adds r6, r0, 0 - adds r5, r1, 0 - movs r0, 0x2C - bl AllocZeroed - adds r4, r0, 0 - movs r7, 0 -_080F0F74: - lsls r0, r7, 3 - adds r1, r0, r7 - lsls r1, 2 - adds r1, r6 - ldrb r1, [r1] - subs r1, 0x1 - adds r2, r0, 0 - cmp r1, 0x28 - bls _080F0F88 - b _080F11F4 -_080F0F88: - lsls r0, r1, 2 - ldr r1, =_080F0F98 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F0F98: - .4byte _080F103C - .4byte _080F103C - .4byte _080F105A - .4byte _080F11F4 - .4byte _080F1152 - .4byte _080F111E - .4byte _080F10E6 - .4byte _080F11F4 - .4byte _080F11F4 - .4byte _080F11F4 - .4byte _080F11F4 - .4byte _080F11F4 - .4byte _080F11F4 - .4byte _080F11F4 - .4byte _080F11F4 - .4byte _080F11F4 - .4byte _080F11F4 - .4byte _080F11F4 - .4byte _080F11F4 - .4byte _080F11F4 - .4byte _080F1092 - .4byte _080F10C6 - .4byte _080F118A - .4byte _080F11AA - .4byte _080F11CA - .4byte _080F11F4 - .4byte _080F11F4 - .4byte _080F11F4 - .4byte _080F11F4 - .4byte _080F11F4 - .4byte _080F11F4 - .4byte _080F11F4 - .4byte _080F11F4 - .4byte _080F11F4 - .4byte _080F11F4 - .4byte _080F11F4 - .4byte _080F11F4 - .4byte _080F11F4 - .4byte _080F11F4 - .4byte _080F11F4 - .4byte _080F11EA -_080F103C: - adds r0, r2, r7 - lsls r0, 2 - adds r0, r6, r0 - str r0, [r4] - adds r0, 0x10 - bl sub_8009228 - cmp r0, 0 - beq _080F1056 - ldr r1, [r4] - movs r0, 0x1 - strb r0, [r1, 0x18] - b _080F11F4 -_080F1056: - ldr r0, [r4] - b _080F11F2 -_080F105A: - adds r0, r2, r7 - lsls r0, 2 - adds r0, r6, r0 - str r0, [r4, 0x4] - adds r0, 0x5 - bl sub_8009228 - cmp r0, 0 - beq _080F1074 - ldr r1, [r4, 0x4] - movs r0, 0x1 - strb r0, [r1, 0xD] - b _080F1078 -_080F1074: - ldr r0, [r4, 0x4] - strb r5, [r0, 0xD] -_080F1078: - ldr r0, [r4, 0x4] - adds r0, 0x10 - bl sub_8009228 - cmp r0, 0 - beq _080F108C - ldr r1, [r4, 0x4] - movs r0, 0x1 - strb r0, [r1, 0xE] - b _080F11F4 -_080F108C: - ldr r0, [r4, 0x4] - strb r5, [r0, 0xE] - b _080F11F4 -_080F1092: - adds r0, r2, r7 - lsls r0, 2 - adds r0, r6, r0 - str r0, [r4, 0x18] - adds r0, 0x13 - bl sub_8009228 - cmp r0, 0 - beq _080F10AC - ldr r1, [r4, 0x18] - movs r0, 0x1 - strb r0, [r1, 0x2] - b _080F10B0 -_080F10AC: - ldr r0, [r4, 0x18] - strb r5, [r0, 0x2] -_080F10B0: - ldr r0, [r4, 0x18] - adds r0, 0x4 - bl sub_8009228 - cmp r0, 0 - beq _080F10C0 - ldr r1, [r4, 0x18] - b _080F10DA -_080F10C0: - ldr r0, [r4, 0x18] - strb r5, [r0, 0x3] - b _080F11F4 -_080F10C6: - adds r0, r2, r7 - lsls r0, 2 - adds r0, r6, r0 - str r0, [r4, 0x1C] - adds r0, 0x13 - bl sub_8009228 - cmp r0, 0 - beq _080F10E0 - ldr r1, [r4, 0x1C] -_080F10DA: - movs r0, 0x1 - strb r0, [r1, 0x3] - b _080F11F4 -_080F10E0: - ldr r0, [r4, 0x1C] - strb r5, [r0, 0x3] - b _080F11F4 -_080F10E6: - adds r0, r2, r7 - lsls r0, 2 - adds r0, r6, r0 - str r0, [r4, 0x14] - adds r0, 0x2 - bl sub_8009228 - cmp r0, 0 - beq _080F1100 - ldr r1, [r4, 0x14] - movs r0, 0x1 - strb r0, [r1, 0x1D] - b _080F1104 -_080F1100: - ldr r0, [r4, 0x14] - strb r5, [r0, 0x1D] -_080F1104: - ldr r0, [r4, 0x14] - adds r0, 0xC - bl sub_8009228 - cmp r0, 0 - beq _080F1118 - ldr r1, [r4, 0x14] - movs r0, 0x1 - strb r0, [r1, 0x1E] - b _080F11F4 -_080F1118: - ldr r0, [r4, 0x14] - strb r5, [r0, 0x1E] - b _080F11F4 -_080F111E: - adds r0, r2, r7 - lsls r0, 2 - adds r0, r6, r0 - str r0, [r4, 0x10] - adds r0, 0x16 - bl sub_8009228 - cmp r0, 0 - beq _080F1138 - ldr r1, [r4, 0x10] - movs r0, 0x1 - strb r0, [r1, 0x1E] - b _080F113C -_080F1138: - ldr r0, [r4, 0x10] - strb r5, [r0, 0x1E] -_080F113C: - ldr r0, [r4, 0x10] - adds r0, 0x8 - bl sub_8009228 - cmp r0, 0 - beq _080F114C - ldr r1, [r4, 0x10] - b _080F117E -_080F114C: - ldr r0, [r4, 0x10] - strb r5, [r0, 0x1F] - b _080F11F4 -_080F1152: - adds r0, r2, r7 - lsls r0, 2 - adds r0, r6, r0 - str r0, [r4, 0xC] - adds r0, 0xF - bl sub_8009228 - cmp r0, 0 - beq _080F116C - ldr r1, [r4, 0xC] - movs r0, 0x1 - strb r0, [r1, 0x1E] - b _080F1170 -_080F116C: - ldr r0, [r4, 0xC] - strb r5, [r0, 0x1E] -_080F1170: - ldr r0, [r4, 0xC] - adds r0, 0x4 - bl sub_8009228 - cmp r0, 0 - beq _080F1184 - ldr r1, [r4, 0xC] -_080F117E: - movs r0, 0x1 - strb r0, [r1, 0x1F] - b _080F11F4 -_080F1184: - ldr r0, [r4, 0xC] - strb r5, [r0, 0x1F] - b _080F11F4 -_080F118A: - adds r0, r2, r7 - lsls r0, 2 - adds r0, r6, r0 - str r0, [r4, 0x8] - adds r0, 0x13 - bl sub_8009228 - cmp r0, 0 - beq _080F11A4 - ldr r1, [r4, 0x8] - movs r0, 0x1 - strb r0, [r1, 0x2] - b _080F11F4 -_080F11A4: - ldr r0, [r4, 0x8] - strb r5, [r0, 0x2] - b _080F11F4 -_080F11AA: - adds r0, r2, r7 - lsls r0, 2 - adds r0, r6, r0 - str r0, [r4, 0x20] - adds r0, 0x13 - bl sub_8009228 - cmp r0, 0 - beq _080F11C4 - ldr r1, [r4, 0x20] - movs r0, 0x1 - strb r0, [r1, 0x6] - b _080F11F4 -_080F11C4: - ldr r0, [r4, 0x20] - strb r5, [r0, 0x6] - b _080F11F4 -_080F11CA: - adds r0, r2, r7 - lsls r0, 2 - adds r0, r6, r0 - str r0, [r4, 0x24] - adds r0, 0x13 - bl sub_8009228 - cmp r0, 0 - beq _080F11E4 - ldr r1, [r4, 0x24] - movs r0, 0x1 - strb r0, [r1, 0xB] - b _080F11F4 -_080F11E4: - ldr r0, [r4, 0x24] - strb r5, [r0, 0xB] - b _080F11F4 -_080F11EA: - adds r0, r2, r7 - lsls r0, 2 - adds r0, r6, r0 - str r0, [r4, 0x28] -_080F11F2: - strb r5, [r0, 0x18] -_080F11F4: - adds r7, 0x1 - cmp r7, 0x17 - bgt _080F11FC - b _080F0F74 -_080F11FC: - adds r0, r4, 0 - bl Free - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80F0F64 - - thumb_func_start sub_80F1208 -sub_80F1208: @ 80F1208 - push {r4,r5,lr} - adds r5, r0, 0 - bl sub_80F14F8 - adds r4, r5, 0 - movs r1, 0xD8 - lsls r1, 2 - adds r0, r4, r1 - cmp r4, r0 - bcs _080F124C -_080F121C: - ldrb r0, [r4] - cmp r0, 0x7 - bne _080F1240 - ldrb r0, [r4, 0x1D] - cmp r0, 0x1 - bne _080F1230 - ldrb r0, [r4, 0x1E] - cmp r0, 0x1 - bne _080F1236 - b _080F1240 -_080F1230: - ldrb r0, [r4, 0x1E] - cmp r0, 0x1 - bne _080F1240 -_080F1236: - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x24 - bl memset -_080F1240: - adds r4, 0x24 - movs r1, 0xD8 - lsls r1, 2 - adds r0, r5, r1 - cmp r4, r0 - bcc _080F121C -_080F124C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80F1208 - - thumb_func_start sub_80F1254 -sub_80F1254: @ 80F1254 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r4, 0 - movs r1, 0xD8 - lsls r1, 2 - adds r0, r4, r1 - cmp r4, r0 - bcs _080F128A -_080F1264: - ldrb r0, [r4] - cmp r0, 0x7 - bne _080F127E - adds r0, r4, 0 - adds r0, 0xC - bl sub_8009228 - cmp r0, 0 - beq _080F127A - movs r0, 0x1 - b _080F127C -_080F127A: - movs r0, 0x2 -_080F127C: - strb r0, [r4, 0x1E] -_080F127E: - adds r4, 0x24 - movs r1, 0xD8 - lsls r1, 2 - adds r0, r5, r1 - cmp r4, r0 - bcc _080F1264 -_080F128A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80F1254 - - thumb_func_start sub_80F1290 -sub_80F1290: @ 80F1290 - push {lr} - bl sub_8009228 - movs r1, 0x2 - cmp r0, 0 - beq _080F129E - movs r1, 0x1 -_080F129E: - adds r0, r1, 0 - pop {r1} - bx r1 - thumb_func_end sub_80F1290 - - thumb_func_start sub_80F12A4 -sub_80F12A4: @ 80F12A4 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r4, 0 - movs r1, 0xD8 - lsls r1, 2 - adds r0, r4, r1 - cmp r4, r0 - bcc _080F12B6 - b _080F14F0 -_080F12B6: - ldrb r0, [r4] - subs r0, 0x1 - cmp r0, 0x28 - bls _080F12C0 - b _080F14E2 -_080F12C0: - lsls r0, 2 - ldr r1, =_080F12D0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F12D0: - .4byte _080F1374 - .4byte _080F137A - .4byte _080F1380 - .4byte _080F138E - .4byte _080F139A - .4byte _080F13A8 - .4byte _080F13BE - .4byte _080F13CC - .4byte _080F13E0 - .4byte _080F13F4 - .4byte _080F1408 - .4byte _080F1416 - .4byte _080F14E2 - .4byte _080F14E2 - .4byte _080F14E2 - .4byte _080F14E2 - .4byte _080F14E2 - .4byte _080F14E2 - .4byte _080F14E2 - .4byte _080F14E2 - .4byte _080F142A - .4byte _080F1438 - .4byte _080F1444 - .4byte _080F1450 - .4byte _080F145C - .4byte _080F14AC - .4byte _080F1468 - .4byte _080F14B8 - .4byte _080F148C - .4byte _080F1474 - .4byte _080F14AC - .4byte _080F14B8 - .4byte _080F1480 - .4byte _080F148C - .4byte _080F1498 - .4byte _080F14AC - .4byte _080F14B8 - .4byte _080F14C4 - .4byte _080F14D8 - .4byte _080F14E2 - .4byte _080F14E2 -_080F1374: - adds r0, r4, 0 - adds r0, 0x10 - b _080F1422 -_080F137A: - adds r0, r4, 0 - adds r0, 0x10 - b _080F1422 -_080F1380: - adds r0, r4, 0x5 - bl sub_80F1290 - strb r0, [r4, 0xD] - adds r0, r4, 0 - adds r0, 0x10 - b _080F1478 -_080F138E: - adds r0, r4, 0 - adds r0, 0xB - bl sub_80F1290 - strb r0, [r4, 0x17] - b _080F14E2 -_080F139A: - adds r0, r4, 0 - adds r0, 0xF - bl sub_80F1290 - strb r0, [r4, 0x1E] - adds r0, r4, 0x4 - b _080F13B6 -_080F13A8: - adds r0, r4, 0 - adds r0, 0x16 - bl sub_80F1290 - strb r0, [r4, 0x1E] - adds r0, r4, 0 - adds r0, 0x8 -_080F13B6: - bl sub_80F1290 - strb r0, [r4, 0x1F] - b _080F14E2 -_080F13BE: - adds r0, r4, 0x2 - bl sub_80F1290 - strb r0, [r4, 0x1D] - adds r0, r4, 0 - adds r0, 0xC - b _080F13D8 -_080F13CC: - adds r0, r4, 0 - adds r0, 0x14 - bl sub_80F1290 - strb r0, [r4, 0x1D] - adds r0, r4, 0x4 -_080F13D8: - bl sub_80F1290 - strb r0, [r4, 0x1E] - b _080F14E2 -_080F13E0: - adds r0, r4, 0 - adds r0, 0xC - bl sub_80F1290 - strb r0, [r4, 0x14] - adds r0, r4, 0x4 - bl sub_80F1290 - strb r0, [r4, 0x15] - b _080F14E2 -_080F13F4: - adds r0, r4, 0x4 - bl sub_80F1290 - strb r0, [r4, 0x19] - adds r0, r4, 0 - adds r0, 0xC - bl sub_80F1290 - strb r0, [r4, 0x1A] - b _080F14E2 -_080F1408: - adds r0, r4, 0x2 - bl sub_80F1290 - strb r0, [r4, 0x17] - adds r0, r4, 0 - adds r0, 0xC - b _080F1422 -_080F1416: - adds r0, r4, 0x2 - bl sub_80F1290 - strb r0, [r4, 0x17] - adds r0, r4, 0 - adds r0, 0xB -_080F1422: - bl sub_80F1290 - strb r0, [r4, 0x18] - b _080F14E2 -_080F142A: - adds r0, r4, 0 - adds r0, 0x13 - bl sub_80F1290 - strb r0, [r4, 0x2] - adds r0, r4, 0x4 - b _080F143C -_080F1438: - adds r0, r4, 0 - adds r0, 0x13 -_080F143C: - bl sub_80F1290 - strb r0, [r4, 0x3] - b _080F14E2 -_080F1444: - adds r0, r4, 0 - adds r0, 0x13 - bl sub_80F1290 - strb r0, [r4, 0x2] - b _080F14E2 -_080F1450: - adds r0, r4, 0 - adds r0, 0x13 - bl sub_80F1290 - strb r0, [r4, 0x6] - b _080F14E2 -_080F145C: - adds r0, r4, 0 - adds r0, 0x13 - bl sub_80F1290 - strb r0, [r4, 0xB] - b _080F14E2 -_080F1468: - adds r0, r4, 0 - adds r0, 0x13 - bl sub_80F1290 - strb r0, [r4, 0x9] - b _080F14E2 -_080F1474: - adds r0, r4, 0 - adds r0, 0x13 -_080F1478: - bl sub_80F1290 - strb r0, [r4, 0xE] - b _080F14E2 -_080F1480: - adds r0, r4, 0 - adds r0, 0x13 - bl sub_80F1290 - strb r0, [r4, 0x11] - b _080F14E2 -_080F148C: - adds r0, r4, 0 - adds r0, 0x13 - bl sub_80F1290 - strb r0, [r4, 0x8] - b _080F14E2 -_080F1498: - adds r0, r4, 0 - adds r0, 0x13 - bl sub_80F1290 - strb r0, [r4, 0xF] - adds r0, r4, 0x4 - bl sub_80F1290 - strb r0, [r4, 0x10] - b _080F14E2 -_080F14AC: - adds r0, r4, 0 - adds r0, 0x13 - bl sub_80F1290 - strb r0, [r4, 0xC] - b _080F14E2 -_080F14B8: - adds r0, r4, 0 - adds r0, 0x13 - bl sub_80F1290 - strb r0, [r4, 0x5] - b _080F14E2 -_080F14C4: - adds r0, r4, 0 - adds r0, 0x13 - bl sub_80F1290 - strb r0, [r4, 0x1B] - adds r0, r4, 0x4 - bl sub_80F1290 - strb r0, [r4, 0x1C] - b _080F14E2 -_080F14D8: - adds r0, r4, 0 - adds r0, 0x13 - bl sub_80F1290 - strb r0, [r4, 0x4] -_080F14E2: - adds r4, 0x24 - movs r1, 0xD8 - lsls r1, 2 - adds r0, r5, r1 - cmp r4, r0 - bcs _080F14F0 - b _080F12B6 -_080F14F0: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80F12A4 - - thumb_func_start sub_80F14F8 -sub_80F14F8: @ 80F14F8 - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r5, 0 - movs r6, 0x17 -_080F1500: - ldrb r0, [r4] - cmp r0, 0x17 - beq _080F151C - cmp r0, 0x19 - bne _080F152C - ldrb r0, [r4, 0xA] - cmp r0, 0x58 - bls _080F152C - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x24 - bl memset - b _080F152C -_080F151C: - ldrb r0, [r4, 0x12] - cmp r0, 0x58 - bls _080F152C - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x24 - bl memset -_080F152C: - adds r4, 0x24 - adds r5, 0x24 - subs r6, 0x1 - cmp r6, 0 - bge _080F1500 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80F14F8 - - thumb_func_start sub_80F153C -sub_80F153C: @ 80F153C - push {lr} - ldr r0, =gSaveBlock1Ptr - ldr r2, [r0] - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r2, r0 - ldr r1, =0x000027cd - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080F155A - b _080F16E6 -_080F155A: - subs r1, 0x1 - adds r0, r2, r1 - ldrb r0, [r0] - subs r0, 0x1 - cmp r0, 0x28 - bls _080F1568 - b _080F16E6 -_080F1568: - lsls r0, 2 - ldr r1, =_080F1584 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F1584: - .4byte _080F1628 - .4byte _080F162E - .4byte _080F1634 - .4byte _080F163A - .4byte _080F165E - .4byte _080F1646 - .4byte _080F164C - .4byte _080F1664 - .4byte _080F1670 - .4byte _080F166A - .4byte _080F16B8 - .4byte _080F16E2 - .4byte _080F16E6 - .4byte _080F16E6 - .4byte _080F16E6 - .4byte _080F16E6 - .4byte _080F16E6 - .4byte _080F16E6 - .4byte _080F16E6 - .4byte _080F16E6 - .4byte _080F1652 - .4byte _080F1658 - .4byte _080F1676 - .4byte _080F167C - .4byte _080F1682 - .4byte _080F1688 - .4byte _080F168E - .4byte _080F1694 - .4byte _080F169A - .4byte _080F16A0 - .4byte _080F16A6 - .4byte _080F16AC - .4byte _080F16B2 - .4byte _080F16BE - .4byte _080F16C4 - .4byte _080F16CA - .4byte _080F16D0 - .4byte _080F16D6 - .4byte _080F16DC - .4byte _080F16E6 - .4byte _080F1640 -_080F1628: - bl DoTVShowPokemonFanClubLetter - b _080F16E6 -_080F162E: - bl DoTVShowRecentHappenings - b _080F16E6 -_080F1634: - bl DoTVShowPokemonFanClubOpinions - b _080F16E6 -_080F163A: - bl DoTVShowDummiedOut - b _080F16E6 -_080F1640: - bl DoTVShowPokemonNewsMassOutbreak - b _080F16E6 -_080F1646: - bl DoTVShowBravoTrainerPokemonProfile - b _080F16E6 -_080F164C: - bl DoTVShowBravoTrainerBattleTower - b _080F16E6 -_080F1652: - bl DoTVShowPokemonTodaySuccessfulCapture - b _080F16E6 -_080F1658: - bl DoTVShowTodaysSmartShopper - b _080F16E6 -_080F165E: - bl DoTVShowTheNameRaterShow - b _080F16E6 -_080F1664: - bl DoTVShowPokemonContestLiveUpdates - b _080F16E6 -_080F166A: - bl DoTVShowPokemonBattleUpdate - b _080F16E6 -_080F1670: - bl DoTVShow3CheersForPokeblocks - b _080F16E6 -_080F1676: - bl DoTVShowPokemonTodayFailedCapture - b _080F16E6 -_080F167C: - bl DoTVShowPokemonAngler - b _080F16E6 -_080F1682: - bl DoTVShowTheWorldOfMasters - b _080F16E6 -_080F1688: - bl DoTVShowTodaysRivalTrainer - b _080F16E6 -_080F168E: - bl DoTVShowDewfordTrendWatcherNetwork - b _080F16E6 -_080F1694: - bl DoTVShowHoennTreasureInvestigators - b _080F16E6 -_080F169A: - bl DoTVShowFindThatGamer - b _080F16E6 -_080F16A0: - bl DoTVShowBreakingNewsTV - b _080F16E6 -_080F16A6: - bl DoTVShowSecretBaseVisit - b _080F16E6 -_080F16AC: - bl DoTVShowPokemonLotterWinnerFlashReport - b _080F16E6 -_080F16B2: - bl DoTVShowThePokemonBattleSeminar - b _080F16E6 -_080F16B8: - bl DoTVShowTrainerFanClubSpecial - b _080F16E6 -_080F16BE: - bl DoTVShowTrainerFanClub - b _080F16E6 -_080F16C4: - bl DoTVShowSpotTheCuties - b _080F16E6 -_080F16CA: - bl DoTVShowPokemonNewsBattleFrontier - b _080F16E6 -_080F16D0: - bl DoTVShowWhatsNo1InHoennToday - b _080F16E6 -_080F16D6: - bl DoTVShowSecretBaseSecrets - b _080F16E6 -_080F16DC: - bl DoTVShowSafariFanClub - b _080F16E6 -_080F16E2: - bl DoTVShowPokemonContestLiveUpdates2 -_080F16E6: - pop {r0} - bx r0 - thumb_func_end sub_80F153C - - thumb_func_start DoTVShowBravoTrainerPokemonProfile -DoTVShowBravoTrainerPokemonProfile: @ 80F16EC - push {r4,r5,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, =gUnknown_0203A030 - ldrb r5, [r0] - cmp r5, 0x8 - bls _080F1712 - b _080F1952 -_080F1712: - lsls r0, r5, 2 - ldr r1, =_080F1734 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F1734: - .4byte _080F1758 - .4byte _080F17B0 - .4byte _080F17E8 - .4byte _080F1818 - .4byte _080F184C - .4byte _080F1880 - .4byte _080F18C4 - .4byte _080F190C - .4byte _080F193C -_080F1758: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x16 - ldrb r2, [r4, 0x1E] - bl sub_81DB5E8 - ldrb r1, [r4, 0x13] - lsls r1, 29 - lsrs r1, 29 - movs r0, 0x1 - bl CopyContestCategoryToStringVar - ldrb r1, [r4, 0x13] - lsls r1, 27 - lsrs r1, 30 - movs r0, 0x2 - bl sub_80EF1BC - ldrh r1, [r4, 0x2] - movs r0, 0xB - muls r0, r1 - ldr r1, =gSpeciesNames - adds r0, r1 - adds r1, r4, 0 - adds r1, 0x8 - bl StringCompare - cmp r0, 0 - bne _080F17A4 - ldr r1, =gUnknown_0203A030 - movs r0, 0x8 - b _080F1950 - .pool -_080F17A4: - ldr r1, =gUnknown_0203A030 - movs r0, 0x1 - b _080F1950 - .pool -_080F17B0: - ldr r0, =gStringVar1 - ldrh r2, [r4, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, =gStringVar2 - adds r1, r4, 0 - adds r1, 0x8 - ldrb r2, [r4, 0x1F] - bl sub_81DB5E8 - ldrb r1, [r4, 0x13] - lsls r1, 29 - lsrs r1, 29 - movs r0, 0x2 - bl CopyContestCategoryToStringVar - b _080F194C - .pool -_080F17E8: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x16 - ldrb r2, [r4, 0x1E] - bl sub_81DB5E8 - ldrb r1, [r4, 0x13] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - bne _080F180C - ldr r1, =gUnknown_0203A030 - movs r0, 0x3 - b _080F1950 - .pool -_080F180C: - ldr r1, =gUnknown_0203A030 - movs r0, 0x4 - b _080F1950 - .pool -_080F1818: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x16 - ldrb r2, [r4, 0x1E] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r1, [r4, 0x4] - bl CopyEasyChatWord - ldrb r1, [r4, 0x13] - lsls r1, 25 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x2 - bl sub_80EF340 - ldr r1, =gUnknown_0203A030 - movs r0, 0x5 - b _080F1950 - .pool -_080F184C: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x16 - ldrb r2, [r4, 0x1E] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r1, [r4, 0x4] - bl CopyEasyChatWord - ldrb r1, [r4, 0x13] - lsls r1, 25 - lsrs r1, 30 - adds r1, 0x1 - movs r0, 0x2 - bl sub_80EF340 - ldr r1, =gUnknown_0203A030 - movs r0, 0x5 - b _080F1950 - .pool -_080F1880: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x16 - ldrb r2, [r4, 0x1E] - bl sub_81DB5E8 - ldrb r1, [r4, 0x13] - lsls r1, 29 - lsrs r1, 29 - movs r0, 0x1 - bl CopyContestCategoryToStringVar - ldr r0, =gStringVar3 - ldrh r1, [r4, 0x6] - bl CopyEasyChatWord - ldrh r0, [r4, 0x14] - cmp r0, 0 - beq _080F18B8 - ldr r1, =gUnknown_0203A030 - movs r0, 0x6 - b _080F1950 - .pool -_080F18B8: - ldr r1, =gUnknown_0203A030 - movs r0, 0x7 - b _080F1950 - .pool -_080F18C4: - ldr r0, =gStringVar1 - ldrh r2, [r4, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, =gStringVar2 - ldrh r2, [r4, 0x14] - movs r1, 0xD - muls r1, r2 - ldr r2, =gMoveNames - adds r1, r2 - bl StringCopy - ldr r0, =gStringVar3 - ldrh r1, [r4, 0x6] - bl CopyEasyChatWord - ldr r1, =gUnknown_0203A030 - movs r0, 0x7 - b _080F1950 - .pool -_080F190C: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x16 - ldrb r2, [r4, 0x1E] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r2, [r4, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - bl TVShowDone - b _080F1952 - .pool -_080F193C: - ldr r0, =gStringVar1 - ldrh r2, [r4, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy -_080F194C: - ldr r1, =gUnknown_0203A030 - movs r0, 0x2 -_080F1950: - strb r0, [r1] -_080F1952: - ldr r0, =gUnknown_0858D204 - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl box_related_two__2 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShowBravoTrainerPokemonProfile - - thumb_func_start DoTVShowBravoTrainerBattleTower -DoTVShowBravoTrainerBattleTower: @ 80F1974 - push {r4,r5,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, =gUnknown_0203A030 - ldrb r5, [r0] - adds r2, r0, 0 - cmp r5, 0xE - bls _080F199C - b _080F1BEA -_080F199C: - lsls r0, r5, 2 - ldr r1, =_080F19C0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F19C0: - .4byte _080F19FC - .4byte _080F1A40 - .4byte _080F1A90 - .4byte _080F1AB4 - .4byte _080F1AE0 - .4byte _080F1B28 - .4byte _080F1B38 - .4byte _080F1B48 - .4byte _080F1B4E - .4byte _080F1B4E - .4byte _080F1B4E - .4byte _080F1B68 - .4byte _080F1B94 - .4byte _080F1B94 - .4byte _080F1BCC -_080F19FC: - ldr r0, =gStringVar1 - adds r1, r4, 0x2 - ldrb r2, [r4, 0x1D] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r2, [r4, 0xA] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldrh r0, [r4, 0x16] - cmp r0, 0x6 - bls _080F1A34 - ldr r1, =gUnknown_0203A030 - movs r0, 0x1 - strb r0, [r1] - b _080F1BEA - .pool -_080F1A34: - ldr r1, =gUnknown_0203A030 - movs r0, 0x2 - strb r0, [r1] - b _080F1BEA - .pool -_080F1A40: - ldrb r0, [r4, 0x1A] - cmp r0, 0x32 - bne _080F1A58 - ldr r0, =gStringVar1 - ldr r1, =gText_Lv50 - bl StringCopy - b _080F1A60 - .pool -_080F1A58: - ldr r0, =gStringVar1 - ldr r1, =gText_OpenLevel - bl StringCopy -_080F1A60: - ldrh r1, [r4, 0x16] - movs r0, 0x1 - bl sub_80EF340 - ldrb r0, [r4, 0x1C] - cmp r0, 0x1 - bne _080F1A84 - ldr r1, =gUnknown_0203A030 - movs r0, 0x3 - strb r0, [r1] - b _080F1BEA - .pool -_080F1A84: - ldr r1, =gUnknown_0203A030 - movs r0, 0x4 - strb r0, [r1] - b _080F1BEA - .pool -_080F1A90: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0xC - ldrb r2, [r4, 0x1E] - bl sub_81DB5E8 - ldrh r1, [r4, 0x16] - adds r1, 0x1 - movs r0, 0x1 - bl sub_80EF340 -_080F1AA6: - ldrb r0, [r4, 0x1B] - cmp r0, 0 - beq _080F1B02 - b _080F1B1C - .pool -_080F1AB4: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0xC - ldrb r2, [r4, 0x1E] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r2, [r4, 0x14] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - b _080F1AA6 - .pool -_080F1AE0: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0xC - ldrb r2, [r4, 0x1E] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r2, [r4, 0x14] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldrb r0, [r4, 0x1B] - cmp r0, 0 - bne _080F1B1C -_080F1B02: - ldr r1, =gUnknown_0203A030 - movs r0, 0x5 - strb r0, [r1] - b _080F1BEA - .pool -_080F1B1C: - ldr r1, =gUnknown_0203A030 - movs r0, 0x6 - strb r0, [r1] - b _080F1BEA - .pool -_080F1B28: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0xC - ldrb r2, [r4, 0x1E] - b _080F1B54 - .pool -_080F1B38: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0xC - ldrb r2, [r4, 0x1E] - b _080F1B54 - .pool -_080F1B48: - movs r0, 0xB - strb r0, [r2] - b _080F1BEA -_080F1B4E: - ldr r0, =gStringVar1 - adds r1, r4, 0x2 - ldrb r2, [r4, 0x1D] -_080F1B54: - bl sub_81DB5E8 - ldr r1, =gUnknown_0203A030 - movs r0, 0xB - strb r0, [r1] - b _080F1BEA - .pool -_080F1B68: - ldr r0, =gStringVar1 - ldrh r1, [r4, 0x18] - bl CopyEasyChatWord - ldrb r0, [r4, 0x1B] - cmp r0, 0 - bne _080F1B88 - ldr r1, =gUnknown_0203A030 - movs r0, 0xC - strb r0, [r1] - b _080F1BEA - .pool -_080F1B88: - ldr r1, =gUnknown_0203A030 - movs r0, 0xD - strb r0, [r1] - b _080F1BEA - .pool -_080F1B94: - ldr r0, =gStringVar1 - ldrh r1, [r4, 0x18] - bl CopyEasyChatWord - ldr r0, =gStringVar2 - adds r1, r4, 0x2 - ldrb r2, [r4, 0x1D] - bl sub_81DB5E8 - ldr r0, =gStringVar3 - adds r1, r4, 0 - adds r1, 0xC - ldrb r2, [r4, 0x1E] - bl sub_81DB5E8 - ldr r1, =gUnknown_0203A030 - movs r0, 0xE - strb r0, [r1] - b _080F1BEA - .pool -_080F1BCC: - ldr r0, =gStringVar1 - adds r1, r4, 0x2 - ldrb r2, [r4, 0x1D] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r2, [r4, 0xA] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - bl TVShowDone -_080F1BEA: - ldr r0, =gUnknown_0858D240 - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl box_related_two__2 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShowBravoTrainerBattleTower - - thumb_func_start DoTVShowTodaysSmartShopper -DoTVShowTodaysSmartShopper: @ 80F1C0C - push {r4-r6,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r5, r1, r0 - ldr r1, =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, =gUnknown_0203A030 - ldrb r6, [r0] - adds r2, r0, 0 - cmp r6, 0xC - bls _080F1C34 - b _080F1E2C -_080F1C34: - lsls r0, r6, 2 - ldr r1, =_080F1C58 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F1C58: - .4byte _080F1C8C - .4byte _080F1CC8 - .4byte _080F1D10 - .4byte _080F1D22 - .4byte _080F1D10 - .4byte _080F1D10 - .4byte _080F1D4C - .4byte _080F1D7C - .4byte _080F1DAC - .4byte _080F1DB8 - .4byte _080F1DC6 - .4byte _080F1DD8 - .4byte _080F1E1C -_080F1C8C: - ldr r0, =gStringVar1 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x3] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrb r1, [r5, 0x12] - movs r2, 0 - bl GetMapName - ldrh r0, [r5, 0xC] - cmp r0, 0xFE - bls _080F1CBC - ldr r1, =gUnknown_0203A030 - movs r0, 0xB - strb r0, [r1] - b _080F1E2C - .pool -_080F1CBC: - ldr r1, =gUnknown_0203A030 - movs r0, 0x1 - strb r0, [r1] - b _080F1E2C - .pool -_080F1CC8: - ldr r0, =gStringVar1 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x3] - bl sub_81DB5E8 - ldr r4, =gStringVar2 - ldrh r0, [r5, 0x6] - bl ItemId_GetItem - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldrh r1, [r5, 0xC] - movs r0, 0x2 - bl sub_80EF340 - ldr r4, =gUnknown_0203A030 - bl Random - ldrb r2, [r4] - adds r2, 0x1 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - ands r0, r1 - adds r0, r2 - strb r0, [r4] - b _080F1E2C - .pool -_080F1D10: - ldrh r0, [r5, 0x8] - cmp r0, 0 - beq _080F1D1C - movs r0, 0x6 - strb r0, [r2] - b _080F1E2C -_080F1D1C: - movs r0, 0xA - strb r0, [r2] - b _080F1E2C -_080F1D22: - ldrh r1, [r5, 0xC] - adds r1, 0x1 - movs r0, 0x2 - bl sub_80EF340 - ldrh r0, [r5, 0x8] - cmp r0, 0 - beq _080F1D40 - ldr r1, =gUnknown_0203A030 - movs r0, 0x6 - strb r0, [r1] - b _080F1E2C - .pool -_080F1D40: - ldr r1, =gUnknown_0203A030 - movs r0, 0xA - strb r0, [r1] - b _080F1E2C - .pool -_080F1D4C: - ldr r4, =gStringVar2 - ldrh r0, [r5, 0x8] - bl ItemId_GetItem - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldrh r1, [r5, 0xE] - movs r0, 0x2 - bl sub_80EF340 - ldrh r0, [r5, 0xA] - cmp r0, 0 - beq _080F1D94 - ldr r1, =gUnknown_0203A030 - movs r0, 0x7 - strb r0, [r1] - b _080F1E2C - .pool -_080F1D7C: - ldr r4, =gStringVar2 - ldrh r0, [r5, 0xA] - bl ItemId_GetItem - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldrh r1, [r5, 0x10] - movs r0, 0x2 - bl sub_80EF340 -_080F1D94: - ldrb r0, [r5, 0x2] - cmp r0, 0x1 - beq _080F1DFA - ldr r1, =gUnknown_0203A030 - movs r0, 0x9 - strb r0, [r1] - b _080F1E2C - .pool -_080F1DAC: - ldrh r0, [r5, 0xC] - cmp r0, 0xFE - bls _080F1DD2 - movs r0, 0xC - strb r0, [r2] - b _080F1E2C -_080F1DB8: - movs r0, 0x1 - adds r1, r5, 0 - bl sub_80EF40C - bl TVShowDone - b _080F1E2C -_080F1DC6: - ldrb r0, [r5, 0x2] - cmp r0, 0x1 - bne _080F1DD2 - movs r0, 0x8 - strb r0, [r2] - b _080F1E2C -_080F1DD2: - movs r0, 0x9 - strb r0, [r2] - b _080F1E2C -_080F1DD8: - ldr r0, =gStringVar1 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x3] - bl sub_81DB5E8 - ldr r4, =gStringVar2 - ldrh r0, [r5, 0x6] - bl ItemId_GetItem - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldrb r0, [r5, 0x2] - cmp r0, 0x1 - bne _080F1E10 -_080F1DFA: - ldr r1, =gUnknown_0203A030 - movs r0, 0x8 - strb r0, [r1] - b _080F1E2C - .pool -_080F1E10: - ldr r1, =gUnknown_0203A030 - movs r0, 0xC - strb r0, [r1] - b _080F1E2C - .pool -_080F1E1C: - ldr r0, =gStringVar1 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x3] - bl sub_81DB5E8 - bl TVShowDone -_080F1E2C: - ldr r0, =gUnknown_0858D1D0 - lsls r1, r6, 2 - adds r1, r0 - ldr r0, [r1] - bl box_related_two__2 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShowTodaysSmartShopper - - thumb_func_start DoTVShowTheNameRaterShow -DoTVShowTheNameRaterShow: @ 80F1E48 - push {r4-r6,lr} - sub sp, 0x8 - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r5, r1, r0 - ldr r1, =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, =gUnknown_0203A030 - ldrb r6, [r0] - adds r2, r0, 0 - cmp r6, 0x12 - bls _080F1E72 - b _080F20FE -_080F1E72: - lsls r0, r6, 2 - ldr r1, =_080F1E94 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F1E94: - .4byte _080F1EE0 - .4byte _080F1F28 - .4byte _080F1F4A - .4byte _080F1F28 - .4byte _080F1F28 - .4byte _080F1F28 - .4byte _080F1F28 - .4byte _080F1F28 - .4byte _080F1F28 - .4byte _080F1F90 - .4byte _080F1F90 - .4byte _080F1F90 - .4byte _080F20EC - .4byte _080F1FCC - .4byte _080F200C - .4byte _080F202C - .4byte _080F2074 - .4byte _080F20A4 - .4byte _080F20F0 -_080F1EE0: - ldr r0, =gStringVar1 - adds r1, r5, 0 - adds r1, 0xF - ldrb r2, [r5, 0x1E] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r2, [r5, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, =gStringVar3 - adds r1, r5, 0x4 - ldrb r2, [r5, 0x1F] - bl sub_81DB5E8 - ldr r4, =gUnknown_0203A030 - adds r0, r5, 0 - bl sub_80EFBA4 - adds r0, 0x1 - strb r0, [r4] - b _080F20FE - .pool -_080F1F28: - ldrb r0, [r5, 0x1A] - cmp r0, 0 - bne _080F1F34 - movs r0, 0x9 - strb r0, [r2] - b _080F20FE -_080F1F34: - cmp r0, 0x1 - bne _080F1F3E - movs r0, 0xA - strb r0, [r2] - b _080F20FE -_080F1F3E: - cmp r0, 0x2 - beq _080F1F44 - b _080F20FE -_080F1F44: - movs r0, 0xB - strb r0, [r2] - b _080F20FE -_080F1F4A: - ldr r0, =gStringVar1 - adds r1, r5, 0 - adds r1, 0xF - ldrb r2, [r5, 0x1E] - bl sub_81DB5E8 - ldrb r0, [r5, 0x1A] - cmp r0, 0 - bne _080F1F6C - ldr r1, =gUnknown_0203A030 - movs r0, 0x9 - strb r0, [r1] - b _080F20FE - .pool -_080F1F6C: - cmp r0, 0x1 - bne _080F1F7C - ldr r1, =gUnknown_0203A030 - movs r0, 0xA - strb r0, [r1] - b _080F20FE - .pool -_080F1F7C: - cmp r0, 0x2 - beq _080F1F82 - b _080F20FE -_080F1F82: - ldr r1, =gUnknown_0203A030 - movs r0, 0xB - strb r0, [r1] - b _080F20FE - .pool -_080F1F90: - ldr r0, =gStringVar1 - adds r1, r5, 0x4 - ldrb r2, [r5, 0x1F] - bl sub_81DB5E8 - movs r4, 0 - str r4, [sp] - str r5, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0x1 - bl sub_80EFBDC - str r4, [sp] - str r5, [sp, 0x4] - movs r0, 0x2 - movs r1, 0x1 - movs r2, 0 - movs r3, 0x1 - bl sub_80EFBDC - ldr r1, =gUnknown_0203A030 - movs r0, 0xC - strb r0, [r1] - b _080F20FE - .pool -_080F1FCC: - ldr r0, =gStringVar1 - adds r1, r5, 0 - adds r1, 0xF - ldrb r2, [r5, 0x1E] - bl sub_81DB5E8 - movs r4, 0 - str r4, [sp] - str r5, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0x2 - movs r3, 0 - bl sub_80EFBDC - str r4, [sp] - str r5, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0x3 - movs r3, 0x1 - bl sub_80EFBDC - ldr r1, =gUnknown_0203A030 - movs r0, 0xE - strb r0, [r1] - b _080F20FE - .pool -_080F200C: - movs r4, 0 - str r4, [sp] - str r5, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0x2 - movs r3, 0x1 - bl sub_80EFBDC - str r4, [sp] - str r5, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0x3 - movs r3, 0 - b _080F20D2 -_080F202C: - movs r0, 0 - str r0, [sp] - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0x2 - movs r3, 0x1 - bl sub_80EFBDC - ldr r0, =gStringVar2 - ldrh r2, [r5, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldrh r0, [r5, 0x2] - str r0, [sp] - str r5, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0x3 - movs r3, 0x2 - bl sub_80EFBDC - ldr r1, =gUnknown_0203A030 - movs r0, 0x10 - strb r0, [r1] - b _080F20FE - .pool -_080F2074: - ldrh r0, [r5, 0x2] - str r0, [sp] - str r5, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0x2 - movs r3, 0x2 - bl sub_80EFBDC - movs r0, 0 - str r0, [sp] - str r5, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0x3 - movs r3, 0x1 - bl sub_80EFBDC - ldr r1, =gUnknown_0203A030 - movs r0, 0x11 - strb r0, [r1] - b _080F20FE - .pool -_080F20A4: - movs r0, 0 - str r0, [sp] - str r5, [sp, 0x4] - movs r1, 0 - movs r2, 0x2 - movs r3, 0x1 - bl sub_80EFBDC - ldr r0, =gStringVar2 - ldrh r2, [r5, 0x1C] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldrh r0, [r5, 0x1C] - str r0, [sp] - str r5, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0x3 - movs r3, 0x2 -_080F20D2: - bl sub_80EFBDC - ldr r1, =gUnknown_0203A030 - movs r0, 0x12 - strb r0, [r1] - b _080F20FE - .pool -_080F20EC: - movs r6, 0x12 - strb r6, [r2] -_080F20F0: - ldr r0, =gStringVar1 - adds r1, r5, 0x4 - ldrb r2, [r5, 0x1F] - bl sub_81DB5E8 - bl TVShowDone -_080F20FE: - ldr r0, =gUnknown_0858D338 - lsls r1, r6, 2 - adds r1, r0 - ldr r0, [r1] - bl box_related_two__2 - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShowTheNameRaterShow - - thumb_func_start DoTVShowPokemonTodaySuccessfulCapture -DoTVShowPokemonTodaySuccessfulCapture: @ 80F211C - push {r4-r6,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r5, r1, r0 - ldr r1, =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, =gUnknown_0203A030 - ldrb r6, [r0] - adds r2, r0, 0 - cmp r6, 0xB - bls _080F2144 - b _080F2358 -_080F2144: - lsls r0, r6, 2 - ldr r1, =_080F2168 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F2168: - .4byte _080F2198 - .4byte _080F21EC - .4byte _080F21F2 - .4byte _080F222C - .4byte _080F2264 - .4byte _080F226A - .4byte _080F22A0 - .4byte _080F22F4 - .4byte _080F22F4 - .4byte _080F2324 - .4byte _080F2324 - .4byte _080F2354 -_080F2198: - ldr r0, =gStringVar1 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x2] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r2, [r5, 0x10] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, =gStringVar3 - adds r1, r5, 0x4 - ldrb r2, [r5, 0x3] - bl sub_81DB5E8 - ldrb r0, [r5, 0xF] - cmp r0, 0x1 - bne _080F21E0 - ldr r1, =gUnknown_0203A030 - movs r0, 0x5 - strb r0, [r1] - b _080F2358 - .pool -_080F21E0: - ldr r1, =gUnknown_0203A030 - movs r0, 0x1 - strb r0, [r1] - b _080F2358 - .pool -_080F21EC: - movs r0, 0x2 - strb r0, [r2] - b _080F2358 -_080F21F2: - ldr r4, =gStringVar2 - ldrb r0, [r5, 0xF] - bl ItemId_GetItem - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldrb r1, [r5, 0x12] - movs r0, 0x2 - bl sub_80EF340 - ldrb r0, [r5, 0x12] - cmp r0, 0x3 - bhi _080F2220 - ldr r1, =gUnknown_0203A030 - movs r0, 0x3 - strb r0, [r1] - b _080F2358 - .pool -_080F2220: - ldr r1, =gUnknown_0203A030 - movs r0, 0x4 - strb r0, [r1] - b _080F2358 - .pool -_080F222C: - ldr r0, =gStringVar1 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x2] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r2, [r5, 0x10] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, =gStringVar3 - adds r1, r5, 0x4 - ldrb r2, [r5, 0x3] - bl sub_81DB5E8 - b _080F2286 - .pool -_080F2264: - movs r0, 0x6 - strb r0, [r2] - b _080F2358 -_080F226A: - ldr r0, =gStringVar1 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x2] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r2, [r5, 0x10] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy -_080F2286: - ldr r1, =gUnknown_0203A030 - movs r0, 0x6 - strb r0, [r1] - b _080F2358 - .pool -_080F22A0: - ldr r0, =gStringVar1 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x2] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r2, [r5, 0x10] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, =gStringVar3 - adds r1, r5, 0x4 - ldrb r2, [r5, 0x3] - bl sub_81DB5E8 - ldr r4, =gUnknown_0203A030 - bl Random - ldrb r2, [r4] - adds r2, 0x1 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - ands r0, r1 - adds r0, r2 - strb r0, [r4] - b _080F2358 - .pool -_080F22F4: - ldr r0, =gStringVar1 - ldrh r1, [r5, 0x10] - movs r4, 0xB - muls r1, r4 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, =gStringVar2 - adds r1, r5, 0x4 - ldrb r2, [r5, 0x3] - bl sub_81DB5E8 - ldrh r1, [r5, 0x10] - movs r0, 0x2 - bl sub_80EF9E8 - b _080F233E - .pool -_080F2324: - ldr r0, =gStringVar1 - ldrh r1, [r5, 0x10] - movs r4, 0xB - muls r1, r4 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, =gStringVar2 - adds r1, r5, 0x4 - ldrb r2, [r5, 0x3] - bl sub_81DB5E8 -_080F233E: - ldr r0, =gUnknown_0203A030 - strb r4, [r0] - b _080F2358 - .pool -_080F2354: - bl TVShowDone -_080F2358: - ldr r0, =gUnknown_0858D1A0 - lsls r1, r6, 2 - adds r1, r0 - ldr r0, [r1] - bl box_related_two__2 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShowPokemonTodaySuccessfulCapture - - thumb_func_start DoTVShowPokemonTodayFailedCapture -DoTVShowPokemonTodayFailedCapture: @ 80F2370 - push {r4,r5,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, =gUnknown_0203A030 - ldrb r5, [r0] - cmp r5, 0x6 - bls _080F2396 - b _080F24C0 -_080F2396: - lsls r0, r5, 2 - ldr r1, =_080F23B8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F23B8: - .4byte _080F23D4 - .4byte _080F2408 - .4byte _080F245C - .4byte _080F245C - .4byte _080F24A0 - .4byte _080F24A0 - .4byte _080F24BC -_080F23D4: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x2] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r2, [r4, 0xC] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r1, =gUnknown_0203A030 - movs r0, 0x1 - strb r0, [r1] - b _080F24C0 - .pool -_080F2408: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x2] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrb r1, [r4, 0x12] - movs r2, 0 - bl GetMapName - ldr r0, =gStringVar3 - ldrh r2, [r4, 0xE] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldrb r0, [r4, 0x11] - cmp r0, 0x1 - bne _080F2450 - ldr r1, =gUnknown_0203A030 - movs r0, 0x3 - strb r0, [r1] - b _080F24C0 - .pool -_080F2450: - ldr r1, =gUnknown_0203A030 - movs r0, 0x2 - strb r0, [r1] - b _080F24C0 - .pool -_080F245C: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x2] - bl sub_81DB5E8 - ldrb r1, [r4, 0x10] - movs r0, 0x1 - bl sub_80EF340 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - bne _080F2494 - ldr r1, =gUnknown_0203A030 - movs r0, 0x5 - strb r0, [r1] - b _080F24C0 - .pool -_080F2494: - ldr r1, =gUnknown_0203A030 - movs r0, 0x4 - strb r0, [r1] - b _080F24C0 - .pool -_080F24A0: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x2] - bl sub_81DB5E8 - ldr r1, =gUnknown_0203A030 - movs r0, 0x6 - strb r0, [r1] - b _080F24C0 - .pool -_080F24BC: - bl TVShowDone -_080F24C0: - ldr r0, =gUnknown_0858D394 - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl box_related_two__2 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShowPokemonTodayFailedCapture - - thumb_func_start DoTVShowPokemonFanClubLetter -DoTVShowPokemonFanClubLetter: @ 80F24D8 - push {r4-r7,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r5, r1, r0 - ldr r1, =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, =gUnknown_0203A030 - ldrb r7, [r0] - adds r6, r0, 0 - cmp r7, 0x33 - bls _080F2500 - b _080F26F0 -_080F2500: - lsls r0, r7, 2 - ldr r1, =_080F2524 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F2524: - .4byte _080F25F4 - .4byte _080F2628 - .4byte _080F2654 - .4byte _080F265A - .4byte _080F2672 - .4byte _080F2672 - .4byte _080F2672 - .4byte _080F2684 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26F0 - .4byte _080F26A6 - .4byte _080F26CC -_080F25F4: - ldr r0, =gStringVar1 - adds r1, r5, 0 - adds r1, 0x10 - ldrb r2, [r5, 0x18] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r2, [r5, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r1, =gUnknown_0203A030 - movs r0, 0x32 - strb r0, [r1] - b _080F26F0 - .pool -_080F2628: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - ands r0, r1 - adds r2, r0, 0x1 - cmp r2, 0x1 - bne _080F2648 - ldr r1, =gUnknown_0203A030 - movs r0, 0x2 - strb r0, [r1] - b _080F26F0 - .pool -_080F2648: - ldr r1, =gUnknown_0203A030 - adds r0, r2, 0x2 - strb r0, [r1] - b _080F26F0 - .pool -_080F2654: - movs r0, 0x33 - strb r0, [r6] - b _080F26F0 -_080F265A: - bl Random - ldrb r4, [r6] - adds r4, 0x1 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - adds r0, r4 - strb r0, [r6] - b _080F26F0 -_080F2672: - adds r0, r5, 0 - bl sub_80EFB58 - ldr r1, =gUnknown_0203A030 - movs r0, 0x7 - strb r0, [r1] - b _080F26F0 - .pool -_080F2684: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1F - bl __umodsi3 - adds r0, 0x46 - lsls r0, 16 - lsrs r2, r0, 16 - movs r0, 0x2 - adds r1, r2, 0 - bl sub_80EF340 - bl TVShowDone - b _080F26F0 -_080F26A6: - ldr r4, =gStringVar4 - adds r1, r5, 0x4 - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertEasyChatWordsToString - adds r0, r4, 0 - bl box_related_two__2 - ldr r1, =gUnknown_0203A030 - movs r0, 0x1 - strb r0, [r1] - b _080F26FC - .pool -_080F26CC: - ldr r4, =gStringVar4 - adds r1, r5, 0x4 - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertEasyChatWordsToString - adds r0, r4, 0 - bl box_related_two__2 - ldr r1, =gUnknown_0203A030 - movs r0, 0x3 - strb r0, [r1] - b _080F26FC - .pool -_080F26F0: - ldr r0, =gUnknown_0858D150 - lsls r1, r7, 2 - adds r1, r0 - ldr r0, [r1] - bl box_related_two__2 -_080F26FC: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShowPokemonFanClubLetter - - thumb_func_start DoTVShowRecentHappenings -DoTVShowRecentHappenings: @ 80F2708 - push {r4-r7,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r5, r1, r0 - ldr r1, =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, =gUnknown_0203A030 - ldrb r6, [r0] - adds r7, r0, 0 - cmp r6, 0x32 - bls _080F2730 - b _080F288C -_080F2730: - lsls r0, r6, 2 - ldr r1, =_080F2754 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F2754: - .4byte _080F2820 - .4byte _080F2844 - .4byte _080F285C - .4byte _080F285C - .4byte _080F285C - .4byte _080F2862 - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F288C - .4byte _080F2868 -_080F2820: - ldr r0, =gStringVar1 - adds r1, r5, 0 - adds r1, 0x10 - ldrb r2, [r5, 0x18] - bl sub_81DB5E8 - adds r0, r5, 0 - bl sub_80EFB58 - ldr r1, =gUnknown_0203A030 - movs r0, 0x32 - strb r0, [r1] - b _080F288C - .pool -_080F2844: - bl Random - ldrb r4, [r7] - adds r4, 0x1 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - adds r0, r4 - strb r0, [r7] - b _080F288C -_080F285C: - movs r0, 0x5 - strb r0, [r7] - b _080F288C -_080F2862: - bl TVShowDone - b _080F288C -_080F2868: - ldr r4, =gStringVar4 - adds r1, r5, 0x4 - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertEasyChatWordsToString - adds r0, r4, 0 - bl box_related_two__2 - ldr r1, =gUnknown_0203A030 - movs r0, 0x1 - strb r0, [r1] - b _080F2898 - .pool -_080F288C: - ldr r0, =gUnknown_0858D170 - lsls r1, r6, 2 - adds r1, r0 - ldr r0, [r1] - bl box_related_two__2 -_080F2898: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShowRecentHappenings - - thumb_func_start DoTVShowPokemonFanClubOpinions -DoTVShowPokemonFanClubOpinions: @ 80F28A4 - push {r4-r6,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r6, =gUnknown_0203A030 - ldrb r5, [r6] - cmp r5, 0x3 - bgt _080F28E8 - cmp r5, 0x1 - bge _080F2930 - cmp r5, 0 - beq _080F28EE - b _080F297E - .pool -_080F28E8: - cmp r5, 0x4 - beq _080F2968 - b _080F297E -_080F28EE: - ldr r0, =gStringVar1 - adds r1, r4, 0x5 - ldrb r2, [r4, 0xD] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r2, [r4, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, =gStringVar3 - adds r1, r4, 0 - adds r1, 0x10 - ldrb r2, [r4, 0xE] - bl sub_81DB5E8 - ldrb r0, [r4, 0x4] - lsrs r0, 4 - adds r0, 0x1 - strb r0, [r6] - b _080F297E - .pool -_080F2930: - ldr r0, =gStringVar1 - adds r1, r4, 0x5 - ldrb r2, [r4, 0xD] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r2, [r4, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, =gStringVar3 - ldrh r1, [r4, 0x1C] - bl CopyEasyChatWord - movs r0, 0x4 - strb r0, [r6] - b _080F297E - .pool -_080F2968: - ldr r0, =gStringVar1 - adds r1, r4, 0x5 - ldrb r2, [r4, 0xD] - bl sub_81DB5E8 - ldr r0, =gStringVar3 - ldrh r1, [r4, 0x1E] - bl CopyEasyChatWord - bl TVShowDone -_080F297E: - ldr r0, =gUnknown_0858D188 - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl box_related_two__2 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShowPokemonFanClubOpinions - - thumb_func_start DoTVShowDummiedOut -DoTVShowDummiedOut: @ 80F299C - bx lr - thumb_func_end DoTVShowDummiedOut - - thumb_func_start DoTVShowPokemonNewsMassOutbreak -DoTVShowPokemonNewsMassOutbreak: @ 80F29A0 - push {r4,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r4, [r2] - adds r4, r0 - ldr r0, =gStringVar1 - ldrb r1, [r4, 0x10] - movs r2, 0 - bl GetMapName - ldr r0, =gStringVar2 - ldrh r2, [r4, 0xC] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - bl TVShowDone - bl StartMassOutbreak - ldr r1, =gUnknown_0858D19C - ldr r0, =gUnknown_0203A030 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl box_related_two__2 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShowPokemonNewsMassOutbreak - - thumb_func_start DoTVShowPokemonContestLiveUpdates -DoTVShowPokemonContestLiveUpdates: @ 80F2A10 - push {r4-r7,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r6, r1, r0 - ldr r1, =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, =gUnknown_0203A030 - ldrb r7, [r0] - adds r2, r0, 0 - cmp r7, 0x20 - bls _080F2A38 - b _080F311C -_080F2A38: - lsls r0, r7, 2 - ldr r1, =_080F2A5C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F2A5C: - .4byte _080F2AE0 - .4byte _080F2B54 - .4byte _080F2BA2 - .4byte _080F2BC8 - .4byte _080F2BF4 - .4byte _080F2D2C - .4byte _080F2D40 - .4byte _080F2D54 - .4byte _080F2D68 - .4byte _080F2DE8 - .4byte _080F2DFC - .4byte _080F2E10 - .4byte _080F2E24 - .4byte _080F2E38 - .4byte _080F2E4C - .4byte _080F2ECC - .4byte _080F2EE0 - .4byte _080F2EF4 - .4byte _080F2F08 - .4byte _080F2F1C - .4byte _080F2F30 - .4byte _080F2F44 - .4byte _080F2F58 - .4byte _080F2F94 - .4byte _080F3064 - .4byte _080F3080 - .4byte _080F30E0 - .4byte _080F30E0 - .4byte _080F30A8 - .4byte _080F30AE - .4byte _080F30E0 - .4byte _080F30E0 - .4byte _080F30FC -_080F2AE0: - ldr r0, =gStringVar1 - ldrb r1, [r6, 0x1C] - bl sub_818E868 - ldr r0, =gStringVar2 - ldrh r2, [r6, 0x12] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, =gStringVar3 - adds r1, r6, 0 - adds r1, 0x14 - ldrb r2, [r6, 0x1D] - bl sub_81DB5E8 - ldrb r0, [r6, 0xD] - ldrb r1, [r6, 0xE] - cmp r0, r1 - bne _080F2B38 - cmp r0, 0 - bne _080F2B2C - ldr r1, =gUnknown_0203A030 - movs r0, 0x1 - strb r0, [r1] - b _080F311C - .pool -_080F2B2C: - ldr r1, =gUnknown_0203A030 - movs r0, 0x3 - strb r0, [r1] - b _080F311C - .pool -_080F2B38: - cmp r0, r1 - bls _080F2B48 - ldr r1, =gUnknown_0203A030 - movs r0, 0x2 - strb r0, [r1] - b _080F311C - .pool -_080F2B48: - ldr r1, =gUnknown_0203A030 - movs r0, 0x4 - strb r0, [r1] - b _080F311C - .pool -_080F2B54: - ldr r0, =gStringVar2 - ldrh r2, [r6, 0x12] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldrb r1, [r6, 0xF] - cmp r1, 0x8 - bne _080F2B6C - b _080F2CF0 -_080F2B6C: - cmp r1, 0x8 - bgt _080F2B88 -_080F2B70: - cmp r1, 0x2 - bne _080F2B76 - b _080F2CD8 -_080F2B76: - cmp r1, 0x2 - bgt _080F2B7C - b _080F2C96 -_080F2B7C: - b _080F2CAC - .pool -_080F2B88: - cmp r1, 0x20 - bne _080F2B8E - b _080F2D08 -_080F2B8E: - cmp r1, 0x20 - bgt _080F2B94 - b _080F2CBA -_080F2B94: - cmp r1, 0x40 - bne _080F2B9A - b _080F2D14 -_080F2B9A: - cmp r1, 0x80 - beq _080F2BA0 - b _080F311C -_080F2BA0: - b _080F2D20 -_080F2BA2: - ldr r0, =gStringVar2 - ldrh r2, [r6, 0x12] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy -_080F2BB2: - ldrb r1, [r6, 0xF] - cmp r1, 0x8 - bne _080F2BBA - b _080F2CF0 -_080F2BBA: - cmp r1, 0x8 - ble _080F2B70 - b _080F2B88 - .pool -_080F2BC8: - ldr r0, =gStringVar2 - ldrh r2, [r6, 0x12] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, =gStringVar3 - adds r1, r6, 0 - adds r1, 0x14 - ldrb r2, [r6, 0x1D] - bl sub_81DB5E8 - b _080F2BB2 - .pool -_080F2BF4: - ldrb r0, [r6, 0x1C] - cmp r0, 0x4 - bhi _080F2C74 - lsls r0, 2 - ldr r1, =_080F2C08 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F2C08: - .4byte _080F2C1C - .4byte _080F2C30 - .4byte _080F2C44 - .4byte _080F2C58 - .4byte _080F2C6C -_080F2C1C: - ldr r0, =gStringVar1 - ldr r1, =gText_Cool - bl StringCopy - b _080F2C74 - .pool -_080F2C30: - ldr r0, =gStringVar1 - ldr r1, =gText_Beauty - bl StringCopy - b _080F2C74 - .pool -_080F2C44: - ldr r0, =gStringVar1 - ldr r1, =gText_Cute - bl StringCopy - b _080F2C74 - .pool -_080F2C58: - ldr r0, =gStringVar1 - ldr r1, =gText_Smart - bl StringCopy - b _080F2C74 - .pool -_080F2C6C: - ldr r0, =gStringVar1 - ldr r1, =gText_Tough - bl StringCopy -_080F2C74: - ldr r0, =gStringVar2 - ldrh r2, [r6, 0x12] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldrb r1, [r6, 0xF] - cmp r1, 0x8 - beq _080F2CF0 - cmp r1, 0x8 - bgt _080F2CB2 - cmp r1, 0x2 - beq _080F2CD8 - cmp r1, 0x2 - bgt _080F2CAC -_080F2C96: - cmp r1, 0x1 - beq _080F2CCA - b _080F311C - .pool -_080F2CAC: - cmp r1, 0x4 - beq _080F2CE4 - b _080F311C -_080F2CB2: - cmp r1, 0x20 - beq _080F2D08 - cmp r1, 0x20 - bgt _080F2CC0 -_080F2CBA: - cmp r1, 0x10 - beq _080F2CFC - b _080F311C -_080F2CC0: - cmp r1, 0x40 - beq _080F2D14 - cmp r1, 0x80 - beq _080F2D20 - b _080F311C -_080F2CCA: - ldr r1, =gUnknown_0203A030 - movs r0, 0x8 - strb r0, [r1] - b _080F311C - .pool -_080F2CD8: - ldr r1, =gUnknown_0203A030 - movs r0, 0x5 - strb r0, [r1] - b _080F311C - .pool -_080F2CE4: - ldr r1, =gUnknown_0203A030 - movs r0, 0xE - strb r0, [r1] - b _080F311C - .pool -_080F2CF0: - ldr r1, =gUnknown_0203A030 - movs r0, 0x7 - strb r0, [r1] - b _080F311C - .pool -_080F2CFC: - ldr r1, =gUnknown_0203A030 - movs r0, 0x6 - strb r0, [r1] - b _080F311C - .pool -_080F2D08: - ldr r1, =gUnknown_0203A030 - movs r0, 0x14 - strb r0, [r1] - b _080F311C - .pool -_080F2D14: - ldr r1, =gUnknown_0203A030 - movs r0, 0x15 - strb r0, [r1] - b _080F311C - .pool -_080F2D20: - ldr r1, =gUnknown_0203A030 - movs r0, 0x16 - strb r0, [r1] - b _080F311C - .pool -_080F2D2C: - ldr r0, =gStringVar2 - ldrh r2, [r6, 0x12] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - b _080F2F72 - .pool -_080F2D40: - ldr r0, =gStringVar2 - ldrh r2, [r6, 0x12] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - b _080F2F72 - .pool -_080F2D54: - ldr r0, =gStringVar2 - ldrh r2, [r6, 0x12] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - b _080F2F72 - .pool -_080F2D68: - ldr r0, =gStringVar2 - ldrh r2, [r6, 0x12] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldrb r0, [r6, 0x1C] - cmp r0, 0x4 - bls _080F2D80 - b _080F311C -_080F2D80: - lsls r0, 2 - ldr r1, =_080F2D98 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F2D98: - .4byte _080F2DAC - .4byte _080F2DB8 - .4byte _080F2DC4 - .4byte _080F2DD0 - .4byte _080F2DDC -_080F2DAC: - ldr r1, =gUnknown_0203A030 - movs r0, 0x9 - strb r0, [r1] - b _080F311C - .pool -_080F2DB8: - ldr r1, =gUnknown_0203A030 - movs r0, 0xA - strb r0, [r1] - b _080F311C - .pool -_080F2DC4: - ldr r1, =gUnknown_0203A030 - movs r0, 0xB - strb r0, [r1] - b _080F311C - .pool -_080F2DD0: - ldr r1, =gUnknown_0203A030 - movs r0, 0xC - strb r0, [r1] - b _080F311C - .pool -_080F2DDC: - ldr r1, =gUnknown_0203A030 - movs r0, 0xD - strb r0, [r1] - b _080F311C - .pool -_080F2DE8: - ldr r0, =gStringVar2 - ldrh r2, [r6, 0x12] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - b _080F2F72 - .pool -_080F2DFC: - ldr r0, =gStringVar2 - ldrh r2, [r6, 0x12] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - b _080F2F72 - .pool -_080F2E10: - ldr r0, =gStringVar2 - ldrh r2, [r6, 0x12] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - b _080F2F72 - .pool -_080F2E24: - ldr r0, =gStringVar2 - ldrh r2, [r6, 0x12] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - b _080F2F72 - .pool -_080F2E38: - ldr r0, =gStringVar2 - ldrh r2, [r6, 0x12] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - b _080F2F72 - .pool -_080F2E4C: - ldr r0, =gStringVar2 - ldrh r2, [r6, 0x12] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldrb r0, [r6, 0x1C] - cmp r0, 0x4 - bls _080F2E64 - b _080F311C -_080F2E64: - lsls r0, 2 - ldr r1, =_080F2E7C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F2E7C: - .4byte _080F2E90 - .4byte _080F2E9C - .4byte _080F2EA8 - .4byte _080F2EB4 - .4byte _080F2EC0 -_080F2E90: - ldr r1, =gUnknown_0203A030 - movs r0, 0xF - strb r0, [r1] - b _080F311C - .pool -_080F2E9C: - ldr r1, =gUnknown_0203A030 - movs r0, 0x10 - strb r0, [r1] - b _080F311C - .pool -_080F2EA8: - ldr r1, =gUnknown_0203A030 - movs r0, 0x11 - strb r0, [r1] - b _080F311C - .pool -_080F2EB4: - ldr r1, =gUnknown_0203A030 - movs r0, 0x12 - strb r0, [r1] - b _080F311C - .pool -_080F2EC0: - ldr r1, =gUnknown_0203A030 - movs r0, 0x13 - strb r0, [r1] - b _080F311C - .pool -_080F2ECC: - ldr r0, =gStringVar2 - ldrh r2, [r6, 0x12] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - b _080F2F72 - .pool -_080F2EE0: - ldr r0, =gStringVar2 - ldrh r2, [r6, 0x12] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - b _080F2F72 - .pool -_080F2EF4: - ldr r0, =gStringVar2 - ldrh r2, [r6, 0x12] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - b _080F2F72 - .pool -_080F2F08: - ldr r0, =gStringVar2 - ldrh r2, [r6, 0x12] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - b _080F2F72 - .pool -_080F2F1C: - ldr r0, =gStringVar2 - ldrh r2, [r6, 0x12] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - b _080F2F72 - .pool -_080F2F30: - ldr r0, =gStringVar2 - ldrh r2, [r6, 0x12] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - b _080F2F72 - .pool -_080F2F44: - ldr r0, =gStringVar2 - ldrh r2, [r6, 0x12] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - b _080F2F72 - .pool -_080F2F58: - ldr r0, =gStringVar2 - ldrh r2, [r6, 0x12] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, =gStringVar3 - ldrh r2, [r6, 0x10] - movs r1, 0xD - muls r1, r2 - ldr r2, =gMoveNames -_080F2F72: - adds r1, r2 - bl StringCopy - ldr r1, =gUnknown_0203A030 - movs r0, 0x17 - strb r0, [r1] - b _080F311C - .pool -_080F2F94: - ldr r0, =gStringVar1 - ldrh r1, [r6, 0x12] - movs r5, 0xB - muls r1, r5 - ldr r4, =gSpeciesNames - adds r1, r4 - bl StringCopy - ldr r0, =gStringVar2 - adds r1, r6, 0x4 - ldrb r2, [r6, 0x1E] - bl sub_81DB5E8 - ldr r0, =gStringVar3 - ldrh r1, [r6, 0x2] - muls r1, r5 - adds r1, r4 - bl StringCopy - ldrb r0, [r6, 0xC] - cmp r0, 0x8 - beq _080F3028 - cmp r0, 0x8 - bgt _080F2FEA - cmp r0, 0x2 - beq _080F3010 - cmp r0, 0x2 - bgt _080F2FE4 - cmp r0, 0x1 - beq _080F3002 - b _080F311C - .pool -_080F2FE4: - cmp r0, 0x4 - beq _080F301C - b _080F311C -_080F2FEA: - cmp r0, 0x20 - beq _080F3040 - cmp r0, 0x20 - bgt _080F2FF8 - cmp r0, 0x10 - beq _080F3034 - b _080F311C -_080F2FF8: - cmp r0, 0x40 - beq _080F304C - cmp r0, 0x80 - beq _080F3058 - b _080F311C -_080F3002: - ldr r1, =gUnknown_0203A030 - movs r0, 0x1F - strb r0, [r1] - b _080F311C - .pool -_080F3010: - ldr r1, =gUnknown_0203A030 - movs r0, 0x1E - strb r0, [r1] - b _080F311C - .pool -_080F301C: - ldr r1, =gUnknown_0203A030 - movs r0, 0x1D - strb r0, [r1] - b _080F311C - .pool -_080F3028: - ldr r1, =gUnknown_0203A030 - movs r0, 0x1C - strb r0, [r1] - b _080F311C - .pool -_080F3034: - ldr r1, =gUnknown_0203A030 - movs r0, 0x1B - strb r0, [r1] - b _080F311C - .pool -_080F3040: - ldr r1, =gUnknown_0203A030 - movs r0, 0x1A - strb r0, [r1] - b _080F311C - .pool -_080F304C: - ldr r1, =gUnknown_0203A030 - movs r0, 0x19 - strb r0, [r1] - b _080F311C - .pool -_080F3058: - ldr r1, =gUnknown_0203A030 - movs r0, 0x18 - strb r0, [r1] - b _080F311C - .pool -_080F3064: - ldr r0, =gStringVar1 - ldrh r2, [r6, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - b _080F30EA - .pool -_080F3080: - ldr r0, =gStringVar1 - adds r1, r6, 0x4 - ldrb r2, [r6, 0x1E] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r2, [r6, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - b _080F30EA - .pool -_080F30A8: - movs r0, 0x20 - strb r0, [r2] - b _080F311C -_080F30AE: - ldr r0, =gStringVar1 - adds r1, r6, 0 - adds r1, 0x14 - ldrb r2, [r6, 0x1D] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r2, [r6, 0x12] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, =gStringVar3 - b _080F30E2 - .pool -_080F30E0: - ldr r0, =gStringVar1 -_080F30E2: - adds r1, r6, 0x4 - ldrb r2, [r6, 0x1E] - bl sub_81DB5E8 -_080F30EA: - ldr r1, =gUnknown_0203A030 - movs r0, 0x20 - strb r0, [r1] - b _080F311C - .pool -_080F30FC: - ldr r0, =gStringVar1 - adds r1, r6, 0 - adds r1, 0x14 - ldrb r2, [r6, 0x1D] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r2, [r6, 0x12] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - bl TVShowDone -_080F311C: - ldr r0, =gUnknown_0858D27C - lsls r1, r7, 2 - adds r1, r0 - ldr r0, [r1] - bl box_related_two__2 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShowPokemonContestLiveUpdates - - thumb_func_start DoTVShowPokemonBattleUpdate -DoTVShowPokemonBattleUpdate: @ 80F3140 - push {r4,r5,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, =gUnknown_0203A030 - ldrb r5, [r0] - adds r2, r0, 0 - cmp r5, 0x7 - bls _080F3168 - b _080F3362 -_080F3168: - lsls r0, r5, 2 - ldr r1, =_080F318C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F318C: - .4byte _080F31AC - .4byte _080F31CA - .4byte _080F321C - .4byte _080F3268 - .4byte _080F329C - .4byte _080F32C0 - .4byte _080F32EC - .4byte _080F3338 -_080F31AC: - ldrb r1, [r4, 0x18] - cmp r1, 0 - bge _080F31B4 - b _080F3362 -_080F31B4: - cmp r1, 0x1 - ble _080F31BE - cmp r1, 0x2 - beq _080F31C4 - b _080F3362 -_080F31BE: - movs r0, 0x1 - strb r0, [r2] - b _080F3362 -_080F31C4: - movs r0, 0x5 - strb r0, [r2] - b _080F3362 -_080F31CA: - ldr r0, =gStringVar1 - adds r1, r4, 0x4 - ldrb r2, [r4, 0x19] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - adds r1, r4, 0 - adds r1, 0xC - ldrb r2, [r4, 0x1A] - bl sub_81DB5E8 - ldrb r0, [r4, 0x18] - cmp r0, 0 - bne _080F3200 - ldr r0, =gStringVar3 - ldr r1, =gText_Single - bl StringCopy - b _080F3208 - .pool -_080F3200: - ldr r0, =gStringVar3 - ldr r1, =gText_Double - bl StringCopy -_080F3208: - ldr r1, =gUnknown_0203A030 - movs r0, 0x2 - strb r0, [r1] - b _080F3362 - .pool -_080F321C: - ldr r0, =gStringVar1 - adds r1, r4, 0x4 - ldrb r2, [r4, 0x19] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r2, [r4, 0x16] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, =gStringVar3 - ldrh r2, [r4, 0x14] - movs r1, 0xD - muls r1, r2 - ldr r2, =gMoveNames - adds r1, r2 - bl StringCopy - ldr r1, =gUnknown_0203A030 - movs r0, 0x3 - strb r0, [r1] - b _080F3362 - .pool -_080F3268: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0xC - ldrb r2, [r4, 0x1A] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r2, [r4, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r1, =gUnknown_0203A030 - movs r0, 0x4 - strb r0, [r1] - b _080F3362 - .pool -_080F329C: - ldr r0, =gStringVar1 - adds r1, r4, 0x4 - ldrb r2, [r4, 0x19] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - adds r1, r4, 0 - adds r1, 0xC - ldrb r2, [r4, 0x1A] - bl sub_81DB5E8 - bl TVShowDone - b _080F3362 - .pool -_080F32C0: - ldr r0, =gStringVar1 - adds r1, r4, 0x4 - ldrb r2, [r4, 0x19] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - adds r1, r4, 0 - adds r1, 0xC - ldrb r2, [r4, 0x1A] - bl sub_81DB5E8 - ldr r1, =gUnknown_0203A030 - movs r0, 0x6 - strb r0, [r1] - b _080F3362 - .pool -_080F32EC: - ldr r0, =gStringVar1 - adds r1, r4, 0x4 - ldrb r2, [r4, 0x19] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r2, [r4, 0x16] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, =gStringVar3 - ldrh r2, [r4, 0x14] - movs r1, 0xD - muls r1, r2 - ldr r2, =gMoveNames - adds r1, r2 - bl StringCopy - ldr r1, =gUnknown_0203A030 - movs r0, 0x7 - strb r0, [r1] - b _080F3362 - .pool -_080F3338: - ldr r0, =gStringVar1 - adds r1, r4, 0x4 - ldrb r2, [r4, 0x19] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - adds r1, r4, 0 - adds r1, 0xC - ldrb r2, [r4, 0x1A] - bl sub_81DB5E8 - ldr r0, =gStringVar3 - ldrh r2, [r4, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - bl TVShowDone -_080F3362: - ldr r0, =gUnknown_0858D300 - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl box_related_two__2 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShowPokemonBattleUpdate - - thumb_func_start DoTVShow3CheersForPokeblocks -DoTVShow3CheersForPokeblocks: @ 80F3388 - push {r4,r5,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, =gUnknown_0203A030 - ldrb r5, [r0] - cmp r5, 0x5 - bls _080F33AE - b _080F3624 -_080F33AE: - lsls r0, r5, 2 - ldr r1, =_080F33D0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F33D0: - .4byte _080F33E8 - .4byte _080F3418 - .4byte _080F3500 - .4byte _080F350C - .4byte _080F35F4 - .4byte _080F3620 -_080F33E8: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0xC - ldrb r2, [r4, 0x14] - bl sub_81DB5E8 - ldrb r0, [r4, 0x2] - cmp r0, 0x14 - bls _080F340C - ldr r1, =gUnknown_0203A030 - movs r0, 0x1 - strb r0, [r1] - b _080F3624 - .pool -_080F340C: - ldr r1, =gUnknown_0203A030 - movs r0, 0x3 - strb r0, [r1] - b _080F3624 - .pool -_080F3418: - ldrb r0, [r4, 0x3] - lsls r0, 29 - lsrs r0, 29 - cmp r0, 0x4 - bhi _080F349C - lsls r0, 2 - ldr r1, =_080F3430 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F3430: - .4byte _080F3444 - .4byte _080F3458 - .4byte _080F346C - .4byte _080F3480 - .4byte _080F3494 -_080F3444: - ldr r0, =gStringVar1 - ldr r1, =gText_Spicy2 - bl StringCopy - b _080F349C - .pool -_080F3458: - ldr r0, =gStringVar1 - ldr r1, =gText_Dry2 - bl StringCopy - b _080F349C - .pool -_080F346C: - ldr r0, =gStringVar1 - ldr r1, =gText_Sweet2 - bl StringCopy - b _080F349C - .pool -_080F3480: - ldr r0, =gStringVar1 - ldr r1, =gText_Bitter2 - bl StringCopy - b _080F349C - .pool -_080F3494: - ldr r0, =gStringVar1 - ldr r1, =gText_Sour2 - bl StringCopy -_080F349C: - ldrb r0, [r4, 0x2] - cmp r0, 0x18 - bls _080F34BC - ldr r0, =gStringVar2 - ldr r1, =gText_Excellent - bl StringCopy - b _080F34DC - .pool -_080F34BC: - cmp r0, 0x16 - bls _080F34D4 - ldr r0, =gStringVar2 - ldr r1, =gText_VeryGood - bl StringCopy - b _080F34DC - .pool -_080F34D4: - ldr r0, =gStringVar2 - ldr r1, =gText_Good - bl StringCopy -_080F34DC: - ldr r0, =gStringVar3 - adds r1, r4, 0 - adds r1, 0xC - ldrb r2, [r4, 0x14] - bl sub_81DB5E8 - ldr r1, =gUnknown_0203A030 - movs r0, 0x2 - strb r0, [r1] - b _080F3624 - .pool -_080F3500: - ldr r0, =gStringVar1 - adds r1, r4, 0x4 - ldrb r2, [r4, 0x15] - b _080F3606 - .pool -_080F350C: - ldrb r0, [r4, 0x3] - lsls r0, 29 - lsrs r0, 29 - cmp r0, 0x4 - bhi _080F3590 - lsls r0, 2 - ldr r1, =_080F3524 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F3524: - .4byte _080F3538 - .4byte _080F354C - .4byte _080F3560 - .4byte _080F3574 - .4byte _080F3588 -_080F3538: - ldr r0, =gStringVar1 - ldr r1, =gText_Spicy2 - bl StringCopy - b _080F3590 - .pool -_080F354C: - ldr r0, =gStringVar1 - ldr r1, =gText_Dry2 - bl StringCopy - b _080F3590 - .pool -_080F3560: - ldr r0, =gStringVar1 - ldr r1, =gText_Sweet2 - bl StringCopy - b _080F3590 - .pool -_080F3574: - ldr r0, =gStringVar1 - ldr r1, =gText_Bitter2 - bl StringCopy - b _080F3590 - .pool -_080F3588: - ldr r0, =gStringVar1 - ldr r1, =gText_Sour2 - bl StringCopy -_080F3590: - ldrb r0, [r4, 0x2] - cmp r0, 0x10 - bls _080F35B0 - ldr r0, =gStringVar2 - ldr r1, =gText_SoSo - bl StringCopy - b _080F35D0 - .pool -_080F35B0: - cmp r0, 0xD - bls _080F35C8 - ldr r0, =gStringVar2 - ldr r1, =gText_Bad - bl StringCopy - b _080F35D0 - .pool -_080F35C8: - ldr r0, =gStringVar2 - ldr r1, =gText_TheWorst - bl StringCopy -_080F35D0: - ldr r0, =gStringVar3 - adds r1, r4, 0 - adds r1, 0xC - ldrb r2, [r4, 0x14] - bl sub_81DB5E8 - ldr r1, =gUnknown_0203A030 - movs r0, 0x4 - strb r0, [r1] - b _080F3624 - .pool -_080F35F4: - ldr r0, =gStringVar1 - adds r1, r4, 0x4 - ldrb r2, [r4, 0x15] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - adds r1, r4, 0 - adds r1, 0xC - ldrb r2, [r4, 0x14] -_080F3606: - bl sub_81DB5E8 - ldr r1, =gUnknown_0203A030 - movs r0, 0x5 - strb r0, [r1] - b _080F3624 - .pool -_080F3620: - bl TVShowDone -_080F3624: - ldr r0, =gUnknown_0858D228 - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl box_related_two__2 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShow3CheersForPokeblocks - - thumb_func_start DoTVShowInSearchOfTrainers -DoTVShowInSearchOfTrainers: @ 80F363C - push {r4-r7,lr} - ldr r0, =gScriptResult - movs r1, 0 - strh r1, [r0] - ldr r0, =gUnknown_0203A030 - ldrb r7, [r0] - adds r2, r0, 0 - cmp r7, 0x8 - bls _080F3650 - b _080F37EA -_080F3650: - lsls r0, r7, 2 - ldr r1, =_080F3668 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F3668: - .4byte _080F368C - .4byte _080F36D4 - .4byte _080F36DA - .4byte _080F372C - .4byte _080F379C - .4byte _080F379C - .4byte _080F379C - .4byte _080F379C - .4byte _080F37A2 -_080F368C: - ldr r0, =gStringVar1 - ldr r4, =gSaveBlock1Ptr - ldr r1, [r4] - ldr r2, =0x00002bac - adds r1, r2 - ldrb r1, [r1] - movs r2, 0 - bl GetMapName - ldr r0, [r4] - ldr r1, =0x00002bad - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - bls _080F36C8 - ldr r1, =gUnknown_0203A030 - movs r0, 0x1 - strb r0, [r1] - b _080F37EA - .pool -_080F36C8: - ldr r1, =gUnknown_0203A030 - movs r0, 0x2 - strb r0, [r1] - b _080F37EA - .pool -_080F36D4: - movs r0, 0x2 - strb r0, [r2] - b _080F37EA -_080F36DA: - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - ldr r1, =0x00002bae - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080F36FC - movs r0, 0x4 - strb r0, [r2] - b _080F37EA - .pool -_080F36FC: - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080F370A - movs r0, 0x5 - strb r0, [r2] - b _080F37EA -_080F370A: - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _080F3718 - movs r0, 0x6 - strb r0, [r2] - b _080F37EA -_080F3718: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080F3726 - movs r0, 0x7 - strb r0, [r2] - b _080F37EA -_080F3726: - movs r0, 0x3 - strb r0, [r2] - b _080F37EA -_080F372C: - ldr r0, =gStringVar1 - ldr r4, =gSaveBlock1Ptr - ldr r1, [r4] - ldr r2, =0x00002ba4 - adds r1, r2 - ldrh r1, [r1] - movs r6, 0xB - muls r1, r6 - ldr r5, =gSpeciesNames - adds r1, r5 - bl StringCopy - ldr r0, =gStringVar2 - ldr r1, [r4] - ldr r2, =0x00002ba8 - adds r1, r2 - ldrh r2, [r1] - movs r1, 0xD - muls r1, r2 - ldr r2, =gMoveNames - adds r1, r2 - bl StringCopy - ldr r0, =gStringVar3 - ldr r1, [r4] - ldr r2, =0x00002ba6 - adds r1, r2 - ldrh r1, [r1] - muls r1, r6 - adds r1, r5 - bl StringCopy - ldr r1, =gUnknown_0203A030 - movs r0, 0x8 - strb r0, [r1] - b _080F37EA - .pool -_080F379C: - movs r0, 0x8 - strb r0, [r2] - b _080F37EA -_080F37A2: - ldr r0, =gStringVar1 - ldr r4, =gSaveBlock1Ptr - ldr r1, [r4] - ldr r2, =0x00002baa - adds r1, r2 - ldrh r1, [r1] - bl CopyEasyChatWord - ldr r0, =gStringVar2 - ldr r1, [r4] - ldr r2, =0x00002ba4 - adds r1, r2 - ldrh r1, [r1] - movs r6, 0xB - muls r1, r6 - ldr r5, =gSpeciesNames - adds r1, r5 - bl StringCopy - ldr r0, =gStringVar3 - ldr r1, [r4] - ldr r2, =0x00002ba6 - adds r1, r2 - ldrh r1, [r1] - muls r1, r6 - adds r1, r5 - bl StringCopy - ldr r1, =gScriptResult - movs r0, 0x1 - strh r0, [r1] - ldr r1, =gUnknown_0203A030 - movs r0, 0 - strb r0, [r1] - bl TakeTVShowInSearchOfTrainersOffTheAir -_080F37EA: - ldr r0, =gUnknown_0858D66C - lsls r1, r7, 2 - adds r1, r0 - ldr r0, [r1] - bl box_related_two__2 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShowInSearchOfTrainers - - thumb_func_start DoTVShowPokemonAngler -DoTVShowPokemonAngler: @ 80F3828 - push {r4,r5,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r0, =gScriptResult - movs r1, 0 - strh r1, [r0] - ldrb r0, [r4, 0x2] - ldrb r2, [r4, 0x3] - cmp r0, r2 - bcs _080F3868 - ldr r0, =gUnknown_0203A030 - strb r1, [r0] - b _080F3870 - .pool -_080F3868: - ldr r1, =gUnknown_0203A030 - movs r0, 0x1 - strb r0, [r1] - adds r0, r1, 0 -_080F3870: - ldrb r5, [r0] - cmp r5, 0 - beq _080F3880 - cmp r5, 0x1 - beq _080F38B8 - b _080F38E0 - .pool -_080F3880: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x6] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r2, [r4, 0x4] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldrb r1, [r4, 0x3] - movs r0, 0x2 - bl sub_80EF340 - bl TVShowDone - b _080F38E0 - .pool -_080F38B8: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x6] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r2, [r4, 0x4] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldrb r1, [r4, 0x2] - movs r0, 0x2 - bl sub_80EF340 - bl TVShowDone -_080F38E0: - ldr r0, =gUnknown_0858D3B0 - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl box_related_two__2 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShowPokemonAngler - - thumb_func_start DoTVShowTheWorldOfMasters -DoTVShowTheWorldOfMasters: @ 80F3904 - push {r4-r6,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r6, =gUnknown_0203A030 - ldrb r5, [r6] - cmp r5, 0x1 - beq _080F3974 - cmp r5, 0x1 - bgt _080F3948 - cmp r5, 0 - beq _080F394E - b _080F39BE - .pool -_080F3948: - cmp r5, 0x2 - beq _080F3994 - b _080F39BE -_080F394E: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0xB] - bl sub_81DB5E8 - ldrh r1, [r4, 0x6] - movs r0, 0x1 - bl sub_80EF340 - ldrh r1, [r4, 0x2] - movs r0, 0x2 - bl sub_80EF340 - movs r0, 0x1 - strb r0, [r6] - b _080F39BE - .pool -_080F3974: - ldr r0, =gStringVar1 - ldrh r2, [r4, 0x8] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - movs r0, 0x2 - strb r0, [r6] - b _080F39BE - .pool -_080F3994: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0xB] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrb r1, [r4, 0xA] - movs r2, 0 - bl GetMapName - ldr r0, =gStringVar3 - ldrh r2, [r4, 0x4] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - bl TVShowDone -_080F39BE: - ldr r0, =gUnknown_0858D3B8 - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl box_related_two__2 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShowTheWorldOfMasters - - thumb_func_start DoTVShowTodaysRivalTrainer -DoTVShowTodaysRivalTrainer: @ 80F39E4 - push {r4,r5,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, =gUnknown_0203A030 - ldrb r5, [r0] - adds r2, r0, 0 - cmp r5, 0xA - bls _080F3A0C - b _080F3BE8 -_080F3A0C: - lsls r0, r5, 2 - ldr r1, =_080F3A30 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F3A30: - .4byte _080F3A5C - .4byte _080F3B30 - .4byte _080F3B58 - .4byte _080F3B90 - .4byte _080F3BA2 - .4byte _080F3BC4 - .4byte _080F3BD8 - .4byte _080F3A92 - .4byte _080F3AC0 - .4byte _080F3ADC - .4byte _080F3AF8 -_080F3A5C: - ldrb r0, [r4, 0x7] - cmp r0, 0x56 - beq _080F3A6C - cmp r0, 0x57 - beq _080F3A72 - movs r0, 0x7 - strb r0, [r2] - b _080F3BE8 -_080F3A6C: - movs r0, 0x8 - strb r0, [r2] - b _080F3BE8 -_080F3A72: - ldrh r1, [r4, 0xA] - ldr r0, =0x00000117 - cmp r1, r0 - bgt _080F3A8C - subs r0, 0x2 - cmp r1, r0 - blt _080F3A8C - movs r0, 0xA - strb r0, [r2] - b _080F3BE8 - .pool -_080F3A8C: - movs r0, 0x9 - strb r0, [r2] - b _080F3BE8 -_080F3A92: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0xC] - bl sub_81DB5E8 - ldrh r1, [r4, 0x2] - movs r0, 0x1 - bl sub_80EF340 - ldr r0, =gStringVar3 - ldrb r1, [r4, 0x7] - movs r2, 0 - bl GetMapName -_080F3AB0: - ldrb r0, [r4, 0x4] - cmp r0, 0 - bne _080F3B12 - b _080F3B24 - .pool -_080F3AC0: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0xC] - bl sub_81DB5E8 - ldrh r1, [r4, 0x2] - movs r0, 0x1 - bl sub_80EF340 - b _080F3AB0 - .pool -_080F3ADC: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0xC] - bl sub_81DB5E8 - ldrh r1, [r4, 0x2] - movs r0, 0x1 - bl sub_80EF340 - b _080F3AB0 - .pool -_080F3AF8: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0xC] - bl sub_81DB5E8 - ldrh r1, [r4, 0x2] - movs r0, 0x1 - bl sub_80EF340 - ldrb r0, [r4, 0x4] - cmp r0, 0 - beq _080F3B24 -_080F3B12: - ldr r1, =gUnknown_0203A030 - movs r0, 0x1 - strb r0, [r1] - b _080F3BE8 - .pool -_080F3B24: - ldr r1, =gUnknown_0203A030 - movs r0, 0x2 - strb r0, [r1] - b _080F3BE8 - .pool -_080F3B30: - ldrb r1, [r4, 0x4] - movs r0, 0 - bl sub_80EF340 - ldr r0, =0x000008a8 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _080F3BCC - ldr r0, [r4, 0x4] - ldr r1, =0x00ffff00 - ands r0, r1 - cmp r0, 0 - bne _080F3B6E - b _080F3B84 - .pool -_080F3B58: - ldr r0, =0x000008a8 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _080F3BCC - ldr r0, [r4, 0x4] - ldr r1, =0x00ffff00 - ands r0, r1 - cmp r0, 0 - beq _080F3B84 -_080F3B6E: - ldr r1, =gUnknown_0203A030 - movs r0, 0x4 - strb r0, [r1] - b _080F3BE8 - .pool -_080F3B84: - ldr r1, =gUnknown_0203A030 - movs r0, 0x3 - strb r0, [r1] - b _080F3BE8 - .pool -_080F3B90: - ldrh r0, [r4, 0x8] - cmp r0, 0 - bne _080F3B9C - movs r0, 0x6 - strb r0, [r2] - b _080F3BE8 -_080F3B9C: - movs r0, 0x5 - strb r0, [r2] - b _080F3BE8 -_080F3BA2: - ldrb r1, [r4, 0x6] - movs r0, 0 - bl sub_80EF340 - ldrb r1, [r4, 0x5] - movs r0, 0x1 - bl sub_80EF340 - ldrh r0, [r4, 0x8] - cmp r0, 0 - beq _080F3BCC - ldr r1, =gUnknown_0203A030 - movs r0, 0x5 - strb r0, [r1] - b _080F3BE8 - .pool -_080F3BC4: - ldrh r1, [r4, 0x8] - movs r0, 0 - bl sub_80EF340 -_080F3BCC: - ldr r1, =gUnknown_0203A030 - movs r0, 0x6 - strb r0, [r1] - b _080F3BE8 - .pool -_080F3BD8: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0xC] - bl sub_81DB5E8 - bl TVShowDone -_080F3BE8: - ldr r0, =gUnknown_0858D3C4 - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl box_related_two__2 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShowTodaysRivalTrainer - - thumb_func_start DoTVShowDewfordTrendWatcherNetwork -DoTVShowDewfordTrendWatcherNetwork: @ 80F3C04 - push {r4,r5,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, =gUnknown_0203A030 - ldrb r5, [r0] - cmp r5, 0x6 - bls _080F3C2A - b _080F3D54 -_080F3C2A: - lsls r0, r5, 2 - ldr r1, =_080F3C4C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F3C4C: - .4byte _080F3C68 - .4byte _080F3CA0 - .4byte _080F3CA0 - .4byte _080F3CD4 - .4byte _080F3D0C - .4byte _080F3D0C - .4byte _080F3D40 -_080F3C68: - ldr r0, =gStringVar1 - ldrh r1, [r4, 0x4] - bl CopyEasyChatWord - ldr r0, =gStringVar2 - ldrh r1, [r4, 0x6] - bl CopyEasyChatWord - ldrb r0, [r4, 0x8] - cmp r0, 0 - bne _080F3C94 - ldr r1, =gUnknown_0203A030 - movs r0, 0x1 - strb r0, [r1] - b _080F3D54 - .pool -_080F3C94: - ldr r1, =gUnknown_0203A030 - movs r0, 0x2 - strb r0, [r1] - b _080F3D54 - .pool -_080F3CA0: - ldr r0, =gStringVar1 - ldrh r1, [r4, 0x4] - bl CopyEasyChatWord - ldr r0, =gStringVar2 - ldrh r1, [r4, 0x6] - bl CopyEasyChatWord - ldr r0, =gStringVar3 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x9] - bl sub_81DB5E8 - ldr r1, =gUnknown_0203A030 - movs r0, 0x3 - strb r0, [r1] - b _080F3D54 - .pool -_080F3CD4: - ldr r0, =gStringVar1 - ldrh r1, [r4, 0x4] - bl CopyEasyChatWord - ldr r0, =gStringVar2 - ldrh r1, [r4, 0x6] - bl CopyEasyChatWord - ldrb r0, [r4, 0x8] - cmp r0, 0 - bne _080F3D00 - ldr r1, =gUnknown_0203A030 - movs r0, 0x4 - strb r0, [r1] - b _080F3D54 - .pool -_080F3D00: - ldr r1, =gUnknown_0203A030 - movs r0, 0x5 - strb r0, [r1] - b _080F3D54 - .pool -_080F3D0C: - ldr r0, =gStringVar1 - ldrh r1, [r4, 0x4] - bl CopyEasyChatWord - ldr r0, =gStringVar2 - ldrh r1, [r4, 0x6] - bl CopyEasyChatWord - ldr r0, =gStringVar3 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x9] - bl sub_81DB5E8 - ldr r1, =gUnknown_0203A030 - movs r0, 0x6 - strb r0, [r1] - b _080F3D54 - .pool -_080F3D40: - ldr r0, =gStringVar1 - ldrh r1, [r4, 0x4] - bl CopyEasyChatWord - ldr r0, =gStringVar2 - ldrh r1, [r4, 0x6] - bl CopyEasyChatWord - bl TVShowDone -_080F3D54: - ldr r0, =gUnknown_0858D3F0 - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl box_related_two__2 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShowDewfordTrendWatcherNetwork - - thumb_func_start DoTVShowHoennTreasureInvestigators -DoTVShowHoennTreasureInvestigators: @ 80F3D74 - push {r4-r7,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r5, r1, r0 - ldr r1, =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r7, =gUnknown_0203A030 - ldrb r6, [r7] - cmp r6, 0x1 - beq _080F3E02 - cmp r6, 0x1 - bgt _080F3DB8 - cmp r6, 0 - beq _080F3DBE - b _080F3E5C - .pool -_080F3DB8: - cmp r6, 0x2 - beq _080F3E3C - b _080F3E5C -_080F3DBE: - ldr r4, =gStringVar1 - ldrh r0, [r5, 0x2] - bl ItemId_GetItem - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldrb r0, [r5, 0x4] - cmp r0, 0x57 - bne _080F3DFC - ldrh r1, [r5, 0x6] - ldr r0, =0x00000117 - cmp r1, r0 - bgt _080F3DF0 - subs r0, 0x2 - cmp r1, r0 - blt _080F3DF0 - movs r0, 0x2 - strb r0, [r7] - b _080F3E5C - .pool -_080F3DF0: - ldr r1, =gUnknown_0203A030 - movs r0, 0x1 - strb r0, [r1] - b _080F3E5C - .pool -_080F3DFC: - movs r0, 0x1 - strb r0, [r7] - b _080F3E5C -_080F3E02: - ldr r4, =gStringVar1 - ldrh r0, [r5, 0x2] - bl ItemId_GetItem - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldr r0, =gStringVar2 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x5] - bl sub_81DB5E8 - ldr r0, =gStringVar3 - ldrb r1, [r5, 0x4] - movs r2, 0 - bl GetMapName - bl TVShowDone - b _080F3E5C - .pool -_080F3E3C: - ldr r4, =gStringVar1 - ldrh r0, [r5, 0x2] - bl ItemId_GetItem - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldr r0, =gStringVar2 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x5] - bl sub_81DB5E8 - bl TVShowDone -_080F3E5C: - ldr r0, =gUnknown_0858D40C - lsls r1, r6, 2 - adds r1, r0 - ldr r0, [r1] - bl box_related_two__2 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShowHoennTreasureInvestigators - - thumb_func_start DoTVShowFindThatGamer -DoTVShowFindThatGamer: @ 80F3E7C - push {r4,r5,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, =gUnknown_0203A030 - ldrb r5, [r0] - cmp r5, 0x1 - beq _080F3F28 - cmp r5, 0x1 - bgt _080F3EC0 - cmp r5, 0 - beq _080F3ECC - b _080F4008 - .pool -_080F3EC0: - cmp r5, 0x2 - beq _080F3F78 - cmp r5, 0x3 - bne _080F3ECA - b _080F3FCC -_080F3ECA: - b _080F4008 -_080F3ECC: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x8] - bl sub_81DB5E8 - ldrb r0, [r4, 0x3] - cmp r0, 0 - beq _080F3EE8 - cmp r0, 0x1 - beq _080F3EFC - b _080F3F04 - .pool -_080F3EE8: - ldr r0, =gStringVar2 - ldr r1, =gText_Slots - bl StringCopy - b _080F3F04 - .pool -_080F3EFC: - ldr r0, =gStringVar2 - ldr r1, =gText_Roulette - bl StringCopy -_080F3F04: - ldrb r1, [r4, 0x2] - cmp r1, 0x1 - bne _080F3F1C - ldr r0, =gUnknown_0203A030 - strb r1, [r0] - b _080F4008 - .pool -_080F3F1C: - ldr r1, =gUnknown_0203A030 - movs r0, 0x2 - strb r0, [r1] - b _080F4008 - .pool -_080F3F28: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x8] - bl sub_81DB5E8 - ldrb r0, [r4, 0x3] - cmp r0, 0 - beq _080F3F44 - cmp r0, 0x1 - beq _080F3F58 - b _080F3F60 - .pool -_080F3F44: - ldr r0, =gStringVar2 - ldr r1, =gText_Slots - bl StringCopy - b _080F3F60 - .pool -_080F3F58: - ldr r0, =gStringVar2 - ldr r1, =gText_Roulette - bl StringCopy -_080F3F60: - ldrh r1, [r4, 0x4] - movs r0, 0x2 - bl sub_80EF340 - bl TVShowDone - b _080F4008 - .pool -_080F3F78: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x8] - bl sub_81DB5E8 - ldrb r0, [r4, 0x3] - cmp r0, 0 - beq _080F3F94 - cmp r0, 0x1 - beq _080F3FA8 - b _080F3FB0 - .pool -_080F3F94: - ldr r0, =gStringVar2 - ldr r1, =gText_Slots - bl StringCopy - b _080F3FB0 - .pool -_080F3FA8: - ldr r0, =gStringVar2 - ldr r1, =gText_Roulette - bl StringCopy -_080F3FB0: - ldrh r1, [r4, 0x4] - movs r0, 0x2 - bl sub_80EF340 - ldr r1, =gUnknown_0203A030 - movs r0, 0x3 - strb r0, [r1] - b _080F4008 - .pool -_080F3FCC: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x8] - bl sub_81DB5E8 - ldrb r1, [r4, 0x3] - cmp r1, 0 - beq _080F3FE8 - cmp r1, 0x1 - beq _080F3FFC - b _080F4004 - .pool -_080F3FE8: - ldr r0, =gStringVar2 - ldr r1, =gText_Roulette - bl StringCopy - b _080F4004 - .pool -_080F3FFC: - ldr r0, =gStringVar2 - ldr r1, =gText_Slots - bl StringCopy -_080F4004: - bl TVShowDone -_080F4008: - ldr r0, =gUnknown_0858D418 - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl box_related_two__2 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShowFindThatGamer - - thumb_func_start DoTVShowBreakingNewsTV -DoTVShowBreakingNewsTV: @ 80F4028 - push {r4-r7,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r6, r1, r0 - ldr r1, =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, =gUnknown_0203A030 - ldrb r7, [r0] - adds r2, r0, 0 - cmp r7, 0xC - bls _080F4050 - b _080F4344 -_080F4050: - lsls r0, r7, 2 - ldr r1, =_080F4074 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F4074: - .4byte _080F40A8 - .4byte _080F40BA - .4byte _080F40FC - .4byte _080F4140 - .4byte _080F4168 - .4byte _080F418C - .4byte _080F41D0 - .4byte _080F4254 - .4byte _080F42C8 - .4byte _080F42F4 - .4byte _080F42F4 - .4byte _080F4334 - .4byte _080F4284 -_080F40A8: - ldrb r0, [r6, 0x5] - cmp r0, 0 - bne _080F40B4 - movs r0, 0x1 - strb r0, [r2] - b _080F4344 -_080F40B4: - movs r0, 0x5 - strb r0, [r2] - b _080F4344 -_080F40BA: - ldr r0, =gStringVar1 - adds r1, r6, 0 - adds r1, 0x13 - ldrb r2, [r6, 0xE] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r2, [r6, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, =gStringVar3 - ldrb r1, [r6, 0x4] - movs r2, 0 - bl GetMapName - ldr r1, =gUnknown_0203A030 - movs r0, 0x2 - strb r0, [r1] - b _080F4344 - .pool -_080F40FC: - ldr r0, =gStringVar1 - adds r1, r6, 0 - adds r1, 0x13 - ldrb r2, [r6, 0xE] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r1, [r6, 0x2] - movs r5, 0xB - muls r1, r5 - ldr r4, =gSpeciesNames - adds r1, r4 - bl StringCopy - ldr r0, =gStringVar3 - ldrh r1, [r6, 0xA] - muls r1, r5 - adds r1, r4 - bl StringCopy - ldr r1, =gUnknown_0203A030 - movs r0, 0x3 - strb r0, [r1] - b _080F4344 - .pool -_080F4140: - ldrh r1, [r6, 0x8] - movs r0, 0 - bl sub_80EF340 - ldr r4, =gStringVar2 - ldrh r0, [r6, 0x6] - bl ItemId_GetItem - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldr r1, =gUnknown_0203A030 - movs r0, 0x4 - strb r0, [r1] - b _080F4344 - .pool -_080F4168: - ldr r0, =gStringVar1 - adds r1, r6, 0 - adds r1, 0x13 - ldrb r2, [r6, 0xE] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrb r1, [r6, 0x4] - movs r2, 0 - bl GetMapName - bl TVShowDone - b _080F4344 - .pool -_080F418C: - ldr r0, =gStringVar1 - adds r1, r6, 0 - adds r1, 0x13 - ldrb r2, [r6, 0xE] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r2, [r6, 0x2] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, =gStringVar3 - ldrb r1, [r6, 0x4] - movs r2, 0 - bl GetMapName - ldr r1, =gUnknown_0203A030 - movs r0, 0x6 - strb r0, [r1] - b _080F4344 - .pool -_080F41D0: - ldr r0, =gStringVar1 - adds r1, r6, 0 - adds r1, 0x13 - ldrb r2, [r6, 0xE] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r1, [r6, 0x2] - movs r5, 0xB - muls r1, r5 - ldr r4, =gSpeciesNames - adds r1, r4 - bl StringCopy - ldr r0, =gStringVar3 - ldrh r1, [r6, 0xA] - muls r1, r5 - adds r1, r4 - bl StringCopy - ldrb r0, [r6, 0x5] - cmp r0, 0x2 - beq _080F423C - cmp r0, 0x2 - bgt _080F4218 - cmp r0, 0x1 - beq _080F421E - b _080F4344 - .pool -_080F4218: - cmp r0, 0x3 - beq _080F4248 - b _080F4344 -_080F421E: - ldrh r0, [r6, 0xC] - cmp r0, 0 - bne _080F4230 - ldr r1, =gUnknown_0203A030 - movs r0, 0xC - strb r0, [r1] - b _080F4344 - .pool -_080F4230: - ldr r1, =gUnknown_0203A030 - movs r0, 0x7 - strb r0, [r1] - b _080F4344 - .pool -_080F423C: - ldr r1, =gUnknown_0203A030 - movs r0, 0x9 - strb r0, [r1] - b _080F4344 - .pool -_080F4248: - ldr r1, =gUnknown_0203A030 - movs r0, 0xA - strb r0, [r1] - b _080F4344 - .pool -_080F4254: - ldr r0, =gStringVar1 - ldrh r2, [r6, 0xC] - movs r1, 0xD - muls r1, r2 - ldr r2, =gMoveNames - adds r1, r2 - bl StringCopy - ldr r0, =gStringVar2 - ldrh r2, [r6, 0xA] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - b _080F42A8 - .pool -_080F4284: - ldr r0, =gStringVar1 - adds r1, r6, 0 - adds r1, 0x13 - ldrb r2, [r6, 0xE] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r1, [r6, 0x2] - movs r5, 0xB - muls r1, r5 - ldr r4, =gSpeciesNames - adds r1, r4 - bl StringCopy - ldr r0, =gStringVar3 - ldrh r1, [r6, 0xA] - muls r1, r5 - adds r1, r4 -_080F42A8: - bl StringCopy - ldr r1, =gUnknown_0203A030 - movs r0, 0x8 - strb r0, [r1] - b _080F4344 - .pool -_080F42C8: - ldr r0, =gStringVar1 - adds r1, r6, 0 - adds r1, 0x13 - ldrb r2, [r6, 0xE] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrb r1, [r6, 0x4] - movs r2, 0 - bl GetMapName - ldr r1, =gUnknown_0203A030 - movs r0, 0xB - strb r0, [r1] - b _080F4344 - .pool -_080F42F4: - ldr r0, =gStringVar1 - adds r1, r6, 0 - adds r1, 0x13 - ldrb r2, [r6, 0xE] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r1, [r6, 0x2] - movs r4, 0xB - muls r1, r4 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, =gStringVar3 - ldrb r1, [r6, 0x4] - movs r2, 0 - bl GetMapName - ldr r0, =gUnknown_0203A030 - strb r4, [r0] - b _080F4344 - .pool -_080F4334: - ldr r0, =gStringVar1 - adds r1, r6, 0 - adds r1, 0x13 - ldrb r2, [r6, 0xE] - bl sub_81DB5E8 - bl TVShowDone -_080F4344: - ldr r0, =gUnknown_0858D428 - lsls r1, r7, 2 - adds r1, r0 - ldr r0, [r1] - bl box_related_two__2 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShowBreakingNewsTV - - thumb_func_start DoTVShowSecretBaseVisit -DoTVShowSecretBaseVisit: @ 80F4360 - push {r4-r6,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r5, r1, r0 - ldr r1, =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, =gUnknown_0203A030 - ldrb r6, [r0] - adds r2, r0, 0 - cmp r6, 0xD - bls _080F4388 - b _080F4588 -_080F4388: - lsls r0, r6, 2 - ldr r1, =_080F43AC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F43AC: - .4byte _080F43E4 - .4byte _080F4414 - .4byte _080F44E4 - .4byte _080F4448 - .4byte _080F44E4 - .4byte _080F449C - .4byte _080F44C0 - .4byte _080F44E4 - .4byte _080F44EA - .4byte _080F4538 - .4byte _080F4538 - .4byte _080F4538 - .4byte _080F4538 - .4byte _080F4584 -_080F43E4: - ldr r0, =gStringVar1 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0xC] - bl sub_81DB5E8 - ldrb r0, [r5, 0x3] - cmp r0, 0 - bne _080F4408 - ldr r1, =gUnknown_0203A030 - movs r0, 0x2 - strb r0, [r1] - b _080F4588 - .pool -_080F4408: - ldr r1, =gUnknown_0203A030 - movs r0, 0x1 - strb r0, [r1] - b _080F4588 - .pool -_080F4414: - ldr r0, =gStringVar2 - ldrb r1, [r5, 0x4] - lsls r1, 5 - ldr r2, =gDecorations + 1 - adds r1, r2 - bl StringCopy - ldrb r0, [r5, 0x3] - cmp r0, 0x1 - bne _080F443C - ldr r1, =gUnknown_0203A030 - movs r0, 0x4 - strb r0, [r1] - b _080F4588 - .pool -_080F443C: - ldr r1, =gUnknown_0203A030 - movs r0, 0x3 - strb r0, [r1] - b _080F4588 - .pool -_080F4448: - ldr r0, =gStringVar2 - ldrb r1, [r5, 0x5] - lsls r1, 5 - ldr r2, =gDecorations + 1 - adds r1, r2 - bl StringCopy - ldrb r1, [r5, 0x3] - cmp r1, 0x3 - beq _080F4484 - cmp r1, 0x3 - bgt _080F4470 - cmp r1, 0x2 - beq _080F4476 - b _080F4588 - .pool -_080F4470: - cmp r1, 0x4 - beq _080F4490 - b _080F4588 -_080F4476: - ldr r1, =gUnknown_0203A030 - movs r0, 0x7 - strb r0, [r1] - b _080F4588 - .pool -_080F4484: - ldr r1, =gUnknown_0203A030 - movs r0, 0x6 - strb r0, [r1] - b _080F4588 - .pool -_080F4490: - ldr r1, =gUnknown_0203A030 - movs r0, 0x5 - strb r0, [r1] - b _080F4588 - .pool -_080F449C: - ldr r0, =gStringVar2 - ldrb r1, [r5, 0x6] - lsls r1, 5 - ldr r4, =gDecorations + 1 - adds r1, r4 - bl StringCopy - ldr r0, =gStringVar3 - ldrb r1, [r5, 0x7] - lsls r1, 5 - adds r1, r4 - b _080F44CA - .pool -_080F44C0: - ldr r0, =gStringVar2 - ldrb r1, [r5, 0x6] - lsls r1, 5 - ldr r2, =gDecorations + 1 - adds r1, r2 -_080F44CA: - bl StringCopy - ldr r1, =gUnknown_0203A030 - movs r0, 0x8 - strb r0, [r1] - b _080F4588 - .pool -_080F44E4: - movs r0, 0x8 - strb r0, [r2] - b _080F4588 -_080F44EA: - ldr r0, =gStringVar1 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0xC] - bl sub_81DB5E8 - ldrb r1, [r5, 0x2] - cmp r1, 0x18 - bhi _080F450C - ldr r1, =gUnknown_0203A030 - movs r0, 0xC - strb r0, [r1] - b _080F4588 - .pool -_080F450C: - cmp r1, 0x31 - bhi _080F451C - ldr r1, =gUnknown_0203A030 - movs r0, 0xB - strb r0, [r1] - b _080F4588 - .pool -_080F451C: - cmp r1, 0x45 - bhi _080F452C - ldr r1, =gUnknown_0203A030 - movs r0, 0xA - strb r0, [r1] - b _080F4588 - .pool -_080F452C: - ldr r1, =gUnknown_0203A030 - movs r0, 0x9 - strb r0, [r1] - b _080F4588 - .pool -_080F4538: - ldr r0, =gStringVar1 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0xC] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r2, [r5, 0x8] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, =gStringVar3 - ldrh r1, [r5, 0xA] - movs r4, 0xD - muls r1, r4 - ldr r2, =gMoveNames - adds r1, r2 - bl StringCopy - ldr r0, =gUnknown_0203A030 - strb r4, [r0] - b _080F4588 - .pool -_080F4584: - bl TVShowDone -_080F4588: - ldr r0, =gUnknown_0858D45C - lsls r1, r6, 2 - adds r1, r0 - ldr r0, [r1] - bl box_related_two__2 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShowSecretBaseVisit - - thumb_func_start DoTVShowPokemonLotterWinnerFlashReport -DoTVShowPokemonLotterWinnerFlashReport: @ 80F45A0 - push {r4-r6,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r5, r1, r0 - ldr r1, =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, =gUnknown_0203A030 - ldrb r6, [r0] - ldr r0, =gStringVar1 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x5] - bl sub_81DB5E8 - ldrb r0, [r5, 0x4] - cmp r0, 0 - bne _080F45FC - ldr r0, =gStringVar2 - ldr r1, =gText_Jackpot - bl StringCopy - b _080F4634 - .pool -_080F45FC: - cmp r0, 0x1 - bne _080F4614 - ldr r0, =gStringVar2 - ldr r1, =gText_First - bl StringCopy - b _080F4634 - .pool -_080F4614: - cmp r0, 0x2 - bne _080F462C - ldr r0, =gStringVar2 - ldr r1, =gText_Second - bl StringCopy - b _080F4634 - .pool -_080F462C: - ldr r0, =gStringVar2 - ldr r1, =gText_Third - bl StringCopy -_080F4634: - ldr r4, =gStringVar3 - ldrh r0, [r5, 0x2] - bl ItemId_GetItem - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - bl TVShowDone - ldr r1, =gUnknown_0858D494 - lsls r0, r6, 2 - adds r0, r1 - ldr r0, [r0] - bl box_related_two__2 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShowPokemonLotterWinnerFlashReport - - thumb_func_start DoTVShowThePokemonBattleSeminar -DoTVShowThePokemonBattleSeminar: @ 80F466C - push {r4-r7,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r6, r1, r0 - ldr r1, =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, =gUnknown_0203A030 - ldrb r7, [r0] - cmp r7, 0x6 - bls _080F4692 - b _080F4858 -_080F4692: - lsls r0, r7, 2 - ldr r1, =_080F46B4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F46B4: - .4byte _080F46D0 - .4byte _080F4714 - .4byte _080F4760 - .4byte _080F47B4 - .4byte _080F47EC - .4byte _080F4814 - .4byte _080F4838 -_080F46D0: - ldr r0, =gStringVar1 - adds r1, r6, 0 - adds r1, 0x13 - ldrb r2, [r6, 0x11] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r1, [r6, 0x6] - movs r5, 0xB - muls r1, r5 - ldr r4, =gSpeciesNames - adds r1, r4 - bl StringCopy - ldr r0, =gStringVar3 - ldrh r1, [r6, 0x4] - muls r1, r5 - adds r1, r4 - bl StringCopy - ldr r1, =gUnknown_0203A030 - movs r0, 0x1 - strb r0, [r1] - b _080F4858 - .pool -_080F4714: - ldr r0, =gStringVar1 - adds r1, r6, 0 - adds r1, 0x13 - ldrb r2, [r6, 0x11] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r2, [r6, 0x4] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldr r0, =gStringVar3 - ldrh r2, [r6, 0x2] - movs r1, 0xD - muls r1, r2 - ldr r2, =gMoveNames - adds r1, r2 - bl StringCopy - ldr r1, =gUnknown_0203A030 - movs r0, 0x2 - strb r0, [r1] - b _080F4858 - .pool -_080F4760: - ldr r0, =gStringVar1 - ldrh r2, [r6, 0x6] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 - bl StringCopy - ldrb r1, [r6, 0x10] - cmp r1, 0x2 - beq _080F479C - cmp r1, 0x2 - bgt _080F4788 - cmp r1, 0x1 - beq _080F478E - b _080F4824 - .pool -_080F4788: - cmp r1, 0x3 - beq _080F47A8 - b _080F4824 -_080F478E: - ldr r1, =gUnknown_0203A030 - movs r0, 0x5 - strb r0, [r1] - b _080F4858 - .pool -_080F479C: - ldr r1, =gUnknown_0203A030 - movs r0, 0x4 - strb r0, [r1] - b _080F4858 - .pool -_080F47A8: - ldr r0, =gUnknown_0203A030 - strb r1, [r0] - b _080F4858 - .pool -_080F47B4: - ldr r0, =gStringVar1 - ldrh r1, [r6, 0x8] - movs r5, 0xD - muls r1, r5 - ldr r4, =gMoveNames - adds r1, r4 - bl StringCopy - ldr r0, =gStringVar2 - ldrh r1, [r6, 0xA] - muls r1, r5 - adds r1, r4 - bl StringCopy - ldr r0, =gStringVar3 - ldrh r1, [r6, 0xC] - muls r1, r5 - adds r1, r4 - b _080F4820 - .pool -_080F47EC: - ldr r0, =gStringVar1 - ldrh r1, [r6, 0x8] - movs r5, 0xD - muls r1, r5 - ldr r4, =gMoveNames - adds r1, r4 - bl StringCopy - ldr r0, =gStringVar2 - ldrh r1, [r6, 0xA] - muls r1, r5 - adds r1, r4 - b _080F4820 - .pool -_080F4814: - ldr r0, =gStringVar2 - ldrh r2, [r6, 0x8] - movs r1, 0xD - muls r1, r2 - ldr r2, =gMoveNames - adds r1, r2 -_080F4820: - bl StringCopy -_080F4824: - ldr r1, =gUnknown_0203A030 - movs r0, 0x6 - strb r0, [r1] - b _080F4858 - .pool -_080F4838: - ldr r0, =gStringVar1 - ldrh r1, [r6, 0xE] - movs r5, 0xD - muls r1, r5 - ldr r4, =gMoveNames - adds r1, r4 - bl StringCopy - ldr r0, =gStringVar2 - ldrh r1, [r6, 0x2] - muls r1, r5 - adds r1, r4 - bl StringCopy - bl TVShowDone -_080F4858: - ldr r0, =gUnknown_0858D498 - lsls r1, r7, 2 - adds r1, r0 - ldr r0, [r1] - bl box_related_two__2 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShowThePokemonBattleSeminar - - thumb_func_start DoTVShowTrainerFanClubSpecial -DoTVShowTrainerFanClubSpecial: @ 80F487C - push {r4,r5,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, =gUnknown_0203A030 - ldrb r5, [r0] - cmp r5, 0x5 - bls _080F48A2 - b _080F499A -_080F48A2: - lsls r0, r5, 2 - ldr r1, =_080F48C4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F48C4: - .4byte _080F48DC - .4byte _080F4944 - .4byte _080F4944 - .4byte _080F4944 - .4byte _080F4944 - .4byte _080F4978 -_080F48DC: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0xC - ldrb r2, [r4, 0x18] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - adds r1, r4, 0x2 - ldrb r2, [r4, 0x17] - bl sub_81DB5E8 - ldr r0, =gStringVar3 - ldrh r1, [r4, 0x14] - bl CopyEasyChatWord - ldrb r1, [r4, 0x16] - cmp r1, 0x59 - bls _080F4918 - ldr r1, =gUnknown_0203A030 - movs r0, 0x1 - strb r0, [r1] - b _080F499A - .pool -_080F4918: - cmp r1, 0x45 - bls _080F4928 - ldr r1, =gUnknown_0203A030 - movs r0, 0x2 - strb r0, [r1] - b _080F499A - .pool -_080F4928: - cmp r1, 0x1D - bls _080F4938 - ldr r1, =gUnknown_0203A030 - movs r0, 0x3 - strb r0, [r1] - b _080F499A - .pool -_080F4938: - ldr r1, =gUnknown_0203A030 - movs r0, 0x4 - strb r0, [r1] - b _080F499A - .pool -_080F4944: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0xC - ldrb r2, [r4, 0x18] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - adds r1, r4, 0x2 - ldrb r2, [r4, 0x17] - bl sub_81DB5E8 - ldrb r1, [r4, 0x16] - movs r0, 0x2 - bl sub_80EF340 - ldr r1, =gUnknown_0203A030 - movs r0, 0x5 - strb r0, [r1] - b _080F499A - .pool -_080F4978: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0xC - ldrb r2, [r4, 0x18] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - adds r1, r4, 0x2 - ldrb r2, [r4, 0x17] - bl sub_81DB5E8 - ldr r0, =gStringVar3 - ldrh r1, [r4, 0x14] - bl CopyEasyChatWord - bl TVShowDone -_080F499A: - ldr r0, =gUnknown_0858D320 - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl box_related_two__2 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShowTrainerFanClubSpecial - - thumb_func_start DoTVShowTrainerFanClub -DoTVShowTrainerFanClub: @ 80F49BC - push {r4,r5,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, =gUnknown_0203A030 - ldrb r5, [r0] - adds r2, r0, 0 - cmp r5, 0xB - bls _080F49E4 - b _080F4B3A -_080F49E4: - lsls r0, r5, 2 - ldr r1, =_080F4A08 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F4A08: - .4byte _080F4A38 - .4byte _080F4B14 - .4byte _080F4B14 - .4byte _080F4B14 - .4byte _080F4B14 - .4byte _080F4B14 - .4byte _080F4B14 - .4byte _080F4B14 - .4byte _080F4B14 - .4byte _080F4B14 - .4byte _080F4B14 - .4byte _080F4B1A -_080F4A38: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x8] - bl sub_81DB5E8 - adds r0, r4, 0 - adds r0, 0x23 - ldrb r0, [r0] - lsls r0, 8 - adds r1, r4, 0 - adds r1, 0x22 - ldrb r1, [r1] - adds r0, r1 - movs r1, 0xA - bl __umodsi3 - cmp r0, 0x9 - bls _080F4A60 - b _080F4B3A -_080F4A60: - lsls r0, 2 - ldr r1, =_080F4A74 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F4A74: - .4byte _080F4A9C - .4byte _080F4AA8 - .4byte _080F4AB4 - .4byte _080F4AC0 - .4byte _080F4ACC - .4byte _080F4AD8 - .4byte _080F4AE4 - .4byte _080F4AF0 - .4byte _080F4AFC - .4byte _080F4B08 -_080F4A9C: - ldr r1, =gUnknown_0203A030 - movs r0, 0x1 - strb r0, [r1] - b _080F4B3A - .pool -_080F4AA8: - ldr r1, =gUnknown_0203A030 - movs r0, 0x2 - strb r0, [r1] - b _080F4B3A - .pool -_080F4AB4: - ldr r1, =gUnknown_0203A030 - movs r0, 0x3 - strb r0, [r1] - b _080F4B3A - .pool -_080F4AC0: - ldr r1, =gUnknown_0203A030 - movs r0, 0x4 - strb r0, [r1] - b _080F4B3A - .pool -_080F4ACC: - ldr r1, =gUnknown_0203A030 - movs r0, 0x5 - strb r0, [r1] - b _080F4B3A - .pool -_080F4AD8: - ldr r1, =gUnknown_0203A030 - movs r0, 0x6 - strb r0, [r1] - b _080F4B3A - .pool -_080F4AE4: - ldr r1, =gUnknown_0203A030 - movs r0, 0x7 - strb r0, [r1] - b _080F4B3A - .pool -_080F4AF0: - ldr r1, =gUnknown_0203A030 - movs r0, 0x8 - strb r0, [r1] - b _080F4B3A - .pool -_080F4AFC: - ldr r1, =gUnknown_0203A030 - movs r0, 0x9 - strb r0, [r1] - b _080F4B3A - .pool -_080F4B08: - ldr r1, =gUnknown_0203A030 - movs r0, 0xA - strb r0, [r1] - b _080F4B3A - .pool -_080F4B14: - movs r0, 0xB - strb r0, [r2] - b _080F4B3A -_080F4B1A: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x8] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - ldrh r1, [r4, 0x4] - bl CopyEasyChatWord - ldr r0, =gStringVar3 - ldrh r1, [r4, 0x6] - bl CopyEasyChatWord - bl TVShowDone -_080F4B3A: - ldr r0, =gUnknown_0858D4B4 - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl box_related_two__2 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShowTrainerFanClub - - thumb_func_start DoTVShowSpotTheCuties -DoTVShowSpotTheCuties: @ 80F4B5C - push {r4,r5,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, =gUnknown_0203A030 - ldrb r5, [r0] - cmp r5, 0xF - bls _080F4B82 - b _080F4D84 -_080F4B82: - lsls r0, r5, 2 - ldr r1, =_080F4BA4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F4BA4: - .4byte _080F4BE4 - .4byte _080F4C30 - .4byte _080F4C30 - .4byte _080F4C30 - .4byte _080F4C64 - .4byte _080F4D64 - .4byte _080F4D64 - .4byte _080F4D64 - .4byte _080F4D64 - .4byte _080F4D64 - .4byte _080F4D64 - .4byte _080F4D64 - .4byte _080F4D64 - .4byte _080F4D64 - .4byte _080F4D64 - .4byte _080F4D80 -_080F4BE4: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0xF] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - adds r1, r4, 0x4 - ldrb r2, [r4, 0x10] - bl sub_81DB5E8 - ldrb r1, [r4, 0x2] - cmp r1, 0x9 - bhi _080F4C14 - ldr r1, =gUnknown_0203A030 - movs r0, 0x1 - strb r0, [r1] - b _080F4D84 - .pool -_080F4C14: - cmp r1, 0x13 - bhi _080F4C24 - ldr r1, =gUnknown_0203A030 - movs r0, 0x2 - strb r0, [r1] - b _080F4D84 - .pool -_080F4C24: - ldr r1, =gUnknown_0203A030 - movs r0, 0x3 - strb r0, [r1] - b _080F4D84 - .pool -_080F4C30: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0xF] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - adds r1, r4, 0x4 - ldrb r2, [r4, 0x10] - bl sub_81DB5E8 - ldrb r1, [r4, 0x2] - movs r0, 0x2 - bl sub_80EF340 - ldr r1, =gUnknown_0203A030 - movs r0, 0x4 - strb r0, [r1] - b _080F4D84 - .pool -_080F4C64: - ldr r0, =gStringVar2 - adds r1, r4, 0x4 - ldrb r2, [r4, 0x10] - bl sub_81DB5E8 - ldrb r0, [r4, 0x3] - cmp r0, 0x18 - bls _080F4C76 - b _080F4D84 -_080F4C76: - lsls r0, 2 - ldr r1, =_080F4C88 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F4C88: - .4byte _080F4CEC - .4byte _080F4CF8 - .4byte _080F4CF8 - .4byte _080F4CF8 - .4byte _080F4CF8 - .4byte _080F4D04 - .4byte _080F4D04 - .4byte _080F4D04 - .4byte _080F4D04 - .4byte _080F4D10 - .4byte _080F4D10 - .4byte _080F4D10 - .4byte _080F4D10 - .4byte _080F4D1C - .4byte _080F4D1C - .4byte _080F4D1C - .4byte _080F4D1C - .4byte _080F4D28 - .4byte _080F4D28 - .4byte _080F4D28 - .4byte _080F4D28 - .4byte _080F4D34 - .4byte _080F4D40 - .4byte _080F4D4C - .4byte _080F4D58 -_080F4CEC: - ldr r1, =gUnknown_0203A030 - movs r0, 0x5 - strb r0, [r1] - b _080F4D84 - .pool -_080F4CF8: - ldr r1, =gUnknown_0203A030 - movs r0, 0x6 - strb r0, [r1] - b _080F4D84 - .pool -_080F4D04: - ldr r1, =gUnknown_0203A030 - movs r0, 0x7 - strb r0, [r1] - b _080F4D84 - .pool -_080F4D10: - ldr r1, =gUnknown_0203A030 - movs r0, 0x8 - strb r0, [r1] - b _080F4D84 - .pool -_080F4D1C: - ldr r1, =gUnknown_0203A030 - movs r0, 0x9 - strb r0, [r1] - b _080F4D84 - .pool -_080F4D28: - ldr r1, =gUnknown_0203A030 - movs r0, 0xA - strb r0, [r1] - b _080F4D84 - .pool -_080F4D34: - ldr r1, =gUnknown_0203A030 - movs r0, 0xB - strb r0, [r1] - b _080F4D84 - .pool -_080F4D40: - ldr r1, =gUnknown_0203A030 - movs r0, 0xC - strb r0, [r1] - b _080F4D84 - .pool -_080F4D4C: - ldr r1, =gUnknown_0203A030 - movs r0, 0xD - strb r0, [r1] - b _080F4D84 - .pool -_080F4D58: - ldr r1, =gUnknown_0203A030 - movs r0, 0xE - strb r0, [r1] - b _080F4D84 - .pool -_080F4D64: - ldr r0, =gStringVar2 - adds r1, r4, 0x4 - ldrb r2, [r4, 0x10] - bl sub_81DB5E8 - ldr r1, =gUnknown_0203A030 - movs r0, 0xF - strb r0, [r1] - b _080F4D84 - .pool -_080F4D80: - bl TVShowDone -_080F4D84: - ldr r0, =gUnknown_0858D4E4 - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl box_related_two__2 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShowSpotTheCuties - - thumb_func_start DoTVShowPokemonNewsBattleFrontier -DoTVShowPokemonNewsBattleFrontier: @ 80F4D9C - push {r4-r7,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r6, r1, r0 - ldr r1, =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, =gUnknown_0203A030 - ldrb r7, [r0] - adds r2, r0, 0 - cmp r7, 0x12 - bls _080F4DC4 - b _080F5014 -_080F4DC4: - lsls r0, r7, 2 - ldr r1, =_080F4DE8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F4DE8: - .4byte _080F4E34 - .4byte _080F4F18 - .4byte _080F4ECE - .4byte _080F4EF4 - .4byte _080F4EF4 - .4byte _080F4F18 - .4byte _080F4F18 - .4byte _080F4F18 - .4byte _080F4F18 - .4byte _080F4F18 - .4byte _080F4F18 - .4byte _080F4F18 - .4byte _080F4F18 - .4byte _080F4F18 - .4byte _080F4F3C - .4byte _080F4F74 - .4byte _080F4F9C - .4byte _080F4FE0 - .4byte _080F5004 -_080F4E34: - ldrb r0, [r6, 0xD] - subs r0, 0x1 - cmp r0, 0xC - bls _080F4E3E - b _080F5014 -_080F4E3E: - lsls r0, 2 - ldr r1, =_080F4E4C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F4E4C: - .4byte _080F4E80 - .4byte _080F4E86 - .4byte _080F4E8C - .4byte _080F4E92 - .4byte _080F4E98 - .4byte _080F4E9E - .4byte _080F4EA4 - .4byte _080F4EAA - .4byte _080F4EB0 - .4byte _080F4EB6 - .4byte _080F4EBC - .4byte _080F4EC2 - .4byte _080F4EC8 -_080F4E80: - movs r0, 0x1 - strb r0, [r2] - b _080F5014 -_080F4E86: - movs r0, 0x2 - strb r0, [r2] - b _080F5014 -_080F4E8C: - movs r0, 0x3 - strb r0, [r2] - b _080F5014 -_080F4E92: - movs r0, 0x4 - strb r0, [r2] - b _080F5014 -_080F4E98: - movs r0, 0x5 - strb r0, [r2] - b _080F5014 -_080F4E9E: - movs r0, 0x6 - strb r0, [r2] - b _080F5014 -_080F4EA4: - movs r0, 0x7 - strb r0, [r2] - b _080F5014 -_080F4EAA: - movs r0, 0x8 - strb r0, [r2] - b _080F5014 -_080F4EB0: - movs r0, 0x9 - strb r0, [r2] - b _080F5014 -_080F4EB6: - movs r0, 0xA - strb r0, [r2] - b _080F5014 -_080F4EBC: - movs r0, 0xB - strb r0, [r2] - b _080F5014 -_080F4EC2: - movs r0, 0xC - strb r0, [r2] - b _080F5014 -_080F4EC8: - movs r0, 0xD - strb r0, [r2] - b _080F5014 -_080F4ECE: - ldr r0, =gStringVar1 - adds r1, r6, 0 - adds r1, 0x13 - ldrb r2, [r6, 0xC] - bl sub_81DB5E8 - ldrh r1, [r6, 0x2] - movs r0, 0x1 - bl sub_80EF340 - ldr r1, =gUnknown_0203A030 - movs r0, 0x10 - strb r0, [r1] - b _080F5014 - .pool -_080F4EF4: - ldr r0, =gStringVar1 - adds r1, r6, 0 - adds r1, 0x13 - ldrb r2, [r6, 0xC] - bl sub_81DB5E8 - ldrh r1, [r6, 0x2] - movs r0, 0x1 - bl sub_80EF340 - ldr r1, =gUnknown_0203A030 - movs r0, 0xF - strb r0, [r1] - b _080F5014 - .pool -_080F4F18: - ldr r0, =gStringVar1 - adds r1, r6, 0 - adds r1, 0x13 - ldrb r2, [r6, 0xC] - bl sub_81DB5E8 - ldrh r1, [r6, 0x2] - movs r0, 0x1 - bl sub_80EF340 - ldr r1, =gUnknown_0203A030 - movs r0, 0xE - strb r0, [r1] - b _080F5014 - .pool -_080F4F3C: - ldr r0, =gStringVar1 - ldrh r1, [r6, 0x4] - movs r5, 0xB - muls r1, r5 - ldr r4, =gSpeciesNames - adds r1, r4 - bl StringCopy - ldr r0, =gStringVar2 - ldrh r1, [r6, 0x6] - muls r1, r5 - adds r1, r4 - bl StringCopy - ldr r0, =gStringVar3 - ldrh r1, [r6, 0x8] - muls r1, r5 - adds r1, r4 - b _080F4FEC - .pool -_080F4F74: - ldr r0, =gStringVar1 - ldrh r1, [r6, 0x4] - movs r5, 0xB - muls r1, r5 - ldr r4, =gSpeciesNames - adds r1, r4 - bl StringCopy - ldr r0, =gStringVar2 - ldrh r1, [r6, 0x6] - muls r1, r5 - adds r1, r4 - b _080F4FEC - .pool -_080F4F9C: - ldr r0, =gStringVar1 - ldrh r1, [r6, 0x4] - movs r5, 0xB - muls r1, r5 - ldr r4, =gSpeciesNames - adds r1, r4 - bl StringCopy - ldr r0, =gStringVar2 - ldrh r1, [r6, 0x6] - muls r1, r5 - adds r1, r4 - bl StringCopy - ldr r0, =gStringVar3 - ldrh r1, [r6, 0x8] - muls r1, r5 - adds r1, r4 - bl StringCopy - ldr r1, =gUnknown_0203A030 - movs r0, 0x11 - strb r0, [r1] - b _080F5014 - .pool -_080F4FE0: - ldr r0, =gStringVar1 - ldrh r2, [r6, 0xA] - movs r1, 0xB - muls r1, r2 - ldr r2, =gSpeciesNames - adds r1, r2 -_080F4FEC: - bl StringCopy - ldr r1, =gUnknown_0203A030 - movs r0, 0x12 - strb r0, [r1] - b _080F5014 - .pool -_080F5004: - ldr r0, =gStringVar1 - adds r1, r6, 0 - adds r1, 0x13 - ldrb r2, [r6, 0xC] - bl sub_81DB5E8 - bl TVShowDone -_080F5014: - ldr r0, =gUnknown_0858D524 - lsls r1, r7, 2 - adds r1, r0 - ldr r0, [r1] - bl box_related_two__2 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShowPokemonNewsBattleFrontier - - thumb_func_start DoTVShowWhatsNo1InHoennToday -DoTVShowWhatsNo1InHoennToday: @ 80F5030 - push {r4,r5,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, =gUnknown_0203A030 - ldrb r5, [r0] - cmp r5, 0x8 - bls _080F5056 - b _080F5164 -_080F5056: - lsls r0, r5, 2 - ldr r1, =_080F5078 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F5078: - .4byte _080F509C - .4byte _080F5130 - .4byte _080F5130 - .4byte _080F5130 - .4byte _080F5130 - .4byte _080F5130 - .4byte _080F5130 - .4byte _080F5130 - .4byte _080F5154 -_080F509C: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x5] - bl sub_81DB5E8 - ldrb r0, [r4, 0x4] - cmp r0, 0x6 - bhi _080F5164 - lsls r0, 2 - ldr r1, =_080F50C0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F50C0: - .4byte _080F50DC - .4byte _080F50E8 - .4byte _080F50F4 - .4byte _080F5100 - .4byte _080F510C - .4byte _080F5118 - .4byte _080F5124 -_080F50DC: - ldr r1, =gUnknown_0203A030 - movs r0, 0x1 - strb r0, [r1] - b _080F5164 - .pool -_080F50E8: - ldr r1, =gUnknown_0203A030 - movs r0, 0x2 - strb r0, [r1] - b _080F5164 - .pool -_080F50F4: - ldr r1, =gUnknown_0203A030 - movs r0, 0x3 - strb r0, [r1] - b _080F5164 - .pool -_080F5100: - ldr r1, =gUnknown_0203A030 - movs r0, 0x4 - strb r0, [r1] - b _080F5164 - .pool -_080F510C: - ldr r1, =gUnknown_0203A030 - movs r0, 0x5 - strb r0, [r1] - b _080F5164 - .pool -_080F5118: - ldr r1, =gUnknown_0203A030 - movs r0, 0x6 - strb r0, [r1] - b _080F5164 - .pool -_080F5124: - ldr r1, =gUnknown_0203A030 - movs r0, 0x7 - strb r0, [r1] - b _080F5164 - .pool -_080F5130: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x5] - bl sub_81DB5E8 - ldrh r1, [r4, 0x2] - movs r0, 0x1 - bl sub_80EF340 - ldr r1, =gUnknown_0203A030 - movs r0, 0x8 - strb r0, [r1] - b _080F5164 - .pool -_080F5154: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x5] - bl sub_81DB5E8 - bl TVShowDone -_080F5164: - ldr r0, =gUnknown_0858D570 - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl box_related_two__2 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShowWhatsNo1InHoennToday - - thumb_func_start sub_80F5180 -sub_80F5180: @ 80F5180 - push {r4,lr} - movs r1, 0 - movs r2, 0 - ldr r3, [r0, 0xC] - movs r4, 0x1 -_080F518A: - adds r0, r3, 0 - lsrs r0, r1 - ands r0, r4 - cmp r0, 0 - beq _080F519A - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 -_080F519A: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1F - bls _080F518A - adds r0, r2, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80F5180 - - thumb_func_start sub_80F51AC -sub_80F51AC: @ 80F51AC - push {r4-r6,lr} - lsls r1, 24 - lsrs r4, r1, 24 - movs r2, 0 - movs r3, 0 - ldr r1, [r0, 0xC] - movs r5, 0x1 - ldr r6, =gUnknown_0858D690 -_080F51BC: - adds r0, r1, 0 - lsrs r0, r2 - ands r0, r5 - cmp r0, 0 - beq _080F51DA - cmp r3, r4 - bne _080F51D4 - adds r0, r2, r6 - ldrb r0, [r0] - b _080F51E6 - .pool -_080F51D4: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 -_080F51DA: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x1F - bls _080F51BC - movs r0, 0 -_080F51E6: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80F51AC - - thumb_func_start DoTVShowSecretBaseSecrets -DoTVShowSecretBaseSecrets: @ 80F51EC - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r5, r1, r0 - ldr r1, =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, =gUnknown_0203A030 - ldrb r2, [r0] - mov r9, r2 - adds r2, r0, 0 - mov r0, r9 - cmp r0, 0x2B - bls _080F521E - b _080F552A -_080F521E: - lsls r0, 2 - ldr r1, =_080F5240 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F5240: - .4byte _080F52F0 - .4byte _080F5348 - .4byte _080F53C4 - .4byte _080F5444 - .4byte _080F5498 - .4byte _080F5498 - .4byte _080F5498 - .4byte _080F54C4 - .4byte _080F54E8 - .4byte _080F54EC - .4byte _080F5526 - .4byte _080F5526 - .4byte _080F5526 - .4byte _080F5526 - .4byte _080F5526 - .4byte _080F5526 - .4byte _080F5526 - .4byte _080F5526 - .4byte _080F5526 - .4byte _080F54F0 - .4byte _080F5510 - .4byte _080F5526 - .4byte _080F5526 - .4byte _080F5526 - .4byte _080F5526 - .4byte _080F5526 - .4byte _080F5526 - .4byte _080F5526 - .4byte _080F5526 - .4byte _080F5526 - .4byte _080F5526 - .4byte _080F5526 - .4byte _080F5526 - .4byte _080F5526 - .4byte _080F5526 - .4byte _080F5526 - .4byte _080F5526 - .4byte _080F5526 - .4byte _080F5526 - .4byte _080F5526 - .4byte _080F5526 - .4byte _080F5526 - .4byte _080F5526 - .4byte _080F5526 -_080F52F0: - ldr r0, =gStringVar1 - adds r1, r5, 0x4 - ldrb r2, [r5, 0x1C] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x1B] - bl sub_81DB5E8 - adds r0, r5, 0 - bl sub_80F5180 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0 - bne _080F5328 - ldr r1, =gUnknown_0203A030 - movs r0, 0x8 - strb r0, [r1] - b _080F552A - .pool -_080F5328: - movs r0, 0x1 - strb r0, [r5, 0x12] - bl Random - ldr r4, =gUnknown_0203A031 - lsls r0, 16 - lsrs r0, 16 - adds r1, r6, 0 - bl __modsi3 - strb r0, [r4] - ldrb r1, [r4] - b _080F542A - .pool -_080F5348: - ldr r0, =gStringVar2 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x1B] - bl sub_81DB5E8 - adds r0, r5, 0 - bl sub_80F5180 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x1 - beq _080F53DE - cmp r6, 0x2 - beq _080F5370 - movs r4, 0 - b _080F538A - .pool -_080F5370: - strb r6, [r5, 0x12] - ldr r0, =gUnknown_0203A031 - ldrb r0, [r0] - cmp r0, 0 - bne _080F5384 - adds r0, r5, 0 - movs r1, 0x1 - b _080F542C - .pool -_080F5384: - adds r0, r5, 0 - movs r1, 0 - b _080F542C -_080F538A: - bl Random - ldr r7, =gUnknown_0203A031 - lsls r0, 16 - lsrs r0, 16 - adds r1, r6, 0 - bl __modsi3 - strb r0, [r7, 0x1] - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r7] - cmp r0, r1 - bne _080F53B2 - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - ldr r0, =0x0000fffe - cmp r4, r0 - bls _080F538A -_080F53B2: - movs r0, 0x2 - strb r0, [r5, 0x12] - ldrb r1, [r7, 0x1] - b _080F542A - .pool -_080F53C4: - ldr r0, =gStringVar2 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x1B] - bl sub_81DB5E8 - adds r0, r5, 0 - bl sub_80F5180 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x2 - bne _080F53F0 -_080F53DE: - ldr r1, =gUnknown_0203A030 - movs r0, 0x9 - strb r0, [r1] - b _080F552A - .pool -_080F53F0: - movs r4, 0 - ldr r7, =gUnknown_0203A031 - ldr r2, =0x0000fffe - mov r8, r2 -_080F53F8: - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r6, 0 - bl __modsi3 - strb r0, [r7, 0x2] - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r7] - cmp r0, r1 - beq _080F5418 - ldrb r2, [r7, 0x1] - cmp r0, r2 - bne _080F5422 -_080F5418: - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, r8 - bls _080F53F8 -_080F5422: - movs r0, 0x3 - strb r0, [r5, 0x12] - ldr r0, =gUnknown_0203A031 - ldrb r1, [r0, 0x2] -_080F542A: - adds r0, r5, 0 -_080F542C: - bl sub_80F51AC - ldr r1, =gUnknown_0203A030 - strb r0, [r1] - b _080F552A - .pool -_080F5444: - ldr r0, =gStringVar1 - adds r1, r5, 0x4 - ldrb r2, [r5, 0x1C] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x1B] - bl sub_81DB5E8 - ldrh r1, [r5, 0x2] - movs r0, 0x2 - bl sub_80EF340 - ldrh r0, [r5, 0x2] - cmp r0, 0x1E - bhi _080F547C - ldr r1, =gUnknown_0203A030 - movs r0, 0x4 - strb r0, [r1] - b _080F552A - .pool -_080F547C: - cmp r0, 0x64 - bhi _080F548C - ldr r1, =gUnknown_0203A030 - movs r0, 0x5 - strb r0, [r1] - b _080F552A - .pool -_080F548C: - ldr r1, =gUnknown_0203A030 - movs r0, 0x6 - strb r0, [r1] - b _080F552A - .pool -_080F5498: - ldr r0, =gStringVar1 - adds r1, r5, 0x4 - ldrb r2, [r5, 0x1C] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x1B] - bl sub_81DB5E8 - ldr r1, =gUnknown_0203A030 - movs r0, 0x7 - strb r0, [r1] - b _080F552A - .pool -_080F54C4: - ldr r0, =gStringVar1 - adds r1, r5, 0x4 - ldrb r2, [r5, 0x1C] - bl sub_81DB5E8 - ldr r0, =gStringVar2 - adds r1, r5, 0 - adds r1, 0x13 - ldrb r2, [r5, 0x1B] - bl sub_81DB5E8 - bl TVShowDone - b _080F552A - .pool -_080F54E8: - movs r0, 0x3 - b _080F5528 -_080F54EC: - movs r0, 0x3 - b _080F5528 -_080F54F0: - ldr r4, =gStringVar2 - ldrh r0, [r5, 0x10] - bl ItemId_GetItem - adds r1, r0, 0 - adds r0, r4, 0 - bl StringCopy - ldr r1, =gUnknown_0203A030 - ldrb r0, [r5, 0x12] - strb r0, [r1] - b _080F552A - .pool -_080F5510: - adds r0, r5, 0 - adds r0, 0x22 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080F5522 - movs r0, 0x16 - b _080F5528 -_080F5522: - movs r0, 0x15 - b _080F5528 -_080F5526: - ldrb r0, [r5, 0x12] -_080F5528: - strb r0, [r2] -_080F552A: - ldr r0, =gUnknown_0858D594 - mov r2, r9 - lsls r1, r2, 2 - adds r1, r0 - ldr r0, [r1] - bl box_related_two__2 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShowSecretBaseSecrets - - thumb_func_start DoTVShowSafariFanClub -DoTVShowSafariFanClub: @ 80F5548 - push {r4,r5,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r0, =gUnknown_0203A030 - ldrb r5, [r0] - adds r2, r0, 0 - cmp r5, 0xA - bls _080F5570 - b _080F56BC -_080F5570: - lsls r0, r5, 2 - ldr r1, =_080F5594 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080F5594: - .4byte _080F55C0 - .4byte _080F55DC - .4byte _080F5614 - .4byte _080F5628 - .4byte _080F569A - .4byte _080F562E - .4byte _080F5650 - .4byte _080F5680 - .4byte _080F5694 - .4byte _080F569A - .4byte _080F56B8 -_080F55C0: - ldrb r1, [r4, 0x2] - cmp r1, 0 - bne _080F55CC - movs r0, 0x6 - strb r0, [r2] - b _080F56BC -_080F55CC: - cmp r1, 0x3 - bhi _080F55D6 - movs r0, 0x5 - strb r0, [r2] - b _080F56BC -_080F55D6: - movs r0, 0x1 - strb r0, [r2] - b _080F56BC -_080F55DC: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x4] - bl sub_81DB5E8 - ldrb r1, [r4, 0x2] - movs r0, 0x1 - bl sub_80EF340 - ldrb r0, [r4, 0x3] - cmp r0, 0 - bne _080F5608 - ldr r1, =gUnknown_0203A030 - movs r0, 0x3 - strb r0, [r1] - b _080F56BC - .pool -_080F5608: - ldr r1, =gUnknown_0203A030 - movs r0, 0x2 - strb r0, [r1] - b _080F56BC - .pool -_080F5614: - ldrb r1, [r4, 0x3] - movs r0, 0x1 - bl sub_80EF340 - ldr r1, =gUnknown_0203A030 - movs r0, 0x4 - strb r0, [r1] - b _080F56BC - .pool -_080F5628: - movs r0, 0x4 - strb r0, [r2] - b _080F56BC -_080F562E: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x4] - bl sub_81DB5E8 - ldrb r1, [r4, 0x2] - movs r0, 0x1 - bl sub_80EF340 - ldrb r0, [r4, 0x3] - cmp r0, 0 - beq _080F5662 - b _080F5674 - .pool -_080F5650: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x4] - bl sub_81DB5E8 - ldrb r0, [r4, 0x3] - cmp r0, 0 - bne _080F5674 -_080F5662: - ldr r1, =gUnknown_0203A030 - movs r0, 0x8 - strb r0, [r1] - b _080F56BC - .pool -_080F5674: - ldr r1, =gUnknown_0203A030 - movs r0, 0x7 - strb r0, [r1] - b _080F56BC - .pool -_080F5680: - ldrb r1, [r4, 0x3] - movs r0, 0x1 - bl sub_80EF340 - ldr r1, =gUnknown_0203A030 - movs r0, 0x9 - strb r0, [r1] - b _080F56BC - .pool -_080F5694: - movs r0, 0x9 - strb r0, [r2] - b _080F56BC -_080F569A: - ldr r0, =gStringVar1 - adds r1, r4, 0 - adds r1, 0x13 - ldrb r2, [r4, 0x4] - bl sub_81DB5E8 - ldr r1, =gUnknown_0203A030 - movs r0, 0xA - strb r0, [r1] - b _080F56BC - .pool -_080F56B8: - bl TVShowDone -_080F56BC: - ldr r0, =gUnknown_0858D640 - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl box_related_two__2 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShowSafariFanClub - - thumb_func_start DoTVShowPokemonContestLiveUpdates2 -DoTVShowPokemonContestLiveUpdates2: @ 80F56D4 - push {r4-r6,lr} - ldr r2, =gSaveBlock1Ptr - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =0x000027cc - adds r0, r1 - ldr r1, [r2] - adds r4, r1, r0 - ldr r1, =gScriptResult - movs r0, 0 - strh r0, [r1] - ldr r6, =gUnknown_0203A030 - ldrb r5, [r6] - cmp r5, 0x2 - bgt _080F5718 - cmp r5, 0x1 - bge _080F5744 - cmp r5, 0 - beq _080F571E - b _080F575E - .pool -_080F5718: - cmp r5, 0x3 - beq _080F574E - b _080F575E -_080F571E: - ldr r0, =gStringVar1 - ldrb r1, [r4, 0xA] - bl sub_818E868 - ldrb r1, [r4, 0x16] - cmp r1, 0x1 - bne _080F5734 - strb r1, [r6] - b _080F575E - .pool -_080F5734: - cmp r1, 0 - bne _080F573E - movs r0, 0x2 - strb r0, [r6] - b _080F575E -_080F573E: - movs r0, 0x3 - strb r0, [r6] - b _080F575E -_080F5744: - ldr r0, =gStringVar3 - adds r1, r4, 0x2 - ldrb r2, [r4, 0x17] - bl sub_81DB5E8 -_080F574E: - ldr r0, =gStringVar2 - adds r1, r4, 0 - adds r1, 0xB - ldrb r2, [r4, 0x18] - bl sub_81DB5E8 - bl TVShowDone -_080F575E: - ldr r0, =gUnknown_0858D384 - lsls r1, r5, 2 - adds r1, r0 - ldr r0, [r1] - bl box_related_two__2 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end DoTVShowPokemonContestLiveUpdates2 - - thumb_func_start TVShowDone -TVShowDone: @ 80F577C - ldr r1, =gScriptResult - movs r0, 0x1 - strh r0, [r1] - ldr r1, =gUnknown_0203A030 - movs r0, 0 - strb r0, [r1] - ldr r0, =gSaveBlock1Ptr - ldr r2, [r0] - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r2, r0 - ldr r0, =0x000027cd - adds r2, r0 - movs r0, 0 - strb r0, [r2] - bx lr - .pool - thumb_func_end TVShowDone - - thumb_func_start ResetTVShowState -ResetTVShowState: @ 80F57B8 - ldr r1, =gUnknown_0203A030 - movs r0, 0 - strb r0, [r1] - bx lr - .pool - thumb_func_end ResetTVShowState - - .align 2, 0 @ Don't pad with nop. diff --git a/common_syms/tv.txt b/common_syms/tv.txt new file mode 100644 index 000000000..0370f65e1 --- /dev/null +++ b/common_syms/tv.txt @@ -0,0 +1,4 @@ +sCurTVShowSlot +sTV_SecretBaseVisitMovesTemp +sTV_DecorationsBuffer +sTV_SecretBaseVisitMonsTemp diff --git a/data/event_scripts.s b/data/event_scripts.s index 4dd5761e5..e700ad181 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -822,7 +822,15 @@ gUnknown_0827EE09:: @ 27EE09 .incbin "baserom.gba", 0x27ee09, 0x2 gUnknown_0827EE0B:: @ 827EE0B - .incbin "baserom.gba", 0x27ee0b, 0x118fa + .incbin "baserom.gba", 0x27ee0b, 0x46a + + .include "data/text/tv.inc" + + .incbin "baserom.gba", 0x0028c7e9, 0x90f + + .include "data/text/pokemon_news.inc" + + .incbin "baserom.gba", 0x28e066, 0x269f gUnknown_08290705:: @ 8290705 .incbin "baserom.gba", 0x290705, 0xeb diff --git a/data/text/pokemon_news.inc b/data/text/pokemon_news.inc new file mode 100644 index 000000000..5af4e2994 --- /dev/null +++ b/data/text/pokemon_news.inc @@ -0,0 +1,165 @@ + +gPokeNewsTextSlateport_Upcoming:: @ 0828D0F8 + .string "Greetings!\n" + .string "It’s time for POKéMON NEWS.\p" + .string "SLATEPORT’s most popular kind of guy,\n" + .string "the ENERGY GURU, is in the news again!\p" + .string "He promises to, “Stupendously go for\n" + .string "it in just this many days: {STR_VAR_1}!”\p" + .string "While he refused to elaborate on what\n" + .string "he will stupendously go for, the\l" + .string "ENERGY GURU advised, “Save up your\l" + .string "money. That’ll be good…”\p" + .string "It sounds like a trip to SLATEPORT\n" + .string "would be well worth your while that day.\p" + .string "That’s the news on POKéMON NEWS.$" + +gPokeNewsTextSlateport_Ongoing:: @ 0828D2A1 + .string "Greetings!\n" + .string "It’s time for POKéMON NEWS.\p" + .string "This is the news you’ve all been\n" + .string "waiting for!\p" + .string "SLATEPORT’S ENERGY GURU is going\n" + .string "for it stupendously in the MARKET!\p" + .string "He promises unbeatable bargain\n" + .string "prices on CALCIUM and PROTEIN!\p" + .string "A trip to SLATEPORT CITY sounds\n" + .string "worthwhile. Why not visit and shop\l" + .string "to your heart’s content?\p" + .string "That’s the news on POKéMON NEWS.$" + +gPokeNewsTextSlateport_Ending:: @ 0828D3F5 + .string "Greetings!\n" + .string "It’s time for POKéMON NEWS.\p" + .string "This is the news you’ve all been\n" + .string "waiting for!\p" + .string "SLATEPORT’S ENERGY GURU is going\n" + .string "for it stupendously in the MARKET!\p" + .string "He promises unbeatable bargain\n" + .string "prices on CALCIUM and PROTEIN!\p" + .string "According to the ENERGY GURU, he\n" + .string "still has ample merchandise left.\p" + .string "Why not visit SLATEPORT CITY for\n" + .string "a most enjoyable shopping trip?\p" + .string "That’s the news on POKéMON NEWS.$" + +gPokeNewsTextGameCorner_Upcoming:: @ 0828D571 + .string "Greetings!\n" + .string "It’s time for POKéMON NEWS.\p" + .string "It’s approaching!\n" + .string "It’s finally coming!\p" + .string "The GAME CORNER’s service day will be\n" + .string "here in just this many days: {STR_VAR_1}!\p" + .string "Even those who are usually unlucky\n" + .string "may be lucky on this particular day!\p" + .string "That’s the news on POKéMON NEWS.$" + +gPokeNewsTextGameCorner_Ongoing:: @ 0828D66F + .string "Greetings!\n" + .string "It’s time for POKéMON NEWS.\p" + .string "It’s here!\n" + .string "It’s finally arrived!\p" + .string "GAME CORNER’s service day has finally\n" + .string "arrived!\p" + .string "Could you be lucky at the SLOTS \n" + .string "and ROULETTE?\p" + .string "The location is MAUVILLE CITY.\n" + .string "This is the place!\p" + .string "That’s the news on POKéMON NEWS.$" + +gPokeNewsTextGameCorner_Ending:: @ 0828D768 + .string "Greetings!\n" + .string "It’s time for POKéMON NEWS.\p" + .string "It’s here!\n" + .string "It’s finally arrived!\p" + .string "GAME CORNER’s service day has finally\n" + .string "arrived!\p" + .string "Could you be lucky at the SLOTS\n" + .string "and ROULETTE?\p" + .string "Time is limited and has almost run out.\n" + .string "The location is MAUVILLE CITY.\p" + .string "That’s the news on POKéMON NEWS.$" + +gPokeNewsTextLilycove_Upcoming:: @ 0828D875 + .string "Greetings!\n" + .string "It’s time for POKéMON NEWS.\p" + .string "We’ve just received wonderful news\n" + .string "from LILYCOVE DEPARTMENT STORE.\p" + .string "The DEPARTMENT STORE’s clear-out sale\n" + .string "will be in just this many days: {STR_VAR_1}!\p" + .string "That thingamajig or that doodad that\n" + .string "you’ve always wanted could be yours!\p" + .string "That’s the news on POKéMON NEWS.$" + +gPokeNewsTextLilycove_Ongoing:: @ 0828D994 + .string "Greetings!\n" + .string "It’s time for POKéMON NEWS.\p" + .string "This is the news you’ve all been\n" + .string "waiting for!\p" + .string "LILYCOVE DEPARTMENT STORE’s clear-out\n" + .string "sale has finally arrived!\p" + .string "All the thingamajigs and doodads that\n" + .string "you’ve always dreamt about…\p" + .string "You may be in for fateful encounters\n" + .string "with them all!\p" + .string "That’s the news on POKéMON NEWS.$" + +gPokeNewsTextLilycove_Ending:: @ 0828DAC0 + .string "Greetings!\n" + .string "It’s time for POKéMON NEWS.\p" + .string "This is the news you’ve all been\n" + .string "waiting for!\p" + .string "LILYCOVE DEPARTMENT STORE’s clear-out\n" + .string "sale has finally arrived!\p" + .string "All the thingamajigs and doodads that\n" + .string "you’ve always dreamt about…\p" + .string "You may be in for fateful encounters\n" + .string "with them all!\p" + .string "That’s the news on POKéMON NEWS.$" + +gPokeNewsTextBlendMaster_Upcoming:: @ 0828DBEC + .string "Greetings!\n" + .string "It’s time for POKéMON NEWS.\p" + .string "We have big news for everyone\n" + .string "involved in the making of {POKEBLOCK}S.\p" + .string "The legendary BLEND MASTER will be\n" + .string "appearing in LILYCOVE CITY with just\l" + .string "a mere {STR_VAR_1}-day wait to go!\p" + .string "The BLEND MASTER is said to be\n" + .string "the best in all HOENN when it comes to\l" + .string "spinning a BERRY BLENDER.\p" + .string "Those people who want to make great\n" + .string "{POKEBLOCK}S or see the MASTER in action\l" + .string "are urged to save their BERRIES.\p" + .string "That’s the news on POKéMON NEWS.$" + +gPokeNewsTextBlendMaster_Ongoing:: @ 0828DD9E + .string "Greetings!\n" + .string "It’s time for POKéMON NEWS.\p" + .string "We have big news for everyone\n" + .string "involved in the making of {POKEBLOCK}S.\p" + .string "The legendary BLEND MASTER has\n" + .string "finally appeared!\p" + .string "The BLEND MASTER is spinning\n" + .string "the BERRY BLENDER at the LILYCOVE\l" + .string "CONTEST HALL.\p" + .string "Those people who want to make great\n" + .string "{POKEBLOCK}S or see the MASTER in action\l" + .string "should hurry to LILYCOVE.\p" + .string "That’s the news on POKéMON NEWS.$" + +gPokeNewsTextBlendMaster_Ending:: @ 0828DF05 + .string "Greetings!\n" + .string "It’s time for POKéMON NEWS.\p" + .string "It’s incredible!\n" + .string "Too incredible, even!\p" + .string "The BERRY BLENDER is spinning at\n" + .string "a dizzying pace!\p" + .string "The BLEND MASTER has lived up to\n" + .string "his reputation!\p" + .string "The BLEND MASTER will soon be\n" + .string "leaving LILYCOVE.\p" + .string "If you haven’t seen the MASTER in\n" + .string "action, don’t waste this chance!\l" + .string "Head to LILYCOVE right now!\p" + .string "That’s the news on POKéMON NEWS.$" diff --git a/data/text/tv.inc b/data/text/tv.inc new file mode 100644 index 000000000..fa2d0ac73 --- /dev/null +++ b/data/text/tv.inc @@ -0,0 +1,2891 @@ +gTVBravoTrainerText00:: @ 0827F275 + .string "Yeah!\n" + .string "It’s BRAVO TRAINER time!\p" + .string "Today, we’re going to profile a POKéMON\n" + .string "belonging to {STR_VAR_1}.\p" + .string "Now, this POKéMON boasts a {STR_VAR_3}\n" + .string "Rank in the {STR_VAR_2} Category.$" + +gTVBravoTrainerText01:: @ 0827F304 + .string "Introducing {STR_VAR_2} the\n" + .string "{STR_VAR_1}!\p" + .string "The nickname {STR_VAR_2}…\p" + .string "Even the nickname exudes an air that\n" + .string "proclaims “{STR_VAR_3}”!$" + +gTVBravoTrainerText02:: @ 0827F361 + .string "Anyway, when the TRAINER {STR_VAR_1}\n" + .string "entered the POKéMON in a CONTEST,\l" + .string "we managed to get a few impassioned\l" + .string "quotes about the trusty partner.$" + +gTVBravoTrainerText03:: @ 0827F3E4 + .string "Asked about the CONTEST afterwards,\n" + .string "{STR_VAR_1} happily replied with a huge\l" + .string "grin, “{STR_VAR_2}!”\p" + .string "Well, sure, {STR_VAR_1}’s POKéMON came in\n" + .string "number {STR_VAR_3} in the CONTEST.\p" + .string "That line perfectly suits {STR_VAR_1}\n" + .string "right now, I’d say!$" + +gTVBravoTrainerText04:: @ 0827F49F + .string "Asked about the CONTEST afterwards,\n" + .string "{STR_VAR_1} replied with a tinge of\l" + .string "bitterness, “{STR_VAR_2}.”\p" + .string "Well, sure, {STR_VAR_1}’s POKéMON came in\n" + .string "number {STR_VAR_3} in the CONTEST.\p" + .string "{STR_VAR_1}’s disappointment comes across\n" + .string "loud and clear, I’d say!$" + +gTVBravoTrainerText05:: @ 0827F565 + .string "Wouldn’t you also like to know what\n" + .string "{STR_VAR_1} imagines {STR_VAR_2} to be?\p" + .string "You bet we did!\n" + .string "So we asked, of course!\p" + .string "The answer is all perfectly condensed:\n" + .string "“{STR_VAR_3}!”\p" + .string "That’s what the concept of {STR_VAR_2}\n" + .string "represents to {STR_VAR_1}!$" + +gTVBravoTrainerText06:: @ 0827F624 + .string "The last move {STR_VAR_2} used by\n" + .string "the {STR_VAR_1} is entirely about\l" + .string "“{STR_VAR_3}”!$" + +gTVBravoTrainerText07:: @ 0827F65C + .string "Bravo, {STR_VAR_1}!\n" + .string "Bravo, {STR_VAR_2}!\p" + .string "I hope we can count on seeing\n" + .string "{STR_VAR_1} scale even greater heights!\p" + .string "That’s all the time we have!\n" + .string "Until next time, see you!$" + +gTVBravoTrainerText08:: @ 0827F6E6 + .string "Introducing the TRAINER’s {STR_VAR_1}!$" + + .string "Hello! You’re the TRAINER who just had\n" + .string "a battle, right?\p" + .string "I’m gathering interviews with TRAINERS\n" + .string "all over the place.\p" + .string "May I get a few words from you about\n" + .string "your impressions on battling?$" + + .string "You will? Really?\n" + .string "Thank you!\l" + .string "Then, uh…\p" + .string "How did things turn out in\n" + .string "the BATTLE TOWER today?\p" + .string "Were you satisfied with the battle?\n" + .string "Or are you unhappy?$" + + .string "Oh…\n" + .string "Sorry we disturbed you.\p" + .string "Please give us an interview the next\n" + .string "time you visit the BATTLE TOWER.$" + + .string "Well, of course!\p" + .string "That unmistakable look of satisfaction\n" + .string "on your face…\p" + .string "It’s obvious that you’ve had a great\n" + .string "battle.$" + + .string "Oh, I see…\p" + .string "Well, it certainly is difficult to make a\n" + .string "battle turn out exactly as planned.$" + + .string "Oh, oh, may I ask one more question?\p" + .string "If you were to describe your\n" + .string "impressions about this battle with\l" + .string "one saying, what would it be?$" + + .string "Oh, that is stunningly cool!\p" + .string "That’s a great line!\n" + .string "I hope you’ll do great next time, too.\p" + .string "I hope to see you again!$" + + .string "Oh, I see…\p" + .string "Still, being the silent type is also\n" + .string "cool, isn’t it?\p" + .string "I hope you’ll give me the opportunity\n" + .string "to share your thoughts again!$" + + .string "I’ll be looking forward to your\n" + .string "next battle!$" + +gTVBravoTrainerBattleTowerText00:: @ 0827FB20 + .string "Yeah!\n" + .string "It’s BRAVO TRAINER time!\p" + .string "Today, we’re going to profile {STR_VAR_1},\n" + .string "who took the BATTLE TOWER challenge!\p" + .string "For the challenge, {STR_VAR_1} entered\n" + .string "one wicked {STR_VAR_2}.$" + +gTVBravoTrainerBattleTowerText01:: @ 0827FBB3 + .string "The pair set a new record of {STR_VAR_2} wins\n" + .string "in a row in {STR_VAR_1} competition!\l" + .string "Bravo, TRAINER!$" + +gTVBravoTrainerBattleTowerText02:: @ 0827FC04 + .string "The twosome finally succumbed to\n" + .string "{STR_VAR_1} in match number {STR_VAR_2}.\l" + .string "Nice try, TRAINER!\p" + .string "But, hey, it’s just bad luck to run into\n" + .string "{STR_VAR_1} so early in the challenge.\p" + .string "We asked the TRAINER for impressions\n" + .string "on the match with {STR_VAR_1}.$" + +gTVBravoTrainerBattleTowerText03:: @ 0827FCD1 + .string "The twosome won it all by defeating\n" + .string "{STR_VAR_1}’s {STR_VAR_2} thoroughly.\l" + .string "Bravo, TRAINER!\p" + .string "Knocking off even {STR_VAR_1}…\n" + .string "It defies belief! Simply astounding!\p" + .string "We asked the TRAINER for impressions\n" + .string "on the moment of glory.$" + +gTVBravoTrainerBattleTowerText04:: @ 0827FD91 + .string "After a string of wins, the pair finally\n" + .string "succumbed to {STR_VAR_1}’s {STR_VAR_2},\l" + .string "their final hurdle.\p" + .string "Nice try, TRAINER!\p" + .string "Still, you have to give credit.\n" + .string "You don’t see many famous combinations\l" + .string "like {STR_VAR_1} and {STR_VAR_2}.\p" + .string "We asked the TRAINER for impressions\n" + .string "on battling the celebrity pair.$" + +gTVBravoTrainerBattleTowerText05:: @ 0827FE93 + .string "This is what the TRAINER had to say:\n" + .string "“I’m satisfied!”\p" + .string "Now isn’t that a refreshing reply?\n" + .string "Bravo, TRAINER!\p" + .string "Isn’t it out-and-out awesome to be\n" + .string "able to battle to full satisfaction?\p" + .string "I found out exactly how satisfied\n" + .string "when I heard the TRAINER say this:$" + +gTVBravoTrainerBattleTowerText06:: @ 0827FF89 + .string "This is what the TRAINER had to say:\n" + .string "“I’m not satisfied…”\p" + .string "Our TRAINER was obviously a little down\n" + .string "when that was uttered.\p" + .string "Still, it’s not easy to be able to battle\n" + .string "with complete satisfaction, am I right?\p" + .string "Anyway, I found out how dissatisfied\n" + .string "our TRAINER was when I heard this:$" + +gTVBravoTrainerBattleTowerText07:: @ 0828009C + .string "None$" + +gTVBravoTrainerBattleTowerText08:: @ 082800A1 + .string "None$" + +gTVBravoTrainerBattleTowerText09:: @ 082800A6 + .string "None$" + +gTVBravoTrainerBattleTowerText10:: @ 082800AB + .string "None$" + +gTVBravoTrainerBattleTowerText11:: @ 082800B0 + .string "“{STR_VAR_1}.”$" + +gTVBravoTrainerBattleTowerText12:: @ 082800B6 + .string "“{STR_VAR_1}.”\n" + .string "Now isn’t that great?\p" + .string "It really expresses {STR_VAR_2}’s joy,\n" + .string "I’d say.\p" + .string "That battle with {STR_VAR_3} at the\n" + .string "end… It really was what you’d call\l" + .string "“{STR_VAR_1}”!$" + +gTVBravoTrainerBattleTowerText13:: @ 0828013D + .string "“{STR_VAR_1}.”\n" + .string "Now isn’t that fitting?\p" + .string "That battle with {STR_VAR_3} at the\n" + .string "end… You can’t describe it as anything\l" + .string "else but “{STR_VAR_1}”!\p" + .string "{STR_VAR_2}’s disappointment comes across\n" + .string "loud and clear, I’d say!$" + +gTVBravoTrainerBattleTowerText14:: @ 082801E6 + .string "Bravo, {STR_VAR_1}!\n" + .string "Bravo, {STR_VAR_2}!\p" + .string "I hope we can count on seeing\n" + .string "{STR_VAR_1} scale even greater heights!\p" + .string "That’s all the time we have!\n" + .string "Until next time, see you!$" + + .string "Wow!\p" + .string "It’s plain to see that you lavish your\n" + .string "love on your {STR_VAR_1}.\p" + .string "Okay, it’s named {STR_VAR_2}.\p" + .string "Can I ask you a favor?\p" + .string "I’m a TV reporter, and I’m running\n" + .string "a survey on POKéMON.\p" + .string "Would you be willing to answer a few\n" + .string "simple questions for me?$" + + .string "Great! Thank you!\p" + .string "Okay, here goes.\n" + .string "I just need quick answers, okay?$" + + .string "When you first met {STR_VAR_1},\n" + .string "what did you feel?\p" + .string "How would you describe your feelings\n" + .string "at the time?$" + + .string "Your {STR_VAR_1} is cared for lovingly.\p" + .string "If you were to liken it to something\n" + .string "that you like, what would it be?$" + + .string "This question also relates to your\n" + .string "beloved {STR_VAR_1}.\p" + .string "What was it about {STR_VAR_1} that\n" + .string "attracted you?$" + + .string "Okay, that makes sense.\p" + .string "The next question might be a little\n" + .string "on the tough side.\p" + .string "Here goes…\p" + .string "What do POKéMON mean to you?$" + + .string "I see!\p" + .string "Hmhm…\p" + .string "Okay!\n" + .string "Thanks for helping me out.\p" + .string "It was fun and enlightening\n" + .string "chatting with you.\p" + .string "It’s possible that our interview will\n" + .string "end up on TV. Tune in and check!\p" + .string "Okay, that’s all.\n" + .string "Bye-bye!$" + + .string "Oh, okay…\p" + .string "Well, if you get the urge to tell me\n" + .string "about POKéMON, I’ll be here!$" + + .string "I enjoy this job--you get to learn\n" + .string "about POKéMON by doing interviews.$" + + .string "Hi, you seem to be very close to your\n" + .string "{STR_VAR_1}.\p" + .string "Do you know what?\n" + .string "I’m a TV reporter.\p" + .string "I travel around interviewing people\n" + .string "about POKéMON.\p" + .string "I’m wondering if you’d be willing to tell\n" + .string "me a little about your {STR_VAR_1}?$" + + .string "Wow, thank you!\p" + .string "Okay, then, please tell me anything\n" + .string "you’d like about your {STR_VAR_1}.$" + + .string "Wow…\n" + .string "That’s an interesting account.\p" + .string "You really are tight with {STR_VAR_1},\n" + .string "aren’t you?\p" + .string "I get the feeling that your account\n" + .string "will make a great TV story.\p" + .string "I promise that I’ll turn this into\n" + .string "an entertaining show.\l" + .string "Keep your eyes out for it.\p" + .string "Okay, that’s all.\n" + .string "Bye-bye!$" + +gTVFanClubOpinionsText00:: @ 08280886 + .string "WE ARE THE POKéMON FAN CLUB!\p" + .string "We’re on the air!\p" + .string "On this program, we get your opinions,\n" + .string "and I shout them out on your behalf!\l" + .string "Isn’t it a fantastic program concept?\p" + .string "Today, we bring you this report from\n" + .string "our reporter, who we sent out to the\l" + .string "POKéMON FAN CLUB.\p" + .string "So, just who is today’s featured\n" + .string "POKéMON fan?\p" + .string "… … … … … … … …\p" + .string "{STR_VAR_1}!\p" + .string "So, let’s hear what {STR_VAR_1} has to\n" + .string "say about {STR_VAR_3} the {STR_VAR_2}.\p" + .string "And, I will shout those words of love\n" + .string "out loud on TV!\p" + .string "Hoo-hah!\p" + .string "Let’s shout!$" + +gTVFanClubOpinionsText01:: @ 08280A44 + .string "We asked {STR_VAR_1}, “When you first\n" + .string "laid eyes on your {STR_VAR_2}, what was\l" + .string "your initial thought?”\p" + .string "“{STR_VAR_3}!”\p" + .string "Yeahah! That’s a mighty fine shout!\p" + .string "Doesn’t it bring back memories of those\n" + .string "days long gone by?$" + +gTVFanClubOpinionsText02:: @ 08280AFC + .string "We asked {STR_VAR_1}, “If you were to\n" + .string "liken your {STR_VAR_2} to something,\l" + .string "it would be…”\p" + .string "… … … … … … … …\p" + .string "“{STR_VAR_3}!”\p" + .string "Whoah-oh, now that’s an original idea!\p" + .string "You sure can sense the intensity of\n" + .string "feeling the TRAINER has for\l" + .string "{STR_VAR_2}.$" + +gTVFanClubOpinionsText03:: @ 08280BC4 + .string "And let’s see…\n" + .string "What was it about that {STR_VAR_2}\l" + .string "that so attracted {STR_VAR_1}?\p" + .string "… … … … … … … …\p" + .string "“{STR_VAR_3}!”\p" + .string "Whoa! Such a spectacular declaration!\p" + .string "The TRAINER’s love for the {STR_VAR_2}\n" + .string "comes across loud and clear!$" + +gTVFanClubOpinionsText04:: @ 08280C7A + .string "Hm? Oh, there’s still more.\n" + .string "Let’s check it out!\p" + .string "Let me see, now…\p" + .string "We asked {STR_VAR_1}, “What do POKéMON\n" + .string "mean to you?”\p" + .string "… … … … … …\p" + .string "“{STR_VAR_3}!”\p" + .string "Bravo!\p" + .string "That’s the best shout I’ve had all day!\p" + .string "“{STR_VAR_3}!”\p" + .string "It makes you want to shout it out loud\n" + .string "again and again!\p" + .string "Now that we’ve had a great shout, it’s\n" + .string "time to say good-bye until next time!\p" + .string "So, let’s all have one last shout!\n" + .string "All together now…\p" + .string "“{STR_VAR_3}!”$" + +gTVFanClubText00:: @ 08280DEE + .string "WE ARE THE POKéMON FAN CLUB!\p" + .string "We’re on the air!\p" + .string "Today, we’ll get rolling with the\n" + .string "POKéMON SURVEY CORNER.\p" + .string "Out of all the tales woven by POKéMON\n" + .string "and TRAINERS, what startling new drama\l" + .string "will grab our attention today?\p" + .string "Let me see…\p" + .string "This one!\p" + .string "We’ll start with this letter!\p" + .string "It’s a letter from {STR_VAR_1} about a\n" + .string "beloved {STR_VAR_2}.\p" + .string "Let’s see how passionately our writer\n" + .string "can express love for the {STR_VAR_2}!\l" + .string "Hmhm…$" + +gTVFanClubText01:: @ 08280F69 + .string "Whoah!\n" + .string "What an amazing letter!$" + +gTVFanClubText02:: @ 08280F88 + .string "I loved it, so here it is again!$" + +gTVFanClubText03:: @ 08280FA9 + .string "A great letter bears reading over\n" + .string "and over!$" + +gTVFanClubText04:: @ 08280FD5 + .string "The bit “{STR_VAR_3},” that really\n" + .string "accentuates emotional impact!\p" + .string "It’s a great letter that has real\n" + .string "heartfelt depth!$" + +gTVFanClubText05:: @ 08281040 + .string "Especially that “{STR_VAR_3}” bit!\p" + .string "I love how “{STR_VAR_3}” is used!$" + +gTVFanClubText06:: @ 08281073 + .string "By the way, and it’s not important,\n" + .string "but “{STR_VAR_3}” is a great saying.\p" + .string "I’ve been using “{STR_VAR_3}” a lot\n" + .string "in conversations lately.$" + +gTVFanClubText07:: @ 082810E7 + .string "If I had to score this letter,\n" + .string "I’d give it {STR_VAR_3} points.\p" + .string "Next time, I’ll be expecting an even\n" + .string "better letter, {STR_VAR_1}!\p" + .string "A-whoops, will you look at the time?\n" + .string "Time to say good-bye until next time!$" + + .string "Oh?\n" + .string "Do you perhaps like POKéMON?\p" + .string "I’m on assignment with the TV network.\p" + .string "I’m gathering stories on POKéMON and\n" + .string "TRAINERS that occurred recently.\p" + .string "If you don’t mind, could you tell me\n" + .string "something about yourself?$" + + .string "I’m gathering stories on POKéMON and\n" + .string "TRAINERS that occurred recently.\p" + .string "If you don’t mind, could you tell me\n" + .string "something about yourself?$" + + .string "Oh, you will?\n" + .string "Thank you!\p" + .string "Then, please, tell me anything of\n" + .string "interest that you experienced recently\l" + .string "involving POKéMON.$" + + .string "Oh, I see…\p" + .string "Well, if you do have an interesting\n" + .string "story to tell, please let me know.$" + + .string "Oh, what an uplifting story!\p" + .string "I’ll be sure to get your story told\n" + .string "on television.\p" + .string "It should be aired sometime, I think,\n" + .string "so please look forward to it.$" + + .string "Hmmm…\n" + .string "I’ve got a good story for a TV program.\p" + .string "I’d better write it up in a hurry!$" + +gTVRecentHappeningsText00:: @ 0828149E + .string "Hello, it’s time for RECENT HAPPENINGS.\p" + .string "For POKéMON TRAINERS, every day\n" + .string "is a storybook tale.\p" + .string "What we want to do is to introduce you\n" + .string "to some of these POKéMON tales.\p" + .string "Today, we bring you the story\n" + .string "of the TRAINER {STR_VAR_1}.\p" + .string "What did {STR_VAR_1} experience recently?\n" + .string "Let’s find out.\p" + .string "Let’s see…$" + +gTVRecentHappeningsText01:: @ 082815AF + .string "Wasn’t that enlightening?\p" + .string "The story gives you a clear idea of what\n" + .string "{STR_VAR_1} has experienced recently.\l" + .string "It’s as if we were there as witnesses!$" + +gTVRecentHappeningsText02:: @ 08281636 + .string "“{STR_VAR_3}.” That\n" + .string "accents the tale and gives it depth.$" + +gTVRecentHappeningsText03:: @ 08281666 + .string "“{STR_VAR_3}.”\n" + .string "That gives the tale a sense of place.\l" + .string "It lets us envision the tale’s setting.$" + +gTVRecentHappeningsText04:: @ 082816BA + .string "The “{STR_VAR_3}”\n" + .string "section of the tale is very expressive.$" + +gTVRecentHappeningsText05:: @ 082816EB + .string "{STR_VAR_1} has recounted a wonderful\n" + .string "tale involving POKéMON.\p" + .string "And now {STR_VAR_1}’s tale is indelibly\n" + .string "etched into your soul, too.\p" + .string "That’s it for today.\n" + .string "Please tune in next time.$" + +gTVMassOutbreakText00:: @ 0828178A + .string "Greetings!\n" + .string "It’s time for POKéMON NEWS.\p" + .string "We’ve just received word of a very\n" + .string "rare occurrence.\p" + .string "There have been reports of a mass\n" + .string "outbreak of {STR_VAR_2} in the vicinity\l" + .string "of {STR_VAR_1}.\p" + .string "{STR_VAR_2}, as you’re probably aware,\n" + .string "is known as a POKéMON that’s rare\l" + .string "and hard to find.\p" + .string "It sounds like a rare opportunity to\n" + .string "see the mystifying outbreak of\l" + .string "{STR_VAR_2} in the wild.\p" + .string "That’s the news on POKéMON NEWS.$" + +gTV3CheersForPokeblocksText00:: @ 082818F4 + .string "MC: We hope you’re in good cheer,\n" + .string "“3 CHEERS FOR {POKEBLOCK}S” is here!\p" + .string "Today, we examine the {POKEBLOCK} blended\n" + .string "by {STR_VAR_1} and associates.\p" + .string "Without any delay, let me feed it\n" + .string "to my gourmet POKéMON GULPIN.\p" + .string "… … … … … …\n" + .string "… … … … … …$" + +gTV3CheersForPokeblocksText01:: @ 082819C7 + .string "GULPIN: Gubi! Gubii!\p" + .string "MC: And the verdict is very {STR_VAR_1}!\n" + .string "GULPIN says it tastes “{STR_VAR_2}!”\p" + .string "Thank you so much, {STR_VAR_3}!$" + +gTV3CheersForPokeblocksText02:: @ 08281A2F + .string "{STR_VAR_1}’s blending performance\n" + .string "left something to be desired.\p" + .string "If this TRAINER could blend better,\n" + .string "the {POKEBLOCK} would be much tastier.$" + +gTV3CheersForPokeblocksText03:: @ 08281AAC + .string "GULPIN: Gubi! Gubii!\p" + .string "MC: Hmm… It’s too {STR_VAR_1}.\n" + .string "GULPIN says it tastes “{STR_VAR_2}!”\p" + .string "It looks like {STR_VAR_3}’s errors\n" + .string "hurt the blending quality…$" + +gTV3CheersForPokeblocksText04:: @ 08281B28 + .string "It’s too bad that {STR_VAR_1}’s\n" + .string "leading effort went to waste.\p" + .string "Let’s hope {STR_VAR_2} can turn in\n" + .string "a better showing next time!$" + +gTV3CheersForPokeblocksText05:: @ 08281B93 + .string "Tune in next time!\n" + .string "Our slogan is “3 CHEERS FOR {POKEBLOCK}S!”$" + + .string "Hi, there!\p" + .string "I’m a big fan of {STR_VAR_1}.\n" + .string "What’s your opinion of {STR_VAR_1}?$" + + .string "I see, I see. That’s what you think\n" + .string "about the TRAINER.$" + + .string "Have you completely forgotten\n" + .string "about {STR_VAR_1}?$" + + .string "I’m a big fan of {STR_VAR_1}.\n" + .string "What’s your opinion of {STR_VAR_1}?$" + + .string "How strong would you rate {STR_VAR_1}\n" + .string "on a scale of one hundred?$" + + .string "Have you completely forgotten\n" + .string "about {STR_VAR_1}?$" + + .string "Oh, I see!\n" + .string "You should meet {STR_VAR_1} sometime.\l" + .string "I’m sure you’ll become a fan, too!$" + + .string "I see, I see.\p" + .string "Thank you!\n" + .string "That’s very useful to know.\p" + .string "I’ll share this information with other\n" + .string "{STR_VAR_1} fans and discuss it.$" + + .string "There’s going to be a TV special on\n" + .string "{STR_VAR_1} very soon.\p" + .string "I hope you catch it!$" + +gTVTrainerFanClubSpecialText00:: @ 08281DFB + .string "TRAINER FAN CLUB\n" + .string "{STR_VAR_1} SPECIAL!\p" + .string "This is a special presentation for\n" + .string "the fans of {STR_VAR_1} all over HOENN!\p" + .string "Today, we ask the question, “What do\n" + .string "people think of {STR_VAR_1}?”\p" + .string "We posed the question to {STR_VAR_2}\n" + .string "as the TRAINER representative.\p" + .string "We asked, “In one word, how would\n" + .string "you describe {STR_VAR_1}?”\p" + .string "The reply: “{STR_VAR_3}.”\p" + .string "Kudos to {STR_VAR_2}!\n" + .string "What a perceptive opinion!\p" + .string "“{STR_VAR_3} {STR_VAR_1}.”\n" + .string "It has such a nice ring to it!\p" + .string "{STR_VAR_2} also scored {STR_VAR_1}’s\n" + .string "strength from 0 to 100.$" + +gTVTrainerFanClubSpecialText01:: @ 08281F90 + .string "The score was {STR_VAR_3} points!\n" + .string "That is a very high score indeed!\p" + .string "{STR_VAR_2} must obviously hold\n" + .string "{STR_VAR_1} in very high esteem.$" + +gTVTrainerFanClubSpecialText02:: @ 08281FFA + .string "The score was {STR_VAR_3} points!\n" + .string "That is quite a good score.\p" + .string "{STR_VAR_2} must consider\n" + .string "{STR_VAR_1} to be a rival.$" + +gTVTrainerFanClubSpecialText03:: @ 08282052 + .string "The score was {STR_VAR_3} points!\n" + .string "That’s a rather weak score.\p" + .string "{STR_VAR_2} must consider\n" + .string "{STR_VAR_1} to be a mere sidekick.$" + +gTVTrainerFanClubSpecialText04:: @ 082820B2 + .string "The score was {STR_VAR_3} point(s)!\n" + .string "That’s a terrible score.\p" + .string "{STR_VAR_2} must consider\n" + .string "{STR_VAR_1} to be an underling.$" + +gTVTrainerFanClubSpecialText05:: @ 0828210E + .string "There you have it, folks!\p" + .string "I think we all learned something\n" + .string "new about {STR_VAR_1}.\p" + .string "In closing, I’ll leave you with\n" + .string "{STR_VAR_2}’s words.\p" + .string "{STR_VAR_3} {STR_VAR_1}!$" + +gTVNameRaterText00:: @ 0828218A + .string "And now, it’s time for…\n" + .string "THE NAME RATER SHOW.\p" + .string "I tell your POKéMON’s fortune from\n" + .string "the nickname you’ve bestowed.\p" + .string "Advice is what I have to give, and it is\n" + .string "helpful advice that I offer.\p" + .string "Today, I shall do a reading of\n" + .string "the nickname {STR_VAR_3} of {STR_VAR_1}’s\l" + .string "POKéMON {STR_VAR_2}.\p" + .string "Hmhm…\p" + .string "Hmm…\n" + .string "This nickname is…$" + +gTVNameRaterText01:: @ 0828229E + .string "A nickname that hints at talent in many\n" + .string "different ways.\p" + .string "I urge this TRAINER to take courage\n" + .string "and take on many challenges.$" + +gTVNameRaterText02:: @ 08282317 + .string "A nickname that perfectly complements\n" + .string "{STR_VAR_1}, the TRAINER’s name.\p" + .string "It suggests that you will forge a fine\n" + .string "partnership with precise timing.$" + +gTVNameRaterText03:: @ 0828239D + .string "A nickname fit for a unique individual\n" + .string "of a POKéMON!\p" + .string "If raised properly, this POKéMON’s\n" + .string "uniqueness will bloom excessively!$" + +gTVNameRaterText04:: @ 08282418 + .string "A nickname that will nurture the caring\n" + .string "and compassionate side of POKéMON.\p" + .string "If raised properly, this POKéMON will\n" + .string "come to exhibit real warmth!$" + +gTVNameRaterText05:: @ 082824A6 + .string "A very fine nickname that hints at\n" + .string "greatness to come.\p" + .string "I am intrigued about what the future\n" + .string "holds in store for this POKéMON.$" + +gTVNameRaterText06:: @ 08282522 + .string "A good nickname that should make the\n" + .string "POKéMON hale and hearty!\p" + .string "That POKéMON should remain fit and\n" + .string "robust for a long, long time.$" + +gTVNameRaterText07:: @ 082825A1 + .string "A good nickname that should make the\n" + .string "POKéMON very active!\p" + .string "I should think that this POKéMON will be\n" + .string "a strong performer in battles.$" + +gTVNameRaterText08:: @ 08282623 + .string "An appealing nickname that should make\n" + .string "the POKéMON very charming!\p" + .string "I don’t doubt that this POKéMON will be\n" + .string "quite the charmer in POKéMON CONTESTS.$" + +gTVNameRaterText09:: @ 082826B4 + .string "The nickname {STR_VAR_1} is rooted by\n" + .string "the letter “{STR_VAR_3}.”\p" + .string "That letter is supported by the first\n" + .string "letter “{STR_VAR_2},” which gives it a solid sense\l" + .string "of presence as a nickname.$" + +gTVNameRaterText10:: @ 0828274D + .string "The nickname {STR_VAR_1} is very\n" + .string "shapely in a pleasing manner.\p" + .string "The presence of the letters “{STR_VAR_2}” and\n" + .string "“{STR_VAR_3}”--now that is remarkably good!$" + +gTVNameRaterText11:: @ 082827CB + .string "The nickname {STR_VAR_1}--it has a\n" + .string "sublime, flowing feel to it.\p" + .string "The flow from the initial letter “{STR_VAR_2}” to\n" + .string "“{STR_VAR_3}” is especially wonderful.$" + +gTVNameRaterText12:: @ 08282849 + .string "Let’s examine other examples of fine\n" + .string "nicknames, shall we?$" + +gTVNameRaterText13:: @ 08282883 + .string "Try this example. Take a part of the\n" + .string "TRAINER name of {STR_VAR_1}, and end\l" + .string "up with the fine nickname {STR_VAR_2}{STR_VAR_3}.$" + +gTVNameRaterText14:: @ 082828E4 + .string "The nickname {STR_VAR_2}{STR_VAR_3} would also work\n" + .string "quite well.$" + +gTVNameRaterText15:: @ 08282912 + .string "The POKéMON’s species name of\n" + .string "{STR_VAR_2} could be used as the basis\l" + .string "for making the nickname {STR_VAR_1}{STR_VAR_3}.$" + +gTVNameRaterText16:: @ 0828296C + .string "{STR_VAR_1}{STR_VAR_3} would also be an effective\n" + .string "nickname.$" + +gTVNameRaterText17:: @ 08282996 + .string "What should always be avoided is using\n" + .string "another POKéMON species name.\p" + .string "For instance, avoid taking the name of\n" + .string "{STR_VAR_2} to make the nickname {STR_VAR_1}{STR_VAR_3}.\l" + .string "That is unacceptable.$" + +gTVNameRaterText18:: @ 08282A36 + .string "I must say that {STR_VAR_1} is quite\n" + .string "a good nickname.\p" + .string "I hope that the TRAINER will continue\n" + .string "to treat {STR_VAR_1} with love.\p" + .string "That’s it for today’s show.\n" + .string "May we meet again.$" + +gTVPokemonAnglerText00:: @ 08282ACF + .string "{STR_VAR_2} ANGLER\p" + .string "ANNOUNCER: Hello! Today, we’ll get tips\n" + .string "on fishing for {STR_VAR_2}.\p" + .string "GURU, what advice can you give for\n" + .string "catching {STR_VAR_2}?\p" + .string "GURU: Hm? Catching {STR_VAR_2}?\n" + .string "Well, let me tell you, be patient and\l" + .string "wait. That’s the bottom line.\p" + .string "Do you see {STR_VAR_1} over there?\n" + .string "That TRAINER makes a good example.\p" + .string "That TRAINER’s already had\n" + .string "{STR_VAR_3} POKéMON get away.\p" + .string "But there {STR_VAR_1} waits. No giving up.\n" + .string "That’s the law for catching {STR_VAR_2}.\p" + .string "ANNOUNCER: I see…\p" + .string "Oh! {STR_VAR_1} has finally landed an\n" + .string "elusive {STR_VAR_2}!\p" + .string "The TRAINER appears close to tears\n" + .string "out of sheer joy!\p" + .string "Seeing that elated look, I’m getting\n" + .string "the itch to go fishing, too!\p" + .string "Viewers, why not take this as a cue to\n" + .string "try some {STR_VAR_2} fishing?\p" + .string "Until our next broadcast, farewell and\n" + .string "good fishing to you all!$" + +gTVPokemonAnglerText01:: @ 08282D7C + .string "{STR_VAR_2} ANGLER\p" + .string "ANNOUNCER: Hello! Today, we’ll get tips\n" + .string "on fishing for {STR_VAR_2}.\p" + .string "GURU, what advice can you give for\n" + .string "catching {STR_VAR_2}?\p" + .string "GURU: Hm? Catching {STR_VAR_2}?\n" + .string "Well, let me tell you, use your fishing\l" + .string "ROD with vigor!\p" + .string "Do you see {STR_VAR_1} over there?\n" + .string "See how the ROD is handled?\p" + .string "That TRAINER’s already caught\n" + .string "{STR_VAR_3} in a row.\p" + .string "ANNOUNCER: It’s incredible!\n" + .string "It looks like a storm…\p" + .string "Seeing technique of that caliber, I’m\n" + .string "getting the itch to go fishing, too.\p" + .string "Viewers, why not take this as a cue to\n" + .string "try some {STR_VAR_2} fishing?\p" + .string "Until our next broadcast, farewell and\n" + .string "good fishing to you all!$" + +gTVPokemonTodayFailedText00:: @ 08282F9B + .string "Hello!\p" + .string "It’s time for POKéMON TODAY!\p" + .string "BIG SIS: Hi! Is everyone peachy and\n" + .string "perky today?\p" + .string "Today, we’re going to look at {STR_VAR_1}’s\n" + .string "POKéMON {STR_VAR_2}!\p" + .string "BIG BRO: Yeah! That’s what we’re going\n" + .string "to do!$" + +gTVPokemonTodayFailedText01:: @ 0828304D + .string "Oh!\n" + .string "Speaking of {STR_VAR_1}…\p" + .string "BIG SIS, I saw the TRAINER with my very\n" + .string "own eyes!\p" + .string "BIG SIS: Oh, what did you see?\p" + .string "BIG BRO: Well, I had to go on a trip to\n" + .string "{STR_VAR_2}.\p" + .string "That’s when I happened to come across\n" + .string "{STR_VAR_1}, who was trying to catch the\l" + .string "POKéMON {STR_VAR_3}, but…$" + +gTVPokemonTodayFailedText02:: @ 08283135 + .string "The POKéMON managed to get away!\p" + .string "It ended up wasting this many\n" + .string "POKé BALLS: {STR_VAR_2}!\p" + .string "You should have seen the expression\n" + .string "of frustration on {STR_VAR_1}’s face when\l" + .string "the POKéMON took off!$" + +gTVPokemonTodayFailedText03:: @ 082831DF + .string "But {STR_VAR_1} goofed and made the\n" + .string "POKéMON faint!\p" + .string "It ended up wasting this many\n" + .string "POKé BALLS: {STR_VAR_2}!\p" + .string "You should have seen the expression\n" + .string "of stunned dismay on {STR_VAR_1}’s face\l" + .string "when the POKéMON fainted!$" + +gTVPokemonTodayFailedText04:: @ 08283294 + .string "BIG SIS: Hey, there!\n" + .string "That’s not nice!\p" + .string "You shouldn’t be laughing at other\n" + .string "people’s misfortune!\p" + .string "Oh, poor {STR_VAR_1}.\n" + .string "What a shame!\p" + .string "BIG BRO: That’s true!\n" + .string "Sorry for laughing.$" + +gTVPokemonTodayFailedText05:: @ 08283337 + .string "BIG SIS: Bufufu…\p" + .string "BIG BRO: Hey!\n" + .string "You just laughed, too!\p" + .string "BIG SIS: Huh?!\p" + .string "I didn’t laugh!\n" + .string "Honestly, I didn’t!\p" + .string "Oh, poor {STR_VAR_1}.\n" + .string "What a shame!\p" + .string "BIG BRO: …$" + +gTVPokemonTodayFailedText06:: @ 082833C6 + .string "BIG SIS: That’s enough silliness!\n" + .string "Let’s look at today’s POKéMON…\p" + .string "Huh?\n" + .string "We’re out of time already?\p" + .string "Aww!\n" + .string "We couldn’t profile a POKéMON today!\p" + .string "BIG BRO: See you again next time!\p" + .string "BIG SIS: Hey, don’t end the show\n" + .string "without me!$" + +gTVPokemonTodaySuccessfulText00:: @ 082834A0 + .string "Hello!\p" + .string "It’s time for POKéMON TODAY!\p" + .string "BIG SIS: Hi! Is everyone peachy and\n" + .string "perky today?\p" + .string "Today, we’re going to look at {STR_VAR_1}’s\n" + .string "POKéMON {STR_VAR_2}!\p" + .string "BIG BRO: Yeah! That’s what we’re going\n" + .string "to do!$" + +gTVPokemonTodaySuccessfulText01:: @ 08283552 + .string "BIG SIS: {STR_VAR_1} gave the nickname\n" + .string "{STR_VAR_3} to the {STR_VAR_2}!\p" + .string "It sounds like {STR_VAR_3} is getting\n" + .string "good, loving care!$" + +gTVPokemonTodaySuccessfulText02:: @ 082835AE + .string "BIG BRO: The TRAINER had to throw this\n" + .string "many POKé BALLS to catch it: {STR_VAR_3}!\p" + .string "It finally took a single {STR_VAR_2}\n" + .string "to catch it!$" + +gTVPokemonTodaySuccessfulText03:: @ 0828361F + .string "BIG SIS: If it was that easy to catch,\n" + .string "it must have been destiny that brought\l" + .string "{STR_VAR_1} and the {STR_VAR_2} together!$" + +gTVPokemonTodaySuccessfulText04:: @ 08283685 + .string "BIG SIS: Wow! That’s so neat!\p" + .string "But you know what they say, a POKéMON\n" + .string "that takes a lot of effort to catch\l" + .string "earns the love of its TRAINER!$" + +gTVPokemonTodaySuccessfulText05:: @ 0828370C + .string "BIG SIS: {STR_VAR_1}’s {STR_VAR_2} is a\n" + .string "memorable POKéMON because it took an\l" + .string "invaluable MASTER BALL to catch!\p" + .string "BIG BRO: Wow! That’s mega-awesome!\p" + .string "BIG SIS: {STR_VAR_1} must have really\n" + .string "wanted that {STR_VAR_2}, for sure!$" + +gTVPokemonTodaySuccessfulText06:: @ 082837C2 + .string "BIG BRO: Then to give the nickname\n" + .string "{STR_VAR_3} to that {STR_VAR_2}…\p" + .string "You really get a good idea about\n" + .string "{STR_VAR_1}’s TRAINER sense.\p" + .string "BIG SIS: I second that notion!$" + +gTVPokemonTodaySuccessfulText07:: @ 08283848 + .string "If it were me, I’d give that nickname\n" + .string "to something like this {STR_VAR_3}!\p" + .string "BIG BRO: Whoa! That could be the start\n" + .string "of something new!$" + +gTVPokemonTodaySuccessfulText08:: @ 082838C2 + .string "{STR_VAR_2} the {STR_VAR_1}?\n" + .string "Doesn’t that sound perfect?\p" + .string "The letters and everything--they\n" + .string "sound just right for the POKéMON\l" + .string "{STR_VAR_1}!\p" + .string "BIG BRO: Yeah, true, that!$" + +gTVPokemonTodaySuccessfulText09:: @ 0828394A + .string "As far as I know, no TRAINER has ever\n" + .string "given the nickname {STR_VAR_2} to their\l" + .string "{STR_VAR_1}!\p" + .string "BIG BRO: That just goes to show what\n" + .string "great taste the TRAINER has in picking\l" + .string "nicknames!$" + +gTVPokemonTodaySuccessfulText10:: @ 082839EA + .string "The next time I catch a POKéMON,\n" + .string "I should give it the name {STR_VAR_2}.\p" + .string "BIG BRO: Huh? Me, too!\n" + .string "I’ll use the nickname {STR_VAR_2}, too!$" + +gTVPokemonTodaySuccessfulText11:: @ 08283A5F + .string "BIG SIS: Oh, no!\n" + .string "Look at the time!\p" + .string "Well, gang, this is it for today.\n" + .string "See you again next time!\p" + .string "BIG BRO: Remember, it could be your\n" + .string "POKéMON in the spotlight next time!$" + +gTVTodaysSmartShopperText00:: @ 08283B05 + .string "Hello!\p" + .string "It’s time for TODAY’S SMART SHOPPER.\p" + .string "INTERVIEWER: How are you, viewers?\p" + .string "Today we’re visiting a shop\n" + .string "in {STR_VAR_2}.\p" + .string "Let’s check on what the hot sellers\n" + .string "have been recently.$" + +gTVTodaysSmartShopperText01:: @ 08283BAF + .string "Let’s interview the clerk to get the\n" + .string "lowdown.\p" + .string "Hi, how’s your business?\p" + .string "CLERK: Oh, we’re doing excellent.\p" + .string "Recently, {STR_VAR_2} has been\n" + .string "selling especially strongly.\p" + .string "Why, just the other day a TRAINER\n" + .string "named {STR_VAR_1} bought {STR_VAR_3}.$" + +gTVTodaysSmartShopperText02:: @ 08283C81 + .string "INTERVIEWER: The TRAINER bought\n" + .string "{STR_VAR_3} {STR_VAR_2}S? That’s a haul!\p" + .string "If I may say so, {STR_VAR_1} must have\n" + .string "been stocking up for a long journey\l" + .string "to far-off places.\p" + .string "For traveling, {STR_VAR_2}S are so\n" + .string "important!$" + +gTVTodaysSmartShopperText03:: @ 08283D32 + .string "INTERVIEWER: Speaking of the item\n" + .string "{STR_VAR_2}, I just bought {STR_VAR_3} of\l" + .string "them recently.\p" + .string "After all, {STR_VAR_2}’s a great item!$" + +gTVTodaysSmartShopperText04:: @ 08283D99 + .string "INTERVIEWER: {STR_VAR_2}?!\n" + .string "But {STR_VAR_3} of them?!\p" + .string "I didn’t think there would be anyone\n" + .string "buying that many.\p" + .string "My goodness, I can only afford one or\n" + .string "two at a time…$" + +gTVTodaysSmartShopperText05:: @ 08283E28 + .string "INTERVIEWER: One time, I bought\n" + .string "a whole lot of the item {STR_VAR_2}.\p" + .string "But it turned out to be too many.\n" + .string "I ended up regretting it…\p" + .string "Since then, I only buy strictly what\n" + .string "I absolutely need…\p" + .string "Oops!\p" + .string "There’s no point talking about me!$" + +gTVTodaysSmartShopperText06:: @ 08283F01 + .string "CLERK: {STR_VAR_1} also bought the item\n" + .string "{STR_VAR_2} in bulk, taking {STR_VAR_3}.\p" + .string "INTERVIEWER: Oh, that’s smart.\n" + .string "{STR_VAR_2}’s a very good item, too.$" + +gTVTodaysSmartShopperText07:: @ 08283F72 + .string "CLERK: And, the TRAINER also bought\n" + .string "{STR_VAR_3} of the item {STR_VAR_2}.$" + +gTVTodaysSmartShopperText08:: @ 08283FA9 + .string "CLERK: Plus, it was during a big sale.\n" + .string "That’s smart shopping.$" + +gTVTodaysSmartShopperText09:: @ 08283FE7 + .string "INTERVIEWER: Hmm… {STR_VAR_1} sounds like\n" + .string "quite the shrewd bargain hunter!\p" + .string "In total, {STR_VAR_1}’s purchases came to…\p" + .string "¥{STR_VAR_2}?!\n" + .string "What an amazing sum!\p" + .string "Oops! We’re out of time!\n" + .string "See you on our next broadcast!$" + +gTVTodaysSmartShopperText10:: @ 0828409E + .string "CLERK: {STR_VAR_1} is a VIP customer,\n" + .string "no doubt about it.$" + +gTVTodaysSmartShopperText11:: @ 082840CE + .string "Let’s interview the clerk to get the\n" + .string "lowdown.\p" + .string "Hi, how’s your business?\p" + .string "CLERK: Oh, we’re doing unbelievable\n" + .string "business. It’s almost overwhelming.\p" + .string "Recently, a TRAINER named {STR_VAR_1}\n" + .string "bought the item {STR_VAR_2} in bulk.\p" + .string "The TRAINER almost cleared out our\n" + .string "entire stock of {STR_VAR_2}S.\p" + .string "I never dreamt that any customer\n" + .string "would ever need so many {STR_VAR_2}S.\l" + .string "It’s just unheard of!\p" + .string "INTERVIEWER: So that would be like 100\n" + .string "or 200 sold?\p" + .string "CLERK: Oh, no, much more than that!\p" + .string "INTERVIEWER: Oh, my goodness!\n" + .string "{STR_VAR_1} must be a special shopper!\p" + .string "CLERK: {STR_VAR_1} is a VIP customer,\n" + .string "no doubt about it.$" + +gTVTodaysSmartShopperText12:: @ 082842E6 + .string "INTERVIEWER: Hmm…\n" + .string "That is amazing.\p" + .string "But why would the TRAINER need to buy\n" + .string "so many?\p" + .string "… …\p" + .string "The mystery deepens, but this is all\n" + .string "the time we have today.\l" + .string "See you on our next broadcast!\p" + .string "Still, {STR_VAR_1} is certainly an enigma…$" + +gTVWorldOfMastersText00:: @ 082843BA + .string "THE WORLD OF MASTERS\p" + .string "Hello, viewers.\p" + .string "Perhaps you are aware of a TRAINER\n" + .string "named {STR_VAR_1}.\p" + .string "{STR_VAR_1} is famous as a master at\n" + .string "catching POKéMON.\p" + .string "{STR_VAR_1}’s quest for POKéMON depends\n" + .string "entirely on a careful search on foot.\p" + .string "On one memorable day, the TRAINER\n" + .string "walked some {STR_VAR_2} steps.\p" + .string "The total number of POKéMON caught\n" + .string "that day reached an impressive {STR_VAR_3}!$" + +gTVWorldOfMastersText01:: @ 082844FD + .string "That remarkable feat must have been\n" + .string "possible because of the trust between\l" + .string "the TRAINER and {STR_VAR_1}.$" + +gTVWorldOfMastersText02:: @ 0828455B + .string "The master caught the day’s last\n" + .string "{STR_VAR_3} near {STR_VAR_2}.\p" + .string "That POKéMON apparently enjoys\n" + .string "a special status as a record holder.\p" + .string "Skilled TRAINERS should be encouraged\n" + .string "to challenge this fine record.\p" + .string "That’s all for today.\n" + .string "Please tune in next time.$" + +gTVTodaysRivalTrainerText00:: @ 08284641 + .string "TODAY’S RIVAL TRAINER!\p" + .string "Hello, fellow POKéMON TRAINERS!\n" + .string "How are we all doing today?\p" + .string "Today, like every other day,\n" + .string "we’ll examine one of our rivals!$" + +gTVTodaysRivalTrainerText07:: @ 082846D2 + .string "Today’s rival TRAINER is {STR_VAR_1},\n" + .string "who’s around {STR_VAR_3} now.\p" + .string "{STR_VAR_1} has so far registered\n" + .string "{STR_VAR_2} POKéMON in the POKéDEX.$" + +gTVTodaysRivalTrainerText08:: @ 08284738 + .string "Today’s rival TRAINER is {STR_VAR_1},\n" + .string "who’s in a SECRET BASE now.\p" + .string "{STR_VAR_1} has so far registered\n" + .string "{STR_VAR_2} POKéMON in the POKéDEX.$" + +gTVTodaysRivalTrainerText09:: @ 082847A5 + .string "Today’s rival TRAINER is {STR_VAR_1}.\p" + .string "So far, {STR_VAR_1} has registered\n" + .string "{STR_VAR_2} POKéMON in the POKéDEX.$" + +gTVTodaysRivalTrainerText10:: @ 082847F7 + .string "Today’s rival TRAINER is {STR_VAR_1},\n" + .string "who’s on a ferry now.\p" + .string "{STR_VAR_1} has so far registered\n" + .string "{STR_VAR_2} POKéMON in the POKéDEX.$" + + .string "$" + +gTVTodaysRivalTrainerText01:: @ 0828485F + .string "And how many BADGES does our rival\n" + .string "have? The number is {STR_VAR_1}!$" + +gTVTodaysRivalTrainerText02:: @ 0828489A + .string "But our rival hasn’t obtained\n" + .string "a single BADGE yet!$" + +gTVTodaysRivalTrainerText03:: @ 082848CC + .string "Our rival hasn’t obtained a single\n" + .string "BATTLE FRONTIER Symbol yet.$" + +gTVTodaysRivalTrainerText04:: @ 0828490B + .string "Let’s see how many BATTLE FRONTIER\n" + .string "Symbols our rival has.\p" + .string "Gold Symbols: {STR_VAR_1}!\n" + .string "Silver Symbols: {STR_VAR_2}!$" + +gTVTodaysRivalTrainerText05:: @ 0828496B + .string "Our rival has collected {STR_VAR_1} Battle\n" + .string "Point(s) at the BATTLE FRONTIER.$" + +gTVTodaysRivalTrainerText06:: @ 082849AE + .string "So, how did you measure up in\n" + .string "comparison to {STR_VAR_1}?\p" + .string "The adventure rolls on!\p" + .string "Fellow TRAINERS!\p" + .string "Let’s all keep moving forward\n" + .string "and ahead of our rivals!$" + +gTVDewfordTrendWatcherNetworkText00:: @ 08284A3E + .string "DEWFORD TREND-WATCHER NETWORK!\p" + .string "MC: Wassup?\n" + .string "We’ll keep it real with the latest on\l" + .string "what’s hip and happening in DEWFORD.\p" + .string "Our guest today is this old cat whose\n" + .string "claim to fame is being the authority\l" + .string "on all things in DEWFORD.\p" + .string "Old man: Glad to be here.\p" + .string "MC: Let’s cut to the chase, right on.\p" + .string "What’s your word on what’s groovin’\n" + .string "the good folks of DEWFORD?\p" + .string "Old man: {STR_VAR_1} {STR_VAR_2}.\p" + .string "MC: {STR_VAR_1} {STR_VAR_2},\n" + .string "you say?\p" + .string "Old man: No.\p" + .string "{STR_VAR_1} {STR_VAR_2} never\n" + .string "did get popular at all.\p" + .string "Would you like to hear about it?\p" + .string "MC: Uh, no. What we want to know is\n" + .string "what’s the in thing of the moment…$" + +gTVDewfordTrendWatcherNetworkText01:: @ 08284C55 + .string "Old man: {STR_VAR_1} {STR_VAR_2}\n" + .string "was what {STR_VAR_3} from LITTLEROOT\l" + .string "taught me as being trendy…$" + +gTVDewfordTrendWatcherNetworkText02:: @ 08284C9B + .string "Old man: {STR_VAR_1} {STR_VAR_2}\n" + .string "was what {STR_VAR_3} from LITTLEROOT\l" + .string "taught me as being trendy…$" + +gTVDewfordTrendWatcherNetworkText03:: @ 08284CE1 + .string "But it was utterly hopeless.\p" + .string "{STR_VAR_1} {STR_VAR_2} festival!\p" + .string "{STR_VAR_1} {STR_VAR_2} contest!\p" + .string "I tried teaching everyone the best\n" + .string "I could, but…\p" + .string "Perhaps the {STR_VAR_1} part just\n" + .string "wasn’t right…\p" + .string "MC: Uh, excuse me, compadre, I need\n" + .string "to hear about what’s in now…$" + +gTVDewfordTrendWatcherNetworkText04:: @ 08284DB6 + .string "Old man: {STR_VAR_3}!\n" + .string "Please, tell me something bigger than\l" + .string "that {STR_VAR_1} {STR_VAR_2}!$" + +gTVDewfordTrendWatcherNetworkText05:: @ 08284DF5 + .string "Old man: {STR_VAR_3}!\n" + .string "Please, tell me something bigger than\l" + .string "that {STR_VAR_1} {STR_VAR_2}!$" + +gTVDewfordTrendWatcherNetworkText06:: @ 08284E34 + .string "MC: …Uh… So, there you have it,\n" + .string "all you trendy, hep cats out there!\p" + .string "{STR_VAR_1} {STR_VAR_2}…uh…\n" + .string "Didn’t get hip or happening in DEWFORD!\p" + .string "My time is up. Catch you on the fly!\p" + .string "Old man: {STR_VAR_1} {STR_VAR_2}!$" + +gTVHoennTreasureInvestigatorsText00:: @ 08284EDF + .string "HOENN TREASURE INVESTIGATORS!\p" + .string "Hi, gang!\n" + .string "Score any secret items lately?\p" + .string "As always, we’ll examine eyewitness\n" + .string "reports of secrets from all over!\p" + .string "Let’s start with a letter.\n" + .string "It says, “{STR_VAR_1} discovered!”$" + +gTVHoennTreasureInvestigatorsText01:: @ 08284FA1 + .string "Wow, we’d better check this letter\n" + .string "out! Let me read it to you.\p" + .string "…Dear INVESTIGATORS,\n" + .string "I hope you are well.\p" + .string "I recently saw {STR_VAR_2} somewhere\n" + .string "around {STR_VAR_3}.\p" + .string "The TRAINER found the item\n" + .string "{STR_VAR_1}. It made me envious.\p" + .string "…Well, good going, {STR_VAR_2}!\p" + .string "Viewers, let that motivate you to\n" + .string "fire up your ITEMFINDERS and search!\p" + .string "I’ll be waiting for exciting news\n" + .string "from all of you!$" + +gTVHoennTreasureInvestigatorsText02:: @ 082850F5 + .string "Wow, we’d better check this letter\n" + .string "out! Let me read it to you.\p" + .string "…Dear INVESTIGATORS,\n" + .string "I hope you are well.\p" + .string "I recently saw {STR_VAR_2} on a ferry.\p" + .string "The TRAINER found the item\n" + .string "{STR_VAR_1}. It made me envious.\p" + .string "…Well, good going, {STR_VAR_2}!\p" + .string "Viewers, let that motivate you to\n" + .string "fire up your ITEMFINDERS and search!\p" + .string "I’ll be waiting for exciting news\n" + .string "from all of you!$" + +gTVFindThatGamerText00:: @ 08285240 + .string "FIND THAT GAMER!\p" + .string "Hey, all you gamers!\n" + .string "How’s your {STR_VAR_2} spinning?\p" + .string "Like always, we’ll cast our spotlight\n" + .string "on a rare TRAINER who’s visited the\l" + .string "GAME CORNER!\p" + .string "Today, our no. 1 gamer is…\n" + .string "{STR_VAR_1}!$" + +gTVFindThatGamerText01:: @ 082852F4 + .string "{STR_VAR_1} played the {STR_VAR_2} game\n" + .string "and won a rare {STR_VAR_3} COINS.\p" + .string "“When {STR_VAR_1} comes, we need to\n" + .string "make sure we have enough COINS.”\p" + .string "That’s what the GAME CORNER clerks\n" + .string "mutter when our gamer is in play!\p" + .string "Viewers, it’s best to watch your COINS\n" + .string "like {STR_VAR_1} if you visit the GAME\l" + .string "CORNER and play the {STR_VAR_2} game.\p" + .string "This is live from the GAME CORNER--\n" + .string "where you can feel the excitement!\p" + .string "That’s all for today!$" + +gTVFindThatGamerText02:: @ 08285463 + .string "{STR_VAR_1} played the {STR_VAR_2} game\n" + .string "and lost {STR_VAR_3} COINS.\p" + .string "“When {STR_VAR_1} comes, our COIN\n" + .string "sales seem to increase.”\p" + .string "That’s what the GAME CORNER clerks\n" + .string "say when our gamer is in play!$" + +gTVFindThatGamerText03:: @ 08285500 + .string "Viewers, it’s best to watch your COINS\n" + .string "like {STR_VAR_1} if you visit the GAME\l" + .string "CORNER and play the {STR_VAR_2} game.\p" + .string "This is live from the GAME CORNER--\n" + .string "where you can feel the excitement!\p" + .string "That’s all for today!$" + +gTVBreakingNewsText00:: @ 082855BF + .string "BREAKING NEWS TV!$" + +gTVBreakingNewsText01:: @ 082855D1 + .string "Rare {STR_VAR_2} caught by\n" + .string "{STR_VAR_1}!\p" + .string "We’re live from the vicinity of\n" + .string "{STR_VAR_3}!\p" + .string "{STR_VAR_1} successfully captured\n" + .string "a rare {STR_VAR_2} earlier here!$" + +gTVBreakingNewsText02:: @ 0828563C + .string "When {STR_VAR_1} encountered the rare\n" + .string "{STR_VAR_2}, the TRAINER sent out\l" + .string "the POKéMON {STR_VAR_3}.$" + +gTVBreakingNewsText03:: @ 08285682 + .string "In the battle, the number of POKé\n" + .string "BALLS thrown by the TRAINER was {STR_VAR_1}.\p" + .string "Ultimately, the rare POKéMON was\n" + .string "caught by the {STR_VAR_2} used last.$" + +gTVBreakingNewsText04:: @ 08285705 + .string "In that instant, {STR_VAR_2}\n" + .string "echoed with {STR_VAR_1}’s roars of\l" + .string "triumphant joy.\p" + .string "I must say I’m a little envious of\n" + .string "{STR_VAR_1}. I’d love to roar, too.\p" + .string "…That ends the live feed from\n" + .string "the happy scene!$" + +gTVBreakingNewsText05:: @ 082857B0 + .string "{STR_VAR_1} fails to capture a rare\n" + .string "{STR_VAR_2}!\p" + .string "We’re live from the vicinity of\n" + .string "{STR_VAR_3}!\p" + .string "It was here that {STR_VAR_1} failed\n" + .string "to capture a rare {STR_VAR_2}!$" + +gTVBreakingNewsText06:: @ 08285824 + .string "When {STR_VAR_1} encountered the rare\n" + .string "{STR_VAR_2}, the TRAINER sent out\l" + .string "the POKéMON {STR_VAR_3}.$" + +gTVBreakingNewsText07:: @ 0828586A + .string "The TRAINER made the {STR_VAR_2}\n" + .string "use the move {STR_VAR_1}.\p" + .string "Without meaning to, the TRAINER\n" + .string "made the rare POKéMON faint…$" + +gTVBreakingNewsText12:: @ 082858D0 + .string "However, {STR_VAR_1} panicked at\n" + .string "the sight of the rare {STR_VAR_2}.\p" + .string "In confusion, the TRAINER ordered\n" + .string "{STR_VAR_3} to attack.\p" + .string "Without meaning to, the TRAINER\n" + .string "made the rare POKéMON faint.$" + +gTVBreakingNewsText08:: @ 0828596F + .string "In that instant, {STR_VAR_2}\n" + .string "echoed with {STR_VAR_1}’s shrieks of\l" + .string "frustration…$" + +gTVBreakingNewsText09:: @ 082859AC + .string "However, {STR_VAR_1} seemed to run\n" + .string "out of POKé BALLS.\p" + .string "The TRAINER had to break off\n" + .string "the battle with the rare {STR_VAR_2}.\p" + .string "In that instant, {STR_VAR_3}\n" + .string "echoed with {STR_VAR_1}’s shrieks of\l" + .string "frustration…$" + +gTVBreakingNewsText10:: @ 08285A50 + .string "However, the {STR_VAR_2} fled without\n" + .string "warning.\p" + .string "In that instant, {STR_VAR_3}\n" + .string "echoed with {STR_VAR_1}’s shrieks of\l" + .string "frustration…$" + +gTVBreakingNewsText11:: @ 08285AB3 + .string "I must say I feel for {STR_VAR_1}.\n" + .string "Why, it makes me want to shriek, too.\p" + .string "…That ends the live feed from\n" + .string "the melancholy scene!$" + +gTVSecretBaseVisitText00:: @ 08285B27 + .string "Hello, folks!\n" + .string "It’s time again for\l" + .string "a SECRET BASE VISIT.\p" + .string "Today, we visit the SECRET BASE\n" + .string "of {STR_VAR_1}.\p" + .string "How has {STR_VAR_1} personalized\n" + .string "the SECRET BASE?\p" + .string "Let’s find out!\n" + .string "… … … … … …$" + +gTVSecretBaseVisitText01:: @ 08285BCA + .string "Oh!\n" + .string "How marvelous!\p" + .string "This {STR_VAR_2}…\n" + .string "It’s not what one would expect to\l" + .string "find here!$" + +gTVSecretBaseVisitText02:: @ 08285C13 + .string "Oh!\n" + .string "How remarkable!\p" + .string "There isn’t a single piece\n" + .string "of furniture or interior goods!\p" + .string "Mere mortals couldn’t hope to\n" + .string "imitate this bold statement!\p" + .string "It’s simple, but it bursts, yes,\n" + .string "bursts with wildness!\p" + .string "My hat’s off to you, {STR_VAR_1}.\n" + .string "It had to be you!$" + +gTVSecretBaseVisitText03:: @ 08285CFF + .string "Oh! I see!\n" + .string "With perfect clarity, I see it!\p" + .string "This {STR_VAR_2} being here…\n" + .string "It sends an effective message!$" + +gTVSecretBaseVisitText04:: @ 08285D5D + .string "Oh! I see!\n" + .string "With perfect clarity, I see it!\p" + .string "This space is kept deliberately\n" + .string "clear of interior items!\p" + .string "It sends an effective message!$" + +gTVSecretBaseVisitText05:: @ 08285DE0 + .string "Wheeew!\p" + .string "The pairing of the {STR_VAR_2}\n" + .string "with the {STR_VAR_3}!\p" + .string "It’s a dream combination if there\n" + .string "ever was one!$" + +gTVSecretBaseVisitText06:: @ 08285E3B + .string "Wheeew!\p" + .string "The placement of this {STR_VAR_2}\n" + .string "right here…\p" + .string "It has a presence that fills\n" + .string "the entire SECRET BASE!$" + +gTVSecretBaseVisitText07:: @ 08285E9D + .string "Wheeew!\p" + .string "There’s nothing in place here.\p" + .string "This empty space has an effect on\n" + .string "the entire SECRET BASE.$" + +gTVSecretBaseVisitText08:: @ 08285EFE + .string "Oh!\n" + .string "Here comes {STR_VAR_1}!\l" + .string "Let’s challenge the TRAINER!\p" + .string "… … … … … …\n" + .string "… … … … … …$" + +gTVSecretBaseVisitText09:: @ 08285F46 + .string "Sigh…\n" + .string "I’ve got to hand it to {STR_VAR_1}.\p" + .string "The TRAINER’s POKéMON were truly\n" + .string "worthy of the CHAMPION’s title.\p" + .string "They gave ample proof of {STR_VAR_1}’s\n" + .string "toughness as a TRAINER.\p" + .string "That the {STR_VAR_2} knew the move\n" + .string "{STR_VAR_3}…\p" + .string "It shows you what sort of a TRAINER\n" + .string "{STR_VAR_1} is.\p" + .string "Certainly, it was quite a lesson!$" + +gTVSecretBaseVisitText10:: @ 08286049 + .string "Aiyeeh!\n" + .string "I’ve got to hand it to {STR_VAR_1}.\p" + .string "The TRAINER’s POKéMON were\n" + .string "monstrously tough!\p" + .string "They gave ample proof of {STR_VAR_1}’s\n" + .string "tenacity as a TRAINER.\p" + .string "That the {STR_VAR_2} knew the move\n" + .string "{STR_VAR_3}…\p" + .string "It shows you what sort of a TRAINER\n" + .string "{STR_VAR_1} is.\p" + .string "Certainly, it was quite a lesson!$" + +gTVSecretBaseVisitText11:: @ 0828613A + .string "Wheeew!\n" + .string "I’ve got to hand it to {STR_VAR_1}.\p" + .string "The TRAINER’s POKéMON were clearly\n" + .string "raised in a well-balanced manner.\p" + .string "They gave ample proof of {STR_VAR_1}’s\n" + .string "thoughtfulness as a TRAINER.\p" + .string "That the {STR_VAR_2} knew the move\n" + .string "{STR_VAR_3}…\p" + .string "It shows you what sort of a TRAINER\n" + .string "{STR_VAR_1} is.\p" + .string "Certainly, it was quite a lesson!$" + +gTVSecretBaseVisitText12:: @ 08286248 + .string "Well, well!\n" + .string "I’ve got to hand it to {STR_VAR_1}.\p" + .string "The TRAINER’s POKéMON showed\n" + .string "great promise for future growth.\p" + .string "They represented {STR_VAR_1}’s\n" + .string "hopes and dreams.\p" + .string "That the {STR_VAR_2} knew the move\n" + .string "{STR_VAR_3}…\p" + .string "It shows you what sort of a TRAINER\n" + .string "{STR_VAR_1} is.\p" + .string "Certainly, it was quite a lesson!$" + +gTVSecretBaseVisitText13:: @ 08286340 + .string "I must say, what a superb SECRET BASE\n" + .string "it was!\p" + .string "Viewers, if you have the chance,\n" + .string "do visit {STR_VAR_1}’s SECRET BASE.\p" + .string "Until next time, I bid you adieu!$" + +gTVPokemonLotteryWinnerFlashReportText00:: @ 082863CC + .string "It’s exciting!\n" + .string "It’s dramatic!\p" + .string "It’s the POKéMON LOTTERY\n" + .string "WINNER FLASH REPORT!\p" + .string "Hello! We’re coming at you live from\n" + .string "the POKéMON LOTTERY CORNER on\l" + .string "the ground floor of the LILYCOVE\l" + .string "DEPARTMENT STORE!\p" + .string "Like it always happens, another\n" + .string "lucky TRAINER appeared today!\p" + .string "That TRAINER’s name…\n" + .string "{STR_VAR_1}!\p" + .string "{STR_VAR_1} won the {STR_VAR_2} prize\n" + .string "and took home the {STR_VAR_3}!\p" + .string "{STR_VAR_1}!\n" + .string "Congratulations!\p" + .string "Viewers, don’t just watch,\n" + .string "get in on the action!\p" + .string "All of us at the LILYCOVE DEPARTMENT\n" + .string "STORE look forward to your next visit!\p" + .string "This has been a live broadcast from\n" + .string "the LILYCOVE DEPARTMENT STORE,\l" + .string "offering you the greatest selection\l" + .string "in all HOENN!$" + +gTVThePokemonBattleSeminarText00:: @ 08286616 + .string "THE POKéMON BATTLE SEMINAR!\p" + .string "We examine battles to see what\n" + .string "lessons we may learn from others.\p" + .string "Today’s case study is on {STR_VAR_1}’s\n" + .string "battle.\p" + .string "{STR_VAR_1}’s {STR_VAR_2} was\n" + .string "battling one {STR_VAR_3}…$" + +gTVThePokemonBattleSeminarText01:: @ 082866B6 + .string "And it used the move {STR_VAR_3}\n" + .string "on the {STR_VAR_2}…\p" + .string "Hmm… {STR_VAR_1}!\n" + .string "That’s the wrong thing to do!$" + +gTVThePokemonBattleSeminarText02:: @ 08286700 + .string "In addition to the doomed move,\n" + .string "the TRAINER’s {STR_VAR_1} also knew$" + +gTVThePokemonBattleSeminarText03:: @ 0828673B + .string "the moves {STR_VAR_1}, {STR_VAR_2},\n" + .string "and {STR_VAR_3}.$" + +gTVThePokemonBattleSeminarText04:: @ 08286755 + .string "the moves {STR_VAR_1} and\n" + .string "{STR_VAR_2}.$" + +gTVThePokemonBattleSeminarText05:: @ 0828676A + .string "the move {STR_VAR_2}.$" + +gTVThePokemonBattleSeminarText06:: @ 08286777 + .string "So, in this situation, what should\n" + .string "the TRAINER have used?\p" + .string "… … … … … …\n" + .string "The move {STR_VAR_1}!\p" + .string "The move {STR_VAR_1} would have been\n" + .string "absolutely better than {STR_VAR_2}.\p" + .string "Viewers, I urge you to learn from this\n" + .string "case and battle with intelligence!\p" + .string "Until next time, farewell!$" + +gTVTrainerFanClubText00:: @ 08286866 + .string "All together now!\n" + .string "TRAINER FAN CLUB!\p" + .string "MC: How’s everyone groovin’?\n" + .string "Today, we’ve rounded up the fans of\l" + .string "the hyper-popular TRAINER {STR_VAR_1}!\p" + .string "FANS: Wrooooooaaaaah!\p" + .string "FANS: {STR_VAR_1}!\p" + .string "MC: Everyone!\n" + .string "How do you like {STR_VAR_1}?!\p" + .string "FANS: We love {STR_VAR_1}!\p" + .string "MC: What do you love about\n" + .string "{STR_VAR_1}?!$" + +gTVTrainerFanClubText01:: @ 0828695E + .string "FANS: Their cool way of throwing\n" + .string "POKé BALLS!$" + +gTVTrainerFanClubText02:: @ 0828698B + .string "FANS: Their adorable way of running!$" + +gTVTrainerFanClubText03:: @ 082869B0 + .string "FANS: How the TRAINER turns tough\n" + .string "when the going gets tough!$" + +gTVTrainerFanClubText04:: @ 082869ED + .string "FANS: The TRAINER’s knowledge of\n" + .string "POKéMON!$" + +gTVTrainerFanClubText05:: @ 08286A17 + .string "FANS: The TRAINER’s kindness toward\n" + .string "all POKéMON!$" + +gTVTrainerFanClubText06:: @ 08286A48 + .string "FANS: The TRAINER’s amazing\n" + .string "BIKE-riding techniques!$" + +gTVTrainerFanClubText07:: @ 08286A7C + .string "FANS: The TRAINER’s impressive\n" + .string "item-buying style!$" + +gTVTrainerFanClubText08:: @ 08286AAE + .string "FANS: The TRAINER’s charming way\n" + .string "of nicknaming POKéMON!$" + +gTVTrainerFanClubText09:: @ 08286AE6 + .string "FANS: The TRAINER’s nifty style of\n" + .string "decorating a SECRET BASE!$" + +gTVTrainerFanClubText10:: @ 08286B23 + .string "FANS: The TRAINER’s bold ways of\n" + .string "using TMs!$" + +gTVTrainerFanClubText11:: @ 08286B4F + .string "MC: As you’ve just seen, {STR_VAR_1}\n" + .string "is hot! Like, too hot to touch, yow!\p" + .string "Among {STR_VAR_1}’s FANS\n" + .string "there’s a special slogan!\p" + .string "MC: When I say {STR_VAR_1},\n" + .string "you say…\p" + .string "FANS: {STR_VAR_2}!\p" + .string "FANS: {STR_VAR_3}!\p" + .string "FANS: {STR_VAR_2}!\p" + .string "FANS: {STR_VAR_3}!\p" + .string "MC: That’s right, when someone says,\n" + .string "“{STR_VAR_1}”…\p" + .string "Come back with, “{STR_VAR_2}\n" + .string "{STR_VAR_3}!”\p" + .string "That has such a unique ring to it!\n" + .string "I can see why people become FANS\l" + .string "of {STR_VAR_1}!\p" + .string "Okay, you, in front of the TV, join us!\n" + .string "All together now!\p" + .string "MC: When I say {STR_VAR_1},\n" + .string "you say…\p" + .string "FANS: {STR_VAR_2}!\p" + .string "FANS: {STR_VAR_3}!\p" + .string "FANS: {STR_VAR_2}!\p" + .string "FANS: {STR_VAR_3}!\p" + .string "MC: Thanks for joining us, all you\n" + .string "wild FANS of {STR_VAR_1}!\l" + .string "That’s the show! See you again!\p" + .string "MC: When I say {STR_VAR_1},\n" + .string "you say…\p" + .string "FANS: {STR_VAR_2}!\p" + .string "FANS: {STR_VAR_3}!$" + +gTVCutiesText00:: @ 08286D8F + .string "SPOT THE CUTIES!\n" + .string "POKéMON IN RIBBONS!\p" + .string "Hello, my sweet viewers!\p" + .string "I just know you’ll agree, but a POKéMON\n" + .string "wearing RIBBONS is simply divine!\p" + .string "Today, I want to share with you\n" + .string "a lovely POKéMON I spotted while\l" + .string "out on a stroll in town.\p" + .string "Today’s featured pretty POKéMON\n" + .string "is {STR_VAR_1}’s {STR_VAR_2}.$" + +gTVCutiesText01:: @ 08286E9D + .string "The number of RIBBONS that\n" + .string "{STR_VAR_2} wears is {STR_VAR_3}.\p" + .string "It says a lot about how much\n" + .string "{STR_VAR_1} adores the POKéMON.$" + +gTVCutiesText02:: @ 08286EFC + .string "{STR_VAR_2} wears an amazing\n" + .string "{STR_VAR_3} RIBBONS!\p" + .string "It speaks volumes about {STR_VAR_1}’s\n" + .string "commitment to the POKéMON!$" + +gTVCutiesText03:: @ 08286F54 + .string "{STR_VAR_2} wears an incredible\n" + .string "{STR_VAR_3} RIBBONS!\p" + .string "It shows you {STR_VAR_1}’s total\n" + .string "dedication as a collector!$" + +gTVCutiesText04:: @ 08286FAA + .string "Let us take a closer look at the many\n" + .string "RIBBONS worn by {STR_VAR_2}.$" + +gTVCutiesText05:: @ 08286FE4 + .string "The CHAMPION RIBBON is especially\n" + .string "fetching.\p" + .string "{STR_VAR_2} received it upon entering\n" + .string "the HALL OF FAME.\p" + .string "It verily draws out the bravery\n" + .string "of {STR_VAR_2}.\p" + .string "{STR_VAR_2} and the CHAMP RIBBON!\n" + .string "The combination is super effective!$" + +gTVCutiesText06:: @ 082870A3 + .string "The COOL RIBBON is especially\n" + .string "fetching.\p" + .string "{STR_VAR_2} received it for winning\n" + .string "a COOL CONTEST.\p" + .string "It verily draws out the coolness\n" + .string "of {STR_VAR_2}.\p" + .string "{STR_VAR_2} and the COOL RIBBON!\n" + .string "The combination is super effective!$" + +gTVCutiesText07:: @ 0828715A + .string "The BEAUTY RIBBON is especially\n" + .string "fetching.\p" + .string "{STR_VAR_2} received it for winning\n" + .string "a BEAUTY CONTEST.\p" + .string "It verily draws out the beauty\n" + .string "of {STR_VAR_2}.\p" + .string "{STR_VAR_2} and the BEAUTY RIBBON!\n" + .string "The combination is super effective!$" + +gTVCutiesText08:: @ 08287215 + .string "The CUTE RIBBON is especially\n" + .string "fetching.\p" + .string "{STR_VAR_2} received it for winning\n" + .string "a CUTE CONTEST.\p" + .string "It verily draws out the cuteness\n" + .string "of {STR_VAR_2}.\p" + .string "{STR_VAR_2} and the CUTE RIBBON!\n" + .string "The combination is super effective!$" + +gTVCutiesText09:: @ 082872CC + .string "The SMART RIBBON is especially\n" + .string "fetching.\p" + .string "{STR_VAR_2} received it for winning\n" + .string "a SMART CONTEST.\p" + .string "It verily draws out the smartness\n" + .string "of {STR_VAR_2}.\p" + .string "{STR_VAR_2} and the SMART RIBBON!\n" + .string "The combination is super effective!$" + +gTVCutiesText10:: @ 08287387 + .string "The TOUGH RIBBON is especially\n" + .string "fetching.\p" + .string "{STR_VAR_2} received it for winning\n" + .string "a TOUGH CONTEST.\p" + .string "It verily draws out the toughness\n" + .string "of {STR_VAR_2}.\p" + .string "{STR_VAR_2} and the TOUGH RIBBON!\n" + .string "The combination is super effective!$" + +gTVCutiesText11:: @ 08287442 + .string "The WINNING RIBBON is especially\n" + .string "fetching.\p" + .string "{STR_VAR_2} received it for its feats\n" + .string "at the BATTLE TOWER.\p" + .string "It verily draws out the mightiness\n" + .string "of {STR_VAR_2}.\p" + .string "{STR_VAR_2} and the WINNING RIBBON!\n" + .string "The combination is super effective!$" + +gTVCutiesText12:: @ 08287508 + .string "The VICTORY RIBBON is especially\n" + .string "fetching.\p" + .string "{STR_VAR_2} received it for its feats\n" + .string "at the BATTLE TOWER.\p" + .string "It verily draws out the incredible\n" + .string "mightiness of {STR_VAR_2}.\p" + .string "{STR_VAR_2} and the VICTORY RIBBON!\n" + .string "The combination is super effective!$" + +gTVCutiesText13:: @ 082875D9 + .string "The ARTIST RIBBON is especially\n" + .string "fetching.\p" + .string "{STR_VAR_2} received it for being\n" + .string "the model for an artist.\p" + .string "It verily draws out the pop-star charm\n" + .string "of {STR_VAR_2}.\p" + .string "{STR_VAR_2} and the ARTIST RIBBON!\n" + .string "The combination is super effective!$" + +gTVCutiesText14:: @ 082876A1 + .string "The Hard Worker RIBBON is\n" + .string "especially fetching.\p" + .string "{STR_VAR_2} received it for being\n" + .string "an especially dedicated worker.\p" + .string "It verily draws out the determination\n" + .string "of {STR_VAR_2}.\p" + .string "{STR_VAR_2} and the Hard Worker RIBBON!\n" + .string "The combination is super effective!$" + +gTVCutiesText15:: @ 08287779 + .string "…Sigh…\p" + .string "RIBBONS and POKéMON…\n" + .string "They go so wonderfully together!\p" + .string "Before I swoon,\n" + .string "I bid you all farewell!$" + +gTVPokemonNewsBattleFrontierText00:: @ 082877DE + .string "Greetings!\n" + .string "It’s time for POKéMON NEWS.\p" + .string "We’ve got some uplifting news from\n" + .string "the BATTLE FRONTIER.$" + +gTVPokemonNewsBattleFrontierText01:: @ 0828783D + .string "The TRAINER {STR_VAR_1} set a new\n" + .string "{STR_VAR_2}-win-streak record while on\l" + .string "the BATTLE TOWER’s SINGLE BATTLE\l" + .string "ROOM challenge.\p" + .string "Here’s to {STR_VAR_1}!$" + +gTVPokemonNewsBattleFrontierText02:: @ 082878B3 + .string "The TRAINER {STR_VAR_1} set a new\n" + .string "{STR_VAR_2}-win-streak record while on\l" + .string "the BATTLE TOWER’s DOUBLE BATTLE\l" + .string "ROOM challenge.\p" + .string "Here’s to {STR_VAR_1}!$" + +gTVPokemonNewsBattleFrontierText03:: @ 08287929 + .string "The TRAINER {STR_VAR_1} set a new\n" + .string "{STR_VAR_2}-win-streak record while on\l" + .string "the BATTLE TOWER’s MULTI BATTLE\l" + .string "ROOM challenge.\p" + .string "Here’s to {STR_VAR_1}!$" + +gTVPokemonNewsBattleFrontierText04:: @ 0828799E + .string "The TRAINER {STR_VAR_1} set a new\n" + .string "{STR_VAR_2}-win-streak record while on\l" + .string "the BATTLE TOWER’s LINK MULTI BATTLE\l" + .string "ROOM challenge.\p" + .string "Here’s to {STR_VAR_1}!$" + +gTVPokemonNewsBattleFrontierText05:: @ 08287A18 + .string "The TRAINER {STR_VAR_1} set a new\n" + .string "{STR_VAR_2}-championship-streak record\l" + .string "competing in the BATTLE DOME’s\l" + .string "SINGLE BATTLE Tournaments.\p" + .string "Here’s to {STR_VAR_1}!$" + +gTVPokemonNewsBattleFrontierText06:: @ 08287A97 + .string "The TRAINER {STR_VAR_1} set a new\n" + .string "{STR_VAR_2}-championship-streak record\l" + .string "competing in the BATTLE DOME’s\l" + .string "DOUBLE BATTLE Tournaments.\p" + .string "Here’s to {STR_VAR_1}!$" + +gTVPokemonNewsBattleFrontierText07:: @ 08287B16 + .string "The TRAINER {STR_VAR_1} set a new\n" + .string "{STR_VAR_2}-win-streak record while on\l" + .string "the BATTLE FACTORY’s Battle\l" + .string "Swap Single challenge.\p" + .string "Here’s to {STR_VAR_1}!$" + +gTVPokemonNewsBattleFrontierText08:: @ 08287B8E + .string "The TRAINER {STR_VAR_1} set a new\n" + .string "{STR_VAR_2}-win-streak record while on\l" + .string "the BATTLE FACTORY’s Battle\l" + .string "Swap Double challenge.\p" + .string "Here’s to {STR_VAR_1}!$" + +gTVPokemonNewsBattleFrontierText09:: @ 08287C06 + .string "The TRAINER {STR_VAR_1} set a new\n" + .string "record of clearing {STR_VAR_2} rooms\l" + .string "while on the BATTLE PIKE’s Battle\l" + .string "Choice challenge.\p" + .string "Here’s to {STR_VAR_1}!$" + +gTVPokemonNewsBattleFrontierText10:: @ 08287C7D + .string "The TRAINER {STR_VAR_1} set a new\n" + .string "{STR_VAR_2}-win-streak record while\l" + .string "competing in the BATTLE ARENA’s\l" + .string "Set KO Tournaments.\p" + .string "Here’s to {STR_VAR_1}!$" + +gTVPokemonNewsBattleFrontierText11:: @ 08287CF3 + .string "The TRAINER {STR_VAR_1} set a new\n" + .string "{STR_VAR_2}-win-streak record while on\l" + .string "the BATTLE PALACE’s SINGLE BATTLE\l" + .string "HALL challenge.\p" + .string "Here’s to {STR_VAR_1}!$" + +gTVPokemonNewsBattleFrontierText12:: @ 08287D6A + .string "The TRAINER {STR_VAR_1} set a new\n" + .string "{STR_VAR_2}-win-streak record while on\l" + .string "the BATTLE PALACE’s DOUBLE BATTLE\l" + .string "HALL challenge.\p" + .string "Here’s to {STR_VAR_1}!$" + +gTVPokemonNewsBattleFrontierText13:: @ 08287DE1 + .string "The TRAINER {STR_VAR_1} set a new\n" + .string "record of clearing {STR_VAR_2} floors\l" + .string "while on the BATTLE PYRAMID’s\l" + .string "Battle Quest challenge.\p" + .string "Here’s to {STR_VAR_1}!$" + +gTVPokemonNewsBattleFrontierText14:: @ 08287E5B + .string "And to the three POKéMON, {STR_VAR_1},\n" + .string "{STR_VAR_2}, and {STR_VAR_3}!\p" + .string "Congratulations for your\n" + .string "record-breaking performance!$" + +gTVPokemonNewsBattleFrontierText15:: @ 08287EBB + .string "And to the two POKéMON, {STR_VAR_1}\n" + .string "and {STR_VAR_2}!\p" + .string "Congratulations for your\n" + .string "record-breaking performance!$" + +gTVPokemonNewsBattleFrontierText16:: @ 08287F14 + .string "And to the four POKéMON: {STR_VAR_1}!\p" + .string "{STR_VAR_2}!\p" + .string "{STR_VAR_3}!$" + +gTVPokemonNewsBattleFrontierText17:: @ 08287F39 + .string "And {STR_VAR_1}!\p" + .string "Congratulations for your\n" + .string "record-breaking performance!$" + +gTVPokemonNewsBattleFrontierText18:: @ 08287F77 + .string "Let’s hope for more record-setting\n" + .string "feats from {STR_VAR_1} and the loyal\l" + .string "POKéMON!\p" + .string "That’s the news on POKéMON NEWS!$" + +gTVWhatsNo1InHoennTodayText00:: @ 08287FE0 + .string "WHAT’S NO. 1 IN HOENN TODAY?\n" + .string "Yes, it’s that time again!\p" + .string "Hello, viewers! Are you giving your\n" + .string "best at whatever you do?\p" + .string "Let’s have a look at the TRAINER\n" + .string "who did the very best today!\p" + .string "Today’s no. 1 TRAINER is none other\n" + .string "than {STR_VAR_1}!$" + +gTVWhatsNo1InHoennTodayText01:: @ 082880C0 + .string "In one day, {STR_VAR_1} spun the SLOTS\n" + .string "at the GAME CORNER {STR_VAR_2} times.\p" + .string "While playing, {STR_VAR_1} was heard\n" + .string "murmuring, “For me, the reels don’t\l" + .string "even move…”\l" + .string "Isn’t that interesting?$" + +gTVWhatsNo1InHoennTodayText02:: @ 0828815F + .string "In one day, {STR_VAR_1} played\n" + .string "the ROULETTE game at the GAME\l" + .string "CORNER {STR_VAR_2} times.\p" + .string "While playing, {STR_VAR_1} shouted,\n" + .string "“Let the balls decide!”\p" + .string "The TRAINER’s eyes were focused and\n" + .string "the face showed concentration.$" + +gTVWhatsNo1InHoennTodayText03:: @ 0828821A + .string "In one day, {STR_VAR_1} battled\n" + .string "wild POKéMON {STR_VAR_2} times!\p" + .string "Apparently, {STR_VAR_1}’s POKéMON\n" + .string "have grown incomparably stronger.\p" + .string "They appear eager to battle anywhere,\n" + .string "anytime, and anyhow!$" + +gTVWhatsNo1InHoennTodayText04:: @ 082882BE + .string "In just one day, {STR_VAR_1} spun\n" + .string "the BERRY BLENDER {STR_VAR_2} times!\p" + .string "Toward the end, even {STR_VAR_1}\n" + .string "seemed to get dizzy.\p" + .string "The TRAINER appeared to totter\n" + .string "around like a SPINDA!$" + +gTVWhatsNo1InHoennTodayText05:: @ 08288355 + .string "In just one day, {STR_VAR_1} planted\n" + .string "{STR_VAR_2} BERRIES!\p" + .string "As a result, {STR_VAR_1}’s clothes\n" + .string "became filthy with dirt.\p" + .string "Where the TRAINER planted, countless\n" + .string "flowers have burst into bloom.\p" + .string "The flowers are said to soothe\n" + .string "the emotions of people.$" + +gTVWhatsNo1InHoennTodayText06:: @ 0828842B + .string "In just one day, {STR_VAR_1} picked\n" + .string "{STR_VAR_2} BERRIES!\p" + .string "{STR_VAR_1}’s BAG became so filled\n" + .string "with BERRIES, the TRAINER had trouble\l" + .string "walking afterward!$" + +gTVWhatsNo1InHoennTodayText07:: @ 082884A5 + .string "In just one day, {STR_VAR_1} obtained\n" + .string "{STR_VAR_2} Battle Points!\p" + .string "{STR_VAR_1} was later seen wrestling\n" + .string "with the choice of exchanging\l" + .string "the Battle Points for a cool item or\l" + .string "a nifty interior decoration.\p" + .string "The TRAINER reportedly was grinning\n" + .string "while mulling options.$" + +gTVWhatsNo1InHoennTodayText08:: @ 0828858B + .string "Well, isn’t that something!\p" + .string "{STR_VAR_1}!\n" + .string "You’re today’s no. 1 TRAINER!\p" + .string "Viewers, take heart from {STR_VAR_1}!\n" + .string "You, too, can be no. 1 every day!$" + +gTVSecretBaseSecretsText00:: @ 08288608 + .string "SECRET BASE SECRETS!\p" + .string "What do TRAINERS do in the secrecy\n" + .string "of SECRET BASES?\p" + .string "Today, we investigate {STR_VAR_1}’s\n" + .string "SECRET BASE.\p" + .string "Oh? It looks like {STR_VAR_2} has come\n" + .string "for a visit.\p" + .string "Let’s have a peek!\p" + .string "What will {STR_VAR_2} do?$" + +gTVSecretBaseSecretsText01:: @ 082886C8 + .string "What will {STR_VAR_2} do next?$" + +gTVSecretBaseSecretsText02:: @ 082886DE + .string "And now, what will {STR_VAR_2} do?$" + +gTVSecretBaseSecretsText03:: @ 082886F8 + .string "In the end, {STR_VAR_2} took {STR_VAR_3} steps\n" + .string "in {STR_VAR_1}’s SECRET BASE before\l" + .string "leaving.$" + +gTVSecretBaseSecretsText04:: @ 08288739 + .string "Hmm…\p" + .string "It appears as if {STR_VAR_1}’s SECRET\n" + .string "BASE failed to interest {STR_VAR_2}…$" + +gTVSecretBaseSecretsText05:: @ 08288777 + .string "{STR_VAR_2} appears to have enjoyed\n" + .string "{STR_VAR_1}’s SECRET BASE thoroughly.$" + +gTVSecretBaseSecretsText06:: @ 082887AF + .string "{STR_VAR_2} appears to have become\n" + .string "a huge fan of {STR_VAR_1}’s\l" + .string "SECRET BASE.$" + +gTVSecretBaseSecretsText07:: @ 082887E9 + .string "Viewers may want to check out\n" + .string "{STR_VAR_1}’s SECRET BASE, too.\p" + .string "Tune in next time as we visit another\n" + .string "SECRET BASE! Thanks for joining us!$" + +gTVSecretBaseSecretsText08:: @ 08288868 + .string "The visitor has stopped!\p" + .string "The visitor isn’t moving at all!\p" + .string "Was {STR_VAR_1}’s SECRET BASE\n" + .string "that unimpressive?$" + +gTVSecretBaseSecretsText09:: @ 082888CA + .string "The visitor has stopped!\p" + .string "The visitor isn’t moving at all!\p" + .string "Is it fatigue?\n" + .string "Has the visitor grown weary?$" + +gTVSecretBaseSecretsText10:: @ 08288930 + .string "The visitor sat down on a chair!\n" + .string "The visitor is seated!\p" + .string "Look at that look of delight!\p" + .string "That chair must be very comfortable\n" + .string "to get that response!$" + +gTVSecretBaseSecretsText11:: @ 082889C0 + .string "The visitor charged at a balloon!\p" + .string "It burst!\n" + .string "Oh, my goodness, it popped!\p" + .string "The visitor appears startled by\n" + .string "the sudden noise!$" + +gTVSecretBaseSecretsText12:: @ 08288A3A + .string "The visitor entered a TENT!\p" + .string "The visitor is running around!\p" + .string "Oh, my, the visitor is frolicking!\p" + .string "The visitor appears surprised by\n" + .string "the TENT’s size!$" + +gTVSecretBaseSecretsText13:: @ 08288ACA + .string "The visitor is examining\n" + .string "a potted plant!\p" + .string "The visitor has surprisingly\n" + .string "mature taste!$" + +gTVSecretBaseSecretsText14:: @ 08288B1E + .string "The visitor is examining\n" + .string "a GOLD SHIELD!\p" + .string "The visitor’s eyes appear to be\n" + .string "lit up with wonder!$" + +gTVSecretBaseSecretsText15:: @ 08288B7A + .string "The visitor is examining\n" + .string "a SILVER SHIELD!\p" + .string "The visitor appears to be wide-eyed!$" + +gTVSecretBaseSecretsText16:: @ 08288BC9 + .string "The visitor is examining\n" + .string "a GLASS ORNAMENT!\p" + .string "Oh, no!\p" + .string "The visitor is touching it!\p" + .string "It’s getting covered with\n" + .string "fingerprints…$" + +gTVSecretBaseSecretsText17:: @ 08288C40 + .string "The visitor is watching television!\p" + .string "Looks like we have a big fan of TV!$" + +gTVSecretBaseSecretsText18:: @ 08288C88 + .string "The visitor stomped on a MUD BALL!\p" + .string "The visitor looks delighted!$" + +gTVSecretBaseSecretsText19:: @ 08288CC8 + .string "…Oh?\p" + .string "The visitor is reaching for their own\n" + .string "BAG and rummaging about in it!\p" + .string "The visitor pulled out\n" + .string "one {STR_VAR_2}!\p" + .string "Look at the visitor smile while\n" + .string "holding up the {STR_VAR_2}!\p" + .string "It’s like a TV commercial!$" + +gTVSecretBaseSecretsText20:: @ 08288D7F + .string "The visitor grabs a cushion and…$" + +gTVSecretBaseSecretsText21:: @ 08288DA0 + .string "…begins hitting it!\p" + .string "Is the visitor under a lot of stress?$" + +gTVSecretBaseSecretsText22:: @ 08288DDA + .string "…hugs it tight!\p" + .string "Could the visitor be feeling happy\n" + .string "about something?$" + +gTVSecretBaseSecretsText23:: @ 08288E1E + .string "The visitor is chatting with\n" + .string "{STR_VAR_1}!\p" + .string "It looks like they’re going to\n" + .string "have a battle!\p" + .string "And…\p" + .string "It’s the visitor!\n" + .string "The visitor won an away match!\p" + .string "The visitor is doing\n" + .string "a victory dance!$" + +gTVSecretBaseSecretsText24:: @ 08288EC9 + .string "The visitor is chatting with\n" + .string "{STR_VAR_1}!\p" + .string "It looks like they’re going to\n" + .string "have a battle!\p" + .string "And…\p" + .string "It’s {STR_VAR_1}!\n" + .string "The visitor has lost!\p" + .string "The visitor looks dejected!$" + +gTVSecretBaseSecretsText25:: @ 08288F58 + .string "The visitor is chatting with\n" + .string "{STR_VAR_1}!\p" + .string "It looks like they’re going to\n" + .string "have a battle!\p" + .string "And…\p" + .string "No, the visitor has refused!\p" + .string "There won’t be a battle after all!\p" + .string "Did the visitor find {STR_VAR_1}\n" + .string "unappealing?$" + +gTVSecretBaseSecretsText26:: @ 08289011 + .string "The visitor is staring intently\n" + .string "at a poster!\p" + .string "Is the poster to the visitor’s\n" + .string "liking?\p" + .string "…But… There’s something disturbing\n" + .string "about the visitor’s stares.$" + +gTVSecretBaseSecretsText27:: @ 082890A4 + .string "The visitor stepped on a NOTE MAT!\p" + .string "…Hmm…\n" + .string "The visitor composed a funny tune!$" + +gTVSecretBaseSecretsText28:: @ 082890F0 + .string "The visitor is chatting with\n" + .string "{STR_VAR_1}!\p" + .string "It looks like they’re going to\n" + .string "have a battle!\p" + .string "And…\p" + .string "It’s a draw!\n" + .string "Nothing’s resolved!\p" + .string "Both TRAINERS appear to be very\n" + .string "disappointed!$" + +gTVSecretBaseSecretsText29:: @ 08289193 + .string "The visitor stepped on\n" + .string "a SPIN MAT!\p" + .string "It looks like the visitor is dizzy!\p" + .string "The visitor is tottering about!\n" + .string "Look out!$" + +gTVSecretBaseSecretsText30:: @ 08289204 + .string "The visitor is reaching for\n" + .string "a SAND ORNAMENT!\p" + .string "Oh!\p" + .string "It crumbled!\n" + .string "It’s fallen apart!\p" + .string "The visitor looks sheepish\n" + .string "and guilty!$" + +gTVSecretBaseSecretsText31:: @ 0828927C + .string "The visitor is rubbing a desktop\n" + .string "with their finger!\p" + .string "Apparently, the visitor disapproves\n" + .string "of dust!\p" + .string "The visitor is surprisingly concerned\n" + .string "about neatness!$" + +gTVSecretBaseSecretsText32:: @ 08289313 + .string "The visitor is staring at a BRICK!\p" + .string "Perhaps the visitor is thinking about\n" + .string "the object on the BRICK.$" + +gTVSecretBaseSecretsText33:: @ 08289375 + .string "The visitor is walking across\n" + .string "the SOLID BOARD.\p" + .string "The visitor keeps looking down.\p" + .string "The visitor appears to be surprisingly\n" + .string "timid and cautious!$" + +gTVSecretBaseSecretsText34:: @ 082893FF + .string "The visitor is looking intently\n" + .string "at a FENCE!\p" + .string "Has a new idea for a trap popped\n" + .string "into the visitor’s head?$" + +gTVSecretBaseSecretsText35:: @ 08289465 + .string "The visitor stepped on\n" + .string "a GLITTER MAT!\p" + .string "The visitor is striking a variety\n" + .string "of poses!\p" + .string "The visitor appears to be fantasizing\n" + .string "about being an idol!$" + +gTVSecretBaseSecretsText36:: @ 082894F2 + .string "The visitor is staring intently\n" + .string "at a TIRE!\p" + .string "Could the visitor be thinking about\n" + .string "the kind of car that would use it?$" + +gTVSecretBaseSecretsText37:: @ 08289564 + .string "The visitor climbed a STAND!\p" + .string "The visitor is looking out across\n" + .string "{STR_VAR_1}’s BASE from high up!\p" + .string "And…\p" + .string "Lets loose a roar!\n" + .string "The visitor is roaring!$" + +gTVSecretBaseSecretsText38:: @ 082895EB + .string "The visitor charged headlong into\n" + .string "a BREAKABLE DOOR!\p" + .string "The visitor is laughing uproariously!$" + +gTVSecretBaseSecretsText39:: @ 08289645 + .string "The visitor is talking to a DOLL!\p" + .string "…It’s a little creepy…$" + +gTVSecretBaseSecretsText40:: @ 0828967E + .string "The visitor is climbing the ladder\n" + .string "on a SLIDE!\p" + .string "And…\p" + .string "The visitor slid down!\p" + .string "Looks like the visitor is having\n" + .string "a grand old time!$" + +gTVSecretBaseSecretsText41:: @ 082896FC + .string "The visitor is climbing the ladder\n" + .string "on a SLIDE!\p" + .string "And…\p" + .string "The visitor went back down\n" + .string "the ladder!\p" + .string "Did the visitor suddenly chicken out?$" + +gTVSecretBaseSecretsText42:: @ 0828977D + .string "The visitor stepped on\n" + .string "a JUMP MAT!\p" + .string "The visitor jumped once!\p" + .string "Jumped twice!\p" + .string "And a successful landing!\p" + .string "The visitor is clapping!\n" + .string "What a solo performance!$" + +gTVSafariFanClubText00:: @ 08289813 + .string "SAFARI FAN CLUB!\p" + .string "REPORTER: All right, mates!\n" + .string "Tossing them SAFARI BALLS, are you?\p" + .string "You can bet I am here in the SAFARI\n" + .string "ZONE chock-full of amazing POKéMON!\p" + .string "Let’s get with it and have a chat with\n" + .string "this good fellow of a SAFARI GUIDE!\p" + .string "All right, mate, how are the visiting\n" + .string "TRAINERS looking?$" + +gTVSafariFanClubText01:: @ 0828992F + .string "GUIDE: Everyone seems to be going\n" + .string "hard at it.\p" + .string "{STR_VAR_1} is doing especially well.\p" + .string "Why, before, {STR_VAR_1} caught\n" + .string "{STR_VAR_2} POKéMON.$" + +gTVSafariFanClubText02:: @ 0828999D + .string "The TRAINER is clever with {POKEBLOCK}S.\n" + .string "Used {STR_VAR_2} that time, I think.$" + +gTVSafariFanClubText03:: @ 082899DC + .string "The TRAINER didn’t use a single\n" + .string "{POKEBLOCK}! Not a one!\p" + .string "There’s an expert for you.$" + +gTVSafariFanClubText04:: @ 08289A29 + .string "REPORTER: Is that right, then?\p" + .string "Sounds like our mate {STR_VAR_1}\n" + .string "is a stout SAFARI master!\p" + .string "GUIDE: I hope the TRAINER comes back\n" + .string "and shows us that great technique.$" + +gTVSafariFanClubText05:: @ 08289AC2 + .string "GUIDE: No one seems to be doing\n" + .string "very well.\p" + .string "{STR_VAR_1} had it especially bad.\p" + .string "Why, before, the TRAINER only\n" + .string "managed to catch {STR_VAR_2} POKéMON.$" + +gTVSafariFanClubText06:: @ 08289B42 + .string "GUIDE: No one seems to be doing\n" + .string "very well.\p" + .string "{STR_VAR_1} had it especially bad.\p" + .string "Why, before, the TRAINER didn’t\n" + .string "catch one POKéMON. Not a one!$" + +gTVSafariFanClubText07:: @ 08289BC5 + .string "The TRAINER does use {POKEBLOCK}S.\n" + .string "Used {STR_VAR_2} that time, I think.\p" + .string "But, boy, I wish the TRAINER would\n" + .string "get a bit better at this.$" + +gTVSafariFanClubText08:: @ 08289C3B + .string "I think the TRAINER would have better\n" + .string "luck using {POKEBLOCK}S, which weren’t\l" + .string "used at all that time.$" + +gTVSafariFanClubText09:: @ 08289C99 + .string "REPORTER: Is that right, then?\p" + .string "Sounds like our mate {STR_VAR_1}\n" + .string "needs more SAFARI seasoning.\p" + .string "GUIDE: I hope the TRAINER visits\n" + .string "over and over to get the hang of it.$" + +gTVSafariFanClubText10:: @ 08289D33 + .string "REPORTER: Quite right, it is!\n" + .string "Facing up to challenges is important!\p" + .string "Viewers, come on down to the SAFARI\n" + .string "and make the challenge yourself!\p" + .string "Until next time, cheerio!$" + +gTVContestLiveUpdatesText00:: @ 08289DD6 + .string "“POKéMON CONTEST LIVE UPDATES!”\p" + .string "MC: Thanks for joining us!\p" + .string "We’re live from the just-ended\n" + .string "{STR_VAR_1} site.\p" + .string "The hall is still filled with\n" + .string "an audience unwilling to leave.\p" + .string "Spectator: {STR_VAR_2}!\p" + .string "Spectator: {STR_VAR_3}!\p" + .string "MC: As you’ve just heard, the CONTEST\n" + .string "was won by the POKéMON {STR_VAR_2}\l" + .string "of {STR_VAR_3}.\p" + .string "Spectator: {STR_VAR_2}!\n" + .string "You’re the best!\p" + .string "Spectator: {STR_VAR_3}!\n" + .string "Way to go!\p" + .string "MC: Let’s hear what the fans have\n" + .string "to say about this CONTEST.$" + +gTVContestLiveUpdatesText01:: @ 08289F53 + .string "Spectator: The {STR_VAR_2} was tops in\n" + .string "both primary and secondary judging!\p" + .string "That {STR_VAR_2} will keep winning!$" + +gTVContestLiveUpdatesText02:: @ 08289FB0 + .string "Spectator: The {STR_VAR_2} didn’t do\n" + .string "well in the primary judging, but it\l" + .string "cleaned up in the secondary judging!\p" + .string "It was a miraculous comeback\n" + .string "for that {STR_VAR_2}. Yippee!$" + +gTVContestLiveUpdatesText03:: @ 0828A047 + .string "Spectator: The {STR_VAR_2} remained\n" + .string "consistent throughout both primary\l" + .string "and secondary judging.\p" + .string "{STR_VAR_3} and the {STR_VAR_2},\n" + .string "they’re no ordinary combo!$" + +gTVContestLiveUpdatesText04:: @ 0828A0C6 + .string "Spectator: In terms of being {STR_VAR_1},\n" + .string "that {STR_VAR_2} was outstanding.\p" + .string "I hope it makes better appeals\n" + .string "next time, though.$" + +gTVContestLiveUpdatesText05:: @ 0828A132 + .string "Spectator: When the {STR_VAR_2} got\n" + .string "nervous, I couldn’t stop myself from\l" + .string "shouting encouragement.\p" + .string "I’d like to say this to that\n" + .string "{STR_VAR_2}, “Congratulations!”$" + +gTVContestLiveUpdatesText06:: @ 0828A1BE + .string "Spectator: That {STR_VAR_2}’s appeal\n" + .string "startled even me!\p" + .string "{STR_VAR_2}, you were awesome!$" + +gTVContestLiveUpdatesText07:: @ 0828A202 + .string "Spectator: That {STR_VAR_2}’s combo\n" + .string "appeal was stunning!\p" + .string "It’s shaken me to the core!$" + +gTVContestLiveUpdatesText08:: @ 0828A24E + .string "Spectator: The winning {STR_VAR_2}’s\n" + .string "appeal got my heart pounding!$" + +gTVContestLiveUpdatesText09:: @ 0828A288 + .string "{STR_VAR_2}!\n" + .string "You were cool!$" + +gTVContestLiveUpdatesText10:: @ 0828A29B + .string "{STR_VAR_2}!\n" + .string "You were beautiful!$" + +gTVContestLiveUpdatesText11:: @ 0828A2B3 + .string "{STR_VAR_2}!\n" + .string "You were cute!$" + +gTVContestLiveUpdatesText12:: @ 0828A2C6 + .string "{STR_VAR_2}!\n" + .string "You were smart!$" + +gTVContestLiveUpdatesText13:: @ 0828A2DA + .string "{STR_VAR_2}!\n" + .string "You were tough!$" + +gTVContestLiveUpdatesText14:: @ 0828A2EE + .string "Spectator: The winning {STR_VAR_2}’s\n" + .string "appeal still has my heart pounding!$" + +gTVContestLiveUpdatesText15:: @ 0828A32E + .string "{STR_VAR_2}!\n" + .string "You’re the last word in cool!$" + +gTVContestLiveUpdatesText16:: @ 0828A350 + .string "{STR_VAR_2}!\n" + .string "You’re the most beautiful!$" + +gTVContestLiveUpdatesText17:: @ 0828A36F + .string "{STR_VAR_2}!\n" + .string "You’re simply the cutest!$" + +gTVContestLiveUpdatesText18:: @ 0828A38D + .string "{STR_VAR_2}!\n" + .string "You’re the smartest among the smart!$" + +gTVContestLiveUpdatesText19:: @ 0828A3B6 + .string "{STR_VAR_2}!\n" + .string "You’re the toughest of the tough!$" + +gTVContestLiveUpdatesText20:: @ 0828A3DC + .string "Spectator: Even when the {STR_VAR_2}\n" + .string "took a break from making appeals,\l" + .string "I couldn’t take my eyes off it.\p" + .string "I’m captivated by that {STR_VAR_2}.$" + +gTVContestLiveUpdatesText21:: @ 0828A455 + .string "Spectator: When the {STR_VAR_2} was\n" + .string "startled by another POKéMON’s appeal,\l" + .string "I was close to tears.\p" + .string "{STR_VAR_2}, you were resilient!\n" + .string "Way to go!$" + +gTVContestLiveUpdatesText22:: @ 0828A4CF + .string "Spectator: Oh…\n" + .string "That {STR_VAR_2}’s {STR_VAR_3}!\l" + .string "{STR_VAR_2}’s {STR_VAR_3}!\l" + .string "{STR_VAR_2}’s {STR_VAR_3}!\l" + .string "How could it be so wonderful?$" + +gTVContestLiveUpdatesText23:: @ 0828A51C + .string "MC: Well, there you have it. This place\n" + .string "is full of the {STR_VAR_1}’s fans!\p" + .string "I should also mention that another\n" + .string "POKéMON, {STR_VAR_2}’s {STR_VAR_3}, \l" + .string "caught my eye.\p" + .string "{STR_VAR_2}’s {STR_VAR_3}…$" + +gTVContestLiveUpdatesText24:: @ 0828A5AC + .string "It failed to make a single appeal during\n" + .string "secondary judging out of nervousness.\p" + .string "Next time, I would like to see this\n" + .string "{STR_VAR_1} make even one appeal.$" + +gTVContestLiveUpdatesText25:: @ 0828A638 + .string "It came dead last in both primary\n" + .string "and secondary judging.\p" + .string "I hope that {STR_VAR_1} will retrain this\n" + .string "{STR_VAR_2} and erase the shame of\l" + .string "this undisputed last-place finish.$" + +gTVContestLiveUpdatesText26:: @ 0828A6CF + .string "It failed to take advantage of\n" + .string "the audience’s excitement and make\l" + .string "an appropriate appeal.\p" + .string "We hope {STR_VAR_1} will learn how to get\n" + .string "a feel for the audience and whip their\l" + .string "excitement to a fever pitch next time.$" + +gTVContestLiveUpdatesText27:: @ 0828A797 + .string "While finishing first in the primary\n" + .string "judging, its appeals in the secondary\l" + .string "judging failed to click.\p" + .string "It suffered a humiliating come-from-\n" + .string "behind loss.\p" + .string "I’m sure {STR_VAR_1} is studying how to\n" + .string "make more effective appeals now.$" + +gTVContestLiveUpdatesText28:: @ 0828A86D + .string "The audience never got excited by its\n" + .string "appeals during the secondary judging.\p" + .string "We hope it will stop worrying about\n" + .string "other POKéMON and learn to pitch\l" + .string "its appeals to the audience more.$" + +gTVContestLiveUpdatesText29:: @ 0828A920 + .string "It lost to {STR_VAR_1}’s {STR_VAR_2}\n" + .string "by only a small margin.\p" + .string "It must be heartbreaking to come\n" + .string "so close to victory only to fail.\p" + .string "I wouldn’t be surprised if {STR_VAR_3}\n" + .string "were weeping over this outcome.$" + +gTVContestLiveUpdatesText30:: @ 0828A9CC + .string "It disappointed the JUDGE by\n" + .string "repeating the same appeals.\p" + .string "It’s an unforgivable error in any\n" + .string "CONTEST, and the POKéMON paid.\p" + .string "{STR_VAR_1} should feel guilty for\n" + .string "this sorry showing.$" + +gTVContestLiveUpdatesText31:: @ 0828AA74 + .string "{STR_VAR_1} turned in a valiant effort,\n" + .string "but…\p" + .string "It was all for naught, finishing last.\p" + .string "{STR_VAR_1} should learn from this loss\n" + .string "and put the knowledge to good use.$" + +gTVContestLiveUpdatesText32:: @ 0828AB01 + .string "I’d like to end this program with our\n" + .string "usual farewell to the winners.\p" + .string "This time, it’s {STR_VAR_1} and\n" + .string "the {STR_VAR_2}!\p" + .string "MC: Is everyone ready?\n" + .string "All together now!\p" + .string "Audience: {STR_VAR_1}! {STR_VAR_2}!\n" + .string "Congratulations!\l" + .string "You’re the CONTEST winner!$" + +gTVPokemonBattleUpdateText00:: @ 0828ABCC + .string "“POKéMON BATTLE UPDATE!”\p" + .string "Bringing you the results of POKéMON\n" + .string "battles as they come in!$" + +gTVPokemonBattleUpdateText01:: @ 0828AC22 + .string "The TRAINERS {STR_VAR_1} and\n" + .string "{STR_VAR_2} faced each other in\l" + .string "a {STR_VAR_3} BATTLE.\p" + .string "This match ended in victory for\n" + .string "{STR_VAR_1}!$" + +gTVPokemonBattleUpdateText02:: @ 0828AC7E + .string "In the battle, {STR_VAR_1}’s\n" + .string "{STR_VAR_2} was a formidable force\l" + .string "using {STR_VAR_3}!$" + +gTVPokemonBattleUpdateText03:: @ 0828ACB6 + .string "{STR_VAR_1}’s {STR_VAR_2} had a weak\n" + .string "showing that really hurt.$" + +gTVPokemonBattleUpdateText04:: @ 0828ACE3 + .string "Congratulations on your victory,\n" + .string "{STR_VAR_1}!\p" + .string "And for the defeated {STR_VAR_2},\n" + .string "we hope for a better result next time!\p" + .string "This concludes this episode of\n" + .string "“POKéMON BATTLE UPDATE!”$" + +gTVPokemonBattleUpdateText05:: @ 0828AD80 + .string "The teams of TRAINERS {STR_VAR_1} and\n" + .string "{STR_VAR_2} met in a MULTI BATTLE.\p" + .string "This match ended in victory for\n" + .string "{STR_VAR_1}’s team.$" + +gTVPokemonBattleUpdateText06:: @ 0828ADE2 + .string "In the battle, the {STR_VAR_2} on\n" + .string "{STR_VAR_1}’s team was a formidable\l" + .string "force using {STR_VAR_3}.$" + +gTVPokemonBattleUpdateText07:: @ 0828AE26 + .string "The weak showing by the {STR_VAR_3}\n" + .string "on {STR_VAR_2}’s team really hurt.\p" + .string "Congratulations on your team’s\n" + .string "victory, {STR_VAR_1}!\p" + .string "As for the defeated {STR_VAR_2}’s team,\n" + .string "we hope for a better result next time!\p" + .string "This concludes this episode of\n" + .string "“POKéMON BATTLE UPDATE!”$" + + .string "GABBY: Oh! We’ve just spotted a tough-\n" + .string "looking TRAINER here of all places!\p" + .string "Okay, roll camera!\n" + .string "Let’s get this interview.$" + + .string "GABBY: Oh! You’re {PLAYER}! Hi!\n" + .string "Do you remember us from last time?\p" + .string "Can you show us how much stronger\n" + .string "you’ve become? Okay, cue interview!$" + + .string "GABBY: My eyes didn’t lie!\n" + .string "I did discover an astonishing TRAINER!$" + + .string "GABBY: Awesome! Awesome!\n" + .string "Who are you?!\p" + .string "I knew we were onto something wild\n" + .string "when we spotted you!\p" + .string "Oh, please let me explain. We travel\n" + .string "around everywhere interviewing all\l" + .string "sorts of TRAINERS.\p" + .string "So, would you give us a bit of your time\n" + .string "for an interview?$" + + .string "GABBY: “{STR_VAR_1}!”\p" + .string "Remember? That’s the quote you gave\n" + .string "us as the battle clincher last time.\p" + .string "I never, ever forget stuff like that!$" + + .string "The last time we battled, you stomped\n" + .string "us before we could brace ourselves…\p" + .string "Anyway, what do you think?\n" + .string "Do you want to be interviewed again?$" + + .string "The last time we battled, didn’t you\n" + .string "throw a POKé BALL at us?\p" + .string "We were shocked! So we told everyone,\n" + .string "just everyone, about it!\p" + .string "Anyway, what do you think?\n" + .string "Do you want to be interviewed again?$" + + .string "The last time we battled, your item\n" + .string "skills cleverly did us in.\p" + .string "Anyway, what do you think?\n" + .string "Do you want to be interviewed again?$" + + .string "The last time we battled, we managed\n" + .string "to look respectable.\p" + .string "Anyway, what do you think?\n" + .string "Do you want to be interviewed again?$" + + .string "Anyway, what do you think?\n" + .string "Do you want to be interviewed again?$" + + .string "You will?\n" + .string "Thank you!\p" + .string "Okay, I need you to describe your\n" + .string "feelings about our battle, but it\l" + .string "has to be short and sweet. Go!$" + + .string "GABBY: Mmm, yeah!\n" + .string "That’s the perfect clincher!\p" + .string "I get the feeling that this will make\n" + .string "a great TV show.\p" + .string "There’s a chance that they’ll air this\n" + .string "on TV, so make sure to look for us!\p" + .string "Okay!\n" + .string "We’ll be seeing you!$" + + .string "GABBY: Oh…\p" + .string "Okay, but don’t give up!\n" + .string "We’ll be keeping an eye out for you!$" + + .string "GABBY: We’ll be keeping an eye out\n" + .string "for you!$" + + .string "GABBY: Is there a strong TRAINER\n" + .string "anywhere with a lot of POKéMON?$" + + .string "GABBY: Wow, you are something!\p" + .string "You’ve gotten a lot stronger--a lot--\n" + .string "since we last battled.\p" + .string "We were right about you when we\n" + .string "spotted you as a hot TRAINER.\p" + .string "So, anyway, what do you think?\n" + .string "Are you willing to give us an interview\l" + .string "this time?$" + + .string "GABBY: That was an intense battle!\n" + .string "Did you get all that on camera?$" + + .string "TY: Hey, lookie here! A tough-looking\n" + .string "TRAINER here, of all places!\l" + .string "Camera’s rolling!$" + + .string "TY: Hey, lookie here!\n" + .string "I remember you!\p" + .string "I’ll get this battle all on this\n" + .string "here camera!$" + + .string "TY: You’re a natural!\n" + .string "Got me some prime footage right here!$" + + .string "TY: Do you only have the one POKéMON\n" + .string "and that’s it?\p" + .string "If you had more POKéMON, it’d make for\n" + .string "better footage, but…$" + + .string "TY: Yep, we sure spotted a hot TRAINER.\n" + .string "This is a huge scoop for us!$" + + .string "TY: Yep, I got it all.\n" + .string "That whole battle’s on camera.$" + +gTVInSearchOfTrainersText00:: @ 0828B92C + .string "IN SEARCH OF TRAINERS…\p" + .string "GABBY: Hi! Today I’m visiting an area\n" + .string "near {STR_VAR_1}.\p" + .string "We’re trying to spot some up-and-\n" + .string "coming new talent in the field.\p" + .string "Today, we turned our lens on the\n" + .string "TRAINER {PLAYER}.\p" + .string "There’s something about this TRAINER\n" + .string "that piqued our interest.$" + +gTVInSearchOfTrainersText01:: @ 0828BA20 + .string "We’ve battled {PLAYER} before, but we\n" + .string "can attest that the TRAINER has most\l" + .string "definitely improved from before.\p" + .string "I knew we were onto someone special\n" + .string "when we spotted this TRAINER!$" + +gTVInSearchOfTrainersText02:: @ 0828BAC8 + .string "The best way to determine how strong\n" + .string "a TRAINER is…\p" + .string "Well, the fastest way is to battle.\n" + .string "And so we began our investigation!\p" + .string "… …\p" + .string "That’s how we ended up in battle\n" + .string "with {PLAYER}.\p" + .string "In a dominating performance, we were\n" + .string "flattened, rolled up, and tossed aside!\p" + .string "{PLAYER} is ruthlessly strong…\p" + .string "Here’s our impressions after having\n" + .string "battled our featured TRAINER.$" + +gTVInSearchOfTrainersText03:: @ 0828BC18 + .string "The combination of {STR_VAR_1} and\n" + .string "{STR_VAR_3} was divine!\p" + .string "The sight of them--{STR_VAR_1} and\n" + .string "{STR_VAR_3}--selflessly supporting\l" + .string "each other in the thick of battle…\p" + .string "It was a marvelous sight to behold!\p" + .string "{STR_VAR_2} was the move the TRAINER\n" + .string "used last in our battle.\p" + .string "The move {STR_VAR_2} is {STR_VAR_1}\n" + .string "and {STR_VAR_3}’s sign of friendship!$" + +gTVInSearchOfTrainersText04:: @ 0828BD20 + .string "…I lost confidence in myself as\n" + .string "a result of our encounter.\p" + .string "We were beaten before we could launch\n" + .string "a single attack.\l" + .string "Ohhh… Snivel…\p" + .string "In spite of that, {PLAYER}’s battles\n" + .string "are worth seeing.\p" + .string "I recommend confident TRAINERS to\n" + .string "challenge {PLAYER}.$" + +gTVInSearchOfTrainersText05:: @ 0828BE01 + .string "There’s only one thing to be said.\n" + .string "Don’t you dare throw a POKé BALL during\l" + .string "a TRAINER battle!\p" + .string "{PLAYER} is certainly strong, but has\n" + .string "no clue about the basic rules.\p" + .string "To our TV audience, I have a request.\p" + .string "If you see {PLAYER}, please caution\n" + .string "the TRAINER!$" + +gTVInSearchOfTrainersText06:: @ 0828BEEE + .string "{PLAYER} is adept at reading the\n" + .string "opponent’s actions.\p" + .string "The timing of item usage was remarkably\n" + .string "effective!$" + +gTVInSearchOfTrainersText07:: @ 0828BF50 + .string "Honestly speaking, I thought that\n" + .string "I might even be pretty good.\p" + .string "While we did end up losing, we did have\n" + .string "a hotly contested battle.\p" + .string "But if you’re struggling against me,\n" + .string "you have a ways to go, {PLAYER}!$" + +gTVInSearchOfTrainersText08:: @ 0828C011 + .string "After our battle, we asked {PLAYER} for\n" + .string "a succinct summary.\p" + .string "The TRAINER replied, “{STR_VAR_1}.”\p" + .string "{PLAYER}’s POKéMON {STR_VAR_2} and\n" + .string "{STR_VAR_3}…\l" + .string "And “{STR_VAR_1}”…\p" + .string "Mmm! That’s deep! There’s deep\n" + .string "significance behind that quote!\p" + .string "It’s no surprise--a good TRAINER has\n" + .string "good things to say.\p" + .string "That’s all for today!\n" + .string "See you again on our next broadcast!$" + +gTVPokemonContestLiveUpdates2Text00:: @ 0828C137 + .string "“POKéMON CONTEST LIVE UPDATES!”\p" + .string "MC: Sorry to interrupt the regular\n" + .string "programming, and thanks for joining us!\p" + .string "We bring you this live from\n" + .string "the scene of a just-completed\l" + .string "{STR_VAR_1}!\p" + .string "Spectators: ?!!!!\p" + .string "MC: Oh! It looks like the CONTEST\n" + .string "participants are headed this way!\p" + .string "I’ll try to get an impromptu interview\n" + .string "for you folks at home!\p" + .string "Spectators: ?!!!!\n" + .string "?!!!!$" + +gTVPokemonContestLiveUpdates2Text01:: @ 0828C28C + .string "MC: Excuse me!\n" + .string "Thanks for joining us on live TV!\p" + .string "May I congratulate you on your win?\p" + .string "What was the key factor in today’s\n" + .string "stunning victory?\p" + .string "BEAUTY: We gave it our best effort\n" + .string "today, my {STR_VAR_2} and I!\p" + .string "But I’m sure we wouldn’t have made it\n" + .string "if it weren’t for all the help we\l" + .string "received leading up to the CONTEST!\p" + .string "MC: Do you have a special someone\n" + .string "with whom you’d like to share your joy?\l" + .string "Let’s hear it live!\p" + .string "BEAUTY: Hey, out there!\p" + .string "{STR_VAR_3}! Are you watching?\n" + .string "We did it!\l" + .string "Thank you!$" + +gTVPokemonContestLiveUpdates2Text02:: @ 0828C45B + .string "MC: Excuse me!\n" + .string "Thanks for joining us on live TV!\p" + .string "You must be disappointed by that turn\n" + .string "of events. Do you have any comments?\p" + .string "BEAUTY: It’s heartbreaking…\n" + .string "My {STR_VAR_2} and I, we did our best…\p" + .string "But I feel like I’ve let down everyone\n" + .string "who has supported us through this.\p" + .string "MC: I hate to say it, but the POKéMON’s\n" + .string "coloration is a little wanting.\p" + .string "BEAUTY: {STR_VAR_3}, I’m so sorry…\n" + .string "I’ll do better next time, I swear…\l" + .string "…Sniff… Waaaaah!\p" + .string "Spectators: See that?\n" + .string "The poor girl!\p" + .string "MC: Uh… Uh-oh…\p" + .string "Uh… That’s all the time we have today!\n" + .string "Thanks for tuning in!$" + +gTVPokemonContestLiveUpdates2Text03:: @ 0828C662 + .string "MC: Excuse me!\n" + .string "Thanks for joining us on live TV!\p" + .string "How did your CONTEST appearance go?\p" + .string "BEAUTY: Nothing went right…\n" + .string "For some reason, my {STR_VAR_2}\l" + .string "couldn’t attract any popularity.\p" + .string "MC: I hate to say it, but the POKéMON’s\n" + .string "coloration is a little wanting.\p" + .string "BEAUTY: … … … … … …\n" + .string "…Sniff… Waaaaah!\p" + .string "Spectators: See that?\n" + .string "The poor girl!\p" + .string "MC: Uh… Uh-oh…\p" + .string "Uh… That’s all the time we have today!\n" + .string "Thanks for tuning in!$" diff --git a/data/tv.s b/data/tv.s deleted file mode 100644 index 4d2a608c4..000000000 --- a/data/tv.s +++ /dev/null @@ -1,128 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2, 0 - -gUnknown_0858D094:: @ 858D094 - .incbin "baserom.gba", 0x58d094, 0x3c - -gUnknown_0858D0D0:: @ 858D0D0 - .incbin "baserom.gba", 0x58d0d0, 0xe - -gUnknown_0858D0DE:: @ 858D0DE - .incbin "baserom.gba", 0x58d0de, 0xe - -gUnknown_0858D0EC:: @ 858D0EC - .incbin "baserom.gba", 0x58d0ec, 0x1c - -gUnknown_0858D108:: @ 858D108 - .incbin "baserom.gba", 0x58d108, 0x14 - -gUnknown_0858D11C:: @ 858D11C - .incbin "baserom.gba", 0x58d11c, 0x14 - -gUnknown_0858D130:: @ 858D130 - .incbin "baserom.gba", 0x58d130, 0x14 - -gUnknown_0858D144:: @ 858D144 - .incbin "baserom.gba", 0x58d144, 0xc - -gUnknown_0858D150:: @ 858D150 - .incbin "baserom.gba", 0x58d150, 0x20 - -gUnknown_0858D170:: @ 858D170 - .incbin "baserom.gba", 0x58d170, 0x18 - -gUnknown_0858D188:: @ 858D188 - .incbin "baserom.gba", 0x58d188, 0x14 - -gUnknown_0858D19C:: @ 858D19C - .incbin "baserom.gba", 0x58d19c, 0x4 - -gUnknown_0858D1A0:: @ 858D1A0 - .incbin "baserom.gba", 0x58d1a0, 0x30 - -gUnknown_0858D1D0:: @ 858D1D0 - .incbin "baserom.gba", 0x58d1d0, 0x34 - -gUnknown_0858D204:: @ 858D204 - .incbin "baserom.gba", 0x58d204, 0x24 - -gUnknown_0858D228:: @ 858D228 - .incbin "baserom.gba", 0x58d228, 0x18 - -gUnknown_0858D240:: @ 858D240 - .incbin "baserom.gba", 0x58d240, 0x3c - -gUnknown_0858D27C:: @ 858D27C - .incbin "baserom.gba", 0x58d27c, 0x84 - -gUnknown_0858D300:: @ 858D300 - .incbin "baserom.gba", 0x58d300, 0x20 - -gUnknown_0858D320:: @ 858D320 - .incbin "baserom.gba", 0x58d320, 0x18 - -gUnknown_0858D338:: @ 858D338 - .incbin "baserom.gba", 0x58d338, 0x4c - -gUnknown_0858D384:: @ 858D384 - .incbin "baserom.gba", 0x58d384, 0x10 - -gUnknown_0858D394:: @ 858D394 - .incbin "baserom.gba", 0x58d394, 0x1c - -gUnknown_0858D3B0:: @ 858D3B0 - .incbin "baserom.gba", 0x58d3b0, 0x8 - -gUnknown_0858D3B8:: @ 858D3B8 - .incbin "baserom.gba", 0x58d3b8, 0xc - -gUnknown_0858D3C4:: @ 858D3C4 - .incbin "baserom.gba", 0x58d3c4, 0x2c - -gUnknown_0858D3F0:: @ 858D3F0 - .incbin "baserom.gba", 0x58d3f0, 0x1c - -gUnknown_0858D40C:: @ 858D40C - .incbin "baserom.gba", 0x58d40c, 0xc - -gUnknown_0858D418:: @ 858D418 - .incbin "baserom.gba", 0x58d418, 0x10 - -gUnknown_0858D428:: @ 858D428 - .incbin "baserom.gba", 0x58d428, 0x34 - -gUnknown_0858D45C:: @ 858D45C - .incbin "baserom.gba", 0x58d45c, 0x38 - -gUnknown_0858D494:: @ 858D494 - .incbin "baserom.gba", 0x58d494, 0x4 - -gUnknown_0858D498:: @ 858D498 - .incbin "baserom.gba", 0x58d498, 0x1c - -gUnknown_0858D4B4:: @ 858D4B4 - .incbin "baserom.gba", 0x58d4b4, 0x30 - -gUnknown_0858D4E4:: @ 858D4E4 - .incbin "baserom.gba", 0x58d4e4, 0x40 - -gUnknown_0858D524:: @ 858D524 - .incbin "baserom.gba", 0x58d524, 0x4c - -gUnknown_0858D570:: @ 858D570 - .incbin "baserom.gba", 0x58d570, 0x24 - -gUnknown_0858D594:: @ 858D594 - .incbin "baserom.gba", 0x58d594, 0xac - -gUnknown_0858D640:: @ 858D640 - .incbin "baserom.gba", 0x58d640, 0x2c - -gUnknown_0858D66C:: @ 858D66C - .incbin "baserom.gba", 0x58d66c, 0x24 - -gUnknown_0858D690:: @ 858D690 - .incbin "baserom.gba", 0x58d690, 0x20 diff --git a/include/battle.h b/include/battle.h index a60f450ce..a3a51db71 100644 --- a/include/battle.h +++ b/include/battle.h @@ -78,6 +78,7 @@ #define BATTLE_PLAYER_TELEPORTED 0x5 #define BATTLE_POKE_FLED 0x6 #define BATTLE_CAUGHT 0x7 +#define BATTLE_SAFARI_OUT_OF_BALLS 0x8 #define BATTLE_FORFEITED 0x9 #define BATTLE_OPPONENT_TELEPORTED 0xA @@ -528,11 +529,11 @@ struct BattleResults u8 playerSwitchesCounter; // 0x2 u8 unk3; // 0x3 u8 unk4; // 0x4 - u8 unk5_0:1; // 0x5 , 0x1 - u8 unk5_1:1; // 0x5 , 0x2 - u8 caughtMonBall:4; // 0x5 , 0x4/0x8/0x10/0x20 - u8 unk5_6:1; // 0x5 , 0x40 - u8 unk5_7:1; // 0x5 , 0x80 + u8 unk5_0:1; // 0x5 + u8 usedMasterBall:1; // 0x5 + u8 caughtMonBall:4; // 0x5 + u8 unk5_6:1; // 0x5 + u8 unk5_7:1; // 0x5 u16 playerMon1Species; // 0x6 u8 playerMon1Name[11]; // 0x8 u8 battleTurnCounter; // 0x13 @@ -545,7 +546,7 @@ struct BattleResults u16 caughtMonSpecies; // 0x28 u8 caughtMonNick[10]; // 0x2A u8 filler34[2]; - u8 catchAttempts[12]; // 0x36 + u8 catchAttempts[11]; // 0x36 }; extern struct BattleResults gBattleResults; @@ -902,6 +903,10 @@ struct MonSpritesGfx struct SpriteTemplate templates[4]; }; +extern struct BattleSpritesGfx* gMonSpritesGfx; +extern u8 gBattleOutcome; +extern u16 gLastUsedItem; +extern u32 gBattleTypeFlags; extern struct MonSpritesGfx* gMonSpritesGfxPtr; #endif // GUARD_BATTLE_H diff --git a/include/battle_tower.h b/include/battle_tower.h new file mode 100644 index 000000000..25b439c1b --- /dev/null +++ b/include/battle_tower.h @@ -0,0 +1,6 @@ +#ifndef GUARD_BATTLE_TOWER_H +#define GUARD_BATTLE_TOWER_H + +u16 sub_8164FCC(u8, u8); + +#endif //GUARD_BATTLE_TOWER_H diff --git a/include/contest.h b/include/contest.h new file mode 100644 index 000000000..6eda956b4 --- /dev/null +++ b/include/contest.h @@ -0,0 +1,18 @@ +#ifndef GUARD_CONTEST_H +#define GUARD_CONTEST_H + +struct ContestStruct_02039E00 { + u16 unk_00; + u8 unk_02[11]; + u8 unk_0d[8]; + u8 filler_15[9]; + u8 filler_1E[34]; +}; + +extern struct ContestStruct_02039E00 gUnknown_02039E00[4]; +extern u8 gUnknown_02039F24; +extern EWRAM_DATA u16 gUnknown_02039F2C; +extern EWRAM_DATA u8 gUnknown_02039F2E; +extern EWRAM_DATA u8 gUnknown_02039F30; + +#endif //GUARD_CONTEST_H diff --git a/include/decoration.h b/include/decoration.h new file mode 100644 index 000000000..c089bdc83 --- /dev/null +++ b/include/decoration.h @@ -0,0 +1,147 @@ +#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 +}; + +// Exported type declarations + +struct Decoration +{ + /*0x00*/ u8 id; + /*0x01*/ u8 name[16]; + /*0x11*/ u8 permission; + /*0x12*/ u8 shape; + /*0x13*/ u8 category; + /*0x14*/ u16 price; + /*0x18*/ const u8 *description; + /*0x1c*/ const u16 *tiles; +}; + +// Exported RAM declarations + +// Exported ROM declarations +extern const struct Decoration gDecorations[]; + +#endif //GUARD_DECORATION_H diff --git a/include/easy_chat.h b/include/easy_chat.h index fc44b6a8a..b0a217320 100644 --- a/include/easy_chat.h +++ b/include/easy_chat.h @@ -30,7 +30,9 @@ enum void InitEasyChatPhrases(void); void easy_chat_input_maybe(void); -void CopyEasyChatWord(u8 *, u16); -bool32 sub_811F8D8(u16); +void CopyEasyChatWord(u8 *dest, u16 word); +bool32 sub_811F8D8(u16 word); +void InitializeEasyChatWordArray(u16 *words, u16 length); +void ConvertEasyChatWordsToString(u8 *dest, const u16 *src, u16 length1, u16 length2); #endif // GUARD_EASYCHAT_H diff --git a/include/event_scripts.h b/include/event_scripts.h index f1abdd6f6..bb0d6731b 100755 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -8,4 +8,353 @@ extern const u8 gUnknown_082766A2[]; extern const u8 gUnknown_082766A6[]; +extern const u8 gTVBravoTrainerText00[]; +extern const u8 gTVBravoTrainerText01[]; +extern const u8 gTVBravoTrainerText02[]; +extern const u8 gTVBravoTrainerText03[]; +extern const u8 gTVBravoTrainerText04[]; +extern const u8 gTVBravoTrainerText05[]; +extern const u8 gTVBravoTrainerText06[]; +extern const u8 gTVBravoTrainerText07[]; +extern const u8 gTVBravoTrainerText08[]; +extern const u8 gTVBravoTrainerBattleTowerText00[]; +extern const u8 gTVBravoTrainerBattleTowerText01[]; +extern const u8 gTVBravoTrainerBattleTowerText02[]; +extern const u8 gTVBravoTrainerBattleTowerText03[]; +extern const u8 gTVBravoTrainerBattleTowerText04[]; +extern const u8 gTVBravoTrainerBattleTowerText05[]; +extern const u8 gTVBravoTrainerBattleTowerText06[]; +extern const u8 gTVBravoTrainerBattleTowerText07[]; +extern const u8 gTVBravoTrainerBattleTowerText08[]; +extern const u8 gTVBravoTrainerBattleTowerText09[]; +extern const u8 gTVBravoTrainerBattleTowerText10[]; +extern const u8 gTVBravoTrainerBattleTowerText11[]; +extern const u8 gTVBravoTrainerBattleTowerText12[]; +extern const u8 gTVBravoTrainerBattleTowerText13[]; +extern const u8 gTVBravoTrainerBattleTowerText14[]; +extern const u8 gTVFanClubOpinionsText00[]; +extern const u8 gTVFanClubOpinionsText01[]; +extern const u8 gTVFanClubOpinionsText02[]; +extern const u8 gTVFanClubOpinionsText03[]; +extern const u8 gTVFanClubOpinionsText04[]; +extern const u8 gTVFanClubText00[]; +extern const u8 gTVFanClubText01[]; +extern const u8 gTVFanClubText02[]; +extern const u8 gTVFanClubText03[]; +extern const u8 gTVFanClubText04[]; +extern const u8 gTVFanClubText05[]; +extern const u8 gTVFanClubText06[]; +extern const u8 gTVFanClubText07[]; +extern const u8 gTVRecentHappeningsText00[]; +extern const u8 gTVRecentHappeningsText01[]; +extern const u8 gTVRecentHappeningsText02[]; +extern const u8 gTVRecentHappeningsText03[]; +extern const u8 gTVRecentHappeningsText04[]; +extern const u8 gTVRecentHappeningsText05[]; +extern const u8 gTVMassOutbreakText00[]; +extern const u8 gTV3CheersForPokeblocksText00[]; +extern const u8 gTV3CheersForPokeblocksText01[]; +extern const u8 gTV3CheersForPokeblocksText02[]; +extern const u8 gTV3CheersForPokeblocksText03[]; +extern const u8 gTV3CheersForPokeblocksText04[]; +extern const u8 gTV3CheersForPokeblocksText05[]; +extern const u8 gTVTrainerFanClubSpecialText00[]; +extern const u8 gTVTrainerFanClubSpecialText01[]; +extern const u8 gTVTrainerFanClubSpecialText02[]; +extern const u8 gTVTrainerFanClubSpecialText03[]; +extern const u8 gTVTrainerFanClubSpecialText04[]; +extern const u8 gTVTrainerFanClubSpecialText05[]; +extern const u8 gTVNameRaterText00[]; +extern const u8 gTVNameRaterText01[]; +extern const u8 gTVNameRaterText02[]; +extern const u8 gTVNameRaterText03[]; +extern const u8 gTVNameRaterText04[]; +extern const u8 gTVNameRaterText05[]; +extern const u8 gTVNameRaterText06[]; +extern const u8 gTVNameRaterText07[]; +extern const u8 gTVNameRaterText08[]; +extern const u8 gTVNameRaterText09[]; +extern const u8 gTVNameRaterText10[]; +extern const u8 gTVNameRaterText11[]; +extern const u8 gTVNameRaterText12[]; +extern const u8 gTVNameRaterText13[]; +extern const u8 gTVNameRaterText14[]; +extern const u8 gTVNameRaterText15[]; +extern const u8 gTVNameRaterText16[]; +extern const u8 gTVNameRaterText17[]; +extern const u8 gTVNameRaterText18[]; +extern const u8 gTVPokemonAnglerText00[]; +extern const u8 gTVPokemonAnglerText01[]; +extern const u8 gTVPokemonTodayFailedText00[]; +extern const u8 gTVPokemonTodayFailedText01[]; +extern const u8 gTVPokemonTodayFailedText02[]; +extern const u8 gTVPokemonTodayFailedText03[]; +extern const u8 gTVPokemonTodayFailedText04[]; +extern const u8 gTVPokemonTodayFailedText05[]; +extern const u8 gTVPokemonTodayFailedText06[]; +extern const u8 gTVPokemonTodaySuccessfulText00[]; +extern const u8 gTVPokemonTodaySuccessfulText01[]; +extern const u8 gTVPokemonTodaySuccessfulText02[]; +extern const u8 gTVPokemonTodaySuccessfulText03[]; +extern const u8 gTVPokemonTodaySuccessfulText04[]; +extern const u8 gTVPokemonTodaySuccessfulText05[]; +extern const u8 gTVPokemonTodaySuccessfulText06[]; +extern const u8 gTVPokemonTodaySuccessfulText07[]; +extern const u8 gTVPokemonTodaySuccessfulText08[]; +extern const u8 gTVPokemonTodaySuccessfulText09[]; +extern const u8 gTVPokemonTodaySuccessfulText10[]; +extern const u8 gTVPokemonTodaySuccessfulText11[]; +extern const u8 gTVTodaysSmartShopperText00[]; +extern const u8 gTVTodaysSmartShopperText01[]; +extern const u8 gTVTodaysSmartShopperText02[]; +extern const u8 gTVTodaysSmartShopperText03[]; +extern const u8 gTVTodaysSmartShopperText04[]; +extern const u8 gTVTodaysSmartShopperText05[]; +extern const u8 gTVTodaysSmartShopperText06[]; +extern const u8 gTVTodaysSmartShopperText07[]; +extern const u8 gTVTodaysSmartShopperText08[]; +extern const u8 gTVTodaysSmartShopperText09[]; +extern const u8 gTVTodaysSmartShopperText10[]; +extern const u8 gTVTodaysSmartShopperText11[]; +extern const u8 gTVTodaysSmartShopperText12[]; +extern const u8 gTVWorldOfMastersText00[]; +extern const u8 gTVWorldOfMastersText01[]; +extern const u8 gTVWorldOfMastersText02[]; +extern const u8 gTVTodaysRivalTrainerText00[]; +extern const u8 gTVTodaysRivalTrainerText07[]; +extern const u8 gTVTodaysRivalTrainerText08[]; +extern const u8 gTVTodaysRivalTrainerText09[]; +extern const u8 gTVTodaysRivalTrainerText10[]; +extern const u8 gTVTodaysRivalTrainerText01[]; +extern const u8 gTVTodaysRivalTrainerText02[]; +extern const u8 gTVTodaysRivalTrainerText03[]; +extern const u8 gTVTodaysRivalTrainerText04[]; +extern const u8 gTVTodaysRivalTrainerText05[]; +extern const u8 gTVTodaysRivalTrainerText06[]; +extern const u8 gTVDewfordTrendWatcherNetworkText00[]; +extern const u8 gTVDewfordTrendWatcherNetworkText01[]; +extern const u8 gTVDewfordTrendWatcherNetworkText02[]; +extern const u8 gTVDewfordTrendWatcherNetworkText03[]; +extern const u8 gTVDewfordTrendWatcherNetworkText04[]; +extern const u8 gTVDewfordTrendWatcherNetworkText05[]; +extern const u8 gTVDewfordTrendWatcherNetworkText06[]; +extern const u8 gTVHoennTreasureInvestigatorsText00[]; +extern const u8 gTVHoennTreasureInvestigatorsText01[]; +extern const u8 gTVHoennTreasureInvestigatorsText02[]; +extern const u8 gTVFindThatGamerText00[]; +extern const u8 gTVFindThatGamerText01[]; +extern const u8 gTVFindThatGamerText02[]; +extern const u8 gTVFindThatGamerText03[]; +extern const u8 gTVBreakingNewsText00[]; +extern const u8 gTVBreakingNewsText01[]; +extern const u8 gTVBreakingNewsText02[]; +extern const u8 gTVBreakingNewsText03[]; +extern const u8 gTVBreakingNewsText04[]; +extern const u8 gTVBreakingNewsText05[]; +extern const u8 gTVBreakingNewsText06[]; +extern const u8 gTVBreakingNewsText07[]; +extern const u8 gTVBreakingNewsText12[]; +extern const u8 gTVBreakingNewsText08[]; +extern const u8 gTVBreakingNewsText09[]; +extern const u8 gTVBreakingNewsText10[]; +extern const u8 gTVBreakingNewsText11[]; +extern const u8 gTVSecretBaseVisitText00[]; +extern const u8 gTVSecretBaseVisitText01[]; +extern const u8 gTVSecretBaseVisitText02[]; +extern const u8 gTVSecretBaseVisitText03[]; +extern const u8 gTVSecretBaseVisitText04[]; +extern const u8 gTVSecretBaseVisitText05[]; +extern const u8 gTVSecretBaseVisitText06[]; +extern const u8 gTVSecretBaseVisitText07[]; +extern const u8 gTVSecretBaseVisitText08[]; +extern const u8 gTVSecretBaseVisitText09[]; +extern const u8 gTVSecretBaseVisitText10[]; +extern const u8 gTVSecretBaseVisitText11[]; +extern const u8 gTVSecretBaseVisitText12[]; +extern const u8 gTVSecretBaseVisitText13[]; +extern const u8 gTVPokemonLotteryWinnerFlashReportText00[]; +extern const u8 gTVThePokemonBattleSeminarText00[]; +extern const u8 gTVThePokemonBattleSeminarText01[]; +extern const u8 gTVThePokemonBattleSeminarText02[]; +extern const u8 gTVThePokemonBattleSeminarText03[]; +extern const u8 gTVThePokemonBattleSeminarText04[]; +extern const u8 gTVThePokemonBattleSeminarText05[]; +extern const u8 gTVThePokemonBattleSeminarText06[]; +extern const u8 gTVTrainerFanClubText00[]; +extern const u8 gTVTrainerFanClubText01[]; +extern const u8 gTVTrainerFanClubText02[]; +extern const u8 gTVTrainerFanClubText03[]; +extern const u8 gTVTrainerFanClubText04[]; +extern const u8 gTVTrainerFanClubText05[]; +extern const u8 gTVTrainerFanClubText06[]; +extern const u8 gTVTrainerFanClubText07[]; +extern const u8 gTVTrainerFanClubText08[]; +extern const u8 gTVTrainerFanClubText09[]; +extern const u8 gTVTrainerFanClubText10[]; +extern const u8 gTVTrainerFanClubText11[]; +extern const u8 gTVCutiesText00[]; +extern const u8 gTVCutiesText01[]; +extern const u8 gTVCutiesText02[]; +extern const u8 gTVCutiesText03[]; +extern const u8 gTVCutiesText04[]; +extern const u8 gTVCutiesText05[]; +extern const u8 gTVCutiesText06[]; +extern const u8 gTVCutiesText07[]; +extern const u8 gTVCutiesText08[]; +extern const u8 gTVCutiesText09[]; +extern const u8 gTVCutiesText10[]; +extern const u8 gTVCutiesText11[]; +extern const u8 gTVCutiesText12[]; +extern const u8 gTVCutiesText13[]; +extern const u8 gTVCutiesText14[]; +extern const u8 gTVCutiesText15[]; +extern const u8 gTVPokemonNewsBattleFrontierText00[]; +extern const u8 gTVPokemonNewsBattleFrontierText01[]; +extern const u8 gTVPokemonNewsBattleFrontierText02[]; +extern const u8 gTVPokemonNewsBattleFrontierText03[]; +extern const u8 gTVPokemonNewsBattleFrontierText04[]; +extern const u8 gTVPokemonNewsBattleFrontierText05[]; +extern const u8 gTVPokemonNewsBattleFrontierText06[]; +extern const u8 gTVPokemonNewsBattleFrontierText07[]; +extern const u8 gTVPokemonNewsBattleFrontierText08[]; +extern const u8 gTVPokemonNewsBattleFrontierText09[]; +extern const u8 gTVPokemonNewsBattleFrontierText10[]; +extern const u8 gTVPokemonNewsBattleFrontierText11[]; +extern const u8 gTVPokemonNewsBattleFrontierText12[]; +extern const u8 gTVPokemonNewsBattleFrontierText13[]; +extern const u8 gTVPokemonNewsBattleFrontierText14[]; +extern const u8 gTVPokemonNewsBattleFrontierText15[]; +extern const u8 gTVPokemonNewsBattleFrontierText16[]; +extern const u8 gTVPokemonNewsBattleFrontierText17[]; +extern const u8 gTVPokemonNewsBattleFrontierText18[]; +extern const u8 gTVWhatsNo1InHoennTodayText00[]; +extern const u8 gTVWhatsNo1InHoennTodayText01[]; +extern const u8 gTVWhatsNo1InHoennTodayText02[]; +extern const u8 gTVWhatsNo1InHoennTodayText03[]; +extern const u8 gTVWhatsNo1InHoennTodayText04[]; +extern const u8 gTVWhatsNo1InHoennTodayText05[]; +extern const u8 gTVWhatsNo1InHoennTodayText06[]; +extern const u8 gTVWhatsNo1InHoennTodayText07[]; +extern const u8 gTVWhatsNo1InHoennTodayText08[]; +extern const u8 gTVSecretBaseSecretsText00[]; +extern const u8 gTVSecretBaseSecretsText01[]; +extern const u8 gTVSecretBaseSecretsText02[]; +extern const u8 gTVSecretBaseSecretsText03[]; +extern const u8 gTVSecretBaseSecretsText04[]; +extern const u8 gTVSecretBaseSecretsText05[]; +extern const u8 gTVSecretBaseSecretsText06[]; +extern const u8 gTVSecretBaseSecretsText07[]; +extern const u8 gTVSecretBaseSecretsText08[]; +extern const u8 gTVSecretBaseSecretsText09[]; +extern const u8 gTVSecretBaseSecretsText10[]; +extern const u8 gTVSecretBaseSecretsText11[]; +extern const u8 gTVSecretBaseSecretsText12[]; +extern const u8 gTVSecretBaseSecretsText13[]; +extern const u8 gTVSecretBaseSecretsText14[]; +extern const u8 gTVSecretBaseSecretsText15[]; +extern const u8 gTVSecretBaseSecretsText16[]; +extern const u8 gTVSecretBaseSecretsText17[]; +extern const u8 gTVSecretBaseSecretsText18[]; +extern const u8 gTVSecretBaseSecretsText19[]; +extern const u8 gTVSecretBaseSecretsText20[]; +extern const u8 gTVSecretBaseSecretsText21[]; +extern const u8 gTVSecretBaseSecretsText22[]; +extern const u8 gTVSecretBaseSecretsText23[]; +extern const u8 gTVSecretBaseSecretsText24[]; +extern const u8 gTVSecretBaseSecretsText25[]; +extern const u8 gTVSecretBaseSecretsText26[]; +extern const u8 gTVSecretBaseSecretsText27[]; +extern const u8 gTVSecretBaseSecretsText28[]; +extern const u8 gTVSecretBaseSecretsText29[]; +extern const u8 gTVSecretBaseSecretsText30[]; +extern const u8 gTVSecretBaseSecretsText31[]; +extern const u8 gTVSecretBaseSecretsText32[]; +extern const u8 gTVSecretBaseSecretsText33[]; +extern const u8 gTVSecretBaseSecretsText34[]; +extern const u8 gTVSecretBaseSecretsText35[]; +extern const u8 gTVSecretBaseSecretsText36[]; +extern const u8 gTVSecretBaseSecretsText37[]; +extern const u8 gTVSecretBaseSecretsText38[]; +extern const u8 gTVSecretBaseSecretsText39[]; +extern const u8 gTVSecretBaseSecretsText40[]; +extern const u8 gTVSecretBaseSecretsText41[]; +extern const u8 gTVSecretBaseSecretsText42[]; +extern const u8 gTVSafariFanClubText00[]; +extern const u8 gTVSafariFanClubText01[]; +extern const u8 gTVSafariFanClubText02[]; +extern const u8 gTVSafariFanClubText03[]; +extern const u8 gTVSafariFanClubText04[]; +extern const u8 gTVSafariFanClubText05[]; +extern const u8 gTVSafariFanClubText06[]; +extern const u8 gTVSafariFanClubText07[]; +extern const u8 gTVSafariFanClubText08[]; +extern const u8 gTVSafariFanClubText09[]; +extern const u8 gTVSafariFanClubText10[]; +extern const u8 gTVContestLiveUpdatesText00[]; +extern const u8 gTVContestLiveUpdatesText01[]; +extern const u8 gTVContestLiveUpdatesText02[]; +extern const u8 gTVContestLiveUpdatesText03[]; +extern const u8 gTVContestLiveUpdatesText04[]; +extern const u8 gTVContestLiveUpdatesText05[]; +extern const u8 gTVContestLiveUpdatesText06[]; +extern const u8 gTVContestLiveUpdatesText07[]; +extern const u8 gTVContestLiveUpdatesText08[]; +extern const u8 gTVContestLiveUpdatesText09[]; +extern const u8 gTVContestLiveUpdatesText10[]; +extern const u8 gTVContestLiveUpdatesText11[]; +extern const u8 gTVContestLiveUpdatesText12[]; +extern const u8 gTVContestLiveUpdatesText13[]; +extern const u8 gTVContestLiveUpdatesText14[]; +extern const u8 gTVContestLiveUpdatesText15[]; +extern const u8 gTVContestLiveUpdatesText16[]; +extern const u8 gTVContestLiveUpdatesText17[]; +extern const u8 gTVContestLiveUpdatesText18[]; +extern const u8 gTVContestLiveUpdatesText19[]; +extern const u8 gTVContestLiveUpdatesText20[]; +extern const u8 gTVContestLiveUpdatesText21[]; +extern const u8 gTVContestLiveUpdatesText22[]; +extern const u8 gTVContestLiveUpdatesText23[]; +extern const u8 gTVContestLiveUpdatesText24[]; +extern const u8 gTVContestLiveUpdatesText25[]; +extern const u8 gTVContestLiveUpdatesText26[]; +extern const u8 gTVContestLiveUpdatesText27[]; +extern const u8 gTVContestLiveUpdatesText28[]; +extern const u8 gTVContestLiveUpdatesText29[]; +extern const u8 gTVContestLiveUpdatesText30[]; +extern const u8 gTVContestLiveUpdatesText31[]; +extern const u8 gTVContestLiveUpdatesText32[]; +extern const u8 gTVPokemonBattleUpdateText00[]; +extern const u8 gTVPokemonBattleUpdateText01[]; +extern const u8 gTVPokemonBattleUpdateText02[]; +extern const u8 gTVPokemonBattleUpdateText03[]; +extern const u8 gTVPokemonBattleUpdateText04[]; +extern const u8 gTVPokemonBattleUpdateText05[]; +extern const u8 gTVPokemonBattleUpdateText06[]; +extern const u8 gTVPokemonBattleUpdateText07[]; +extern const u8 gTVInSearchOfTrainersText00[]; +extern const u8 gTVInSearchOfTrainersText01[]; +extern const u8 gTVInSearchOfTrainersText02[]; +extern const u8 gTVInSearchOfTrainersText03[]; +extern const u8 gTVInSearchOfTrainersText04[]; +extern const u8 gTVInSearchOfTrainersText05[]; +extern const u8 gTVInSearchOfTrainersText06[]; +extern const u8 gTVInSearchOfTrainersText07[]; +extern const u8 gTVInSearchOfTrainersText08[]; +extern const u8 gTVPokemonContestLiveUpdates2Text00[]; +extern const u8 gTVPokemonContestLiveUpdates2Text01[]; +extern const u8 gTVPokemonContestLiveUpdates2Text02[]; +extern const u8 gTVPokemonContestLiveUpdates2Text03[]; +extern const u8 gPokeNewsTextSlateport_Upcoming[]; +extern const u8 gPokeNewsTextSlateport_Ongoing[]; +extern const u8 gPokeNewsTextSlateport_Ending[]; +extern const u8 gPokeNewsTextGameCorner_Upcoming[]; +extern const u8 gPokeNewsTextGameCorner_Ongoing[]; +extern const u8 gPokeNewsTextGameCorner_Ending[]; +extern const u8 gPokeNewsTextLilycove_Upcoming[]; +extern const u8 gPokeNewsTextLilycove_Ongoing[]; +extern const u8 gPokeNewsTextLilycove_Ending[]; +extern const u8 gPokeNewsTextBlendMaster_Upcoming[]; +extern const u8 gPokeNewsTextBlendMaster_Ongoing[]; +extern const u8 gPokeNewsTextBlendMaster_Ending[]; + #endif //GUARD_EVENT_SCRIPTS_H diff --git a/include/field_camera.h b/include/field_camera.h index 9fbaac6a2..f74fadd86 100644 --- a/include/field_camera.h +++ b/include/field_camera.h @@ -22,4 +22,6 @@ extern u16 gUnknown_03005DE8; // Exported ROM declarations +void DrawWholeMapView(void); + #endif //GUARD_FIELD_CAMERA_H diff --git a/include/field_message_box.h b/include/field_message_box.h new file mode 100644 index 000000000..e33d52ccf --- /dev/null +++ b/include/field_message_box.h @@ -0,0 +1,12 @@ +#ifndef GUARD_field_message_box_H +#define GUARD_field_message_box_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations + +void ShowFieldMessage(const u8 *); + +#endif //GUARD_field_message_box_H diff --git a/include/fieldmap.h b/include/fieldmap.h index 7174d98cc..e95e4e0ce 100644 --- a/include/fieldmap.h +++ b/include/fieldmap.h @@ -8,9 +8,14 @@ // Exported type declarations // Exported RAM declarations +extern struct MapCoords { + int width; + int height; +} gUnknown_03005DC0; // Exported ROM declarations -u8 MapGridGetMetatileBehaviorAt(s16, s16); +u32 MapGridGetMetatileBehaviorAt(int, int); +void MapGridSetMetatileIdAt(int, int, u16); void GetCameraCoords(u16*, u16*); bool8 MapGridIsImpassableAt(s16, s16); s32 GetMapBorderIdAt(s16, s16); diff --git a/include/flags.h b/include/flags.h index 020fc59cb..7d825feba 100644 --- a/include/flags.h +++ b/include/flags.h @@ -3,7 +3,7 @@ #define TRAINER_FLAG_START 0x500 #define TRAINERS_FLAG_NO 0x356 -#define CODE_FLAGS (TRAINER_FLAG_START + TRAINERS_FLAG_NO + 0xA) +#define CODE_FLAGS (TRAINER_FLAG_START + TRAINERS_FLAG_NO + 0xA) // 0x860 // SYSTEM FLAGS @@ -84,6 +84,20 @@ #define SYS_CTRL_OBJ_DELETE CODE_FLAGS + 0x61 #define SYS_RESET_RTC_ENABLE CODE_FLAGS + 0x62 +#define SYS_TOWER_SILVER CODE_FLAGS + 0x64 +#define SYS_TOWER_GOLD CODE_FLAGS + 0x65 +#define SYS_DOME_SILVER CODE_FLAGS + 0x66 +#define SYS_DOME_GOLD CODE_FLAGS + 0x67 +#define SYS_PALACE_SILVER CODE_FLAGS + 0x68 +#define SYS_PALACE_GOLD CODE_FLAGS + 0x69 +#define SYS_ARENA_SILVER CODE_FLAGS + 0x6A +#define SYS_ARENA_GOLD CODE_FLAGS + 0x6B +#define SYS_FACTORY_SILVER CODE_FLAGS + 0x6C +#define SYS_FACTORY_GOLD CODE_FLAGS + 0x6D +#define SYS_PIKE_SILVER CODE_FLAGS + 0x6E +#define SYS_PIKE_GOLD CODE_FLAGS + 0x6F +#define SYS_PYRAMID_SILVER CODE_FLAGS + 0x70 +#define SYS_PYRAMID_GOLD CODE_FLAGS + 0x71 #define SYS_FRONTIER_PASS CODE_FLAGS + 0x72 #define SYS_STORAGE_UNKNOWN_FLAG CODE_FLAGS + 0x77 diff --git a/include/game_stat.h b/include/game_stat.h index b8a5c3232..5979c531c 100644 --- a/include/game_stat.h +++ b/include/game_stat.h @@ -56,4 +56,7 @@ #define NUM_GAME_STATS 64 +void IncrementGameStat(u8); +u32 GetGameStat(u8); + #endif // GUARD_GAME_STAT_H diff --git a/include/global.h b/include/global.h index e98b01ee2..58a0d79dc 100644 --- a/include/global.h +++ b/include/global.h @@ -197,7 +197,13 @@ struct SaveBlock2 // All below could be a one giant struct - /*0x64C*/ u8 field_64C[1629]; + /*0x64C*/ u8 field_64C[0x588]; + /*0xBD4*/ u16 field_BD4; + /*0xBD6*/ u16 field_BD6; + /*0xBD8*/ u8 field_BD8[11]; + /*0xBE3*/ u8 filler_BE3[8]; + /*0xBEB*/ u8 field_BEB; + /*0xBE3*/ u8 filler_BEC[189]; /*0xCA9*/ u8 frontierChosenLvl : 2; // 0x1, 0x2 -> 0x3 /*0xCA9*/ u8 field_CA9_a : 1; // 0x4 /*0xCA9*/ u8 field_CA9_b : 1; // 0x8 @@ -205,7 +211,10 @@ struct SaveBlock2 /*0xCA9*/ u8 field_CA9_d : 1; // 0x20 /*0xCA9*/ u8 field_CA9_e : 1; // 0x40 /*0xCA9*/ u8 field_CA9_f : 1; // 0x80 - /*0xCAA*/ u8 field_CAA[368]; + /*0xCAA*/ u16 field_CAA[0x2e]; + /*0xD06*/ u8 field_D06; + /*0xD07*/ u8 field_D07; + /*0xd08*/ u8 filler_D08[0x112]; /*0xE1A*/ u16 battlePyramidFloor; // possibly? /*0xE1C*/ u8 field_E1C[16]; /*0xE2C*/ struct PyramidBag pyramidBag; @@ -225,30 +234,31 @@ extern struct SaveBlock2 *gSaveBlock2Ptr; struct SecretBaseRecord { - u8 sbr_field_0; - u8 sbr_field_1_0:4; - u8 gender:1; - u8 sbr_field_1_5:1; - u8 sbr_field_1_6:2; - u8 trainerName[7]; - u8 trainerId[4]; // byte 0 is used for determining trainer class - u8 language; - u16 sbr_field_e; - u8 sbr_field_10; - u8 sbr_field_11; - u8 decorations[16]; - u8 decorationPos[16]; - u32 partyPersonality[6]; - u16 partyMoves[6 * 4]; - u16 partySpecies[6]; - u16 partyHeldItems[6]; - u8 partyLevels[6]; - u8 partyEVs[6]; + /*ID?*/ /*0x1A9C*/ u8 sbr_field_0; + /*0x1A9D*/ u8 sbr_field_1_0:4; + /*0x1A9D*/ u8 gender:1; + /*0x1A9D*/ u8 sbr_field_1_5:1; + /*0x1A9D*/ u8 sbr_field_1_6:2; + /*0x1A9E*/ u8 trainerName[7]; // 0xFF bytes? + /*0x1AA5*/ u8 trainerId[4]; // byte 0 is used for determining trainer class + /*0x1AA9*/ u8 language; + /*0x1AAA*/ u16 sbr_field_e; + /*0x1AAC*/ u8 sbr_field_10; + /*0x1AAD*/ u8 sbr_field_11; + /*0x1AAE*/ u8 decorations[16]; + /*0x1ABE*/ u8 decorationPos[16]; + /*0x1ACE*/ u32 partyPersonality[6]; + /*0x1AE6*/ u16 partyMoves[6 * 4]; + /*0x1B16*/ u16 partySpecies[6]; + /*0x1B22*/ u16 partyHeldItems[6]; + /*0x1B2E*/ u8 partyLevels[6]; + /*0x1B34*/ u8 partyEVs[6]; }; #include "game_stat.h" #include "global.fieldmap.h" #include "global.berry.h" +#include "global.tv.h" #include "pokemon.h" struct WarpData @@ -317,218 +327,6 @@ struct EasyChatPair u16 words[2]; }; /*size = 0x8*/ -struct TVShowCommon -{ - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; - /*0x02*/ u8 pad02[20]; - /*0x16*/ u16 var16[3]; - /*0x1C*/ u8 srcTrainerId3Lo; - /*0x1D*/ u8 srcTrainerId3Hi; - /*0x1E*/ u8 srcTrainerId2Lo; - /*0x1F*/ u8 srcTrainerId2Hi; - /*0x20*/ u8 srcTrainerIdLo; - /*0x21*/ u8 srcTrainerIdHi; - /*0x22*/ u8 trainerIdLo; - /*0x23*/ u8 trainerIdHi; -}; - -struct TVShowFanClubLetter -{ - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; - /*0x02*/ u16 species; - /*0x04*/ u16 pad04[6]; - /*0x10*/ u8 playerName[8]; - /*0x18*/ u8 language; -}; - -struct TVShowRecentHappenings -{ - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; - /*0x02*/ u16 var02; - /*0x04*/ u16 var04[6]; - /*0x10*/ u8 playerName[8]; - /*0x18*/ u8 language; - /*0x19*/ u8 pad19[10]; -}; - -struct TVShowFanclubOpinions -{ - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; - /*0x02*/ u16 var02; - /*0x04*/ u8 var04A:4; - /*0x04*/ u8 var04B:4; - /*0x05*/ u8 playerName[8]; - /*0x0D*/ u8 language; - /*0x0E*/ u8 var0E; - /*0x0F*/ u8 var0F; - /*0x10*/ u8 var10[8]; - /*0x18*/ u16 var18[2]; - /*0x1C*/ u16 var1C[4]; -}; - -struct TVShowUnknownType04 -{ - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; - /*0x02*/ u8 pad02[4]; - /*0x06*/ u16 var06; -}; - -struct TVShowNameRaterShow -{ - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; - /*0x02*/ u16 species; - /*0x04*/ u8 pokemonName[11]; - /*0x0F*/ u8 trainerName[11]; - /*0x1A*/ u8 random; - /*0x1B*/ u8 random2; - /*0x1C*/ u16 var1C; - /*0x1E*/ u8 language; - /*0x1F*/ u8 pokemonNameLanguage; -}; - -struct TVShowBravoTrainerPokemonProfiles -{ - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; - /*0x02*/ u16 species; - /*0x04*/ u16 var04[2]; - /*0x08*/ u8 pokemonNickname[11]; - /*0x13*/ u8 contestCategory:3; - /*0x13*/ u8 contestRank:2; - /*0x13*/ u8 contestResult:2; - /*0x13*/ u8 var13_7:1; - /*0x14*/ u16 var14; - /*0x16*/ u8 playerName[8]; - /*0x1E*/ u8 language; - /*0x1F*/ u8 var1f; -}; - -struct TVShowBravoTrainerBattleTowerSpotlight -{ - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; - /*0x02*/ u8 trainerName[8]; - /*0x0A*/ u16 species; - /*0x0C*/ u8 pokemonName[8]; - /*0x14*/ u16 defeatedSpecies; - /*0x16*/ u16 var16; - /*0x18*/ u16 var18[1]; - /*0x1A*/ u8 btLevel; - /*0x1B*/ u8 var1b; - /*0x1C*/ u8 var1c; - /*0x1D*/ u8 language; -}; - -struct TVShowPokemonToday -{ - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; - /*0x02*/ u8 language; - /*0x03*/ u8 language2; - /*0x04*/ u8 nickname[11]; - /*0x0F*/ u8 ball; - /*0x10*/ u16 species; - /*0x12*/ u8 var12; - /*0x13*/ u8 playerName[8]; -}; - -struct TVShowSmartShopper -{ - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; - /*0x02*/ u8 priceReduced; - /*0x03*/ u8 language; - /*0x04*/ u8 pad04[2]; - /*0x06*/ u16 itemIds[3]; - /*0x0C*/ u16 itemAmounts[3]; - /*0x12*/ u8 shopLocation; - /*0x13*/ u8 playerName[8]; -}; - -struct TVShowPokemonTodayFailed -{ - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; - /*0x02*/ u8 language; - /*0x03*/ u8 pad03[9]; - /*0x0c*/ u16 species; - /*0x0e*/ u16 species2; - /*0x10*/ u8 var10; - /*0x11*/ u8 var11; - /*0x12*/ u8 var12; - /*0x13*/ u8 playerName[8]; -}; - -struct TVShowPokemonAngler -{ - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; - /*0x02*/ u8 var02; - /*0x03*/ u8 var03; - /*0x04*/ u16 var04; - /*0x06*/ u8 language; - u8 pad07[12]; - /*0x13*/ u8 playerName[8]; -}; - -struct TVShowWorldOfMasters -{ - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; - /*0x02*/ u16 var02; - /*0x04*/ u16 var04; - /*0x06*/ u16 var06; - /*0x08*/ u16 var08; - /*0x0a*/ u8 var0a; - /*0x0b*/ u8 language; - u8 pad0c[7]; - /*0x13*/ u8 playerName[8]; -}; - -struct TVShowMassOutbreak -{ - /*0x00*/ u8 var00; - /*0x01*/ u8 var01; - /*0x02*/ u8 var02; - /*0x03*/ u8 var03; - /*0x04*/ u16 moves[4]; - /*0x0C*/ u16 species; - /*0x0E*/ u16 var0E; - /*0x10*/ u8 locationMapNum; - /*0x11*/ u8 locationMapGroup; - /*0x12*/ u8 var12; - /*0x13*/ u8 probability; - /*0x14*/ u8 level; - /*0x15*/ u8 var15; - /*0x16*/ u16 var16; - /*0x18*/ u8 language; - u8 pad19[11]; -}; - -typedef union TVShow -{ - struct TVShowCommon common; - struct TVShowFanClubLetter fanclubLetter; - struct TVShowRecentHappenings recentHappenings; - struct TVShowFanclubOpinions fanclubOpinions; - struct TVShowUnknownType04 unkShow04; - struct TVShowNameRaterShow nameRaterShow; - struct TVShowBravoTrainerPokemonProfiles bravoTrainer; - struct TVShowBravoTrainerBattleTowerSpotlight bravoTrainerTower; - struct TVShowPokemonToday pokemonToday; - struct TVShowSmartShopper smartshopperShow; - struct TVShowPokemonTodayFailed pokemonTodayFailed; - struct TVShowPokemonAngler pokemonAngler; - struct TVShowWorldOfMasters worldOfMasters; - struct TVShowMassOutbreak massOutbreak; -} TVShow; - struct MailStruct { /*0x00*/ u16 words[9]; @@ -576,35 +374,6 @@ typedef union OldMan u8 filler[0x40]; } OldMan; -struct UnknownSaveStruct2ABC -{ - u8 val0; - u8 val1; - u16 val2; -}; - -struct GabbyAndTyData -{ - /*2b10*/ u16 mon1; - /*2b12*/ u16 mon2; - /*2b14*/ u16 lastMove; - /*2b16*/ u16 quote; - /*2b18*/ u8 mapnum; - /*2b19*/ u8 battleNum; - /*2b1a*/ u8 valA_0:1; - /*2b1a*/ u8 valA_1:1; - /*2b1a*/ u8 valA_2:1; - /*2b1a*/ u8 valA_3:1; - /*2b1a*/ u8 valA_4:1; - /*2b1a*/ u8 valA_5:3; - /*2b1b*/ u8 valB_0:1; - /*2b1b*/ u8 valB_1:1; - /*2b1b*/ u8 valB_2:1; - /*2b1b*/ u8 valB_3:1; - /*2b1b*/ u8 valB_4:1; - /*2b1b*/ u8 valB_5:3; -}; - struct RecordMixing_UnknownStructSub { u32 unk0; @@ -781,22 +550,22 @@ struct SaveBlock1 /*0x????*/ u8 decorCushion[10]; /*0x27CA*/ u8 padding_27CA[2]; /*0x27CC*/ TVShow tvShows[25]; - /*0x2B50*/ struct UnknownSaveStruct2ABC pokeNews[16]; + /*0x2B50*/ PokeNews pokeNews[16]; /*0x2B90*/ u16 outbreakPokemonSpecies; - /*0x????*/ u8 outbreakLocationMapNum; - /*0x????*/ u8 outbreakLocationMapGroup; - /*0x????*/ u8 outbreakPokemonLevel; - /*0x????*/ u8 outbreakUnk1; - /*0x????*/ u16 outbreakUnk2; - /*0x????*/ u16 outbreakPokemonMoves[4]; - /*0x????*/ u8 outbreakUnk4; - /*0x????*/ u8 outbreakPokemonProbability; - /*0x????*/ u16 outbreakUnk5; + /*0x2B92*/ u8 outbreakLocationMapNum; + /*0x2B93*/ u8 outbreakLocationMapGroup; + /*0x2B94*/ u8 outbreakPokemonLevel; + /*0x2B95*/ u8 outbreakUnk1; + /*0x2B96*/ u16 outbreakUnk2; + /*0x2B98*/ u16 outbreakPokemonMoves[4]; + /*0x2BA0*/ u8 outbreakUnk4; + /*0x2BA1*/ u8 outbreakPokemonProbability; + /*0x2BA2*/ u16 outbreakDaysLeft; /*0x2BA4*/ struct GabbyAndTyData gabbyAndTyData; - /*0x????*/ u16 unk2B1C[6]; - /*0x????*/ u16 unk2B28[6]; - /*0x????*/ u16 unk2B34[6]; - /*0x????*/ u16 unk2B3A[3]; + /*0x2BB0*/ u16 unk2BB0[6]; + /*0x2BBC*/ u16 unk2BBC[6]; + /*0x2BC8*/ u16 unk2BC8[6]; + /*0x2BD4*/ u16 unk2BD4[3]; /*0x2BE0*/ struct MailStruct mail[16]; /*0x2E20*/ u8 additionalPhrases[5]; // bitfield for 33 additional phrases in easy chat system /*0x2E25*/ u8 unk2E25[3]; // possibly padding? @@ -806,7 +575,8 @@ struct SaveBlock1 /*0x2e90*/ struct ContestWinner contestWinners[13]; // 0 - 5 used in contest hall, 6 - 7 unused?, 8 - 12 museum /*0x3030*/ struct DaycareData daycare; /*0x3150*/ struct LinkBattleRecord linkBattleRecords[5]; - /*0x31A0*/ u8 filler_31A0[8]; + /*0x31A0*/ u8 unk_31A0; + /*0x31A1*/ u8 filler_31A1[7]; /*0x31A8*/ u8 giftRibbons[52]; /*0x31DC*/ struct Roamer roamer; /*0x31F8*/ struct EnigmaBerry enigmaBerry; diff --git a/include/global.tv.h b/include/global.tv.h new file mode 100644 index 000000000..5f65aa8e0 --- /dev/null +++ b/include/global.tv.h @@ -0,0 +1,535 @@ +#ifndef GUARD_GLOBAL_TV_H +#define GUARD_GLOBAL_TV_H + +enum +{ + TVSHOW_OFF_AIR, + + TVSHOW_FAN_CLUB_LETTER = 1, + TVSHOW_RECENT_HAPPENINGS, + TVSHOW_PKMN_FAN_CLUB_OPINIONS, + TVSHOW_UNKN_SHOWTYPE_04, + TVSHOW_NAME_RATER_SHOW, + TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE, + TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE, + TVSHOW_CONTEST_LIVE_UPDATES, + TVSHOW_3_CHEERS_FOR_POKEBLOCKS, + TVSHOW_BATTLE_UPDATE, + TVSHOW_FAN_CLUB_SPECIAL, + TVSHOW_CONTEST_LIVE_UPDATES_2, + + TVSHOW_POKEMON_TODAY_CAUGHT = 21, + TVSHOW_SMART_SHOPPER, + TVSHOW_POKEMON_TODAY_FAILED, + TVSHOW_FISHING_ADVICE, + TVSHOW_WORLD_OF_MASTERS, + TVSHOW_TODAYS_RIVAL_TRAINER, + TVSHOW_TREND_WATCHER, + TVSHOW_TREASURE_INVESTIGATORS, + TVSHOW_FIND_THAT_GAMER, + TVSHOW_BREAKING_NEWS, + TVSHOW_SECRET_BASE_VISIT, + TVSHOW_LOTTO_WINNER, + TVSHOW_BATTLE_SEMINAR, + TVSHOW_TRAINER_FAN_CLUB, + TVSHOW_CUTIES, + TVSHOW_FRONTIER, + TVSHOW_NUMBER_ONE, + TVSHOW_SECRET_BASE_SECRETS, + TVSHOW_SAFARI_FAN_CLUB, + + TVSHOW_MASS_OUTBREAK = 41, +}; + +typedef union // size = 0x24 +{ + // Common + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u8 pad02[26]; + /*0x1C*/ u8 srcTrainerId3Lo; + /*0x1D*/ u8 srcTrainerId3Hi; + /*0x1E*/ u8 srcTrainerId2Lo; + /*0x1F*/ u8 srcTrainerId2Hi; + /*0x20*/ u8 srcTrainerIdLo; + /*0x21*/ u8 srcTrainerIdHi; + /*0x22*/ u8 trainerIdLo; + /*0x23*/ u8 trainerIdHi; + } common; + + // Local shows + // TVSHOW_FAN_CLUB_LETTER + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u16 species; + /*0x04*/ u16 words[6]; + /*0x10*/ u8 playerName[8]; + /*0x18*/ u8 language; + } fanclubLetter; + + // TVSHOW_RECENT_HAPPENINGS + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u16 var02; + /*0x04*/ u16 words[6]; + /*0x10*/ u8 playerName[8]; + /*0x18*/ u8 language; + } recentHappenings; + + // TVSHOW_PKMN_FAN_CLUB_OPINIONS + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u16 species; + /*0x04*/ u8 friendshipHighNybble:4; + /*0x04*/ u8 questionAsked:4; + /*0x05*/ u8 playerName[8]; + /*0x0D*/ u8 language; + /*0x0E*/ u8 pokemonNameLanguage; + /*0x0F*/ u8 filler_0F[1]; + /*0x10*/ u8 nickname[8]; + /*0x18*/ u8 filler_18[4]; + /*0x1C*/ u16 words[4]; + } fanclubOpinions; + + // TVSHOW_UNKN_SHOWTYPE_04 (dummied out) + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u8 pad02[4]; + /*0x06*/ u16 var06; + /*0x08*/ u8 pad_08[3]; + /*0x0b*/ u8 string_0b[12]; + /*0x17*/ u8 language; + } unkShow04; + + // TVSHOW_NAME_RATER_SHOW + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u16 species; + /*0x04*/ u8 pokemonName[11]; + /*0x0F*/ u8 trainerName[11]; + /*0x1A*/ u8 random; + /*0x1B*/ u8 random2; + /*0x1C*/ u16 randomSpecies; + /*0x1E*/ u8 language; + /*0x1F*/ u8 pokemonNameLanguage; + } nameRaterShow; + + // TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE (contest) + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u16 species; + /*0x04*/ u16 words[2]; + /*0x08*/ u8 pokemonNickname[11]; + /*0x13*/ u8 contestCategory:3; + /*0x13*/ u8 contestRank:2; + /*0x13*/ u8 contestResult:2; + /*0x14*/ u16 move; + /*0x16*/ u8 playerName[8]; + /*0x1E*/ u8 language; + /*0x1F*/ u8 pokemonNameLanguage; + } bravoTrainer; + + // TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u8 trainerName[8]; + /*0x0A*/ u16 species; + /*0x0C*/ u8 pokemonName[8]; + /*0x14*/ u16 defeatedSpecies; + /*0x16*/ u16 numFights; + /*0x18*/ u16 words[1]; + /*0x1A*/ u8 btLevel; + /*0x1B*/ u8 interviewResponse; + /*0x1C*/ bool8 wonTheChallenge; + /*0x1D*/ u8 language; + /*0x1E*/ u8 pokemonNameLanguage; + } bravoTrainerTower; + + // TVSHOW_CONTEST_LIVE_UPDATES + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u16 winningSpecies; + /*0x04*/ u8 winningTrainerName[8]; + /*0x0C*/ u8 appealFlags2; + /*0x0D*/ u8 round1Rank; + /*0x0e*/ u8 round2Rank; + /*0x0f*/ u8 appealFlags1; + /*0x10*/ u16 move; + /*0x12*/ u16 species; + /*0x14*/ u8 playerName[8]; + /*0x1C*/ u8 category; + /*0x1D*/ u8 language; + /*0x1E*/ u8 winningTrainerLanguage; + } contestLiveUpdates; + + // TVSHOW_3_CHEERS_FOR_POKEBLOCKS + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u8 sheen; + /*0x03*/ u8 flavor:3; + /*0x03*/ u8 unk_03_3:2; + /*0x04*/ u8 worstBlenderName[8]; + /*0x0C*/ u8 playerName[8]; + /*0x14*/ u8 language; + /*0x15*/ u8 worstBlenderLanguage; + } threeCheers; + + // TVSHOW_BATTLE_UPDATE + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u16 species; + /*0x04*/ u8 playerName[8]; + /*0x0C*/ u8 linkOpponentName[8]; + /*0x14*/ u16 move; + /*0x16*/ u16 species2; + /*0x18*/ u8 battleType; + /*0x19*/ u8 language; + /*0x1A*/ u8 linkOpponentLanguage; + } battleUpdate; + + // TVSHOW_FAN_CLUB_SPECIAL + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u8 playerName[8]; + /*0x0a*/ u8 idLo; + /*0x0b*/ u8 idHi; + /*0x0c*/ u8 idolName[8]; + /*0x14*/ u16 words[1]; + /*0x16*/ u8 score; + /*0x17*/ u8 language; + /*0x18*/ u8 idolNameLanguage; + } fanClubSpecial; + + // TVSHOW_CONTEST_LIVE_UPDATES_2 + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u8 playerName[8]; + /*0x0a*/ u8 contestCategory; + /*0x0b*/ u8 nickname[11]; + /*0x16*/ u8 pokeblockState; + /*0x17*/ u8 language; + /*0x18*/ u8 pokemonNameLanguage; + } contestLiveUpdates2; + + // Record Mixing Shows + // TVSHOW_POKEMON_TODAY_CAUGHT + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u8 language; + /*0x03*/ u8 language2; + /*0x04*/ u8 nickname[11]; + /*0x0F*/ u8 ball; + /*0x10*/ u16 species; + /*0x12*/ u8 nBallsUsed; + /*0x13*/ u8 playerName[8]; + } pokemonToday; + + // TVSHOW_SMART_SHOPPER + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u8 priceReduced; + /*0x03*/ u8 language; + /*0x04*/ u8 pad04[2]; + /*0x06*/ u16 itemIds[3]; + /*0x0C*/ u16 itemAmounts[3]; + /*0x12*/ u8 shopLocation; + /*0x13*/ u8 playerName[8]; + } smartshopperShow; + + // TVSHOW_POKEMON_TODAY_FAILED + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u8 language; + /*0x03*/ u8 pad03[9]; + /*0x0c*/ u16 species; + /*0x0e*/ u16 species2; + /*0x10*/ u8 nBallsUsed; + /*0x11*/ u8 outcome; + /*0x12*/ u8 location; + /*0x13*/ u8 playerName[8]; + } pokemonTodayFailed; + + // TVSHOW_FISHING_ADVICE + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u8 nBites; + /*0x03*/ u8 nFails; + /*0x04*/ u16 species; + /*0x06*/ u8 language; + /*0x07*/ u8 pad07[12]; + /*0x13*/ u8 playerName[8]; + } pokemonAngler; + + // TVSHOW_WORLD_OF_MASTERS + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u16 numPokeCaught; + /*0x04*/ u16 caughtPoke; + /*0x06*/ u16 steps; + /*0x08*/ u16 species; + /*0x0a*/ u8 location; + /*0x0b*/ u8 language; + /*0x0c*/ u8 pad0c[7]; + /*0x13*/ u8 playerName[8]; + } worldOfMasters; + + // TVSHOW_TODAYS_RIVAL_TRAINER + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u16 dexCount; + /*0x04*/ u8 badgeCount; + /*0x05*/ u8 nSilverSymbols; + /*0x06*/ u8 nGoldSymbols; + /*0x07*/ u8 location; + /*0x08*/ u16 battlePoints; + /*0x0a*/ u16 mapDataId; + /*0x0c*/ u8 language; + /*0x0d*/ u8 filler_0d[6]; + /*0x13*/ u8 playerName[8]; + } rivalTrainer; + + // TVSHOW_TREND_WATCHER + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u8 filler_02[2]; + /*0x04*/ u16 words[2]; + /*0x08*/ u8 gender; + /*0x09*/ u8 language; + /*0x0a*/ u8 filler_0a[9]; + /*0x13*/ u8 playerName[8]; + } trendWatcher; + + // TVSHOW_TREASURE_INVESTIGATORS + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u16 item; + /*0x04*/ u8 location; + /*0x05*/ u8 language; + /*0x06*/ u16 mapDataId; + /*0x08*/ u8 filler_08[11]; + /*0x13*/ u8 playerName[8]; + } treasureInvestigators; + + // TVSHOW_FIND_THAT_GAMER + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u8 won; + /*0x03*/ u8 whichGame; + /*0x04*/ u16 nCoins; + /*0x06*/ u8 filler_06[2]; + /*0x08*/ u8 language; + /*0x09*/ u8 filler_09[10]; + /*0x13*/ u8 playerName[8]; + } findThatGamer; + + // TVSHOW_BREAKING_NEWS + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u16 lastOpponentSpecies; + /*0x04*/ u8 location; + /*0x05*/ u8 outcome; + /*0x06*/ u16 caughtMonBall; + /*0x08*/ u16 balls; + /*0x0a*/ u16 poke1Species; + /*0x0c*/ u16 lastUsedMove; + /*0x0e*/ u8 language; + /*0x0f*/ u8 filler_0f[4]; + /*0x13*/ u8 playerName[8]; + } breakingNews; + + // TVSHOW_SECRET_BASE_VISIT + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u8 avgLevel; + /*0x03*/ u8 nDecorations; + /*0x04*/ u8 decorations[4]; + /*0x08*/ u16 species; + /*0x0a*/ u16 move; + /*0x0c*/ u8 language; + /*0x0d*/ u8 filler_0d[6]; + /*0x13*/ u8 playerName[8]; + } secretBaseVisit; + + // TVSHOW_LOTTO_WINNER + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u16 item; + /*0x04*/ u8 whichPrize; + /*0x05*/ u8 language; + /*0x06*/ u8 filler_06[13]; + /*0x13*/ u8 playerName[8]; + } lottoWinner; + + // TVSHOW_BATTLE_SEMINAR + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u16 move; + /*0x04*/ u16 foeSpecies; + /*0x06*/ u16 species; + /*0x08*/ u16 otherMoves[3]; + /*0x0e*/ u16 betterMove; + /*0x10*/ u8 nOtherMoves; + /*0x11*/ u8 language; + /*0x12*/ u8 filler_12[1]; + /*0x13*/ u8 playerName[8]; + } battleSeminar; + + // TVSHOW_TRAINER_FAN_CLUB + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u8 filler_02[2]; + /*0x04*/ u16 words[2]; + /*0x08*/ u8 language; + /*0x09*/ u8 filler_09[10]; + /*0x13*/ u8 playerName[8]; + } trainerFanClub; + + // TVSHOW_CUTIES + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u8 nRibbons; + /*0x03*/ u8 selectedRibbon; + /*0x04*/ u8 nickname[11]; + /*0x0f*/ u8 language; + /*0x10*/ u8 pokemonNameLanguage; + /*0x11*/ u8 filler_12[2]; + /*0x13*/ u8 playerName[8]; + } cuties; + + // TVSHOW_FRONTIER + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u16 winStreak; + /*0x04*/ u16 species1; + /*0x06*/ u16 species2; + /*0x08*/ u16 species3; + /*0x0a*/ u16 species4; + /*0x0c*/ u8 language; + /*0x0d*/ u8 facility; + /*0x0e*/ u8 filler_0e[5]; + /*0x13*/ u8 playerName[8]; + } frontier; + + // TVSHOW_NUMBER_ONE + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u16 count; + /*0x04*/ u8 actionIdx; + /*0x05*/ u8 language; + /*0x06*/ u8 filler_06[13]; + /*0x13*/ u8 playerName[8]; + } numberOne; + + // TVSHOW_SECRET_BASE_SECRETS + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u16 stepsInBase; + /*0x04*/ u8 baseOwnersName[8]; + /*0x0c*/ u32 flags; + /*0x10*/ u16 item; + /*0x12*/ u8 savedState; + /*0x13*/ u8 playerName[8]; + /*0x1b*/ u8 language; + /*0x1c*/ u8 baseOwnersNameLanguage; + } secretBaseSecrets; + + // TVSHOW_SAFARI_FAN_CLUB + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u8 nMonsCaught; + /*0x03*/ u8 nPkblkUsed; + /*0x04*/ u8 language; + /*0x05*/ u8 filler_05[14]; + /*0x13*/ u8 playerName[8]; + } safariFanClub; + + // Mass Outbreak + // TVSHOW_MASS_OUTBREAK + struct { + /*0x00*/ u8 kind; + /*0x01*/ bool8 active; + /*0x02*/ u8 var02; + /*0x03*/ u8 var03; + /*0x04*/ u16 moves[4]; + /*0x0C*/ u16 species; + /*0x0E*/ u16 var0E; + /*0x10*/ u8 locationMapNum; + /*0x11*/ u8 locationMapGroup; + /*0x12*/ u8 var12; + /*0x13*/ u8 probability; + /*0x14*/ u8 level; + /*0x15*/ u8 var15; + /*0x16*/ u16 daysLeft; + /*0x18*/ u8 language; + } massOutbreak; +} TVShow; + +enum { + POKENEWS_NONE, + POKENEWS_SLATEPORT, + POKENEWS_GAME_CORNER, + POKENEWS_LILYCOVE, + POKENEWS_BLENDMASTER +}; + +typedef struct // 2b50 +{ + u8 kind; + u8 state; + u16 days; +} PokeNews; + +struct GabbyAndTyData +{ + /*2ba4*/ u16 mon1; + /*2ba6*/ u16 mon2; + /*2ba8*/ u16 lastMove; + /*2baa*/ u16 quote[1]; + /*2bac*/ u8 mapnum; + /*2bad*/ u8 battleNum; + /*2bae*/ u8 battleTookMoreThanOneTurn:1; + /*2bae*/ u8 playerLostAMon:1; + /*2bae*/ u8 playerUsedAnItem:1; + /*2bae*/ u8 playerThrewABall:1; + /*2bae*/ u8 onAir:1; + /*2bae*/ u8 valA_5:3; + /*2baf*/ u8 battleTookMoreThanOneTurn2:1; + /*2baf*/ u8 playerLostAMon2:1; + /*2baf*/ u8 playerUsedAnItem2:1; + /*2baf*/ u8 playerThrewABall2:1; + /*2baf*/ u8 valB_4:4; +}; + +#endif //GUARD_GLOBAL_TV_H diff --git a/include/international_string_util.h b/include/international_string_util.h new file mode 100644 index 000000000..0eb12a535 --- /dev/null +++ b/include/international_string_util.h @@ -0,0 +1,13 @@ +#ifndef GUARD_international_string_util_H +#define GUARD_international_string_util_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations + +void TVShowConvertInternationalString(void *dest, const void *src, u8 language); +u32 sub_81DB604(const u8 *); + +#endif //GUARD_international_string_util_H diff --git a/include/item.h b/include/item.h index eaefa0298..e642ca608 100644 --- a/include/item.h +++ b/include/item.h @@ -58,5 +58,6 @@ ItemUseFunc ItemId_GetFieldFunc(u16 itemId); u8 ItemId_GetBattleUsage(u16 itemId); ItemUseFunc ItemId_GetBattleFunc(u16 itemId); u8 ItemId_GetSecondaryId(u16 itemId); +u16 itemid_get_market_price(u16 itemId); #endif // ITEM_H diff --git a/include/link.h b/include/link.h index 012c90480..5f5654e4d 100644 --- a/include/link.h +++ b/include/link.h @@ -177,12 +177,12 @@ u32 LinkMain1(u8 *, u16 *, u16[CMD_LENGTH][MAX_LINK_PLAYERS]); void LinkVSync(void); void Timer3Intr(void); void SerialCB(void); +u8 GetLinkPlayerCount(void); void sub_800E0E8(void); bool8 sub_800A520(void); bool8 sub_8010500(void); void sub_800DFB4(u8, u8); void sub_800ADF8(void); -u8 sub_8009FCC(void); #endif // GUARD_LINK_H diff --git a/include/malloc.h b/include/malloc.h index 4568e244a..f3a731797 100644 --- a/include/malloc.h +++ b/include/malloc.h @@ -2,7 +2,7 @@ #define GUARD_MALLOC_H #define malloc Alloc -#define calloc AllocZeroed +#define calloc(ct, sz) AllocZeroed((ct) * (sz)) #define free Free extern u8 gHeap[]; diff --git a/include/moves.h b/include/moves.h index bc213cbc7..682f59506 100644 --- a/include/moves.h +++ b/include/moves.h @@ -359,6 +359,7 @@ enum MOVE_DOOM_DESIRE, MOVE_PSYCHO_BOOST, }; +extern const u8 gMoveNames[][13]; #define LAST_MOVE_INDEX MOVE_PSYCHO_BOOST diff --git a/include/pokedex.h b/include/pokedex.h index 38aca0915..79721899f 100644 --- a/include/pokedex.h +++ b/include/pokedex.h @@ -16,6 +16,8 @@ enum FLAG_SET_CAUGHT }; -u8 GetSetPokedexFlag(u16 nationalNum, u8 caseId); +s8 GetSetPokedexFlag(u16 nationalNum, u8 caseId); +u16 pokedex_count(u8); +u16 sub_80C0844(u8); #endif // GUARD_POKEDEX_H diff --git a/include/pokemon_storage_system.h b/include/pokemon_storage_system.h index 5216e8450..49680793d 100644 --- a/include/pokemon_storage_system.h +++ b/include/pokemon_storage_system.h @@ -2,5 +2,7 @@ #define GUARD_POKEMON_STORAGE_SYSTEM_H u8* GetBoxNamePtr(u8 boxNumber); +struct BoxPokemon *GetBoxedMonPtr(u8, u8); +void SetBoxMonNickFromAnyBox(u8, u8, u8 *); #endif // GUARD_POKEMON_STORAGE_SYSTEM_H diff --git a/include/region_map.h b/include/region_map.h new file mode 100644 index 000000000..52e7376be --- /dev/null +++ b/include/region_map.h @@ -0,0 +1,227 @@ +#ifndef GUARD_REGION_MAP_H +#define GUARD_REGION_MAP_H + +// Exported type declarations + +enum { + REGION_MAP_LITTLEROOT_TOWN, + REGION_MAP_OLDALE_TOWN, + REGION_MAP_DEWFORD_TOWN, + REGION_MAP_LAVARIDGE_TOWN, + REGION_MAP_FALLARBOR_TOWN, + REGION_MAP_VERDANTURF_TOWN, + REGION_MAP_PACIFIDLOG_TOWN, + REGION_MAP_PETALBURG_CITY, + REGION_MAP_SLATEPORT_CITY, + REGION_MAP_MAUVILLE_CITY, + REGION_MAP_RUSTBORO_CITY, + REGION_MAP_FORTREE_CITY, + REGION_MAP_LILYCOVE_CITY, + REGION_MAP_MOSSDEEP_CITY, + REGION_MAP_SOOTOPOLIS_CITY, + REGION_MAP_EVER_GRANDE_CITY, + REGION_MAP_ROUTE_101, + REGION_MAP_ROUTE_102, + REGION_MAP_ROUTE_103, + REGION_MAP_ROUTE_104, + REGION_MAP_ROUTE_105, + REGION_MAP_ROUTE_106, + REGION_MAP_ROUTE_107, + REGION_MAP_ROUTE_108, + REGION_MAP_ROUTE_109, + REGION_MAP_ROUTE_110, + REGION_MAP_ROUTE_111, + REGION_MAP_ROUTE_112, + REGION_MAP_ROUTE_113, + REGION_MAP_ROUTE_114, + REGION_MAP_ROUTE_115, + REGION_MAP_ROUTE_116, + REGION_MAP_ROUTE_117, + REGION_MAP_ROUTE_118, + REGION_MAP_ROUTE_119, + REGION_MAP_ROUTE_120, + REGION_MAP_ROUTE_121, + REGION_MAP_ROUTE_122, + REGION_MAP_ROUTE_123, + REGION_MAP_ROUTE_124, + REGION_MAP_ROUTE_125, + REGION_MAP_ROUTE_126, + REGION_MAP_ROUTE_127, + REGION_MAP_ROUTE_128, + REGION_MAP_ROUTE_129, + REGION_MAP_ROUTE_130, + REGION_MAP_ROUTE_131, + REGION_MAP_ROUTE_132, + REGION_MAP_ROUTE_133, + REGION_MAP_ROUTE_134, + REGION_MAP_UNDERWATER_124, + REGION_MAP_UNDERWATER_125, + REGION_MAP_UNDERWATER_126, + REGION_MAP_UNDERWATER_127, + REGION_MAP_UNDERWATER_128, + REGION_MAP_GRANITE_CAVE, + REGION_MAP_MT_CHIMNEY, + REGION_MAP_SAFARI_ZONE, + REGION_MAP_BATTLE_FRONTIER, + REGION_MAP_PETALBURG_WOODS, + REGION_MAP_RUSTURF_TUNNEL, + REGION_MAP_ABANDONED_SHIP, + REGION_MAP_NEW_MAUVILLE, + REGION_MAP_METEOR_FALLS, + REGION_MAP_METEOR_FALLS2, + REGION_MAP_MT_PYRE, + REGION_MAP_AQUA_HIDEOUT_OLD, + REGION_MAP_SHOAL_CAVE, + REGION_MAP_SEAFLOOR_CAVERN, + REGION_MAP_UNDERWATER, + REGION_MAP_VICTORY_ROAD, + REGION_MAP_MIRAGE_ISLAND, + REGION_MAP_CAVE_OF_ORIGIN, + REGION_MAP_SOUTHERN_ISLAND, + REGION_MAP_FIERY_PATH, + REGION_MAP_FIERY_PATH2, + REGION_MAP_JAGGED_PASS, + REGION_MAP_JAGGED_PASS2, + REGION_MAP_SEALED_CHAMBER, + REGION_MAP_UNDERWATER_SEALED_CHAMBER, + REGION_MAP_SCORCHED_SLAB, + REGION_MAP_ISLAND_CAVE, + REGION_MAP_DESERT_RUINS, + REGION_MAP_ANCIENT_TOMB, + REGION_MAP_INSIDE_OF_TRUCK, + REGION_MAP_SKY_PILLAR, + REGION_MAP_SECRET_BASE, + REGION_MAP_NONE, + REGION_MAP_PALLET_TOWN, + REGION_MAP_VIRIDIAN_CITY, + REGION_MAP_PEWTER_CITY, + REGION_MAP_CERULEAN_CITY, + REGION_MAP_LAVENDER_TOWN, + REGION_MAP_VERMILION_CITY, + REGION_MAP_CELADON_CITY, + REGION_MAP_FUCHSIA_CITY, + REGION_MAP_CINNABAR_ISLAND, + REGION_MAP_INDIGO_PLATEAU, + REGION_MAP_SAFFRON_CITY, + REGION_MAP_ROUTE_4, + REGION_MAP_ROUTE_10, + REGION_MAP_ROUTE_1, + REGION_MAP_ROUTE_2, + REGION_MAP_ROUTE_3, + REGION_MAP_ROUTE_4_2, + REGION_MAP_ROUTE_5, + REGION_MAP_ROUTE_6, + REGION_MAP_ROUTE_7, + REGION_MAP_ROUTE_8, + REGION_MAP_ROUTE_9, + REGION_MAP_ROUTE_10_2, + REGION_MAP_ROUTE_11, + REGION_MAP_ROUTE_12, + REGION_MAP_ROUTE_13, + REGION_MAP_ROUTE_14, + REGION_MAP_ROUTE_15, + REGION_MAP_ROUTE_16, + REGION_MAP_ROUTE_17, + REGION_MAP_ROUTE_18, + REGION_MAP_ROUTE_19, + REGION_MAP_ROUTE_20, + REGION_MAP_ROUTE_21, + REGION_MAP_ROUTE_22, + REGION_MAP_ROUTE_23, + REGION_MAP_ROUTE_24, + REGION_MAP_ROUTE_25, + REGION_MAP_VIRIDIAN_FOREST, + REGION_MAP_MT_MOON, + REGION_MAP_S_S_ANNE, + REGION_MAP_UNDERGROUND_PATH, + REGION_MAP_UNDERGROUND_PATH_2, + REGION_MAP_DIGLETTS_CAVE, + REGION_MAP_KANTO_VICTORY_ROAD, + REGION_MAP_ROCKET_HIDEOUT, + REGION_MAP_SILPH_CO, + REGION_MAP_POKEMON_MANSION, + REGION_MAP_KANTO_SAFARI_ZONE, + REGION_MAP_POKEMON_LEAGUE, + REGION_MAP_ROCK_TUNNEL, + REGION_MAP_SEAFOAM_ISLANDS, + REGION_MAP_POKEMON_TOWER, + REGION_MAP_CERULEAN_CAVE, + REGION_MAP_POWER_PLANT, + REGION_MAP_ONE_ISLAND, + REGION_MAP_TWO_ISLAND, + REGION_MAP_THREE_ISLAND, + REGION_MAP_FOUR_ISLAND, + REGION_MAP_FIVE_ISLAND, + REGION_MAP_SEVEN_ISLAND, + REGION_MAP_SIX_ISLAND, + REGION_MAP_KINDLE_ROAD, + REGION_MAP_TREASURE_BEACH, + REGION_MAP_CAPE_BRINK, + REGION_MAP_BOND_BRIDGE, + REGION_MAP_THREE_ISLE_PORT, + REGION_MAP_SEVII_ISLE_6, + REGION_MAP_SEVII_ISLE_7, + REGION_MAP_SEVII_ISLE_8, + REGION_MAP_SEVII_ISLE_9, + REGION_MAP_RESORT_GORGEOUS, + REGION_MAP_WATER_LABYRINTH, + REGION_MAP_FIVE_ISLE_MEADOW, + REGION_MAP_MEMORIAL_PILLAR, + REGION_MAP_OUTCAST_ISLAND, + REGION_MAP_GREEN_PATH, + REGION_MAP_WATER_PATH, + REGION_MAP_RUIN_VALLEY, + REGION_MAP_TRAINER_TOWER, + REGION_MAP_CANYON_ENTRANCE, + REGION_MAP_SEVAULT_CANYON, + REGION_MAP_TANOBY_RUINS, + REGION_MAP_SEVII_ISLE_22, + REGION_MAP_SEVII_ISLE_23, + REGION_MAP_SEVII_ISLE_24, + REGION_MAP_NAVEL_ROCK, + REGION_MAP_MT_EMBER, + REGION_MAP_BERRY_FOREST, + REGION_MAP_ICEFALL_CAVE, + REGION_MAP_ROCKET_WAREHOUSE, + REGION_MAP_TRAINER_TOWER_2, + REGION_MAP_DOTTED_HOLE, + REGION_MAP_LOST_CAVE, + REGION_MAP_PATTERN_BUSH, + REGION_MAP_ALTERING_CAVE, + REGION_MAP_TANOBY_CHAMBERS, + REGION_MAP_THREE_ISLE_PATH, + REGION_MAP_TANOBY_KEY, + REGION_MAP_BIRTH_ISLAND, + REGION_MAP_MONEAN_CHAMBER, + REGION_MAP_LIPTOO_CHAMBER, + REGION_MAP_WEEPTH_CHAMBER, + REGION_MAP_DILFORD_CHAMBER, + REGION_MAP_SCUFIB_CHAMBER, + REGION_MAP_RIXY_CHAMBER, + REGION_MAP_VIAPOIS_CHAMBER, + REGION_MAP_EMBER_SPA, + REGION_MAP_SPECIAL_AREA, + REGION_MAP_AQUA_HIDEOUT, + REGION_MAP_MAGMA_HIDEOUT, + REGION_MAP_MIRAGE_TOWER, + REGION_MAP_BIRTH_ISLAND_2, + REGION_MAP_FARAWAY_ISLAND, + REGION_MAP_ARTISAN_CAVE, + REGION_MAP_MARINE_CAVE, + REGION_MAP_UNDERWATER_MARINE_CAVE, + REGION_MAP_TERRA_CAVE, + REGION_MAP_UNDERWATER_TERRA_CAVE, + REGION_MAP_UNDERWATER_UNK1, + REGION_MAP_UNDERWATER_UNK2, + REGION_MAP_DESERT_UNDERPASS, + REGION_MAP_ALTERING_CAVE_2, + REGION_MAP_NAVEL_ROCK2, + REGION_MAP_TRAINER_HILL +}; + +// Exported RAM declarations + +// Exported ROM declarations +void GetMapName(u8 *, u16, u16); + +#endif //GUARD_REGION_MAP_H diff --git a/include/rom4.h b/include/rom4.h index e19d277a6..c7e46eecb 100644 --- a/include/rom4.h +++ b/include/rom4.h @@ -29,5 +29,6 @@ const struct MapHeader *get_mapheader_by_bank_and_number(u8, u8); void FieldObjectMoveDestCoords(struct MapObject *, u32, s16 *, s16 *); void sub_8086230(void); void c2_exit_to_overworld_2_switch(void); +void c2_exit_to_overworld_1_continue_scripts_restart_music(void); #endif //GUARD_ROM4_H diff --git a/include/rom6.h b/include/rom6.h index 15070616d..006e93910 100644 --- a/include/rom6.h +++ b/include/rom6.h @@ -2,5 +2,6 @@ #define GUARD_ROM6_H void sub_81357FC(u8, void(void)); +u8 GetIdxOfFirstPartyMemberThatIsNotAnEgg(void); #endif //GUARD_ROM6_H diff --git a/include/script_menu.h b/include/script_menu.h new file mode 100644 index 000000000..de80d28d4 --- /dev/null +++ b/include/script_menu.h @@ -0,0 +1,11 @@ +#ifndef GUARD_SCRIPT_MENU_H +#define GUARD_SCRIPT_MENU_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations +extern const u8 *const gUnknown_0858BAF0[9]; + +#endif //GUARD_SCRIPT_MENU_H diff --git a/include/secret_base.h b/include/secret_base.h new file mode 100644 index 000000000..4f7b411da --- /dev/null +++ b/include/secret_base.h @@ -0,0 +1,11 @@ +#ifndef GUARD_SECRET_BASE_H +#define GUARD_SECRET_BASE_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations +void sub_80E980C(void); + +#endif //GUARD_SECRET_BASE_H diff --git a/include/shop.h b/include/shop.h new file mode 100644 index 000000000..ac5b512ca --- /dev/null +++ b/include/shop.h @@ -0,0 +1,12 @@ +#ifndef GUARD_SHOP_H +#define GUARD_SHOP_H + +// Exported type declarations + +// Exported RAM declarations + +extern EWRAM_DATA struct ItemSlot gUnknown_02039F80[3]; + +// Exported ROM declarations + +#endif //GUARD_SHOP_H diff --git a/include/species.h b/include/species.h index 9ab0565cb..ac0797418 100644 --- a/include/species.h +++ b/include/species.h @@ -449,5 +449,6 @@ enum }; #define NUM_SPECIES SPECIES_EGG +extern const u8 gSpeciesNames[][11]; #endif // GUARD_SPECIES_H diff --git a/include/string_util.h b/include/string_util.h index 382f52251..f26646082 100644 --- a/include/string_util.h +++ b/include/string_util.h @@ -31,7 +31,7 @@ u8 *StringFillWithTerminator(u8 *dest, u16 n); u8 *StringCopyN_Multibyte(u8 *dest, u8 *src, u32 n); u32 StringLength_Multibyte(u8 *str); u8 *WriteColorChangeControlCode(u8 *dest, u32 colorType, u8 color); -bool32 sub_8009228(u8 *str); +bool32 IsStringJapanese(u8 *str); bool32 sub_800924C(u8 *str, s32 n); u8 GetExtCtrlCodeLength(u8 code); static const u8 *SkipExtCtrlCode(const u8 *s); diff --git a/include/strings.h b/include/strings.h new file mode 100644 index 000000000..5d1a9bba0 --- /dev/null +++ b/include/strings.h @@ -0,0 +1,33 @@ +#ifndef GUARD_strings_H +#define GUARD_strings_H + +extern const u8 gText_Lv50[]; +extern const u8 gText_OpenLevel[]; +extern const u8 gText_Mom[]; +extern const u8 gText_Dad[]; +extern const u8 gText_Cool[]; +extern const u8 gText_Beauty[]; +extern const u8 gText_Cute[]; +extern const u8 gText_Smart[]; +extern const u8 gText_Tough[]; +extern const u8 gText_Single[]; +extern const u8 gText_Double[]; +extern const u8 gText_Spicy2[]; +extern const u8 gText_Dry2[]; +extern const u8 gText_Sweet2[]; +extern const u8 gText_Bitter2[]; +extern const u8 gText_Sour2[]; +extern const u8 gText_Excellent[]; +extern const u8 gText_VeryGood[]; +extern const u8 gText_Good[]; +extern const u8 gText_SoSo[]; +extern const u8 gText_Bad[]; +extern const u8 gText_TheWorst[]; +extern const u8 gText_Slots[]; +extern const u8 gText_Roulette[]; +extern const u8 gText_Jackpot[]; +extern const u8 gText_First[]; +extern const u8 gText_Second[]; +extern const u8 gText_Third[]; + +#endif //GUARD_strings_H diff --git a/include/tv.h b/include/tv.h new file mode 100644 index 000000000..b85cac82a --- /dev/null +++ b/include/tv.h @@ -0,0 +1,21 @@ +#ifndef GUARD_TV_H +#define GUARD_TV_H + +// Exported type declarations + +// Exported RAM declarations + +// Exported ROM declarations + +extern u8 *const gTVStringVarPtrs[3]; + +void ClearTVShowData(void); +void PutPokemonTodayCaughtOnAir(void); +u32 GetPlayerIDAsU32(void); +bool8 GetPriceReduction(u8 newsKind); +u8 GetRibbonCount(struct Pokemon *pokemon); +void sub_80EE184(void); +void sub_80F14F8(TVShow *shows); +int sub_80EF370(int value); + +#endif //GUARD_TV_H diff --git a/include/vars.h b/include/vars.h index 7c0edeb77..67c0b67fc 100644 --- a/include/vars.h +++ b/include/vars.h @@ -53,4 +53,14 @@ #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_DAILY_BP 0x40F1 + #endif // GUARD_VARS_H diff --git a/ld_script.txt b/ld_script.txt index 887f24811..d1acf4f99 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -148,7 +148,7 @@ SECTIONS { asm/contest_effect.o(.text); asm/record_mixing.o(.text); asm/secret_base.o(.text); - asm/tv.o(.text); + src/tv.o(.text); asm/contest_link_80F57C4.o(.text); asm/script_pokemon_util_80F87D8.o(.text); asm/field_poison.o(.text); @@ -387,7 +387,7 @@ SECTIONS { data/contest_effect.o(.rodata); data/record_mixing.o(.rodata); data/secret_base.o(.rodata); - data/tv.o(.rodata); + src/tv.o(.rodata); data/contest_link_80F57C4.o(.rodata); data/script_pokemon_util_80F87D8.o(.rodata); src/pokemon_size_record.o(.rodata) diff --git a/src/battle_2.c b/src/battle_2.c index c4da02e36..306008cdb 100644 --- a/src/battle_2.c +++ b/src/battle_2.c @@ -40,6 +40,7 @@ #include "trainer_classes.h" #include "evolution_scene.h" #include "roamer.h" +#include "tv.h" #include "safari_zone.h" #include "battle_string_ids.h" @@ -64,7 +65,6 @@ struct UnknownPokemonStruct2 /*0x1D*/ u8 language; }; -extern u32 gBattleTypeFlags; extern u8 gBattleCommunication[]; extern u8 gBattleTerrain; extern u16 gBattle_BG0_X; @@ -88,7 +88,6 @@ extern void (*gBattleMainFunc)(void); extern void (*gUnknown_030061E8)(void); extern struct UnknownPokemonStruct2 gUnknown_02022FF8[3]; // what is it used for? extern struct UnknownPokemonStruct2* gUnknown_02023058; // what is it used for? -extern u8 gBattleOutcome; extern u8 gUnknown_02039B28[]; // possibly a struct? extern struct UnknownStruct6 gUnknown_02038C28; // todo: identify & document extern struct MusicPlayerInfo gMPlay_SE1; @@ -139,7 +138,6 @@ extern u8 gActionForBanks[BATTLE_BANKS_COUNT]; extern u16 gChosenMovesByBanks[BATTLE_BANKS_COUNT]; extern u8 gCurrentActionFuncId; extern u8 gLastUsedAbility; -extern u16 gLastUsedItem; extern u8 gUnknown_0203CF00[]; extern const u8* gBattlescriptPtrsForSelection[BATTLE_BANKS_COUNT]; extern const u8* gBattlescriptCurrInstr; @@ -152,7 +150,6 @@ extern u8 gCurrMovePos; extern u8 gUnknown_020241E9; extern u16 gLastUsedMove; -extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1]; extern const struct BattleMove gBattleMoves[]; extern const u16 gUnknown_08C004E0[]; // battle textbox palette extern const struct BgTemplate gUnknown_0831AA08[]; @@ -226,8 +223,6 @@ extern u8 sub_81A9E28(void); // battle frontier 2 extern void sub_81A56E8(u8 bank); // battle frontier 2 extern void sub_81B8FB0(u8, u8); // party menu extern u8 pokemon_order_func(u8); // party menu -extern void sub_80EC728(void); // tv -extern void sub_80EE184(void); // tv extern bool8 InBattlePyramid(void); // this file's functions @@ -859,7 +854,7 @@ static void CB2_HandleStartBattle(void) { s32 i; - for (i = 0; i < 2 && (gLinkPlayers[i].version & 0xFF) == 3; i++); + for (i = 0; i < 2 && (gLinkPlayers[i].version & 0xFF) == VERSION_EMERALD; i++); if (i == 2) gBattleCommunication[MULTIUSE_STATE] = 16; @@ -2073,7 +2068,7 @@ static void sub_8038F34(void) else monsCount = 2; - for (i = 0; i < monsCount && (gLinkPlayers[i].version & 0xFF) == 3; i++); + for (i = 0; i < monsCount && (gLinkPlayers[i].version & 0xFF) == VERSION_EMERALD; i++); if (!gSaveBlock2Ptr->field_CA9_b && i == monsCount) { @@ -4927,7 +4922,7 @@ static void HandleEndTurn_FinishBattle(void) } } } - sub_80EC728(); + PutPokemonTodayCaughtOnAir(); } if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 50ae5bafe..fb6a8272b 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -11087,7 +11087,7 @@ static void atkEF_pokeball_catch_calculation(void) { if (gLastUsedItem == ITEM_MASTER_BALL) { - gBattleResults.unk5_1 = 1; + gBattleResults.usedMasterBall = TRUE; } else { diff --git a/src/battle_util.c b/src/battle_util.c index c6762dd99..636e27bdf 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -353,7 +353,7 @@ void sub_803F850(u8 arg0) { s32 i; - for (i = 0; i < sub_8009FCC(); i++) + for (i = 0; i < GetLinkPlayerCount(); i++) gBattleExecBuffer |= gBitTable[arg0] << (i << 2); gBattleExecBuffer &= ~(0x10000000 << arg0); diff --git a/src/egg_hatch.c b/src/egg_hatch.c index 4e4c10090..a1f187b85 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -59,7 +59,7 @@ 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 void sub_81DB5E8(u8* str1, u8* str2, u8); +extern void TVShowConvertInternationalString(u8* str1, u8* str2, u8); extern void sub_806A068(u16, u8); extern void fade_screen(u8, u8); extern void overworld_free_bg_tilemaps(void); @@ -404,8 +404,8 @@ static bool8 sub_807158C(struct DaycareData* daycare, u8 daycareId) || StringCompareWithoutExtCtrlCodes(gSaveBlock2Ptr->playerName, daycareMon->OT_name) != 0)) { StringCopy(gStringVar1, nick); - sub_81DB5E8(gStringVar2, daycareMon->OT_name, daycareMon->language_maybe); - sub_81DB5E8(gStringVar3, daycareMon->monName, daycareMon->unknown); + TVShowConvertInternationalString(gStringVar2, daycareMon->OT_name, daycareMon->language_maybe); + TVShowConvertInternationalString(gStringVar3, daycareMon->monName, daycareMon->unknown); return TRUE; } return FALSE; diff --git a/src/new_game.c b/src/new_game.c index 5a482c593..d01aa69d4 100644 --- a/src/new_game.c +++ b/src/new_game.c @@ -17,6 +17,7 @@ #include "easy_chat.h" #include "event_data.h" #include "money.h" +#include "tv.h" #include "coins.h" #include "text.h" @@ -36,7 +37,6 @@ extern void sub_813624C(void); // clears something pokeblock related extern void ResetPokedex(void); extern void sub_8084400(void); extern void ClearMailData(void); -extern void ClearTVShowData(void); extern void ResetGabbyAndTy(void); extern void ResetSecretBases(void); extern void ResetLinkContestBoolean(void); diff --git a/src/safari_zone.c b/src/safari_zone.c index 3e25468bf..f7ef28577 100644 --- a/src/safari_zone.c +++ b/src/safari_zone.c @@ -114,7 +114,7 @@ void sub_80FC190(void) { SetMainCallback2(c2_exit_to_overworld_2_switch); } - else if (gBattleOutcome == 8) + else if (gBattleOutcome == BATTLE_SAFARI_OUT_OF_BALLS) { ScriptContext2_RunNewScript(gUnknown_082A4B4C); warp_in(); diff --git a/src/start_menu.c b/src/start_menu.c index ac393ce2e..be30d0e53 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -170,13 +170,13 @@ extern const u8 gText_BattlePyramidFloor[]; void DisplayPyramidFloorWindow(void) { // TODO: fix location - if (*(u16*)(&gSaveBlock2Ptr->field_CAA[8]) == 7) + if (gSaveBlock2Ptr->field_CAA[4] == 7) sBattlePyramidFloorWindowId = AddWindow(&gPyramidFloorWindowTemplate_1); else sBattlePyramidFloorWindowId = AddWindow(&gPyramidFloorWindowTemplate_2); PutWindowTilemap(sBattlePyramidFloorWindowId); sub_81973FC(sBattlePyramidFloorWindowId, 0); - StringCopy(gStringVar1, gUnknown_08510510[*(u16*)(&gSaveBlock2Ptr->field_CAA[8])]); + StringCopy(gStringVar1, gUnknown_08510510[gSaveBlock2Ptr->field_CAA[4]]); StringExpandPlaceholders(gStringVar4, gText_BattlePyramidFloor); PrintTextOnWindow(sBattlePyramidFloorWindowId, 1, gStringVar4, 0, 1, 0xFF, NULL); CopyWindowToVram(sBattlePyramidFloorWindowId, 2); diff --git a/src/string_util.c b/src/string_util.c index 92e9f19e8..ea50ba5a5 100644 --- a/src/string_util.c +++ b/src/string_util.c @@ -625,7 +625,7 @@ u8 *WriteColorChangeControlCode(u8 *dest, u32 colorType, u8 color) return dest; } -bool32 sub_8009228(u8 *str) +bool32 IsStringJapanese(u8 *str) { while (*str != EOS) { diff --git a/src/tv.c b/src/tv.c new file mode 100644 index 000000000..73b346068 --- /dev/null +++ b/src/tv.c @@ -0,0 +1,7927 @@ + +// Includes +#include "global.h" +#include "rtc.h" +#include "rom4.h" +#include "map_constants.h" +#include "rng.h" +#include "event_data.h" +#include "fieldmap.h" +#include "field_camera.h" +#include "strings.h" +#include "string_util.h" +#include "international_string_util.h" +#include "pokemon_storage_system.h" +#include "field_message_box.h" +#include "easy_chat.h" +#include "species.h" +#include "moves.h" +#include "battle.h" +#include "battle_tower.h" +#include "contest.h" +#include "items.h" +#include "item.h" +#include "link.h" +#include "main.h" +#include "event_scripts.h" +#include "shop.h" +#include "lilycove_lady.h" +#include "rom6.h" +#include "pokedex.h" +#include "field_map_obj.h" +#include "text.h" +#include "script_menu.h" +#include "naming_screen.h" +#include "malloc.h" +#include "region_map.h" +#include "decoration.h" +#include "secret_base.h" +#include "tv.h" + +// Static type declarations + +#define rbernoulli(num, den) TV_BernoulliTrial(0xFFFF * (num) / (den)) + +// Static RAM declarations + +s8 sCurTVShowSlot; +u16 sTV_SecretBaseVisitMovesTemp[8]; +u8 sTV_DecorationsBuffer[16]; +struct { + u8 level; + u16 species; + u16 move; +} sTV_SecretBaseVisitMonsTemp[10]; + +IWRAM_DATA u8 sTVShowMixingNumPlayers; +IWRAM_DATA u8 sTVShowNewsMixingNumPlayers; +IWRAM_DATA s8 sTVShowMixingCurSlot; + +EWRAM_DATA u16 sPokemonAnglerSpecies = 0; +EWRAM_DATA u16 sPokemonAnglerAttemptCounters = 0; +EWRAM_DATA u16 sFindThatGamerCoinsSpent = 0; +EWRAM_DATA bool8 sFindThatGamerWhichGame = FALSE; +EWRAM_DATA ALIGNED(4) u8 sRecordMixingPartnersWithoutShowsToShare = 0; +EWRAM_DATA ALIGNED(4) u8 sTVShowState = 0; +EWRAM_DATA u8 sTVSecretBaseSecretsRandomValues[3] = {}; + +// Static ROM declarations + +extern const u8 *const sTVBravoTrainerTextGroup[]; +extern const u8 *const sTVBravoTrainerBattleTowerTextGroup[]; + +void ClearPokemonNews(void); +u8 GetTVChannelByShowType(u8 kind); +u8 FindFirstActiveTVShowThatIsNotAMassOutbreak(void); +u8 CheckForBigMovieOrEmergencyNewsOnTV(void); +void SetTVMetatilesOnMap(int width, int height, u16 tileId); +u8 FindAnyTVNewsOnTheAir(void); +bool8 IsTVShowInSearchOfTrainersAiring(void); +void TakeTVShowInSearchOfTrainersOffTheAir(void); +bool8 TV_BernoulliTrial(u16 ratio); +s8 FindEmptyTVSlotBeyondFirstFiveShowsOfArray(TVShow *shows); +bool8 HasMixableShowAlreadyBeenSpawnedWithPlayerID(u8 kind, bool8 flag); +void tv_store_id_3x(TVShow *show); +void DeleteTVShowInArrayByIdx(TVShow *shows, u8 idx); +s8 FindEmptyTVSlotWithinFirstFiveShowsOfArray(TVShow *shows); +void FindActiveBroadcastByShowType_SetScriptResult(u8 kind); +void InterviewBefore_BravoTrainerPkmnProfile(void); +void InterviewBefore_NameRater(void); +u16 TV_GetSomeOtherSpeciesAlreadySeenByPlayer(u16 passedSpecies); +void sub_80EFA88(void); +void sub_80EF93C(TVShow *shows); +s8 sub_80EEE30(PokeNews *pokeNews); +bool8 sub_80EF0E4(u8 newsKind); +void ClearPokemonNewsI(u8 i); +void sub_80F1254(TVShow *shows); +void sub_80F12A4(TVShow *shows); +void sub_80F0358(TVShow *player1, TVShow *player2, TVShow *player3, TVShow *player4); +void sub_80F0C04(void); +void sub_80F0708(void); +void sub_80F0B64(void); +s8 sub_80F06D0(TVShow *tvShows); +bool8 sub_80F049C(TVShow *dest[], TVShow *src[], u8 idx); +bool8 sub_80F0580(TVShow *tv1, TVShow *tv2, u8 idx); +bool8 sub_80F05E8(TVShow *tv1, TVShow *tv2, u8 idx); +bool8 sub_80F0668(TVShow *tv1, TVShow *tv2, u8 idx); +void sub_80F0B00(u8 showIdx); +void sub_80F0B24(u16 species, u8 showIdx); +void sub_80F0D60(PokeNews *player1, PokeNews *player2, PokeNews *player3, PokeNews *player4); +void sub_80F0EEC(void); +void sub_80F0F24(void); +s8 sub_80F0ECC(PokeNews *pokeNews, u8 idx); +void sub_80F0E58(PokeNews *dest[], PokeNews *src[]); +bool8 sub_80F0E84(PokeNews *dest, PokeNews *src, s8 slot); +void TVShowDone(void); +void InterviewAfter_FanClubLetter(void); +void InterviewAfter_RecentHappenings(void); +void InterviewAfter_PkmnFanClubOpinions(void); +void InterviewAfter_DummyShow4(void); +void InterviewAfter_BravoTrainerPokemonProfile(void); +void InterviewAfter_BravoTrainerBattleTowerProfile(void); +void InterviewAfter_ContestLiveUpdates(void); +void UpdateWorldOfMastersAndPutItOnTheAir(void); +void PutPokemonTodayFailedOnTheAir(void); +void sub_80ED718(void); +void sub_80EED88(void); +void TV_SortPurchasesByQuantity(void); +void sub_80ED8B4(u16 days); +void UpdateMassOutbreakTimeLeft(u16 days); +void sub_80EF120(u16 days); +void sub_80EDA48(u16 days); +void sub_80EEB98(u16 days); +void PutFishingAdviceShowOnTheAir(void); +void sub_80EDA80(void); +u8 TV_MonDataIdxToRibbon(u8 monDataIdx); +void sub_80EEBF4(u8 actionIdx); +bool8 IsPriceDiscounted(u8 newsKind); +void InterviewBefore_FanClubLetter(void); +void InterviewBefore_RecentHappenings(void); +void InterviewBefore_PkmnFanClubOpinions(void); +void InterviewBefore_Dummy(void); +void InterviewBefore_BravoTrainerBTProfile(void); +void InterviewBefore_ContestLiveUpdates(void); +void InterviewBefore_3CheersForPokeblocks(void); +void InterviewBefore_FanClubSpecial(void); +void ChangeBoxPokemonNickname_CB(void); +void DoTVShowPokemonFanClubLetter(void); +void DoTVShowRecentHappenings(void); +void DoTVShowPokemonFanClubOpinions(void); +void DoTVShowDummiedOut(void); +void DoTVShowPokemonNewsMassOutbreak(void); +void DoTVShowBravoTrainerPokemonProfile(void); +void DoTVShowBravoTrainerBattleTower(void); +void DoTVShowPokemonTodaySuccessfulCapture(void); +void DoTVShowTodaysSmartShopper(void); +void DoTVShowTheNameRaterShow(void); +void DoTVShowPokemonContestLiveUpdates(void); +void DoTVShowPokemonBattleUpdate(void); +void DoTVShow3CheersForPokeblocks(void); +void DoTVShowPokemonTodayFailedCapture(void); +void DoTVShowPokemonAngler(void); +void DoTVShowTheWorldOfMasters(void); +void DoTVShowTodaysRivalTrainer(void); +void DoTVShowDewfordTrendWatcherNetwork(void); +void DoTVShowHoennTreasureInvestigators(void); +void DoTVShowFindThatGamer(void); +void DoTVShowBreakingNewsTV(void); +void DoTVShowSecretBaseVisit(void); +void DoTVShowPokemonLotteryWinnerFlashReport(void); +void DoTVShowThePokemonBattleSeminar(void); +void DoTVShowTrainerFanClubSpecial(void); +void DoTVShowTrainerFanClub(void); +void DoTVShowSpotTheCuties(void); +void DoTVShowPokemonNewsBattleFrontier(void); +void DoTVShowWhatsNo1InHoennToday(void); +void DoTVShowSecretBaseSecrets(void); +void DoTVShowSafariFanClub(void); +void DoTVShowPokemonContestLiveUpdates2(void); + +// .rodata + +const struct { + u16 species; + u16 moves[4]; + u8 level; + u8 location; +} sPokeOutbreakSpeciesList[] = { + { + SPECIES_SEEDOT, + {MOVE_BIDE, MOVE_HARDEN, MOVE_LEECH_SEED}, + 3, 0x11 // Route 102 + }, + { + SPECIES_NUZLEAF, + {MOVE_HARDEN, MOVE_GROWTH, MOVE_NATURE_POWER, MOVE_LEECH_SEED}, + 15, 0x1D // Route 114 + }, + { + SPECIES_SEEDOT, + {MOVE_HARDEN, MOVE_GROWTH, MOVE_NATURE_POWER, MOVE_LEECH_SEED}, + 13, 0x20 // Route 117 + }, + { + SPECIES_SEEDOT, + {MOVE_GIGA_DRAIN, MOVE_FRUSTRATION, MOVE_SOLAR_BEAM, MOVE_LEECH_SEED}, + 25, 0x23 // Route 110 + }, + { + SPECIES_SKITTY, + {MOVE_GROWL, MOVE_TACKLE, MOVE_TAIL_WHIP, MOVE_ATTRACT}, + 8, 0x1F // Route 116 + } +}; + +// TODO: Figure out what these are, and define constants in include/flags.h +const u16 sGoldSymbolFlags[] = { + SYS_TOWER_GOLD, + SYS_DOME_GOLD, + SYS_PALACE_GOLD, + SYS_ARENA_GOLD, + SYS_FACTORY_GOLD, + SYS_PIKE_GOLD, + SYS_PYRAMID_GOLD +}; + +const u16 sSilverSymbolFlags[] = { + SYS_TOWER_SILVER, + SYS_DOME_SILVER, + SYS_PALACE_SILVER, + SYS_ARENA_SILVER, + SYS_FACTORY_SILVER, + SYS_PIKE_SILVER, + SYS_PYRAMID_SILVER +}; + +// TODO: Figure out what these are, and define constants in include/vars.h +const u16 sNumberOneVarsAndThresholds[][2] = { + {VAR_DAILY_SLOTS, 100}, + {VAR_DAILY_ROULETTE, 50}, + {VAR_DAILY_WILDS, 100}, + {VAR_DAILY_BLENDER, 20}, + {VAR_DAILY_PLANTED_BERRIES, 20}, + {VAR_DAILY_PICKED_BERRIES, 20}, + {VAR_DAILY_BP, 30} +}; + +const u8 *const sPokeNewsTextGroup_Upcoming[] = { + NULL, + gPokeNewsTextSlateport_Upcoming, + gPokeNewsTextGameCorner_Upcoming, + gPokeNewsTextLilycove_Upcoming, + gPokeNewsTextBlendMaster_Upcoming +}; + +const u8 *const sPokeNewsTextGroup_Ongoing[] = { + NULL, + gPokeNewsTextSlateport_Ongoing, + gPokeNewsTextGameCorner_Ongoing, + gPokeNewsTextLilycove_Ongoing, + gPokeNewsTextBlendMaster_Ongoing +}; + +const u8 *const sPokeNewsTextGroup_Ending[] = { + NULL, + gPokeNewsTextSlateport_Ending, + gPokeNewsTextGameCorner_Ending, + gPokeNewsTextLilycove_Ending, + gPokeNewsTextBlendMaster_Ending +}; + +u8 *const gTVStringVarPtrs[] = { + gStringVar1, + gStringVar2, + gStringVar3 +}; + +const u8 *const sTVFanClubTextGroup[] = { + gTVFanClubText00, + gTVFanClubText01, + gTVFanClubText02, + gTVFanClubText03, + gTVFanClubText04, + gTVFanClubText05, + gTVFanClubText06, + gTVFanClubText07 +}; + +const u8 *const sTVRecentHappeninssTextGroup[] = { + gTVRecentHappeningsText00, + gTVRecentHappeningsText01, + gTVRecentHappeningsText02, + gTVRecentHappeningsText03, + gTVRecentHappeningsText04, + gTVRecentHappeningsText05 +}; + +const u8 *const sTVFanClubOpinionsTextGroup[] = { + gTVFanClubOpinionsText00, + gTVFanClubOpinionsText01, + gTVFanClubOpinionsText02, + gTVFanClubOpinionsText03, + gTVFanClubOpinionsText04 +}; + +const u8 *const sTVMassOutbreakTextGroup[] = { + gTVMassOutbreakText00 +}; + +const u8 *const sTVPokemonTodaySuccessfulTextGroup[] = { + gTVPokemonTodaySuccessfulText00, + gTVPokemonTodaySuccessfulText01, + gTVPokemonTodaySuccessfulText02, + gTVPokemonTodaySuccessfulText03, + gTVPokemonTodaySuccessfulText04, + gTVPokemonTodaySuccessfulText05, + gTVPokemonTodaySuccessfulText06, + gTVPokemonTodaySuccessfulText07, + gTVPokemonTodaySuccessfulText08, + gTVPokemonTodaySuccessfulText09, + gTVPokemonTodaySuccessfulText10, + gTVPokemonTodaySuccessfulText11 +}; + +const u8 *const sTVTodaysSmartShopperTextGroup[] = { + gTVTodaysSmartShopperText00, + gTVTodaysSmartShopperText01, + gTVTodaysSmartShopperText02, + gTVTodaysSmartShopperText03, + gTVTodaysSmartShopperText04, + gTVTodaysSmartShopperText05, + gTVTodaysSmartShopperText06, + gTVTodaysSmartShopperText07, + gTVTodaysSmartShopperText08, + gTVTodaysSmartShopperText09, + gTVTodaysSmartShopperText10, + gTVTodaysSmartShopperText11, + gTVTodaysSmartShopperText12 +}; + +const u8 *const sTVBravoTrainerTextGroup[] = { + gTVBravoTrainerText00, + gTVBravoTrainerText01, + gTVBravoTrainerText02, + gTVBravoTrainerText03, + gTVBravoTrainerText04, + gTVBravoTrainerText05, + gTVBravoTrainerText06, + gTVBravoTrainerText07, + gTVBravoTrainerText08 +}; + +const u8 *const sTV3CheersForPokeblocksTextGroup[] = { + gTV3CheersForPokeblocksText00, + gTV3CheersForPokeblocksText01, + gTV3CheersForPokeblocksText02, + gTV3CheersForPokeblocksText03, + gTV3CheersForPokeblocksText04, + gTV3CheersForPokeblocksText05 +}; + +const u8 *const sTVBravoTrainerBattleTowerTextGroup[] = { + gTVBravoTrainerBattleTowerText00, + gTVBravoTrainerBattleTowerText01, + gTVBravoTrainerBattleTowerText02, + gTVBravoTrainerBattleTowerText03, + gTVBravoTrainerBattleTowerText04, + gTVBravoTrainerBattleTowerText05, + gTVBravoTrainerBattleTowerText06, + gTVBravoTrainerBattleTowerText07, + gTVBravoTrainerBattleTowerText08, + gTVBravoTrainerBattleTowerText09, + gTVBravoTrainerBattleTowerText10, + gTVBravoTrainerBattleTowerText11, + gTVBravoTrainerBattleTowerText12, + gTVBravoTrainerBattleTowerText13, + gTVBravoTrainerBattleTowerText14 +}; + +const u8 *const sTVContestLiveUpdatesTextGroup[] = { + gTVContestLiveUpdatesText00, + gTVContestLiveUpdatesText01, + gTVContestLiveUpdatesText02, + gTVContestLiveUpdatesText03, + gTVContestLiveUpdatesText04, + gTVContestLiveUpdatesText05, + gTVContestLiveUpdatesText06, + gTVContestLiveUpdatesText07, + gTVContestLiveUpdatesText08, + gTVContestLiveUpdatesText09, + gTVContestLiveUpdatesText10, + gTVContestLiveUpdatesText11, + gTVContestLiveUpdatesText12, + gTVContestLiveUpdatesText13, + gTVContestLiveUpdatesText14, + gTVContestLiveUpdatesText15, + gTVContestLiveUpdatesText16, + gTVContestLiveUpdatesText17, + gTVContestLiveUpdatesText18, + gTVContestLiveUpdatesText19, + gTVContestLiveUpdatesText20, + gTVContestLiveUpdatesText21, + gTVContestLiveUpdatesText22, + gTVContestLiveUpdatesText23, + gTVContestLiveUpdatesText24, + gTVContestLiveUpdatesText25, + gTVContestLiveUpdatesText26, + gTVContestLiveUpdatesText27, + gTVContestLiveUpdatesText28, + gTVContestLiveUpdatesText29, + gTVContestLiveUpdatesText30, + gTVContestLiveUpdatesText31, + gTVContestLiveUpdatesText32 +}; + +const u8 *const sTVPokemonBattleUpdateTextGroup[] = { + gTVPokemonBattleUpdateText00, + gTVPokemonBattleUpdateText01, + gTVPokemonBattleUpdateText02, + gTVPokemonBattleUpdateText03, + gTVPokemonBattleUpdateText04, + gTVPokemonBattleUpdateText05, + gTVPokemonBattleUpdateText06, + gTVPokemonBattleUpdateText07 +}; + +const u8 *const sTVTrainerFanClubSpecialTextGroup[] = { + gTVTrainerFanClubSpecialText00, + gTVTrainerFanClubSpecialText01, + gTVTrainerFanClubSpecialText02, + gTVTrainerFanClubSpecialText03, + gTVTrainerFanClubSpecialText04, + gTVTrainerFanClubSpecialText05 +}; + +const u8 *const sTVNameRaterTextGroup[] = { + gTVNameRaterText00, + gTVNameRaterText01, + gTVNameRaterText02, + gTVNameRaterText03, + gTVNameRaterText04, + gTVNameRaterText05, + gTVNameRaterText06, + gTVNameRaterText07, + gTVNameRaterText08, + gTVNameRaterText09, + gTVNameRaterText10, + gTVNameRaterText11, + gTVNameRaterText12, + gTVNameRaterText13, + gTVNameRaterText14, + gTVNameRaterText15, + gTVNameRaterText16, + gTVNameRaterText17, + gTVNameRaterText18 +}; + +const u8 *const sTVPokemonContestLiveUpdates2TextGroup[] = { + gTVPokemonContestLiveUpdates2Text00, + gTVPokemonContestLiveUpdates2Text01, + gTVPokemonContestLiveUpdates2Text02, + gTVPokemonContestLiveUpdates2Text03 +}; + +const u8 *const sTVPokemonTodayFailedTextGroup[] = { + gTVPokemonTodayFailedText00, + gTVPokemonTodayFailedText01, + gTVPokemonTodayFailedText02, + gTVPokemonTodayFailedText03, + gTVPokemonTodayFailedText04, + gTVPokemonTodayFailedText05, + gTVPokemonTodayFailedText06 +}; + +const u8 *const sTVPokemonAnslerTextGroup[] = { + gTVPokemonAnglerText00, + gTVPokemonAnglerText01 +}; + +const u8 *const sTVWorldOfMastersTextGroup[] = { + gTVWorldOfMastersText00, + gTVWorldOfMastersText01, + gTVWorldOfMastersText02 +}; + +const u8 *const sTVTodaysRivalTrainerTextGroup[] = { + gTVTodaysRivalTrainerText00, + gTVTodaysRivalTrainerText01, + gTVTodaysRivalTrainerText02, + gTVTodaysRivalTrainerText03, + gTVTodaysRivalTrainerText04, + gTVTodaysRivalTrainerText05, + gTVTodaysRivalTrainerText06, + gTVTodaysRivalTrainerText07, + gTVTodaysRivalTrainerText08, + gTVTodaysRivalTrainerText09, + gTVTodaysRivalTrainerText10 +}; + +const u8 *const sTVDewfordTrendWatcherNetworkTextGroup[] = { + gTVDewfordTrendWatcherNetworkText00, + gTVDewfordTrendWatcherNetworkText01, + gTVDewfordTrendWatcherNetworkText02, + gTVDewfordTrendWatcherNetworkText03, + gTVDewfordTrendWatcherNetworkText04, + gTVDewfordTrendWatcherNetworkText05, + gTVDewfordTrendWatcherNetworkText06 +}; + +const u8 *const sTVHoennTreasureInvestisatorsTextGroup[] = { + gTVHoennTreasureInvestigatorsText00, + gTVHoennTreasureInvestigatorsText01, + gTVHoennTreasureInvestigatorsText02 +}; + +const u8 *const sTVFindThatGamerTextGroup[] = { + gTVFindThatGamerText00, + gTVFindThatGamerText01, + gTVFindThatGamerText02, + gTVFindThatGamerText03 +}; + +const u8 *const sTVBreakinsNewsTextGroup[] = { + gTVBreakingNewsText00, + gTVBreakingNewsText01, + gTVBreakingNewsText02, + gTVBreakingNewsText03, + gTVBreakingNewsText04, + gTVBreakingNewsText05, + gTVBreakingNewsText06, + gTVBreakingNewsText07, + gTVBreakingNewsText08, + gTVBreakingNewsText09, + gTVBreakingNewsText10, + gTVBreakingNewsText11, + gTVBreakingNewsText12 +}; + +const u8 *const sTVSecretBaseVisitTextGroup[] = { + gTVSecretBaseVisitText00, + gTVSecretBaseVisitText01, + gTVSecretBaseVisitText02, + gTVSecretBaseVisitText03, + gTVSecretBaseVisitText04, + gTVSecretBaseVisitText05, + gTVSecretBaseVisitText06, + gTVSecretBaseVisitText07, + gTVSecretBaseVisitText08, + gTVSecretBaseVisitText09, + gTVSecretBaseVisitText10, + gTVSecretBaseVisitText11, + gTVSecretBaseVisitText12, + gTVSecretBaseVisitText13 +}; + +const u8 *const sTVPokemonLotteryWinnerFlashReportTextGroup[] = { + gTVPokemonLotteryWinnerFlashReportText00 +}; + +const u8 *const sTVThePokemonBattleSeminarTextGroup[] = { + gTVThePokemonBattleSeminarText00, + gTVThePokemonBattleSeminarText01, + gTVThePokemonBattleSeminarText02, + gTVThePokemonBattleSeminarText03, + gTVThePokemonBattleSeminarText04, + gTVThePokemonBattleSeminarText05, + gTVThePokemonBattleSeminarText06 +}; + +const u8 *const sTVTrainerFanClubTextGroup[] = { + gTVTrainerFanClubText00, + gTVTrainerFanClubText01, + gTVTrainerFanClubText02, + gTVTrainerFanClubText03, + gTVTrainerFanClubText04, + gTVTrainerFanClubText05, + gTVTrainerFanClubText06, + gTVTrainerFanClubText07, + gTVTrainerFanClubText08, + gTVTrainerFanClubText09, + gTVTrainerFanClubText10, + gTVTrainerFanClubText11 +}; + +const u8 *const sTVCutiesTextGroup[] = { + gTVCutiesText00, + gTVCutiesText01, + gTVCutiesText02, + gTVCutiesText03, + gTVCutiesText04, + gTVCutiesText05, + gTVCutiesText06, + gTVCutiesText07, + gTVCutiesText08, + gTVCutiesText09, + gTVCutiesText10, + gTVCutiesText11, + gTVCutiesText12, + gTVCutiesText13, + gTVCutiesText14, + gTVCutiesText15 +}; + +const u8 *const sTVPokemonNewsBattleFrontierTextGroup[] = { + gTVPokemonNewsBattleFrontierText00, + gTVPokemonNewsBattleFrontierText01, + gTVPokemonNewsBattleFrontierText02, + gTVPokemonNewsBattleFrontierText03, + gTVPokemonNewsBattleFrontierText04, + gTVPokemonNewsBattleFrontierText05, + gTVPokemonNewsBattleFrontierText06, + gTVPokemonNewsBattleFrontierText07, + gTVPokemonNewsBattleFrontierText08, + gTVPokemonNewsBattleFrontierText09, + gTVPokemonNewsBattleFrontierText10, + gTVPokemonNewsBattleFrontierText11, + gTVPokemonNewsBattleFrontierText12, + gTVPokemonNewsBattleFrontierText13, + gTVPokemonNewsBattleFrontierText14, + gTVPokemonNewsBattleFrontierText15, + gTVPokemonNewsBattleFrontierText16, + gTVPokemonNewsBattleFrontierText17, + gTVPokemonNewsBattleFrontierText18 +}; + +const u8 *const sTVWhatsNo1InHoennTodayTextGroup[] = { + gTVWhatsNo1InHoennTodayText00, + gTVWhatsNo1InHoennTodayText01, + gTVWhatsNo1InHoennTodayText02, + gTVWhatsNo1InHoennTodayText03, + gTVWhatsNo1InHoennTodayText04, + gTVWhatsNo1InHoennTodayText05, + gTVWhatsNo1InHoennTodayText06, + gTVWhatsNo1InHoennTodayText07, + gTVWhatsNo1InHoennTodayText08 +}; + +const u8 *const sTVSecretBaseSecretsTextGroup[] = { + gTVSecretBaseSecretsText00, + gTVSecretBaseSecretsText01, + gTVSecretBaseSecretsText02, + gTVSecretBaseSecretsText03, + gTVSecretBaseSecretsText04, + gTVSecretBaseSecretsText05, + gTVSecretBaseSecretsText06, + gTVSecretBaseSecretsText07, + gTVSecretBaseSecretsText08, + gTVSecretBaseSecretsText09, + gTVSecretBaseSecretsText10, + gTVSecretBaseSecretsText11, + gTVSecretBaseSecretsText12, + gTVSecretBaseSecretsText13, + gTVSecretBaseSecretsText14, + gTVSecretBaseSecretsText15, + gTVSecretBaseSecretsText16, + gTVSecretBaseSecretsText17, + gTVSecretBaseSecretsText18, + gTVSecretBaseSecretsText19, + gTVSecretBaseSecretsText20, + gTVSecretBaseSecretsText21, + gTVSecretBaseSecretsText22, + gTVSecretBaseSecretsText23, + gTVSecretBaseSecretsText24, + gTVSecretBaseSecretsText25, + gTVSecretBaseSecretsText26, + gTVSecretBaseSecretsText27, + gTVSecretBaseSecretsText28, + gTVSecretBaseSecretsText29, + gTVSecretBaseSecretsText30, + gTVSecretBaseSecretsText31, + gTVSecretBaseSecretsText32, + gTVSecretBaseSecretsText33, + gTVSecretBaseSecretsText34, + gTVSecretBaseSecretsText35, + gTVSecretBaseSecretsText36, + gTVSecretBaseSecretsText37, + gTVSecretBaseSecretsText38, + gTVSecretBaseSecretsText39, + gTVSecretBaseSecretsText40, + gTVSecretBaseSecretsText41, + gTVSecretBaseSecretsText42 +}; + +const u8 *const sTVSafariFanClubTextGroup[] = { + gTVSafariFanClubText00, + gTVSafariFanClubText01, + gTVSafariFanClubText02, + gTVSafariFanClubText03, + gTVSafariFanClubText04, + gTVSafariFanClubText05, + gTVSafariFanClubText06, + gTVSafariFanClubText07, + gTVSafariFanClubText08, + gTVSafariFanClubText09, + gTVSafariFanClubText10 +}; + +const u8 *const sTVInSearchOfTrainersTextGroup[] = { + gTVInSearchOfTrainersText00, + gTVInSearchOfTrainersText01, + gTVInSearchOfTrainersText02, + gTVInSearchOfTrainersText03, + gTVInSearchOfTrainersText04, + gTVInSearchOfTrainersText05, + gTVInSearchOfTrainersText06, + gTVInSearchOfTrainersText07, + gTVInSearchOfTrainersText08 +}; + +const u8 sTVSecretBaseSecretsStateLookup[] = { + 0x0a, + 0x0b, + 0x0c, + 0x0d, + 0x0e, + 0x0f, + 0x10, + 0x11, + 0x12, + 0x13, + 0x14, + 0x17, + 0x18, + 0x19, + 0x1a, + 0x1b, + 0x1c, + 0x1d, + 0x1e, + 0x1f, + 0x20, + 0x21, + 0x22, + 0x23, + 0x24, + 0x25, + 0x26, + 0x27, + 0x28, + 0x29, + 0x2a, + 0x2b +}; + +// .text + +void ClearTVShowData(void) +{ + u8 i; + u8 j; + + for (i = 0; i < ARRAY_COUNT(gSaveBlock1Ptr->tvShows); i ++) + { + gSaveBlock1Ptr->tvShows[i].common.kind = 0; + gSaveBlock1Ptr->tvShows[i].common.active = 0; + for (j = 0; j < sizeof(TVShow) - 2; j ++) + { + gSaveBlock1Ptr->tvShows[i].common.pad02[j] = 0; + } + } + ClearPokemonNews(); +} + +u8 special_0x44(void) +{ + u8 i; + u8 j; + u8 selIdx; + TVShow *show; + + for (i = 5; i < ARRAY_COUNT(gSaveBlock1Ptr->tvShows) - 1; i ++) + { + if (gSaveBlock1Ptr->tvShows[i].common.kind == 0) + { + break; + } + } + j = Random() % i; + selIdx = j; + do + { + if (GetTVChannelByShowType(gSaveBlock1Ptr->tvShows[j].common.kind) != 4) + { + if (gSaveBlock1Ptr->tvShows[j].common.active == TRUE) + { + return j; + } + } + else + { + show = &gSaveBlock1Ptr->tvShows[j]; + if (show->massOutbreak.daysLeft == 0 && show->massOutbreak.active == TRUE) + { + return j; + } + } + if (j == 0) + { + j = ARRAY_COUNT(gSaveBlock1Ptr->tvShows) - 2; + } + else + { + j --; + } + } while (j != selIdx); + return 0xFF; +} + +u8 FindAnyTVShowOnTheAir(void) +{ + u8 response; + + response = special_0x44(); + if (response == 0xFF) + { + return 0xFF; + } + if (gSaveBlock1Ptr->outbreakPokemonSpecies != SPECIES_NONE && gSaveBlock1Ptr->tvShows[response].common.kind == TVSHOW_MASS_OUTBREAK) + { + return FindFirstActiveTVShowThatIsNotAMassOutbreak(); + } + return response; +} + +void UpdateTVScreensOnMap(int width, int height) +{ + FlagSet(SYS_TV_WATCH); + switch (CheckForBigMovieOrEmergencyNewsOnTV()) + { + case 1: + SetTVMetatilesOnMap(width, height, 0x3); + break; + 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) + { + SetTVMetatilesOnMap(width, height, 0x3); + } + else if (FlagGet(SYS_TV_START) && (FindAnyTVShowOnTheAir() != 0xff || FindAnyTVNewsOnTheAir() != 0xff || IsTVShowInSearchOfTrainersAiring())) + { + FlagReset(SYS_TV_WATCH); + SetTVMetatilesOnMap(width, height, 0x3); + } + break; + } +} + +void SetTVMetatilesOnMap(int width, int height, u16 tileId) +{ + int x; + int y; + + for (y = 0; y < height; y ++) + { + for (x = 0; x < width; x ++) + { + if (MapGridGetMetatileBehaviorAt(x, y) == 0x86) // is this tile a TV? + { + MapGridSetMetatileIdAt(x, y, tileId | 0xc00); + } + } + } +} + +void TurnOffTVScreen(void) +{ + SetTVMetatilesOnMap(gUnknown_03005DC0.width, gUnknown_03005DC0.height, 0x0002); + DrawWholeMapView(); +} + +void TurnOnTVScreen(void) +{ + SetTVMetatilesOnMap(gUnknown_03005DC0.width, gUnknown_03005DC0.height, 0x0003); + DrawWholeMapView(); +} + +u8 special_0x45(void) +{ + return gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004].common.kind; +} + +u8 FindFirstActiveTVShowThatIsNotAMassOutbreak(void) +{ + u8 i; + + for (i = 0; i < ARRAY_COUNT(gSaveBlock1Ptr->tvShows) - 1; i ++) + { + if (gSaveBlock1Ptr->tvShows[i].common.kind != 0 && gSaveBlock1Ptr->tvShows[i].common.kind != TVSHOW_MASS_OUTBREAK && gSaveBlock1Ptr->tvShows[i].common.active == TRUE) + { + return i; + } + } + return 0xFF; +} + +u8 special_0x4a(void) +{ + TVShow *tvShow; + + tvShow = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + if (tvShow->common.kind == TVSHOW_MASS_OUTBREAK && gSaveBlock1Ptr->outbreakPokemonSpecies != SPECIES_NONE) + { + return FindFirstActiveTVShowThatIsNotAMassOutbreak(); + } + return gSpecialVar_0x8004; +} + +// IN SEARCH OF TRAINERS + +void ResetGabbyAndTy(void) +{ + gSaveBlock1Ptr->gabbyAndTyData.mon1 = SPECIES_NONE; + gSaveBlock1Ptr->gabbyAndTyData.mon2 = SPECIES_NONE; + gSaveBlock1Ptr->gabbyAndTyData.lastMove = MOVE_NONE; + gSaveBlock1Ptr->gabbyAndTyData.quote[0] = -1; + gSaveBlock1Ptr->gabbyAndTyData.battleTookMoreThanOneTurn = FALSE; + gSaveBlock1Ptr->gabbyAndTyData.playerLostAMon = FALSE; + gSaveBlock1Ptr->gabbyAndTyData.playerUsedAnItem = FALSE; + gSaveBlock1Ptr->gabbyAndTyData.playerThrewABall = FALSE; + gSaveBlock1Ptr->gabbyAndTyData.onAir = FALSE; + gSaveBlock1Ptr->gabbyAndTyData.valA_5 = 0; + gSaveBlock1Ptr->gabbyAndTyData.battleTookMoreThanOneTurn2 = FALSE; + gSaveBlock1Ptr->gabbyAndTyData.playerLostAMon2 = FALSE; + gSaveBlock1Ptr->gabbyAndTyData.playerUsedAnItem2 = FALSE; + gSaveBlock1Ptr->gabbyAndTyData.playerThrewABall2 = FALSE; + gSaveBlock1Ptr->gabbyAndTyData.valB_4 = 0; + gSaveBlock1Ptr->gabbyAndTyData.mapnum = 0; + gSaveBlock1Ptr->gabbyAndTyData.battleNum = 0; +} + +void GabbyAndTyBeforeInterview(void) +{ + u8 i; + + gSaveBlock1Ptr->gabbyAndTyData.mon1 = gBattleResults.playerMon1Species; + gSaveBlock1Ptr->gabbyAndTyData.mon2 = gBattleResults.playerMon2Species; + gSaveBlock1Ptr->gabbyAndTyData.lastMove = gBattleResults.lastUsedMovePlayer; + if (gSaveBlock1Ptr->gabbyAndTyData.battleNum != 0xFF) + { + gSaveBlock1Ptr->gabbyAndTyData.battleNum ++; + } + gSaveBlock1Ptr->gabbyAndTyData.battleTookMoreThanOneTurn = gBattleResults.unk5_0; + if (gBattleResults.playerFaintCounter != 0) + { + gSaveBlock1Ptr->gabbyAndTyData.playerLostAMon = TRUE; + } + else + { + gSaveBlock1Ptr->gabbyAndTyData.playerLostAMon = FALSE; + } + if (gBattleResults.unk3 != 0) + { + gSaveBlock1Ptr->gabbyAndTyData.playerUsedAnItem = TRUE; + } + else + { + gSaveBlock1Ptr->gabbyAndTyData.playerUsedAnItem = FALSE; + } + if (!gBattleResults.usedMasterBall) + { + for (i = 0; i < 11; i ++) + { + if (gBattleResults.catchAttempts[i]) + { + gSaveBlock1Ptr->gabbyAndTyData.playerThrewABall = TRUE; + break; + } + } + } + else + { + gSaveBlock1Ptr->gabbyAndTyData.playerThrewABall = TRUE; + } + TakeTVShowInSearchOfTrainersOffTheAir(); + if (gSaveBlock1Ptr->gabbyAndTyData.lastMove == MOVE_NONE) + { + FlagSet(0x0001); + } +} + +void GabbyAndTyAfterInterview(void) +{ + gSaveBlock1Ptr->gabbyAndTyData.battleTookMoreThanOneTurn2 = gSaveBlock1Ptr->gabbyAndTyData.battleTookMoreThanOneTurn; + gSaveBlock1Ptr->gabbyAndTyData.playerLostAMon2 = gSaveBlock1Ptr->gabbyAndTyData.playerLostAMon; + gSaveBlock1Ptr->gabbyAndTyData.playerUsedAnItem2 = gSaveBlock1Ptr->gabbyAndTyData.playerUsedAnItem; + gSaveBlock1Ptr->gabbyAndTyData.playerThrewABall2 = gSaveBlock1Ptr->gabbyAndTyData.playerThrewABall; + gSaveBlock1Ptr->gabbyAndTyData.onAir = TRUE; + gSaveBlock1Ptr->gabbyAndTyData.mapnum = gMapHeader.regionMapSectionId; + IncrementGameStat(GAME_STAT_GOT_INTERVIEWED); +} + +void TakeTVShowInSearchOfTrainersOffTheAir(void) +{ + gSaveBlock1Ptr->gabbyAndTyData.onAir = FALSE; +} + +u8 GabbyAndTyGetBattleNum(void) +{ + if (gSaveBlock1Ptr->gabbyAndTyData.battleNum > 5) + { + return (gSaveBlock1Ptr->gabbyAndTyData.battleNum % 3) + 6; + } + return gSaveBlock1Ptr->gabbyAndTyData.battleNum; +} + +bool8 IsTVShowInSearchOfTrainersAiring(void) +{ + return gSaveBlock1Ptr->gabbyAndTyData.onAir; +} + +bool8 GabbyAndTyGetLastQuote(void) +{ + if (gSaveBlock1Ptr->gabbyAndTyData.quote[0] == 0xFFFF) + { + return FALSE; + } + CopyEasyChatWord(gStringVar1, gSaveBlock1Ptr->gabbyAndTyData.quote[0]); + gSaveBlock1Ptr->gabbyAndTyData.quote[0] = -1; + return TRUE; +} + +u8 GabbyAndTyGetLastBattleTrivia(void) +{ + if (!gSaveBlock1Ptr->gabbyAndTyData.battleTookMoreThanOneTurn2) + { + return 1; + } + if (gSaveBlock1Ptr->gabbyAndTyData.playerThrewABall2) + { + return 2; + } + if (gSaveBlock1Ptr->gabbyAndTyData.playerUsedAnItem2) + { + return 3; + } + if (gSaveBlock1Ptr->gabbyAndTyData.playerLostAMon2) + { + return 4; + } + return 0; +} + +void GabbyAndTySetScriptVarsToFieldObjectLocalIds(void) +{ + switch (GabbyAndTyGetBattleNum()) + { + case 1: + gSpecialVar_0x8004 = 14; + gSpecialVar_0x8005 = 13; + break; + case 2: + gSpecialVar_0x8004 = 5; + gSpecialVar_0x8005 = 6; + break; + case 3: + gSpecialVar_0x8004 = 18; + gSpecialVar_0x8005 = 17; + break; + case 4: + gSpecialVar_0x8004 = 21; + gSpecialVar_0x8005 = 22; + break; + case 5: + gSpecialVar_0x8004 = 8; + gSpecialVar_0x8005 = 9; + break; + case 6: + gSpecialVar_0x8004 = 19; + gSpecialVar_0x8005 = 20; + break; + case 7: + gSpecialVar_0x8004 = 23; + gSpecialVar_0x8005 = 24; + break; + case 8: + gSpecialVar_0x8004 = 10; + gSpecialVar_0x8005 = 11; + break; + } +} + +void InterviewAfter(void) +{ + switch (gSpecialVar_0x8005) + { + case TVSHOW_FAN_CLUB_LETTER: + InterviewAfter_FanClubLetter(); + break; + case TVSHOW_RECENT_HAPPENINGS: + InterviewAfter_RecentHappenings(); + break; + case TVSHOW_PKMN_FAN_CLUB_OPINIONS: + InterviewAfter_PkmnFanClubOpinions(); + break; + case TVSHOW_UNKN_SHOWTYPE_04: + InterviewAfter_DummyShow4(); + break; + case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE: + InterviewAfter_BravoTrainerPokemonProfile(); + break; + case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE: + InterviewAfter_BravoTrainerBattleTowerProfile(); + break; + case TVSHOW_CONTEST_LIVE_UPDATES: + InterviewAfter_ContestLiveUpdates(); + break; + } +} + +void PutPokemonTodayCaughtOnAir(void) +{ + u8 i; + u16 ct; + TVShow *show; + u32 language2; + u16 itemLastUsed; + + ct = 0; + sub_80EED88(); + sub_80ED718(); + if (gBattleResults.caughtMonSpecies == SPECIES_NONE) + { + PutPokemonTodayFailedOnTheAir(); + } + else + { + UpdateWorldOfMastersAndPutItOnTheAir(); + if (!rbernoulli(1, 1) && StringCompare(gSpeciesNames[gBattleResults.caughtMonSpecies], gBattleResults.caughtMonNick)) + { + sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_POKEMON_TODAY_CAUGHT, FALSE) != TRUE) + { + for (i = 0; i < 11; i ++) + { + ct += gBattleResults.catchAttempts[i]; + } + if (ct != 0 || gBattleResults.usedMasterBall) + { + ct = 0; + show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + show->pokemonToday.kind = TVSHOW_POKEMON_TODAY_CAUGHT; + show->pokemonToday.active = FALSE; + if (gBattleResults.usedMasterBall) + { + ct = 1; + itemLastUsed = ITEM_MASTER_BALL; + } + else + { + for (i = 0; i < 11; i ++) + { + ct += gBattleResults.catchAttempts[i]; + } + if (ct > 0xFF) + { + ct = 0xFF; + } + itemLastUsed = gLastUsedItem; + } + show->pokemonToday.nBallsUsed = ct; + show->pokemonToday.ball = itemLastUsed; + StringCopy(show->pokemonToday.playerName, gSaveBlock2Ptr->playerName); + StringCopy(show->pokemonToday.nickname, gBattleResults.caughtMonNick); + language2 = sub_81DB604(show->pokemonToday.nickname); + StripExtCtrlCodes(show->pokemonToday.nickname); + show->pokemonToday.species = gBattleResults.caughtMonSpecies; + tv_store_id_3x(show); + show->pokemonToday.language = gGameLanguage; + show->pokemonToday.language2 = language2; + } + } + } + } +} + +void UpdateWorldOfMastersAndPutItOnTheAir(void) +{ + TVShow *show; + + show = &gSaveBlock1Ptr->tvShows[24]; + if (show->worldOfMasters.kind != TVSHOW_WORLD_OF_MASTERS) + { + DeleteTVShowInArrayByIdx(gSaveBlock1Ptr->tvShows, 24); + show->worldOfMasters.steps = GetGameStat(GAME_STAT_STEPS); + show->worldOfMasters.kind = TVSHOW_WORLD_OF_MASTERS; + } + show->worldOfMasters.numPokeCaught ++; + show->worldOfMasters.caughtPoke = gBattleResults.caughtMonSpecies; + show->worldOfMasters.species = gBattleResults.playerMon1Species; + show->worldOfMasters.location = gMapHeader.regionMapSectionId; +} + +void PutPokemonTodayFailedOnTheAir(void) +{ + u16 ct; + u8 i; + TVShow *show; + + if (!rbernoulli(1, 1)) + { + for (i = 0, ct = 0; i < 11; i ++) + { + ct += gBattleResults.catchAttempts[i]; + } + if (ct > 0xFF) + { + ct = 0xFF; + } + if (ct > 2 && (gBattleOutcome == BATTLE_POKE_FLED || gBattleOutcome == BATTLE_WON)) + { + sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_POKEMON_TODAY_FAILED, FALSE) != TRUE) + { + show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + show->pokemonTodayFailed.kind = TVSHOW_POKEMON_TODAY_FAILED; + show->pokemonTodayFailed.active = FALSE; + show->pokemonTodayFailed.species = gBattleResults.playerMon1Species; + show->pokemonTodayFailed.species2 = gBattleResults.lastOpponentSpecies; + show->pokemonTodayFailed.nBallsUsed = ct; + show->pokemonTodayFailed.outcome = gBattleOutcome; + show->pokemonTodayFailed.location = gMapHeader.regionMapSectionId; + StringCopy(show->pokemonTodayFailed.playerName, gSaveBlock2Ptr->playerName); + tv_store_id_3x(show); + show->pokemonTodayFailed.language = gGameLanguage; + } + } + } +} + +void tv_store_id_3x(TVShow *show) +{ + u32 id; + + id = GetPlayerIDAsU32(); + show->common.srcTrainerId2Lo = id; + show->common.srcTrainerId2Hi = id >> 8; + show->common.srcTrainerIdLo = id; + show->common.srcTrainerIdHi = id >> 8; + show->common.trainerIdLo = id; + show->common.trainerIdHi = id >> 8; +} + +void tv_store_id_2x(TVShow *show) +{ + u32 id; + + id = GetPlayerIDAsU32(); + show->common.srcTrainerIdLo = id; + show->common.srcTrainerIdHi = id >> 8; + show->common.trainerIdLo = id; + show->common.trainerIdHi = id >> 8; +} + +void InterviewAfter_ContestLiveUpdates(void) +{ + TVShow *show; + TVShow *show2; + + show = &gSaveBlock1Ptr->tvShows[24]; + if (show->contestLiveUpdates.kind == TVSHOW_CONTEST_LIVE_UPDATES) + { + show2 = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + show2->contestLiveUpdates.kind = TVSHOW_CONTEST_LIVE_UPDATES; + show2->contestLiveUpdates.active = TRUE; + StringCopy(show2->contestLiveUpdates.playerName, gSaveBlock2Ptr->playerName); + show2->contestLiveUpdates.category = gUnknown_02039F2C; + show2->contestLiveUpdates.species = GetMonData(&gPlayerParty[gUnknown_02039F24], MON_DATA_SPECIES, NULL); + show2->contestLiveUpdates.winningSpecies = show->contestLiveUpdates.winningSpecies; + show2->contestLiveUpdates.appealFlags2 = show->contestLiveUpdates.appealFlags2; + show2->contestLiveUpdates.round1Rank = show->contestLiveUpdates.round1Rank; + show2->contestLiveUpdates.round2Rank = show->contestLiveUpdates.round2Rank; + show2->contestLiveUpdates.move = show->contestLiveUpdates.move; + show2->contestLiveUpdates.appealFlags1 = show->contestLiveUpdates.appealFlags1; + StringCopy(show2->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerName); + tv_store_id_2x(show2); + show2->contestLiveUpdates.language = gGameLanguage; + show2->contestLiveUpdates.winningTrainerLanguage = show->contestLiveUpdates.winningTrainerLanguage; + DeleteTVShowInArrayByIdx(gSaveBlock1Ptr->tvShows, 24); + } +} + +void PutBattleUpdateOnTheAir(u8 a0, u16 a1, u16 a2, u16 a3) +{ + TVShow *show; + u8 name[32]; + + sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1) + { + FindActiveBroadcastByShowType_SetScriptResult(TVSHOW_BATTLE_UPDATE); + if (gScriptResult != 1) + { + show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + show->battleUpdate.kind = TVSHOW_BATTLE_UPDATE; + show->battleUpdate.active = TRUE; + StringCopy(show->battleUpdate.playerName, gSaveBlock2Ptr->playerName); + if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + { + show->battleUpdate.battleType = 2; + } + else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + show->battleUpdate.battleType = 1; + } + else + { + show->battleUpdate.battleType = 0; + } + show->battleUpdate.move = a1; + show->battleUpdate.species2 = a2; + show->battleUpdate.species = a3; + StringCopy(name, gLinkPlayers[a0].name); + StripExtCtrlCodes(name); + StringCopy(show->battleUpdate.linkOpponentName, name); + tv_store_id_2x(show); + show->battleUpdate.language = gGameLanguage; + if (show->battleUpdate.language == LANGUAGE_JAPANESE || gLinkPlayers[a0].language == LANGUAGE_JAPANESE) + { + show->battleUpdate.linkOpponentLanguage = LANGUAGE_JAPANESE; + } + else + { + show->battleUpdate.linkOpponentLanguage = gLinkPlayers[a0].language; + } + } + } +} + +bool8 Put3CheersForPokeblocksOnTheAir(const u8 *partnersName, u8 flavor, u8 unused, u8 sheen, u8 language) +{ + TVShow *show; + u8 name[32]; + + sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot == -1) + { + return FALSE; + } + FindActiveBroadcastByShowType_SetScriptResult(TVSHOW_3_CHEERS_FOR_POKEBLOCKS); + if (gScriptResult == 1) + { + return FALSE; + } + show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + show->threeCheers.kind = TVSHOW_3_CHEERS_FOR_POKEBLOCKS; + show->threeCheers.active = TRUE; + StringCopy(show->threeCheers.playerName, gSaveBlock2Ptr->playerName); + StringCopy(name, partnersName); + StripExtCtrlCodes(name); + StringCopy(show->threeCheers.worstBlenderName, name); + show->threeCheers.flavor = flavor; + show->threeCheers.unk_03_3 = unused; + show->threeCheers.sheen = sheen; + tv_store_id_2x(show); + show->threeCheers.language = gGameLanguage; + if (show->threeCheers.language == LANGUAGE_JAPANESE || language == LANGUAGE_JAPANESE) + { + show->threeCheers.worstBlenderLanguage = LANGUAGE_JAPANESE; + } + else + { + show->threeCheers.worstBlenderLanguage = language; + } + return TRUE; +} + +void PutFanClubSpecialOnTheAir(void) +{ + TVShow *show; + u8 name[32]; + u32 id; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8006]; + show->fanClubSpecial.score = gSpecialVar_0x8005 * 10; + StringCopy(show->fanClubSpecial.playerName, gSaveBlock2Ptr->playerName); + show->fanClubSpecial.kind = TVSHOW_FAN_CLUB_SPECIAL; + show->fanClubSpecial.active = TRUE; + id = GetPlayerIDAsU32(); + show->fanClubSpecial.idLo = id; + show->fanClubSpecial.idHi = id >> 8; + StringCopy(name, gStringVar1); + StripExtCtrlCodes(name); + StringCopy(show->fanClubSpecial.idolName, name); + tv_store_id_2x(show); + show->fanClubSpecial.language = gGameLanguage; + if (show->fanClubSpecial.language == LANGUAGE_JAPANESE || gSaveBlock1Ptr->unk_31A0 == LANGUAGE_JAPANESE) + { + show->fanClubSpecial.idolNameLanguage = LANGUAGE_JAPANESE; + } + else + { + show->fanClubSpecial.idolNameLanguage = gSaveBlock1Ptr->unk_31A0; + } +} + +void ContestLiveUpdates_BeforeInterview_1(u8 a0) +{ + TVShow *show; + + DeleteTVShowInArrayByIdx(gSaveBlock1Ptr->tvShows, 24); + sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1) + { + show = &gSaveBlock1Ptr->tvShows[24]; + show->contestLiveUpdates.round1Rank = a0; + show->contestLiveUpdates.kind = TVSHOW_CONTEST_LIVE_UPDATES; + } +} + +void ContestLiveUpdates_BeforeInterview_2(u8 a0) +{ + TVShow *show; + + show = &gSaveBlock1Ptr->tvShows[24]; + sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1) + { + show->contestLiveUpdates.round2Rank = a0; + } +} + +void ContestLiveUpdates_BeforeInterview_3(u8 a0) +{ + TVShow *show; + + show = &gSaveBlock1Ptr->tvShows[24]; + sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1) + { + show->contestLiveUpdates.appealFlags1 = a0; + } +} + +void ContestLiveUpdates_BeforeInterview_4(u16 a0) +{ + TVShow *show; + + show = &gSaveBlock1Ptr->tvShows[24]; + sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1) + { + show->contestLiveUpdates.move = a0; + } +} + +void ContestLiveUpdates_BeforeInterview_5(u8 a0, u8 a1) +{ + TVShow *show; + + show = &gSaveBlock1Ptr->tvShows[24]; + sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1) + { + show->contestLiveUpdates.winningSpecies = gUnknown_02039E00[a1].unk_00; + StringCopy(show->contestLiveUpdates.winningTrainerName, gUnknown_02039E00[a1].unk_0d); + StripExtCtrlCodes(show->contestLiveUpdates.winningTrainerName); + show->contestLiveUpdates.appealFlags2 = a0; + if (a1 + 1 > gUnknown_02039F30) + { + show->contestLiveUpdates.winningTrainerLanguage = gLinkPlayers[0].language; + } + else if (gGameLanguage == LANGUAGE_JAPANESE || gLinkPlayers[a1].language == LANGUAGE_JAPANESE) + { + show->contestLiveUpdates.winningTrainerLanguage = LANGUAGE_JAPANESE; + } + else + { + show->contestLiveUpdates.winningTrainerLanguage = gLinkPlayers[a1].language; + } + } +} + +void InterviewAfter_BravoTrainerPokemonProfile(void) +{ + TVShow *show; + TVShow *show2; + + show = &gSaveBlock1Ptr->tvShows[24]; + if (show->bravoTrainer.kind == TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE) + { + show2 = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + show2->bravoTrainer.kind = TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE; + show2->bravoTrainer.active = TRUE; + show2->bravoTrainer.species = show->bravoTrainer.species; + StringCopy(show2->bravoTrainer.playerName, gSaveBlock2Ptr->playerName); + StringCopy(show2->bravoTrainer.pokemonNickname, show->bravoTrainer.pokemonNickname); + show2->bravoTrainer.contestCategory = show->bravoTrainer.contestCategory; + show2->bravoTrainer.contestRank = show->bravoTrainer.contestRank; + show2->bravoTrainer.move = show->bravoTrainer.move; + show2->bravoTrainer.contestResult = show->bravoTrainer.contestResult; + show2->bravoTrainer.contestCategory = show->bravoTrainer.contestCategory; + tv_store_id_2x(show2); + show2->bravoTrainer.language = gGameLanguage; + if (show2->bravoTrainer.language == LANGUAGE_JAPANESE || show->bravoTrainer.pokemonNameLanguage == LANGUAGE_JAPANESE) + { + show2->bravoTrainer.pokemonNameLanguage = LANGUAGE_JAPANESE; + } + else + { + show2->bravoTrainer.pokemonNameLanguage = show->bravoTrainer.pokemonNameLanguage; + } + DeleteTVShowInArrayByIdx(gSaveBlock1Ptr->tvShows, 24); + } +} + +void BravoTrainerPokemonProfile_BeforeInterview1(u16 a0) +{ + TVShow *show; + + show = &gSaveBlock1Ptr->tvShows[24]; + InterviewBefore_BravoTrainerPkmnProfile(); + sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1) + { + DeleteTVShowInArrayByIdx(gSaveBlock1Ptr->tvShows, 24); + show->bravoTrainer.move = a0; + show->bravoTrainer.kind = TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE; + } +} + +void BravoTrainerPokemonProfile_BeforeInterview2(u8 a0) +{ + TVShow *show; + + show = &gSaveBlock1Ptr->tvShows[24]; + sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1) + { + show->bravoTrainer.contestResult = a0; + show->bravoTrainer.contestCategory = gUnknown_02039F2C; + show->bravoTrainer.contestRank = gUnknown_02039F2E; + show->bravoTrainer.species = GetMonData(&gPlayerParty[gUnknown_02039F24], MON_DATA_SPECIES, NULL); + GetMonData(&gPlayerParty[gUnknown_02039F24], MON_DATA_NICKNAME, show->bravoTrainer.pokemonNickname); + StripExtCtrlCodes(show->bravoTrainer.pokemonNickname); + show->bravoTrainer.pokemonNameLanguage = GetMonData(&gPlayerParty[gUnknown_02039F24], MON_DATA_LANGUAGE); + } +} + +void InterviewAfter_BravoTrainerBattleTowerProfile(void) +{ + TVShow *show; + + show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + show->bravoTrainerTower.kind = TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE; + show->bravoTrainerTower.active = TRUE; + StringCopy(show->bravoTrainerTower.trainerName, gSaveBlock2Ptr->playerName); + StringCopy(show->bravoTrainerTower.pokemonName, gSaveBlock2Ptr->field_BD8); + show->bravoTrainerTower.species = gSaveBlock2Ptr->field_BD4; + show->bravoTrainerTower.defeatedSpecies = gSaveBlock2Ptr->field_BD6; + show->bravoTrainerTower.numFights = sub_8164FCC(gSaveBlock2Ptr->field_D07, 0); + show->bravoTrainerTower.wonTheChallenge = gSaveBlock2Ptr->field_D06; + if (gSaveBlock2Ptr->field_D07 == 0) + { + show->bravoTrainerTower.btLevel = 50; + } + else + { + show->bravoTrainerTower.btLevel = 100; + } + show->bravoTrainerTower.interviewResponse = gSpecialVar_0x8004; + tv_store_id_2x(show); + show->bravoTrainerTower.language = gGameLanguage; + if (show->bravoTrainerTower.language == LANGUAGE_JAPANESE || gSaveBlock2Ptr->field_BEB == LANGUAGE_JAPANESE) + { + show->bravoTrainerTower.pokemonNameLanguage = LANGUAGE_JAPANESE; + } + else + { + show->bravoTrainerTower.pokemonNameLanguage = gSaveBlock2Ptr->field_BEB; + } +} + +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)) + { + sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_SMART_SHOPPER, FALSE) != TRUE) + { + TV_SortPurchasesByQuantity(); + if (gUnknown_02039F80[0].quantity >= 20) + { + show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + show->smartshopperShow.kind = TVSHOW_SMART_SHOPPER; + show->smartshopperShow.active = FALSE; + show->smartshopperShow.shopLocation = gMapHeader.regionMapSectionId; + for (i = 0; i < 3; i ++) + { + show->smartshopperShow.itemIds[i] = gUnknown_02039F80[i].itemId; + show->smartshopperShow.itemAmounts[i] = gUnknown_02039F80[i].quantity; + } + show->smartshopperShow.priceReduced = GetPriceReduction(1); + StringCopy(show->smartshopperShow.playerName, gSaveBlock2Ptr->playerName); + tv_store_id_3x(show); + show->smartshopperShow.language = gGameLanguage; + } + } + } +} + +void PutNameRaterShowOnTheAir(void) +{ + TVShow *show; + + InterviewBefore_NameRater(); + if (gScriptResult != 1) + { + GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar1); + if (StringLength(gSaveBlock2Ptr->playerName) > 1 && StringLength(gStringVar1) > 1) + { + show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + show->nameRaterShow.kind = TVSHOW_NAME_RATER_SHOW; + show->nameRaterShow.active = TRUE; + show->nameRaterShow.species = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES, NULL); + show->nameRaterShow.random = Random() % 3; + show->nameRaterShow.random2 = Random() % 2; + show->nameRaterShow.randomSpecies = TV_GetSomeOtherSpeciesAlreadySeenByPlayer(show->nameRaterShow.species); + StringCopy(show->nameRaterShow.trainerName, gSaveBlock2Ptr->playerName); + GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, show->nameRaterShow.pokemonName); + StripExtCtrlCodes(show->nameRaterShow.pokemonName); + tv_store_id_2x(show); + show->nameRaterShow.language = gGameLanguage; + show->nameRaterShow.pokemonNameLanguage = GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_LANGUAGE); + } + } +} + +void StartMassOutbreak(void) +{ + TVShow *show; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + gSaveBlock1Ptr->outbreakPokemonSpecies = show->massOutbreak.species; + gSaveBlock1Ptr->outbreakLocationMapNum = show->massOutbreak.locationMapNum; + gSaveBlock1Ptr->outbreakLocationMapGroup = show->massOutbreak.locationMapGroup; + gSaveBlock1Ptr->outbreakPokemonLevel = show->massOutbreak.level; + gSaveBlock1Ptr->outbreakUnk1 = show->massOutbreak.var02; + gSaveBlock1Ptr->outbreakUnk2 = show->massOutbreak.var0E; + gSaveBlock1Ptr->outbreakPokemonMoves[0] = show->massOutbreak.moves[0]; + gSaveBlock1Ptr->outbreakPokemonMoves[1] = show->massOutbreak.moves[1]; + gSaveBlock1Ptr->outbreakPokemonMoves[2] = show->massOutbreak.moves[2]; + gSaveBlock1Ptr->outbreakPokemonMoves[3] = show->massOutbreak.moves[3]; + gSaveBlock1Ptr->outbreakUnk4 = show->massOutbreak.var03; + gSaveBlock1Ptr->outbreakPokemonProbability = show->massOutbreak.probability; + gSaveBlock1Ptr->outbreakDaysLeft = 2; +} + +void PutLilycoveContestLadyShowOnTheAir(void) +{ + TVShow *show; + + sub_80EFA88(); + if (gScriptResult != TRUE) + { + show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + sub_818E848(&show->contestLiveUpdates2.language); + show->contestLiveUpdates2.pokemonNameLanguage = LANGUAGE_ENGLISH; + show->contestLiveUpdates2.kind = TVSHOW_CONTEST_LIVE_UPDATES_2; + show->contestLiveUpdates2.active = TRUE; + sub_818E81C(show->contestLiveUpdates2.playerName); + sub_818E7E0(&show->contestLiveUpdates2.contestCategory, show->contestLiveUpdates2.nickname); + show->contestLiveUpdates2.pokeblockState = sub_818E880(); + tv_store_id_2x(show); + } +} + +void InterviewAfter_FanClubLetter(void) +{ + TVShow *show; + + show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + show->fanclubLetter.kind = TVSHOW_FAN_CLUB_LETTER; + show->fanclubLetter.active = TRUE; + StringCopy(show->fanclubLetter.playerName, gSaveBlock2Ptr->playerName); + show->fanclubLetter.species = GetMonData(&gPlayerParty[GetIdxOfFirstPartyMemberThatIsNotAnEgg()], MON_DATA_SPECIES, NULL); + tv_store_id_2x(show); + show->fanclubLetter.language = gGameLanguage; +} + +void InterviewAfter_RecentHappenings(void) +{ + TVShow *show; + + show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + show->recentHappenings.kind = TVSHOW_RECENT_HAPPENINGS; + show->recentHappenings.active = TRUE; + StringCopy(show->recentHappenings.playerName, gSaveBlock2Ptr->playerName); + show->recentHappenings.var02 = 0; + tv_store_id_2x(show); + show->recentHappenings.language = gGameLanguage; +} + +void InterviewAfter_PkmnFanClubOpinions(void) +{ + TVShow *show; + + show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + show->fanclubOpinions.kind = TVSHOW_PKMN_FAN_CLUB_OPINIONS; + show->fanclubOpinions.active = TRUE; + show->fanclubOpinions.friendshipHighNybble = GetMonData(&gPlayerParty[GetIdxOfFirstPartyMemberThatIsNotAnEgg()], MON_DATA_FRIENDSHIP, NULL) >> 4; + show->fanclubOpinions.questionAsked = gSpecialVar_0x8007; + StringCopy(show->fanclubOpinions.playerName, gSaveBlock2Ptr->playerName); + GetMonData(&gPlayerParty[GetIdxOfFirstPartyMemberThatIsNotAnEgg()], MON_DATA_NICKNAME, show->fanclubOpinions.nickname); + StripExtCtrlCodes(show->fanclubOpinions.nickname); + show->fanclubOpinions.species = GetMonData(&gPlayerParty[GetIdxOfFirstPartyMemberThatIsNotAnEgg()], MON_DATA_SPECIES, NULL); + tv_store_id_2x(show); + show->fanclubOpinions.language = gGameLanguage; + if (gGameLanguage == LANGUAGE_JAPANESE || GetMonData(&gPlayerParty[GetIdxOfFirstPartyMemberThatIsNotAnEgg()], MON_DATA_LANGUAGE) == LANGUAGE_JAPANESE) + { + show->fanclubOpinions.pokemonNameLanguage = LANGUAGE_JAPANESE; + } + else + { + show->fanclubOpinions.pokemonNameLanguage = GetMonData(&gPlayerParty[GetIdxOfFirstPartyMemberThatIsNotAnEgg()], MON_DATA_LANGUAGE); + } +} + +void InterviewAfter_DummyShow4() +{ + TVShow *show; + + show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; +} + +void sub_80ED718(void) +{ + u8 i; + u16 outbreakIdx; + TVShow *show; + + if (FlagGet(SYS_GAME_CLEAR)) + { + for (i = 0; i < 24; i ++) + { + if (gSaveBlock1Ptr->tvShows[i].common.kind == TVSHOW_MASS_OUTBREAK) + { + return; + } + } + if (!rbernoulli(1, 200)) + { + sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1) + { + outbreakIdx = Random() % ARRAY_COUNT(sPokeOutbreakSpeciesList); + show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + show->massOutbreak.kind = TVSHOW_MASS_OUTBREAK; + show->massOutbreak.active = TRUE; + show->massOutbreak.level = sPokeOutbreakSpeciesList[outbreakIdx].level; + show->massOutbreak.var02 = 0; + show->massOutbreak.var03 = 0; + show->massOutbreak.species = sPokeOutbreakSpeciesList[outbreakIdx].species; + show->massOutbreak.var0E = 0; + show->massOutbreak.moves[0] = sPokeOutbreakSpeciesList[outbreakIdx].moves[0]; + show->massOutbreak.moves[1] = sPokeOutbreakSpeciesList[outbreakIdx].moves[1]; + show->massOutbreak.moves[2] = sPokeOutbreakSpeciesList[outbreakIdx].moves[2]; + show->massOutbreak.moves[3] = sPokeOutbreakSpeciesList[outbreakIdx].moves[3]; + show->massOutbreak.locationMapNum = sPokeOutbreakSpeciesList[outbreakIdx].location; + show->massOutbreak.locationMapGroup = 0; + show->massOutbreak.var12 = 0; + show->massOutbreak.probability = 50; + show->massOutbreak.var15 = 0; + show->massOutbreak.daysLeft = 1; + tv_store_id_2x(show); + show->massOutbreak.language = gGameLanguage; + } + } + } +} + +void EndMassOutbreak(void) +{ + gSaveBlock1Ptr->outbreakPokemonSpecies = SPECIES_NONE; + gSaveBlock1Ptr->outbreakLocationMapNum = 0; + gSaveBlock1Ptr->outbreakLocationMapGroup = 0; + gSaveBlock1Ptr->outbreakPokemonLevel = 0; + gSaveBlock1Ptr->outbreakUnk1 = 0; + gSaveBlock1Ptr->outbreakUnk2 = 0; + gSaveBlock1Ptr->outbreakPokemonMoves[0] = MOVE_NONE; + gSaveBlock1Ptr->outbreakPokemonMoves[1] = MOVE_NONE; + gSaveBlock1Ptr->outbreakPokemonMoves[2] = MOVE_NONE; + gSaveBlock1Ptr->outbreakPokemonMoves[3] = MOVE_NONE; + gSaveBlock1Ptr->outbreakUnk4 = 0; + gSaveBlock1Ptr->outbreakPokemonProbability = 0; + gSaveBlock1Ptr->outbreakDaysLeft = 0; +} + +void sub_80ED888(u16 days) +{ + + sub_80ED8B4(days); + UpdateMassOutbreakTimeLeft(days); + sub_80EF120(days); + sub_80EDA48(days); + sub_80EEB98(days); +} + +void sub_80ED8B4(u16 days) +{ + u8 i; + TVShow *show; + + if (gSaveBlock1Ptr->outbreakPokemonSpecies == SPECIES_NONE) + { + for (i = 0; i < 24; i ++) + { + if (gSaveBlock1Ptr->tvShows[i].massOutbreak.kind == TVSHOW_MASS_OUTBREAK && gSaveBlock1Ptr->tvShows[i].massOutbreak.active == TRUE) + { + show = &gSaveBlock1Ptr->tvShows[i]; + if (show->massOutbreak.daysLeft < days) + { + show->massOutbreak.daysLeft = 0; + } + else + { + show->massOutbreak.daysLeft -= days; + } + break; + } + } + } +} + +void UpdateMassOutbreakTimeLeft(u16 days) +{ + if (gSaveBlock1Ptr->outbreakDaysLeft <= days) + { + EndMassOutbreak(); + } + else + { + gSaveBlock1Ptr->outbreakDaysLeft -= days; + } +} + +void sub_80ED950(bool8 flag) +{ + if (flag) + { + if (sPokemonAnglerAttemptCounters >> 8 > 4) + { + PutFishingAdviceShowOnTheAir(); + } + sPokemonAnglerAttemptCounters &= 0xFF; + if (sPokemonAnglerAttemptCounters != 0xFF) + { + sPokemonAnglerAttemptCounters += 0x01; + } + } + else + { + if ((u8)sPokemonAnglerAttemptCounters > 4) + { + PutFishingAdviceShowOnTheAir(); + } + sPokemonAnglerAttemptCounters &= 0xFF00; + if (sPokemonAnglerAttemptCounters >> 8 != 0xFF) + { + sPokemonAnglerAttemptCounters += 0x0100; + } + } +} + +void PutFishingAdviceShowOnTheAir(void) +{ + TVShow *show; + + sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_FISHING_ADVICE, FALSE) != TRUE) + { + show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + show->pokemonAngler.kind = TVSHOW_FISHING_ADVICE; + show->pokemonAngler.active = FALSE; + show->pokemonAngler.nBites = sPokemonAnglerAttemptCounters; + show->pokemonAngler.nFails = sPokemonAnglerAttemptCounters >> 8; + show->pokemonAngler.species = sPokemonAnglerSpecies; + StringCopy(show->pokemonAngler.playerName, gSaveBlock2Ptr->playerName); + tv_store_id_3x(show); + show->pokemonAngler.language = gGameLanguage; + } +} + +void sub_80EDA3C(u16 species) +{ + sPokemonAnglerSpecies = species; +} + +void sub_80EDA48(u16 days) +{ + TVShow *show; + + show = &gSaveBlock1Ptr->tvShows[24]; + if (show->worldOfMasters.kind == TVSHOW_WORLD_OF_MASTERS) + { + if (show->worldOfMasters.numPokeCaught >= 20) + { + sub_80EDA80(); + } + DeleteTVShowInArrayByIdx(gSaveBlock1Ptr->tvShows, 24); + } +} + +void sub_80EDA80(void) +{ + TVShow *show; + TVShow *show2; + + show = &gSaveBlock1Ptr->tvShows[24]; + if (!rbernoulli(1, 1)) + { + sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_WORLD_OF_MASTERS, FALSE) != TRUE) + { + show2 = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + show2->worldOfMasters.kind = TVSHOW_WORLD_OF_MASTERS; + show2->worldOfMasters.active = FALSE; + show2->worldOfMasters.numPokeCaught = show->worldOfMasters.numPokeCaught; + show2->worldOfMasters.steps = GetGameStat(GAME_STAT_STEPS) - show->worldOfMasters.steps; + show2->worldOfMasters.caughtPoke = show->worldOfMasters.caughtPoke; + show2->worldOfMasters.species = show->worldOfMasters.species; + show2->worldOfMasters.location = show->worldOfMasters.location; + StringCopy(show2->worldOfMasters.playerName, gSaveBlock2Ptr->playerName); + tv_store_id_3x(show2); + show2->worldOfMasters.language = gGameLanguage; + DeleteTVShowInArrayByIdx(gSaveBlock1Ptr->tvShows, 24); + } + } +} + +void sub_80EDB44(void) +{ + TVShow *show; + u32 i; + u8 nBadges; + + HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_TODAYS_RIVAL_TRAINER, TRUE); + sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1) + { + show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + show->rivalTrainer.kind = TVSHOW_TODAYS_RIVAL_TRAINER; + show->rivalTrainer.active = FALSE; + for (i = BADGE01_GET, nBadges = 0; i < BADGE01_GET + 8; i ++) + { + if (FlagGet(i)) + { + nBadges ++; + } + } + show->rivalTrainer.badgeCount = nBadges; + if (IsNationalPokedexEnabled()) + { + show->rivalTrainer.dexCount = pokedex_count(0x01); + } + else + { + show->rivalTrainer.dexCount = sub_80C0844(0x01); + } + show->rivalTrainer.location = gMapHeader.regionMapSectionId; + show->rivalTrainer.mapDataId = gMapHeader.mapDataId; + show->rivalTrainer.nSilverSymbols = 0; + show->rivalTrainer.nGoldSymbols = 0; + for (i = 0; i < 7; i ++) + { + if (FlagGet(sSilverSymbolFlags[i]) == TRUE) + { + show->rivalTrainer.nSilverSymbols ++; + } + if (FlagGet(sGoldSymbolFlags[i]) == TRUE) + { + show->rivalTrainer.nGoldSymbols ++; + } + } + show->rivalTrainer.battlePoints = gSaveBlock2Ptr->frontierBattlePoints; + StringCopy(show->rivalTrainer.playerName, gSaveBlock2Ptr->playerName); + tv_store_id_3x(show); + show->rivalTrainer.language = gGameLanguage; + } +} + +void sub_80EDC60(const u16 *words) +{ + TVShow *show; + + sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_TREND_WATCHER, FALSE) != TRUE) + { + show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + show->trendWatcher.kind = TVSHOW_TREND_WATCHER; + show->trendWatcher.active = FALSE; + show->trendWatcher.gender = gSaveBlock2Ptr->playerGender; + show->trendWatcher.words[0] = words[0]; + show->trendWatcher.words[1] = words[1]; + StringCopy(show->trendWatcher.playerName, gSaveBlock2Ptr->playerName); + tv_store_id_3x(show); + show->trendWatcher.language = gGameLanguage; + } +} + +void sub_80EDCE8(void) +{ + TVShow *show; + + sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_TREASURE_INVESTIGATORS, FALSE) != TRUE) + { + show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + show->treasureInvestigators.kind = TVSHOW_TREASURE_INVESTIGATORS; + show->treasureInvestigators.active = FALSE; + show->treasureInvestigators.item = gSpecialVar_0x8005; + show->treasureInvestigators.location = gMapHeader.regionMapSectionId; + show->treasureInvestigators.mapDataId = gMapHeader.mapDataId; + StringCopy(show->treasureInvestigators.playerName, gSaveBlock2Ptr->playerName); + tv_store_id_3x(show); + show->treasureInvestigators.language = gGameLanguage; + } +} + +void sub_80EDD78(u16 nCoinsPaidOut) +{ + TVShow *show; + bool8 flag; + u16 nCoinsWon; + + sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_FIND_THAT_GAMER, FALSE) != TRUE) + { + flag = FALSE; + switch (sFindThatGamerWhichGame) + { + case FALSE: + if (nCoinsPaidOut >= sFindThatGamerCoinsSpent + 200) + { + flag = TRUE; + nCoinsWon = nCoinsPaidOut - sFindThatGamerCoinsSpent; + break; + } + if (sFindThatGamerCoinsSpent >= 100 && nCoinsPaidOut <= sFindThatGamerCoinsSpent - 100) + { + nCoinsWon = sFindThatGamerCoinsSpent - nCoinsPaidOut; + break; + } + return; + case TRUE: + if (nCoinsPaidOut >= sFindThatGamerCoinsSpent + 50) + { + flag = TRUE; + nCoinsWon = nCoinsPaidOut - sFindThatGamerCoinsSpent; + break; + } + if (sFindThatGamerCoinsSpent >= 50 && nCoinsPaidOut <= sFindThatGamerCoinsSpent - 50) + { + nCoinsWon = sFindThatGamerCoinsSpent - nCoinsPaidOut; + break; + } + return; + default: + return; + } + show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + show->findThatGamer.kind = TVSHOW_FIND_THAT_GAMER; + show->findThatGamer.active = FALSE; + show->findThatGamer.nCoins = nCoinsWon; + show->findThatGamer.whichGame = sFindThatGamerWhichGame; + show->findThatGamer.won = flag; + StringCopy(show->findThatGamer.playerName, gSaveBlock2Ptr->playerName); + tv_store_id_3x(show); + show->findThatGamer.language = gGameLanguage; + } +} + +void sub_80EDE70(u16 nCoinsSpent) +{ + sFindThatGamerWhichGame = FALSE; + sFindThatGamerCoinsSpent = nCoinsSpent; +} + +void sub_80EDE84(u16 nCoinsSpent) +{ + sFindThatGamerWhichGame = TRUE; + sFindThatGamerCoinsSpent = nCoinsSpent; +} + +#ifdef NONMATCHING // FIXME: Register allocation shenanigans +void sub_80EDE98(TVShow *show) +{ + u8 i; + u8 j; + u16 k; + u8 n; + u8 deco; + u8 x; + + for (i = 0; i < 16; i ++) + { + sTV_DecorationsBuffer[i] = 0; + } + for (i = 0, n = 0; i < 16; i ++) + { + deco = gSaveBlock1Ptr->secretBases[0].decorations[i]; + if (deco) + { + for (j = 0; j < 16; j ++) + { + if (sTV_DecorationsBuffer[j] == 0) + { + sTV_DecorationsBuffer[j] = deco; + n ++; + break; + } + if (sTV_DecorationsBuffer[j] == deco) + { + break; + } + } + } + } + if (n > 4) + { + show->secretBaseVisit.nDecorations = 4; + } + else + { + show->secretBaseVisit.nDecorations = n; + } + switch (show->secretBaseVisit.nDecorations) + { + case 0: + break; + case 1: + show->secretBaseVisit.decorations[0] = sTV_DecorationsBuffer[0]; + break; + default: + for (k = 0; k < n * n; k ++) + { + i = Random() % n; + j = Random() % n; + x = sTV_DecorationsBuffer[i]; + sTV_DecorationsBuffer[i] = sTV_DecorationsBuffer[j]; + sTV_DecorationsBuffer[j] = x; + } + for (i = 0; i < show->secretBaseVisit.nDecorations; i ++) + { + show->secretBaseVisit.decorations[i] = sTV_DecorationsBuffer[i]; + } + break; + } +} +#else +__attribute__((naked)) +void sub_80EDE98(TVShow *show) +{ + asm_unified("\tpush {r4-r7,lr}\n" + "\tmov r7, r9\n" + "\tmov r6, r8\n" + "\tpush {r6,r7}\n" + "\tmov r8, r0\n" + "\tmovs r3, 0\n" + "\tldr r6, =sTV_DecorationsBuffer\n" + "\tldr r7, =gSaveBlock1Ptr\n" + "\tadds r2, r6, 0\n" + "\tmovs r1, 0\n" + "_080EDEAC:\n" + "\tadds r0, r3, r2\n" + "\tstrb r1, [r0]\n" + "\tadds r0, r3, 0x1\n" + "\tlsls r0, 24\n" + "\tlsrs r3, r0, 24\n" + "\tcmp r3, 0xF\n" + "\tbls _080EDEAC\n" + "\tmovs r3, 0\n" + "\tmovs r5, 0\n" + "_080EDEBE:\n" + "\tldr r0, [r7]\n" + "\tldr r1, =0x00001aae\n" + "\tadds r0, r1\n" + "\tadds r0, r3\n" + "\tldrb r4, [r0]\n" + "\tadds r3, 0x1\n" + "\tcmp r4, 0\n" + "\tbeq _080EDF0A\n" + "\tmovs r1, 0\n" + "\tldrb r0, [r6]\n" + "\tcmp r0, 0\n" + "\tbne _080EDEE8\n" + "\tstrb r4, [r6]\n" + "\tb _080EDF04\n" + "\t.pool\n" + "_080EDEE8:\n" + "\tadds r0, r1, r6\n" + "\tldrb r0, [r0]\n" + "\tcmp r0, r4\n" + "\tbeq _080EDF0A\n" + "\tadds r0, r1, 0x1\n" + "\tlsls r0, 24\n" + "\tlsrs r1, r0, 24\n" + "\tcmp r1, 0xF\n" + "\tbhi _080EDF0A\n" + "\tadds r2, r1, r6\n" + "\tldrb r0, [r2]\n" + "\tcmp r0, 0\n" + "\tbne _080EDEE8\n" + "\tstrb r4, [r2]\n" + "_080EDF04:\n" + "\tadds r0, r5, 0x1\n" + "\tlsls r0, 24\n" + "\tlsrs r5, r0, 24\n" + "_080EDF0A:\n" + "\tlsls r0, r3, 24\n" + "\tlsrs r3, r0, 24\n" + "\tcmp r3, 0xF\n" + "\tbls _080EDEBE\n" + "\tcmp r5, 0x4\n" + "\tbls _080EDF1E\n" + "\tmovs r0, 0x4\n" + "\tmov r1, r8\n" + "\tstrb r0, [r1, 0x3]\n" + "\tb _080EDF22\n" + "_080EDF1E:\n" + "\tmov r0, r8\n" + "\tstrb r5, [r0, 0x3]\n" + "_080EDF22:\n" + "\tmov r1, r8\n" + "\tldrb r0, [r1, 0x3]\n" + "\tcmp r0, 0\n" + "\tbeq _080EDFA4\n" + "\tcmp r0, 0x1\n" + "\tbne _080EDF34\n" + "\tldrb r0, [r6]\n" + "\tstrb r0, [r1, 0x4]\n" + "\tb _080EDFA4\n" + "_080EDF34:\n" + "\tmovs r6, 0\n" + "\tadds r7, r5, 0\n" + "\tmuls r7, r5\n" + "\tcmp r6, r7\n" + "\tbge _080EDF7E\n" + "\tldr r0, =sTV_DecorationsBuffer\n" + "\tmov r9, r0\n" + "_080EDF42:\n" + "\tbl Random\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 16\n" + "\tadds r1, r5, 0\n" + "\tbl __modsi3\n" + "\tlsls r0, 24\n" + "\tlsrs r4, r0, 24\n" + "\tbl Random\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 16\n" + "\tadds r1, r5, 0\n" + "\tbl __modsi3\n" + "\tlsls r0, 24\n" + "\tlsrs r1, r0, 24\n" + "\tmov r0, r9\n" + "\tadds r2, r4, r0\n" + "\tldrb r3, [r2]\n" + "\tadd r1, r9\n" + "\tldrb r0, [r1]\n" + "\tstrb r0, [r2]\n" + "\tstrb r3, [r1]\n" + "\tadds r0, r6, 0x1\n" + "\tlsls r0, 16\n" + "\tlsrs r6, r0, 16\n" + "\tcmp r6, r7\n" + "\tblt _080EDF42\n" + "_080EDF7E:\n" + "\tmovs r3, 0\n" + "\tmov r1, r8\n" + "\tldrb r1, [r1, 0x3]\n" + "\tcmp r3, r1\n" + "\tbcs _080EDFA4\n" + "\tmov r2, r8\n" + "\tadds r2, 0x4\n" + "\tldr r4, =sTV_DecorationsBuffer\n" + "_080EDF8E:\n" + "\tadds r1, r2, r3\n" + "\tadds r0, r3, r4\n" + "\tldrb r0, [r0]\n" + "\tstrb r0, [r1]\n" + "\tadds r0, r3, 0x1\n" + "\tlsls r0, 24\n" + "\tlsrs r3, r0, 24\n" + "\tmov r0, r8\n" + "\tldrb r0, [r0, 0x3]\n" + "\tcmp r3, r0\n" + "\tbcc _080EDF8E\n" + "_080EDFA4:\n" + "\tpop {r3,r4}\n" + "\tmov r8, r3\n" + "\tmov r9, r4\n" + "\tpop {r4-r7}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.pool"); +} +#endif + +void sub_80EDFB4(TVShow *show) +{ + u8 i; + u16 move; + u16 j; + u8 nMoves; + u8 nPokemon; + u16 sum; + + for (i = 0, nPokemon = 0; i < PARTY_SIZE; i ++) + { + if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES) != SPECIES_NONE && !GetMonData(&gPlayerParty[i], MON_DATA_IS_EGG)) + { + sTV_SecretBaseVisitMonsTemp[nPokemon].level = GetMonData(&gPlayerParty[i], MON_DATA_LEVEL); + sTV_SecretBaseVisitMonsTemp[nPokemon].species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES); + nMoves = 0; + move = GetMonData(&gPlayerParty[i], MON_DATA_MOVE1); + if (move != MOVE_NONE) + { + sTV_SecretBaseVisitMovesTemp[nMoves] = move; + nMoves ++; + } + move = GetMonData(&gPlayerParty[i], MON_DATA_MOVE2); + if (move != MOVE_NONE) + { + sTV_SecretBaseVisitMovesTemp[nMoves] = move; + nMoves ++; + } + move = GetMonData(&gPlayerParty[i], MON_DATA_MOVE3); + if (move != MOVE_NONE) + { + sTV_SecretBaseVisitMovesTemp[nMoves] = move; + nMoves ++; + } + move = GetMonData(&gPlayerParty[i], MON_DATA_MOVE4); + if (move != MOVE_NONE) + { + sTV_SecretBaseVisitMovesTemp[nMoves] = move; + nMoves ++; + } + sTV_SecretBaseVisitMonsTemp[nPokemon].move = sTV_SecretBaseVisitMovesTemp[Random() % nMoves]; + nPokemon ++; + } + } + for (i = 0, sum = 0; i < nPokemon; i ++) + { + sum += sTV_SecretBaseVisitMonsTemp[i].level; + } + show->secretBaseVisit.avgLevel = sum / nPokemon; + j = Random() % nPokemon; + show->secretBaseVisit.species = sTV_SecretBaseVisitMonsTemp[j].species; + show->secretBaseVisit.move = sTV_SecretBaseVisitMonsTemp[j].move; +} + +void sub_80EE104(void) +{ + TVShow *show; + + HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_SECRET_BASE_VISIT, TRUE); + sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1) + { + show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + show->secretBaseVisit.kind = TVSHOW_SECRET_BASE_VISIT; + show->secretBaseVisit.active = FALSE; + StringCopy(show->secretBaseVisit.playerName, gSaveBlock2Ptr->playerName); + sub_80EDE98(show); + sub_80EDFB4(show); + tv_store_id_3x(show); + show->secretBaseVisit.language = gGameLanguage; + } +} + +void sub_80EE184(void) +{ + TVShow *show; + u8 i; + u16 balls; + + sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_BREAKING_NEWS, FALSE) != TRUE) + { + show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + show->breakingNews.kind = TVSHOW_BREAKING_NEWS; + show->breakingNews.active = FALSE; + balls = 0; + for (i = 0; i < 11; i ++) + { + balls += gBattleResults.catchAttempts[i]; + } + if (gBattleResults.usedMasterBall) + { + balls ++; + } + show->breakingNews.location = gMapHeader.regionMapSectionId; + StringCopy(show->breakingNews.playerName, gSaveBlock2Ptr->playerName); + show->breakingNews.poke1Species = gBattleResults.playerMon1Species; + switch (gBattleOutcome) + { + case BATTLE_LOST: + case BATTLE_DREW: + show->breakingNews.kind = TVSHOW_OFF_AIR; + return; + case BATTLE_CAUGHT: + show->breakingNews.outcome = 0; + break; + case BATTLE_WON: + show->breakingNews.outcome = 1; + break; + case BATTLE_RAN: + case BATTLE_PLAYER_TELEPORTED: + case BATTLE_SAFARI_OUT_OF_BALLS: + show->breakingNews.outcome = 2; + break; + case BATTLE_POKE_FLED: + case BATTLE_OPPONENT_TELEPORTED: + show->breakingNews.outcome = 3; + break; + } + show->breakingNews.lastOpponentSpecies = gBattleResults.lastOpponentSpecies; + switch (show->breakingNews.outcome) + { + case 0: + if (gBattleResults.usedMasterBall) + { + show->breakingNews.caughtMonBall = ITEM_MASTER_BALL; + } + else + { + show->breakingNews.caughtMonBall = gBattleResults.caughtMonBall; + } + show->breakingNews.balls = balls; + break; + case 1: + show->breakingNews.lastUsedMove = gBattleResults.lastUsedMovePlayer; + break; + case 2: + break; + case 3: + break; + } + tv_store_id_3x(show); + show->breakingNews.language = gGameLanguage; + } +} + +void sub_80EE2CC(void) +{ + TVShow *show; + + sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_LOTTO_WINNER, FALSE) != TRUE) + { + show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + show->lottoWinner.kind = TVSHOW_LOTTO_WINNER; + show->lottoWinner.active = FALSE; + StringCopy(show->lottoWinner.playerName, gSaveBlock2Ptr->playerName); + show->lottoWinner.whichPrize = 4 - gSpecialVar_0x8004; + show->lottoWinner.item = gSpecialVar_0x8005; + tv_store_id_3x(show); + show->lottoWinner.language = gGameLanguage; + } +} + +void sub_80EE35C(u16 foeSpecies, u16 species, u8 moveIdx, const u16 *movePtr, u16 betterMove) +{ + TVShow *show; + u8 i; + u8 j; + + sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_BATTLE_SEMINAR, FALSE) != TRUE) + { + show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + show->battleSeminar.kind = TVSHOW_BATTLE_SEMINAR; + show->battleSeminar.active = FALSE; + StringCopy(show->battleSeminar.playerName, gSaveBlock2Ptr->playerName); + show->battleSeminar.foeSpecies = foeSpecies; + show->battleSeminar.species = species; + show->battleSeminar.move = movePtr[moveIdx]; + for (i = 0, j = 0; i < 4; i ++) + { + if (i != moveIdx && movePtr[i]) + { + show->battleSeminar.otherMoves[j] = movePtr[i]; + j ++; + } + } + show->battleSeminar.nOtherMoves = j; + show->battleSeminar.betterMove = betterMove; + tv_store_id_3x(show); + show->battleSeminar.language = gGameLanguage; + } +} + +void sub_80EE44C(u8 nMonsCaught, u8 nPkblkUsed) +{ + TVShow *show; + + sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_SAFARI_FAN_CLUB, FALSE) != TRUE) + { + show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + show->safariFanClub.kind = TVSHOW_SAFARI_FAN_CLUB; + show->safariFanClub.active = FALSE; + StringCopy(show->safariFanClub.playerName, gSaveBlock2Ptr->playerName); + show->safariFanClub.nMonsCaught = nMonsCaught; + show->safariFanClub.nPkblkUsed = nPkblkUsed; + tv_store_id_3x(show); + show->safariFanClub.language = gGameLanguage; + } +} + +void sub_80EE4DC(struct Pokemon *pokemon, u8 ribbonMonDataIdx) +{ + TVShow *show; + + sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_CUTIES, FALSE) != TRUE) + { + show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + show->cuties.kind = TVSHOW_CUTIES; + show->cuties.active = FALSE; + StringCopy(show->cuties.playerName, gSaveBlock2Ptr->playerName); + GetMonData(pokemon, MON_DATA_NICKNAME, show->cuties.nickname); + StripExtCtrlCodes(show->cuties.nickname); + show->cuties.nRibbons = GetRibbonCount(pokemon); + show->cuties.selectedRibbon = TV_MonDataIdxToRibbon(ribbonMonDataIdx); + tv_store_id_3x(show); + show->cuties.language = gGameLanguage; + if (show->cuties.language == LANGUAGE_JAPANESE || GetMonData(pokemon, MON_DATA_LANGUAGE) == LANGUAGE_JAPANESE) + { + show->cuties.pokemonNameLanguage = LANGUAGE_JAPANESE; + } + else + { + show->cuties.pokemonNameLanguage = GetMonData(pokemon, MON_DATA_LANGUAGE); + } + } +} + +u8 GetRibbonCount(struct Pokemon *pokemon) +{ + u8 nRibbons; + + nRibbons = 0; + nRibbons += GetMonData(pokemon, MON_DATA_COOL_RIBBON); + nRibbons += GetMonData(pokemon, MON_DATA_BEAUTY_RIBBON); + nRibbons += GetMonData(pokemon, MON_DATA_CUTE_RIBBON); + nRibbons += GetMonData(pokemon, MON_DATA_SMART_RIBBON); + nRibbons += GetMonData(pokemon, MON_DATA_TOUGH_RIBBON); + nRibbons += GetMonData(pokemon, MON_DATA_CHAMPION_RIBBON); + nRibbons += GetMonData(pokemon, MON_DATA_WINNING_RIBBON); + nRibbons += GetMonData(pokemon, MON_DATA_VICTORY_RIBBON); + nRibbons += GetMonData(pokemon, MON_DATA_ARTIST_RIBBON); + nRibbons += GetMonData(pokemon, MON_DATA_EFFORT_RIBBON); + nRibbons += GetMonData(pokemon, MON_DATA_GIFT_RIBBON_1); + nRibbons += GetMonData(pokemon, MON_DATA_GIFT_RIBBON_2); + nRibbons += GetMonData(pokemon, MON_DATA_GIFT_RIBBON_3); + nRibbons += GetMonData(pokemon, MON_DATA_GIFT_RIBBON_4); + nRibbons += GetMonData(pokemon, MON_DATA_GIFT_RIBBON_5); + nRibbons += GetMonData(pokemon, MON_DATA_GIFT_RIBBON_6); + nRibbons += GetMonData(pokemon, MON_DATA_GIFT_RIBBON_7); + return nRibbons; +} + +u8 TV_MonDataIdxToRibbon(u8 monDataIdx) +{ + if (monDataIdx == MON_DATA_CHAMPION_RIBBON) return 0; + if (monDataIdx == MON_DATA_COOL_RIBBON) return 1; + if (monDataIdx == MON_DATA_BEAUTY_RIBBON) return 5; + if (monDataIdx == MON_DATA_CUTE_RIBBON) return 9; + if (monDataIdx == MON_DATA_SMART_RIBBON) return 13; + if (monDataIdx == MON_DATA_TOUGH_RIBBON) return 17; + if (monDataIdx == MON_DATA_WINNING_RIBBON) return 21; + if (monDataIdx == MON_DATA_VICTORY_RIBBON) return 22; + if (monDataIdx == MON_DATA_ARTIST_RIBBON) return 23; + if (monDataIdx == MON_DATA_EFFORT_RIBBON) return 24; + if (monDataIdx == MON_DATA_GIFT_RIBBON_1) return 25; + if (monDataIdx == MON_DATA_GIFT_RIBBON_2) return 26; + if (monDataIdx == MON_DATA_GIFT_RIBBON_3) return 27; + if (monDataIdx == MON_DATA_GIFT_RIBBON_4) return 28; + if (monDataIdx == MON_DATA_GIFT_RIBBON_5) return 29; + if (monDataIdx == MON_DATA_GIFT_RIBBON_6) return 30; + if (monDataIdx == MON_DATA_GIFT_RIBBON_7) return 31; + return 0; +} + +void sub_80EE72C(void) +{ + TVShow *show; + + sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1 && HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_TRAINER_FAN_CLUB, FALSE) != TRUE) + { + show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + show->trainerFanClub.kind = TVSHOW_TRAINER_FAN_CLUB; + show->trainerFanClub.active = FALSE; + StringCopy(show->trainerFanClub.playerName, gSaveBlock2Ptr->playerName); + show->trainerFanClub.words[0] = gSaveBlock1Ptr->unk2BB0[0]; + show->trainerFanClub.words[1] = gSaveBlock1Ptr->unk2BB0[1]; + tv_store_id_3x(show); + show->trainerFanClub.language = gGameLanguage; + } +} + +bool8 sub_80EE7C0(void) +{ + sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot == -1) + { + return TRUE; + } + FindActiveBroadcastByShowType_SetScriptResult(TVSHOW_FAN_CLUB_SPECIAL); + if (gScriptResult == TRUE) + { + return TRUE; + } + if (gSaveBlock1Ptr->linkBattleRecords[0].name[0] == EOS) + { + return TRUE; + } + return FALSE; +} + +bool8 sub_80EE818(void) +{ + u32 playerId; + u8 showIdx; + TVShow *shows; + + if (HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_FRONTIER, FALSE) == TRUE) + { + shows = gSaveBlock1Ptr->tvShows; + playerId = GetPlayerIDAsU32(); + for (showIdx = 5; showIdx < 24; showIdx ++) + { + if (shows[showIdx].common.kind == TVSHOW_FRONTIER && (playerId & 0xFF) == shows[showIdx].common.trainerIdLo && ((playerId >> 8) & 0xFF) == shows[showIdx].common.trainerIdHi) + { + DeleteTVShowInArrayByIdx(gSaveBlock1Ptr->tvShows, showIdx); + sub_80EF93C(gSaveBlock1Ptr->tvShows); + return TRUE; + } + } + } + sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot == -1) + { + return FALSE; + } + return TRUE; +} + +void sub_80EE8C8(u16 winStreak, u8 facility) +{ + TVShow *show; + + sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1) + { + show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + show->frontier.kind = TVSHOW_FRONTIER; + show->frontier.active = FALSE; + StringCopy(show->frontier.playerName, gSaveBlock2Ptr->playerName); + show->frontier.winStreak = winStreak; + show->frontier.facility = facility; + switch (facility) + { + case 1: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + show->frontier.species1 = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES, NULL); + show->frontier.species2 = GetMonData(&gPlayerParty[1], MON_DATA_SPECIES, NULL); + show->frontier.species3 = GetMonData(&gPlayerParty[2], MON_DATA_SPECIES, NULL); + break; + case 2: + show->frontier.species1 = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES, NULL); + show->frontier.species2 = GetMonData(&gPlayerParty[1], MON_DATA_SPECIES, NULL); + show->frontier.species3 = GetMonData(&gPlayerParty[2], MON_DATA_SPECIES, NULL); + show->frontier.species4 = GetMonData(&gPlayerParty[3], MON_DATA_SPECIES, NULL); + break; + case 3: + show->frontier.species1 = GetMonData(&gPlayerParty[0], MON_DATA_SPECIES, NULL); + show->frontier.species2 = GetMonData(&gPlayerParty[1], MON_DATA_SPECIES, NULL); + break; + case 4: + show->frontier.species1 = GetMonData(&gSaveBlock1Ptr->playerParty[gSaveBlock2Ptr->field_CAA[0] - 1], MON_DATA_SPECIES, NULL); + show->frontier.species2 = GetMonData(&gSaveBlock1Ptr->playerParty[gSaveBlock2Ptr->field_CAA[1] - 1], MON_DATA_SPECIES, NULL); + break; + } + tv_store_id_3x(show); + show->frontier.language = gGameLanguage; + } +} + +void sub_80EEA70(void) +{ + TVShow *show; + u8 strbuf[32]; + + if (HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_SECRET_BASE_SECRETS, FALSE) != TRUE) + { + sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1) + { + show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + show->secretBaseSecrets.kind = TVSHOW_SECRET_BASE_SECRETS; + show->secretBaseSecrets.active = FALSE; + StringCopy(show->secretBaseSecrets.playerName, gSaveBlock2Ptr->playerName); + show->secretBaseSecrets.stepsInBase = VarGet(0x40ec); + sub_80E980C(); + StringCopy(strbuf, gStringVar1); + StripExtCtrlCodes(strbuf); + StringCopy(show->secretBaseSecrets.baseOwnersName, strbuf); + show->secretBaseSecrets.item = VarGet(0x40ed); + show->secretBaseSecrets.flags = VarGet(0x40ee) + (VarGet(0x40ef) << 16); + tv_store_id_3x(show); + show->secretBaseSecrets.language = gGameLanguage; + if (show->secretBaseSecrets.language == LANGUAGE_JAPANESE || gSaveBlock1Ptr->secretBases[VarGet(VAR_0x4054)].language == LANGUAGE_JAPANESE) + { + show->secretBaseSecrets.baseOwnersNameLanguage = LANGUAGE_JAPANESE; + } + else + { + show->secretBaseSecrets.baseOwnersNameLanguage = gSaveBlock1Ptr->secretBases[VarGet(VAR_0x4054)].language; + } + } + } +} + +void sub_80EEB98(u16 days) +{ + u8 i; + + for (i = 0; i < ARRAY_COUNT(sNumberOneVarsAndThresholds); i ++) + { + if (VarGet(sNumberOneVarsAndThresholds[i][0]) >= sNumberOneVarsAndThresholds[i][1]) + { + sub_80EEBF4(i); + break; + } + } + for (i = 0; i < ARRAY_COUNT(sNumberOneVarsAndThresholds); i ++) + { + VarSet(sNumberOneVarsAndThresholds[i][0], 0); + } +} + +void sub_80EEBF4(u8 actionIdx) +{ + TVShow *show; + + HasMixableShowAlreadyBeenSpawnedWithPlayerID(TVSHOW_NUMBER_ONE, TRUE); + sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + if (sCurTVShowSlot != -1) + { + show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot]; + show->numberOne.kind = TVSHOW_NUMBER_ONE; + show->numberOne.active = FALSE; + StringCopy(show->numberOne.playerName, gSaveBlock2Ptr->playerName); + show->numberOne.actionIdx = actionIdx; + show->numberOne.count = VarGet(sNumberOneVarsAndThresholds[actionIdx][0]); + tv_store_id_3x(show); + show->numberOne.language = gGameLanguage; + } +} + +void sub_80EEC80(void) +{ + VarSet(VAR_DAILY_SLOTS, VarGet(VAR_DAILY_SLOTS) + 1); +} + +void sub_80EECA4(void) +{ + VarSet(VAR_DAILY_ROULETTE, VarGet(VAR_DAILY_ROULETTE) + 1); +} + +void sub_80EECC8(void) +{ + VarSet(VAR_DAILY_WILDS, VarGet(VAR_DAILY_WILDS) + 1); +} + +void sub_80EECEC(void) +{ + VarSet(VAR_DAILY_BLENDER, VarGet(VAR_DAILY_BLENDER) + 1); +} + +void sub_80EED10(void) +{ + VarSet(VAR_DAILY_PLANTED_BERRIES, VarGet(VAR_DAILY_PLANTED_BERRIES) + 1); +} + +void sub_80EED34(void) +{ + VarSet(VAR_DAILY_PICKED_BERRIES, VarGet(VAR_DAILY_PICKED_BERRIES) + gSpecialVar_0x8006); +} + +void sub_80EED60(u16 delta) +{ + VarSet(VAR_DAILY_BP, VarGet(VAR_DAILY_BP) + delta); +} + +// PokeNews + +void sub_80EED88(void) +{ + u8 newsKind; + + if (FlagGet(SYS_GAME_CLEAR)) + { + sCurTVShowSlot = sub_80EEE30(gSaveBlock1Ptr->pokeNews); + if (sCurTVShowSlot != -1 && rbernoulli(1, 100) != TRUE) + { + newsKind = (Random() % 4) + POKENEWS_SLATEPORT; + if (sub_80EF0E4(newsKind) != TRUE) + { + gSaveBlock1Ptr->pokeNews[sCurTVShowSlot].kind = newsKind; + gSaveBlock1Ptr->pokeNews[sCurTVShowSlot].days = 4; + gSaveBlock1Ptr->pokeNews[sCurTVShowSlot].state = TRUE; + } + } + } +} + +s8 sub_80EEE30(PokeNews *pokeNews) +{ + s8 i; + + for (i = 0; i < 16; i ++) + { + if (pokeNews[i].kind == 0) + { + return i; + } + } + return -1; +} + +void ClearPokemonNews(void) +{ + u8 i; + + for (i = 0; i < 16; i ++) + { + ClearPokemonNewsI(i); + } +} + +void ClearPokemonNewsI(u8 i) +{ + gSaveBlock1Ptr->pokeNews[i].kind = POKENEWS_NONE; + gSaveBlock1Ptr->pokeNews[i].state = FALSE; + gSaveBlock1Ptr->pokeNews[i].days = 0; +} + +void sub_80EEEB8(void) +{ + u8 i; + u8 j; + + for (i = 0; i < 15; i ++) + { + if (gSaveBlock1Ptr->pokeNews[i].kind == POKENEWS_NONE) + { + for (j = i + 1; j < 16; j ++) + { + if (gSaveBlock1Ptr->pokeNews[j].kind != POKENEWS_NONE) + { + gSaveBlock1Ptr->pokeNews[i] = gSaveBlock1Ptr->pokeNews[j]; + ClearPokemonNewsI(j); + break; + } + } + } + } +} + +u8 FindAnyTVNewsOnTheAir(void) +{ + u8 i; + + for (i = 0; i < 16; i ++) + { + if (gSaveBlock1Ptr->pokeNews[i].kind != POKENEWS_NONE && gSaveBlock1Ptr->pokeNews[i].state == TRUE && gSaveBlock1Ptr->pokeNews[i].days < 3) + { + return i; + } + } + return -1; +} + +void DoPokeNews(void) +{ + u8 i; + u16 n; + + i = FindAnyTVNewsOnTheAir(); + if (i == 0xFF) + { + gScriptResult = FALSE; + } + else + { + if (gSaveBlock1Ptr->pokeNews[i].days == 0) + { + gSaveBlock1Ptr->pokeNews[i].state = 2; + if (gLocalTime.hours < 20) + { + ShowFieldMessage(sPokeNewsTextGroup_Ongoing[gSaveBlock1Ptr->pokeNews[i].kind]); + } + else + { + ShowFieldMessage(sPokeNewsTextGroup_Ending[gSaveBlock1Ptr->pokeNews[i].kind]); + } + } + else + { + n = gSaveBlock1Ptr->pokeNews[i].days; + ConvertIntToDecimalStringN(gStringVar1, n, STR_CONV_MODE_LEFT_ALIGN, 1); + gSaveBlock1Ptr->pokeNews[i].state = 0; + ShowFieldMessage(sPokeNewsTextGroup_Upcoming[gSaveBlock1Ptr->pokeNews[i].kind]); + } + gScriptResult = TRUE; + } +} + +bool8 GetPriceReduction(u8 newsKind) +{ + u8 i; + + if (newsKind == 0) + { + return FALSE; + } + for (i = 0; i < 16; i ++) + { + if (gSaveBlock1Ptr->pokeNews[i].kind == newsKind) + { + if (gSaveBlock1Ptr->pokeNews[i].state == 2 && IsPriceDiscounted(newsKind)) + { + return TRUE; + } + return FALSE; + } + } + return FALSE; +} + +bool8 IsPriceDiscounted(u8 newsKind) +{ + switch (newsKind) + { + case POKENEWS_SLATEPORT: + if (gSaveBlock1Ptr->location.mapGroup == MAP_GROUP_SLATEPORT_CITY && gSaveBlock1Ptr->location.mapNum == MAP_ID_SLATEPORT_CITY && gScriptLastTalked == 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) + { + return TRUE; + } + return FALSE; + } + return TRUE; +} + +bool8 sub_80EF0E4(u8 newsKind) +{ + u8 i; + if (newsKind == POKENEWS_NONE) + { + return TRUE; + } + for (i = 0; i < 16; i ++) + { + if (gSaveBlock1Ptr->pokeNews[i].kind == newsKind) + { + return TRUE; + } + } + return FALSE; +} + +void sub_80EF120(u16 days) +{ + u8 i; + + for (i = 0; i < 16; i ++) + { + if (gSaveBlock1Ptr->pokeNews[i].kind != POKENEWS_NONE) + { + if (gSaveBlock1Ptr->pokeNews[i].days < days) + { + ClearPokemonNewsI(i); + } + else + { + if (gSaveBlock1Ptr->pokeNews[i].state == 0 && FlagGet(SYS_GAME_CLEAR) == TRUE) + { + gSaveBlock1Ptr->pokeNews[i].state = 1; + } + gSaveBlock1Ptr->pokeNews[i].days -= days; + } + } + } + sub_80EEEB8(); +} + +void CopyContestRankToStringVar(u8 varIdx, u8 rank) +{ + switch (rank) + { + case 0: // NORMAL + StringCopy(gTVStringVarPtrs[varIdx], gUnknown_0858BAF0[5]); + break; + case 1: // SUPER + StringCopy(gTVStringVarPtrs[varIdx], gUnknown_0858BAF0[6]); + break; + case 2: // HYPER + StringCopy(gTVStringVarPtrs[varIdx], gUnknown_0858BAF0[7]); + break; + case 3: // MASTER + StringCopy(gTVStringVarPtrs[varIdx], gUnknown_0858BAF0[8]); + break; + } +} + +void CopyContestCategoryToStringVar(u8 varIdx, u8 category) +{ + switch (category) + { + case 0: // COOL + StringCopy(gTVStringVarPtrs[varIdx], gUnknown_0858BAF0[0]); + break; + case 1: // BEAUTY + StringCopy(gTVStringVarPtrs[varIdx], gUnknown_0858BAF0[1]); + break; + case 2: // CUTE + StringCopy(gTVStringVarPtrs[varIdx], gUnknown_0858BAF0[2]); + break; + case 3: // SMART + StringCopy(gTVStringVarPtrs[varIdx], gUnknown_0858BAF0[3]); + break; + case 4: // TOUGH + StringCopy(gTVStringVarPtrs[varIdx], gUnknown_0858BAF0[4]); + break; + } +} + +void SetContestCategoryStringVarForInterview(void) +{ + TVShow *show; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + CopyContestCategoryToStringVar(1, show->bravoTrainer.contestCategory); +} + +void TV_PrintIntToStringVar(u8 varIdx, int value) +{ + int nDigits; + + nDigits = sub_80EF370(value); + ConvertIntToDecimalStringN(gTVStringVarPtrs[varIdx], value, STR_CONV_MODE_LEFT_ALIGN, nDigits); +} + +int sub_80EF370(int value) +{ + if (value / 10 == 0) + { + return 1; + } + if (value / 100 == 0) + { + return 2; + } + if (value / 1000 == 0) + { + return 3; + } + if (value / 10000 == 0) + { + return 4; + } + if (value / 100000 == 0) + { + return 5; + } + if (value / 1000000 == 0) + { + return 6; + } + if (value / 10000000 == 0) + { + return 7; + } + if (value / 100000000 == 0) + { + return 8; + } + return 1; +} + +void sub_80EF40C(u8 varIdx, TVShow *show) +{ + u8 i; + int price; + + price = 0; + for (i = 0; i < 3; i ++) + { + if (show->smartshopperShow.itemIds[i] != ITEM_NONE) + { + price += itemid_get_market_price(show->smartshopperShow.itemIds[i]) * show->smartshopperShow.itemAmounts[i]; + } + } + if (show->smartshopperShow.priceReduced == TRUE) + { + TV_PrintIntToStringVar(varIdx, price >> 1); + } + else + { + TV_PrintIntToStringVar(varIdx, price); + } +} + +bool8 HasMixableShowAlreadyBeenSpawnedWithPlayerID(u8 kind, bool8 flag) +{ + u32 playerId; + TVShow *shows; + u8 i; + + shows = gSaveBlock1Ptr->tvShows; + playerId = GetPlayerIDAsU32(); + for (i = 5; i < 24; i ++) + { + if (shows[i].common.kind == kind && (playerId & 0xFF) == shows[i].common.trainerIdLo && ((playerId >> 8) & 0xFF) == shows[i].common.trainerIdHi) + { + if (flag == TRUE) + { + DeleteTVShowInArrayByIdx(gSaveBlock1Ptr->tvShows, i); + sub_80EF93C(gSaveBlock1Ptr->tvShows); + } + return TRUE; + } + } + return FALSE; +} + +void TV_SortPurchasesByQuantity(void) +{ + u8 i; + u8 j; + u16 tmpId; + u16 tmpQn; + + for (i = 0; i < 2; i ++) + { + for (j = i + 1; j < 3; j ++) + { + if (gUnknown_02039F80[i].quantity < gUnknown_02039F80[j].quantity) + { + tmpId = gUnknown_02039F80[i].itemId; + tmpQn = gUnknown_02039F80[i].quantity; + gUnknown_02039F80[i].itemId = gUnknown_02039F80[j].itemId; + gUnknown_02039F80[i].quantity = gUnknown_02039F80[j].quantity; + gUnknown_02039F80[j].itemId = tmpId; + gUnknown_02039F80[j].quantity = tmpQn; + } + } + } +} + +void FindActiveBroadcastByShowType_SetScriptResult(u8 kind) +{ + u8 i; + for (i = 0; i < 5; i ++) + { + if (gSaveBlock1Ptr->tvShows[i].common.kind == kind) + { + if (gSaveBlock1Ptr->tvShows[i].common.active == TRUE) + { + gScriptResult = TRUE; + } + else + { + DeleteTVShowInArrayByIdx(gSaveBlock1Ptr->tvShows, i); + sub_80EF93C(gSaveBlock1Ptr->tvShows); + sub_80EFA88(); + } + return; + } + } + sub_80EFA88(); +} + +void InterviewBefore(void) +{ + gScriptResult = FALSE; + switch (gSpecialVar_0x8005) + { + case TVSHOW_FAN_CLUB_LETTER: + InterviewBefore_FanClubLetter(); + break; + case TVSHOW_RECENT_HAPPENINGS: + InterviewBefore_RecentHappenings(); + break; + case TVSHOW_PKMN_FAN_CLUB_OPINIONS: + InterviewBefore_PkmnFanClubOpinions(); + break; + case TVSHOW_UNKN_SHOWTYPE_04: + InterviewBefore_Dummy(); + break; + case TVSHOW_NAME_RATER_SHOW: + InterviewBefore_NameRater(); + break; + case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE: + InterviewBefore_BravoTrainerPkmnProfile(); + break; + case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE: + InterviewBefore_BravoTrainerBTProfile(); + break; + case TVSHOW_CONTEST_LIVE_UPDATES: + InterviewBefore_ContestLiveUpdates(); + break; + case TVSHOW_3_CHEERS_FOR_POKEBLOCKS: + InterviewBefore_3CheersForPokeblocks(); + break; + case TVSHOW_FAN_CLUB_SPECIAL: + InterviewBefore_FanClubSpecial(); + break; + } +} + +void InterviewBefore_FanClubLetter(void) +{ + FindActiveBroadcastByShowType_SetScriptResult(TVSHOW_FAN_CLUB_LETTER); + if (!gScriptResult) + { + StringCopy(gStringVar1, gSpeciesNames[GetMonData(&gPlayerParty[GetIdxOfFirstPartyMemberThatIsNotAnEgg()], MON_DATA_SPECIES, NULL)]); + InitializeEasyChatWordArray(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].fanclubLetter.words, 6); + } +} + +void InterviewBefore_RecentHappenings(void) +{ + FindActiveBroadcastByShowType_SetScriptResult(TVSHOW_RECENT_HAPPENINGS); + if (!gScriptResult) + { + InitializeEasyChatWordArray(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].recentHappenings.words, 6); + } +} + +void InterviewBefore_PkmnFanClubOpinions(void) +{ + FindActiveBroadcastByShowType_SetScriptResult(TVSHOW_PKMN_FAN_CLUB_OPINIONS); + if (!gScriptResult) + { + StringCopy(gStringVar1, gSpeciesNames[GetMonData(&gPlayerParty[GetIdxOfFirstPartyMemberThatIsNotAnEgg()], MON_DATA_SPECIES, NULL)]); + GetMonData(&gPlayerParty[GetIdxOfFirstPartyMemberThatIsNotAnEgg()], MON_DATA_NICKNAME, gStringVar2); + StringGetEnd10(gStringVar2); + InitializeEasyChatWordArray(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].fanclubOpinions.words, 2); + } +} + +void InterviewBefore_Dummy(void) +{ + gScriptResult = TRUE; +} + +void InterviewBefore_NameRater(void) +{ + FindActiveBroadcastByShowType_SetScriptResult(TVSHOW_NAME_RATER_SHOW); +} + +void InterviewBefore_BravoTrainerPkmnProfile(void) +{ + FindActiveBroadcastByShowType_SetScriptResult(TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE); + if (!gScriptResult) + { + InitializeEasyChatWordArray(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].bravoTrainer.words, 2); + } +} + +void InterviewBefore_ContestLiveUpdates(void) +{ + FindActiveBroadcastByShowType_SetScriptResult(TVSHOW_CONTEST_LIVE_UPDATES); +} + +void InterviewBefore_3CheersForPokeblocks(void) +{ + FindActiveBroadcastByShowType_SetScriptResult(TVSHOW_3_CHEERS_FOR_POKEBLOCKS); +} + +void InterviewBefore_BravoTrainerBTProfile(void) +{ + FindActiveBroadcastByShowType_SetScriptResult(TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE); + if (!gScriptResult) + { + InitializeEasyChatWordArray(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].bravoTrainerTower.words, 1); + } +} + +void InterviewBefore_FanClubSpecial(void) +{ + FindActiveBroadcastByShowType_SetScriptResult(TVSHOW_FAN_CLUB_SPECIAL); + if (!gScriptResult) + { + InitializeEasyChatWordArray(gSaveBlock1Ptr->tvShows[sCurTVShowSlot].fanClubSpecial.words, 1); + } +} + +bool8 sub_80EF88C(u8 monIdx) +{ + struct Pokemon *pokemon; + u8 language; + + pokemon = &gPlayerParty[monIdx]; + GetMonData(pokemon, MON_DATA_NICKNAME, gStringVar1); + language = GetMonData(pokemon, MON_DATA_LANGUAGE, &language); + if (language == LANGUAGE_ENGLISH && !StringCompare(gSpeciesNames[GetMonData(pokemon, MON_DATA_SPECIES, NULL)], gStringVar1)) + { + return FALSE; + } + return TRUE; +} + +bool8 sub_80EF8F8(void) +{ + return sub_80EF88C(GetIdxOfFirstPartyMemberThatIsNotAnEgg()); +} + +void DeleteTVShowInArrayByIdx(TVShow *shows, u8 idx) +{ + u8 i; + + shows[idx].common.kind = TVSHOW_OFF_AIR; + shows[idx].common.active = FALSE; + for (i = 0; i < 34; i ++) + { + shows[idx].common.pad02[i] = 0; + } +} + +void sub_80EF93C(TVShow *shows) +{ + u8 i; + u8 j; + + for (i = 0; i < 4; i ++) + { + if (shows[i].common.kind == TVSHOW_OFF_AIR) + { + for (j = i + 1; j < 5; j ++) + { + if (shows[j].common.kind != TVSHOW_OFF_AIR) + { + shows[i] = shows[j]; + DeleteTVShowInArrayByIdx(shows, j); + break; + } + } + } + } + for (i = 5; i < 24; i ++) + { + if (shows[i].common.kind == TVSHOW_OFF_AIR) + { + for (j = i + 1; j < 24; j ++) + { + if (shows[j].common.kind != TVSHOW_OFF_AIR) + { + shows[i] = shows[j]; + DeleteTVShowInArrayByIdx(shows, j); + break; + } + } + } + } +} + +u16 TV_GetSomeOtherSpeciesAlreadySeenByPlayer_AndPrintName(u8 varIdx, u16 passedSpecies) +{ + u16 species; + + species = TV_GetSomeOtherSpeciesAlreadySeenByPlayer(passedSpecies); + StringCopy(gTVStringVarPtrs[varIdx], gSpeciesNames[species]); + return species; +} + +u16 TV_GetSomeOtherSpeciesAlreadySeenByPlayer(u16 passedSpecies) +{ + u16 species; + u16 initSpecies; + + species = (Random() % (NUM_SPECIES - 1)) + 1; + initSpecies = species; + while (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), 0) != 1 || species == passedSpecies) + { + if (species == 1) + { + species = NUM_SPECIES - 1; + } + else + { + species --; + } + if (species == initSpecies) + { + species = passedSpecies; + return species; + } + }; + return species; +} + +void sub_80EFA88(void) +{ + sCurTVShowSlot = FindEmptyTVSlotWithinFirstFiveShowsOfArray(gSaveBlock1Ptr->tvShows); + gSpecialVar_0x8006 = sCurTVShowSlot; + if (sCurTVShowSlot == -1) + { + gScriptResult = TRUE; + } + else + { + gScriptResult = FALSE; + } +} + +s8 FindEmptyTVSlotWithinFirstFiveShowsOfArray(TVShow *shows) +{ + u8 i; + + for (i = 0; i < 5; i ++) + { + if (shows[i].common.kind == TVSHOW_OFF_AIR) + { + return i; + } + } + return -1; +} + +s8 FindEmptyTVSlotBeyondFirstFiveShowsOfArray(TVShow *shows) +{ + s8 i; + + for (i = 5; i < 24; i ++) + { + if (shows[i].common.kind == TVSHOW_OFF_AIR) + { + return i; + } + } + return -1; +} + +bool8 TV_BernoulliTrial(u16 ratio) +{ + if (Random() <= ratio) + { + return FALSE; + } + return TRUE; +} + +void TV_FanClubLetter_RandomWordToStringVar3(TVShow *show) +{ + u8 i; + + i = Random() % 6; + while (TRUE) + { + if (i == 6) + { + i = 0; + } + if (show->fanclubLetter.words[i] != 0xFFFF) + { + break; + } + i ++; + } + CopyEasyChatWord(gStringVar3, show->fanclubLetter.words[i]); +} + +u8 TV_GetNicknameSumMod8(TVShow *show) +{ + u8 i; + u16 ct; + + ct = 0; + for (i = 0; i < 11; i ++) + { + if (show->nameRaterShow.pokemonName[i] == EOS) + { + break; + } + ct += show->nameRaterShow.pokemonName[i]; + } + return ct & 7; +} + +void TV_GetNicknameSubstring(u8 varIdx, u8 whichPosition, u8 charParam, u16 whichString, u16 species, TVShow *show) +{ + u8 buff[16]; + u8 i; + u16 strlen; + + for (i = 0; i < 3; i ++) + { + buff[i] = EOS; + } + if (whichString == 0) + { + strlen = StringLength(show->nameRaterShow.trainerName); + if (charParam == 0) + { + buff[0] = show->nameRaterShow.trainerName[whichPosition]; + } + else if (charParam == 1) + { + buff[0] = show->nameRaterShow.trainerName[strlen - whichPosition]; + } + else if (charParam == 2) + { + buff[0] = show->nameRaterShow.trainerName[whichPosition]; + buff[1] = show->nameRaterShow.trainerName[whichPosition + 1]; + } + else + { + buff[0] = show->nameRaterShow.trainerName[strlen - (whichPosition + 2)]; + buff[1] = show->nameRaterShow.trainerName[strlen - (whichPosition + 1)]; + } + ConvertInternationalString(buff, show->nameRaterShow.language); + } + else if (whichString == 1) + { + strlen = StringLength(show->nameRaterShow.pokemonName); + if (charParam == 0) + { + buff[0] = show->nameRaterShow.pokemonName[whichPosition]; + } + else if (charParam == 1) + { + buff[0] = show->nameRaterShow.pokemonName[strlen - whichPosition]; + } + else if (charParam == 2) + { + buff[0] = show->nameRaterShow.pokemonName[whichPosition]; + buff[1] = show->nameRaterShow.pokemonName[whichPosition + 1]; + } + else + { + buff[0] = show->nameRaterShow.pokemonName[strlen - (whichPosition + 2)]; + buff[1] = show->nameRaterShow.pokemonName[strlen - (whichPosition + 1)]; + } + ConvertInternationalString(buff, show->nameRaterShow.pokemonNameLanguage); + } + else + { + strlen = StringLength(gSpeciesNames[species]); + if (charParam == 0) + { + buff[0] = gSpeciesNames[species][whichPosition]; + } + else if (charParam == 1) + { + buff[0] = gSpeciesNames[species][strlen - whichPosition]; + } + else if (charParam == 2) + { + buff[0] = gSpeciesNames[species][whichPosition]; + buff[1] = gSpeciesNames[species][whichPosition + 1]; + } + else + { + buff[0] = gSpeciesNames[species][strlen - (whichPosition + 2)]; + buff[1] = gSpeciesNames[species][strlen - (whichPosition + 1)]; + } + } + StringCopy(gTVStringVarPtrs[varIdx], buff); +} + +bool8 TV_IsScriptShowKindAlreadyInQueue(void) +{ + u8 i; + + for (i = 0; i < 5; i ++) + { + if (gSaveBlock1Ptr->tvShows[i].common.kind == gSpecialVar_0x8004) + { + return TRUE; + } + } + return FALSE; +} + +bool8 TV_PutNameRaterShowOnTheAirIfNicnkameChanged(void) +{ + GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar1); + if (!StringCompare(gStringVar3, gStringVar1)) + { + return FALSE; + } + PutNameRaterShowOnTheAir(); + return TRUE; +} + +void ChangePokemonNickname(void) +{ + void ChangePokemonNickname_CB(void); + + GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar3); + GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar2); + DoNamingScreen(3, gStringVar2, GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES, NULL), GetMonGender(&gPlayerParty[gSpecialVar_0x8004]), GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_PERSONALITY, NULL), ChangePokemonNickname_CB); +} + +void ChangePokemonNickname_CB(void) +{ + SetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar2); + c2_exit_to_overworld_1_continue_scripts_restart_music(); +} + +void ChangeBoxPokemonNickname(void) +{ + struct BoxPokemon *boxMon; + + boxMon = GetBoxedMonPtr(gSpecialVar_0x8012, gSpecialVar_0x8013); + GetBoxMonData(boxMon, MON_DATA_NICKNAME, gStringVar3); + GetBoxMonData(boxMon, MON_DATA_NICKNAME, gStringVar2); + DoNamingScreen(3, gStringVar2, GetBoxMonData(boxMon, MON_DATA_SPECIES, NULL), GetBoxMonGender(boxMon), GetBoxMonData(boxMon, MON_DATA_PERSONALITY, NULL), ChangeBoxPokemonNickname_CB); +} + +void ChangeBoxPokemonNickname_CB(void) +{ + SetBoxMonNickFromAnyBox(gSpecialVar_0x8012, gSpecialVar_0x8013, gStringVar2); + c2_exit_to_overworld_1_continue_scripts_restart_music(); +} + +void TV_CopyNicknameToStringVar1AndEnsureTerminated(void) +{ + GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar1); + StringGetEnd10(gStringVar1); +} + +void TV_CheckMonOTIDEqualsPlayerID(void) +{ + if (GetPlayerIDAsU32() == GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_OT_ID, NULL)) + { + gScriptResult = FALSE; + } + else + { + gScriptResult = TRUE; + } +} + +u8 GetTVChannelByShowType(u8 kind) +{ + if (kind == TVSHOW_OFF_AIR) + { + return 0; + } + if (kind >= TVSHOW_FAN_CLUB_LETTER && kind < TVSHOW_POKEMON_TODAY_CAUGHT) + { + return 2; + } + if (kind >= TVSHOW_POKEMON_TODAY_CAUGHT && kind < TVSHOW_MASS_OUTBREAK) + { + return 3; + } + if (kind >= TVSHOW_MASS_OUTBREAK && kind < 61) + { + return 4; + } + return 0; +} + +u32 GetPlayerIDAsU32(void) +{ + return (gSaveBlock2Ptr->playerTrainerId[3] << 24) | (gSaveBlock2Ptr->playerTrainerId[2] << 16) | (gSaveBlock2Ptr->playerTrainerId[1] << 8) | gSaveBlock2Ptr->playerTrainerId[0]; +} + +u8 CheckForBigMovieOrEmergencyNewsOnTV(void) +{ + 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) + { + return 0; + } + } + else + { + if (gSaveBlock1Ptr->location.mapNum != MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_1F) + { + return 0; + } + } + if (FlagGet(SYS_TV_LATI) == TRUE) + { + return 1; + } + if (FlagGet(SYS_TV_HOME) == TRUE) + { + return 2; + } + return 1; +} + +void GetMomOrDadStringForTVMessage(void) +{ + 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) + { + StringCopy(gStringVar1, gText_Mom); + VarSet(VAR_0x4003, 1); + } + } + else + { + if (gSaveBlock1Ptr->location.mapNum == MAP_ID_LITTLEROOT_TOWN_MAYS_HOUSE_1F) + { + StringCopy(gStringVar1, gText_Mom); + VarSet(VAR_0x4003, 1); + } + } + } + if (VarGet(VAR_0x4003) == 1) + { + StringCopy(gStringVar1, gText_Mom); + } + else if (VarGet(VAR_0x4003) == 2) + { + StringCopy(gStringVar1, gText_Dad); + } + else if (VarGet(VAR_0x4003) > 2) + { + if (VarGet(VAR_0x4003) % 2 == 0) + StringCopy(gStringVar1, gText_Mom); + else + StringCopy(gStringVar1, gText_Dad); + } + else + { + if (Random() % 2 != 0) + { + StringCopy(gStringVar1, gText_Mom); + VarSet(VAR_0x4003, 1); + } + else + { + StringCopy(gStringVar1, gText_Dad); + VarSet(VAR_0x4003, 2); + } + } +} + +void sub_80F01B8(void) +{ + VarSet(VAR_0x40BC, 0); + RemoveFieldObjectByLocalIdAndMap(5, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup); + FlagSet(0x396); +} + +void sub_80F01E8(void *src, u32 size, u8 masterIdx) +{ + u8 i; + u16 version; + TVShow (*rmBuffer2)[4][25]; + TVShow (*rmBuffer)[4][25]; + + rmBuffer2 = malloc(4 * 25 * sizeof(TVShow)); + if (rmBuffer2 != NULL) + { + for (i = 0; i < 4; i ++) + { + memcpy((*rmBuffer2)[i], src + i * size, sizeof((*rmBuffer2)[i])); + } + rmBuffer = rmBuffer2; + for (i = 0; i < GetLinkPlayerCount(); i ++) + { + version = (u8)gLinkPlayers[i].version; + if (version == VERSION_RUBY || version == VERSION_SAPPHIRE) + { + sub_80F1254((*rmBuffer)[i]); + } + else if (version == VERSION_EMERALD && gLinkPlayers[i].language == LANGUAGE_JAPANESE) + { + sub_80F12A4((*rmBuffer)[i]); + } + } + switch (masterIdx) + { + case 0: + sub_80F0358(gSaveBlock1Ptr->tvShows, (*rmBuffer)[1], (*rmBuffer)[2], (*rmBuffer)[3]); + break; + case 1: + sub_80F0358((*rmBuffer)[0], gSaveBlock1Ptr->tvShows, (*rmBuffer)[2], (*rmBuffer)[3]); + break; + case 2: + sub_80F0358((*rmBuffer)[0], (*rmBuffer)[1], gSaveBlock1Ptr->tvShows, (*rmBuffer)[3]); + break; + case 3: + sub_80F0358((*rmBuffer)[0], (*rmBuffer)[1], (*rmBuffer)[2], gSaveBlock1Ptr->tvShows); + break; + } + sub_80EF93C(gSaveBlock1Ptr->tvShows); + sub_80F0C04(); + sub_80EF93C(gSaveBlock1Ptr->tvShows); + sub_80F0708(); + sub_80F0B64(); + free(rmBuffer2); + } +} + +void sub_80F0358(TVShow player1[25], TVShow player2[25], TVShow player3[25], TVShow player4[25]) +{ + u8 i; + u8 j; + TVShow **argslist[4]; + + argslist[0] = &player1; + argslist[1] = &player2; + argslist[2] = &player3; + argslist[3] = &player4; + sTVShowMixingNumPlayers = GetLinkPlayerCount(); + while (1) + { + for (i = 0; i < sTVShowMixingNumPlayers; i ++) + { + if (i == 0) + { + sRecordMixingPartnersWithoutShowsToShare = i; + } + sTVShowMixingCurSlot = sub_80F06D0(argslist[i][0]); + if (sTVShowMixingCurSlot == -1) + { + sRecordMixingPartnersWithoutShowsToShare ++; + if (sRecordMixingPartnersWithoutShowsToShare == sTVShowMixingNumPlayers) + { + return; + } + } + else + { + for (j = 0; j < sTVShowMixingNumPlayers - 1; j ++) + { + sCurTVShowSlot = FindEmptyTVSlotBeyondFirstFiveShowsOfArray(argslist[(i + j + 1) % sTVShowMixingNumPlayers][0]); + if (sCurTVShowSlot != -1 + && sub_80F049C(&argslist[(i + j + 1) % sTVShowMixingNumPlayers][0], &argslist[i][0], (i + j + 1) % sTVShowMixingNumPlayers) == 1) + { + break; + } + } + if (j == sTVShowMixingNumPlayers - 1) + { + DeleteTVShowInArrayByIdx(argslist[i][0], sTVShowMixingCurSlot); + } + } + } + } +} + +bool8 sub_80F049C(TVShow *dest[25], TVShow *src[25], u8 idx) +{ + u8 value; + u8 switchval; + TVShow *tv1; + TVShow *tv2; + + tv1 = *dest; + tv2 = *src; + value = FALSE; + switchval = GetTVChannelByShowType(tv2[sTVShowMixingCurSlot].common.kind); + switch (switchval) + { + case 2: + value = sub_80F0580(&tv1[sCurTVShowSlot], &tv2[sTVShowMixingCurSlot], idx); + break; + case 3: + value = sub_80F05E8(&tv1[sCurTVShowSlot], &tv2[sTVShowMixingCurSlot], idx); + break; + case 4: + value = sub_80F0668(&tv1[sCurTVShowSlot], &tv2[sTVShowMixingCurSlot], idx); + break; + } + if (value == TRUE) + { + DeleteTVShowInArrayByIdx(tv2, sTVShowMixingCurSlot); + return TRUE; + } + return FALSE; +} + +u8 sub_80F0580(TVShow *tv1, TVShow *tv2, u8 idx) +{ + u32 linkTrainerId = GetLinkPlayerTrainerId(idx); + + if ((linkTrainerId & 0xFF) == tv2->common.trainerIdLo && ((linkTrainerId >> 8) & 0xFF) == tv2->common.trainerIdHi) + { + return FALSE; + } + tv2->common.trainerIdLo = tv2->common.srcTrainerIdLo; + tv2->common.trainerIdHi = tv2->common.srcTrainerIdHi; + tv2->common.srcTrainerIdLo = linkTrainerId & 0xFF; + tv2->common.srcTrainerIdHi = linkTrainerId >> 8; + *tv1 = *tv2; + tv1->common.active = TRUE; + return TRUE; +} + +u8 sub_80F05E8(TVShow *tv1, TVShow *tv2, u8 idx) +{ + u32 linkTrainerId = GetLinkPlayerTrainerId(idx); + if ((linkTrainerId & 0xFF) == tv2->common.srcTrainerIdLo && ((linkTrainerId >> 8) & 0xFF) == tv2->common.srcTrainerIdHi) + { + return FALSE; + } + if ((linkTrainerId & 0xFF) == tv2->common.trainerIdLo && ((linkTrainerId >> 8) & 0xFF) == tv2->common.trainerIdHi) + { + return FALSE; + } + tv2->common.srcTrainerIdLo = tv2->common.srcTrainerId2Lo; + tv2->common.srcTrainerIdHi = tv2->common.srcTrainerId2Hi; + tv2->common.srcTrainerId2Lo = linkTrainerId & 0xFF; + tv2->common.srcTrainerId2Hi = linkTrainerId >> 8; + *tv1 = *tv2; + tv1->common.active = TRUE; + return TRUE; +} + +u8 sub_80F0668(TVShow *tv1, TVShow *tv2, u8 idx) +{ + u32 linkTrainerId = GetLinkPlayerTrainerId(idx); + if ((linkTrainerId & 0xFF) == tv2->common.trainerIdLo && ((linkTrainerId >> 8) & 0xFF) == tv2->common.trainerIdHi) + { + return FALSE; + } + tv2->common.trainerIdLo = tv2->common.srcTrainerIdLo; + tv2->common.trainerIdHi = tv2->common.srcTrainerIdHi; + tv2->common.srcTrainerIdLo = linkTrainerId & 0xFF; + tv2->common.srcTrainerIdHi = linkTrainerId >> 8; + *tv1 = *tv2; + tv1->common.active = TRUE; + tv1->massOutbreak.daysLeft = 1; + return TRUE; +} + +s8 sub_80F06D0(TVShow *tvShows) +{ + u8 i; + + for (i = 0; i < 24; i ++) + { + if (tvShows[i].common.active == FALSE && (u8)(tvShows[i].common.kind - 1) < 60) + { + return i; + } + } + return -1; +} + +#ifdef NONMATCHING +void sub_80F0708(void) // FIXME: register allocation shenanigans +{ + u16 i; + TVShow *show; + + for (i = 0; i < 24; i ++) + { + switch (gSaveBlock1Ptr->tvShows[i].common.kind) + { + case TVSHOW_CONTEST_LIVE_UPDATES: + sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->contestLiveUpdates.species, i); + sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->contestLiveUpdates.winningSpecies, i); + break; + case TVSHOW_3_CHEERS_FOR_POKEBLOCKS: + break; + case TVSHOW_BATTLE_UPDATE: + sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->battleUpdate.species2, i); + sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->battleUpdate.species, i); + break; + case TVSHOW_FAN_CLUB_SPECIAL: + break; + case TVSHOW_CONTEST_LIVE_UPDATES_2: + break; + + case TVSHOW_OFF_AIR: + break; + case TVSHOW_FAN_CLUB_LETTER: + sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->fanclubLetter.species, i); + break; + case TVSHOW_RECENT_HAPPENINGS: + break; + case TVSHOW_PKMN_FAN_CLUB_OPINIONS: + sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->fanclubOpinions.species, i); + break; + case TVSHOW_UNKN_SHOWTYPE_04: + sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->unkShow04.var06, i); + break; + case TVSHOW_NAME_RATER_SHOW: + sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->nameRaterShow.species, i); + sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->nameRaterShow.randomSpecies, i); + break; + case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE: + sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->bravoTrainer.species, i); + break; + case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE: + sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->bravoTrainerTower.species, i); + sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->bravoTrainerTower.defeatedSpecies, i); + break; + + case TVSHOW_POKEMON_TODAY_CAUGHT: + sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->pokemonToday.species, i); + break; + case TVSHOW_SMART_SHOPPER: + break; + case TVSHOW_POKEMON_TODAY_FAILED: + sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->pokemonTodayFailed.species, i); + sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->pokemonTodayFailed.species2, i); + break; + case TVSHOW_FISHING_ADVICE: + sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->pokemonAngler.species, i); + break; + case TVSHOW_WORLD_OF_MASTERS: + sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->worldOfMasters.species, i); + sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->worldOfMasters.caughtPoke, i); + break; + + case TVSHOW_TODAYS_RIVAL_TRAINER: + break; + case TVSHOW_TREND_WATCHER: + break; + case TVSHOW_TREASURE_INVESTIGATORS: + break; + case TVSHOW_FIND_THAT_GAMER: + break; + case TVSHOW_BREAKING_NEWS: + sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->breakingNews.lastOpponentSpecies, i); + sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->breakingNews.poke1Species, i); + break; + case TVSHOW_SECRET_BASE_VISIT: + sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->secretBaseVisit.species, i); + break; + case TVSHOW_LOTTO_WINNER: + break; + case TVSHOW_BATTLE_SEMINAR: + sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->battleSeminar.species, i); + sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->battleSeminar.foeSpecies, i); + break; + case TVSHOW_TRAINER_FAN_CLUB: + break; + case TVSHOW_CUTIES: + break; + case TVSHOW_FRONTIER: + sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->frontier.species1, i); + sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->frontier.species2, i); + switch ((&gSaveBlock1Ptr->tvShows[i])->frontier.facility) + { + case 3: + case 4: + break; + case 1: + case 5 ... 13: + sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->frontier.species3, i); + break; + case 2: + sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->frontier.species3, i); + sub_80F0B24((&gSaveBlock1Ptr->tvShows[i])->frontier.species4, i); + break; + } + break; + case TVSHOW_NUMBER_ONE: + break; + case TVSHOW_SECRET_BASE_SECRETS: + break; + case TVSHOW_SAFARI_FAN_CLUB: + break; + + case TVSHOW_MASS_OUTBREAK: + break; + + default: + sub_80F0B00(i); + break; + } + } +} +#else +__attribute__((naked)) void sub_80F0708(void) +{ + asm_unified("\tpush {r4-r7,lr}\n" + "\tmov r7, r9\n" + "\tmov r6, r8\n" + "\tpush {r6,r7}\n" + "\tsub sp, 0x8\n" + "\tmovs r0, 0\n" + "\tmov r9, r0\n" + "_080F0716:\n" + "\tldr r3, =gSaveBlock1Ptr\n" + "\tldr r1, [r3]\n" + "\tmov r4, r9\n" + "\tlsls r2, r4, 3\n" + "\tadds r0, r2, r4\n" + "\tlsls r0, 2\n" + "\tadds r1, r0\n" + "\tldr r0, =0x000027cc\n" + "\tadds r1, r0\n" + "\tldrb r0, [r1]\n" + "\tadds r7, r2, 0\n" + "\tcmp r0, 0x29\n" + "\tbls _080F0732\n" + "\tb _080F0AD8\n" + "_080F0732:\n" + "\tlsls r0, 2\n" + "\tldr r1, =_080F0748\n" + "\tadds r0, r1\n" + "\tldr r0, [r0]\n" + "\tmov pc, r0\n" + "\t.pool\n" + "\t.align 2, 0\n" + "_080F0748:\n" + "\t.4byte _080F0AE2_break @ TVSHOW_OFF_AIR\n" + "\t.4byte _080F0848 @ TVSHOW_FAN_CLUB_LETTER\n" + "\t.4byte _080F0AE2_break @ TVSHOW_RECENT_HAPPENINGS\n" + "\t.4byte _080F0860 @ TVSHOW_PKMN_FAN_CLUB_OPINIONS\n" + "\t.4byte _080F0878 @ TVSHOW_UNKN_SHOWTYPE_04\n" + "\t.4byte _080F0890 @ TVSHOW_NAME_RATER_SHOW\n" + "\t.4byte _080F08BC @ TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE\n" + "\t.4byte _080F08D4 @ TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE\n" + "\t.4byte _080F07F0 @ TVSHOW_CONTEST_LIVE_UPDATES\n" + "\t.4byte _080F0AE2_break @ TVSHOW_3_CHEERS_FOR_POKEBLOCKS\n" + "\t.4byte _080F081C @ TVSHOW_BATTLE_UPDATE\n" + "\t.4byte _080F0AE2_break @ TVSHOW_FAN_CLUB_SPECIAL\n" + "\t.4byte _080F0AE2_break @ TVSHOW_CONTEST_LIVE_UPDATES_2\n" + "\t.4byte _080F0AD8 @ \n" + "\t.4byte _080F0AD8 @ \n" + "\t.4byte _080F0AD8 @ \n" + "\t.4byte _080F0AD8 @ \n" + "\t.4byte _080F0AD8 @ \n" + "\t.4byte _080F0AD8 @ \n" + "\t.4byte _080F0AD8 @ \n" + "\t.4byte _080F0AD8 @ \n" + "\t.4byte _080F0900 @ TVSHOW_POKEMON_TODAY_CAUGHT\n" + "\t.4byte _080F0AE2_break @ TVSHOW_SMART_SHOPPER\n" + "\t.4byte _080F0918 @ TVSHOW_POKEMON_TODAY_FAILED\n" + "\t.4byte _080F0944 @ TVSHOW_FISHING_ADVICE\n" + "\t.4byte _080F095C @ TVSHOW_WORLD_OF_MASTERS\n" + "\t.4byte _080F0AE2_break @ TVSHOW_TODAYS_RIVAL_TRAINER\n" + "\t.4byte _080F0AE2_break @ TVSHOW_TREND_WATCHER\n" + "\t.4byte _080F0AE2_break @ TVSHOW_TREASURE_INVESTIGATORS\n" + "\t.4byte _080F0AE2_break @ TVSHOW_FIND_THAT_GAMER\n" + "\t.4byte _080F0974 @ TVSHOW_BREAKING_NEWS\n" + "\t.4byte _080F09A0 @ TVSHOW_SECRET_BASE_VISIT\n" + "\t.4byte _080F0AE2_break @ TVSHOW_LOTTO_WINNER\n" + "\t.4byte _080F09C0 @ TVSHOW_BATTLE_SEMINAR\n" + "\t.4byte _080F0AE2_break @ TVSHOW_TRAINER_FAN_CLUB\n" + "\t.4byte _080F0AE2_break @ TVSHOW_CUTIES\n" + "\t.4byte _080F09F4 @ TVSHOW_FRONTIER\n" + "\t.4byte _080F0AE2_break @ TVSHOW_NUMBER_ONE\n" + "\t.4byte _080F0AE2_break @ TVSHOW_SECRET_BASE_SECRETS\n" + "\t.4byte _080F0AE2_break @ TVSHOW_SAFARI_FAN_CLUB\n" + "\t.4byte _080F0AD8 @ \n" + "\t.4byte _080F0AE2_break @ TVSHOW_MASS_OUTBREAK\n" + "_080F07F0:\n" + "\tldr r0, [r3]\n" + "\tmov r1, r9\n" + "\tadds r4, r7, r1\n" + "\tlsls r4, 2\n" + "\tadds r0, r4, r0\n" + "\tldr r6, =0x000027cc\n" + "\tadds r0, r6\n" + "\tldrh r0, [r0, 0x12]\n" + "\tlsls r5, r1, 24\n" + "\tlsrs r5, 24\n" + "\tadds r1, r5, 0\n" + "\tstr r3, [sp, 0x4]\n" + "\tbl sub_80F0B24\n" + "\tldr r3, [sp, 0x4]\n" + "\tldr r0, [r3]\n" + "\tadds r4, r0\n" + "\tadds r4, r6\n" + "\tldrh r0, [r4, 0x2]\n" + "\tb _080F09E6\n" + "\t.pool\n" + "_080F081C:\n" + "\tldr r0, [r3]\n" + "\tmov r2, r9\n" + "\tadds r4, r7, r2\n" + "\tlsls r4, 2\n" + "\tadds r0, r4, r0\n" + "\tldr r6, =0x000027cc\n" + "\tadds r0, r6\n" + "\tldrh r0, [r0, 0x16]\n" + "\tlsls r5, r2, 24\n" + "\tlsrs r5, 24\n" + "\tadds r1, r5, 0\n" + "\tstr r3, [sp, 0x4]\n" + "\tbl sub_80F0B24\n" + "\tldr r3, [sp, 0x4]\n" + "\tldr r0, [r3]\n" + "\tadds r4, r0\n" + "\tadds r4, r6\n" + "\tldrh r0, [r4, 0x2]\n" + "\tb _080F09E6\n" + "\t.pool\n" + "_080F0848:\n" + "\tldr r0, [r3]\n" + "\tmov r4, r9\n" + "\tadds r1, r7, r4\n" + "\tlsls r1, 2\n" + "\tadds r1, r0\n" + "\tldr r0, =0x000027cc\n" + "\tadds r1, r0\n" + "\tldrh r0, [r1, 0x2]\n" + "\tb _080F09B0\n" + "\t.pool\n" + "_080F0860:\n" + "\tldr r0, [r3]\n" + "\tmov r2, r9\n" + "\tadds r1, r7, r2\n" + "\tlsls r1, 2\n" + "\tadds r1, r0\n" + "\tldr r4, =0x000027cc\n" + "\tadds r1, r4\n" + "\tldrh r0, [r1, 0x2]\n" + "\tlsls r1, r2, 24\n" + "\tb _080F09B2\n" + "\t.pool\n" + "_080F0878:\n" + "\tldr r0, [r3]\n" + "\tmov r2, r9\n" + "\tadds r1, r7, r2\n" + "\tlsls r1, 2\n" + "\tadds r1, r0\n" + "\tldr r4, =0x000027cc\n" + "\tadds r1, r4\n" + "\tldrh r0, [r1, 0x6]\n" + "\tlsls r1, r2, 24\n" + "\tb _080F09B2\n" + "\t.pool\n" + "_080F0890:\n" + "\tldr r0, [r3]\n" + "\tmov r1, r9\n" + "\tadds r4, r7, r1\n" + "\tlsls r4, 2\n" + "\tadds r0, r4, r0\n" + "\tldr r6, =0x000027cc\n" + "\tadds r0, r6\n" + "\tldrh r0, [r0, 0x2]\n" + "\tlsls r5, r1, 24\n" + "\tlsrs r5, 24\n" + "\tadds r1, r5, 0\n" + "\tstr r3, [sp, 0x4]\n" + "\tbl sub_80F0B24\n" + "\tldr r3, [sp, 0x4]\n" + "\tldr r0, [r3]\n" + "\tadds r4, r0\n" + "\tadds r4, r6\n" + "\tldrh r0, [r4, 0x1C]\n" + "\tb _080F09E6\n" + "\t.pool\n" + "_080F08BC:\n" + "\tldr r0, [r3]\n" + "\tmov r2, r9\n" + "\tadds r1, r7, r2\n" + "\tlsls r1, 2\n" + "\tadds r1, r0\n" + "\tldr r4, =0x000027cc\n" + "\tadds r1, r4\n" + "\tldrh r0, [r1, 0x2]\n" + "\tlsls r1, r2, 24\n" + "\tb _080F09B2\n" + "\t.pool\n" + "_080F08D4:\n" + "\tldr r0, [r3]\n" + "\tmov r1, r9\n" + "\tadds r4, r7, r1\n" + "\tlsls r4, 2\n" + "\tadds r0, r4, r0\n" + "\tldr r6, =0x000027cc\n" + "\tadds r0, r6\n" + "\tldrh r0, [r0, 0xA]\n" + "\tlsls r5, r1, 24\n" + "\tlsrs r5, 24\n" + "\tadds r1, r5, 0\n" + "\tstr r3, [sp, 0x4]\n" + "\tbl sub_80F0B24\n" + "\tldr r3, [sp, 0x4]\n" + "\tldr r0, [r3]\n" + "\tadds r4, r0\n" + "\tadds r4, r6\n" + "\tldrh r0, [r4, 0x14]\n" + "\tb _080F09E6\n" + "\t.pool\n" + "_080F0900:\n" + "\tldr r0, [r3]\n" + "\tmov r2, r9\n" + "\tadds r1, r7, r2\n" + "\tlsls r1, 2\n" + "\tadds r1, r0\n" + "\tldr r4, =0x000027cc\n" + "\tadds r1, r4\n" + "\tldrh r0, [r1, 0x10]\n" + "\tlsls r1, r2, 24\n" + "\tb _080F09B2\n" + "\t.pool\n" + "_080F0918:\n" + "\tldr r0, [r3]\n" + "\tmov r1, r9\n" + "\tadds r4, r7, r1\n" + "\tlsls r4, 2\n" + "\tadds r0, r4, r0\n" + "\tldr r6, =0x000027cc\n" + "\tadds r0, r6\n" + "\tldrh r0, [r0, 0xC]\n" + "\tlsls r5, r1, 24\n" + "\tlsrs r5, 24\n" + "\tadds r1, r5, 0\n" + "\tstr r3, [sp, 0x4]\n" + "\tbl sub_80F0B24\n" + "\tldr r3, [sp, 0x4]\n" + "\tldr r0, [r3]\n" + "\tadds r4, r0\n" + "\tadds r4, r6\n" + "\tldrh r0, [r4, 0xE]\n" + "\tb _080F09E6\n" + "\t.pool\n" + "_080F0944:\n" + "\tldr r0, [r3]\n" + "\tmov r2, r9\n" + "\tadds r1, r7, r2\n" + "\tlsls r1, 2\n" + "\tadds r1, r0\n" + "\tldr r4, =0x000027cc\n" + "\tadds r1, r4\n" + "\tldrh r0, [r1, 0x4]\n" + "\tlsls r1, r2, 24\n" + "\tb _080F09B2\n" + "\t.pool\n" + "_080F095C:\n" + "\tldr r0, [r3]\n" + "\tmov r1, r9\n" + "\tadds r4, r7, r1\n" + "\tlsls r4, 2\n" + "\tadds r0, r4, r0\n" + "\tldr r6, =0x000027cc\n" + "\tadds r0, r6\n" + "\tldrh r0, [r0, 0x8]\n" + "\tb _080F09D0\n" + "\t.pool\n" + "_080F0974:\n" + "\tldr r0, [r3]\n" + "\tmov r2, r9\n" + "\tadds r4, r7, r2\n" + "\tlsls r4, 2\n" + "\tadds r0, r4, r0\n" + "\tldr r6, =0x000027cc\n" + "\tadds r0, r6\n" + "\tldrh r0, [r0, 0x2]\n" + "\tlsls r5, r2, 24\n" + "\tlsrs r5, 24\n" + "\tadds r1, r5, 0\n" + "\tstr r3, [sp, 0x4]\n" + "\tbl sub_80F0B24\n" + "\tldr r3, [sp, 0x4]\n" + "\tldr r0, [r3]\n" + "\tadds r4, r0\n" + "\tadds r4, r6\n" + "\tldrh r0, [r4, 0xA]\n" + "\tb _080F09E6\n" + "\t.pool\n" + "_080F09A0:\n" + "\tldr r0, [r3]\n" + "\tmov r4, r9\n" + "\tadds r1, r7, r4\n" + "\tlsls r1, 2\n" + "\tadds r1, r0\n" + "\tldr r0, =0x000027cc\n" + "\tadds r1, r0\n" + "\tldrh r0, [r1, 0x8]\n" + "_080F09B0:\n" + "\tlsls r1, r4, 24\n" + "_080F09B2:\n" + "\tlsrs r1, 24\n" + "\tbl sub_80F0B24\n" + "\tb _080F0AE2_break\n" + "\t.pool\n" + "_080F09C0:\n" + "\tldr r0, [r3]\n" + "\tmov r1, r9\n" + "\tadds r4, r7, r1\n" + "\tlsls r4, 2\n" + "\tadds r0, r4, r0\n" + "\tldr r6, =0x000027cc\n" + "\tadds r0, r6\n" + "\tldrh r0, [r0, 0x6]\n" + "_080F09D0:\n" + "\tlsls r5, r1, 24\n" + "\tlsrs r5, 24\n" + "\tadds r1, r5, 0\n" + "\tstr r3, [sp, 0x4]\n" + "\tbl sub_80F0B24\n" + "\tldr r3, [sp, 0x4]\n" + "\tldr r0, [r3]\n" + "\tadds r4, r0\n" + "\tadds r4, r6\n" + "\tldrh r0, [r4, 0x4]\n" + "_080F09E6:\n" + "\tadds r1, r5, 0\n" + "\tbl sub_80F0B24\n" + "\tb _080F0AE2_break\n" + "\t.pool\n" + "_080F09F4:\n" + "\tldr r0, [r3]\n" + "\tmov r2, r9\n" + "\tadds r4, r7, r2\n" + "\tlsls r4, 2\n" + "\tadds r0, r4, r0\n" + "\tldr r5, =0x000027cc\n" + "\tadds r0, r5\n" + "\tldrh r0, [r0, 0x4]\n" + "\tlsls r2, 24\n" + "\tmov r8, r2\n" + "\tlsrs r6, r2, 24\n" + "\tadds r1, r6, 0\n" + "\tstr r3, [sp, 0x4]\n" + "\tbl sub_80F0B24\n" + "\tldr r3, [sp, 0x4]\n" + "\tldr r0, [r3]\n" + "\tadds r0, r4, r0\n" + "\tadds r0, r5\n" + "\tldrh r0, [r0, 0x6]\n" + "\tadds r1, r6, 0\n" + "\tbl sub_80F0B24\n" + "\tldr r3, [sp, 0x4]\n" + "\tldr r0, [r3]\n" + "\tadds r4, r0\n" + "\tadds r4, r5\n" + "\tldrb r0, [r4, 0xD]\n" + "\tsubs r0, 0x1\n" + "\tmov r6, r8\n" + "\tcmp r0, 0xC\n" + "\tbhi _080F0AE2_break\n" + "\tlsls r0, 2\n" + "\tldr r1, =_080F0A48\n" + "\tadds r0, r1\n" + "\tldr r0, [r0]\n" + "\tmov pc, r0\n" + "\t.pool\n" + "\t.align 2, 0\n" + "_080F0A48:\n" + "\t.4byte _080F0A7C\n" + "\t.4byte _080F0AA0\n" + "\t.4byte _080F0AE2_break\n" + "\t.4byte _080F0AE2_break\n" + "\t.4byte _080F0A7C\n" + "\t.4byte _080F0A7C\n" + "\t.4byte _080F0A7C\n" + "\t.4byte _080F0A7C\n" + "\t.4byte _080F0A7C\n" + "\t.4byte _080F0A7C\n" + "\t.4byte _080F0A7C\n" + "\t.4byte _080F0A7C\n" + "\t.4byte _080F0A7C\n" + "_080F0A7C:\n" + "\tldr r0, =gSaveBlock1Ptr\n" + "\tldr r1, [r0]\n" + "\tmov r4, r9\n" + "\tadds r0, r7, r4\n" + "\tlsls r0, 2\n" + "\tadds r0, r1\n" + "\tldr r1, =0x000027cc\n" + "\tadds r0, r1\n" + "\tldrh r0, [r0, 0x8]\n" + "\tlsrs r1, r6, 24\n" + "\tbl sub_80F0B24\n" + "\tb _080F0AE2_break\n" + "\t.pool\n" + "_080F0AA0:\n" + "\tldr r2, =gSaveBlock1Ptr\n" + "\tldr r0, [r2]\n" + "\tmov r1, r9\n" + "\tadds r4, r7, r1\n" + "\tlsls r4, 2\n" + "\tadds r0, r4, r0\n" + "\tldr r5, =0x000027cc\n" + "\tadds r0, r5\n" + "\tldrh r0, [r0, 0x8]\n" + "\tlsrs r6, 24\n" + "\tadds r1, r6, 0\n" + "\tstr r2, [sp]\n" + "\tbl sub_80F0B24\n" + "\tldr r2, [sp]\n" + "\tldr r0, [r2]\n" + "\tadds r4, r0\n" + "\tadds r4, r5\n" + "\tldrh r0, [r4, 0xA]\n" + "\tadds r1, r6, 0\n" + "\tbl sub_80F0B24\n" + "\tb _080F0AE2_break\n" + "\t.pool\n" + "_080F0AD8:\n" + "\tmov r2, r9\n" + "\tlsls r0, r2, 24\n" + "\tlsrs r0, 24\n" + "\tbl sub_80F0B00\n" + "_080F0AE2_break:\n" + "\tmov r0, r9\n" + "\tadds r0, 0x1\n" + "\tlsls r0, 16\n" + "\tlsrs r0, 16\n" + "\tmov r9, r0\n" + "\tcmp r0, 0x17\n" + "\tbhi _080F0AF2\n" + "\tb _080F0716\n" + "_080F0AF2:\n" + "\tadd sp, 0x8\n" + "\tpop {r3,r4}\n" + "\tmov r8, r3\n" + "\tmov r9, r4\n" + "\tpop {r4-r7}\n" + "\tpop {r0}\n" + "\tbx r0"); +} +#endif + +void sub_80F0B00(u8 showIdx) +{ + gSaveBlock1Ptr->tvShows[showIdx].common.active = FALSE; +} + +void sub_80F0B24(u16 species, u8 showIdx) +{ + if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), 0) == 0) + { + gSaveBlock1Ptr->tvShows[showIdx].common.active = FALSE; + } +} + +void sub_80F0B64(void) +{ + u16 i; + + if (FlagGet(SYS_GAME_CLEAR) != TRUE) + { + for (i = 0; i < 24; i ++) + { + if (gSaveBlock1Ptr->tvShows[i].common.kind == TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE) + { + gSaveBlock1Ptr->tvShows[i].common.active = FALSE; + } + else if (gSaveBlock1Ptr->tvShows[i].common.kind == TVSHOW_MASS_OUTBREAK) + { + gSaveBlock1Ptr->tvShows[i].common.active = FALSE; + } + } + } +} + +void sub_80F0BB8(void) +{ + u8 i; + + for (i = 0; i < 5; i ++) + { + if (GetTVChannelByShowType(gSaveBlock1Ptr->tvShows[i].common.kind) == 2) + { + gSaveBlock1Ptr->tvShows[i].common.active = FALSE; + } + } +} + +void sub_80F0C04(void) +{ + s8 i; + s8 ct; + + ct = 0; + for (i = 5; i < 24; i ++) + { + if (gSaveBlock1Ptr->tvShows[i].common.kind == TVSHOW_OFF_AIR) + { + ct ++; + } + } + for (i = 0; i < 5 - ct; i ++) + { + DeleteTVShowInArrayByIdx(gSaveBlock1Ptr->tvShows, i + 5); + } +} + +void sub_80F0C7C(void *src, u32 size, u8 masterIdx) +{ + u8 i; + PokeNews (*rmBuffer2)[4][16]; + PokeNews (*rmBuffer)[4][16]; + + rmBuffer2 = malloc(4 * 16 * sizeof(PokeNews)); + if (rmBuffer2 != NULL) + { + for (i = 0; i < 4; i ++) + { + memcpy((*rmBuffer2)[i], src + i * size, sizeof((*rmBuffer2)[i])); + } + rmBuffer = rmBuffer2; + switch (masterIdx) + { + case 0: + sub_80F0D60(gSaveBlock1Ptr->pokeNews, (*rmBuffer)[1], (*rmBuffer)[2], (*rmBuffer)[3]); + break; + case 1: + sub_80F0D60((*rmBuffer)[0], gSaveBlock1Ptr->pokeNews, (*rmBuffer)[2], (*rmBuffer)[3]); + break; + case 2: + sub_80F0D60((*rmBuffer)[0], (*rmBuffer)[1], gSaveBlock1Ptr->pokeNews, (*rmBuffer)[3]); + break; + case 3: + sub_80F0D60((*rmBuffer)[0], (*rmBuffer)[1], (*rmBuffer)[2], gSaveBlock1Ptr->pokeNews); + break; + } + sub_80F0EEC(); + sub_80F0F24(); + free(rmBuffer2); + } +} + +void sub_80F0D60(PokeNews player1[16], PokeNews player2[16], PokeNews player3[16], PokeNews player4[16]) +{ + u8 i; + u8 j; + u8 k; + PokeNews **argslist[4]; + + argslist[0] = &player1; + argslist[1] = &player2; + argslist[2] = &player3; + argslist[3] = &player4; + sTVShowNewsMixingNumPlayers = GetLinkPlayerCount(); + for (i = 0; i < 16; i ++) + { + for (j = 0; j < sTVShowNewsMixingNumPlayers; j ++) + { + sTVShowMixingCurSlot = sub_80F0ECC(*argslist[j], i); + if (sTVShowMixingCurSlot != -1) + { + for (k = 0; k < sTVShowNewsMixingNumPlayers - 1; k++) + { + sCurTVShowSlot = sub_80EEE30(*argslist[(j + k + 1) % sTVShowNewsMixingNumPlayers]); + if (sCurTVShowSlot != -1) + { + sub_80F0E58(argslist[(j + k + 1) % sTVShowNewsMixingNumPlayers], argslist[j]); + } + } + } + } + } +} + +void sub_80F0E58(PokeNews *dest[16], PokeNews *src[16]) +{ + PokeNews *ptr1; + PokeNews *ptr2; + + ptr1 = *dest; + ptr2 = *src; + ptr2 += sTVShowMixingCurSlot; + sub_80F0E84(ptr1, ptr2, sCurTVShowSlot); +} + +bool8 sub_80F0E84(PokeNews *dest, PokeNews *src, s8 slot) +{ + u8 i; + u8 kind; + + if (src->kind == POKENEWS_NONE) + { + return FALSE; + } + for (i = 0; i < 16; i ++) + { + if (dest[i].kind == src->kind) + { + return FALSE; + } + } + dest[slot].kind = src->kind; + dest[slot].state = 1; + dest[slot].days = src->days; + return TRUE; +} + +s8 sub_80F0ECC(PokeNews *pokeNews, u8 idx) +{ + if (pokeNews[idx].kind == POKENEWS_NONE) + { + return -1; + } + return idx; +} + +void sub_80F0EEC(void) +{ + u8 i; + + for (i = 0; i < 16; i ++) + { + if (gSaveBlock1Ptr->pokeNews[i].kind > POKENEWS_BLENDMASTER) + { + ClearPokemonNewsI(i); + } + } + sub_80EEEB8(); +} + +void sub_80F0F24(void) +{ + u8 i; + + if (FlagGet(SYS_GAME_CLEAR) != TRUE) + { + for (i = 0; i < 16; i ++) + { + gSaveBlock1Ptr->pokeNews[i].state = 0; + } + } +} + +#define tvlangfix(strptr, langptr, langfix) \ +if (IsStringJapanese(strptr)) \ +{ \ + (langptr) = LANGUAGE_JAPANESE; \ +} \ +else \ +{ \ + (langptr) = langfix; \ +} + +void sub_80F0F64(TVShow *show, u32 language) +{ + int i; + TVShow **r4; + + r4 = calloc(11, sizeof(TVShow *)); + for (i = 0; i < 24; i ++) + { + switch (show[i].common.kind) + { + case TVSHOW_FAN_CLUB_LETTER: + case TVSHOW_RECENT_HAPPENINGS: + r4[0] = &show[i]; + tvlangfix(r4[0]->fanclubLetter.playerName, r4[0]->fanclubLetter.language, language); + break; + case TVSHOW_PKMN_FAN_CLUB_OPINIONS: + r4[1] = &show[i]; + tvlangfix(r4[1]->fanclubOpinions.playerName, r4[1]->fanclubOpinions.language, language); + tvlangfix(r4[1]->fanclubOpinions.nickname, r4[1]->fanclubOpinions.pokemonNameLanguage, language); + break; + case TVSHOW_POKEMON_TODAY_CAUGHT: + r4[6] = &show[i]; + tvlangfix(r4[6]->pokemonToday.playerName, r4[6]->pokemonToday.language, language); + tvlangfix(r4[6]->pokemonToday.nickname, r4[6]->pokemonToday.language2, language); + break; + case TVSHOW_SMART_SHOPPER: + r4[7] = &show[i]; + tvlangfix(r4[7]->smartshopperShow.playerName, r4[7]->smartshopperShow.language, language); + break; + case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE: + r4[5] = &show[i]; + tvlangfix(r4[5]->bravoTrainerTower.trainerName, r4[5]->bravoTrainerTower.language, language); + tvlangfix(r4[5]->bravoTrainerTower.pokemonName, r4[5]->bravoTrainerTower.pokemonNameLanguage, language); + break; + case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE: + r4[4] = &show[i]; + tvlangfix(r4[4]->bravoTrainer.playerName, r4[4]->bravoTrainer.language, language); + tvlangfix(r4[4]->bravoTrainer.pokemonNickname, r4[4]->bravoTrainer.pokemonNameLanguage, language); + break; + case TVSHOW_NAME_RATER_SHOW: + r4[3] = &show[i]; + tvlangfix(r4[3]->nameRaterShow.trainerName, r4[3]->nameRaterShow.language, language); + tvlangfix(r4[3]->nameRaterShow.pokemonName, r4[3]->nameRaterShow.pokemonNameLanguage, language); + break; + case TVSHOW_POKEMON_TODAY_FAILED: + r4[2] = &show[i]; + tvlangfix(r4[2]->pokemonTodayFailed.playerName, r4[2]->pokemonTodayFailed.language, language); + break; + case TVSHOW_FISHING_ADVICE: + r4[8] = &show[i]; + tvlangfix(r4[8]->pokemonAngler.playerName, r4[8]->pokemonAngler.language, language); + break; + case TVSHOW_WORLD_OF_MASTERS: + r4[9] = &show[i]; + tvlangfix(r4[9]->worldOfMasters.playerName, r4[9]->worldOfMasters.language, language); + break; + case TVSHOW_MASS_OUTBREAK: + r4[10] = &show[i]; + r4[10]->massOutbreak.language = language; + break; + } + } + free(r4); +} + +void sub_80F1208(TVShow *shows) +{ + TVShow *curShow; + + sub_80F14F8(shows); + for (curShow = shows; curShow < shows + 24; curShow ++) + { + if (curShow->bravoTrainerTower.kind == TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE) + { + if ((curShow->bravoTrainerTower.language == LANGUAGE_JAPANESE && curShow->bravoTrainerTower.pokemonNameLanguage != LANGUAGE_JAPANESE) || (curShow->bravoTrainerTower.language != LANGUAGE_JAPANESE && curShow->bravoTrainerTower.pokemonNameLanguage == LANGUAGE_JAPANESE)) + { + memset(curShow, 0, sizeof(TVShow)); + } + } + } +} + +void sub_80F1254(TVShow *shows) +{ + TVShow *curShow; + + for (curShow = shows; curShow < shows + 24; curShow ++) + { + if (curShow->bravoTrainerTower.kind == TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE) + { + if (IsStringJapanese(curShow->bravoTrainerTower.pokemonName)) + { + curShow->bravoTrainerTower.pokemonNameLanguage = LANGUAGE_JAPANESE; + } + else + { + curShow->bravoTrainerTower.pokemonNameLanguage = LANGUAGE_ENGLISH; + } + } + } +} + +u8 TV_GetStringLanguage(u8 *str) +{ + return IsStringJapanese(str) ? LANGUAGE_JAPANESE : LANGUAGE_ENGLISH; +} + +void sub_80F12A4(TVShow *shows) +{ + TVShow *curShow; + + for (curShow = shows; curShow < shows + 24; curShow ++) + { + switch(curShow->common.kind) + { + case TVSHOW_FAN_CLUB_LETTER: + curShow->fanclubLetter.language = TV_GetStringLanguage(curShow->fanclubLetter.playerName); + break; + case TVSHOW_RECENT_HAPPENINGS: + curShow->recentHappenings.language = TV_GetStringLanguage(curShow->recentHappenings.playerName); + break; + case TVSHOW_PKMN_FAN_CLUB_OPINIONS: + curShow->fanclubOpinions.language = TV_GetStringLanguage(curShow->fanclubOpinions.playerName); + curShow->fanclubOpinions.pokemonNameLanguage = TV_GetStringLanguage(curShow->fanclubOpinions.nickname); + break; + case TVSHOW_UNKN_SHOWTYPE_04: + curShow->unkShow04.language = TV_GetStringLanguage(curShow->unkShow04.string_0b); + break; + case TVSHOW_NAME_RATER_SHOW: + curShow->nameRaterShow.language = TV_GetStringLanguage(curShow->nameRaterShow.trainerName); + curShow->nameRaterShow.pokemonNameLanguage = TV_GetStringLanguage(curShow->nameRaterShow.pokemonName); + break; + case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE: + curShow->bravoTrainer.language = TV_GetStringLanguage(curShow->bravoTrainer.playerName); + curShow->bravoTrainer.pokemonNameLanguage = TV_GetStringLanguage(curShow->bravoTrainer.pokemonNickname); + break; + case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE: + curShow->bravoTrainerTower.language = TV_GetStringLanguage(curShow->bravoTrainerTower.trainerName); + curShow->bravoTrainerTower.pokemonNameLanguage = TV_GetStringLanguage(curShow->bravoTrainerTower.pokemonName); + break; + case TVSHOW_CONTEST_LIVE_UPDATES: + curShow->contestLiveUpdates.language = TV_GetStringLanguage(curShow->contestLiveUpdates.playerName); + curShow->contestLiveUpdates.winningTrainerLanguage = TV_GetStringLanguage(curShow->contestLiveUpdates.winningTrainerName); + break; + case TVSHOW_3_CHEERS_FOR_POKEBLOCKS: + curShow->threeCheers.language = TV_GetStringLanguage(curShow->threeCheers.playerName); + curShow->threeCheers.worstBlenderLanguage = TV_GetStringLanguage(curShow->threeCheers.worstBlenderName); + break; + case TVSHOW_BATTLE_UPDATE: + curShow->battleUpdate.language = TV_GetStringLanguage(curShow->battleUpdate.playerName); + curShow->battleUpdate.linkOpponentLanguage = TV_GetStringLanguage(curShow->battleUpdate.linkOpponentName); + break; + case TVSHOW_FAN_CLUB_SPECIAL: + curShow->fanClubSpecial.language = TV_GetStringLanguage(curShow->fanClubSpecial.playerName); + curShow->fanClubSpecial.idolNameLanguage = TV_GetStringLanguage(curShow->fanClubSpecial.idolName); + break; + case TVSHOW_CONTEST_LIVE_UPDATES_2: + curShow->contestLiveUpdates2.language = TV_GetStringLanguage(curShow->contestLiveUpdates2.playerName); + curShow->contestLiveUpdates2.pokemonNameLanguage = TV_GetStringLanguage(curShow->contestLiveUpdates2.nickname); + break; + + case TVSHOW_POKEMON_TODAY_CAUGHT: + curShow->pokemonToday.language = TV_GetStringLanguage(curShow->pokemonToday.playerName); + curShow->pokemonToday.language2 = TV_GetStringLanguage(curShow->pokemonToday.nickname); + break; + case TVSHOW_SMART_SHOPPER: + curShow->smartshopperShow.language = TV_GetStringLanguage(curShow->smartshopperShow.playerName); + break; + case TVSHOW_POKEMON_TODAY_FAILED: + curShow->pokemonTodayFailed.language = TV_GetStringLanguage(curShow->pokemonTodayFailed.playerName); + break; + case TVSHOW_FISHING_ADVICE: + curShow->pokemonAngler.language = TV_GetStringLanguage(curShow->pokemonAngler.playerName); + break; + case TVSHOW_WORLD_OF_MASTERS: + curShow->worldOfMasters.language = TV_GetStringLanguage(curShow->worldOfMasters.playerName); + break; + case TVSHOW_TREND_WATCHER: + curShow->trendWatcher.language = TV_GetStringLanguage(curShow->trendWatcher.playerName); + break; + case TVSHOW_BREAKING_NEWS: + curShow->breakingNews.language = TV_GetStringLanguage(curShow->breakingNews.playerName); + break; + case TVSHOW_BATTLE_SEMINAR: + curShow->battleSeminar.language = TV_GetStringLanguage(curShow->battleSeminar.playerName); + break; + case TVSHOW_FIND_THAT_GAMER: + case TVSHOW_TRAINER_FAN_CLUB: + curShow->trainerFanClub.language = TV_GetStringLanguage(curShow->trainerFanClub.playerName); + break; + case TVSHOW_CUTIES: + curShow->cuties.language = TV_GetStringLanguage(curShow->cuties.playerName); + curShow->cuties.pokemonNameLanguage = TV_GetStringLanguage(curShow->cuties.nickname); + break; + case TVSHOW_TODAYS_RIVAL_TRAINER: + case TVSHOW_SECRET_BASE_VISIT: + case TVSHOW_FRONTIER: + curShow->rivalTrainer.language = TV_GetStringLanguage(curShow->rivalTrainer.playerName); + break; + case TVSHOW_TREASURE_INVESTIGATORS: + case TVSHOW_LOTTO_WINNER: + case TVSHOW_NUMBER_ONE: + curShow->treasureInvestigators.language = TV_GetStringLanguage(curShow->treasureInvestigators.playerName); + break; + case TVSHOW_SECRET_BASE_SECRETS: + curShow->secretBaseSecrets.language = TV_GetStringLanguage(curShow->secretBaseSecrets.playerName); + curShow->secretBaseSecrets.baseOwnersNameLanguage = TV_GetStringLanguage(curShow->secretBaseSecrets.baseOwnersName); + break; + case TVSHOW_SAFARI_FAN_CLUB: + curShow->safariFanClub.language = TV_GetStringLanguage(curShow->safariFanClub.playerName); + break; + case TVSHOW_MASS_OUTBREAK: + break; + } + } +} + +void sub_80F14F8(TVShow *shows) +{ + int i; + + for (i = 0; i < 24; i ++) + { + switch (shows[i].common.kind) + { + case TVSHOW_WORLD_OF_MASTERS: + if (shows[i].worldOfMasters.location > 0x58) + { + memset(&shows[i], 0, sizeof(TVShow)); + } + break; + case TVSHOW_POKEMON_TODAY_FAILED: + if (shows[i].pokemonTodayFailed.location > 0x58) + { + memset(&shows[i], 0, sizeof(TVShow)); + } + break; + } + } +} + +void DoTVShow(void) +{ + if (gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004].common.active) + { + switch (gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004].common.kind) + { + case TVSHOW_FAN_CLUB_LETTER: + DoTVShowPokemonFanClubLetter(); + break; + case TVSHOW_RECENT_HAPPENINGS: + DoTVShowRecentHappenings(); + break; + case TVSHOW_PKMN_FAN_CLUB_OPINIONS: + DoTVShowPokemonFanClubOpinions(); + break; + case TVSHOW_UNKN_SHOWTYPE_04: + DoTVShowDummiedOut(); + break; + case TVSHOW_MASS_OUTBREAK: + DoTVShowPokemonNewsMassOutbreak(); + break; + case TVSHOW_BRAVO_TRAINER_POKEMON_PROFILE: + DoTVShowBravoTrainerPokemonProfile(); + break; + case TVSHOW_BRAVO_TRAINER_BATTLE_TOWER_PROFILE: + DoTVShowBravoTrainerBattleTower(); + break; + case TVSHOW_POKEMON_TODAY_CAUGHT: + DoTVShowPokemonTodaySuccessfulCapture(); + break; + case TVSHOW_SMART_SHOPPER: + DoTVShowTodaysSmartShopper(); + break; + case TVSHOW_NAME_RATER_SHOW: + DoTVShowTheNameRaterShow(); + break; + case TVSHOW_CONTEST_LIVE_UPDATES: + DoTVShowPokemonContestLiveUpdates(); + break; + case TVSHOW_BATTLE_UPDATE: + DoTVShowPokemonBattleUpdate(); + break; + case TVSHOW_3_CHEERS_FOR_POKEBLOCKS: + DoTVShow3CheersForPokeblocks(); + break; + case TVSHOW_POKEMON_TODAY_FAILED: + DoTVShowPokemonTodayFailedCapture(); + break; + case TVSHOW_FISHING_ADVICE: + DoTVShowPokemonAngler(); + break; + case TVSHOW_WORLD_OF_MASTERS: + DoTVShowTheWorldOfMasters(); + break; + case TVSHOW_TODAYS_RIVAL_TRAINER: + DoTVShowTodaysRivalTrainer(); + break; + case TVSHOW_TREND_WATCHER: + DoTVShowDewfordTrendWatcherNetwork(); + break; + case TVSHOW_TREASURE_INVESTIGATORS: + DoTVShowHoennTreasureInvestigators(); + break; + case TVSHOW_FIND_THAT_GAMER: + DoTVShowFindThatGamer(); + break; + case TVSHOW_BREAKING_NEWS: + DoTVShowBreakingNewsTV(); + break; + case TVSHOW_SECRET_BASE_VISIT: + DoTVShowSecretBaseVisit(); + break; + case TVSHOW_LOTTO_WINNER: + DoTVShowPokemonLotteryWinnerFlashReport(); + break; + case TVSHOW_BATTLE_SEMINAR: + DoTVShowThePokemonBattleSeminar(); + break; + case TVSHOW_FAN_CLUB_SPECIAL: + DoTVShowTrainerFanClubSpecial(); + break; + case TVSHOW_TRAINER_FAN_CLUB: + DoTVShowTrainerFanClub(); + break; + case TVSHOW_CUTIES: + DoTVShowSpotTheCuties(); + break; + case TVSHOW_FRONTIER: + DoTVShowPokemonNewsBattleFrontier(); + break; + case TVSHOW_NUMBER_ONE: + DoTVShowWhatsNo1InHoennToday(); + break; + case TVSHOW_SECRET_BASE_SECRETS: + DoTVShowSecretBaseSecrets(); + break; + case TVSHOW_SAFARI_FAN_CLUB: + DoTVShowSafariFanClub(); + break; + case TVSHOW_CONTEST_LIVE_UPDATES_2: + DoTVShowPokemonContestLiveUpdates2(); + break; + } + } +} + +void DoTVShowBravoTrainerPokemonProfile(void) +{ + TVShow *show; + u8 state; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + gScriptResult = FALSE; + state = sTVShowState; + switch (state) + { + case 0: + TVShowConvertInternationalString(gStringVar1, show->bravoTrainer.playerName, show->bravoTrainer.language); + CopyContestCategoryToStringVar(1, show->bravoTrainer.contestCategory); + CopyContestRankToStringVar(2, show->bravoTrainer.contestRank); + if (!StringCompare(gSpeciesNames[show->bravoTrainer.species], show->bravoTrainer.pokemonNickname)) + sTVShowState = 8; + else + sTVShowState = 1; + break; + case 1: + StringCopy(gStringVar1, gSpeciesNames[show->bravoTrainer.species]); + TVShowConvertInternationalString(gStringVar2, show->bravoTrainer.pokemonNickname, show->bravoTrainer.pokemonNameLanguage); + CopyContestCategoryToStringVar(2, show->bravoTrainer.contestCategory); + sTVShowState = 2; + break; + case 2: + TVShowConvertInternationalString(gStringVar1, show->bravoTrainer.playerName, show->bravoTrainer.language); + if (show->bravoTrainer.contestResult == 0) // placed first + sTVShowState = 3; + else + sTVShowState = 4; + break; + case 3: + TVShowConvertInternationalString(gStringVar1, show->bravoTrainer.playerName, show->bravoTrainer.language); + CopyEasyChatWord(gStringVar2, show->bravoTrainer.words[0]); + TV_PrintIntToStringVar(2, show->bravoTrainer.contestResult + 1); + sTVShowState = 5; + break; + case 4: + TVShowConvertInternationalString(gStringVar1, show->bravoTrainer.playerName, show->bravoTrainer.language); + CopyEasyChatWord(gStringVar2, show->bravoTrainer.words[0]); + TV_PrintIntToStringVar(2, show->bravoTrainer.contestResult + 1); + sTVShowState = 5; + break; + case 5: + TVShowConvertInternationalString(gStringVar1, show->bravoTrainer.playerName, show->bravoTrainer.language); + CopyContestCategoryToStringVar(1, show->bravoTrainer.contestCategory); + CopyEasyChatWord(gStringVar3, show->bravoTrainer.words[1]); + if (show->bravoTrainer.move) + sTVShowState = 6; + else + sTVShowState = 7; + break; + case 6: + StringCopy(gStringVar1, gSpeciesNames[show->bravoTrainer.species]); + StringCopy(gStringVar2, gMoveNames[show->bravoTrainer.move]); + CopyEasyChatWord(gStringVar3, show->bravoTrainer.words[1]); + sTVShowState = 7; + break; + case 7: + TVShowConvertInternationalString(gStringVar1, show->bravoTrainer.playerName, show->bravoTrainer.language); + StringCopy(gStringVar2, gSpeciesNames[show->bravoTrainer.species]); + TVShowDone(); + break; + case 8: + StringCopy(gStringVar1, gSpeciesNames[show->bravoTrainer.species]); + sTVShowState = 2; + break; + } + ShowFieldMessage(sTVBravoTrainerTextGroup[state]); +} + +void DoTVShowBravoTrainerBattleTower(void) +{ + TVShow *show; + u8 state; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + gScriptResult = FALSE; + state = sTVShowState; + switch(state) + { + case 0: + TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.trainerName, show->bravoTrainerTower.language); + StringCopy(gStringVar2, gSpeciesNames[show->bravoTrainerTower.species]); + if (show->bravoTrainerTower.numFights >= 7) + sTVShowState = 1; + else + sTVShowState = 2; + break; + case 1: + if (show->bravoTrainerTower.btLevel == 50) + { + StringCopy(gStringVar1, gText_Lv50); + } + else + { + StringCopy(gStringVar1, gText_OpenLevel); + } + TV_PrintIntToStringVar(1, show->bravoTrainerTower.numFights); + if (show->bravoTrainerTower.wonTheChallenge == TRUE) + sTVShowState = 3; + else + sTVShowState = 4; + break; + case 2: + TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.pokemonName, show->bravoTrainerTower.pokemonNameLanguage); + TV_PrintIntToStringVar(1, show->bravoTrainerTower.numFights + 1); + if (show->bravoTrainerTower.interviewResponse == 0) + sTVShowState = 5; + else + sTVShowState = 6; + break; + case 3: + TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.pokemonName, show->bravoTrainerTower.pokemonNameLanguage); + StringCopy(gStringVar2, gSpeciesNames[show->bravoTrainerTower.defeatedSpecies]); + if (show->bravoTrainerTower.interviewResponse == 0) + sTVShowState = 5; + else + sTVShowState = 6; + break; + case 4: + TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.pokemonName, show->bravoTrainerTower.pokemonNameLanguage); + StringCopy(gStringVar2, gSpeciesNames[show->bravoTrainerTower.defeatedSpecies]); + if (show->bravoTrainerTower.interviewResponse == 0) + sTVShowState = 5; + else + sTVShowState = 6; + break; + case 5: + TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.pokemonName, show->bravoTrainerTower.pokemonNameLanguage); + sTVShowState = 11; + break; + case 6: + TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.pokemonName, show->bravoTrainerTower.pokemonNameLanguage); + sTVShowState = 11; + break; + case 7: + sTVShowState = 11; + break; + case 8: + case 9: + case 10: + TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.trainerName, show->bravoTrainerTower.language); + sTVShowState = 11; + break; + case 11: + CopyEasyChatWord(gStringVar1, show->bravoTrainerTower.words[0]); + if (show->bravoTrainerTower.interviewResponse == 0) + sTVShowState = 12; + else + sTVShowState = 13; + break; + case 12: + case 13: + CopyEasyChatWord(gStringVar1, show->bravoTrainerTower.words[0]); + TVShowConvertInternationalString(gStringVar2, show->bravoTrainerTower.trainerName, show->bravoTrainerTower.language); + TVShowConvertInternationalString(gStringVar3, show->bravoTrainerTower.pokemonName, show->bravoTrainerTower.pokemonNameLanguage); + sTVShowState = 14; + break; + case 14: + TVShowConvertInternationalString(gStringVar1, show->bravoTrainerTower.trainerName, show->bravoTrainerTower.language); + StringCopy(gStringVar2, gSpeciesNames[show->bravoTrainerTower.species]); + TVShowDone(); + break; + } + ShowFieldMessage(sTVBravoTrainerBattleTowerTextGroup[state]); +} + +void DoTVShowTodaysSmartShopper(void) +{ + TVShow *show; + u8 state; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + gScriptResult = FALSE; + state = sTVShowState; + switch(state) + { + case 0: + TVShowConvertInternationalString(gStringVar1, show->smartshopperShow.playerName, show->smartshopperShow.language); + GetMapName(gStringVar2, show->smartshopperShow.shopLocation, 0); + if (show->smartshopperShow.itemAmounts[0] >= 255) + { + sTVShowState = 11; + } + else + { + sTVShowState = 1; + } + break; + case 1: + TVShowConvertInternationalString(gStringVar1, show->smartshopperShow.playerName, show->smartshopperShow.language); + StringCopy(gStringVar2, ItemId_GetItem(show->smartshopperShow.itemIds[0])->name); + TV_PrintIntToStringVar(2, show->smartshopperShow.itemAmounts[0]); + sTVShowState += 1 + (Random() % 4); + break; + case 2: + case 4: + case 5: + if (show->smartshopperShow.itemIds[1] != ITEM_NONE) + { + sTVShowState = 6; + } + else + { + sTVShowState = 10; + } + break; + case 3: + TV_PrintIntToStringVar(2, show->smartshopperShow.itemAmounts[0] + 1); + if (show->smartshopperShow.itemIds[1] != ITEM_NONE) + { + sTVShowState = 6; + } + else + { + sTVShowState = 10; + } + break; + case 6: + StringCopy(gStringVar2, ItemId_GetItem(show->smartshopperShow.itemIds[1])->name); + TV_PrintIntToStringVar(2, show->smartshopperShow.itemAmounts[1]); + if (show->smartshopperShow.itemIds[2] != ITEM_NONE) + { + sTVShowState = 7; + } + else if (show->smartshopperShow.priceReduced == TRUE) + { + sTVShowState = 8; + } + else + { + sTVShowState = 9; + } + break; + case 7: + StringCopy(gStringVar2, ItemId_GetItem(show->smartshopperShow.itemIds[2])->name); + TV_PrintIntToStringVar(2, show->smartshopperShow.itemAmounts[2]); + if (show->smartshopperShow.priceReduced == TRUE) + { + sTVShowState = 8; + } + else + { + sTVShowState = 9; + } + break; + case 8: + if (show->smartshopperShow.itemAmounts[0] >= 255) + { + sTVShowState = 12; + } + else + { + sTVShowState = 9; + } + break; + case 9: + sub_80EF40C(1, show); + TVShowDone(); + break; + case 10: + if (show->smartshopperShow.priceReduced == TRUE) + { + sTVShowState = 8; + } + else + { + sTVShowState = 9; + } + break; + case 11: + TVShowConvertInternationalString(gStringVar1, show->smartshopperShow.playerName, show->smartshopperShow.language); + StringCopy(gStringVar2, ItemId_GetItem(show->smartshopperShow.itemIds[0])->name); + if (show->smartshopperShow.priceReduced == TRUE) + { + sTVShowState = 8; + } + else + { + sTVShowState = 12; + } + break; + case 12: + TVShowConvertInternationalString(gStringVar1, show->smartshopperShow.playerName, show->smartshopperShow.language); + TVShowDone(); + break; + } + ShowFieldMessage(sTVTodaysSmartShopperTextGroup[state]); +} + +void DoTVShowTheNameRaterShow(void) +{ + TVShow *show; + u8 state; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + gScriptResult = FALSE; + state = sTVShowState; + switch (state) + { + case 0: + TVShowConvertInternationalString(gStringVar1, show->nameRaterShow.trainerName, show->nameRaterShow.language); + StringCopy(gStringVar2, gSpeciesNames[show->nameRaterShow.species]); + TVShowConvertInternationalString(gStringVar3, show->nameRaterShow.pokemonName, show->nameRaterShow.pokemonNameLanguage); + sTVShowState = TV_GetNicknameSumMod8(show) + 1; + break; + case 1: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + if (show->nameRaterShow.random == 0) + { + sTVShowState = 9; + } + else if (show->nameRaterShow.random == 1) + { + sTVShowState = 10; + } + else if (show->nameRaterShow.random == 2) + { + sTVShowState = 11; + } + break; + case 2: + TVShowConvertInternationalString(gStringVar1, show->nameRaterShow.trainerName, show->nameRaterShow.language); + if (show->nameRaterShow.random == 0) + { + sTVShowState = 9; + } + else if (show->nameRaterShow.random == 1) + { + sTVShowState = 10; + } + else if (show->nameRaterShow.random == 2) + { + sTVShowState = 11; + } + break; + case 9: + case 10: + case 11: + TVShowConvertInternationalString(gStringVar1, show->nameRaterShow.pokemonName, show->nameRaterShow.pokemonNameLanguage); + TV_GetNicknameSubstring(1, 0, 0, 1, 0, show); + TV_GetNicknameSubstring(2, 1, 0, 1, 0, show); + sTVShowState = 12; + break; + case 13: + TVShowConvertInternationalString(gStringVar1, show->nameRaterShow.trainerName, show->nameRaterShow.language); + TV_GetNicknameSubstring(1, 0, 2, 0, 0, show); + TV_GetNicknameSubstring(2, 0, 3, 1, 0, show); + sTVShowState = 14; + break; + case 14: + TV_GetNicknameSubstring(1, 0, 2, 1, 0, show); + TV_GetNicknameSubstring(2, 0, 3, 0, 0, show); + sTVShowState = 18; + break; + case 15: + TV_GetNicknameSubstring(0, 0, 2, 1, 0, show); + StringCopy(gStringVar2, gSpeciesNames[show->nameRaterShow.species]); + TV_GetNicknameSubstring(2, 0, 3, 2, show->nameRaterShow.species, show); + sTVShowState = 16; + break; + case 16: + TV_GetNicknameSubstring(0, 0, 2, 2, show->nameRaterShow.species, show); + TV_GetNicknameSubstring(2, 0, 3, 1, 0, show); + sTVShowState = 17; + break; + case 17: + TV_GetNicknameSubstring(0, 0, 2, 1, 0, show); + StringCopy(gStringVar2, gSpeciesNames[show->nameRaterShow.randomSpecies]); + TV_GetNicknameSubstring(2, 0, 3, 2, show->nameRaterShow.randomSpecies, show); + sTVShowState = 18; + break; + case 12: + state = 18; + sTVShowState = 18; + case 18: + TVShowConvertInternationalString(gStringVar1, show->nameRaterShow.pokemonName, show->nameRaterShow.pokemonNameLanguage); + TVShowDone(); + break; + } + ShowFieldMessage(sTVNameRaterTextGroup[state]); +} + +void DoTVShowPokemonTodaySuccessfulCapture(void) +{ + TVShow *show; + u8 state; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + gScriptResult = FALSE; + state = sTVShowState; + switch (state) + { + case 0: + TVShowConvertInternationalString(gStringVar1, show->pokemonToday.playerName, show->pokemonToday.language); + StringCopy(gStringVar2, gSpeciesNames[show->pokemonToday.species]); + TVShowConvertInternationalString(gStringVar3, show->pokemonToday.nickname, show->pokemonToday.language2); + if (show->pokemonToday.ball == ITEM_MASTER_BALL) + { + sTVShowState = 5; + } + else + { + sTVShowState = 1; + } + break; + case 1: + sTVShowState = 2; + break; + case 2: + StringCopy(gStringVar2, ItemId_GetItem(show->pokemonToday.ball)->name); + TV_PrintIntToStringVar(2, show->pokemonToday.nBallsUsed); + if (show->pokemonToday.nBallsUsed < 4) + { + sTVShowState = 3; + } + else + { + sTVShowState = 4; + } + break; + case 3: + TVShowConvertInternationalString(gStringVar1, show->pokemonToday.playerName, show->pokemonToday.language); + StringCopy(gStringVar2, gSpeciesNames[show->pokemonToday.species]); + TVShowConvertInternationalString(gStringVar3, show->pokemonToday.nickname, show->pokemonToday.language2); + sTVShowState = 6; + break; + case 4: + sTVShowState = 6; + break; + case 5: + TVShowConvertInternationalString(gStringVar1, show->pokemonToday.playerName, show->pokemonToday.language); + StringCopy(gStringVar2, gSpeciesNames[show->pokemonToday.species]); + sTVShowState = 6; + break; + case 6: + TVShowConvertInternationalString(gStringVar1, show->pokemonToday.playerName, show->pokemonToday.language); + StringCopy(gStringVar2, gSpeciesNames[show->pokemonToday.species]); + TVShowConvertInternationalString(gStringVar3, show->pokemonToday.nickname, show->pokemonToday.language2); + sTVShowState += 1 + (Random() % 4); + break; + case 7: + case 8: + StringCopy(gStringVar1, gSpeciesNames[show->pokemonToday.species]); + TVShowConvertInternationalString(gStringVar2, show->pokemonToday.nickname, show->pokemonToday.language2); + TV_GetSomeOtherSpeciesAlreadySeenByPlayer_AndPrintName(2, show->pokemonToday.species); + sTVShowState = 11; + break; + case 9: + case 10: + StringCopy(gStringVar1, gSpeciesNames[show->pokemonToday.species]); + TVShowConvertInternationalString(gStringVar2, show->pokemonToday.nickname, show->pokemonToday.language2); + sTVShowState = 11; + break; + case 11: + TVShowDone(); + break; + } + ShowFieldMessage(sTVPokemonTodaySuccessfulTextGroup[state]); +} + +void DoTVShowPokemonTodayFailedCapture(void) +{ + TVShow *show; + u8 state; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + gScriptResult = FALSE; + state = sTVShowState; + switch (state) + { + case 0: + TVShowConvertInternationalString(gStringVar1, show->pokemonTodayFailed.playerName, show->pokemonTodayFailed.language); + StringCopy(gStringVar2, gSpeciesNames[show->pokemonTodayFailed.species]); + sTVShowState = 1; + break; + case 1: + TVShowConvertInternationalString(gStringVar1, show->pokemonTodayFailed.playerName, show->pokemonTodayFailed.language); + GetMapName(gStringVar2, show->pokemonTodayFailed.location, 0); + StringCopy(gStringVar3, gSpeciesNames[show->pokemonTodayFailed.species2]); + if (show->pokemonTodayFailed.outcome == 1) + { + sTVShowState = 3; + } + else + { + sTVShowState = 2; + } + break; + case 2: + case 3: + TVShowConvertInternationalString(gStringVar1, show->pokemonTodayFailed.playerName, show->pokemonTodayFailed.language); + TV_PrintIntToStringVar(1, show->pokemonTodayFailed.nBallsUsed); + if (Random() % 3 == 0) + { + sTVShowState = 5; + } + else + { + sTVShowState = 4; + } + break; + case 4: + case 5: + TVShowConvertInternationalString(gStringVar1, show->pokemonTodayFailed.playerName, show->pokemonTodayFailed.language); + sTVShowState = 6; + break; + case 6: + TVShowDone(); + break; + } + ShowFieldMessage(sTVPokemonTodayFailedTextGroup[state]); +} + +void DoTVShowPokemonFanClubLetter(void) +{ + TVShow *show; + u8 state; + u16 rval; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + gScriptResult = FALSE; + state = sTVShowState; + switch (state) + { + case 0: + TVShowConvertInternationalString(gStringVar1, show->fanclubLetter.playerName, show->fanclubLetter.language); + StringCopy(gStringVar2, gSpeciesNames[show->fanclubLetter.species]); + sTVShowState = 50; + break; + case 1: + rval = (Random() % 4) + 1; + if (rval == 1) + sTVShowState = 2; + else + sTVShowState = rval + 2; + break; + case 2: + sTVShowState = 51; + break; + case 3: + sTVShowState += (Random() % 3) + 1; + break; + case 4: + case 5: + case 6: + TV_FanClubLetter_RandomWordToStringVar3(show); + sTVShowState = 7; + break; + case 7: + rval = (Random() % 0x1f) + 0x46; + TV_PrintIntToStringVar(2, rval); + TVShowDone(); + break; + case 50: + ConvertEasyChatWordsToString(gStringVar4, show->fanclubLetter.words, 2, 2); + ShowFieldMessage(gStringVar4); + sTVShowState = 1; + return; + case 51: + ConvertEasyChatWordsToString(gStringVar4, show->fanclubLetter.words, 2, 2); + ShowFieldMessage(gStringVar4); + sTVShowState = 3; + return; + } + ShowFieldMessage(sTVFanClubTextGroup[state]); +} + +void DoTVShowRecentHappenings(void) +{ + TVShow *show; + u8 state; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + gScriptResult = FALSE; + state = sTVShowState; + switch (state) + { + case 0: + TVShowConvertInternationalString(gStringVar1, show->recentHappenings.playerName, show->recentHappenings.language); + TV_FanClubLetter_RandomWordToStringVar3(show); + sTVShowState = 50; + break; + case 1: + sTVShowState += 1 + (Random() % 3); + break; + case 2: + case 3: + case 4: + sTVShowState = 5; + break; + case 5: + TVShowDone(); + break; + case 50: + ConvertEasyChatWordsToString(gStringVar4, show->recentHappenings.words, 2, 2); + ShowFieldMessage(gStringVar4); + sTVShowState = 1; + return; + } + ShowFieldMessage(sTVRecentHappeninssTextGroup[state]); +} + +void DoTVShowPokemonFanClubOpinions(void) +{ + TVShow *show; + u8 state; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + gScriptResult = FALSE; + state = sTVShowState; + switch (state) + { + case 0: + TVShowConvertInternationalString(gStringVar1, show->fanclubOpinions.playerName, show->fanclubOpinions.language); + StringCopy(gStringVar2, gSpeciesNames[show->fanclubOpinions.species]); + TVShowConvertInternationalString(gStringVar3, show->fanclubOpinions.nickname, show->fanclubOpinions.pokemonNameLanguage); + sTVShowState = show->fanclubOpinions.questionAsked + 1; + break; + case 1: + case 2: + case 3: + TVShowConvertInternationalString(gStringVar1, show->fanclubOpinions.playerName, show->fanclubOpinions.language); + StringCopy(gStringVar2, gSpeciesNames[show->fanclubOpinions.species]); + CopyEasyChatWord(gStringVar3, show->fanclubOpinions.words[0]); + sTVShowState = 4; + break; + case 4: + TVShowConvertInternationalString(gStringVar1, show->fanclubOpinions.playerName, show->fanclubOpinions.language); + CopyEasyChatWord(gStringVar3, show->fanclubOpinions.words[1]); + TVShowDone(); + break; + } + ShowFieldMessage(sTVFanClubOpinionsTextGroup[state]); +} + +void DoTVShowDummiedOut(void) +{ + +} + +void DoTVShowPokemonNewsMassOutbreak(void) +{ + TVShow *show; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + GetMapName(gStringVar1, show->massOutbreak.locationMapNum, 0); + StringCopy(gStringVar2, gSpeciesNames[show->massOutbreak.species]); + TVShowDone(); + StartMassOutbreak(); + ShowFieldMessage(sTVMassOutbreakTextGroup[sTVShowState]); +} + +void DoTVShowPokemonContestLiveUpdates(void) +{ + TVShow *show; + u8 state; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + gScriptResult = FALSE; + state = sTVShowState; + switch (state) + { + case 0: + sub_818E868(gStringVar1, show->contestLiveUpdates.category); + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); + TVShowConvertInternationalString(gStringVar3, show->contestLiveUpdates.playerName, show->contestLiveUpdates.language); + if (show->contestLiveUpdates.round1Rank == show->contestLiveUpdates.round2Rank) + { + if (show->contestLiveUpdates.round1Rank == 0) + { + sTVShowState = 1; + } + else + { + sTVShowState = 3; + } + } + else if (show->contestLiveUpdates.round1Rank > show->contestLiveUpdates.round2Rank) + { + sTVShowState = 2; + } + else + { + sTVShowState = 4; + } + break; + case 1: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); + switch (show->contestLiveUpdates.appealFlags1) + { + case 0x01: + sTVShowState = 8; + break; + case 0x02: + sTVShowState = 5; + break; + case 0x04: + sTVShowState = 14; + break; + case 0x08: + sTVShowState = 7; + break; + case 0x10: + sTVShowState = 6; + break; + case 0x20: + sTVShowState = 20; + break; + case 0x40: + sTVShowState = 21; + break; + case 0x80: + sTVShowState = 22; + break; + } + break; + case 2: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); + switch (show->contestLiveUpdates.appealFlags1) + { + case 0x01: + sTVShowState = 8; + break; + case 0x02: + sTVShowState = 5; + break; + case 0x04: + sTVShowState = 14; + break; + case 0x08: + sTVShowState = 7; + break; + case 0x10: + sTVShowState = 6; + break; + case 0x20: + sTVShowState = 20; + break; + case 0x40: + sTVShowState = 21; + break; + case 0x80: + sTVShowState = 22; + break; + } + break; + case 3: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); + TVShowConvertInternationalString(gStringVar3, show->contestLiveUpdates.playerName, show->contestLiveUpdates.language); + switch (show->contestLiveUpdates.appealFlags1) + { + case 0x01: + sTVShowState = 8; + break; + case 0x02: + sTVShowState = 5; + break; + case 0x04: + sTVShowState = 14; + break; + case 0x08: + sTVShowState = 7; + break; + case 0x10: + sTVShowState = 6; + break; + case 0x20: + sTVShowState = 20; + break; + case 0x40: + sTVShowState = 21; + break; + case 0x80: + sTVShowState = 22; + break; + } + break; + case 4: + switch (show->contestLiveUpdates.category) + { + case 0: + StringCopy(gStringVar1, gText_Cool); + break; + case 1: + StringCopy(gStringVar1, gText_Beauty); + break; + case 2: + StringCopy(gStringVar1, gText_Cute); + break; + case 3: + StringCopy(gStringVar1, gText_Smart); + break; + case 4: + StringCopy(gStringVar1, gText_Tough); + break; + } + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); + switch (show->contestLiveUpdates.appealFlags1) + { + case 0x01: + sTVShowState = 8; + break; + case 0x02: + sTVShowState = 5; + break; + case 0x04: + sTVShowState = 14; + break; + case 0x08: + sTVShowState = 7; + break; + case 0x10: + sTVShowState = 6; + break; + case 0x20: + sTVShowState = 20; + break; + case 0x40: + sTVShowState = 21; + break; + case 0x80: + sTVShowState = 22; + break; + } + break; + case 5: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); + sTVShowState = 23; + break; + case 6: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); + sTVShowState = 23; + break; + case 7: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); + sTVShowState = 23; + break; + case 8: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); + switch (show->contestLiveUpdates.category) + { + case 0: + sTVShowState = 9; + break; + case 1: + sTVShowState = 10; + break; + case 2: + sTVShowState = 11; + break; + case 3: + sTVShowState = 12; + break; + case 4: + sTVShowState = 13; + break; + } + break; + case 9: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); + sTVShowState = 23; + break; + case 10: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); + sTVShowState = 23; + break; + case 11: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); + sTVShowState = 23; + break; + case 12: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); + sTVShowState = 23; + break; + case 13: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); + sTVShowState = 23; + break; + case 14: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); + switch (show->contestLiveUpdates.category) + { + case 0: + sTVShowState = 15; + break; + case 1: + sTVShowState = 16; + break; + case 2: + sTVShowState = 17; + break; + case 3: + sTVShowState = 18; + break; + case 4: + sTVShowState = 19; + break; + } + break; + case 15: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); + sTVShowState = 23; + break; + case 16: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); + sTVShowState = 23; + break; + case 17: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); + sTVShowState = 23; + break; + case 18: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); + sTVShowState = 23; + break; + case 19: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); + sTVShowState = 23; + break; + case 20: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); + sTVShowState = 23; + break; + case 21: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); + sTVShowState = 23; + break; + case 22: + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); + StringCopy(gStringVar3, gMoveNames[show->contestLiveUpdates.move]); + sTVShowState = 23; + break; + case 23: + StringCopy(gStringVar1, gSpeciesNames[show->contestLiveUpdates.species]); + TVShowConvertInternationalString(gStringVar2, show->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerLanguage); + StringCopy(gStringVar3, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + switch (show->contestLiveUpdates.appealFlags2) + { + case 0x01: + sTVShowState = 31; + break; + case 0x02: + sTVShowState = 30; + break; + case 0x04: + sTVShowState = 29; + break; + case 0x08: + sTVShowState = 28; + break; + case 0x10: + sTVShowState = 27; + break; + case 0x20: + sTVShowState = 26; + break; + case 0x40: + sTVShowState = 25; + break; + case 0x80: + sTVShowState = 24; + break; + } + break; + case 24: + StringCopy(gStringVar1, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = 32; + break; + case 25: + TVShowConvertInternationalString(gStringVar1, show->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerLanguage); + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.winningSpecies]); + sTVShowState = 32; + break; + case 28: + sTVShowState = 32; + break; + case 29: + TVShowConvertInternationalString(gStringVar1, show->contestLiveUpdates.playerName, show->contestLiveUpdates.language); + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); + TVShowConvertInternationalString(gStringVar3, show->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerLanguage); + sTVShowState = 32; + break; + case 26: + case 27: + case 30: + case 31: + TVShowConvertInternationalString(gStringVar1, show->contestLiveUpdates.winningTrainerName, show->contestLiveUpdates.winningTrainerLanguage); + sTVShowState = 32; + break; + case 32: + + TVShowConvertInternationalString(gStringVar1, show->contestLiveUpdates.playerName, show->contestLiveUpdates.language); + StringCopy(gStringVar2, gSpeciesNames[show->contestLiveUpdates.species]); + TVShowDone(); + break; + } + ShowFieldMessage(sTVContestLiveUpdatesTextGroup[state]); +} + +void DoTVShowPokemonBattleUpdate(void) +{ + TVShow *show; + u8 state; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + gScriptResult = FALSE; + state = sTVShowState; + switch (state) + { + case 0: + switch (show->battleUpdate.battleType) + { + case 0: + case 1: + sTVShowState = 1; + break; + case 2: + sTVShowState = 5; + break; + } + break; + case 1: + TVShowConvertInternationalString(gStringVar1, show->battleUpdate.playerName, show->battleUpdate.language); + TVShowConvertInternationalString(gStringVar2, show->battleUpdate.linkOpponentName, show->battleUpdate.linkOpponentLanguage); + if (show->battleUpdate.battleType == 0) + { + StringCopy(gStringVar3, gText_Single); + } + else + { + StringCopy(gStringVar3, gText_Double); + } + sTVShowState = 2; + break; + case 2: + TVShowConvertInternationalString(gStringVar1, show->battleUpdate.playerName, show->battleUpdate.language); + StringCopy(gStringVar2, gSpeciesNames[show->battleUpdate.species2]); + StringCopy(gStringVar3, gMoveNames[show->battleUpdate.move]); + sTVShowState = 3; + break; + case 3: + TVShowConvertInternationalString(gStringVar1, show->battleUpdate.linkOpponentName, show->battleUpdate.linkOpponentLanguage); + StringCopy(gStringVar2, gSpeciesNames[show->battleUpdate.species]); + sTVShowState = 4; + break; + case 4: + TVShowConvertInternationalString(gStringVar1, show->battleUpdate.playerName, show->battleUpdate.language); + TVShowConvertInternationalString(gStringVar2, show->battleUpdate.linkOpponentName, show->battleUpdate.linkOpponentLanguage); + TVShowDone(); + break; + case 5: + TVShowConvertInternationalString(gStringVar1, show->battleUpdate.playerName, show->battleUpdate.language); + TVShowConvertInternationalString(gStringVar2, show->battleUpdate.linkOpponentName, show->battleUpdate.linkOpponentLanguage); + sTVShowState = 6; + break; + case 6: + TVShowConvertInternationalString(gStringVar1, show->battleUpdate.playerName, show->battleUpdate.language); + StringCopy(gStringVar2, gSpeciesNames[show->battleUpdate.species2]); + StringCopy(gStringVar3, gMoveNames[show->battleUpdate.move]); + sTVShowState = 7; + break; + case 7: + TVShowConvertInternationalString(gStringVar1, show->battleUpdate.playerName, show->battleUpdate.language); + TVShowConvertInternationalString(gStringVar2, show->battleUpdate.linkOpponentName, show->battleUpdate.linkOpponentLanguage); + StringCopy(gStringVar3, gSpeciesNames[show->battleUpdate.species]); + TVShowDone(); + break; + } + ShowFieldMessage(sTVPokemonBattleUpdateTextGroup[state]); +} + +void DoTVShow3CheersForPokeblocks(void) +{ + TVShow *show; + u8 state; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + gScriptResult = FALSE; + state = sTVShowState; + switch (state) + { + case 0: + TVShowConvertInternationalString(gStringVar1, show->threeCheers.playerName, show->threeCheers.language); + if (show->threeCheers.sheen > 20) + { + sTVShowState = 1; + } + else + { + sTVShowState = 3; + } + break; + case 1: + switch (show->threeCheers.flavor) + { + case 0: + StringCopy(gStringVar1, gText_Spicy2); + break; + case 1: + StringCopy(gStringVar1, gText_Dry2); + break; + case 2: + StringCopy(gStringVar1, gText_Sweet2); + break; + case 3: + StringCopy(gStringVar1, gText_Bitter2); + break; + case 4: + StringCopy(gStringVar1, gText_Sour2); + break; + } + if (show->threeCheers.sheen > 24) + { + StringCopy(gStringVar2, gText_Excellent); + } else if (show->threeCheers.sheen > 22) + { + StringCopy(gStringVar2, gText_VeryGood); + } + else + { + StringCopy(gStringVar2, gText_Good); + } + TVShowConvertInternationalString(gStringVar3, show->threeCheers.playerName, show->threeCheers.language); + sTVShowState = 2; + break; + case 2: + TVShowConvertInternationalString(gStringVar1, show->threeCheers.worstBlenderName, show->threeCheers.worstBlenderLanguage); + sTVShowState = 5; + break; + case 3: + switch (show->threeCheers.flavor) + { + case 0: + StringCopy(gStringVar1, gText_Spicy2); + break; + case 1: + StringCopy(gStringVar1, gText_Dry2); + break; + case 2: + StringCopy(gStringVar1, gText_Sweet2); + break; + case 3: + StringCopy(gStringVar1, gText_Bitter2); + break; + case 4: + StringCopy(gStringVar1, gText_Sour2); + break; + } + if (show->threeCheers.sheen > 16) + { + StringCopy(gStringVar2, gText_SoSo); + } else if (show->threeCheers.sheen > 13) + { + StringCopy(gStringVar2, gText_Bad); + } + else + { + StringCopy(gStringVar2, gText_TheWorst); + } + TVShowConvertInternationalString(gStringVar3, show->threeCheers.playerName, show->threeCheers.language); + sTVShowState = 4; + break; + case 4: + TVShowConvertInternationalString(gStringVar1, show->threeCheers.worstBlenderName, show->threeCheers.worstBlenderLanguage); + TVShowConvertInternationalString(gStringVar2, show->threeCheers.playerName, show->threeCheers.language); + sTVShowState = 5; + break; + case 5: + TVShowDone(); + break; + } + ShowFieldMessage(sTV3CheersForPokeblocksTextGroup[state]); +} + +void DoTVShowInSearchOfTrainers(void) +{ + u8 state; + + gScriptResult = FALSE; + state = sTVShowState; + switch (state) + { + case 0: + GetMapName(gStringVar1, gSaveBlock1Ptr->gabbyAndTyData.mapnum, 0); + if (gSaveBlock1Ptr->gabbyAndTyData.battleNum > 1) + { + sTVShowState = 1; + } + else + { + sTVShowState = 2; + } + break; + case 1: + sTVShowState = 2; + break; + case 2: + if (!gSaveBlock1Ptr->gabbyAndTyData.battleTookMoreThanOneTurn) + { + sTVShowState = 4; + } + else if (gSaveBlock1Ptr->gabbyAndTyData.playerThrewABall) + { + sTVShowState = 5; + } + else if (gSaveBlock1Ptr->gabbyAndTyData.playerUsedAnItem) + { + sTVShowState = 6; + } + else if (gSaveBlock1Ptr->gabbyAndTyData.playerLostAMon) + { + sTVShowState = 7; + } + else + { + sTVShowState = 3; + } + break; + case 3: + StringCopy(gStringVar1, gSpeciesNames[gSaveBlock1Ptr->gabbyAndTyData.mon1]); + StringCopy(gStringVar2, gMoveNames[gSaveBlock1Ptr->gabbyAndTyData.lastMove]); + StringCopy(gStringVar3, gSpeciesNames[gSaveBlock1Ptr->gabbyAndTyData.mon2]); + sTVShowState = 8; + break; + case 4: + case 5: + case 6: + case 7: + sTVShowState = 8; + break; + case 8: + CopyEasyChatWord(gStringVar1, gSaveBlock1Ptr->gabbyAndTyData.quote[0]); + StringCopy(gStringVar2, gSpeciesNames[gSaveBlock1Ptr->gabbyAndTyData.mon1]); + StringCopy(gStringVar3, gSpeciesNames[gSaveBlock1Ptr->gabbyAndTyData.mon2]); + gScriptResult = TRUE; + sTVShowState = 0; + TakeTVShowInSearchOfTrainersOffTheAir(); + break; + } + ShowFieldMessage(sTVInSearchOfTrainersTextGroup[state]); +} + +void DoTVShowPokemonAngler(void) +{ + TVShow *show; + u8 state; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + gScriptResult = FALSE; + if (show->pokemonAngler.nBites < show->pokemonAngler.nFails) + { + sTVShowState = 0; + } + else + { + sTVShowState = 1; + } + state = sTVShowState; + switch (state) + { + case 0: + TVShowConvertInternationalString(gStringVar1, show->pokemonAngler.playerName, show->pokemonAngler.language); + StringCopy(gStringVar2, gSpeciesNames[show->pokemonAngler.species]); + TV_PrintIntToStringVar(2, show->pokemonAngler.nFails); + TVShowDone(); + break; + case 1: + TVShowConvertInternationalString(gStringVar1, show->pokemonAngler.playerName, show->pokemonAngler.language); + StringCopy(gStringVar2, gSpeciesNames[show->pokemonAngler.species]); + TV_PrintIntToStringVar(2, show->pokemonAngler.nBites); + TVShowDone(); + break; + } + ShowFieldMessage(sTVPokemonAnslerTextGroup[state]); +} + +void DoTVShowTheWorldOfMasters(void) +{ + TVShow *show; + u8 state; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + gScriptResult = FALSE; + state = sTVShowState; + switch (state) + { + case 0: + TVShowConvertInternationalString(gStringVar1, show->worldOfMasters.playerName, show->worldOfMasters.language); + TV_PrintIntToStringVar(1, show->worldOfMasters.steps); + TV_PrintIntToStringVar(2, show->worldOfMasters.numPokeCaught); + sTVShowState = 1; + break; + case 1: + StringCopy(gStringVar1, gSpeciesNames[show->worldOfMasters.species]); + sTVShowState = 2; + break; + case 2: + TVShowConvertInternationalString(gStringVar1, show->worldOfMasters.playerName, show->worldOfMasters.language); + GetMapName(gStringVar2, show->worldOfMasters.location, 0); + StringCopy(gStringVar3, gSpeciesNames[show->worldOfMasters.caughtPoke]); + TVShowDone(); + break; + } + ShowFieldMessage(sTVWorldOfMastersTextGroup[state]); +} + +void DoTVShowTodaysRivalTrainer(void) +{ + TVShow *show; + u8 state; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + gScriptResult = FALSE; + state = sTVShowState; + switch (state) + { + case 0: + switch (show->rivalTrainer.location) + { + default: + sTVShowState = 7; + break; + case REGION_MAP_SECRET_BASE: + sTVShowState = 8; + break; + case REGION_MAP_NONE: + switch (show->rivalTrainer.mapDataId) + { + case 0x115 ... 0x117: + sTVShowState = 10; + break; + default: + sTVShowState = 9; + break; + } + break; + } + break; + case 7: + TVShowConvertInternationalString(gStringVar1, show->rivalTrainer.playerName, show->rivalTrainer.language); + TV_PrintIntToStringVar(1, show->rivalTrainer.dexCount); + GetMapName(gStringVar3, show->rivalTrainer.location, 0); + if (show->rivalTrainer.badgeCount != 0) + { + sTVShowState = 1; + } + else + { + sTVShowState = 2; + } + break; + case 8: + TVShowConvertInternationalString(gStringVar1, show->rivalTrainer.playerName, show->rivalTrainer.language); + TV_PrintIntToStringVar(1, show->rivalTrainer.dexCount); + if (show->rivalTrainer.badgeCount != 0) + { + sTVShowState = 1; + } + else + { + sTVShowState = 2; + } + break; + case 9: + TVShowConvertInternationalString(gStringVar1, show->rivalTrainer.playerName, show->rivalTrainer.language); + TV_PrintIntToStringVar(1, show->rivalTrainer.dexCount); + if (show->rivalTrainer.badgeCount != 0) + { + sTVShowState = 1; + } + else + { + sTVShowState = 2; + } + break; + case 10: + TVShowConvertInternationalString(gStringVar1, show->rivalTrainer.playerName, show->rivalTrainer.language); + TV_PrintIntToStringVar(1, show->rivalTrainer.dexCount); + if (show->rivalTrainer.badgeCount != 0) + { + sTVShowState = 1; + } + else + { + sTVShowState = 2; + } + break; + case 1: + TV_PrintIntToStringVar(0, show->rivalTrainer.badgeCount); + if (FlagGet(CODE_FLAGS + 0x48)) + { + if (show->rivalTrainer.nSilverSymbols || show->rivalTrainer.nGoldSymbols) + { + sTVShowState = 4; + } + else + { + sTVShowState = 3; + } + } + else + { + sTVShowState = 6; + } + break; + case 2: + if (FlagGet(CODE_FLAGS + 0x48)) + { + if (show->rivalTrainer.nSilverSymbols || show->rivalTrainer.nGoldSymbols) + { + sTVShowState = 4; + } + else + { + sTVShowState = 3; + } + } + else + { + sTVShowState = 6; + } + break; + case 3: + if (show->rivalTrainer.battlePoints == 0) + { + sTVShowState = 6; + } + else + { + sTVShowState = 5; + } + break; + case 4: + TV_PrintIntToStringVar(0, show->rivalTrainer.nGoldSymbols); + TV_PrintIntToStringVar(1, show->rivalTrainer.nSilverSymbols); + if (show->rivalTrainer.battlePoints == 0) + { + sTVShowState = 6; + } + else + { + sTVShowState = 5; + } + break; + case 5: + TV_PrintIntToStringVar(0, show->rivalTrainer.battlePoints); + sTVShowState = 6; + break; + case 6: + TVShowConvertInternationalString(gStringVar1, show->rivalTrainer.playerName, show->rivalTrainer.language); + TVShowDone(); + } + ShowFieldMessage(sTVTodaysRivalTrainerTextGroup[state]); +} + +void DoTVShowDewfordTrendWatcherNetwork(void) +{ + TVShow *show; + u8 state; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + gScriptResult = FALSE; + state = sTVShowState; + switch (state) + { + case 0: + CopyEasyChatWord(gStringVar1, show->trendWatcher.words[0]); + CopyEasyChatWord(gStringVar2, show->trendWatcher.words[1]); + if (show->trendWatcher.gender == MALE) + { + sTVShowState = 1; + } + else + { + sTVShowState = 2; + } + break; + case 1: + case 2: + CopyEasyChatWord(gStringVar1, show->trendWatcher.words[0]); + CopyEasyChatWord(gStringVar2, show->trendWatcher.words[1]); + TVShowConvertInternationalString(gStringVar3, show->trendWatcher.playerName, show->trendWatcher.language); + sTVShowState = 3; + break; + case 3: + CopyEasyChatWord(gStringVar1, show->trendWatcher.words[0]); + CopyEasyChatWord(gStringVar2, show->trendWatcher.words[1]); + if (show->trendWatcher.gender == MALE) + { + sTVShowState = 4; + } + else + { + sTVShowState = 5; + } + break; + case 4: + case 5: + CopyEasyChatWord(gStringVar1, show->trendWatcher.words[0]); + CopyEasyChatWord(gStringVar2, show->trendWatcher.words[1]); + TVShowConvertInternationalString(gStringVar3, show->trendWatcher.playerName, show->trendWatcher.language); + sTVShowState = 6; + break; + case 6: + CopyEasyChatWord(gStringVar1, show->trendWatcher.words[0]); + CopyEasyChatWord(gStringVar2, show->trendWatcher.words[1]); + TVShowDone(); + } + ShowFieldMessage(sTVDewfordTrendWatcherNetworkTextGroup[state]); +} + +void DoTVShowHoennTreasureInvestigators(void) +{ + TVShow *show; + u8 state; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + gScriptResult = FALSE; + state = sTVShowState; + switch (state) + { + case 0: + StringCopy(gStringVar1, ItemId_GetItem(show->treasureInvestigators.item)->name); + if (show->treasureInvestigators.location == REGION_MAP_NONE) + { + switch (show->treasureInvestigators.mapDataId) + { + case 0x115 ... 0x117: + sTVShowState = 2; + break; + default: + sTVShowState = 1; + break; + } + } + else + { + sTVShowState = 1; + } + break; + case 1: + StringCopy(gStringVar1, ItemId_GetItem(show->treasureInvestigators.item)->name); + TVShowConvertInternationalString(gStringVar2, show->treasureInvestigators.playerName, show->treasureInvestigators.language); + GetMapName(gStringVar3, show->treasureInvestigators.location, 0); + TVShowDone(); + break; + case 2: + StringCopy(gStringVar1, ItemId_GetItem(show->treasureInvestigators.item)->name); + TVShowConvertInternationalString(gStringVar2, show->treasureInvestigators.playerName, show->treasureInvestigators.language); + TVShowDone(); + break; + } + ShowFieldMessage(sTVHoennTreasureInvestisatorsTextGroup[state]); +} + +void DoTVShowFindThatGamer(void) +{ + TVShow *show; + u8 state; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + gScriptResult = FALSE; + state = sTVShowState; + switch (state) + { + case 0: + TVShowConvertInternationalString(gStringVar1, show->findThatGamer.playerName, show->findThatGamer.language); + switch (show->findThatGamer.whichGame) + { + case 0: + StringCopy(gStringVar2, gText_Slots); + break; + case 1: + StringCopy(gStringVar2, gText_Roulette); + break; + } + if (show->findThatGamer.won == TRUE) + { + sTVShowState = 1; + } + else + { + sTVShowState = 2; + } + break; + case 1: + TVShowConvertInternationalString(gStringVar1, show->findThatGamer.playerName, show->findThatGamer.language); + switch (show->findThatGamer.whichGame) + { + case 0: + StringCopy(gStringVar2, gText_Slots); + break; + case 1: + StringCopy(gStringVar2, gText_Roulette); + break; + } + TV_PrintIntToStringVar(2, show->findThatGamer.nCoins); + TVShowDone(); break; + case 2: + TVShowConvertInternationalString(gStringVar1, show->findThatGamer.playerName, show->findThatGamer.language); + switch (show->findThatGamer.whichGame) + { + case 0: + StringCopy(gStringVar2, gText_Slots); + break; + case 1: + StringCopy(gStringVar2, gText_Roulette); + break; + } + TV_PrintIntToStringVar(2, show->findThatGamer.nCoins); + sTVShowState = 3; + break; + case 3: + TVShowConvertInternationalString(gStringVar1, show->findThatGamer.playerName, show->findThatGamer.language); + switch (show->findThatGamer.whichGame) + { + case 0: + StringCopy(gStringVar2, gText_Roulette); + break; + case 1: + StringCopy(gStringVar2, gText_Slots); + break; + } + TVShowDone(); + break; + } + ShowFieldMessage(sTVFindThatGamerTextGroup[state]); +} + +void DoTVShowBreakingNewsTV(void) +{ + TVShow *show; + u8 state; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + gScriptResult = FALSE; + state = sTVShowState; + switch (state) + { + case 0: + if (show->breakingNews.outcome == 0) + { + sTVShowState = 1; + } + else + { + sTVShowState = 5; + } + break; + case 1: + TVShowConvertInternationalString(gStringVar1, show->breakingNews.playerName, show->breakingNews.language); + StringCopy(gStringVar2, gSpeciesNames[show->breakingNews.lastOpponentSpecies]); + GetMapName(gStringVar3, show->breakingNews.location, 0); + sTVShowState = 2; + break; + case 2: + TVShowConvertInternationalString(gStringVar1, show->breakingNews.playerName, show->breakingNews.language); + StringCopy(gStringVar2, gSpeciesNames[show->breakingNews.lastOpponentSpecies]); + StringCopy(gStringVar3, gSpeciesNames[show->breakingNews.poke1Species]); + sTVShowState = 3; + break; + case 3: + TV_PrintIntToStringVar(0, show->breakingNews.balls); + StringCopy(gStringVar2, ItemId_GetItem(show->breakingNews.caughtMonBall)->name); + sTVShowState = 4; + break; + case 4: + TVShowConvertInternationalString(gStringVar1, show->breakingNews.playerName, show->breakingNews.language); + GetMapName(gStringVar2, show->breakingNews.location, 0); + TVShowDone(); + break; + case 5: + TVShowConvertInternationalString(gStringVar1, show->breakingNews.playerName, show->breakingNews.language); + StringCopy(gStringVar2, gSpeciesNames[show->breakingNews.lastOpponentSpecies]); + GetMapName(gStringVar3, show->breakingNews.location, 0); + sTVShowState = 6; + break; + case 6: + TVShowConvertInternationalString(gStringVar1, show->breakingNews.playerName, show->breakingNews.language); + StringCopy(gStringVar2, gSpeciesNames[show->breakingNews.lastOpponentSpecies]); + StringCopy(gStringVar3, gSpeciesNames[show->breakingNews.poke1Species]); + switch (show->breakingNews.outcome) + { + case 1: + if (show->breakingNews.lastUsedMove == MOVE_NONE) + { + sTVShowState = 12; + } + else + { + sTVShowState = 7; + } + break; + case 2: + sTVShowState = 9; + break; + case 3: + sTVShowState = 10; + break; + } + break; + case 7: + StringCopy(gStringVar1, gMoveNames[show->breakingNews.lastUsedMove]); + StringCopy(gStringVar2, gSpeciesNames[show->breakingNews.poke1Species]); + sTVShowState = 8; + break; + case 12: + TVShowConvertInternationalString(gStringVar1, show->breakingNews.playerName, show->breakingNews.language); + StringCopy(gStringVar2, gSpeciesNames[show->breakingNews.lastOpponentSpecies]); + StringCopy(gStringVar3, gSpeciesNames[show->breakingNews.poke1Species]); + sTVShowState = 8; + break; + case 8: + TVShowConvertInternationalString(gStringVar1, show->breakingNews.playerName, show->breakingNews.language); + GetMapName(gStringVar2, show->breakingNews.location, 0); + sTVShowState = 11; + break; + case 9: + case 10: + TVShowConvertInternationalString(gStringVar1, show->breakingNews.playerName, show->breakingNews.language); + StringCopy(gStringVar2, gSpeciesNames[show->breakingNews.lastOpponentSpecies]); + GetMapName(gStringVar3, show->breakingNews.location, 0); + sTVShowState = 11; + break; + case 11: + TVShowConvertInternationalString(gStringVar1, show->breakingNews.playerName, show->breakingNews.language); + TVShowDone(); + break; + } + ShowFieldMessage(sTVBreakinsNewsTextGroup[state]); +} + +void DoTVShowSecretBaseVisit(void) +{ + TVShow *show; + u8 state; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + gScriptResult = FALSE; + state = sTVShowState; + switch (state) + { + case 0: + TVShowConvertInternationalString(gStringVar1, show->secretBaseVisit.playerName, show->secretBaseVisit.language); + if (show->secretBaseVisit.nDecorations == 0) + { + sTVShowState = 2; + } + else + { + sTVShowState = 1; + } + break; + case 1: + StringCopy(gStringVar2, gDecorations[show->secretBaseVisit.decorations[0]].name); + if (show->secretBaseVisit.nDecorations == 1) + { + sTVShowState = 4; + } + else + { + sTVShowState = 3; + } + break; + case 3: + StringCopy(gStringVar2, gDecorations[show->secretBaseVisit.decorations[1]].name); + switch (show->secretBaseVisit.nDecorations) + { + case 2: + sTVShowState = 7; + break; + case 3: + sTVShowState = 6; + break; + case 4: + sTVShowState = 5; + break; + } + break; + case 5: + StringCopy(gStringVar2, gDecorations[show->secretBaseVisit.decorations[2]].name); + StringCopy(gStringVar3, gDecorations[show->secretBaseVisit.decorations[3]].name); + sTVShowState = 8; + break; + case 6: + StringCopy(gStringVar2, gDecorations[show->secretBaseVisit.decorations[2]].name); + sTVShowState = 8; + break; + case 2: + case 4: + case 7: + sTVShowState = 8; + break; + case 8: + TVShowConvertInternationalString(gStringVar1, show->secretBaseVisit.playerName, show->secretBaseVisit.language); + if (show->secretBaseVisit.avgLevel < 25) + { + sTVShowState = 12; + } + else if (show->secretBaseVisit.avgLevel < 50) + { + sTVShowState = 11; + } + else if (show->secretBaseVisit.avgLevel < 70) + { + sTVShowState = 10; + } + else + { + sTVShowState = 9; + } + break; + case 9: + case 10: + case 11: + case 12: + TVShowConvertInternationalString(gStringVar1, show->secretBaseVisit.playerName, show->secretBaseVisit.language); + StringCopy(gStringVar2, gSpeciesNames[show->secretBaseVisit.species]); + StringCopy(gStringVar3, gMoveNames[show->secretBaseVisit.move]); + sTVShowState = 13; + break; + case 13: + TVShowDone(); + break; + } + ShowFieldMessage(sTVSecretBaseVisitTextGroup[state]); +} + +void DoTVShowPokemonLotteryWinnerFlashReport(void) +{ + TVShow *show; + u8 state; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + gScriptResult = FALSE; + state = sTVShowState; + TVShowConvertInternationalString(gStringVar1, show->lottoWinner.playerName, show->lottoWinner.language); + if (show->lottoWinner.whichPrize == 0) + { + StringCopy(gStringVar2, gText_Jackpot); + } + else if (show->lottoWinner.whichPrize == 1) + { + StringCopy(gStringVar2, gText_First); + } + else if (show->lottoWinner.whichPrize == 2) + { + StringCopy(gStringVar2, gText_Second); + } + else + { + StringCopy(gStringVar2, gText_Third); + } + StringCopy(gStringVar3, ItemId_GetItem(show->lottoWinner.item)->name); + TVShowDone(); + ShowFieldMessage(sTVPokemonLotteryWinnerFlashReportTextGroup[state]); +} + +void DoTVShowThePokemonBattleSeminar(void) +{ + TVShow *show; + u8 state; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + gScriptResult = FALSE; + state = sTVShowState; + switch (state) + { + case 0: + TVShowConvertInternationalString(gStringVar1, show->battleSeminar.playerName, show->battleSeminar.language); + StringCopy(gStringVar2, gSpeciesNames[show->battleSeminar.species]); + StringCopy(gStringVar3, gSpeciesNames[show->battleSeminar.foeSpecies]); + sTVShowState = 1; + break; + case 1: + TVShowConvertInternationalString(gStringVar1, show->battleSeminar.playerName, show->battleSeminar.language); + StringCopy(gStringVar2, gSpeciesNames[show->battleSeminar.foeSpecies]); + StringCopy(gStringVar3, gMoveNames[show->battleSeminar.move]); + sTVShowState = 2; + break; + case 2: + StringCopy(gStringVar1, gSpeciesNames[show->battleSeminar.species]); + switch (show->battleSeminar.nOtherMoves) + { + case 1: + sTVShowState = 5; + break; + case 2: + sTVShowState = 4; + break; + case 3: + sTVShowState = 3; + break; + default: + sTVShowState = 6; + break; + } + break; + case 3: + StringCopy(gStringVar1, gMoveNames[show->battleSeminar.otherMoves[0]]); + StringCopy(gStringVar2, gMoveNames[show->battleSeminar.otherMoves[1]]); + StringCopy(gStringVar3, gMoveNames[show->battleSeminar.otherMoves[2]]); + sTVShowState = 6; + break; + case 4: + StringCopy(gStringVar1, gMoveNames[show->battleSeminar.otherMoves[0]]); + StringCopy(gStringVar2, gMoveNames[show->battleSeminar.otherMoves[1]]); + sTVShowState = 6; + break; + case 5: + StringCopy(gStringVar2, gMoveNames[show->battleSeminar.otherMoves[0]]); + sTVShowState = 6; + break; + case 6: + StringCopy(gStringVar1, gMoveNames[show->battleSeminar.betterMove]); + StringCopy(gStringVar2, gMoveNames[show->battleSeminar.move]); + TVShowDone(); + break; + } + ShowFieldMessage(sTVThePokemonBattleSeminarTextGroup[state]); +} + +void DoTVShowTrainerFanClubSpecial(void) +{ + TVShow *show; + u8 state; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + gScriptResult = FALSE; + state = sTVShowState; + switch (state) + { + case 0: + TVShowConvertInternationalString(gStringVar1, show->fanClubSpecial.idolName, show->fanClubSpecial.idolNameLanguage); + TVShowConvertInternationalString(gStringVar2, show->fanClubSpecial.playerName, show->fanClubSpecial.language); + CopyEasyChatWord(gStringVar3, show->fanClubSpecial.words[0]); + if (show->fanClubSpecial.score >= 90) + { + sTVShowState = 1; + } + else if (show->fanClubSpecial.score >= 70) + { + sTVShowState = 2; + } + else if (show->fanClubSpecial.score >= 30) + { + sTVShowState = 3; + } + else + { + sTVShowState = 4; + } + break; + case 1: + TVShowConvertInternationalString(gStringVar1, show->fanClubSpecial.idolName, show->fanClubSpecial.idolNameLanguage); + TVShowConvertInternationalString(gStringVar2, show->fanClubSpecial.playerName, show->fanClubSpecial.language); + TV_PrintIntToStringVar(2, show->fanClubSpecial.score); + sTVShowState = 5; + break; + case 2: + TVShowConvertInternationalString(gStringVar1, show->fanClubSpecial.idolName, show->fanClubSpecial.idolNameLanguage); + TVShowConvertInternationalString(gStringVar2, show->fanClubSpecial.playerName, show->fanClubSpecial.language); + TV_PrintIntToStringVar(2, show->fanClubSpecial.score); + sTVShowState = 5; + break; + case 3: + TVShowConvertInternationalString(gStringVar1, show->fanClubSpecial.idolName, show->fanClubSpecial.idolNameLanguage); + TVShowConvertInternationalString(gStringVar2, show->fanClubSpecial.playerName, show->fanClubSpecial.language); + TV_PrintIntToStringVar(2, show->fanClubSpecial.score); + sTVShowState = 5; + break; + case 4: + TVShowConvertInternationalString(gStringVar1, show->fanClubSpecial.idolName, show->fanClubSpecial.idolNameLanguage); + TVShowConvertInternationalString(gStringVar2, show->fanClubSpecial.playerName, show->fanClubSpecial.language); + TV_PrintIntToStringVar(2, show->fanClubSpecial.score); + sTVShowState = 5; + break; + case 5: + TVShowConvertInternationalString(gStringVar1, show->fanClubSpecial.idolName, show->fanClubSpecial.idolNameLanguage); + TVShowConvertInternationalString(gStringVar2, show->fanClubSpecial.playerName, show->fanClubSpecial.language); + CopyEasyChatWord(gStringVar3, show->fanClubSpecial.words[0]); + TVShowDone(); + break; + } + ShowFieldMessage(sTVTrainerFanClubSpecialTextGroup[state]); +} + +void DoTVShowTrainerFanClub(void) +{ + TVShow *show; + u8 state; + u32 playerId; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + gScriptResult = FALSE; + state = sTVShowState; + switch (state) + { + case 0: + TVShowConvertInternationalString(gStringVar1, show->trainerFanClub.playerName, show->trainerFanClub.language); + playerId = ((show->common.trainerIdHi << 8) + show->common.trainerIdLo); + switch (playerId % 10) + { + case 0: + sTVShowState = 1; + break; + case 1: + sTVShowState = 2; + break; + case 2: + sTVShowState = 3; + break; + case 3: + sTVShowState = 4; + break; + case 4: + sTVShowState = 5; + break; + case 5: + sTVShowState = 6; + break; + case 6: + sTVShowState = 7; + break; + case 7: + sTVShowState = 8; + break; + case 8: + sTVShowState = 9; + break; + case 9: + sTVShowState = 10; + break; + } + break; + case 1: + sTVShowState = 11; + break; + case 2: + sTVShowState = 11; + break; + case 3: + sTVShowState = 11; + break; + case 4: + sTVShowState = 11; + break; + case 5: + sTVShowState = 11; + break; + case 6: + sTVShowState = 11; + break; + case 7: + sTVShowState = 11; + break; + case 8: + sTVShowState = 11; + break; + case 9: + sTVShowState = 11; + break; + case 10: + sTVShowState = 11; + break; + case 11: + TVShowConvertInternationalString(gStringVar1, show->trainerFanClub.playerName, show->trainerFanClub.language); + CopyEasyChatWord(gStringVar2, show->trainerFanClub.words[0]); + CopyEasyChatWord(gStringVar3, show->trainerFanClub.words[1]); + TVShowDone(); + } + ShowFieldMessage(sTVTrainerFanClubTextGroup[state]); +} + +void DoTVShowSpotTheCuties(void) +{ + TVShow *show; + u8 state; + u32 playerId; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + gScriptResult = FALSE; + state = sTVShowState; + switch (state) + { + case 0: + TVShowConvertInternationalString(gStringVar1, show->cuties.playerName, show->cuties.language); + TVShowConvertInternationalString(gStringVar2, show->cuties.nickname, show->cuties.pokemonNameLanguage); + if (show->cuties.nRibbons < 10) + { + sTVShowState = 1; + } + else if (show->cuties.nRibbons < 20) + { + sTVShowState = 2; + } + else + { + sTVShowState = 3; + } + break; + case 1: + case 2: + case 3: + TVShowConvertInternationalString(gStringVar1, show->cuties.playerName, show->cuties.language); + TVShowConvertInternationalString(gStringVar2, show->cuties.nickname, show->cuties.pokemonNameLanguage); + TV_PrintIntToStringVar(2, show->cuties.nRibbons); + sTVShowState = 4; + break; + case 4: + TVShowConvertInternationalString(gStringVar2, show->cuties.nickname, show->cuties.pokemonNameLanguage); + switch (show->cuties.selectedRibbon) + { + case 0: + sTVShowState = 5; + break; + case 1: + case 2: + case 3: + case 4: + sTVShowState = 6; + break; + case 5: + case 6: + case 7: + case 8: + sTVShowState = 7; + break; + case 9: + case 10: + case 11: + case 12: + sTVShowState = 8; + break; + case 13: + case 14: + case 15: + case 16: + sTVShowState = 9; + break; + case 17: + case 18: + case 19: + case 20: + sTVShowState = 10; + break; + case 21: + sTVShowState = 11; + break; + case 22: + sTVShowState = 12; + break; + case 23: + sTVShowState = 13; + break; + case 24: + sTVShowState = 14; + break; + } + break; + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + TVShowConvertInternationalString(gStringVar2, show->cuties.nickname, show->cuties.pokemonNameLanguage); + sTVShowState = 15; + break; + case 15: + TVShowDone(); + } + ShowFieldMessage(sTVCutiesTextGroup[state]); +} + +void DoTVShowPokemonNewsBattleFrontier(void) +{ + TVShow *show; + u8 state; + u32 playerId; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + gScriptResult = FALSE; + state = sTVShowState; + switch (state) + { + case 0: + switch (show->frontier.facility) + { + case 1: + sTVShowState = 1; + break; + case 2: + sTVShowState = 2; + break; + case 3: + sTVShowState = 3; + break; + case 4: + sTVShowState = 4; + break; + case 5: + sTVShowState = 5; + break; + case 6: + sTVShowState = 6; + break; + case 7: + sTVShowState = 7; + break; + case 8: + sTVShowState = 8; + break; + case 9: + sTVShowState = 9; + break; + case 10: + sTVShowState = 10; + break; + case 11: + sTVShowState = 11; + break; + case 12: + sTVShowState = 12; + break; + case 13: + sTVShowState = 13; + break; + } + break; + case 1: + TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); + TV_PrintIntToStringVar(1, show->frontier.winStreak); + sTVShowState = 14; + break; + case 2: + TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); + TV_PrintIntToStringVar(1, show->frontier.winStreak); + sTVShowState = 16; + break; + case 3: + TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); + TV_PrintIntToStringVar(1, show->frontier.winStreak); + sTVShowState = 15; + break; + case 4: + TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); + TV_PrintIntToStringVar(1, show->frontier.winStreak); + sTVShowState = 15; + break; + case 5: + TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); + TV_PrintIntToStringVar(1, show->frontier.winStreak); + sTVShowState = 14; + break; + case 6: + TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); + TV_PrintIntToStringVar(1, show->frontier.winStreak); + sTVShowState = 14; + break; + case 7: + TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); + TV_PrintIntToStringVar(1, show->frontier.winStreak); + sTVShowState = 14; + break; + case 8: + TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); + TV_PrintIntToStringVar(1, show->frontier.winStreak); + sTVShowState = 14; + break; + case 9: + TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); + TV_PrintIntToStringVar(1, show->frontier.winStreak); + sTVShowState = 14; + break; + case 10: + TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); + TV_PrintIntToStringVar(1, show->frontier.winStreak); + sTVShowState = 14; + break; + case 11: + TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); + TV_PrintIntToStringVar(1, show->frontier.winStreak); + sTVShowState = 14; + break; + case 12: + TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); + TV_PrintIntToStringVar(1, show->frontier.winStreak); + sTVShowState = 14; + break; + case 13: + TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); + TV_PrintIntToStringVar(1, show->frontier.winStreak); + sTVShowState = 14; + break; + case 14: + StringCopy(gStringVar1, gSpeciesNames[show->frontier.species1]); + StringCopy(gStringVar2, gSpeciesNames[show->frontier.species2]); + StringCopy(gStringVar3, gSpeciesNames[show->frontier.species3]); + sTVShowState = 18; + break; + case 15: + StringCopy(gStringVar1, gSpeciesNames[show->frontier.species1]); + StringCopy(gStringVar2, gSpeciesNames[show->frontier.species2]); + sTVShowState = 18; + break; + case 16: + StringCopy(gStringVar1, gSpeciesNames[show->frontier.species1]); + StringCopy(gStringVar2, gSpeciesNames[show->frontier.species2]); + StringCopy(gStringVar3, gSpeciesNames[show->frontier.species3]); + sTVShowState = 17; + break; + case 17: + StringCopy(gStringVar1, gSpeciesNames[show->frontier.species4]); + sTVShowState = 18; + break; + case 18: + TVShowConvertInternationalString(gStringVar1, show->frontier.playerName, show->frontier.language); + TVShowDone(); + break; + } + ShowFieldMessage(sTVPokemonNewsBattleFrontierTextGroup[state]); +} + +void DoTVShowWhatsNo1InHoennToday(void) +{ + TVShow *show; + u8 state; + u32 playerId; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + gScriptResult = FALSE; + state = sTVShowState; + switch (state) + { + case 0: + TVShowConvertInternationalString(gStringVar1, show->numberOne.playerName, show->numberOne.language); + switch (show->numberOne.actionIdx) + { + case 0: + sTVShowState = 1; + break; + case 1: + sTVShowState = 2; + break; + case 2: + sTVShowState = 3; + break; + case 3: + sTVShowState = 4; + break; + case 4: + sTVShowState = 5; + break; + case 5: + sTVShowState = 6; + break; + case 6: + sTVShowState = 7; + break; + } + break; + case 1: + TVShowConvertInternationalString(gStringVar1, show->numberOne.playerName, show->numberOne.language); + TV_PrintIntToStringVar(1, show->numberOne.count); + sTVShowState = 8; + break; + case 2: + TVShowConvertInternationalString(gStringVar1, show->numberOne.playerName, show->numberOne.language); + TV_PrintIntToStringVar(1, show->numberOne.count); + sTVShowState = 8; + break; + case 3: + TVShowConvertInternationalString(gStringVar1, show->numberOne.playerName, show->numberOne.language); + TV_PrintIntToStringVar(1, show->numberOne.count); + sTVShowState = 8; + break; + case 4: + TVShowConvertInternationalString(gStringVar1, show->numberOne.playerName, show->numberOne.language); + TV_PrintIntToStringVar(1, show->numberOne.count); + sTVShowState = 8; + break; + case 5: + TVShowConvertInternationalString(gStringVar1, show->numberOne.playerName, show->numberOne.language); + TV_PrintIntToStringVar(1, show->numberOne.count); + sTVShowState = 8; + break; + case 6: + TVShowConvertInternationalString(gStringVar1, show->numberOne.playerName, show->numberOne.language); + TV_PrintIntToStringVar(1, show->numberOne.count); + sTVShowState = 8; + break; + case 7: + TVShowConvertInternationalString(gStringVar1, show->numberOne.playerName, show->numberOne.language); + TV_PrintIntToStringVar(1, show->numberOne.count); + sTVShowState = 8; + break; + case 8: + TVShowConvertInternationalString(gStringVar1, show->numberOne.playerName, show->numberOne.language); + TVShowDone(); + break; + } + ShowFieldMessage(sTVWhatsNo1InHoennTodayTextGroup[state]); +} + +u8 sub_80F5180(TVShow *show) +{ + u8 i; + u8 tot; + + for (i = 0, tot = 0; i < 32; i ++) + { + if ((show->secretBaseSecrets.flags >> i) & 1) + { + tot ++; + } + } + return tot; +} + +u8 sub_80F51AC(TVShow *show, u8 a1) +{ + u8 i; + u8 tot; + + for (i = 0, tot = 0; i < 32; i ++) + { + if ((show->secretBaseSecrets.flags >> i) & 1) + { + if (tot == a1) + { + return sTVSecretBaseSecretsStateLookup[i]; + } + tot ++; + } + } + return 0; +} + +void DoTVShowSecretBaseSecrets(void) +{ + TVShow *show; + u8 state; + u8 bitCount; + u16 i; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + gScriptResult = FALSE; + state = sTVShowState; + switch (state) + { + case 0: + TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage); + TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); + bitCount = sub_80F5180(show); + if (bitCount == 0) + { + sTVShowState = 8; + } + else + { + show->secretBaseSecrets.savedState = 1; + sTVSecretBaseSecretsRandomValues[0] = Random() % bitCount; + sTVShowState = sub_80F51AC(show, sTVSecretBaseSecretsRandomValues[0]); + } + break; + case 1: + TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); + bitCount = sub_80F5180(show); + switch (bitCount) + { + case 1: + sTVShowState = 9; + break; + case 2: + show->secretBaseSecrets.savedState = 2; + if (sTVSecretBaseSecretsRandomValues[0] == 0) + { + sTVShowState = sub_80F51AC(show, 1); + } + else + { + sTVShowState = sub_80F51AC(show, 0); + } + break; + default: + for (i = 0; i < 0xFFFF; i ++) + { + sTVSecretBaseSecretsRandomValues[1] = Random() % bitCount; + if (sTVSecretBaseSecretsRandomValues[1] != sTVSecretBaseSecretsRandomValues[0]) + { + break; + } + } + show->secretBaseSecrets.savedState = 2; + sTVShowState = sub_80F51AC(show, sTVSecretBaseSecretsRandomValues[1]); + break; + } + break; + case 2: + TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); + bitCount = sub_80F5180(show); + if (bitCount == 2) + { + sTVShowState = 9; + } + else + { + for (i = 0; i < 0xFFFF; i ++) + { + sTVSecretBaseSecretsRandomValues[2] = Random() % bitCount; + if (sTVSecretBaseSecretsRandomValues[2] != sTVSecretBaseSecretsRandomValues[0] && sTVSecretBaseSecretsRandomValues[2] != sTVSecretBaseSecretsRandomValues[1]) + { + break; + } + } + show->secretBaseSecrets.savedState = 3; + sTVShowState = sub_80F51AC(show, sTVSecretBaseSecretsRandomValues[2]); + } + break; + case 3: + TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage); + TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); + TV_PrintIntToStringVar(2, show->secretBaseSecrets.stepsInBase); + if (show->secretBaseSecrets.stepsInBase <= 30) + { + sTVShowState = 4; + } + else if (show->secretBaseSecrets.stepsInBase <= 100) + { + sTVShowState = 5; + } + else + { + sTVShowState = 6; + } + break; + case 4: + TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage); + TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); + sTVShowState = 7; + break; + case 5: + TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage); + TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); + sTVShowState = 7; + break; + case 6: + TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage); + TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); + sTVShowState = 7; + break; + case 7: + TVShowConvertInternationalString(gStringVar1, show->secretBaseSecrets.baseOwnersName, show->secretBaseSecrets.baseOwnersNameLanguage); + TVShowConvertInternationalString(gStringVar2, show->secretBaseSecrets.playerName, show->secretBaseSecrets.language); + TVShowDone(); + break; + case 8: + sTVShowState = 3; + break; + case 9: + sTVShowState = 3; + break; + case 10: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 11: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 12: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 13: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 14: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 15: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 16: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 17: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 18: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 19: + StringCopy(gStringVar2, ItemId_GetItem(show->secretBaseSecrets.item)->name); + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 20: + if (show->common.trainerIdLo & 1) + { + sTVShowState = 22; + } + else + { + sTVShowState = 21; + } + break; + case 21: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 22: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 23: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 24: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 25: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 26: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 27: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 28: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 29: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 30: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 31: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 32: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 33: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 34: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 35: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 36: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 37: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 38: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 39: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 40: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 41: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 42: + sTVShowState = show->secretBaseSecrets.savedState; + break; + case 43: + sTVShowState = show->secretBaseSecrets.savedState; + break; + } + ShowFieldMessage(sTVSecretBaseSecretsTextGroup[state]); +} + +void DoTVShowSafariFanClub(void) +{ + TVShow *show; + u8 state; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + gScriptResult = FALSE; + state = sTVShowState; + switch (state) + { + case 0: + if (show->safariFanClub.nMonsCaught == 0) + { + sTVShowState = 6; + } + else if (show->safariFanClub.nMonsCaught < 4) + { + sTVShowState = 5; + } + else + { + sTVShowState = 1; + } + break; + case 1: + TVShowConvertInternationalString(gStringVar1, show->safariFanClub.playerName, show->safariFanClub.language); + TV_PrintIntToStringVar(1, show->safariFanClub.nMonsCaught); + if (show->safariFanClub.nPkblkUsed == 0) + { + sTVShowState = 3; + } + else + { + sTVShowState = 2; + } + break; + case 2: + TV_PrintIntToStringVar(1, show->safariFanClub.nPkblkUsed); + sTVShowState = 4; + break; + case 3: + sTVShowState = 4; + break; + case 4: + TVShowConvertInternationalString(gStringVar1, show->safariFanClub.playerName, show->safariFanClub.language); + sTVShowState = 10; + break; + case 5: + TVShowConvertInternationalString(gStringVar1, show->safariFanClub.playerName, show->safariFanClub.language); + TV_PrintIntToStringVar(1, show->safariFanClub.nMonsCaught); + if (show->safariFanClub.nPkblkUsed == 0) + { + sTVShowState = 8; + } + else + { + sTVShowState = 7; + } + break; + case 6: + TVShowConvertInternationalString(gStringVar1, show->safariFanClub.playerName, show->safariFanClub.language); + if (show->safariFanClub.nPkblkUsed == 0) + { + sTVShowState = 8; + } + else + { + sTVShowState = 7; + } + break; + case 7: + TV_PrintIntToStringVar(1, show->safariFanClub.nPkblkUsed); + sTVShowState = 9; + break; + case 8: + sTVShowState = 9; + break; + case 9: + TVShowConvertInternationalString(gStringVar1, show->safariFanClub.playerName, show->safariFanClub.language); + sTVShowState = 10; + break; + case 10: + TVShowDone(); + } + ShowFieldMessage(sTVSafariFanClubTextGroup[state]); +} + +void DoTVShowPokemonContestLiveUpdates2(void) +{ + TVShow *show; + u8 state; + + show = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004]; + gScriptResult = FALSE; + state = sTVShowState; + switch (state) + { + case 0: + sub_818E868(gStringVar1, show->contestLiveUpdates2.contestCategory); + if (show->contestLiveUpdates2.pokeblockState == 1) + { + sTVShowState = 1; + } + else if (show->contestLiveUpdates2.pokeblockState == 0) + { + sTVShowState = 2; + } + else + { + sTVShowState = 3; + } + break; + case 1: + case 2: + TVShowConvertInternationalString(gStringVar3, show->contestLiveUpdates2.playerName, show->contestLiveUpdates2.language); + case 3: + TVShowConvertInternationalString(gStringVar2, show->contestLiveUpdates2.nickname, show->contestLiveUpdates2.pokemonNameLanguage); + TVShowDone(); + break; + } + ShowFieldMessage(sTVPokemonContestLiveUpdates2TextGroup[state]); +} + +void TVShowDone(void) +{ + gScriptResult = TRUE; + sTVShowState = 0; + gSaveBlock1Ptr->tvShows[gSpecialVar_0x8004].common.active = FALSE; +} + +void ResetTVShowState(void) +{ + sTVShowState = 0; +} diff --git a/sym_bss.txt b/sym_bss.txt index f32300b15..db7495182 100644 --- a/sym_bss.txt +++ b/sym_bss.txt @@ -25,16 +25,9 @@ .include "src/fldeff_cut.o" .include "src/script_menu.o" .include "src/record_mixing.o" + .include "src/tv.o" -gUnknown_03001174: @ 3001174 - .space 0x1 - -gUnknown_03001175: @ 3001175 - .space 0x1 - -gUnknown_03001176: @ 3001176 - .space 0x2 - + .space 1 @ TODO: define this u32 in mauville_old_man gUnknown_03001178: @ 3001178 .space 0x4 diff --git a/sym_common.txt b/sym_common.txt index 7ba414cab..acc6cf862 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -210,13 +210,7 @@ gBattleMainFunc: @ 3005D04 .space 0xC gBattleResults: @ 3005D10 - .space 0x2A - -gUnknown_03005D3A: @ 3005D3A - .space 0xC - -gUnknown_03005D46: @ 3005D46 - .space 0xE + .space 0x44 gLeveledUpInBattle: @ 3005D54 .space 0xC @@ -326,17 +320,7 @@ gUnknown_030060B4: @ 30060B4 gUnknown_030060B8: @ 30060B8 .space 0x4 -gUnknown_030060BC: @ 30060BC - .space 0x4 - -gUnknown_030060C0: @ 30060C0 - .space 0x10 - -gUnknown_030060D0: @ 30060D0 - .space 0x10 - -gUnknown_030060E0: @ 30060E0 - .space 0x50 + .include "tv.o" gUnknown_03006130: @ 3006130 .space 0x34 @@ -393,7 +377,7 @@ gUnknown_030061EC: @ 30061EC .space 0x4 .include"save.o" - + .space 0x8 gRamSaveSectionLocations: @ 3006220 diff --git a/sym_ewram.txt b/sym_ewram.txt index 944a51b62..6f7b4b4d8 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1029,16 +1029,7 @@ gBagPockets: @ 2039DD8 .space 0x28 gUnknown_02039E00: @ 2039E00 - .space 0x2 - -gUnknown_02039E02: @ 2039E02 - .space 0xB - -gUnknown_02039E0D: @ 2039E0D - .space 0x11 - -gUnknown_02039E1E: @ 2039E1E - .space 0xE2 + .space 0x100 gUnknown_02039F00: @ 2039F00 .space 0x8 @@ -1145,26 +1136,7 @@ gUnknown_0203A01D: @ 203A01D gUnknown_0203A020: @ 203A020 .space 0x4 -gUnknown_0203A024: @ 203A024 - .space 0x2 - -gUnknown_0203A026: @ 203A026 - .space 0x2 - -gUnknown_0203A028: @ 203A028 - .space 0x2 - -gUnknown_0203A02A: @ 203A02A - .space 0x2 - -gUnknown_0203A02C: @ 203A02C - .space 0x4 - -gUnknown_0203A030: @ 203A030 - .space 0x1 - -gUnknown_0203A031: @ 203A031 - .space 0x3 + .include "src/tv.o" gUnknown_0203A034: @ 203A034 .space 0x4 -- cgit v1.2.3 From 2852f4f1b86f1a5fbfdceb296d184158068b5ad5 Mon Sep 17 00:00:00 2001 From: Diegoisawesome Date: Fri, 13 Oct 2017 19:48:09 -0500 Subject: Continue attempt to decomp braillemessage --- include/menu.h | 1 + include/new_menu_helpers.h | 1 + src/scrcmd.c | 56 ++++++++++++++++++++++++++++------------------ 3 files changed, 36 insertions(+), 22 deletions(-) diff --git a/include/menu.h b/include/menu.h index 766aa9d39..66ac73e03 100644 --- a/include/menu.h +++ b/include/menu.h @@ -19,5 +19,6 @@ void box_print(u8, u8, u8, u8, const void *, s8, const u8 *); void sub_8198070(u8 windowId, bool8 copyToVram); void SetWindowTemplateFields(struct WindowTemplate* template, u8 priority, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 palNum, u16 baseBlock); void SetWindowBorderStyle(u8 windowId, bool8 copyToVram, u16 tileStart, u8 palette); +void 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 #endif // GUARD_MENU_H diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h index a597fc9a2..6377897d3 100644 --- a/include/new_menu_helpers.h +++ b/include/new_menu_helpers.h @@ -4,5 +4,6 @@ void sub_81973A4(void); void sub_81973C4(u8, u8); void sub_819746C(u8 windowId, bool8 copyToVram); +void sub_81973FC(u8, u8); #endif // GUARD_NEW_MENU_HELPERS_H diff --git a/src/scrcmd.c b/src/scrcmd.c index f6039142c..af314609c 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -26,6 +26,7 @@ #include "lilycove_lady.h" #include "main.h" #include "map_obj_lock.h" +#include "menu.h" #include "money.h" #include "mystery_event_script.h" #include "new_menu_helpers.h" @@ -46,6 +47,7 @@ #include "sound.h" #include "string_util.h" #include "text.h" +#include "text_window.h" #include "trainer_see.h" #include "tv.h" #include "window.h" @@ -1483,46 +1485,56 @@ bool8 ScrCmd_drawcontestwinner(struct ScriptContext *ctx) return TRUE; } -// Temporary, will come back to this later. -/*bool8 ScrCmd_braillemessage(struct ScriptContext *ctx) +// Lots of math, can't figure it out. +/* +bool8 ScrCmd_braillemessage(struct ScriptContext *ctx) { u8 *ptr = (u8 *)ScriptReadWord(ctx); - u8 *localStringVar4; + struct WindowTemplate template1; + struct WindowTemplate template2; + int i; u8 width; u8 height; - u8 temp; + int temp1; + int temp2; + u8 x; + u8 y; - StringExpandPlaceholders(gStringVar4, ptr); + StringExpandPlaceholders(gStringVar4, ptr + 6); width = GetStringWidth(6, gStringVar4, -1) / 8; if (width > 0x1C) width = 0x1C; - height = 4; - localStringVar4 = gStringVar4; - temp = width + 2; - - for (; *localStringVar4 != 0xFF; localStringVar4++) + for (i = 0, height = 4; gStringVar4[i] != 0xFF;) { - if (*localStringVar4 == 0xFE) - height += 4; + if (gStringVar4[i++] == 0xFE) + height += 3; } if (height > 0x12) height = 0x12; - temp = 0x1E - temp; + 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); - u8 v2 = ptr[0]; - u8 v3 = ptr[1]; - u8 v4 = ptr[2]; - u8 v5 = ptr[3]; - u8 v6 = ptr[4]; - u8 v7 = ptr[5]; - StringBraille(gStringVar4, ptr + 6); - MenuDrawTextWindow(v2, v3, v4, v5); - MenuPrint(gStringVar4, v6, v7); + sub_8198A50(&template1, 0, x, y, width, height, 0xF, 0x1); + template2 = template1; + gUnknown_03000F30 = AddWindow(&template2); + sub_809882C(gUnknown_03000F30, 0x214, 0xE0); + sub_81973FC(gUnknown_03000F30, 0); + PutWindowTilemap(gUnknown_03000F30); + FillWindowPixelBuffer(gUnknown_03000F30, 0x11); + PrintTextOnWindow(gUnknown_03000F30, 6, gStringVar4, temp1, temp2, 0xFF, 0x0); + CopyWindowToVram(gUnknown_03000F30, 3); return FALSE; }*/ __attribute__((naked)) -- cgit v1.2.3