summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSlawter666 <38655737+Slawter666@users.noreply.github.com>2018-09-09 15:51:13 +0100
committerSlawter666 <38655737+Slawter666@users.noreply.github.com>2018-09-09 15:51:13 +0100
commit1ba17e16668c54d4ebfff91801768267e5ce1d10 (patch)
tree88669548588ed70fe40dac73e4e204665a675991
parente1834c9d7bc961f872169e056b788fec04f39867 (diff)
parent6454740587f9a97105c45d54bf4284015a20d6d1 (diff)
Merge branch 'decompile_frontier_2' of https://github.com/DizzyEggg/pokeemerald into factory-data
-rw-r--r--asm/battle_frontier_2.s9712
-rw-r--r--asm/battle_tower.s4
-rw-r--r--asm/cable_club.s2
-rw-r--r--asm/contest_link_80F57C4.s2
-rw-r--r--asm/contest_painting.s2
-rw-r--r--asm/easy_chat.s4
-rw-r--r--asm/field_player_avatar.s10
-rw-r--r--asm/party_menu.s18
-rw-r--r--asm/pokemon_storage_system.s20
-rw-r--r--asm/pokenav.s112
-rw-r--r--asm/rom_8011DC0.s190
-rw-r--r--asm/roulette.s26
-rw-r--r--asm/script_menu.s34
-rw-r--r--asm/shop.s4
-rw-r--r--asm/slot_machine.s2
-rw-r--r--asm/trade.s10
-rw-r--r--asm/trainer_card.s74
-rw-r--r--asm/use_pokeblock.s10
-rw-r--r--data/battle_frontier_2.s92
-rw-r--r--include/constants/battle_frontier.h1
-rw-r--r--include/global.h8
-rw-r--r--include/menu.h8
-rwxr-xr-xinclude/pokemon_summary_screen.h1
-rw-r--r--include/text.h2
-rw-r--r--ld_script.txt2
-rw-r--r--src/battle_factory.c3280
-rw-r--r--src/battle_interface.c2
-rw-r--r--src/battle_pyramid_bag.c8
-rw-r--r--src/battle_records.c22
-rw-r--r--src/berry_blender.c8
-rw-r--r--src/berry_fix_program.c10
-rw-r--r--src/berry_tag_screen.c18
-rw-r--r--src/clear_save_data_screen.c4
-rw-r--r--src/coins.c2
-rw-r--r--src/credits.c2
-rw-r--r--src/decoration.c10
-rw-r--r--src/diploma.c4
-rw-r--r--src/egg_hatch.c2
-rw-r--r--src/field_region_map.c4
-rw-r--r--src/field_specials.c28
-rw-r--r--src/hall_of_fame.c32
-rwxr-xr-xsrc/item_menu.c6
-rw-r--r--src/learn_move.c4
-rw-r--r--src/link.c10
-rw-r--r--src/list_menu.c4
-rw-r--r--src/mail.c4
-rw-r--r--src/main_menu.c46
-rw-r--r--src/map_name_popup.c2
-rw-r--r--src/mauville_old_man.c6
-rw-r--r--src/menu.c38
-rw-r--r--src/menu_helpers.c2
-rw-r--r--src/money.c2
-rw-r--r--src/mystery_event_menu.c2
-rw-r--r--src/naming_screen.c14
-rw-r--r--src/option_menu.c6
-rw-r--r--src/player_pc.c16
-rw-r--r--src/pokeblock.c2
-rw-r--r--src/pokeblock_feed.c2
-rw-r--r--src/pokedex.c8
-rw-r--r--src/pokemon_storage_system.c18
-rw-r--r--src/pokemon_summary_screen.c2
-rw-r--r--src/record_mixing.c2
-rw-r--r--src/region_map.c8
-rw-r--r--src/reset_rtc_screen.c10
-rw-r--r--src/save_failed_screen.c2
-rw-r--r--src/scrcmd.c4
-rw-r--r--src/slot_machine.c8
-rw-r--r--src/start_menu.c24
-rw-r--r--src/starter_choose.c8
-rw-r--r--src/text.c4
-rw-r--r--src/trader.c6
-rw-r--r--src/wallclock.c6
-rw-r--r--sym_bss.txt9
-rw-r--r--sym_ewram.txt29
74 files changed, 3838 insertions, 10262 deletions
diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s
index 1a2233a97..d66751e05 100644
--- a/asm/battle_frontier_2.s
+++ b/asm/battle_frontier_2.s
@@ -5,9593 +5,7 @@
.text
- thumb_func_start sub_819A44C
-sub_819A44C: @ 819A44C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrb r4, [r5, 0x5]
- lsrs r4, 4
- movs r0, 0x65
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsls r4, 16
- lsrs r4, 16
- lsrs r0, 24
- cmp r4, r0
- bne _0819A4BA
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0819A4B0
- ldrh r1, [r5, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0
- beq _0819A484
- subs r0, r1, 0x1
- strh r0, [r5, 0x2E]
- b _0819A4C2
-_0819A484:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- bne _0819A4A6
- adds r0, r5, 0
- movs r1, 0
- bl StartSpriteAnim
- movs r0, 0x20
- strh r0, [r5, 0x2E]
- b _0819A4C2
-_0819A4A6:
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
- b _0819A4C2
-_0819A4B0:
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnimIfDifferent
- b _0819A4C2
-_0819A4BA:
- adds r0, r5, 0
- movs r1, 0
- bl StartSpriteAnimIfDifferent
-_0819A4C2:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_819A44C
-
- thumb_func_start sub_819A4C8
-sub_819A4C8: @ 819A4C8
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTextPrinters
- bl UpdatePaletteFade
- bl RunTasks
- pop {r0}
- bx r0
- thumb_func_end sub_819A4C8
-
- thumb_func_start sub_819A4E4
-sub_819A4E4: @ 819A4E4
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_819A4E4
-
- thumb_func_start sub_819A4F8
-sub_819A4F8: @ 819A4F8
- push {lr}
- ldr r0, =gUnknown_0300127C
- movs r1, 0
- str r1, [r0]
- ldr r0, =sub_819A514
- bl SetMainCallback2
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819A4F8
-
- thumb_func_start sub_819A514
-sub_819A514: @ 819A514
- push {r4,r5,lr}
- sub sp, 0xC
- ldr r0, =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0xA
- bls _0819A528
- b _0819A98E
-_0819A528:
- lsls r0, 2
- ldr r1, =_0819A53C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0819A53C:
- .4byte _0819A568
- .4byte _0819A5C0
- .4byte _0819A69C
- .4byte _0819A77C
- .4byte _0819A7CC
- .4byte _0819A868
- .4byte _0819A8A4
- .4byte _0819A8AC
- .4byte _0819A8C4
- .4byte _0819A8DC
- .4byte _0819A8FC
-_0819A568:
- ldr r4, =gUnknown_0203CE3C
- ldr r0, [r4]
- cmp r0, 0
- beq _0819A578
- bl Free
- movs r0, 0
- str r0, [r4]
-_0819A578:
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- str r0, [sp, 0x8]
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, =0x05006000
- add r0, sp, 0x8
- bl CpuSet
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, =gUnknown_08610428
- movs r0, 0
- movs r2, 0x3
- bl InitBgsFromTemplates
- ldr r0, =gUnknown_08610434
- bl InitWindows
- bl DeactivateAllTextPrinters
- b _0819A8E6
- .pool
-_0819A5C0:
- ldr r5, =gUnknown_0203CE2C
- movs r4, 0x88
- lsls r4, 3
- adds r0, r4, 0
- bl Alloc
- str r0, [r5]
- ldr r5, =gUnknown_0203CE30
- adds r0, r4, 0
- bl AllocZeroed
- str r0, [r5]
- ldr r5, =gUnknown_0203CE34
- movs r4, 0x80
- lsls r4, 4
- adds r0, r4, 0
- bl Alloc
- str r0, [r5]
- ldr r5, =gUnknown_0203CE38
- adds r0, r4, 0
- bl AllocZeroed
- str r0, [r5]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x4C
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x40
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x44
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x42
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x46
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0
- bl SetGpuReg
- ldr r1, =gMain
- movs r3, 0x87
- lsls r3, 3
- adds r1, r3
- b _0819A8EE
- .pool
-_0819A69C:
- bl ResetPaletteFade
- bl ResetSpriteData
- bl ResetTasks
- bl FreeAllSpritePalettes
- ldr r0, =gFrontierFactorySelectMenu_Gfx
- ldr r5, =gUnknown_0203CE2C
- ldr r1, [r5]
- movs r2, 0x88
- lsls r2, 2
- bl CpuSet
- ldr r0, =gUnknown_0861033C
- ldr r4, =gUnknown_0203CE30
- ldr r1, [r4]
- movs r2, 0x30
- bl CpuSet
- ldr r1, [r5]
- movs r2, 0x88
- lsls r2, 3
- movs r0, 0x1
- movs r3, 0
- bl LoadBgTiles
- ldr r1, [r4]
- movs r0, 0x3
- movs r2, 0x60
- movs r3, 0
- bl LoadBgTiles
- ldr r0, =gFrontierFactorySelectMenu_Tilemap
- ldr r4, =gUnknown_0203CE34
- ldr r1, [r4]
- movs r2, 0x80
- lsls r2, 3
- bl CpuSet
- ldr r1, [r4]
- movs r2, 0x80
- lsls r2, 4
- movs r0, 0x1
- movs r3, 0
- bl LoadBgTilemap
- ldr r0, =gFrontierFactorySelectMenu_Pal
- movs r1, 0
- movs r2, 0x40
- bl LoadPalette
- ldr r4, =gUnknown_0861046C
- adds r0, r4, 0
- movs r1, 0xF0
- movs r2, 0x8
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0xE0
- movs r2, 0xA
- bl LoadPalette
- ldr r0, =gUnknown_0300127C
- ldr r1, [r0]
- ldrb r0, [r1, 0x6]
- cmp r0, 0x1
- bne _0819A738
- ldr r0, =gPlttBufferUnfaded
- movs r2, 0xA9
- lsls r2, 2
- adds r1, r2
- ldrh r1, [r1]
- movs r3, 0xE4
- lsls r3, 1
- adds r0, r3
- strh r1, [r0]
-_0819A738:
- ldr r0, =gUnknown_0861039C
- movs r1, 0x20
- movs r2, 0x4
- bl LoadPalette
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _0819A8EE
- .pool
-_0819A77C:
- ldr r0, =gUnknown_0203CE38
- ldr r1, [r0]
- movs r0, 0x3
- bl SetBgTilemapBuffer
- ldr r5, =gUnknown_0861023C
- movs r4, 0x8
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r0, 0x3
- adds r1, r5, 0
- movs r2, 0xB
- movs r3, 0x4
- bl CopyToBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r0, 0x3
- adds r1, r5, 0
- movs r2, 0x2
- movs r3, 0x4
- bl CopyToBgTilemapBufferRect
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r0, 0x3
- adds r1, r5, 0
- movs r2, 0x14
- movs r3, 0x4
- bl CopyToBgTilemapBufferRect
- movs r0, 0x3
- bl CopyBgTilemapBufferToVram
- b _0819A8E6
- .pool
-_0819A7CC:
- ldr r0, =gUnknown_086103F4
- bl LoadSpritePalettes
- ldr r0, =gUnknown_086103BC
- bl LoadSpriteSheets
- ldr r0, =gUnknown_086103E4
- bl LoadCompressedObjectPic
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- ldr r0, =sub_819A4E4
- bl SetVBlankCallback
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r1, 0x9A
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- ldr r0, =gUnknown_0300127C
- ldr r0, [r0]
- ldrb r0, [r0, 0x6]
- cmp r0, 0x1
- bne _0819A854
- movs r0, 0x58
- movs r1, 0x98
- movs r2, 0x20
- movs r3, 0x60
- bl sub_819C5D0
- movs r0, 0x3
- bl ShowBg
- ldr r1, =0x00001248
- movs r0, 0x50
- bl SetGpuReg
- ldr r1, =0x0000040b
- movs r0, 0x52
- bl SetGpuReg
- b _0819A85A
- .pool
-_0819A854:
- movs r0, 0x3
- bl HideBg
-_0819A85A:
- ldr r1, =gMain
- movs r3, 0x87
- lsls r3, 3
- adds r1, r3
- b _0819A8EE
- .pool
-_0819A868:
- ldr r4, =gUnknown_0300127C
- ldr r1, [r4]
- ldrb r0, [r1, 0x6]
- cmp r0, 0x1
- bne _0819A878
- ldr r0, =gUnknown_0203CF20
- ldrb r0, [r0]
- strb r0, [r1, 0x3]
-_0819A878:
- bl sub_819A9AC
- bl sub_819AA18
- ldr r0, [r4]
- ldrb r0, [r0, 0x6]
- cmp r0, 0x1
- bne _0819A88C
- bl sub_819BE34
-_0819A88C:
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _0819A8EE
- .pool
-_0819A8A4:
- bl sub_819BA64
- movs r0, 0x2
- b _0819A8E2
-_0819A8AC:
- bl sub_819BCF8
- movs r0, 0x5
- bl PutWindowTilemap
- ldr r1, =gMain
- movs r3, 0x87
- lsls r3, 3
- adds r1, r3
- b _0819A8EE
- .pool
-_0819A8C4:
- bl sub_819B9E8
- movs r0, 0x1
- bl PutWindowTilemap
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _0819A8EE
- .pool
-_0819A8DC:
- bl sub_819B9B4
- movs r0, 0
-_0819A8E2:
- bl PutWindowTilemap
-_0819A8E6:
- ldr r1, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
-_0819A8EE:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0819A98E
- .pool
-_0819A8FC:
- ldr r0, =sub_819C69C
- movs r1, 0
- bl CreateTask
- ldr r2, =gUnknown_0300127C
- ldr r1, [r2]
- ldr r3, =0x000002a1
- adds r1, r3
- strb r0, [r1]
- ldr r3, [r2]
- ldrb r5, [r3, 0x6]
- cmp r5, 0
- bne _0819A954
- ldr r4, =gTasks
- ldr r1, =0x000002a1
- adds r0, r3, r1
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- strh r5, [r0, 0x8]
- ldr r0, =sub_819B378
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- strh r5, [r0, 0x8]
- b _0819A988
- .pool
-_0819A954:
- ldr r4, =gTasks
- ldr r2, =0x000002a1
- adds r0, r3, r2
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r2, 0
- movs r1, 0x1
- strh r1, [r0, 0x8]
- ldr r1, =0x000002a2
- adds r0, r3, r1
- strb r2, [r0]
- ldr r0, =sub_819B124
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r1, 0xD
- strh r1, [r0, 0x8]
-_0819A988:
- ldr r0, =sub_819A4C8
- bl SetMainCallback2
-_0819A98E:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819A514
-
- thumb_func_start sub_819A9AC
-sub_819A9AC: @ 819A9AC
- push {r4,r5,lr}
- ldr r5, =gUnknown_0300127C
- ldr r4, [r5]
- cmp r4, 0
- bne _0819AA12
- movs r0, 0xAB
- lsls r0, 2
- bl AllocZeroed
- str r0, [r5]
- strb r4, [r0, 0x3]
- ldr r1, [r5]
- movs r0, 0x1
- strb r0, [r1, 0x5]
- ldr r0, [r5]
- strb r4, [r0, 0x6]
- movs r2, 0
- movs r4, 0x6C
- movs r3, 0
-_0819A9D2:
- ldr r0, [r5]
- adds r1, r2, 0
- muls r1, r4
- adds r0, r1
- strb r3, [r0, 0x10]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bls _0819A9D2
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x2
- beq _0819AA0C
- movs r0, 0
- bl sub_819B484
- b _0819AA12
- .pool
-_0819AA0C:
- movs r0, 0
- bl sub_819B63C
-_0819AA12:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_819A9AC
-
- thumb_func_start sub_819AA18
-sub_819AA18: @ 819AA18
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r4, 0
- mov r8, r4
- ldr r7, =gSprites
-_0819AA24:
- lsls r1, r4, 3
- adds r1, r4
- lsls r1, 2
- subs r1, r4
- adds r1, 0x20
- lsls r1, 16
- asrs r1, 16
- ldr r0, =gUnknown_086105D8
- movs r2, 0x40
- movs r3, 0x1
- bl CreateSprite
- ldr r6, =gUnknown_0300127C
- ldr r2, [r6]
- movs r5, 0x6C
- adds r1, r4, 0
- muls r1, r5
- adds r2, r1
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r2, 0xE]
- ldrh r1, [r2, 0xE]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- mov r1, r8
- strh r1, [r0, 0x2E]
- adds r0, r4, 0
- bl sub_819ADAC
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0819AA24
- ldr r0, [r6]
- ldrb r1, [r0, 0x3]
- ldr r4, =gSprites
- muls r1, r5
- adds r0, r1
- ldrh r0, [r0, 0xE]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldr r0, =gUnknown_086105F0
- movs r2, 0x20
- ldrsh r1, [r1, r2]
- movs r2, 0x58
- movs r3, 0
- bl CreateSprite
- ldr r1, [r6]
- movs r5, 0
- strb r0, [r1, 0x4]
- ldr r0, =gUnknown_08610608
- movs r1, 0xB0
- movs r2, 0x70
- movs r3, 0
- bl CreateSprite
- ldr r1, [r6]
- strb r0, [r1, 0x1]
- ldr r0, =gUnknown_08610620
- movs r1, 0xB0
- movs r2, 0x90
- movs r3, 0
- bl CreateSprite
- ldr r1, [r6]
- strb r0, [r1, 0x2]
- ldr r0, [r6]
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldr r0, [r6]
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- ldr r0, [r6]
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x28
- strb r5, [r0]
- ldr r0, [r6]
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x29
- strb r5, [r0]
- ldr r0, [r6]
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x28
- strb r5, [r0]
- ldr r0, [r6]
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x29
- strb r5, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819AA18
-
- thumb_func_start sub_819AB40
-sub_819AB40: @ 819AB40
- push {r4-r6,lr}
- movs r4, 0
-_0819AB44:
- ldr r6, =gUnknown_0300127C
- ldr r1, [r6]
- movs r0, 0x6C
- muls r0, r4
- adds r1, r0
- ldrh r1, [r1, 0xE]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r5, =gSprites
- adds r0, r5
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0819AB44
- ldr r0, [r6]
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- ldr r0, [r6]
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- ldr r0, [r6]
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819AB40
-
- thumb_func_start sub_819ABA8
-sub_819ABA8: @ 819ABA8
- push {r4,lr}
- lsls r0, 24
- cmp r0, 0
- ble _0819ABC8
- ldr r0, =gUnknown_0300127C
- ldr r1, [r0]
- ldrb r3, [r1, 0x3]
- adds r2, r0, 0
- cmp r3, 0x5
- beq _0819ABC4
- adds r0, r3, 0x1
- b _0819ABDE
- .pool
-_0819ABC4:
- movs r0, 0
- b _0819ABDE
-_0819ABC8:
- ldr r0, =gUnknown_0300127C
- ldr r1, [r0]
- ldrb r3, [r1, 0x3]
- adds r2, r0, 0
- cmp r3, 0
- beq _0819ABDC
- subs r0, r3, 0x1
- b _0819ABDE
- .pool
-_0819ABDC:
- movs r0, 0x5
-_0819ABDE:
- strb r0, [r1, 0x3]
- ldr r2, [r2]
- ldrb r3, [r2, 0x3]
- ldr r4, =gSprites
- ldrb r0, [r2, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- movs r0, 0x6C
- muls r0, r3
- adds r2, r0
- ldrh r2, [r2, 0xE]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x20]
- strh r0, [r1, 0x20]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819ABA8
-
- thumb_func_start sub_819AC10
-sub_819AC10: @ 819AC10
- push {lr}
- lsls r0, 24
- cmp r0, 0
- ble _0819AC30
- ldr r0, =gUnknown_0300127C
- ldr r1, [r0]
- ldrb r3, [r1]
- adds r2, r0, 0
- cmp r3, 0x2
- beq _0819AC2C
- adds r0, r3, 0x1
- b _0819AC46
- .pool
-_0819AC2C:
- movs r0, 0
- b _0819AC46
-_0819AC30:
- ldr r0, =gUnknown_0300127C
- ldr r1, [r0]
- ldrb r3, [r1]
- adds r2, r0, 0
- cmp r3, 0
- beq _0819AC44
- subs r0, r3, 0x1
- b _0819AC46
- .pool
-_0819AC44:
- movs r0, 0x2
-_0819AC46:
- strb r0, [r1]
- ldr r3, =gSprites
- ldr r2, [r2]
- ldrb r0, [r2, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r0, [r2]
- lsls r0, 4
- adds r0, 0x70
- strh r0, [r1, 0x22]
- ldrb r0, [r2, 0x2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r0, [r2]
- lsls r0, 4
- adds r0, 0x70
- strh r0, [r1, 0x22]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819AC10
-
- thumb_func_start sub_819AC78
-sub_819AC78: @ 819AC78
- push {lr}
- lsls r0, 24
- cmp r0, 0
- ble _0819AC98
- ldr r0, =gUnknown_0300127C
- ldr r1, [r0]
- ldrb r3, [r1, 0x7]
- adds r2, r0, 0
- cmp r3, 0x1
- beq _0819AC94
- adds r0, r3, 0x1
- b _0819ACAE
- .pool
-_0819AC94:
- movs r0, 0
- b _0819ACAE
-_0819AC98:
- ldr r0, =gUnknown_0300127C
- ldr r1, [r0]
- ldrb r3, [r1, 0x7]
- adds r2, r0, 0
- cmp r3, 0
- beq _0819ACAC
- subs r0, r3, 0x1
- b _0819ACAE
- .pool
-_0819ACAC:
- movs r0, 0x1
-_0819ACAE:
- strb r0, [r1, 0x7]
- ldr r3, =gSprites
- ldr r2, [r2]
- ldrb r0, [r2, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r0, [r2, 0x7]
- lsls r0, 4
- adds r0, 0x70
- strh r0, [r1, 0x22]
- ldrb r0, [r2, 0x2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r0, [r2, 0x7]
- lsls r0, 4
- adds r0, 0x70
- strh r0, [r1, 0x22]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819AC78
-
- thumb_func_start sub_819ACE0
-sub_819ACE0: @ 819ACE0
- push {r4-r6,lr}
- ldr r5, =gUnknown_0300127C
- ldr r0, [r5]
- ldrb r6, [r0, 0x3]
- movs r1, 0x6C
- adds r4, r6, 0
- muls r4, r1
- adds r0, r4
- ldrb r0, [r0, 0x10]
- cmp r0, 0
- beq _0819AD60
- movs r0, 0x64
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r1, [r5]
- ldrb r0, [r1, 0x5]
- cmp r0, 0x3
- bne _0819AD44
- adds r0, r1, r4
- ldrb r0, [r0, 0x10]
- cmp r0, 0x1
- bne _0819AD44
- movs r2, 0
- ldrb r0, [r1, 0x10]
- cmp r0, 0x2
- beq _0819AD32
- movs r4, 0x6C
-_0819AD1A:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bhi _0819AD32
- ldr r0, [r5]
- adds r1, r2, 0
- muls r1, r4
- adds r0, r1
- ldrb r0, [r0, 0x10]
- cmp r0, 0x2
- bne _0819AD1A
-_0819AD32:
- cmp r2, 0x6
- beq _0819AD9C
- ldr r0, =gUnknown_0300127C
- ldr r1, [r0]
- movs r0, 0x6C
- muls r0, r2
- adds r1, r0
- movs r0, 0x1
- strb r0, [r1, 0x10]
-_0819AD44:
- ldr r2, =gUnknown_0300127C
- ldr r1, [r2]
- movs r0, 0x6C
- muls r0, r6
- adds r1, r0
- movs r0, 0
- strb r0, [r1, 0x10]
- ldr r1, [r2]
- ldrb r0, [r1, 0x5]
- subs r0, 0x1
- b _0819AD78
- .pool
-_0819AD60:
- movs r0, 0x65
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r0, [r5]
- adds r1, r0, r4
- ldrb r0, [r0, 0x5]
- strb r0, [r1, 0x10]
- ldr r1, [r5]
- ldrb r0, [r1, 0x5]
- adds r0, 0x1
-_0819AD78:
- strb r0, [r1, 0x5]
- ldr r2, =gSprites
- ldr r0, =gUnknown_0300127C
- ldr r0, [r0]
- movs r1, 0x6C
- muls r1, r6
- adds r0, r1
- ldrh r0, [r0, 0xE]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
-_0819AD9C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819ACE0
-
- thumb_func_start sub_819ADAC
-sub_819ADAC: @ 819ADAC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gUnknown_0300127C
- ldr r0, [r0]
- movs r1, 0x6C
- muls r1, r4
- adds r0, r1
- ldrb r0, [r0, 0x10]
- cmp r0, 0
- beq _0819ADCC
- movs r0, 0x65
- b _0819ADCE
- .pool
-_0819ADCC:
- movs r0, 0x64
-_0819ADCE:
- bl IndexOfSpritePaletteTag
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, =gSprites
- ldr r0, =gUnknown_0300127C
- ldr r0, [r0]
- movs r1, 0x6C
- muls r1, r4
- adds r0, r1
- ldrh r0, [r0, 0xE]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- lsls r3, 4
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r3
- strb r0, [r1, 0x5]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819ADAC
-
- thumb_func_start sub_819AE08
-sub_819AE08: @ 819AE08
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r6, r0, r1
- movs r1, 0x8
- ldrsh r0, [r6, r1]
- cmp r0, 0x7
- beq _0819AE64
- cmp r0, 0x7
- bgt _0819AE30
- cmp r0, 0x6
- beq _0819AE36
- b _0819AF50
- .pool
-_0819AE30:
- cmp r0, 0x8
- beq _0819AEE8
- b _0819AF50
-_0819AE36:
- ldr r1, =gPlttBufferUnfaded
- ldr r0, =gPlttBufferFaded
- movs r2, 0xE4
- lsls r2, 1
- adds r0, r2
- ldrh r0, [r0]
- adds r1, r2
- movs r2, 0
- strh r0, [r1]
- movs r0, 0x1
- negs r0, r0
- str r2, [sp]
- movs r1, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r0, 0x7
- strh r0, [r6, 0x8]
- b _0819AF50
- .pool
-_0819AE64:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _0819AF50
- ldr r4, =gUnknown_0300127C
- ldr r0, [r4]
- ldr r2, =0x000002a1
- adds r0, r2
- ldrb r0, [r0]
- bl DestroyTask
- ldr r1, [r4]
- movs r3, 0xA6
- lsls r3, 2
- adds r0, r1, r3
- ldr r0, [r0]
- movs r2, 0xA8
- lsls r2, 2
- adds r1, r2
- bl sub_819F444
- bl sub_819AB40
- ldr r4, =gUnknown_0203CE2C
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r4, =gUnknown_0203CE30
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r4, =gUnknown_0203CE34
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r4, =gUnknown_0203CE38
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- bl FreeAllWindowBuffers
- movs r0, 0x8
- strh r0, [r6, 0x8]
- b _0819AF50
- .pool
-_0819AEE8:
- ldr r4, =gUnknown_0300127C
- ldr r1, [r4]
- ldr r0, =gPlttBufferUnfaded
- movs r3, 0xE4
- lsls r3, 1
- adds r0, r3
- ldrh r0, [r0]
- adds r3, 0xDC
- adds r1, r3
- strh r0, [r1]
- adds r0, r2, 0
- bl DestroyTask
- ldr r1, [r4]
- movs r0, 0x1
- strb r0, [r1, 0x6]
- ldr r0, [r4]
- ldrb r6, [r0, 0x3]
- ldr r4, =gUnknown_0203CE3C
- movs r0, 0x96
- lsls r0, 2
- bl AllocZeroed
- str r0, [r4]
- movs r4, 0
-_0819AF1A:
- ldr r5, =gUnknown_0203CE3C
- ldr r1, [r5]
- movs r0, 0x64
- muls r0, r4
- adds r0, r1
- ldr r1, =gUnknown_0300127C
- ldr r1, [r1]
- movs r2, 0x6C
- muls r2, r4
- adds r1, r2
- adds r1, 0x14
- movs r2, 0x64
- bl memcpy
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0819AF1A
- ldr r1, [r5]
- ldr r0, =sub_819A514
- str r0, [sp]
- movs r0, 0x1
- adds r2, r6, 0
- movs r3, 0x5
- bl ShowPokemonSummaryScreen
-_0819AF50:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819AE08
-
- thumb_func_start bc_exit_to_overworld
-bc_exit_to_overworld: @ 819AF68
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r7, =gUnknown_0300127C
- ldr r0, [r7]
- movs r1, 0xA8
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0819B00E
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0
- beq _0819AFA0
- cmp r1, 0x1
- beq _0819AFB8
- b _0819B00E
- .pool
-_0819AFA0:
- movs r0, 0x1
- negs r0, r0
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0819B00E
-_0819AFB8:
- bl UpdatePaletteFade
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _0819B00E
- bl sub_819B764
- ldr r0, [r7]
- ldr r1, =0x000002a1
- adds r0, r1
- ldrb r0, [r0]
- bl DestroyTask
- bl sub_819AB40
- ldr r4, =gUnknown_0203CE2C
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r4, =gUnknown_0203CE34
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r4, =gUnknown_0203CE38
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r0, [r7]
- bl Free
- str r5, [r7]
- bl FreeAllWindowBuffers
- ldr r0, =CB2_ReturnToFieldContinueScript
- bl SetMainCallback2
- adds r0, r6, 0
- bl DestroyTask
-_0819B00E:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end bc_exit_to_overworld
-
- thumb_func_start sub_819B02C
-sub_819B02C: @ 819B02C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r7, =gUnknown_0300127C
- ldr r0, [r7]
- movs r1, 0xA8
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0819B11A
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x5
- beq _0819B084
- cmp r0, 0x5
- bgt _0819B06C
- cmp r0, 0x4
- beq _0819B07A
- b _0819B11A
- .pool
-_0819B06C:
- cmp r0, 0xA
- bne _0819B11A
- bl sub_819C4B4
- movs r0, 0x4
- strh r0, [r5, 0x8]
- b _0819B11A
-_0819B07A:
- bl sub_819B8D4
- movs r0, 0x5
- strh r0, [r5, 0x8]
- b _0819B11A
-_0819B084:
- ldr r2, =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- mov r8, r0
- movs r6, 0x1
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _0819B0B8
- movs r0, 0x5
- bl PlaySE
- ldr r0, [r7]
- ldrb r4, [r0, 0x7]
- cmp r4, 0
- bne _0819B0C6
- bl sub_819C568
- strh r4, [r5, 0x8]
- ldr r0, =bc_exit_to_overworld
- str r0, [r5]
- b _0819B11A
- .pool
-_0819B0B8:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0819B0EC
- movs r0, 0x5
- bl PlaySE
-_0819B0C6:
- movs r0, 0x4
- bl sub_819B958
- bl sub_819BC9C
- ldr r0, [r7]
- ldr r1, =0x000002a2
- adds r0, r1
- mov r1, r8
- strb r1, [r0]
- strh r6, [r5, 0x8]
- ldr r0, =sub_819B378
- str r0, [r5]
- b _0819B11A
- .pool
-_0819B0EC:
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0819B106
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl sub_819AC78
- b _0819B11A
-_0819B106:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0819B11A
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_819AC78
-_0819B11A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_819B02C
-
- thumb_func_start sub_819B124
-sub_819B124: @ 819B124
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x8]
- subs r0, 0x2
- lsls r0, 16
- asrs r0, 16
- adds r6, r1, 0
- cmp r0, 0xB
- bls _0819B144
- b _0819B36E
-_0819B144:
- lsls r0, 2
- ldr r1, =_0819B158
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0819B158:
- .4byte _0819B188
- .4byte _0819B1EC
- .4byte _0819B36E
- .4byte _0819B36E
- .4byte _0819B36E
- .4byte _0819B36E
- .4byte _0819B36E
- .4byte _0819B1BC
- .4byte _0819B36E
- .4byte _0819B36E
- .4byte _0819B300
- .4byte _0819B35C
-_0819B188:
- ldr r0, =gUnknown_0300127C
- ldr r1, [r0]
- ldrb r0, [r1, 0x6]
- cmp r0, 0
- bne _0819B1A2
- ldr r2, =0x00000299
- adds r0, r1, r2
- movs r7, 0xA8
- lsls r7, 2
- adds r1, r7
- movs r2, 0
- bl sub_819F2B4
-_0819B1A2:
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- movs r0, 0x9
- b _0819B36C
- .pool
-_0819B1BC:
- ldr r4, =gUnknown_0300127C
- ldr r0, [r4]
- movs r1, 0xA8
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0819B1CE
- b _0819B36E
-_0819B1CE:
- bl sub_819B844
- ldr r1, [r4]
- movs r0, 0
- strb r0, [r1, 0x6]
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- b _0819B344
- .pool
-_0819B1EC:
- ldr r2, =gMain
- ldrh r1, [r2, 0x2E]
- movs r7, 0x1
- movs r6, 0x1
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _0819B27C
- movs r0, 0x5
- bl PlaySE
- bl sub_819BC04
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x1
- bne _0819B228
- ldr r0, =gUnknown_0300127C
- ldr r0, [r0]
- ldr r2, =0x000002a2
- adds r0, r2
- b _0819B2AC
- .pool
-_0819B228:
- cmp r0, 0x2
- bne _0819B248
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0xA
- strh r1, [r0, 0x8]
- ldr r1, =sub_819B02C
- str r1, [r0]
- b _0819B36E
- .pool
-_0819B248:
- cmp r1, 0x3
- bne _0819B260
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0xB
- strh r1, [r0, 0x8]
- b _0819B2BA
- .pool
-_0819B260:
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x6
- strh r1, [r0, 0x8]
- ldr r1, =sub_819AE08
- str r1, [r0]
- b _0819B36E
- .pool
-_0819B27C:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0819B2D0
- movs r0, 0x5
- bl PlaySE
- ldr r4, =gUnknown_0300127C
- ldr r1, [r4]
- movs r2, 0xA6
- lsls r2, 2
- adds r0, r1, r2
- ldr r0, [r0]
- adds r2, 0x8
- adds r1, r2
- movs r2, 0
- bl sub_819F3F8
- movs r0, 0x3
- bl sub_819B958
- ldr r0, [r4]
- ldr r1, =0x000002a2
- adds r0, r1
-_0819B2AC:
- strb r7, [r0]
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r6, [r0, 0x8]
-_0819B2BA:
- ldr r1, =sub_819B378
- str r1, [r0]
- b _0819B36E
- .pool
-_0819B2D0:
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0819B2EA
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl sub_819AC10
- b _0819B36E
-_0819B2EA:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0819B36E
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_819AC10
- b _0819B36E
-_0819B300:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0
- bne _0819B36E
- ldr r4, =gUnknown_0300127C
- ldr r2, [r4]
- ldrb r0, [r2, 0x6]
- cmp r0, 0x1
- bne _0819B338
- ldr r1, =gPlttBufferFaded
- movs r7, 0xA9
- lsls r7, 2
- adds r0, r2, r7
- ldrh r0, [r0]
- movs r2, 0xE4
- lsls r2, 1
- adds r1, r2
- strh r0, [r1]
- ldr r0, =gPlttBufferUnfaded
- subs r7, 0xBC
- adds r1, r0, r7
- ldrh r1, [r1]
- adds r0, r2
- strh r1, [r0]
-_0819B338:
- ldr r0, [r4]
- strb r3, [r0, 0x6]
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r6
-_0819B344:
- movs r1, 0x3
- strh r1, [r0, 0x8]
- b _0819B36E
- .pool
-_0819B35C:
- bl sub_819B844
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- movs r0, 0xC
-_0819B36C:
- strh r0, [r1, 0x8]
-_0819B36E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819B124
- thumb_func_start sub_819B378
-sub_819B378: @ 819B378
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r5, =gUnknown_0300127C
- ldr r3, [r5]
- movs r7, 0xA8
- lsls r7, 2
- adds r0, r3, r7
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0819B476
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _0819B3DC
- cmp r1, 0x1
- bgt _0819B3B4
- cmp r1, 0
- beq _0819B3BA
- b _0819B476
- .pool
-_0819B3B4:
- cmp r1, 0xB
- beq _0819B440
- b _0819B476
-_0819B3BA:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0819B476
- movs r0, 0x1
- movs r1, 0x1
- strh r1, [r4, 0x8]
- ldr r2, =0x000002a2
- adds r1, r3, r2
- strb r0, [r1]
- b _0819B476
- .pool
-_0819B3DC:
- ldr r2, =gMain
- ldrh r0, [r2, 0x2E]
- ands r1, r0
- cmp r1, 0
- beq _0819B40C
- movs r0, 0x5
- bl PlaySE
- ldr r0, [r5]
- ldr r1, =0x000002a2
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- movs r0, 0x2
- strh r0, [r4, 0x8]
- ldr r0, =sub_819B124
- str r0, [r4]
- b _0819B476
- .pool
-_0819B40C:
- ldrh r1, [r2, 0x30]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0819B422
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- b _0819B432
-_0819B422:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0819B476
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
-_0819B432:
- bl sub_819ABA8
- bl sub_819BCF8
- bl sub_819B9E8
- b _0819B476
-_0819B440:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r6, 0x1
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _0819B476
- movs r0, 0x5
- bl PlaySE
- ldr r1, [r5]
- movs r2, 0xA6
- lsls r2, 2
- adds r0, r1, r2
- ldr r0, [r0]
- adds r1, r7
- movs r2, 0
- bl sub_819F3F8
- bl sub_819BA64
- ldr r0, [r5]
- ldr r1, =0x000002a2
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- strh r6, [r4, 0x8]
-_0819B476:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819B378
-
- thumb_func_start sub_819B484
-sub_819B484: @ 819B484
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x24
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x10]
- movs r6, 0
- add r0, sp, 0xC
- strb r6, [r0]
- ldr r0, =0x000040ce
- bl VarGet
- lsls r0, 24
- lsrs r0, 24
- adds r6, r0, 0
- ldr r7, =gSaveBlock2Ptr
- ldr r2, [r7]
- ldr r0, =0x00000ca9
- adds r4, r2, r0
- ldrb r0, [r4]
- lsls r0, 30
- lsrs r0, 30
- adds r5, r0, 0
- lsls r0, r5, 1
- lsls r1, r6, 2
- adds r0, r1
- ldr r1, =0x00000de2
- adds r2, r1
- adds r2, r0
- ldrh r0, [r2]
- movs r1, 0x7
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x18]
- ldr r1, =gFacilityTrainerMons
- ldr r0, =gBattleFrontierMons
- str r0, [r1]
- ldrb r1, [r4]
- movs r0, 0x3
- ands r0, r1
- movs r2, 0x32
- str r2, [sp, 0x14]
- cmp r0, 0
- beq _0819B4EA
- movs r3, 0x64
- str r3, [sp, 0x14]
-_0819B4EA:
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_81A6F70
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x1C]
- ldr r1, [r7]
- ldrb r0, [r1, 0xA]
- mov r9, r0
- ldrb r0, [r1, 0xB]
- lsls r0, 8
- mov r2, r9
- orrs r2, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 16
- orrs r2, r0
- ldrb r0, [r1, 0xD]
- lsls r0, 24
- orrs r2, r0
- mov r9, r2
- movs r3, 0
- mov r8, r3
-_0819B518:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- mov r2, r8
- lsls r0, r2, 1
- add r0, r8
- lsls r0, 2
- adds r1, r0
- movs r3, 0xE7
- lsls r3, 4
- adds r1, r3
- ldrh r5, [r1]
- ldr r0, =gUnknown_0300127C
- ldr r1, [r0]
- ldr r2, [sp, 0x10]
- add r2, r8
- movs r3, 0x6C
- adds r0, r2, 0
- muls r0, r3
- adds r1, r0
- strh r5, [r1, 0xC]
- mov r10, r2
- ldr r0, [sp, 0x1C]
- cmp r8, r0
- bcs _0819B570
- ldr r0, [sp, 0x18]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- b _0819B572
- .pool
-_0819B570:
- ldr r0, [sp, 0x18]
-_0819B572:
- movs r1, 0
- bl sub_81A6CA8
- lsls r0, 24
- lsrs r6, r0, 24
- movs r1, 0x6C
- mov r4, r10
- muls r4, r1
- adds r4, 0xC
- ldr r2, =gUnknown_0300127C
- ldr r0, [r2]
- adds r0, r4
- adds r0, 0x8
- ldr r1, =gFacilityTrainerMons
- ldr r2, [r1]
- lsls r5, 4
- adds r2, r5, r2
- ldrh r1, [r2]
- ldrb r3, [r2, 0xC]
- str r6, [sp]
- ldrb r2, [r2, 0xB]
- str r2, [sp, 0x4]
- mov r2, r9
- str r2, [sp, 0x8]
- ldr r2, [sp, 0x14]
- bl CreateMonWithEVSpreadPersonalityOTID
- movs r1, 0
- add r0, sp, 0xC
- strb r1, [r0]
- movs r6, 0
- adds r7, r5, 0
- movs r3, 0x1
- add r8, r3
- ldr r3, =gUnknown_0300127C
-_0819B5B8:
- ldr r0, [r3]
- adds r0, r4
- adds r0, 0x8
- ldr r5, =gFacilityTrainerMons
- ldr r1, [r5]
- adds r1, r7, r1
- lsls r2, r6, 1
- adds r1, 0x2
- adds r1, r2
- ldrh r1, [r1]
- adds r2, r6, 0
- str r3, [sp, 0x20]
- bl sub_81A7024
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, [sp, 0x20]
- cmp r6, 0x3
- bls _0819B5B8
- movs r0, 0x6C
- mov r4, r10
- muls r4, r0
- adds r4, 0xC
- ldr r1, =gUnknown_0300127C
- ldr r0, [r1]
- adds r0, r4
- adds r0, 0x8
- movs r1, 0x20
- add r2, sp, 0xC
- bl SetMonData
- ldr r2, =gUnknown_0300127C
- ldr r0, [r2]
- adds r0, r4
- adds r0, 0x8
- ldr r1, [r5]
- adds r1, r7, r1
- ldrb r2, [r1, 0xA]
- lsls r2, 1
- ldr r1, =gBattleFrontierHeldItems
- adds r2, r1
- movs r1, 0xC
- bl SetMonData
- mov r3, r8
- lsls r0, r3, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x5
- bhi _0819B620
- b _0819B518
-_0819B620:
- 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_819B484
-
- thumb_func_start sub_819B63C
-sub_819B63C: @ 819B63C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x10]
- add r0, sp, 0xC
- movs r1, 0
- strb r1, [r0]
- ldr r2, =gFacilityTrainerMons
- ldr r0, =gSlateportBattleTentMons
- str r0, [r2]
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- ldrb r3, [r1, 0xA]
- ldrb r0, [r1, 0xB]
- lsls r0, 8
- orrs r3, r0
- ldrb r0, [r1, 0xC]
- lsls r0, 16
- orrs r3, r0
- ldrb r0, [r1, 0xD]
- lsls r0, 24
- orrs r3, r0
- mov r10, r3
- movs r7, 0
- mov r9, r7
-_0819B678:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- mov r2, r9
- lsls r0, r2, 1
- add r0, r9
- lsls r0, 2
- adds r1, r0
- movs r3, 0xE7
- lsls r3, 4
- adds r1, r3
- ldrh r1, [r1]
- mov r8, r1
- ldr r7, =gUnknown_0300127C
- ldr r0, [r7]
- ldr r6, [sp, 0x10]
- add r6, r9
- movs r1, 0x6C
- adds r4, r6, 0
- muls r4, r1
- adds r1, r0, r4
- mov r2, r8
- strh r2, [r1, 0xC]
- adds r4, 0xC
- adds r0, r4
- adds r0, 0x8
- ldr r3, =gFacilityTrainerMons
- ldr r2, [r3]
- mov r7, r8
- lsls r5, r7, 4
- adds r2, r5, r2
- ldrh r1, [r2]
- ldrb r3, [r2, 0xC]
- movs r7, 0
- str r7, [sp]
- ldrb r2, [r2, 0xB]
- str r2, [sp, 0x4]
- mov r2, r10
- str r2, [sp, 0x8]
- movs r2, 0x1E
- bl CreateMonWithEVSpreadPersonalityOTID
- add r0, sp, 0xC
- movs r3, 0
- strb r3, [r0]
- movs r0, 0x1
- add r9, r0
-_0819B6D4:
- ldr r1, =gUnknown_0300127C
- ldr r0, [r1]
- adds r0, r4
- adds r0, 0x8
- ldr r3, =gFacilityTrainerMons
- ldr r2, [r3]
- mov r3, r8
- lsls r1, r3, 4
- adds r1, r2
- lsls r2, r7, 1
- adds r1, 0x2
- adds r1, r2
- ldrh r1, [r1]
- adds r2, r7, 0
- bl sub_81A7024
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0x3
- bls _0819B6D4
- movs r7, 0x6C
- adds r4, r6, 0
- muls r4, r7
- adds r4, 0xC
- ldr r1, =gUnknown_0300127C
- ldr r0, [r1]
- adds r0, r4
- adds r0, 0x8
- movs r1, 0x20
- add r2, sp, 0xC
- bl SetMonData
- ldr r2, =gUnknown_0300127C
- ldr r0, [r2]
- adds r0, r4
- adds r0, 0x8
- ldr r3, =gFacilityTrainerMons
- ldr r1, [r3]
- adds r1, r5, r1
- ldrb r2, [r1, 0xA]
- lsls r2, 1
- ldr r1, =gBattleFrontierHeldItems
- adds r2, r1
- movs r1, 0xC
- bl SetMonData
- mov r7, r9
- lsls r0, r7, 24
- lsrs r0, 24
- mov r9, r0
- cmp r0, 0x5
- bls _0819B678
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819B63C
-
- thumb_func_start sub_819B764
-sub_819B764: @ 819B764
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r7, 0
- ldr r0, =gUnknown_0300127C
- mov r10, r0
- ldr r1, =gSaveBlock2Ptr
- mov r8, r1
-_0819B778:
- movs r2, 0
- adds r0, r7, 0x1
- mov r9, r0
-_0819B77E:
- mov r1, r10
- ldr r0, [r1]
- movs r1, 0x6C
- adds r6, r2, 0
- muls r6, r1
- adds r1, r0, r6
- ldrb r0, [r1, 0x10]
- cmp r0, r9
- bne _0819B81C
- movs r0, 0x64
- adds r5, r7, 0
- muls r5, r0
- ldr r2, =gPlayerParty
- adds r5, r2
- adds r1, 0x14
- adds r0, r5, 0
- movs r2, 0x64
- bl memcpy
- mov r0, r8
- ldr r1, [r0]
- lsls r4, r7, 1
- adds r4, r7
- lsls r4, 2
- adds r1, r4
- mov r2, r10
- ldr r0, [r2]
- adds r0, r6
- ldrh r0, [r0, 0xC]
- movs r2, 0xE7
- lsls r2, 4
- adds r1, r2
- strh r0, [r1]
- adds r0, r5, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- mov r2, r8
- ldr r1, [r2]
- ldr r2, =0x00000e74
- adds r1, r2
- adds r1, r4
- str r0, [r1]
- adds r0, r5, 0
- movs r1, 0x2E
- movs r2, 0
- bl GetBoxMonData
- mov r2, r8
- ldr r1, [r2]
- adds r1, r4
- ldr r2, =0x00000e79
- adds r1, r2
- strb r0, [r1]
- adds r0, r5, 0
- movs r1, 0x28
- movs r2, 0
- bl GetBoxMonData
- mov r2, r8
- ldr r1, [r2]
- adds r1, r4
- ldr r2, =0x00000e78
- adds r1, r2
- strb r0, [r1]
- b _0819B826
- .pool
-_0819B81C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bls _0819B77E
-_0819B826:
- mov r1, r9
- lsls r0, r1, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _0819B778
- bl CalculatePlayerPartyCount
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_819B764
-
- thumb_func_start sub_819B844
-sub_819B844: @ 819B844
- push {r4,r5,lr}
- ldr r5, =gUnknown_0300127C
- ldr r1, [r5]
- ldrb r0, [r1, 0x6]
- cmp r0, 0
- bne _0819B852
- strb r0, [r1]
-_0819B852:
- ldr r4, =gSprites
- ldr r2, [r5]
- ldrb r1, [r2, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xB0
- strh r1, [r0, 0x20]
- ldrb r0, [r2, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r2]
- lsls r0, 4
- adds r0, 0x70
- strh r0, [r1, 0x22]
- ldrb r1, [r2, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xD0
- strh r1, [r0, 0x20]
- ldrb r0, [r2, 0x2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r2]
- lsls r0, 4
- adds r0, 0x70
- strh r0, [r1, 0x22]
- ldrb r0, [r2, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- ldr r0, [r5]
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- bl sub_819BAFC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819B844
-
- thumb_func_start sub_819B8D4
-sub_819B8D4: @ 819B8D4
- push {r4,r5,lr}
- ldr r5, =gUnknown_0300127C
- ldr r1, [r5]
- movs r0, 0
- strb r0, [r1, 0x7]
- ldr r4, =gSprites
- ldr r2, [r5]
- ldrb r1, [r2, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xB0
- strh r1, [r0, 0x20]
- ldrb r1, [r2, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r3, 0x70
- strh r3, [r0, 0x22]
- ldrb r1, [r2, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xD0
- strh r1, [r0, 0x20]
- ldrb r1, [r2, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r3, [r0, 0x22]
- ldrb r0, [r2, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- ldr r0, [r5]
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- bl sub_819BBA8
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819B8D4
-
- thumb_func_start sub_819B958
-sub_819B958: @ 819B958
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, =gSprites
- ldr r3, =gUnknown_0300127C
- ldr r0, [r3]
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldr r0, [r3]
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r0, r4, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- adds r0, r4, 0
- movs r1, 0x2
- bl CopyWindowToVram
- adds r0, r4, 0
- bl ClearWindowTilemap
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819B958
-
- thumb_func_start sub_819B9B4
-sub_819B9B4: @ 819B9B4
- push {lr}
- sub sp, 0xC
- movs r0, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r2, =gText_RentalPkmn2
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x2
- bl PrintTextOnWindow
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819B9B4
-
- thumb_func_start sub_819B9E8
-sub_819B9E8: @ 819B9E8
- push {r4,r5,lr}
- sub sp, 0xC
- ldr r5, =gUnknown_0300127C
- ldr r0, [r5]
- ldrb r4, [r0, 0x3]
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x6C
- muls r0, r4
- ldr r1, [r5]
- adds r0, r1
- adds r0, 0x14
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- ldr r4, =gStringVar4
- movs r1, 0xB
- muls r1, r0
- ldr r0, =gSpeciesNames
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0x56
- bl GetStringRightAlignXOffset
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r0, =gUnknown_08610479
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0x1
- movs r3, 0x1
- bl box_print
- movs r0, 0x1
- movs r1, 0x2
- bl CopyWindowToVram
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819B9E8
-
- thumb_func_start sub_819BA64
-sub_819BA64: @ 819BA64
- push {lr}
- sub sp, 0xC
- movs r0, 0x2
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r0, =gUnknown_0300127C
- ldr r0, [r0]
- ldrb r0, [r0, 0x5]
- cmp r0, 0x1
- bne _0819BA88
- ldr r2, =gText_SelectFirstPkmn
- b _0819BA9C
- .pool
-_0819BA88:
- cmp r0, 0x2
- bne _0819BA94
- ldr r2, =gText_SelectSecondPkmn
- b _0819BA9C
- .pool
-_0819BA94:
- ldr r2, =gText_TheseThreePkmnOkay
- cmp r0, 0x3
- bne _0819BA9C
- ldr r2, =gText_SelectThirdPkmn
-_0819BA9C:
- movs r0, 0x5
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x2
- movs r1, 0x1
- movs r3, 0x2
- bl PrintTextOnWindow
- movs r0, 0x2
- movs r1, 0x2
- bl CopyWindowToVram
- add sp, 0xC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819BA64
-
- thumb_func_start sub_819BAC8
-sub_819BAC8: @ 819BAC8
- push {lr}
- sub sp, 0xC
- movs r0, 0x2
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r2, =gText_CantSelectSamePkmn
- movs r0, 0x5
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x2
- movs r1, 0x1
- movs r3, 0x2
- bl PrintTextOnWindow
- movs r0, 0x2
- movs r1, 0x2
- bl CopyWindowToVram
- add sp, 0xC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819BAC8
-
- thumb_func_start sub_819BAFC
-sub_819BAFC: @ 819BAFC
- push {r4-r6,lr}
- sub sp, 0xC
- ldr r0, =gUnknown_0300127C
- ldr r0, [r0]
- ldrb r2, [r0, 0x3]
- movs r1, 0x6C
- muls r1, r2
- adds r0, r1
- ldrb r5, [r0, 0x10]
- movs r0, 0x3
- bl PutWindowTilemap
- movs r0, 0x3
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r4, =gUnknown_08610476
- str r4, [sp]
- movs r6, 0
- str r6, [sp, 0x4]
- ldr r0, =gText_Summary
- str r0, [sp, 0x8]
- movs r0, 0x3
- movs r1, 0x1
- movs r2, 0x7
- movs r3, 0x1
- bl box_print
- cmp r5, 0
- beq _0819BB60
- str r4, [sp]
- str r6, [sp, 0x4]
- ldr r0, =gText_Deselect
- str r0, [sp, 0x8]
- movs r0, 0x3
- movs r1, 0x1
- movs r2, 0x7
- movs r3, 0x11
- bl box_print
- b _0819BB74
- .pool
-_0819BB60:
- str r4, [sp]
- str r5, [sp, 0x4]
- ldr r0, =gText_Rent
- str r0, [sp, 0x8]
- movs r0, 0x3
- movs r1, 0x1
- movs r2, 0x7
- movs r3, 0x11
- bl box_print
-_0819BB74:
- ldr r0, =gUnknown_08610476
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- ldr r0, =gText_Others2
- str r0, [sp, 0x8]
- movs r0, 0x3
- movs r1, 0x1
- movs r2, 0x7
- movs r3, 0x21
- bl box_print
- movs r0, 0x3
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819BAFC
-
- thumb_func_start sub_819BBA8
-sub_819BBA8: @ 819BBA8
- push {r4,r5,lr}
- sub sp, 0xC
- movs r0, 0x4
- bl PutWindowTilemap
- movs r0, 0x4
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r5, =gUnknown_08610476
- str r5, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r0, =gText_Yes2
- str r0, [sp, 0x8]
- movs r0, 0x4
- movs r1, 0x1
- movs r2, 0x7
- movs r3, 0x1
- bl box_print
- str r5, [sp]
- str r4, [sp, 0x4]
- ldr r0, =gText_No2
- str r0, [sp, 0x8]
- movs r0, 0x4
- movs r1, 0x1
- movs r2, 0x7
- movs r3, 0x11
- bl box_print
- movs r0, 0x4
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819BBA8
-
- thumb_func_start sub_819BC04
-sub_819BC04: @ 819BC04
- push {lr}
- ldr r2, =gUnknown_030062E8
- ldr r1, =gUnknown_0861041C
- ldr r0, =gUnknown_0300127C
- ldr r0, [r0]
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- bl _call_via_r0
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_819BC04
-
- thumb_func_start sub_819BC30
-sub_819BC30: @ 819BC30
- push {r4,lr}
- ldr r0, =gUnknown_0300127C
- ldr r0, [r0]
- ldrb r2, [r0, 0x3]
- movs r1, 0x6C
- muls r1, r2
- adds r0, r1
- ldrb r1, [r0, 0x10]
- ldrh r0, [r0, 0xC]
- cmp r1, 0
- bne _0819BC60
- bl sub_819C634
- cmp r0, 0
- bne _0819BC60
- bl sub_819BAC8
- movs r0, 0x3
- bl sub_819B958
- movs r0, 0x3
- b _0819BC96
- .pool
-_0819BC60:
- ldr r4, =gUnknown_0300127C
- ldr r1, [r4]
- movs r2, 0xA6
- lsls r2, 2
- adds r0, r1, r2
- ldr r0, [r0]
- adds r2, 0x8
- adds r1, r2
- movs r2, 0
- bl sub_819F3F8
- bl sub_819ACE0
- bl sub_819BA64
- movs r0, 0x3
- bl sub_819B958
- ldr r0, [r4]
- ldrb r0, [r0, 0x5]
- cmp r0, 0x3
- bhi _0819BC94
- movs r0, 0x1
- b _0819BC96
- .pool
-_0819BC94:
- movs r0, 0x2
-_0819BC96:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_819BC30
-
- thumb_func_start sub_819BC9C
-sub_819BC9C: @ 819BC9C
- push {lr}
- bl sub_819C568
- bl sub_819ACE0
- bl sub_819BA64
- movs r0, 0x3
- bl sub_819B958
- ldr r0, =gUnknown_0300127C
- ldr r0, [r0]
- ldrb r0, [r0, 0x5]
- cmp r0, 0x3
- bhi _0819BCC4
- movs r0, 0x1
- b _0819BCC6
- .pool
-_0819BCC4:
- movs r0, 0x2
-_0819BCC6:
- pop {r1}
- bx r1
- thumb_func_end sub_819BC9C
-
- thumb_func_start sub_819BCCC
-sub_819BCCC: @ 819BCCC
- movs r0, 0
- bx lr
- thumb_func_end sub_819BCCC
-
- thumb_func_start sub_819BCD0
-sub_819BCD0: @ 819BCD0
- push {lr}
- ldr r0, =gUnknown_0300127C
- ldr r1, [r0]
- movs r2, 0xA6
- lsls r2, 2
- adds r0, r1, r2
- ldr r0, [r0]
- adds r2, 0x8
- adds r1, r2
- movs r2, 0
- bl sub_819F3F8
- movs r0, 0x3
- bl sub_819B958
- movs r0, 0x1
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_819BCD0
-
- thumb_func_start sub_819BCF8
-sub_819BCF8: @ 819BCF8
- push {r4,r5,lr}
- sub sp, 0x2C
- ldr r5, =gUnknown_0300127C
- ldr r0, [r5]
- ldrb r4, [r0, 0x3]
- cmp r4, 0x5
- bhi _0819BD64
- movs r0, 0x5
- bl PutWindowTilemap
- movs r0, 0x5
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x6C
- muls r0, r4
- ldr r1, [r5]
- adds r0, r1
- adds r0, 0x14
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- add r1, sp, 0xC
- bl CopyMonCategoryText
- movs r0, 0x1
- add r1, sp, 0xC
- movs r2, 0x76
- bl GetStringRightAlignXOffset
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x5
- movs r1, 0x1
- add r2, sp, 0xC
- bl PrintTextOnWindow
- movs r0, 0x5
- movs r1, 0x2
- bl CopyWindowToVram
-_0819BD64:
- add sp, 0x2C
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819BCF8
-
- thumb_func_start sub_819BD70
-sub_819BD70: @ 819BD70
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- sub sp, 0x10
- ldr r6, =gUnknown_0300127C
- ldr r2, [r6]
- ldrb r1, [r2, 0x3]
- movs r0, 0x6C
- adds r4, r1, 0
- muls r4, r0
- adds r4, r2
- adds r4, 0x14
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- mov r8, r0
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- movs r0, 0x58
- str r0, [sp]
- movs r0, 0x20
- str r0, [sp, 0x4]
- movs r0, 0xF
- str r0, [sp, 0x8]
- ldr r0, =0x0000ffff
- str r0, [sp, 0xC]
- adds r0, r5, 0
- mov r2, r8
- movs r3, 0x1
- bl CreateMonPicSprite_HandleDeoxys
- ldr r1, [r6]
- movs r2, 0xA6
- lsls r2, 2
- adds r1, r2
- movs r3, 0
- strb r0, [r1]
- ldr r4, =gSprites
- ldr r0, [r6]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x28
- strb r3, [r0]
- ldr r0, [r6]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x29
- strb r3, [r0]
- ldr r0, [r6]
- movs r1, 0xA8
- lsls r1, 2
- adds r0, r1
- strb r3, [r0]
- add sp, 0x10
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819BD70
-
- thumb_func_start sub_819BE20
-sub_819BE20: @ 819BE20
- ldr r1, =gUnknown_0300127C
- ldr r1, [r1]
- movs r2, 0xA8
- lsls r2, 2
- adds r1, r2
- strb r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_819BE20
-
- thumb_func_start sub_819BE34
-sub_819BE34: @ 819BE34
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- ldr r0, =gUnknown_08610638
- movs r1, 0x78
- movs r2, 0x40
- movs r3, 0x1
- bl CreateSprite
- ldr r6, =gUnknown_0300127C
- ldr r1, [r6]
- ldr r2, =0x00000299
- mov r10, r2
- add r1, r10
- movs r7, 0
- strb r0, [r1]
- ldr r0, [r6]
- add r0, r10
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- mov r8, r1
- add r0, r8
- movs r1, 0x2
- bl StartSpriteAffineAnim
- ldr r2, [r6]
- ldrb r1, [r2, 0x3]
- movs r0, 0x6C
- adds r4, r1, 0
- muls r4, r0
- adds r4, r2
- adds r4, 0x14
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- mov r9, r0
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- movs r0, 0x58
- str r0, [sp]
- movs r0, 0x20
- str r0, [sp, 0x4]
- movs r0, 0xF
- str r0, [sp, 0x8]
- ldr r0, =0x0000ffff
- str r0, [sp, 0xC]
- adds r0, r5, 0
- mov r2, r9
- movs r3, 0x1
- bl CreateMonPicSprite_HandleDeoxys
- ldr r1, [r6]
- movs r2, 0xA6
- lsls r2, 2
- adds r1, r2
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- adds r0, 0x28
- strb r7, [r0]
- ldr r0, [r6]
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- adds r0, 0x29
- strb r7, [r0]
- ldr r0, [r6]
- add r0, r10
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819BE34
-
- thumb_func_start sub_819BF2C
-sub_819BF2C: @ 819BF2C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- movs r7, 0
- ldr r0, =gUnknown_0300127C
- mov r9, r0
-_0819BF3E:
- movs r2, 0
- adds r1, r7, 0x1
- mov r10, r1
- lsls r0, r7, 2
- mov r8, r0
-_0819BF48:
- mov r0, r9
- ldr r1, [r0]
- movs r0, 0x6C
- adds r4, r2, 0
- muls r4, r0
- adds r0, r1, r4
- ldrb r0, [r0, 0x10]
- cmp r0, r10
- bne _0819C008
- adds r4, r1
- adds r4, 0x14
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- adds r6, r0, 0
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- adds r1, r0, 0
- lsls r0, r7, 3
- adds r0, r7
- lsls r0, 19
- movs r2, 0x80
- lsls r2, 13
- adds r0, r2
- asrs r0, 16
- str r0, [sp]
- movs r0, 0x20
- str r0, [sp, 0x4]
- adds r0, r7, 0
- adds r0, 0xD
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x8]
- ldr r0, =0x0000ffff
- str r0, [sp, 0xC]
- adds r0, r5, 0
- adds r2, r6, 0
- movs r3, 0x1
- bl CreateMonPicSprite_HandleDeoxys
- mov r2, r9
- ldr r1, [r2]
- add r1, r8
- movs r2, 0xA5
- lsls r2, 2
- adds r1, r2
- strb r0, [r1]
- mov r1, r9
- ldr r0, [r1]
- add r0, r8
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r2, =gSprites
- adds r0, r2
- adds r0, 0x28
- movs r1, 0
- strb r1, [r0]
- mov r2, r9
- ldr r0, [r2]
- add r0, r8
- movs r1, 0xA5
- lsls r1, 2
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r2, =gSprites
- adds r0, r2
- adds r0, 0x29
- movs r1, 0
- strb r1, [r0]
- b _0819C012
- .pool
-_0819C008:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bls _0819BF48
-_0819C012:
- mov r2, r10
- lsls r0, r2, 24
- lsrs r7, r0, 24
- cmp r7, 0x2
- bls _0819BF3E
- ldr r0, =gUnknown_0300127C
- ldr r0, [r0]
- movs r1, 0xA8
- lsls r1, 2
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819BF2C
-
- thumb_func_start sub_819C040
-sub_819C040: @ 819C040
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0819C0DC
- ldr r3, =gSprites
- ldr r6, =gUnknown_0300127C
- ldr r2, [r6]
- ldr r0, =0x00000295
- adds r5, r2, r0
- ldrb r0, [r5]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- adds r1, 0x3F
- ldrb r0, [r1]
- lsls r0, 26
- cmp r0, 0
- bge _0819C0DC
- ldr r1, =0x0000029d
- adds r0, r2, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _0819C0DC
- adds r1, r4, 0
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- ldr r0, [r6]
- ldr r1, =0x0000029d
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- ldr r0, =sub_819C1D0
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- ldr r0, =SpriteCallbackDummy
- str r0, [r4, 0x1C]
-_0819C0DC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819C040
-
- thumb_func_start sub_819C100
-sub_819C100: @ 819C100
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0819C1BA
- ldr r6, =gSprites
- ldr r4, =gUnknown_0300127C
- ldr r2, [r4]
- ldr r7, =0x00000295
- adds r0, r2, r7
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _0819C1BA
- ldr r1, =0x0000029d
- adds r0, r2, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3F
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bge _0819C1BA
- ldrb r0, [r5, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldr r0, [r4]
- adds r0, r7
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldr r0, [r4]
- ldr r1, =0x0000029d
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldr r0, [r4]
- movs r1, 0xA8
- lsls r1, 2
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, r7
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
- ldr r0, [r4]
- ldr r1, =0x0000029d
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- bl DestroySprite
- adds r0, r5, 0
- bl DestroySprite
-_0819C1BA:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819C100
-
- thumb_func_start sub_819C1D0
-sub_819C1D0: @ 819C1D0
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0819C24E
- cmp r0, 0x1
- bgt _0819C1F8
- cmp r0, 0
- beq _0819C1FE
- b _0819C2BA
- .pool
-_0819C1F8:
- cmp r0, 0x2
- beq _0819C270
- b _0819C2BA
-_0819C1FE:
- movs r0, 0x10
- strh r0, [r4, 0xE]
- movs r0, 0xE0
- strh r0, [r4, 0x38]
- movs r0, 0x40
- strh r0, [r4, 0x12]
- movs r0, 0x41
- strh r0, [r4, 0x18]
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- bl SetGpuRegBits
- ldrh r1, [r4, 0xE]
- lsls r1, 8
- ldrh r0, [r4, 0x38]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x40
- bl SetGpuReg
- ldrh r1, [r4, 0x12]
- lsls r1, 8
- ldrh r0, [r4, 0x18]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x44
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0x3F
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0x37
- bl SetGpuReg
- b _0819C2C6
-_0819C24E:
- movs r0, 0x3
- bl ShowBg
- ldr r1, =0x00001248
- movs r0, 0x50
- bl SetGpuReg
- ldr r1, =0x0000040b
- movs r0, 0x52
- bl SetGpuReg
- b _0819C2C6
- .pool
-_0819C270:
- ldrh r0, [r4, 0x12]
- subs r0, 0x4
- strh r0, [r4, 0x12]
- ldrh r1, [r4, 0x18]
- adds r1, 0x4
- strh r1, [r4, 0x18]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x20
- ble _0819C28C
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x5F
- ble _0819C29E
-_0819C28C:
- movs r0, 0x20
- strh r0, [r4, 0x12]
- movs r0, 0x60
- strh r0, [r4, 0x18]
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- bl ClearGpuRegBits
-_0819C29E:
- ldrh r1, [r4, 0x12]
- lsls r1, 8
- ldrh r0, [r4, 0x18]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x44
- bl SetGpuReg
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0x20
- bne _0819C2CC
- b _0819C2C6
-_0819C2BA:
- adds r0, r2, 0
- bl DestroyTask
- bl sub_819BF2C
- b _0819C2CC
-_0819C2C6:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0819C2CC:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_819C1D0
-
- thumb_func_start sub_819C2D4
-sub_819C2D4: @ 819C2D4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _0819C2F6
- b _0819C410
-_0819C2F6:
- cmp r0, 0x1
- bne _0819C2FC
- b _0819C460
-_0819C2FC:
- movs r0, 0x3
- bl HideBg
- ldr r4, =gSprites
- ldr r0, =gUnknown_0300127C
- mov r8, r0
- ldr r0, [r0]
- ldr r1, =0x00000299
- mov r12, r1
- add r0, r12
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r3, 0x5
- negs r3, r3
- adds r0, r3, 0
- ands r0, r2
- strb r0, [r1]
- mov r0, r8
- ldr r2, [r0]
- mov r1, r12
- adds r0, r2, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r6, r4, 0
- adds r6, 0x1C
- adds r0, r6
- ldr r1, =sub_819C100
- str r1, [r0]
- ldr r0, =0x00000295
- mov r9, r0
- add r2, r9
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r2, [r0]
- adds r1, r3, 0
- ands r1, r2
- strb r1, [r0]
- mov r1, r8
- ldr r2, [r1]
- mov r1, r9
- adds r0, r2, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldr r1, =SpriteCallbackDummy
- mov r10, r1
- str r1, [r0]
- ldr r5, =0x0000029d
- adds r2, r5
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r3, r1
- strb r3, [r0]
- mov r0, r8
- ldr r2, [r0]
- adds r0, r2, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- mov r1, r10
- str r1, [r0]
- add r2, r12
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x1
- bl StartSpriteAffineAnim
- mov r1, r8
- ldr r0, [r1]
- add r0, r9
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x1
- bl StartSpriteAffineAnim
- mov r1, r8
- ldr r0, [r1]
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x1
- bl StartSpriteAffineAnim
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- bl ClearGpuRegBits
- adds r0, r7, 0
- bl DestroyTask
- b _0819C4A4
- .pool
-_0819C410:
- movs r0, 0x10
- strh r0, [r4, 0xE]
- movs r0, 0xE0
- strh r0, [r4, 0x38]
- movs r0, 0x20
- strh r0, [r4, 0x12]
- movs r0, 0x60
- strh r0, [r4, 0x18]
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- bl SetGpuRegBits
- ldrh r1, [r4, 0xE]
- lsls r1, 8
- ldrh r0, [r4, 0x38]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x40
- bl SetGpuReg
- ldrh r1, [r4, 0x12]
- lsls r1, 8
- ldrh r0, [r4, 0x18]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x44
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0x3F
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0x37
- bl SetGpuReg
- b _0819C49E
-_0819C460:
- ldrh r0, [r4, 0x12]
- adds r0, 0x4
- strh r0, [r4, 0x12]
- ldrh r1, [r4, 0x18]
- subs r1, 0x4
- strh r1, [r4, 0x18]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x3F
- bgt _0819C47C
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x41
- bgt _0819C484
-_0819C47C:
- movs r0, 0x40
- strh r0, [r4, 0x12]
- movs r0, 0x41
- strh r0, [r4, 0x18]
-_0819C484:
- ldrh r1, [r4, 0x12]
- lsls r1, 8
- ldrh r0, [r4, 0x18]
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x44
- bl SetGpuReg
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0x40
- bne _0819C4A4
-_0819C49E:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0819C4A4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_819C2D4
-
- thumb_func_start sub_819C4B4
-sub_819C4B4: @ 819C4B4
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r4, =gUnknown_08610638
- adds r0, r4, 0
- movs r1, 0x78
- movs r2, 0x40
- movs r3, 0x1
- bl CreateSprite
- ldr r6, =gUnknown_0300127C
- ldr r1, [r6]
- ldr r2, =0x00000299
- mov r8, r2
- add r1, r8
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0x2C
- movs r2, 0x40
- movs r3, 0x1
- bl CreateSprite
- ldr r1, [r6]
- ldr r5, =0x00000295
- adds r1, r5
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0xC4
- movs r2, 0x40
- movs r3, 0x1
- bl CreateSprite
- ldr r1, [r6]
- ldr r4, =0x0000029d
- adds r1, r4
- strb r0, [r1]
- ldr r3, =gSprites
- ldr r2, [r6]
- add r8, r2
- mov r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, 0x1C
- adds r0, r3
- ldr r1, =sub_819C040
- str r1, [r0]
- adds r5, r2, r5
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldr r5, =SpriteCallbackDummy
- str r5, [r0]
- adds r4, r2, r4
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- str r5, [r0]
- movs r0, 0xA8
- lsls r0, 2
- adds r2, r0
- movs r0, 0x1
- strb r0, [r2]
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819C4B4
-
- thumb_func_start sub_819C568
-sub_819C568: @ 819C568
- push {r4,lr}
- ldr r4, =gUnknown_0300127C
- ldr r0, [r4]
- movs r1, 0xA5
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- bl FreeAndDestroyMonPicSprite
- ldr r0, [r4]
- movs r1, 0xA6
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- bl FreeAndDestroyMonPicSprite
- ldr r0, [r4]
- movs r1, 0xA7
- lsls r1, 2
- adds r0, r1
- ldrb r0, [r0]
- bl FreeAndDestroyMonPicSprite
- ldr r0, =sub_819C2D4
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- ldr r0, [r4]
- movs r1, 0xA8
- lsls r1, 2
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819C568
-
- thumb_func_start sub_819C5D0
-sub_819C5D0: @ 819C5D0
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- adds r4, r0, 0
- adds r6, r1, 0
- adds r5, r2, 0
- mov r8, r3
- lsls r4, 16
- lsrs r4, 16
- lsls r6, 16
- lsrs r6, 16
- lsls r5, 16
- lsrs r5, 16
- mov r0, r8
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- movs r1, 0x80
- lsls r1, 6
- movs r0, 0
- bl SetGpuRegBits
- lsls r4, 24
- lsrs r4, 16
- orrs r4, r6
- movs r0, 0x40
- adds r1, r4, 0
- bl SetGpuReg
- lsls r5, 24
- lsrs r5, 16
- mov r0, r8
- orrs r5, r0
- movs r0, 0x44
- adds r1, r5, 0
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0x3F
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0x37
- bl SetGpuReg
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_819C5D0
-
- thumb_func_start sub_819C634
-sub_819C634: @ 819C634
- push {r4-r7,lr}
- lsls r0, 16
- ldr r2, =gFacilityTrainerMons
- ldr r1, [r2]
- lsrs r0, 12
- adds r0, r1
- ldrh r6, [r0]
- ldr r0, =gUnknown_0300127C
- ldr r0, [r0]
- ldrb r5, [r0, 0x5]
- movs r3, 0x1
- cmp r3, r5
- bcs _0819C694
- adds r4, r0, 0
- movs r0, 0x6C
- mov r12, r0
- adds r7, r2, 0
-_0819C656:
- movs r2, 0
-_0819C658:
- mov r0, r12
- muls r0, r2
- adds r1, r4, r0
- ldrb r0, [r1, 0x10]
- cmp r0, r3
- bne _0819C680
- ldrh r0, [r1, 0xC]
- ldr r1, [r7]
- lsls r0, 4
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, r6
- bne _0819C68A
- movs r0, 0
- b _0819C696
- .pool
-_0819C680:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bls _0819C658
-_0819C68A:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r5
- bcc _0819C656
-_0819C694:
- movs r0, 0x1
-_0819C696:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_819C634
-
- thumb_func_start sub_819C69C
-sub_819C69C: @ 819C69C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- movs r0, 0x8
- ldrsh r2, [r5, r0]
- cmp r2, 0x1
- beq _0819C6F8
- cmp r2, 0x1
- bgt _0819C6C4
- cmp r2, 0
- beq _0819C6CA
- b _0819C7D8
- .pool
-_0819C6C4:
- cmp r2, 0x2
- beq _0819C7B4
- b _0819C7D8
-_0819C6CA:
- ldr r1, =gUnknown_0300127C
- ldr r0, [r1]
- ldr r3, =0x000002a7
- adds r0, r3
- strb r2, [r0]
- ldr r0, [r1]
- adds r3, 0x1
- adds r0, r3
- strb r2, [r0]
- ldr r0, [r1]
- ldr r1, =0x000002a6
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- strh r1, [r5, 0x8]
- b _0819C7D8
- .pool
-_0819C6F8:
- ldr r0, =gUnknown_0300127C
- ldr r3, [r0]
- ldr r2, =0x000002a2
- adds r1, r3, r2
- ldrb r1, [r1]
- adds r7, r0, 0
- cmp r1, 0
- beq _0819C7D8
- ldr r1, =0x000002a9
- adds r0, r3, r1
- ldrb r4, [r0]
- cmp r4, 0
- beq _0819C724
- movs r0, 0x2
- strh r0, [r5, 0x8]
- b _0819C7D8
- .pool
-_0819C724:
- ldr r2, =0x000002a7
- adds r1, r3, r2
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r7]
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0x6
- bls _0819C764
- strb r4, [r1]
- ldr r1, [r7]
- subs r2, 0x1
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _0819C758
- movs r3, 0xAA
- lsls r3, 2
- adds r1, r3
- ldrb r0, [r1]
- subs r0, 0x1
- b _0819C762
- .pool
-_0819C758:
- movs r0, 0xAA
- lsls r0, 2
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
-_0819C762:
- strb r0, [r1]
-_0819C764:
- movs r0, 0x80
- lsls r0, 7
- ldr r1, [r7]
- movs r4, 0xAA
- lsls r4, 2
- adds r1, r4
- ldrb r1, [r1]
- movs r2, 0
- bl BlendPalettes
- ldr r2, [r7]
- adds r4, r2, r4
- ldrb r0, [r4]
- cmp r0, 0x5
- bls _0819C790
- ldr r3, =0x000002a6
- adds r1, r2, r3
- movs r0, 0
- b _0819C7D6
- .pool
-_0819C790:
- cmp r0, 0
- bne _0819C7D8
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0, 0x8]
- ldr r0, =0x000002a6
- adds r1, r2, r0
- movs r0, 0x1
- b _0819C7D6
- .pool
-_0819C7B4:
- ldr r0, =gUnknown_0300127C
- ldr r0, [r0]
- ldr r2, =0x000002a9
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0xE
- bls _0819C7D4
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x1
- strh r0, [r5, 0x8]
- b _0819C7D8
- .pool
-_0819C7D4:
- adds r0, 0x1
-_0819C7D6:
- strb r0, [r1]
-_0819C7D8:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_819C69C
-
- thumb_func_start sub_819C7E0
-sub_819C7E0: @ 819C7E0
- push {lr}
- bl AnimateSprites
- bl BuildOamBuffer
- bl RunTextPrinters
- bl UpdatePaletteFade
- bl RunTasks
- pop {r0}
- bx r0
- thumb_func_end sub_819C7E0
-
- thumb_func_start sub_819C7FC
-sub_819C7FC: @ 819C7FC
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end sub_819C7FC
-
- thumb_func_start sub_819C810
-sub_819C810: @ 819C810
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x4
- ldr r4, =gPlayerParty
- ldr r5, =gUnknown_03001284
- ldr r1, [r5]
- ldrb r0, [r1, 0x12]
- movs r6, 0x64
- muls r0, r6
- adds r0, r4
- ldr r2, =gEnemyParty
- mov r9, r2
- ldrb r1, [r1, 0x13]
- muls r1, r6
- add r1, r9
- movs r2, 0x64
- bl memcpy
- movs r1, 0
- mov r0, sp
- strb r1, [r0]
- ldr r0, [r5]
- ldrb r0, [r0, 0x12]
- muls r0, r6
- adds r0, r4
- movs r1, 0x20
- mov r2, sp
- bl SetMonData
- ldr r3, =gSaveBlock2Ptr
- mov r8, r3
- ldr r3, [r3]
- ldr r4, [r5]
- ldrb r0, [r4, 0x12]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- adds r2, r3, r2
- ldrb r1, [r4, 0x13]
- adds r1, 0x3
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r0, r3, r0
- movs r1, 0xE7
- lsls r1, 4
- adds r0, r1
- ldrh r0, [r0]
- adds r2, r1
- strh r0, [r2]
- ldrb r0, [r4, 0x12]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 2
- adds r2, r3, r2
- ldrb r1, [r4, 0x13]
- adds r1, 0x3
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 2
- adds r3, r0
- ldr r0, =0x00000e78
- adds r3, r0
- ldrb r1, [r3]
- adds r2, r0
- strb r1, [r2]
- ldr r0, [r5]
- ldrb r0, [r0, 0x13]
- muls r0, r6
- add r0, r9
- movs r1, 0
- movs r2, 0
- bl GetMonData
- mov r1, r8
- ldr r2, [r1]
- ldr r4, [r5]
- ldrb r3, [r4, 0x12]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- ldr r3, =0x00000e74
- adds r2, r3
- adds r2, r1
- str r0, [r2]
- ldrb r0, [r4, 0x13]
- muls r0, r6
- add r0, r9
- movs r1, 0x2E
- movs r2, 0
- bl GetBoxMonData
- mov r1, r8
- ldr r2, [r1]
- ldr r1, [r5]
- ldrb r3, [r1, 0x12]
- lsls r1, r3, 1
- adds r1, r3
- lsls r1, 2
- adds r2, r1
- ldr r3, =0x00000e79
- adds r2, r3
- strb r0, [r2]
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819C810
-
- thumb_func_start sub_819C90C
-sub_819C90C: @ 819C90C
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r6, r0, r1
- movs r1, 0x8
- ldrsh r0, [r6, r1]
- cmp r0, 0x7
- beq _0819C950
- cmp r0, 0x7
- bgt _0819C934
- cmp r0, 0x6
- beq _0819C93A
- b _0819C9F0
- .pool
-_0819C934:
- cmp r0, 0x8
- beq _0819C9C4
- b _0819C9F0
-_0819C93A:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- movs r0, 0x7
- strh r0, [r6, 0x8]
- b _0819C9F0
-_0819C950:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _0819C9F0
- ldr r4, =gUnknown_03001284
- ldr r0, [r4]
- adds r0, 0x21
- ldrb r0, [r0]
- bl DestroyTask
- ldr r1, [r4]
- ldr r0, [r1, 0x2C]
- adds r1, 0x30
- bl sub_819F444
- bl sub_819E538
- ldr r4, =gUnknown_0203CE40
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r4, =gUnknown_0203CE44
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r4, =gUnknown_0203CE48
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r4, =gUnknown_0203CE4C
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- bl FreeAllWindowBuffers
- movs r0, 0x8
- strh r0, [r6, 0x8]
- b _0819C9F0
- .pool
-_0819C9C4:
- adds r0, r2, 0
- bl DestroyTask
- ldr r2, =gUnknown_03001284
- ldr r1, [r2]
- movs r0, 0x1
- strb r0, [r1, 0x15]
- ldr r2, [r2]
- ldr r0, =gPlttBufferUnfaded
- movs r1, 0xF4
- lsls r1, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2, 0x24]
- ldr r1, =gPlayerParty
- ldrb r2, [r2, 0x3]
- ldr r0, =sub_819DC1C
- str r0, [sp]
- movs r0, 0
- movs r3, 0x2
- bl ShowPokemonSummaryScreen
-_0819C9F0:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819C90C
-
- thumb_func_start sub_819CA08
-sub_819CA08: @ 819CA08
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r7, =gUnknown_03001284
- ldr r2, [r7]
- adds r0, r2, 0
- adds r0, 0x30
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0819CAFE
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _0819CA78
- cmp r1, 0x1
- bgt _0819CA44
- cmp r1, 0
- beq _0819CA4E
- b _0819CAFE
- .pool
-_0819CA44:
- cmp r1, 0x2
- beq _0819CA8C
- cmp r1, 0x3
- beq _0819CAA4
- b _0819CAFE
-_0819CA4E:
- adds r0, r2, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0819CA68
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- ldr r0, =gSpecialVar_Result
- strh r1, [r0]
- b _0819CAFE
- .pool
-_0819CA68:
- movs r0, 0x2
- strh r0, [r4, 0x8]
- ldr r1, =gSpecialVar_Result
- movs r0, 0x1
- strh r0, [r1]
- b _0819CAFE
- .pool
-_0819CA78:
- adds r0, r2, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0819CA9C
- ldrb r0, [r2, 0x3]
- strb r0, [r2, 0x13]
- bl sub_819C810
- b _0819CA9C
-_0819CA8C:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_0819CA9C:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0819CAFE
-_0819CAA4:
- bl UpdatePaletteFade
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _0819CAFE
- ldr r0, [r7]
- adds r0, 0x21
- ldrb r0, [r0]
- bl DestroyTask
- bl sub_819E538
- ldr r4, =gUnknown_0203CE40
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r4, =gUnknown_0203CE44
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r4, =gUnknown_0203CE48
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r4, =gUnknown_0203CE4C
- ldr r0, [r4]
- bl Free
- str r5, [r4]
- ldr r0, [r7]
- bl Free
- str r5, [r7]
- bl FreeAllWindowBuffers
- ldr r0, =CB2_ReturnToFieldContinueScript
- bl SetMainCallback2
- adds r0, r6, 0
- bl DestroyTask
-_0819CAFE:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819CA08
-
- thumb_func_start sub_819CB1C
-sub_819CB1C: @ 819CB1C
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r7, =gUnknown_03001284
- ldr r0, [r7]
- adds r0, 0x30
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0819CBD6
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x4
- beq _0819CB50
- cmp r0, 0x5
- beq _0819CB5A
- b _0819CBD6
- .pool
-_0819CB50:
- bl sub_819E9E0
- movs r0, 0x5
- strh r0, [r4, 0x8]
- b _0819CBD6
-_0819CB5A:
- ldr r2, =gMain
- ldrh r1, [r2, 0x2E]
- movs r6, 0x1
- adds r5, r6, 0
- ands r5, r1
- cmp r5, 0
- beq _0819CB86
- movs r0, 0x5
- bl PlaySE
- ldr r0, [r7]
- ldrb r0, [r0, 0x16]
- cmp r0, 0
- bne _0819CB80
- strh r6, [r4, 0xA]
- b _0819CB9C
- .pool
-_0819CB80:
- movs r0, 0
- strh r0, [r4, 0xA]
- b _0819CB96
-_0819CB86:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0819CBA8
- movs r0, 0x5
- bl PlaySE
- strh r5, [r4, 0xA]
-_0819CB96:
- movs r0, 0x4
- bl sub_819EA64
-_0819CB9C:
- ldrh r0, [r4, 0x14]
- ldrh r1, [r4, 0x16]
- lsls r0, 16
- orrs r0, r1
- str r0, [r4]
- b _0819CBD6
-_0819CBA8:
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0819CBC2
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- negs r0, r0
- bl sub_819E758
- b _0819CBD6
-_0819CBC2:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0819CBD6
- movs r0, 0x5
- bl PlaySE
- movs r0, 0x1
- bl sub_819E758
-_0819CBD6:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_819CB1C
-
- thumb_func_start sub_819CBDC
-sub_819CBDC: @ 819CBDC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r2, r1, r2
- movs r1, 0xA
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _0819CC04
- movs r0, 0
- strh r0, [r2, 0x8]
- ldr r0, =sub_819CA08
- b _0819CC16
- .pool
-_0819CC04:
- movs r0, 0
- strh r0, [r2, 0x8]
- ldr r1, =sub_819CE40
- lsrs r0, r1, 16
- strh r0, [r2, 0x14]
- strh r1, [r2, 0x16]
- movs r0, 0x1
- strh r0, [r2, 0x12]
- ldr r0, =sub_819D770
-_0819CC16:
- str r0, [r2]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819CBDC
-
- thumb_func_start sub_819CC24
-sub_819CC24: @ 819CC24
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- movs r0, 0x8
- ldrsh r5, [r4, r0]
- cmp r5, 0
- bne _0819CC5A
- ldr r0, =gText_QuitSwapping
- bl sub_819EBEC
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- adds r0, 0x20
- strb r5, [r0]
- movs r0, 0x4
- strh r0, [r4, 0x8]
- ldr r1, =sub_819CBDC
- lsrs r0, r1, 16
- strh r0, [r4, 0x14]
- strh r1, [r4, 0x16]
- ldr r0, =sub_819CB1C
- str r0, [r4]
-_0819CC5A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819CC24
-
- thumb_func_start sub_819CC74
-sub_819CC74: @ 819CC74
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gUnknown_03001284
- ldr r1, [r0]
- ldr r0, [r1, 0x2C]
- adds r1, 0x30
- movs r2, 0x1
- bl sub_819F3F8
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r2, r0, r1
- movs r1, 0xA
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _0819CCB0
- movs r0, 0
- strh r0, [r2, 0x8]
- ldr r0, =sub_819CA08
- b _0819CCC2
- .pool
-_0819CCB0:
- movs r0, 0
- strh r0, [r2, 0x8]
- ldr r1, =sub_819CE40
- lsrs r0, r1, 16
- strh r0, [r2, 0x14]
- strh r1, [r2, 0x16]
- movs r0, 0x1
- strh r0, [r2, 0x12]
- ldr r0, =sub_819D770
-_0819CCC2:
- str r0, [r2]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819CC74
-
- thumb_func_start sub_819CCD4
-sub_819CCD4: @ 819CCD4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r5, r1, r2
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0819CD1A
- ldr r4, =gUnknown_03001284
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0x2D
- adds r1, 0x30
- movs r2, 0x1
- bl sub_819F2B4
- ldr r0, =gText_AcceptThisPkmn
- bl sub_819EBEC
- ldr r0, [r4]
- adds r0, 0x20
- movs r1, 0x1
- strb r1, [r0]
- movs r0, 0x4
- strh r0, [r5, 0x8]
- ldr r1, =sub_819CC74
- lsrs r0, r1, 16
- strh r0, [r5, 0x14]
- strh r1, [r5, 0x16]
- ldr r0, =sub_819CB1C
- str r0, [r5]
-_0819CD1A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819CCD4
-
- thumb_func_start sub_819CD34
-sub_819CD34: @ 819CD34
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x3
- beq _0819CDA4
- cmp r0, 0x3
- bgt _0819CD60
- cmp r0, 0x2
- beq _0819CD66
- b _0819CE36
- .pool
-_0819CD60:
- cmp r0, 0x9
- beq _0819CD88
- b _0819CE36
-_0819CD66:
- ldr r0, =gUnknown_03001284
- ldr r1, [r0]
- ldrb r0, [r1, 0x15]
- cmp r0, 0
- bne _0819CD7C
- adds r0, r1, 0
- adds r0, 0x2D
- adds r1, 0x30
- movs r2, 0x1
- bl sub_819F2B4
-_0819CD7C:
- movs r0, 0x9
- strh r0, [r5, 0x8]
- b _0819CE36
- .pool
-_0819CD88:
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- adds r0, 0x30
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0819CE36
- bl sub_819E944
- movs r0, 0x3
- strh r0, [r5, 0x8]
- b _0819CE36
- .pool
-_0819CDA4:
- ldr r7, =gUnknown_03001284
- ldr r0, [r7]
- adds r0, 0x30
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0819CE36
- ldr r2, =gMain
- ldrh r1, [r2, 0x2E]
- movs r0, 0x1
- mov r8, r0
- mov r4, r8
- ands r4, r1
- cmp r4, 0
- beq _0819CDD8
- movs r0, 0x5
- bl PlaySE
- adds r0, r6, 0
- bl sub_819F0A0
- b _0819CE36
- .pool
-_0819CDD8:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0819CE14
- movs r0, 0x5
- bl PlaySE
- ldr r1, [r7]
- ldr r0, [r1, 0x2C]
- adds r1, 0x30
- movs r2, 0x1
- bl sub_819F3F8
- movs r0, 0x3
- bl sub_819EA64
- strh r4, [r5, 0x8]
- ldr r1, =sub_819CE40
- lsrs r0, r1, 16
- strh r0, [r5, 0x14]
- strh r1, [r5, 0x16]
- mov r1, r8
- strh r1, [r5, 0x12]
- ldr r0, =sub_819D770
- str r0, [r5]
- b _0819CE36
- .pool
-_0819CE14:
- ldrh r1, [r2, 0x30]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0819CE28
- movs r0, 0x1
- negs r0, r0
- bl sub_819E7C0
- b _0819CE36
-_0819CE28:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0819CE36
- movs r0, 0x1
- bl sub_819E7C0
-_0819CE36:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_819CD34
-
- thumb_func_start sub_819CE40
-sub_819CE40: @ 819CE40
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0819CE64
- cmp r0, 0x1
- beq _0819CE88
- b _0819CF4C
- .pool
-_0819CE64:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0819CF4C
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- adds r0, 0x22
- movs r1, 0x1
- strb r1, [r0]
- strh r1, [r4, 0x8]
- b _0819CF4C
- .pool
-_0819CE88:
- ldr r2, =gMain
- ldrh r1, [r2, 0x2E]
- adds r5, r1, 0
- ands r5, r0
- cmp r5, 0
- beq _0819CEBC
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- adds r0, 0x22
- movs r1, 0
- strb r1, [r0]
- bl sub_819EE08
- bl sub_819EAC0
- adds r0, r6, 0
- bl sub_819F184
- b _0819CF4C
- .pool
-_0819CEBC:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0819CEF8
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- adds r0, 0x22
- strb r5, [r0]
- bl sub_819EE08
- bl sub_819EAC0
- ldr r1, =sub_819CC24
- lsrs r0, r1, 16
- strh r0, [r4, 0x14]
- strh r1, [r4, 0x16]
- strh r5, [r4, 0x8]
- strh r5, [r4, 0x12]
- ldr r0, =sub_819D588
- str r0, [r4]
- b _0819CF4C
- .pool
-_0819CEF8:
- ldrh r1, [r2, 0x30]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0819CF0C
- movs r0, 0x1
- negs r0, r0
- bl sub_819E694
- b _0819CF2A
-_0819CF0C:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0819CF1C
- movs r0, 0x1
- bl sub_819E694
- b _0819CF2A
-_0819CF1C:
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0819CF34
- movs r0, 0x1
- bl sub_819E6E8
-_0819CF2A:
- bl sub_819EFA8
- bl sub_819EB4C
- b _0819CF4C
-_0819CF34:
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0819CF4C
- movs r0, 0x1
- negs r0, r0
- bl sub_819E6E8
- bl sub_819EFA8
- bl sub_819EB4C
-_0819CF4C:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_819CE40
-
- thumb_func_start sub_819CF54
-sub_819CF54: @ 819CF54
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r0, 0x8
- ldrsh r2, [r4, r0]
- cmp r2, 0x1
- beq _0819CFA0
- cmp r2, 0x1
- bgt _0819CF7C
- cmp r2, 0
- beq _0819CF82
- b _0819D05C
- .pool
-_0819CF7C:
- cmp r2, 0x2
- beq _0819D03C
- b _0819D05C
-_0819CF82:
- ldr r1, =gUnknown_03001284
- ldr r0, [r1]
- adds r0, 0x27
- strb r2, [r0]
- ldr r0, [r1]
- adds r0, 0x28
- strb r2, [r0]
- ldr r0, [r1]
- adds r0, 0x26
- movs r1, 0x1
- strb r1, [r0]
- strh r1, [r4, 0x8]
- b _0819D05C
- .pool
-_0819CFA0:
- ldr r1, =gUnknown_03001284
- ldr r2, [r1]
- adds r0, r2, 0
- adds r0, 0x22
- ldrb r0, [r0]
- adds r6, r1, 0
- cmp r0, 0
- beq _0819D05C
- adds r0, r2, 0
- adds r0, 0x29
- ldrb r3, [r0]
- cmp r3, 0
- beq _0819CFC4
- movs r0, 0x2
- strh r0, [r4, 0x8]
- b _0819D05C
- .pool
-_0819CFC4:
- adds r1, r2, 0
- adds r1, 0x27
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r6]
- adds r1, r0, 0
- adds r1, 0x27
- ldrb r0, [r1]
- cmp r0, 0x6
- bls _0819CFF8
- strb r3, [r1]
- ldr r1, [r6]
- adds r0, r1, 0
- adds r0, 0x26
- ldrb r0, [r0]
- cmp r0, 0
- bne _0819CFF0
- adds r1, 0x28
- ldrb r0, [r1]
- subs r0, 0x1
- b _0819CFF6
-_0819CFF0:
- adds r1, 0x28
- ldrb r0, [r1]
- adds r0, 0x1
-_0819CFF6:
- strb r0, [r1]
-_0819CFF8:
- movs r0, 0x80
- lsls r0, 7
- ldr r1, [r6]
- adds r1, 0x28
- ldrb r1, [r1]
- movs r2, 0
- bl BlendPalettes
- ldr r2, [r6]
- adds r0, r2, 0
- adds r0, 0x28
- ldrb r0, [r0]
- cmp r0, 0x5
- bls _0819D01C
- adds r1, r2, 0
- adds r1, 0x26
- movs r0, 0
- b _0819D05A
-_0819D01C:
- cmp r0, 0
- bne _0819D05C
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0x2
- strh r1, [r0, 0x8]
- adds r1, r2, 0
- adds r1, 0x26
- movs r0, 0x1
- b _0819D05A
- .pool
-_0819D03C:
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0x29
- ldrb r0, [r1]
- cmp r0, 0xE
- bls _0819D058
- movs r0, 0
- strb r0, [r1]
- movs r0, 0x1
- strh r0, [r4, 0x8]
- b _0819D05C
- .pool
-_0819D058:
- adds r0, 0x1
-_0819D05A:
- strb r0, [r1]
-_0819D05C:
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_819CF54
-
- thumb_func_start sub_819D064
-sub_819D064: @ 819D064
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- cmp r1, 0x1
- beq _0819D0A4
- cmp r1, 0x1
- bgt _0819D08C
- cmp r1, 0
- beq _0819D092
- b _0819D118
- .pool
-_0819D08C:
- cmp r1, 0x2
- beq _0819D0BC
- b _0819D118
-_0819D092:
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- adds r0, 0x27
- strb r1, [r0]
- strh r1, [r4, 0x10]
- b _0819D0AE
- .pool
-_0819D0A4:
- ldr r0, =gPlttBufferUnfaded+ 0x1E0
- movs r1, 0xE0
- movs r2, 0xA
- bl LoadPalette
-_0819D0AE:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0819D118
- .pool
-_0819D0BC:
- ldr r2, =gUnknown_03001284
- ldr r0, [r2]
- adds r0, 0x28
- ldrb r0, [r0]
- cmp r0, 0xF
- bls _0819D0D2
- movs r0, 0x1
- strh r0, [r4, 0x10]
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
-_0819D0D2:
- ldr r1, [r2]
- adds r1, 0x27
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- ldr r0, [r2]
- adds r1, r0, 0
- adds r1, 0x27
- ldrb r0, [r1]
- cmp r0, 0x3
- bls _0819D108
- movs r0, 0
- strb r0, [r1]
- ldr r1, =gPlttBufferUnfaded
- ldr r0, =gPlttBufferFaded
- movs r3, 0xE4
- lsls r3, 1
- adds r0, r3
- ldrh r0, [r0]
- adds r3, 0x20
- adds r1, r3
- strh r0, [r1]
- ldr r1, [r2]
- adds r1, 0x28
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0819D108:
- movs r0, 0x80
- lsls r0, 7
- ldr r1, [r2]
- adds r1, 0x28
- ldrb r1, [r1]
- movs r2, 0
- bl BlendPalettes
-_0819D118:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819D064
-
- thumb_func_start sub_819D12C
-sub_819D12C: @ 819D12C
- 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]
- ldr r1, =gTasks
- lsls r0, 2
- ldr r2, [sp]
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- movs r2, 0x8
- ldrsh r3, [r4, r2]
- cmp r3, 0
- beq _0819D15C
- cmp r3, 0x1
- beq _0819D168
- b _0819D310
- .pool
-_0819D15C:
- strh r3, [r4, 0xA]
- strh r3, [r4, 0xC]
- strh r3, [r4, 0xE]
- movs r0, 0x1
- strh r0, [r4, 0x8]
- b _0819D310
-_0819D168:
- movs r3, 0
- str r3, [sp, 0x4]
- movs r1, 0x2
- str r0, [sp, 0x8]
- ldr r0, =gTasks
- str r0, [sp, 0xC]
-_0819D174:
- lsls r0, r1, 24
- asrs r4, r0, 24
- mov r9, r0
- cmp r4, 0x2
- beq _0819D1F2
- ldr r2, =gSprites
- ldr r3, =gUnknown_03001284
- ldr r0, [r3]
- adds r0, 0x5
- mov r8, r0
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r6, r0, r2
- ldrh r1, [r6, 0x20]
- mov r12, r1
- mov r7, r12
- ldr r1, [sp, 0x4]
- subs r0, r1, r7
- lsls r0, 24
- lsrs r5, r0, 24
- mov r10, r2
- cmp r5, 0x10
- beq _0819D1BE
- adds r0, r4, 0x2
- lsls r0, 1
- ldr r2, [sp, 0x8]
- adds r0, r2
- ldr r1, =gTasks
- adds r1, 0x8
- adds r0, r1
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r0, 0x1
- bne _0819D1D8
-_0819D1BE:
- lsls r0, r7, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- mov r0, r12
- adds r0, 0xA
- strh r0, [r6, 0x20]
- b _0819D210
- .pool
-_0819D1D8:
- cmp r5, 0x10
- bls _0819D210
- adds r0, r4, 0x1
- add r0, r8
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r10
- ldrh r0, [r0, 0x20]
- subs r0, 0x30
- strh r0, [r6, 0x20]
- b _0819D210
-_0819D1F2:
- ldr r3, =gSprites
- ldr r4, =gUnknown_03001284
- ldr r0, [r4]
- ldrb r1, [r0, 0x7]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r2, [r0, 0x20]
- lsls r1, r2, 24
- lsrs r1, 24
- str r1, [sp, 0x4]
- adds r2, 0xA
- strh r2, [r0, 0x20]
- mov r10, r3
-_0819D210:
- mov r0, r9
- asrs r2, r0, 24
- adds r0, r2, 0x1
- lsls r0, 1
- ldr r1, [sp, 0x8]
- adds r0, r1
- ldr r1, =gTasks
- adds r1, 0x8
- adds r0, r1
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r0, 0x1
- bne _0819D26A
- ldr r1, =gUnknown_03001284
- ldr r0, [r1]
- adds r0, 0x5
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- mov r3, r10
- adds r1, r0, r3
- movs r0, 0x20
- ldrsh r3, [r1, r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 4
- adds r0, 0x48
- cmp r3, r0
- ble _0819D260
- strh r0, [r1, 0x20]
- movs r7, 0x1
- b _0819D26C
- .pool
-_0819D260:
- movs r7, 0
- cmp r3, r0
- bne _0819D26C
- movs r7, 0x1
- b _0819D26C
-_0819D26A:
- movs r7, 0
-_0819D26C:
- mov r6, r10
- ldr r5, =gUnknown_03001284
- ldr r2, [r5]
- mov r1, r9
- asrs r4, r1, 24
- adds r0, r2, 0x5
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r6
- movs r3, 0x20
- ldrsh r0, [r1, r3]
- subs r0, 0x10
- cmp r0, 0xF0
- ble _0819D2F8
- ldrh r0, [r1, 0x20]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
- ldr r0, =0x0000fff0
- strh r0, [r1, 0x20]
- ldrb r0, [r2, 0x14]
- cmp r0, 0x1
- bne _0819D2C0
- movs r0, 0x65
- bl IndexOfSpritePaletteTag
- ldr r1, [r5]
- adds r1, 0x5
- adds r1, r4
- ldrb r1, [r1]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r6
- b _0819D2D8
- .pool
-_0819D2C0:
- movs r0, 0x64
- bl IndexOfSpritePaletteTag
- ldr r2, =gUnknown_03001284
- ldr r1, [r2]
- adds r1, 0x5
- adds r1, r4
- ldrb r1, [r1]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- add r2, r10
-_0819D2D8:
- lsls r0, 4
- ldrb r3, [r2, 0x5]
- movs r1, 0xF
- ands r1, r3
- orrs r1, r0
- strb r1, [r2, 0x5]
- mov r3, r9
- asrs r0, r3, 23
- adds r0, 0x2
- ldr r1, [sp, 0x8]
- adds r0, r1
- ldr r2, [sp, 0xC]
- adds r2, 0x8
- adds r0, r2
- movs r1, 0x1
- strh r1, [r0]
-_0819D2F8:
- movs r0, 0xFF
- lsls r0, 24
- add r0, r9
- lsrs r1, r0, 24
- cmp r0, 0
- blt _0819D306
- b _0819D174
-_0819D306:
- cmp r7, 0x1
- bne _0819D310
- ldr r0, [sp]
- bl DestroyTask
-_0819D310:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819D12C
-
- thumb_func_start sub_819D324
-sub_819D324: @ 819D324
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0
- mov r8, r0
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r2, r0, r1
- ldrb r4, [r2, 0xE]
- movs r0, 0xC
- ldrsh r5, [r2, r0]
- mov r10, r1
- cmp r5, 0x1
- bne _0819D352
- lsls r0, r4, 24
- negs r0, r0
- lsrs r4, r0, 24
-_0819D352:
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _0819D368
- cmp r0, 0x1
- bne _0819D360
- b _0819D480
-_0819D360:
- b _0819D570
- .pool
-_0819D368:
- ldr r3, =gSprites
- ldr r2, =gUnknown_03001284
- ldr r0, [r2]
- ldrb r1, [r0, 0x8]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x20]
- cmp r5, 0
- bne _0819D39C
- lsls r0, 16
- asrs r0, 16
- lsls r2, r4, 24
- asrs r1, r2, 24
- adds r0, r1
- movs r1, 0x1
- cmp r0, 0xEF
- ble _0819D3B2
- movs r1, 0
- movs r0, 0xF0
- b _0819D3B0
- .pool
-_0819D39C:
- lsls r0, 16
- asrs r0, 16
- lsls r2, r4, 24
- asrs r1, r2, 24
- adds r0, r1
- movs r1, 0x1
- cmp r0, 0xA0
- bgt _0819D3B2
- movs r1, 0
- movs r0, 0xA0
-_0819D3B0:
- mov r8, r0
-_0819D3B2:
- cmp r1, 0x1
- bne _0819D3FC
- movs r3, 0
- ldr r7, =gSprites
- ldr r6, =gUnknown_03001284
- asrs r5, r2, 24
-_0819D3BE:
- movs r4, 0
- adds r2, r3, 0x1
-_0819D3C2:
- ldr r1, [r6]
- lsls r0, r4, 1
- adds r0, r4
- adds r0, r3, r0
- adds r1, 0x8
- adds r1, r0
- ldrb r1, [r1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrh r1, [r0, 0x20]
- adds r1, r5
- strh r1, [r0, 0x20]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _0819D3C2
- lsls r0, r2, 24
- lsrs r3, r0, 24
- cmp r3, 0x2
- bls _0819D3BE
- b _0819D570
- .pool
-_0819D3FC:
- movs r4, 0
- lsls r1, r7, 2
- mov r12, r1
- mov r6, r8
- adds r6, 0x10
- movs r0, 0x30
- add r0, r8
- mov r9, r0
- ldr r5, =gSprites
-_0819D40E:
- ldr r1, =gUnknown_03001284
- ldr r2, [r1]
- lsls r3, r4, 1
- adds r3, r4
- adds r0, r2, 0
- adds r0, 0x8
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x20]
- adds r0, r2, 0
- adds r0, 0x9
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x20]
- adds r2, 0xA
- adds r2, r3
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r9
- strh r1, [r0, 0x20]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _0819D40E
- mov r1, r12
- adds r0, r1, r7
- lsls r0, 3
- add r0, r10
- ldrb r1, [r0, 0xA]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- add r0, r10
- movs r1, 0x1
- strh r1, [r0, 0xE]
- adds r0, r7, 0
- bl DestroyTask
- b _0819D570
- .pool
-_0819D480:
- ldr r2, =gSprites
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- ldrb r1, [r0, 0xE]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r0, [r0, 0x20]
- cmp r5, 0
- bne _0819D4B4
- lsls r0, 16
- asrs r0, 16
- lsls r2, r4, 24
- asrs r1, r2, 24
- adds r0, r1
- movs r1, 0x1
- cmp r0, 0xEF
- ble _0819D4CA
- movs r1, 0
- movs r0, 0xF0
- b _0819D4C8
- .pool
-_0819D4B4:
- lsls r0, 16
- asrs r0, 16
- lsls r2, r4, 24
- asrs r1, r2, 24
- adds r0, r1
- movs r1, 0x1
- cmp r0, 0xC0
- bgt _0819D4CA
- movs r1, 0
- movs r0, 0xC0
-_0819D4C8:
- mov r8, r0
-_0819D4CA:
- cmp r1, 0x1
- bne _0819D510
- movs r3, 0
- ldr r7, =gSprites
- ldr r6, =gUnknown_03001284
- asrs r5, r2, 24
-_0819D4D6:
- movs r4, 0
- adds r2, r3, 0x1
-_0819D4DA:
- ldr r0, [r6]
- lsls r1, r4, 1
- adds r1, r3, r1
- adds r0, 0xE
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- ldrh r1, [r0, 0x20]
- adds r1, r5
- strh r1, [r0, 0x20]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _0819D4DA
- lsls r0, r2, 24
- lsrs r3, r0, 24
- cmp r3, 0x1
- bls _0819D4D6
- b _0819D570
- .pool
-_0819D510:
- movs r4, 0
- lsls r1, r7, 2
- mov r12, r1
- mov r6, r8
- adds r6, 0x10
- ldr r5, =gSprites
- ldr r0, =gUnknown_03001284
- mov r9, r0
-_0819D520:
- mov r1, r9
- ldr r2, [r1]
- lsls r3, r4, 1
- adds r0, r2, 0
- adds r0, 0xE
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- mov r1, r8
- strh r1, [r0, 0x20]
- adds r2, 0xF
- adds r2, r3
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r6, [r0, 0x20]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _0819D520
- mov r1, r12
- adds r0, r1, r7
- lsls r0, 3
- add r0, r10
- ldrb r1, [r0, 0xA]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- add r0, r10
- movs r1, 0x1
- strh r1, [r0, 0x10]
- adds r0, r7, 0
- bl DestroyTask
-_0819D570:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819D324
-
- thumb_func_start sub_819D588
-sub_819D588: @ 819D588
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- mov r8, r1
- cmp r0, 0x5
- bls _0819D5AA
- b _0819D762
-_0819D5AA:
- lsls r0, 2
- ldr r1, =_0819D5BC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0819D5BC:
- .4byte _0819D5D4
- .4byte _0819D5F0
- .4byte _0819D60C
- .4byte _0819D63C
- .4byte _0819D6F0
- .4byte _0819D73A
-_0819D5D4:
- ldr r0, =gUnknown_08610918
- movs r1, 0xE0
- movs r2, 0xA
- bl LoadPalette
- bl sub_819ED34
- movs r0, 0x5
- bl PutWindowTilemap
- b _0819D622
- .pool
-_0819D5F0:
- movs r0, 0x3
- bl sub_819EA64
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0819D762
- .pool
-_0819D60C:
- movs r0, 0x80
- lsls r0, 7
- ldr r1, =gUnknown_0860F13C
- adds r1, 0x4A
- ldrh r1, [r1]
- str r1, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
-_0819D622:
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- b _0819D762
- .pool
-_0819D63C:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0
- beq _0819D64E
- b _0819D762
-_0819D64E:
- movs r0, 0x5
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x5
- movs r1, 0x2
- bl CopyWindowToVram
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- ldrb r0, [r0, 0x14]
- cmp r0, 0x1
- bne _0819D6B0
- ldr r0, =sub_819D324
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gTasks
- lsls r2, r5, 2
- adds r2, r5
- lsls r2, 3
- adds r2, r1
- strh r6, [r2, 0xE]
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0xA]
- strh r6, [r0, 0x8]
- strh r6, [r0, 0xC]
- movs r1, 0x6
- strh r1, [r0, 0xE]
- movs r0, 0x5
- strh r0, [r2, 0xC]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _0819D762
- .pool
-_0819D6B0:
- ldr r0, =sub_819D324
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, =gTasks
- lsls r2, r5, 2
- adds r2, r5
- lsls r2, 3
- adds r2, r3
- movs r1, 0x1
- strh r1, [r2, 0xE]
- strh r6, [r2, 0x10]
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r3
- strh r5, [r0, 0xA]
- strh r1, [r0, 0x8]
- strh r6, [r0, 0xC]
- movs r1, 0x6
- strh r1, [r0, 0xE]
- ldrh r0, [r2, 0x8]
- adds r0, 0x2
- strh r0, [r2, 0x8]
- b _0819D762
- .pool
-_0819D6F0:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- mov r1, r8
- adds r6, r0, r1
- ldrh r0, [r6, 0xC]
- movs r2, 0xC
- ldrsh r7, [r6, r2]
- cmp r7, 0
- bne _0819D734
- ldr r0, =sub_819D324
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- strh r7, [r6, 0x10]
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- add r0, r8
- strh r5, [r0, 0xA]
- movs r1, 0x1
- strh r1, [r0, 0x8]
- strh r7, [r0, 0xC]
- movs r1, 0x6
- strh r1, [r0, 0xE]
- ldrh r0, [r6, 0x8]
- adds r0, 0x1
- strh r0, [r6, 0x8]
- b _0819D762
- .pool
-_0819D734:
- subs r0, 0x1
- strh r0, [r6, 0xC]
- b _0819D762
-_0819D73A:
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- mov r1, r8
- adds r2, r0, r1
- movs r1, 0xE
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _0819D762
- movs r1, 0x10
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bne _0819D762
- ldrh r0, [r2, 0x12]
- strh r0, [r2, 0x8]
- ldrh r0, [r2, 0x14]
- ldrh r1, [r2, 0x16]
- lsls r0, 16
- orrs r0, r1
- str r0, [r2]
-_0819D762:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_819D588
-
- thumb_func_start sub_819D770
-sub_819D770: @ 819D770
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, =gUnknown_03001284
- ldr r0, [r1]
- adds r0, 0x30
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x1
- bne _0819D78C
- b _0819D9D8
-_0819D78C:
- ldr r0, =gTasks
- lsls r2, r6, 2
- adds r1, r2, r6
- lsls r1, 3
- adds r1, r0
- movs r4, 0x8
- ldrsh r1, [r1, r4]
- mov r8, r0
- adds r5, r2, 0
- cmp r1, 0x8
- bls _0819D7A4
- b _0819D9D8
-_0819D7A4:
- lsls r0, r1, 2
- ldr r1, =_0819D7BC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0819D7BC:
- .4byte _0819D7E0
- .4byte _0819D868
- .4byte _0819D8AE
- .4byte _0819D8F4
- .4byte _0819D910
- .4byte _0819D928
- .4byte _0819D936
- .4byte _0819D948
- .4byte _0819D9B0
-_0819D7E0:
- ldr r0, [r3]
- ldrb r7, [r0, 0x14]
- cmp r7, 0x1
- bne _0819D828
- ldr r0, =sub_819D324
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, =gTasks
- adds r2, r5, r6
- lsls r2, 3
- adds r2, r3
- movs r1, 0
- strh r1, [r2, 0xE]
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r3
- strh r6, [r0, 0xA]
- strh r1, [r0, 0x8]
- strh r7, [r0, 0xC]
- movs r1, 0x6
- strh r1, [r0, 0xE]
- movs r0, 0xA
- strh r0, [r2, 0xC]
- ldrh r0, [r2, 0x8]
- adds r0, 0x1
- strh r0, [r2, 0x8]
- b _0819D9D8
- .pool
-_0819D828:
- ldr r0, =sub_819D324
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r3, =gTasks
- adds r2, r5, r6
- lsls r2, 3
- adds r2, r3
- movs r0, 0
- movs r1, 0x1
- strh r1, [r2, 0xE]
- strh r0, [r2, 0x10]
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r3
- strh r6, [r0, 0xA]
- strh r1, [r0, 0x8]
- strh r1, [r0, 0xC]
- movs r1, 0x6
- strh r1, [r0, 0xE]
- ldrh r0, [r2, 0x8]
- adds r0, 0x2
- strh r0, [r2, 0x8]
- b _0819D9D8
- .pool
-_0819D868:
- adds r0, r5, r6
- lsls r0, 3
- mov r1, r8
- adds r5, r0, r1
- ldrh r0, [r5, 0xC]
- movs r2, 0xC
- ldrsh r7, [r5, r2]
- cmp r7, 0
- bne _0819D8A8
- ldr r0, =sub_819D324
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r4, r0, 24
- strh r7, [r5, 0x10]
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- add r0, r8
- strh r6, [r0, 0xA]
- movs r1, 0x1
- strh r1, [r0, 0x8]
- strh r1, [r0, 0xC]
- movs r1, 0x6
- strh r1, [r0, 0xE]
- ldrh r0, [r5, 0x8]
- adds r0, 0x1
- strh r0, [r5, 0x8]
- b _0819D9D8
- .pool
-_0819D8A8:
- subs r0, 0x1
- strh r0, [r5, 0xC]
- b _0819D9D8
-_0819D8AE:
- adds r0, r5, r6
- lsls r0, 3
- mov r1, r8
- adds r4, r0, r1
- movs r2, 0xE
- ldrsh r0, [r4, r2]
- cmp r0, 0x1
- beq _0819D8C0
- b _0819D9D8
-_0819D8C0:
- movs r1, 0x10
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0819D8CA
- b _0819D9D8
-_0819D8CA:
- ldr r1, =gPlttBufferFaded
- ldr r0, =gUnknown_0860F13C
- adds r0, 0x4A
- ldrh r0, [r0]
- movs r2, 0xE2
- lsls r2, 1
- adds r1, r2
- strh r0, [r1]
- bl sub_819ED34
- movs r0, 0x5
- bl PutWindowTilemap
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0819D9D8
- .pool
-_0819D8F4:
- movs r0, 0x80
- lsls r0, 7
- ldr r1, =gUnknown_0860F13C
- adds r1, 0x4A
- ldrh r1, [r1]
- str r1, [sp]
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- b _0819D990
- .pool
-_0819D910:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0819D9D8
- movs r0, 0
- bl sub_819EDBC
- b _0819D990
- .pool
-_0819D928:
- movs r0, 0x1
- bl sub_819EDBC
- movs r0, 0x3
- bl PutWindowTilemap
- b _0819D990
-_0819D936:
- movs r0, 0x5
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x5
- movs r1, 0x2
- bl CopyWindowToVram
- b _0819D990
-_0819D948:
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- ldrb r0, [r0, 0x14]
- cmp r0, 0
- bne _0819D964
- ldr r0, =gText_SelectPkmnToSwap
- bl sub_819EBEC
- b _0819D96A
- .pool
-_0819D964:
- ldr r0, =gText_SelectPkmnToAccept
- bl sub_819EBEC
-_0819D96A:
- ldr r0, =gUnknown_03001284
- ldr r1, [r0]
- ldrb r0, [r1, 0x3]
- cmp r0, 0x2
- bhi _0819D98C
- ldr r2, =gSprites
- ldrb r1, [r1, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
-_0819D98C:
- bl sub_819EFA8
-_0819D990:
- ldr r0, =gTasks
- adds r1, r5, r6
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0819D9D8
- .pool
-_0819D9B0:
- bl sub_819EEF0
- bl sub_819EADC
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- adds r0, 0x22
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, =gTasks
- adds r0, r5, r6
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x12]
- strh r1, [r0, 0x8]
- ldrh r1, [r0, 0x14]
- ldrh r2, [r0, 0x16]
- lsls r1, 16
- orrs r1, r2
- str r1, [r0]
-_0819D9D8:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819D770
-
- thumb_func_start sub_819D9EC
-sub_819D9EC: @ 819D9EC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- adds r0, 0x30
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0819DA00
- b _0819DBCA
-_0819DA00:
- ldr r0, =gTasks
- lsls r2, r6, 2
- adds r1, r2, r6
- lsls r1, 3
- adds r1, r0
- movs r3, 0x8
- ldrsh r1, [r1, r3]
- adds r3, r0, 0
- adds r7, r2, 0
- cmp r1, 0x4
- bls _0819DA18
- b _0819DBCA
-_0819DA18:
- lsls r0, r1, 2
- ldr r1, =_0819DA30
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0819DA30:
- .4byte _0819DA44
- .4byte _0819DA58
- .4byte _0819DA8C
- .4byte _0819DABC
- .4byte _0819DBB0
-_0819DA44:
- bl sub_819EEF0
- ldr r0, =gTasks
- adds r1, r7, r6
- lsls r1, 3
- adds r1, r0
- b _0819DB96
- .pool
-_0819DA58:
- bl sub_819EADC
- ldr r2, =gSprites
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldr r0, =gTasks
- adds r1, r7, r6
- lsls r1, 3
- adds r1, r0
- b _0819DB96
- .pool
-_0819DA8C:
- ldr r0, =sub_819D12C
- movs r1, 0
- bl CreateTask
- ldr r2, =gTasks
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- adds r0, 0x21
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, =sub_819D064
- str r1, [r0]
- b _0819DB90
- .pool
-_0819DABC:
- ldr r0, =sub_819D12C
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- beq _0819DACA
- b _0819DBCA
-_0819DACA:
- ldr r2, =gTasks
- ldr r4, =gUnknown_03001284
- ldr r0, [r4]
- adds r0, 0x21
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x10
- ldrsh r0, [r0, r1]
- cmp r0, 0x1
- bne _0819DBCA
- bl sub_819EAC0
- ldr r0, [r4]
- ldrb r0, [r0, 0x14]
- cmp r0, 0
- bne _0819DB04
- movs r0, 0x1
- bl sub_819F048
- b _0819DB32
- .pool
-_0819DB04:
- movs r0, 0
- bl sub_819F048
- movs r2, 0
- ldr r5, =gSprites
- movs r3, 0x4
-_0819DB10:
- ldr r0, [r4]
- adds r0, 0xB
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r3
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bls _0819DB10
-_0819DB32:
- ldr r5, =gSprites
- ldr r4, =gUnknown_03001284
- ldr r3, [r4]
- ldrb r0, [r3, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r0, r3, 0x5
- ldrb r2, [r3, 0x3]
- adds r0, r2
- ldrb r2, [r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r5
- ldrh r0, [r0, 0x20]
- movs r5, 0
- strh r0, [r1, 0x20]
- ldr r2, =gTasks
- adds r0, r3, 0
- adds r0, 0x21
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldr r1, =sub_819CF54
- str r1, [r0]
- adds r3, 0x27
- strb r5, [r3]
- ldr r0, [r4]
- adds r0, 0x28
- movs r1, 0x6
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0x26
- strb r5, [r0]
- ldr r0, [r4]
- adds r0, 0x21
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- movs r1, 0x1
- strh r1, [r0, 0x8]
-_0819DB90:
- adds r1, r7, r6
- lsls r1, 3
- adds r1, r2
-_0819DB96:
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0819DBCA
- .pool
-_0819DBB0:
- adds r0, r7, r6
- lsls r0, 3
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x8]
- ldr r2, =sub_819CE40
- lsrs r1, r2, 16
- strh r1, [r0, 0x14]
- strh r2, [r0, 0x16]
- movs r1, 0x1
- strh r1, [r0, 0x12]
- ldr r1, =sub_819D770
- str r1, [r0]
-_0819DBCA:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819D9EC
-
- thumb_func_start sub_819DBD8
-sub_819DBD8: @ 819DBD8
- push {r4,r5,lr}
- ldr r5, =gUnknown_03001284
- ldr r4, [r5]
- cmp r4, 0
- bne _0819DBF6
- movs r0, 0x34
- bl AllocZeroed
- str r0, [r5]
- strb r4, [r0, 0x3]
- ldr r0, [r5]
- adds r0, 0x30
- strb r4, [r0]
- ldr r0, [r5]
- strb r4, [r0, 0x15]
-_0819DBF6:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819DBD8
-
- thumb_func_start sub_819DC00
-sub_819DC00: @ 819DC00
- push {lr}
- ldr r0, =gUnknown_03001284
- movs r1, 0
- str r1, [r0]
- ldr r0, =sub_819DC1C
- bl SetMainCallback2
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819DC00
-
- thumb_func_start sub_819DC1C
-sub_819DC1C: @ 819DC1C
- push {r4-r6,lr}
- sub sp, 0xC
- ldr r1, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r2, r1, 0
- cmp r0, 0xF
- bls _0819DC32
- b _0819E0AA
-_0819DC32:
- lsls r0, 2
- ldr r1, =_0819DC44
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0819DC44:
- .4byte _0819DC84
- .4byte _0819DCD4
- .4byte _0819DDA8
- .4byte _0819DE68
- .4byte _0819DE94
- .4byte _0819DECC
- .4byte _0819DEEC
- .4byte _0819DF10
- .4byte _0819DF30
- .4byte _0819DF3C
- .4byte _0819DF64
- .4byte _0819DF70
- .4byte _0819DF78
- .4byte _0819DF8C
- .4byte _0819DFA4
- .4byte _0819E01C
-_0819DC84:
- movs r0, 0
- bl SetHBlankCallback
- movs r0, 0
- bl SetVBlankCallback
- movs r0, 0
- str r0, [sp, 0x8]
- movs r1, 0xC0
- lsls r1, 19
- ldr r2, =0x05006000
- add r0, sp, 0x8
- bl CpuSet
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, =gUnknown_086108B8
- movs r0, 0
- movs r2, 0x4
- bl InitBgsFromTemplates
- ldr r0, =gUnknown_086108C8
- bl InitWindows
- bl DeactivateAllTextPrinters
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _0819E00E
- .pool
-_0819DCD4:
- ldr r5, =gUnknown_0203CE40
- movs r4, 0x88
- lsls r4, 3
- adds r0, r4, 0
- bl Alloc
- str r0, [r5]
- ldr r5, =gUnknown_0203CE44
- adds r0, r4, 0
- bl AllocZeroed
- str r0, [r5]
- ldr r5, =gUnknown_0203CE48
- movs r4, 0x80
- lsls r4, 4
- adds r0, r4, 0
- bl Alloc
- str r0, [r5]
- ldr r5, =gUnknown_0203CE4C
- adds r0, r4, 0
- bl AllocZeroed
- str r0, [r5]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgX
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x4C
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x40
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x44
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x42
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x46
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x48
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x4A
- movs r1, 0
- bl SetGpuReg
- b _0819E006
- .pool
-_0819DDA8:
- bl ResetPaletteFade
- bl ResetSpriteData
- bl ResetTasks
- bl FreeAllSpritePalettes
- bl ResetAllPicSprites
- ldr r0, =gFrontierFactorySelectMenu_Gfx
- ldr r5, =gUnknown_0203CE40
- ldr r1, [r5]
- movs r2, 0x88
- lsls r2, 2
- bl CpuSet
- ldr r0, =gUnknown_0861033C
- ldr r4, =gUnknown_0203CE44
- ldr r1, [r4]
- movs r2, 0x30
- bl CpuSet
- ldr r1, [r5]
- movs r2, 0x88
- lsls r2, 3
- movs r0, 0x1
- movs r3, 0
- bl LoadBgTiles
- ldr r1, [r4]
- movs r0, 0x3
- movs r2, 0x60
- movs r3, 0
- bl LoadBgTiles
- ldr r0, =gFrontierFactorySelectMenu_Tilemap
- ldr r4, =gUnknown_0203CE48
- ldr r1, [r4]
- movs r2, 0x80
- lsls r2, 3
- bl CpuSet
- ldr r1, [r4]
- movs r2, 0x80
- lsls r2, 4
- movs r0, 0x1
- movs r3, 0
- bl LoadBgTilemap
- ldr r0, =gFrontierFactorySelectMenu_Pal
- movs r1, 0
- movs r2, 0x40
- bl LoadPalette
- ldr r4, =gUnknown_08610918
- adds r0, r4, 0
- movs r1, 0xF0
- movs r2, 0xA
- bl LoadPalette
- adds r0, r4, 0
- movs r1, 0xE0
- movs r2, 0xA
- bl LoadPalette
- ldr r0, =gUnknown_0861039C
- movs r1, 0x20
- movs r2, 0x4
- bl LoadPalette
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _0819E00E
- .pool
-_0819DE68:
- ldr r0, =gUnknown_0203CE4C
- ldr r1, [r0]
- movs r0, 0x3
- bl SetBgTilemapBuffer
- ldr r1, =gUnknown_0861023C
- movs r0, 0x8
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x3
- movs r2, 0xB
- movs r3, 0x4
- bl CopyToBgTilemapBufferRect
- movs r0, 0x3
- bl CopyBgTilemapBufferToVram
- b _0819E006
- .pool
-_0819DE94:
- ldr r0, =gUnknown_086106B0
- bl LoadSpritePalettes
- ldr r0, =gUnknown_08610650
- bl LoadSpriteSheets
- ldr r0, =gUnknown_086106A0
- bl LoadCompressedObjectPic
- ldr r0, =sub_819C7FC
- bl SetVBlankCallback
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _0819E00E
- .pool
-_0819DECC:
- ldr r0, =gUnknown_03001284
- ldr r1, [r0]
- ldrb r0, [r1, 0x15]
- cmp r0, 0x1
- bne _0819DEDC
- ldr r0, =gUnknown_0203CF20
- ldrb r0, [r0]
- strb r0, [r1, 0x3]
-_0819DEDC:
- movs r0, 0x87
- lsls r0, 3
- adds r1, r2, r0
- b _0819E00E
- .pool
-_0819DEEC:
- bl sub_819DBD8
- bl sub_819E0C0
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- ldrb r0, [r0, 0x15]
- cmp r0, 0x1
- bne _0819DF02
- bl sub_819F304
-_0819DF02:
- movs r0, 0
- bl sub_819F048
- b _0819E006
- .pool
-_0819DF10:
- ldr r0, =gText_SelectPkmnToSwap
- bl sub_819EBEC
- movs r0, 0x2
- bl PutWindowTilemap
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _0819E00E
- .pool
-_0819DF30:
- bl sub_819EFA8
- movs r0, 0x8
- bl PutWindowTilemap
- b _0819E006
-_0819DF3C:
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- ldrb r0, [r0, 0x15]
- cmp r0, 0
- bne _0819DF4A
- bl sub_819EB4C
-_0819DF4A:
- movs r0, 0x1
- bl PutWindowTilemap
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _0819E00E
- .pool
-_0819DF64:
- bl sub_819EB18
- movs r0, 0
- bl PutWindowTilemap
- b _0819E006
-_0819DF70:
- movs r0, 0x87
- lsls r0, 3
- adds r1, r2, r0
- b _0819E00E
-_0819DF78:
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- ldrb r0, [r0, 0x15]
- cmp r0, 0
- beq _0819E006
- bl sub_819EE08
- b _0819E006
- .pool
-_0819DF8C:
- bl sub_819ED78
- movs r0, 0x3
- bl PutWindowTilemap
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- b _0819E00E
- .pool
-_0819DFA4:
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- movs r1, 0x82
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- ldrb r0, [r0, 0x15]
- cmp r0, 0x1
- bne _0819E000
- movs r0, 0x3
- bl ShowBg
- ldr r1, =0x00001248
- movs r0, 0x50
- bl SetGpuReg
- ldr r1, =0x0000040b
- movs r0, 0x52
- bl SetGpuReg
- b _0819E006
- .pool
-_0819E000:
- movs r0, 0x3
- bl HideBg
-_0819E006:
- ldr r1, =gMain
- movs r2, 0x87
- lsls r2, 3
- adds r1, r2
-_0819E00E:
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- b _0819E0AA
- .pool
-_0819E01C:
- ldr r0, =sub_819CF54
- movs r1, 0
- bl CreateTask
- ldr r6, =gUnknown_03001284
- ldr r1, [r6]
- adds r1, 0x21
- strb r0, [r1]
- ldr r0, [r6]
- ldrb r5, [r0, 0x15]
- cmp r5, 0
- bne _0819E06C
- ldr r4, =gTasks
- adds r0, 0x21
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- strh r5, [r0, 0x8]
- ldr r0, =sub_819CE40
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- strh r5, [r0, 0x8]
- b _0819E0A4
- .pool
-_0819E06C:
- bl sub_819EAF8
- ldr r4, =gTasks
- ldr r2, [r6]
- adds r0, r2, 0
- adds r0, 0x21
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r3, 0
- movs r1, 0x1
- strh r1, [r0, 0x8]
- adds r2, 0x22
- strb r3, [r2]
- ldr r0, =sub_819CD34
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- adds r0, r4
- movs r1, 0x2
- strh r1, [r0, 0x8]
-_0819E0A4:
- ldr r0, =sub_819C7E0
- bl SetMainCallback2
-_0819E0AA:
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819DC1C
-
- thumb_func_start sub_819E0C0
-sub_819E0C0: @ 819E0C0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- mov r1, sp
- ldr r0, =gUnknown_08610834
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2,r5,r6}
- stm r1!, {r2,r5,r6}
- mov r1, sp
- movs r0, 0x65
- strh r0, [r1, 0x2]
- movs r6, 0
- ldr r4, =gUnknown_03001284
- movs r7, 0
- ldr r5, =gSprites
-_0819E0E6:
- lsls r1, r6, 1
- adds r1, r6
- lsls r1, 20
- movs r3, 0x90
- lsls r3, 15
- adds r1, r3
- asrs r1, 16
- mov r0, sp
- movs r2, 0x40
- movs r3, 0x1
- bl CreateSprite
- ldr r1, [r4]
- adds r1, 0x5
- adds r1, r6
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, 0x5
- adds r0, r6
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- strh r7, [r0, 0x2E]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bls _0819E0E6
- ldr r7, =gUnknown_03001284
- ldr r1, [r7]
- adds r0, r1, 0x5
- ldrb r1, [r1, 0x3]
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, =gSprites
- adds r0, r4
- movs r5, 0x20
- ldrsh r1, [r0, r5]
- ldr r0, =gUnknown_0861084C
- movs r2, 0x58
- movs r3, 0
- bl CreateSprite
- ldr r1, [r7]
- movs r4, 0
- strb r0, [r1, 0x4]
- ldr r0, =gUnknown_08610864
- movs r1, 0xB0
- movs r2, 0x70
- movs r3, 0
- bl CreateSprite
- ldr r1, [r7]
- strb r0, [r1, 0x1]
- ldr r0, =gUnknown_0861087C
- movs r1, 0xB0
- movs r2, 0x90
- movs r3, 0
- bl CreateSprite
- ldr r1, [r7]
- strb r0, [r1, 0x2]
- ldr r0, [r7]
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r6, =gSprites
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldr r0, [r7]
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- ldr r0, [r7]
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x28
- strb r4, [r0]
- ldr r0, [r7]
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x29
- strb r4, [r0]
- ldr r0, [r7]
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x28
- strb r4, [r0]
- ldr r0, [r7]
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x29
- strb r4, [r0]
- ldr r0, [r7]
- ldrb r0, [r0, 0x15]
- movs r1, 0xC0
- str r1, [sp, 0x18]
- cmp r0, 0x1
- bne _0819E1E8
- movs r2, 0xF0
- str r2, [sp, 0x18]
-_0819E1E8:
- mov r1, sp
- ldr r0, =gUnknown_0861084C
- ldm r0!, {r3-r5}
- stm r1!, {r3-r5}
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- mov r0, sp
- movs r4, 0x68
- mov r10, r4
- mov r5, r10
- strh r5, [r0]
- movs r1, 0xF0
- movs r2, 0x78
- movs r3, 0xA
- bl CreateSprite
- ldr r1, [r7]
- strb r0, [r1, 0x8]
- mov r1, sp
- ldr r0, =gUnknown_08610864
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- mov r0, sp
- movs r1, 0x69
- mov r9, r1
- mov r2, r9
- strh r2, [r0]
- movs r4, 0x80
- lsls r4, 1
- adds r1, r4, 0
- movs r2, 0x78
- movs r3, 0xA
- bl CreateSprite
- ldr r1, [r7]
- strb r0, [r1, 0x9]
- movs r5, 0x90
- lsls r5, 1
- mov r0, sp
- adds r1, r5, 0
- movs r2, 0x78
- movs r3, 0xA
- bl CreateSprite
- ldr r1, [r7]
- strb r0, [r1, 0xA]
- mov r1, sp
- ldr r0, =gUnknown_0861084C
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- mov r0, sp
- movs r3, 0x6A
- mov r8, r3
- mov r6, r8
- strh r6, [r0]
- movs r1, 0xF0
- movs r2, 0x78
- movs r3, 0x1
- bl CreateSprite
- ldr r1, [r7]
- strb r0, [r1, 0xB]
- mov r1, sp
- ldr r0, =gUnknown_08610864
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- mov r1, sp
- movs r0, 0x6B
- strh r0, [r1]
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x78
- movs r3, 0x1
- bl CreateSprite
- ldr r1, [r7]
- strb r0, [r1, 0xC]
- mov r0, sp
- movs r6, 0x6C
- strh r6, [r0]
- adds r1, r5, 0
- movs r2, 0x78
- movs r3, 0x1
- bl CreateSprite
- ldr r1, [r7]
- strb r0, [r1, 0xD]
- mov r1, sp
- ldr r0, =gUnknown_0861084C
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- mov r0, sp
- mov r4, r10
- strh r4, [r0]
- ldr r1, [sp, 0x18]
- movs r2, 0x90
- movs r3, 0xA
- bl CreateSprite
- ldr r1, [r7]
- strb r0, [r1, 0xE]
- mov r1, sp
- ldr r0, =gUnknown_08610864
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r4,r5}
- stm r1!, {r2,r4,r5}
- mov r0, sp
- mov r3, r9
- strh r3, [r0]
- ldr r4, [sp, 0x18]
- adds r4, 0x10
- adds r1, r4, 0
- movs r2, 0x90
- movs r3, 0xA
- bl CreateSprite
- ldr r1, [r7]
- strb r0, [r1, 0xF]
- mov r1, sp
- ldr r0, =gUnknown_0861084C
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- mov r0, sp
- mov r5, r8
- strh r5, [r0]
- ldr r1, [sp, 0x18]
- movs r2, 0x90
- movs r3, 0x1
- bl CreateSprite
- ldr r1, [r7]
- strb r0, [r1, 0x10]
- mov r1, sp
- ldr r0, =gUnknown_08610864
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- mov r0, sp
- strh r6, [r0]
- adds r1, r4, 0
- movs r2, 0x90
- movs r3, 0x1
- bl CreateSprite
- ldr r1, [r7]
- strb r0, [r1, 0x11]
- movs r6, 0
- ldr r5, =gSprites
- adds r4, r7, 0
- movs r7, 0
- movs r0, 0x4
- mov r10, r0
-_0819E330:
- ldr r0, [r4]
- lsls r3, r6, 1
- adds r2, r3, r6
- adds r0, 0x8
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x28
- strb r7, [r0]
- ldr r0, [r4]
- adds r0, 0x8
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x29
- strb r7, [r0]
- ldr r0, [r4]
- adds r0, 0x9
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x28
- strb r7, [r0]
- ldr r0, [r4]
- adds r0, 0x9
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x29
- strb r7, [r0]
- ldr r0, [r4]
- adds r0, 0xA
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x28
- strb r7, [r0]
- ldr r0, [r4]
- adds r0, 0xA
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x29
- strb r7, [r0]
- ldr r0, [r4]
- adds r0, 0xE
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x28
- strb r7, [r0]
- ldr r0, [r4]
- adds r0, 0xE
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x29
- strb r7, [r0]
- ldr r0, [r4]
- adds r0, 0xF
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x28
- strb r7, [r0]
- ldr r0, [r4]
- adds r0, 0xF
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x29
- strb r7, [r0]
- ldr r0, [r4]
- adds r0, 0x8
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- mov r8, r0
- ldrb r1, [r0]
- mov r0, r10
- orrs r1, r0
- mov r0, r8
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0x9
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- mov r8, r0
- ldrb r1, [r0]
- mov r0, r10
- orrs r1, r0
- mov r0, r8
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0xA
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- mov r2, r10
- orrs r1, r2
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0xE
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0xF
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, =gUnknown_03001284
- mov r8, r3
- ldr r0, =gSprites
- mov r9, r0
- cmp r6, 0x1
- bhi _0819E496
- b _0819E330
-_0819E496:
- ldr r0, [r3]
- ldrb r0, [r0, 0xE]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r9
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r3, 0x5
- negs r3, r3
- adds r0, r3, 0
- b _0819E4C8
- .pool
-_0819E4C8:
- ands r0, r2
- strb r0, [r1]
- mov r1, r8
- ldr r0, [r1]
- ldrb r1, [r0, 0xF]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- adds r0, 0x3E
- ldrb r2, [r0]
- adds r1, r3, 0
- ands r1, r2
- strb r1, [r0]
- mov r2, r8
- ldr r0, [r2]
- ldrb r1, [r0, 0x8]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- adds r0, 0x3E
- ldrb r2, [r0]
- adds r1, r3, 0
- ands r1, r2
- strb r1, [r0]
- mov r4, r8
- ldr r0, [r4]
- ldrb r1, [r0, 0x9]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- adds r0, 0x3E
- ldrb r2, [r0]
- adds r1, r3, 0
- ands r1, r2
- strb r1, [r0]
- ldr r0, [r4]
- ldrb r1, [r0, 0xA]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r3, r1
- strb r3, [r0]
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_819E0C0
-
- thumb_func_start sub_819E538
-sub_819E538: @ 819E538
- push {r4-r7,lr}
- movs r5, 0
-_0819E53C:
- ldr r6, =gUnknown_03001284
- ldr r0, [r6]
- adds r0, 0x5
- adds r0, r5
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r4, =gSprites
- adds r0, r4
- bl DestroySprite
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _0819E53C
- ldr r0, [r6]
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r0, [r6]
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- ldr r0, [r6]
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- bl DestroySprite
- movs r5, 0
-_0819E590:
- movs r4, 0
- lsls r6, r5, 1
-_0819E594:
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- adds r1, r6, r5
- adds r1, r4, r1
- adds r0, 0x8
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _0819E594
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bls _0819E590
- movs r5, 0
-_0819E5C6:
- movs r4, 0
- adds r7, r5, 0x1
- lsls r6, r5, 1
-_0819E5CC:
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- adds r1, r4, r6
- adds r0, 0xE
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bls _0819E5CC
- lsls r0, r7, 24
- lsrs r5, r0, 24
- cmp r5, 0x1
- bls _0819E5C6
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819E538
-
- thumb_func_start sub_819E608
-sub_819E608: @ 819E608
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bhi _0819E65C
- ldr r4, =gSprites
- ldr r5, =gUnknown_03001284
- ldr r0, [r5]
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- bl sub_819E8EC
- ldr r0, [r5]
- ldrb r2, [r0, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- adds r0, 0x5
- adds r0, r6
- ldrb r2, [r0]
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x20]
- strh r0, [r1, 0x20]
- b _0819E684
- .pool
-_0819E65C:
- ldr r2, =gSprites
- ldr r3, =gUnknown_03001284
- ldr r0, [r3]
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldr r0, [r3]
- ldr r1, [r0, 0x18]
- lsls r0, r6, 3
- adds r0, r1
- ldrb r0, [r0]
- bl sub_819E838
-_0819E684:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819E608
-
- thumb_func_start sub_819E694
-sub_819E694: @ 819E694
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- lsls r4, 24
- cmp r4, 0
- ble _0819E6C0
- ldr r1, =gUnknown_03001284
- ldr r2, [r1]
- ldrb r0, [r2, 0x3]
- adds r0, 0x1
- ldrb r3, [r2, 0x17]
- cmp r0, r3
- bne _0819E6D8
- movs r0, 0
- b _0819E6D8
- .pool
-_0819E6C0:
- ldr r0, =gUnknown_03001284
- ldr r2, [r0]
- ldrb r3, [r2, 0x3]
- adds r1, r0, 0
- cmp r3, 0
- beq _0819E6D4
- subs r0, r3, 0x1
- b _0819E6D8
- .pool
-_0819E6D4:
- ldrb r0, [r2, 0x17]
- subs r0, 0x1
-_0819E6D8:
- strb r0, [r2, 0x3]
- ldr r0, [r1]
- ldrb r0, [r0, 0x3]
- bl sub_819E608
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_819E694
-
- thumb_func_start sub_819E6E8
-sub_819E6E8: @ 819E6E8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- lsls r4, 24
- cmp r4, 0
- ble _0819E728
- ldr r0, =gUnknown_03001284
- ldr r2, [r0]
- ldrb r1, [r2, 0x3]
- adds r4, r0, 0
- cmp r1, 0x2
- bhi _0819E714
- movs r0, 0x3
- strb r0, [r2, 0x3]
- b _0819E74A
- .pool
-_0819E714:
- ldrb r0, [r2, 0x3]
- adds r0, 0x1
- ldrb r1, [r2, 0x17]
- cmp r0, r1
- beq _0819E722
- strb r0, [r2, 0x3]
- b _0819E74A
-_0819E722:
- movs r0, 0
- strb r0, [r2, 0x3]
- b _0819E74A
-_0819E728:
- ldr r0, =gUnknown_03001284
- ldr r1, [r0]
- ldrb r3, [r1, 0x3]
- adds r2, r3, 0
- adds r4, r0, 0
- cmp r2, 0x2
- bls _0819E744
- cmp r2, 0
- beq _0819E744
- subs r0, r3, 0x1
- b _0819E748
- .pool
-_0819E744:
- ldrb r0, [r1, 0x17]
- subs r0, 0x1
-_0819E748:
- strb r0, [r1, 0x3]
-_0819E74A:
- ldr r0, [r4]
- ldrb r0, [r0, 0x3]
- bl sub_819E608
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_819E6E8
-
- thumb_func_start sub_819E758
-sub_819E758: @ 819E758
- push {lr}
- lsls r0, 24
- cmp r0, 0
- ble _0819E778
- ldr r0, =gUnknown_03001284
- ldr r1, [r0]
- ldrb r3, [r1, 0x16]
- adds r2, r0, 0
- cmp r3, 0x1
- beq _0819E774
- adds r0, r3, 0x1
- b _0819E78E
- .pool
-_0819E774:
- movs r0, 0
- b _0819E78E
-_0819E778:
- ldr r0, =gUnknown_03001284
- ldr r1, [r0]
- ldrb r3, [r1, 0x16]
- adds r2, r0, 0
- cmp r3, 0
- beq _0819E78C
- subs r0, r3, 0x1
- b _0819E78E
- .pool
-_0819E78C:
- movs r0, 0x1
-_0819E78E:
- strb r0, [r1, 0x16]
- ldr r3, =gSprites
- ldr r2, [r2]
- ldrb r0, [r2, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r0, [r2, 0x16]
- lsls r0, 4
- adds r0, 0x70
- strh r0, [r1, 0x22]
- ldrb r0, [r2, 0x2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r0, [r2, 0x16]
- lsls r0, 4
- adds r0, 0x70
- strh r0, [r1, 0x22]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819E758
-
- thumb_func_start sub_819E7C0
-sub_819E7C0: @ 819E7C0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x5
- bl PlaySE
- lsls r4, 24
- cmp r4, 0
- ble _0819E7EC
- ldr r0, =gUnknown_03001284
- ldr r1, [r0]
- ldrb r3, [r1]
- adds r2, r0, 0
- cmp r3, 0x2
- beq _0819E7E8
- adds r0, r3, 0x1
- b _0819E802
- .pool
-_0819E7E8:
- movs r0, 0
- b _0819E802
-_0819E7EC:
- ldr r0, =gUnknown_03001284
- ldr r1, [r0]
- ldrb r3, [r1]
- adds r2, r0, 0
- cmp r3, 0
- beq _0819E800
- subs r0, r3, 0x1
- b _0819E802
- .pool
-_0819E800:
- movs r0, 0x2
-_0819E802:
- strb r0, [r1]
- ldr r3, =gSprites
- ldr r2, [r2]
- ldrb r0, [r2, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r0, [r2]
- lsls r0, 4
- adds r0, 0x70
- strh r0, [r1, 0x22]
- ldrb r0, [r2, 0x2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r3
- ldrb r0, [r2]
- lsls r0, 4
- adds r0, 0x70
- strh r0, [r1, 0x22]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819E7C0
-
- thumb_func_start sub_819E838
-sub_819E838: @ 819E838
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- movs r0, 0x5
- negs r0, r0
- mov r9, r0
- movs r2, 0x4
- mov r8, r2
- ldr r0, =gSprites
- mov r12, r0
- ldr r7, =gUnknown_03001284
-_0819E856:
- cmp r6, 0x2
- bne _0819E898
- ldr r5, =gSprites
- ldr r3, =gUnknown_03001284
- ldr r0, [r3]
- adds r0, 0xB
- adds r0, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r2, [r1]
- mov r0, r9
- ands r0, r2
- strb r0, [r1]
- cmp r4, 0x1
- bhi _0819E8D4
- ldr r0, [r3]
- adds r0, 0x10
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- b _0819E8CA
- .pool
-_0819E898:
- cmp r6, 0x3
- bne _0819E8D4
- cmp r4, 0x1
- bhi _0819E8BA
- ldr r0, [r7]
- adds r0, 0x10
- adds r0, r4
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- add r1, r12
- adds r1, 0x3E
- ldrb r2, [r1]
- mov r0, r9
- ands r0, r2
- strb r0, [r1]
-_0819E8BA:
- ldr r0, [r7]
- adds r0, 0xB
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r12
-_0819E8CA:
- adds r0, 0x3E
- ldrb r1, [r0]
- mov r2, r8
- orrs r1, r2
- strb r1, [r0]
-_0819E8D4:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _0819E856
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_819E838
-
- thumb_func_start sub_819E8EC
-sub_819E8EC: @ 819E8EC
- push {r4-r6,lr}
- movs r2, 0
- ldr r5, =gSprites
- ldr r4, =gUnknown_03001284
- adds r6, r5, 0
- movs r3, 0x4
-_0819E8F8:
- ldr r0, [r4]
- adds r0, 0xB
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r3
- strb r1, [r0]
- cmp r2, 0x1
- bhi _0819E92C
- ldr r0, [r4]
- adds r0, 0x10
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r3
- strb r1, [r0]
-_0819E92C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x2
- bls _0819E8F8
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819E8EC
-
- thumb_func_start sub_819E944
-sub_819E944: @ 819E944
- push {r4,r5,lr}
- ldr r0, =gUnknown_03001284
- ldr r3, [r0]
- ldrb r1, [r3, 0x15]
- adds r5, r0, 0
- cmp r1, 0x1
- bne _0819E95C
- movs r0, 0
- strb r0, [r3, 0x15]
- b _0819E960
- .pool
-_0819E95C:
- movs r0, 0
- strb r0, [r3]
-_0819E960:
- ldr r4, =gSprites
- ldr r2, [r5]
- ldrb r1, [r2, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xB0
- strh r1, [r0, 0x20]
- ldrb r0, [r2, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r2]
- lsls r0, 4
- adds r0, 0x70
- strh r0, [r1, 0x22]
- ldrb r1, [r2, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xD0
- strh r1, [r0, 0x20]
- ldrb r0, [r2, 0x2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r2]
- lsls r0, 4
- adds r0, 0x70
- strh r0, [r1, 0x22]
- ldrb r0, [r2, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- ldr r0, [r5]
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- bl sub_819EC20
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819E944
-
- thumb_func_start sub_819E9E0
-sub_819E9E0: @ 819E9E0
- push {r4,r5,lr}
- ldr r5, =gUnknown_03001284
- ldr r1, [r5]
- movs r0, 0
- strb r0, [r1, 0x16]
- ldr r4, =gSprites
- ldr r2, [r5]
- ldrb r1, [r2, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xB0
- strh r1, [r0, 0x20]
- ldrb r1, [r2, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r3, 0x70
- strh r3, [r0, 0x22]
- ldrb r1, [r2, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0xD0
- strh r1, [r0, 0x20]
- ldrb r1, [r2, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- strh r3, [r0, 0x22]
- ldrb r0, [r2, 0x1]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- adds r1, 0x3E
- ldrb r3, [r1]
- movs r2, 0x5
- negs r2, r2
- adds r0, r2, 0
- ands r0, r3
- strb r0, [r1]
- ldr r0, [r5]
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- ands r2, r1
- strb r2, [r0]
- bl sub_819EC94
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819E9E0
-
- thumb_func_start sub_819EA64
-sub_819EA64: @ 819EA64
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, =gSprites
- ldr r3, =gUnknown_03001284
- ldr r0, [r3]
- ldrb r1, [r0, 0x1]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldr r0, [r3]
- ldrb r1, [r0, 0x2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r0, r4, 0
- movs r1, 0
- bl FillWindowPixelBuffer
- adds r0, r4, 0
- movs r1, 0x2
- bl CopyWindowToVram
- adds r0, r4, 0
- bl ClearWindowTilemap
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819EA64
-
- thumb_func_start sub_819EAC0
-sub_819EAC0: @ 819EAC0
- push {lr}
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x1
- movs r1, 0x2
- bl CopyWindowToVram
- pop {r0}
- bx r0
- thumb_func_end sub_819EAC0
-
- thumb_func_start sub_819EADC
-sub_819EADC: @ 819EADC
- push {lr}
- movs r0, 0x7
- bl PutWindowTilemap
- movs r0, 0x7
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x7
- movs r1, 0x2
- bl CopyWindowToVram
- pop {r0}
- bx r0
- thumb_func_end sub_819EADC
-
- thumb_func_start sub_819EAF8
-sub_819EAF8: @ 819EAF8
- push {lr}
- bl sub_819EAC0
- movs r0, 0x5
- bl PutWindowTilemap
- movs r0, 0x5
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x5
- movs r1, 0x2
- bl CopyWindowToVram
- pop {r0}
- bx r0
- thumb_func_end sub_819EAF8
-
- thumb_func_start sub_819EB18
-sub_819EB18: @ 819EB18
- push {lr}
- sub sp, 0xC
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r2, =gText_PkmnSwap
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0x2
- bl PrintTextOnWindow
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819EB18
-
- thumb_func_start sub_819EB4C
-sub_819EB4C: @ 819EB4C
- push {r4,lr}
- sub sp, 0xC
- movs r0, 0x1
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r0, =gUnknown_03001284
- ldr r1, [r0]
- ldrb r0, [r1, 0x3]
- cmp r0, 0x2
- bls _0819EB70
- movs r0, 0x1
- movs r1, 0x2
- bl CopyWindowToVram
- b _0819EBD4
- .pool
-_0819EB70:
- ldrb r2, [r1, 0x3]
- ldrb r0, [r1, 0x14]
- cmp r0, 0
- bne _0819EB84
- movs r0, 0x64
- muls r0, r2
- ldr r1, =gPlayerParty
- b _0819EB8A
- .pool
-_0819EB84:
- movs r0, 0x64
- muls r0, r2
- ldr r1, =gEnemyParty
-_0819EB8A:
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r4, =gStringVar4
- movs r0, 0xB
- muls r1, r0
- ldr r0, =gSpeciesNames
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0x56
- bl GetStringRightAlignXOffset
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r0, =gUnknown_08610925
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0x1
- movs r3, 0x1
- bl box_print
- movs r0, 0x1
- movs r1, 0x3
- bl CopyWindowToVram
-_0819EBD4:
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819EB4C
-
- thumb_func_start sub_819EBEC
-sub_819EBEC: @ 819EBEC
- push {r4,lr}
- sub sp, 0xC
- adds r4, r0, 0
- movs r0, 0x2
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x5
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x2
- movs r1, 0x1
- adds r2, r4, 0
- movs r3, 0x2
- bl PrintTextOnWindow
- movs r0, 0x2
- movs r1, 0x2
- bl CopyWindowToVram
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_819EBEC
-
- thumb_func_start sub_819EC20
-sub_819EC20: @ 819EC20
- push {r4,r5,lr}
- sub sp, 0xC
- movs r0, 0x3
- bl PutWindowTilemap
- movs r0, 0x3
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r5, =gUnknown_08610922
- str r5, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r0, =gText_Summary2
- str r0, [sp, 0x8]
- movs r0, 0x3
- movs r1, 0x1
- movs r2, 0xF
- movs r3, 0x1
- bl box_print
- str r5, [sp]
- str r4, [sp, 0x4]
- ldr r0, =gText_Swap
- str r0, [sp, 0x8]
- movs r0, 0x3
- movs r1, 0x1
- movs r2, 0xF
- movs r3, 0x11
- bl box_print
- str r5, [sp]
- str r4, [sp, 0x4]
- ldr r0, =gText_Rechoose
- str r0, [sp, 0x8]
- movs r0, 0x3
- movs r1, 0x1
- movs r2, 0xF
- movs r3, 0x21
- bl box_print
- movs r0, 0x3
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819EC20
-
- thumb_func_start sub_819EC94
-sub_819EC94: @ 819EC94
- push {r4,r5,lr}
- sub sp, 0xC
- movs r0, 0x4
- bl PutWindowTilemap
- movs r0, 0x4
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r5, =gUnknown_08610922
- str r5, [sp]
- movs r4, 0
- str r4, [sp, 0x4]
- ldr r0, =gText_Yes3
- str r0, [sp, 0x8]
- movs r0, 0x4
- movs r1, 0x1
- movs r2, 0x7
- movs r3, 0x1
- bl box_print
- str r5, [sp]
- str r4, [sp, 0x4]
- ldr r0, =gText_No3
- str r0, [sp, 0x8]
- movs r0, 0x4
- movs r1, 0x1
- movs r2, 0x7
- movs r3, 0x11
- bl box_print
- movs r0, 0x4
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819EC94
-
- thumb_func_start sub_819ECF0
-sub_819ECF0: @ 819ECF0
- push {r4-r6,lr}
- sub sp, 0xC
- adds r6, r0, 0
- adds r5, r1, 0
- adds r4, r2, 0
- movs r0, 0
- adds r1, r6, 0
- movs r2, 0x46
- bl GetStringRightAlignXOffset
- adds r2, r0, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r5, 24
- lsrs r5, 24
- ldr r0, =gUnknown_08610922
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0
- adds r3, r5, 0
- bl box_print
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819ECF0
-
- thumb_func_start sub_819ED34
-sub_819ED34: @ 819ED34
- push {lr}
- movs r0, 0x5
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- ldrb r0, [r0, 0x14]
- cmp r0, 0
- beq _0819ED56
- cmp r0, 0x1
- bne _0819ED60
- ldr r0, =gText_PkmnForSwap
- movs r1, 0
- movs r2, 0x5
- bl sub_819ECF0
-_0819ED56:
- ldr r0, =gText_Cancel3
- movs r1, 0x18
- movs r2, 0x5
- bl sub_819ECF0
-_0819ED60:
- movs r0, 0x5
- movs r1, 0x3
- bl CopyWindowToVram
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819ED34
-
- thumb_func_start sub_819ED78
-sub_819ED78: @ 819ED78
- push {lr}
- movs r0, 0x3
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- ldrb r0, [r0, 0x14]
- cmp r0, 0
- beq _0819ED9A
- cmp r0, 0x1
- bne _0819EDA4
- ldr r0, =gText_PkmnForSwap
- movs r1, 0x8
- movs r2, 0x3
- bl sub_819ECF0
-_0819ED9A:
- ldr r0, =gText_Cancel3
- movs r1, 0x20
- movs r2, 0x3
- bl sub_819ECF0
-_0819EDA4:
- movs r0, 0x3
- movs r1, 0x3
- bl CopyWindowToVram
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819ED78
-
- thumb_func_start sub_819EDBC
-sub_819EDBC: @ 819EDBC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0819EDCC
- cmp r0, 0x1
- beq _0819EDEC
- b _0819EDF6
-_0819EDCC:
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- ldrb r0, [r0, 0x14]
- cmp r0, 0x1
- bne _0819EDF6
- ldr r0, =gText_PkmnForSwap
- movs r1, 0x8
- movs r2, 0x3
- bl sub_819ECF0
- b _0819EDF6
- .pool
-_0819EDEC:
- ldr r0, =gText_Cancel3
- movs r1, 0x20
- movs r2, 0x3
- bl sub_819ECF0
-_0819EDF6:
- movs r0, 0x3
- movs r1, 0x3
- bl CopyWindowToVram
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819EDBC
-
- thumb_func_start sub_819EE08
-sub_819EE08: @ 819EE08
- push {r4,lr}
- sub sp, 0x18
- ldr r0, =gUnknown_08610918
- add r1, sp, 0xC
- movs r2, 0x4
- bl CpuSet
- ldr r0, =gUnknown_03001284
- ldr r2, [r0]
- ldrb r0, [r2, 0x15]
- cmp r0, 0
- bne _0819EE3C
- add r0, sp, 0xC
- ldr r1, =gPlttBufferFaded
- movs r2, 0xE4
- lsls r2, 1
- adds r1, r2
- ldrh r1, [r1]
- strh r1, [r0, 0x8]
- b _0819EE42
- .pool
-_0819EE3C:
- add r1, sp, 0xC
- ldrh r0, [r2, 0x24]
- strh r0, [r1, 0x8]
-_0819EE42:
- add r0, sp, 0xC
- movs r1, 0xF0
- movs r2, 0xA
- bl LoadPalette
- movs r0, 0x7
- bl PutWindowTilemap
- movs r0, 0x7
- movs r1, 0
- bl FillWindowPixelBuffer
- ldr r0, =gUnknown_03001284
- ldr r1, [r0]
- ldrb r0, [r1, 0x3]
- cmp r0, 0x2
- bls _0819EE74
- movs r0, 0x7
- movs r1, 0x3
- bl CopyWindowToVram
- b _0819EED8
- .pool
-_0819EE74:
- ldrb r2, [r1, 0x3]
- ldrb r0, [r1, 0x14]
- cmp r0, 0
- bne _0819EE88
- movs r0, 0x64
- muls r0, r2
- ldr r1, =gPlayerParty
- b _0819EE8E
- .pool
-_0819EE88:
- movs r0, 0x64
- muls r0, r2
- ldr r1, =gEnemyParty
-_0819EE8E:
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r4, =gStringVar4
- movs r0, 0xB
- muls r1, r0
- ldr r0, =gSpeciesNames
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0x56
- bl GetStringRightAlignXOffset
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r0, =gUnknown_08610925
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x7
- movs r1, 0x1
- movs r3, 0x1
- bl box_print
- movs r0, 0x7
- movs r1, 0x3
- bl CopyWindowToVram
-_0819EED8:
- add sp, 0x18
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819EE08
-
- thumb_func_start sub_819EEF0
-sub_819EEF0: @ 819EEF0
- push {r4,lr}
- sub sp, 0xC
- ldr r0, =gUnknown_08610918
- movs r1, 0xE0
- movs r2, 0xA
- bl LoadPalette
- ldr r0, =gPlttBufferUnfaded+ 0x1E0
- ldr r1, =gPlttBufferFaded + 0x1C0
- movs r2, 0x5
- bl CpuSet
- ldr r0, =gUnknown_03001284
- ldr r1, [r0]
- ldrb r0, [r1, 0x3]
- cmp r0, 0x2
- bls _0819EF2C
- movs r0, 0x1
- movs r1, 0x2
- bl CopyWindowToVram
- b _0819EF90
- .pool
-_0819EF2C:
- ldrb r2, [r1, 0x3]
- ldrb r0, [r1, 0x14]
- cmp r0, 0
- bne _0819EF40
- movs r0, 0x64
- muls r0, r2
- ldr r1, =gPlayerParty
- b _0819EF46
- .pool
-_0819EF40:
- movs r0, 0x64
- muls r0, r2
- ldr r1, =gEnemyParty
-_0819EF46:
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r4, =gStringVar4
- movs r0, 0xB
- muls r1, r0
- ldr r0, =gSpeciesNames
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0x56
- bl GetStringRightAlignXOffset
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r0, =gUnknown_08610925
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- movs r0, 0x1
- movs r1, 0x1
- movs r3, 0x1
- bl box_print
- movs r0, 0x1
- movs r1, 0x3
- bl CopyWindowToVram
-_0819EF90:
- add sp, 0xC
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819EEF0
-
- thumb_func_start sub_819EFA8
-sub_819EFA8: @ 819EFA8
- push {r4-r6,lr}
- sub sp, 0x2C
- ldr r6, =gUnknown_03001284
- ldr r0, [r6]
- ldrb r4, [r0, 0x3]
- adds r5, r4, 0
- movs r0, 0x8
- movs r1, 0
- bl FillWindowPixelBuffer
- cmp r4, 0x2
- bls _0819EFD0
- movs r0, 0x8
- movs r1, 0x2
- bl CopyWindowToVram
- b _0819F03A
- .pool
-_0819EFD0:
- movs r0, 0x8
- bl PutWindowTilemap
- ldr r0, [r6]
- ldrb r0, [r0, 0x14]
- cmp r0, 0
- bne _0819EFEC
- movs r0, 0x64
- muls r0, r4
- ldr r1, =gPlayerParty
- b _0819EFF2
- .pool
-_0819EFEC:
- movs r0, 0x64
- muls r0, r5
- ldr r1, =gEnemyParty
-_0819EFF2:
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- add r1, sp, 0xC
- bl CopyMonCategoryText
- movs r0, 0x1
- add r1, sp, 0xC
- movs r2, 0x76
- bl GetStringRightAlignXOffset
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r0, 0x8
- movs r1, 0x1
- add r2, sp, 0xC
- bl PrintTextOnWindow
- movs r0, 0x8
- movs r1, 0x2
- bl CopyWindowToVram
-_0819F03A:
- add sp, 0x2C
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819EFA8
-
- thumb_func_start sub_819F048
-sub_819F048: @ 819F048
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r4, =gUnknown_03001284
- ldr r3, [r4]
- ldrb r0, [r3, 0x15]
- cmp r0, 0x1
- beq _0819F094
- cmp r2, 0
- beq _0819F068
- cmp r2, 0x1
- beq _0819F080
- b _0819F094
- .pool
-_0819F068:
- strb r2, [r3, 0x14]
- ldr r0, [r4]
- strb r2, [r0, 0x3]
- ldr r1, [r4]
- movs r0, 0x4
- strb r0, [r1, 0x17]
- ldr r1, [r4]
- ldr r0, =gUnknown_08610928
- b _0819F092
- .pool
-_0819F080:
- movs r1, 0
- strb r2, [r3, 0x14]
- ldr r0, [r4]
- strb r1, [r0, 0x3]
- ldr r1, [r4]
- movs r0, 0x5
- strb r0, [r1, 0x17]
- ldr r1, [r4]
- ldr r0, =gUnknown_08610948
-_0819F092:
- str r0, [r1, 0x18]
-_0819F094:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819F048
-
- thumb_func_start sub_819F0A0
-sub_819F0A0: @ 819F0A0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, =gUnknown_03001280
- ldr r2, =gUnknown_086108AC
- ldr r1, =gUnknown_03001284
- ldr r1, [r1]
- ldrb r1, [r1]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- str r1, [r3]
- bl _call_via_r1
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819F0A0
-
- thumb_func_start sub_819F0CC
-sub_819F0CC: @ 819F0CC
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, =gUnknown_03001284
- ldr r1, [r5]
- ldr r0, [r1, 0x2C]
- adds r1, 0x30
- movs r2, 0x1
- bl sub_819F3F8
- ldr r0, [r5]
- ldrb r1, [r0, 0x3]
- movs r5, 0
- strb r1, [r0, 0x12]
- movs r0, 0x3
- bl sub_819EA64
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x8]
- ldr r1, =sub_819D9EC
- str r1, [r0]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819F0CC
-
- thumb_func_start sub_819F114
-sub_819F114: @ 819F114
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0x6
- strh r0, [r1, 0x8]
- ldr r0, =sub_819C90C
- str r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_819F114
-
- thumb_func_start sub_819F134
-sub_819F134: @ 819F134
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gUnknown_03001284
- ldr r1, [r0]
- ldr r0, [r1, 0x2C]
- adds r1, 0x30
- movs r2, 0x1
- bl sub_819F3F8
- movs r0, 0x3
- bl sub_819EA64
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
- ldr r2, =sub_819CE40
- lsrs r1, r2, 16
- strh r1, [r0, 0x14]
- strh r2, [r0, 0x16]
- movs r1, 0x1
- strh r1, [r0, 0x12]
- ldr r1, =sub_819D770
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819F134
-
- thumb_func_start sub_819F184
-sub_819F184: @ 819F184
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r3, =gUnknown_03001280
- ldr r1, =gUnknown_03001284
- ldr r2, [r1]
- ldrb r1, [r2, 0x3]
- ldr r2, [r2, 0x18]
- lsls r1, 3
- adds r1, r2
- ldr r1, [r1, 0x4]
- str r1, [r3]
- bl _call_via_r1
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819F184
-
- thumb_func_start sub_819F1AC
-sub_819F1AC: @ 819F1AC
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, =sub_819CC24
- lsrs r0, r2, 16
- movs r3, 0
- strh r0, [r1, 0x14]
- strh r2, [r1, 0x16]
- strh r3, [r1, 0x8]
- strh r3, [r1, 0x12]
- ldr r0, =sub_819D588
- str r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_819F1AC
-
- thumb_func_start sub_819F1DC
-sub_819F1DC: @ 819F1DC
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r2, =sub_819D9EC
- lsrs r0, r2, 16
- movs r3, 0
- strh r0, [r1, 0x14]
- strh r2, [r1, 0x16]
- strh r3, [r1, 0x12]
- strh r3, [r1, 0x8]
- ldr r0, =sub_819D588
- str r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_819F1DC
-
- thumb_func_start sub_819F20C
-sub_819F20C: @ 819F20C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r5, =gUnknown_03001284
- ldr r1, [r5]
- ldrb r0, [r1, 0x14]
- cmp r0, 0
- bne _0819F240
- ldr r3, =gTasks
- lsls r4, r6, 2
- adds r0, r4, r6
- lsls r0, 3
- adds r0, r3
- ldr r2, =sub_819CD34
- lsrs r1, r2, 16
- strh r1, [r0, 0x14]
- strh r2, [r0, 0x16]
- movs r1, 0x2
- strh r1, [r0, 0x12]
- b _0819F292
- .pool
-_0819F240:
- ldrb r0, [r1, 0x3]
- bl sub_819F59C
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x1
- bne _0819F278
- ldr r1, [r5]
- adds r0, r1, 0
- adds r0, 0x2D
- adds r1, 0x30
- movs r2, 0x1
- bl sub_819F2B4
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
- strh r4, [r0, 0x12]
- ldr r1, =sub_819F488
- b _0819F29E
- .pool
-_0819F278:
- ldr r4, =gTasks
- lsls r5, r6, 2
- adds r0, r5, r6
- lsls r0, 3
- adds r0, r4
- ldr r2, =sub_819CCD4
- lsrs r1, r2, 16
- movs r3, 0
- strh r1, [r0, 0x14]
- strh r2, [r0, 0x16]
- strh r3, [r0, 0x12]
- adds r3, r4, 0
- adds r4, r5, 0
-_0819F292:
- adds r0, r4, r6
- lsls r0, 3
- adds r0, r3
- movs r1, 0
- strh r1, [r0, 0x8]
- ldr r1, =sub_819D588
-_0819F29E:
- str r1, [r0]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819F20C
-
- thumb_func_start sub_819F2B4
-sub_819F2B4: @ 819F2B4
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r5, r2, 24
- lsrs r5, 24
- ldr r0, =gUnknown_08610894
- movs r1, 0x78
- movs r2, 0x40
- movs r3, 0x1
- bl CreateSprite
- strb r0, [r4]
- ldr r2, =gSprites
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r2, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, =sub_819F600
- str r1, [r0]
- ldrb r1, [r4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r5, [r0, 0x3C]
- movs r0, 0x1
- strb r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819F2B4
-
- thumb_func_start sub_819F304
-sub_819F304: @ 819F304
- push {r4-r6,lr}
- mov r6, r10
- mov r5, r9
- mov r4, r8
- push {r4-r6}
- sub sp, 0x10
- ldr r0, =gUnknown_08610894
- movs r1, 0x78
- movs r2, 0x40
- movs r3, 0x1
- bl CreateSprite
- ldr r6, =gUnknown_03001284
- ldr r1, [r6]
- adds r1, 0x2D
- movs r2, 0
- mov r10, r2
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, 0x2D
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- mov r8, r1
- add r0, r8
- movs r1, 0x2
- bl StartSpriteAffineAnim
- ldr r0, [r6]
- ldrb r1, [r0, 0x3]
- movs r0, 0x64
- adds r4, r1, 0
- muls r4, r0
- ldr r0, =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r5, r0, 0
- lsls r5, 16
- lsrs r5, 16
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl GetMonData
- mov r9, r0
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- bl GetMonData
- adds r2, r0, 0
- movs r0, 0x58
- str r0, [sp]
- movs r0, 0x20
- str r0, [sp, 0x4]
- movs r0, 0xF
- str r0, [sp, 0x8]
- ldr r0, =0x0000ffff
- str r0, [sp, 0xC]
- adds r0, r5, 0
- mov r1, r9
- movs r3, 0x1
- bl CreateMonPicSprite_HandleDeoxys
- ldr r1, [r6]
- adds r1, 0x2C
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, 0x2C
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- adds r0, 0x28
- mov r2, r10
- strb r2, [r0]
- ldr r0, [r6]
- adds r0, 0x2C
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- adds r0, 0x29
- strb r2, [r0]
- ldr r0, [r6]
- adds r0, 0x2D
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819F304
-
- thumb_func_start sub_819F3F8
-sub_819F3F8: @ 819F3F8
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r5, r2, 24
- lsrs r5, 24
- lsls r0, r4, 24
- lsrs r0, 24
- bl FreeAndDestroyMonPicSprite
- ldr r0, =sub_819F7B4
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r5, [r1, 0x16]
- lsrs r4, 8
- lsls r4, 24
- lsrs r4, 24
- strh r4, [r1, 0x14]
- ldr r1, [r1]
- bl _call_via_r1
- movs r0, 0x1
- strb r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819F3F8
-
- thumb_func_start sub_819F444
-sub_819F444: @ 819F444
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r6, r1, 0
- lsls r0, r4, 24
- lsrs r0, 24
- bl FreeAndDestroyMonPicSprite
- ldr r5, =gSprites
- lsls r4, 16
- lsrs r1, r4, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- lsrs r4, 24
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
- movs r0, 0
- strb r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819F444
-
- thumb_func_start sub_819F488
-sub_819F488: @ 819F488
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_03001284
- ldr r0, [r1]
- adds r0, 0x30
- ldrb r0, [r0]
- adds r3, r1, 0
- cmp r0, 0x1
- beq _0819F58A
- ldr r2, =gTasks
- lsls r1, r4, 2
- adds r0, r1, r4
- lsls r0, 3
- adds r0, r2
- movs r2, 0x8
- ldrsh r0, [r0, r2]
- adds r5, r1, 0
- cmp r0, 0x4
- bhi _0819F58A
- lsls r0, 2
- ldr r1, =_0819F4C8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0819F4C8:
- .4byte _0819F4DC
- .4byte _0819F4F8
- .4byte _0819F52C
- .4byte _0819F548
- .4byte _0819F568
-_0819F4DC:
- ldr r0, =gText_SamePkmnInPartyAlready
- bl sub_819EBEC
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- adds r0, 0x20
- movs r1, 0
- strb r1, [r0]
- b _0819F54E
- .pool
-_0819F4F8:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0819F50C
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0819F58A
-_0819F50C:
- movs r0, 0x5
- bl PlaySE
- ldr r0, =gUnknown_03001284
- ldr r1, [r0]
- ldr r0, [r1, 0x2C]
- adds r1, 0x30
- movs r2, 0x1
- bl sub_819F3F8
- b _0819F54E
- .pool
-_0819F52C:
- ldr r0, [r3]
- adds r0, 0x30
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0819F58A
- movs r0, 0x5
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0x5
- movs r1, 0x2
- bl CopyWindowToVram
- b _0819F54E
-_0819F548:
- ldr r0, =gText_SelectPkmnToAccept
- bl sub_819EBEC
-_0819F54E:
- ldr r0, =gTasks
- adds r1, r5, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- b _0819F58A
- .pool
-_0819F568:
- bl sub_819EEF0
- bl sub_819EADC
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- adds r0, 0x22
- movs r1, 0x1
- strb r1, [r0]
- ldr r1, =gTasks
- adds r0, r5, r4
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x12]
- strh r1, [r0, 0x8]
- ldr r1, =sub_819CE40
- str r1, [r0]
-_0819F58A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819F488
-
- thumb_func_start sub_819F59C
-sub_819F59C: @ 819F59C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r0, r1
- ldr r1, =gEnemyParty
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r5, r0, 16
- movs r4, 0
-_0819F5B8:
- ldr r0, =gUnknown_03001284
- ldr r0, [r0]
- ldrb r0, [r0, 0x12]
- cmp r4, r0
- beq _0819F5EC
- movs r0, 0x64
- muls r0, r4
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r5
- bne _0819F5EC
- movs r0, 0x1
- b _0819F5F8
- .pool
-_0819F5EC:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _0819F5B8
- movs r0, 0
-_0819F5F8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_819F59C
thumb_func_start sub_819F600
sub_819F600: @ 819F600
@@ -9650,7 +64,7 @@ sub_819F654: @ 819F654
ldrsh r0, [r4, r1]
cmp r0, 0x1
bne _0819F688
- ldr r0, =gUnknown_03001284
+ ldr r0, =sFactorySwapScreen
ldr r0, [r0]
adds r0, 0x30
movs r1, 0
@@ -9950,7 +364,7 @@ _0819F8D8:
sub_819F8E0: @ 819F8E0
push {r4-r6,lr}
sub sp, 0x10
- ldr r0, =gUnknown_03001284
+ ldr r0, =sFactorySwapScreen
ldr r1, [r0]
ldrb r0, [r1, 0x14]
cmp r0, 0
@@ -9997,7 +411,7 @@ _0819F908:
adds r2, r5, 0
movs r3, 0x1
bl CreateMonPicSprite_HandleDeoxys
- ldr r2, =gUnknown_03001284
+ ldr r2, =sFactorySwapScreen
ldr r1, [r2]
adds r1, 0x2C
movs r3, 0
@@ -10031,6 +445,8 @@ _0819F908:
.pool
thumb_func_end sub_819F8E0
+@ Battle Factory ends here
+
thumb_func_start sub_819F99C
sub_819F99C: @ 819F99C
push {r4-r7,lr}
@@ -11731,7 +2147,7 @@ _081A06B8:
adds r0, r5, 0
movs r1, 0x1
movs r3, 0x8
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
@@ -14357,7 +4773,7 @@ sub_81A1C4C: @ 81A1C4C
str r1, [sp, 0x8]
movs r1, 0x1
adds r2, r4, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
add sp, 0xC
pop {r4,r5}
pop {r0}
@@ -14396,7 +4812,7 @@ _081A1C9E:
movs r1, 0x1
adds r2, r4, 0
movs r3, 0x4
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
add sp, 0x34
pop {r4}
pop {r0}
@@ -14438,7 +4854,7 @@ sub_81A1CD8: @ 81A1CD8
movs r1, 0x1
adds r2, r5, 0
adds r3, r4, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r0, =0x0000270f
cmp r6, r0
bls _081A1D24
@@ -14463,7 +4879,7 @@ _081A1D24:
movs r1, 0x1
adds r2, r4, 0
ldr r3, [sp, 0xC]
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
add sp, 0x10
pop {r3-r5}
mov r8, r3
@@ -14697,7 +5113,7 @@ _081A1F28:
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x10
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldrb r0, [r6]
ldr r2, =gText_OpenLv
movs r1, 0x61
@@ -14707,7 +5123,7 @@ _081A1F28:
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x10
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
movs r0, 0xA
bl sub_81A1C90
mov r0, r8
@@ -14810,7 +5226,7 @@ sub_81A2008: @ 81A2008
str r1, [sp, 0x8]
movs r1, 0x1
mov r2, r12
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r0, =gStringVar1
adds r1, r4, 0
movs r2, 0x1
@@ -14830,7 +5246,7 @@ sub_81A2008: @ 81A2008
movs r1, 0x1
adds r2, r4, 0
adds r3, r6, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
add sp, 0xC
pop {r3-r5}
mov r8, r3
@@ -14968,7 +5384,7 @@ _081A2184:
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r1, =gRecordsWindowId
ldrb r0, [r1]
ldr r2, =gText_OpenLv
@@ -14978,7 +5394,7 @@ _081A2184:
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
movs r0, 0xA
bl sub_81A1C90
str r6, [sp]
@@ -15104,7 +5520,7 @@ sub_81A22B8: @ 81A22B8
movs r1, 0x1
adds r2, r5, 0
adds r3, r4, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r0, =0x0000270f
cmp r6, r0
bls _081A2304
@@ -15129,7 +5545,7 @@ _081A2304:
movs r1, 0x1
adds r2, r4, 0
ldr r3, [sp, 0xC]
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
add sp, 0x10
pop {r3-r5}
mov r8, r3
@@ -15322,7 +5738,7 @@ _081A24B0:
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x10
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldrb r0, [r6]
ldr r2, =gText_OpenLv
movs r1, 0x61
@@ -15332,7 +5748,7 @@ _081A24B0:
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x10
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
movs r0, 0xA
bl sub_81A1C90
mov r0, r8
@@ -15432,7 +5848,7 @@ sub_81A258C: @ 81A258C
str r1, [sp, 0x8]
movs r1, 0x1
mov r2, r12
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r0, =gStringVar1
adds r1, r4, 0
movs r2, 0x1
@@ -15452,7 +5868,7 @@ sub_81A258C: @ 81A258C
movs r1, 0x1
adds r2, r4, 0
adds r3, r6, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
add sp, 0xC
pop {r3-r5}
mov r8, r3
@@ -15560,7 +5976,7 @@ sub_81A2698: @ 81A2698
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldrb r0, [r6]
ldr r2, =gText_OpenLv
movs r1, 0x61
@@ -15569,7 +5985,7 @@ sub_81A2698: @ 81A2698
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
movs r0, 0xA
bl sub_81A1C90
movs r0, 0
@@ -15685,7 +6101,7 @@ sub_81A27E8: @ 81A27E8
movs r1, 0x1
adds r2, r5, 0
adds r3, r4, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r0, =0x0000270f
cmp r6, r0
bls _081A2834
@@ -15710,7 +6126,7 @@ _081A2834:
movs r1, 0x1
adds r2, r4, 0
ldr r3, [sp, 0xC]
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
add sp, 0x10
pop {r3-r5}
mov r8, r3
@@ -15865,7 +6281,7 @@ sub_81A2968: @ 81A2968
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x10
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldrb r0, [r5]
ldr r2, =gText_OpenLv
movs r1, 0x61
@@ -15874,7 +6290,7 @@ sub_81A2968: @ 81A2968
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x10
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
movs r0, 0
movs r1, 0x48
movs r2, 0x7E
@@ -15947,7 +6363,7 @@ sub_81A2A28: @ 81A2A28
str r1, [sp, 0x8]
movs r1, 0x1
mov r2, r12
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r0, =0x0000270f
cmp r7, r0
bls _081A2A80
@@ -15973,7 +6389,7 @@ _081A2A80:
movs r1, 0x1
adds r2, r4, 0
ldr r3, [sp, 0x10]
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
adds r0, r5, 0
ldr r1, [sp, 0xC]
movs r2, 0x1
@@ -15992,7 +6408,7 @@ _081A2A80:
movs r1, 0x1
adds r2, r4, 0
ldr r3, [sp, 0x14]
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
add sp, 0x18
pop {r3-r5}
mov r8, r3
@@ -16248,7 +6664,7 @@ _081A2CE0:
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
mov r1, r8
ldrb r0, [r1]
ldr r2, =gText_RentalSwap
@@ -16257,7 +6673,7 @@ _081A2CE0:
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x98
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
mov r1, r8
ldrb r0, [r1]
ldr r2, =gText_OpenLv
@@ -16267,7 +6683,7 @@ _081A2CE0:
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
movs r0, 0xA
bl sub_81A1C90
movs r4, 0x9E
@@ -16353,7 +6769,7 @@ sub_81A2DB4: @ 81A2DB4
movs r1, 0x1
adds r2, r5, 0
adds r3, r4, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r0, =0x0000270f
cmp r6, r0
bls _081A2E00
@@ -16378,7 +6794,7 @@ _081A2E00:
movs r1, 0x1
adds r2, r4, 0
ldr r3, [sp, 0xC]
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
add sp, 0x10
pop {r3-r5}
mov r8, r3
@@ -16533,7 +6949,7 @@ sub_81A2F38: @ 81A2F38
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldrb r0, [r5]
ldr r2, =gText_OpenLv
movs r1, 0x61
@@ -16542,7 +6958,7 @@ sub_81A2F38: @ 81A2F38
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
movs r0, 0xA
bl sub_81A1C90
movs r0, 0
@@ -16613,7 +7029,7 @@ sub_81A2FF8: @ 81A2FF8
movs r5, 0
str r5, [sp, 0x8]
mov r2, r9
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r7, =gText_1st
movs r0, 0x1
adds r1, r7, 0
@@ -16631,7 +7047,7 @@ sub_81A2FF8: @ 81A2FF8
str r5, [sp, 0x8]
movs r1, 0x1
adds r2, r7, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r7, =gText_2nd
movs r0, 0x1
adds r1, r7, 0
@@ -16648,7 +7064,7 @@ sub_81A2FF8: @ 81A2FF8
str r5, [sp, 0x8]
movs r1, 0x1
adds r2, r7, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r7, =gText_3rd
movs r0, 0x1
adds r1, r7, 0
@@ -16665,7 +7081,7 @@ sub_81A2FF8: @ 81A2FF8
str r5, [sp, 0x8]
movs r1, 0x1
adds r2, r7, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r7, =gText_4th
movs r0, 0x1
adds r1, r7, 0
@@ -16682,7 +7098,7 @@ sub_81A2FF8: @ 81A2FF8
str r5, [sp, 0x8]
movs r1, 0x1
adds r2, r7, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldrb r0, [r4]
ldr r2, =gText_Cool
movs r1, 0x29
@@ -16691,7 +7107,7 @@ sub_81A2FF8: @ 81A2FF8
str r5, [sp, 0x8]
movs r1, 0x1
movs r3, 0x6
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldrb r0, [r4]
ldr r2, =gText_Beauty
movs r1, 0x39
@@ -16700,7 +7116,7 @@ sub_81A2FF8: @ 81A2FF8
str r5, [sp, 0x8]
movs r1, 0x1
movs r3, 0x6
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldrb r0, [r4]
ldr r2, =gText_Cute
movs r1, 0x49
@@ -16709,7 +7125,7 @@ sub_81A2FF8: @ 81A2FF8
str r5, [sp, 0x8]
movs r1, 0x1
movs r3, 0x6
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldrb r0, [r4]
ldr r2, =gText_Smart
movs r1, 0x59
@@ -16718,7 +7134,7 @@ sub_81A2FF8: @ 81A2FF8
str r5, [sp, 0x8]
movs r1, 0x1
movs r3, 0x6
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldrb r0, [r4]
ldr r2, =gText_Tough
movs r1, 0x69
@@ -16727,7 +7143,7 @@ sub_81A2FF8: @ 81A2FF8
str r5, [sp, 0x8]
movs r1, 0x1
movs r3, 0x6
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
movs r1, 0
_081A314A:
movs r5, 0
@@ -16765,7 +7181,7 @@ _081A315C:
str r1, [sp, 0x8]
movs r1, 0x1
mov r2, r9
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
adds r4, 0x2
adds r5, 0x1
cmp r5, 0x3
@@ -19052,7 +9468,7 @@ sub_81A4594: @ 81A4594
adds r0, r5, 0
movs r1, 0x1
adds r2, r4, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
movs r0, 0xFF
strb r0, [r6, 0xD]
ldrh r0, [r6, 0x4]
@@ -19075,7 +9491,7 @@ sub_81A4594: @ 81A4594
str r1, [sp, 0x8]
movs r1, 0x1
add r2, sp, 0xC
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldrh r1, [r6, 0x4]
ldr r0, =0x0000270f
cmp r1, r0
@@ -19111,7 +9527,7 @@ _081A4618:
str r1, [sp, 0x8]
movs r1, 0x1
adds r2, r5, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
_081A465C:
add sp, 0x2C
pop {r3-r5}
@@ -19162,7 +9578,7 @@ sub_81A4684: @ 81A4684
str r3, [sp, 0x8]
movs r1, 0x1
mov r3, r12
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldrh r0, [r5, 0x8]
cmp r0, 0
beq _081A47BC
@@ -19193,7 +9609,7 @@ sub_81A4684: @ 81A4684
str r1, [sp, 0x8]
movs r1, 0x1
add r2, sp, 0xC
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
adds r4, r5, 0
adds r4, 0x12
adds r0, r4, 0
@@ -19234,7 +9650,7 @@ _081A473C:
str r7, [sp, 0x8]
movs r1, 0x1
add r2, sp, 0xC
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldrh r1, [r5, 0x8]
ldr r0, =0x0000270f
cmp r1, r0
@@ -19270,7 +9686,7 @@ _081A4778:
str r7, [sp, 0x8]
movs r1, 0x1
adds r2, r5, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
_081A47BC:
add sp, 0x2C
pop {r3-r5}
@@ -19545,7 +9961,7 @@ sub_81A4998: @ 81A4998
str r5, [sp, 0x8]
adds r2, r6, 0
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r1, =gUnknown_08611D00
ldr r2, [sp, 0x90]
lsls r0, r2, 2
@@ -19567,7 +9983,7 @@ sub_81A4998: @ 81A4998
str r5, [sp, 0x8]
movs r1, 0x1
adds r2, r4, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
cmp r7, 0x9
bne _081A4A6C
ldr r2, =gSaveBlock2Ptr
@@ -22829,7 +13245,7 @@ _081A6602:
lsls r2, r6, 24
lsrs r2, 24
adds r0, r4, r5
- bl sub_81A7024
+ bl SetMonMoveAvoidReturn
adds r6, 0x1
cmp r6, 0x3
ble _081A6602
@@ -22995,7 +13411,7 @@ _081A674E:
lsls r2, r6, 24
lsrs r2, 24
adds r0, r4, r5
- bl sub_81A7024
+ bl SetMonMoveAvoidReturn
adds r6, 0x1
cmp r6, 0x3
ble _081A674E
@@ -23885,7 +14301,7 @@ _081A6E6E:
lsls r2, r4, 24
lsrs r2, 24
adds r0, r5, r6
- bl sub_81A7024
+ bl SetMonMoveAvoidReturn
adds r4, 0x1
cmp r4, 0x3
ble _081A6E6E
@@ -24078,8 +14494,8 @@ _081A701E:
bx r1
thumb_func_end GetAiScriptsInBattleFactory
- thumb_func_start sub_81A7024
-sub_81A7024: @ 81A7024
+ thumb_func_start SetMonMoveAvoidReturn
+SetMonMoveAvoidReturn: @ 81A7024
push {lr}
lsls r1, 16
lsls r2, 24
@@ -24092,7 +14508,7 @@ _081A7034:
bl SetMonMoveSlot
pop {r0}
bx r0
- thumb_func_end sub_81A7024
+ thumb_func_end SetMonMoveAvoidReturn
thumb_func_start sub_81A703C
sub_81A703C: @ 81A703C
diff --git a/asm/battle_tower.s b/asm/battle_tower.s
index f24069307..2312b63bd 100644
--- a/asm/battle_tower.s
+++ b/asm/battle_tower.s
@@ -2544,7 +2544,7 @@ _08163718:
adds r0, r6, r2
adds r2, r3, 0
str r3, [sp, 0x1C]
- bl sub_81A7024
+ bl SetMonMoveAvoidReturn
ldr r3, [sp, 0x1C]
adds r0, r3, 0x1
lsls r0, 24
@@ -2662,7 +2662,7 @@ _08163818:
ldr r2, =gEnemyParty
adds r0, r6, r2
adds r2, r7, 0
- bl sub_81A7024
+ bl SetMonMoveAvoidReturn
ldr r1, =gFacilityTrainerMons
ldr r0, [r1]
adds r0, r5, r0
diff --git a/asm/cable_club.s b/asm/cable_club.s
index 0297c2f80..6f4917a19 100644
--- a/asm/cable_club.s
+++ b/asm/cable_club.s
@@ -74,7 +74,7 @@ sub_80B23B0: @ 80B23B0
adds r0, r4, 0
movs r1, 0x1
adds r2, r5, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
adds r0, r4, 0
movs r1, 0x3
bl CopyWindowToVram
diff --git a/asm/contest_link_80F57C4.s b/asm/contest_link_80F57C4.s
index 9eefa154f..3e35ab7f1 100644
--- a/asm/contest_link_80F57C4.s
+++ b/asm/contest_link_80F57C4.s
@@ -2237,7 +2237,7 @@ _080F6BD0:
adds r0, r4, 0
movs r1, 0x1
movs r3, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
adds r0, r4, 0
movs r1, 0x7
bl GetWindowAttribute
diff --git a/asm/contest_painting.s b/asm/contest_painting.s
index 8bb38eeed..f7c146e3e 100644
--- a/asm/contest_painting.s
+++ b/asm/contest_painting.s
@@ -438,7 +438,7 @@ _081301A6:
str r1, [sp, 0x8]
movs r1, 0x1
adds r2, r4, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
movs r0, 0x1
bl CopyBgTilemapBufferToVram
_081301D4:
diff --git a/asm/easy_chat.s b/asm/easy_chat.s
index 768311639..e99c885cc 100644
--- a/asm/easy_chat.s
+++ b/asm/easy_chat.s
@@ -4644,7 +4644,7 @@ sub_811D028: @ 811D028
str r4, [sp]
str r5, [sp, 0x4]
str r6, [sp, 0x8]
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
add sp, 0xC
pop {r4-r6}
pop {r0}
@@ -4693,7 +4693,7 @@ sub_811D058: @ 811D058
str r4, [sp, 0x4]
str r2, [sp, 0x8]
mov r2, r9
- bl box_print
+ bl AddTextPrinterParameterized3
add sp, 0x10
pop {r3-r5}
mov r8, r3
diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s
index a1f115376..0abbf014f 100644
--- a/asm/field_player_avatar.s
+++ b/asm/field_player_avatar.s
@@ -3022,7 +3022,7 @@ _0808CA94:
movs r0, 0
movs r1, 0x1
add r2, sp, 0xC
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
@@ -3133,7 +3133,7 @@ fish6: @ 808CB6C
movs r0, 0
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
@@ -3266,7 +3266,7 @@ fish9: @ 808CC64
movs r0, 0
movs r1, 0x1
movs r3, 0x1
- bl AddTextPrinterParameterized
+ bl AddTextPrinterParameterized2
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
@@ -3423,7 +3423,7 @@ fishB: @ 808CD94
movs r0, 0
movs r1, 0x1
movs r3, 0x1
- bl AddTextPrinterParameterized
+ bl AddTextPrinterParameterized2
movs r0, 0xD
strh r0, [r5, 0x8]
movs r0, 0x1
@@ -3471,7 +3471,7 @@ fishC: @ 808CE04
movs r0, 0
movs r1, 0x1
movs r3, 0x1
- bl AddTextPrinterParameterized
+ bl AddTextPrinterParameterized2
ldrh r0, [r5, 0x8]
adds r0, 0x1
strh r0, [r5, 0x8]
diff --git a/asm/party_menu.s b/asm/party_menu.s
index 2d1faadab..67fdab266 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -4454,7 +4454,7 @@ _081B243E:
adds r0, r4, 0
movs r1, 0
movs r3, 0x1
- bl AddTextPrinterParameterized2
+ bl AddTextPrinterParameterized4
adds r0, r4, 0
bl PutWindowTilemap
adds r0, r4, 0
@@ -4502,7 +4502,7 @@ _081B24C0:
adds r0, r5, 0
movs r1, 0
movs r3, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
b _081B2540
.pool
_081B2514:
@@ -4525,7 +4525,7 @@ _081B2514:
adds r0, r5, 0
movs r1, 0
movs r3, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
_081B2540:
adds r0, r5, 0
bl PutWindowTilemap
@@ -5108,7 +5108,7 @@ sub_81B2A3C: @ 81B2A3C
str r1, [sp, 0x8]
movs r1, 0
adds r2, r5, 0
- bl box_print
+ bl AddTextPrinterParameterized3
add sp, 0xC
pop {r4,r5}
pop {r0}
@@ -5804,7 +5804,7 @@ _081B2FF2:
ldr r1, [r1]
str r1, [sp, 0x8]
movs r1, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
_081B3018:
add sp, 0xC
pop {r3}
@@ -5938,7 +5938,7 @@ _081B3104:
movs r1, 0x1
adds r2, r4, 0
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
movs r0, 0x2
bl schedule_bg_copy_tilemap_to_vram
_081B313C:
@@ -6132,7 +6132,7 @@ _081B328C:
str r1, [sp, 0x10]
movs r1, 0x1
mov r2, r9
- bl AddTextPrinterParameterized2
+ bl AddTextPrinterParameterized4
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
@@ -6193,7 +6193,7 @@ sub_81B3300: @ 81B3300
movs r0, 0x6
movs r1, 0x1
adds r2, r4, 0
- bl AddTextPrinterParameterized
+ bl AddTextPrinterParameterized2
add sp, 0x10
pop {r4}
pop {r0}
@@ -12508,7 +12508,7 @@ _081B6A40:
adds r0, r6, 0
mov r1, r10
movs r3, 0x8
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
cmp r4, 0
beq _081B6A82
adds r0, r7, 0x1
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index 481a85d8d..9d5603085 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -4387,7 +4387,7 @@ sub_80CA4FC: @ 80CA4FC
movs r0, 0
movs r1, 0x1
movs r3, 0x6
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r2, [r6]
ldr r1, =0x00000d1d
adds r2, r1
@@ -4398,7 +4398,7 @@ sub_80CA4FC: @ 80CA4FC
movs r0, 0
movs r1, 0x2
movs r3, 0x6
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r2, [r6]
ldr r0, =0x00000d41
adds r2, r0
@@ -4409,7 +4409,7 @@ sub_80CA4FC: @ 80CA4FC
movs r0, 0
movs r1, 0x2
movs r3, 0xA
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r2, [r6]
ldr r1, =0x00000d65
adds r2, r1
@@ -4420,7 +4420,7 @@ sub_80CA4FC: @ 80CA4FC
movs r0, 0
movs r1, 0
movs r3, 0x6
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
b _080CA5E8
.pool
_080CA588:
@@ -4434,7 +4434,7 @@ _080CA588:
movs r0, 0
movs r1, 0
movs r3, 0x6
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r2, [r6]
ldr r1, =0x00000cf9
adds r2, r1
@@ -4445,7 +4445,7 @@ _080CA588:
movs r0, 0
movs r1, 0x1
movs r3, 0x6
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r2, [r6]
ldr r0, =0x00000d1d
adds r2, r0
@@ -4456,7 +4456,7 @@ _080CA588:
movs r0, 0
movs r1, 0x2
movs r3, 0x6
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r2, [r6]
ldr r1, =0x00000d41
adds r2, r1
@@ -4467,7 +4467,7 @@ _080CA588:
movs r0, 0
movs r1, 0x2
movs r3, 0xA
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
_080CA5E8:
movs r0, 0
movs r1, 0x2
@@ -5337,7 +5337,7 @@ _080CAD30:
movs r0, 0x1
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
movs r0, 0x1
movs r1, 0x2
movs r2, 0xE
@@ -18189,7 +18189,7 @@ _080D17DA:
movs r1, 0x1
adds r2, r4, 0
movs r3, 0x4
- bl sub_8199F74
+ bl AddTextPrinterParameterized5
add sp, 0x14
pop {r4}
pop {r0}
diff --git a/asm/pokenav.s b/asm/pokenav.s
index b8165ec80..4851cd221 100644
--- a/asm/pokenav.s
+++ b/asm/pokenav.s
@@ -1471,7 +1471,7 @@ sub_81C7BA4: @ 81C7BA4
movs r1, 0x1
movs r2, 0
movs r3, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
add sp, 0xC
pop {r4,r5}
pop {r0}
@@ -2559,7 +2559,7 @@ _081C8434:
str r6, [sp, 0x8]
adds r2, r7, 0
movs r3, 0x8
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
@@ -3707,7 +3707,7 @@ sub_81C8CB4: @ 81C8CB4
str r2, [sp, 0x4]
str r6, [sp, 0x8]
movs r2, 0x8
- bl box_print
+ bl AddTextPrinterParameterized3
adds r0, r4, 0
movs r1, 0x1
bl sub_81C8C64
@@ -3769,7 +3769,7 @@ sub_81C8D4C: @ 81C8D4C
str r2, [sp, 0x8]
adds r2, r5, 0
movs r3, 0x8
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
adds r0, r4, 0
movs r1, 0
bl sub_81C8C64
@@ -3835,7 +3835,7 @@ sub_81C8DBC: @ 81C8DBC
movs r1, 0x7
movs r2, 0x2
adds r3, r5, 0
- bl box_print
+ bl AddTextPrinterParameterized3
ldrh r0, [r6, 0x8]
lsls r4, 1
ldrb r1, [r6, 0x4]
@@ -3897,7 +3897,7 @@ sub_81C8E54: @ 81C8E54
movs r1, 0x7
adds r2, r5, 0
movs r3, 0x2
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldrh r0, [r7, 0x8]
ldrb r1, [r7, 0x4]
str r1, [sp]
@@ -7078,7 +7078,7 @@ sub_81CA714: @ 81CA714
str r6, [sp, 0x8]
movs r1, 0x1
movs r3, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
add sp, 0xC
pop {r4-r6}
pop {r0}
@@ -7116,7 +7116,7 @@ sub_81CA770: @ 81CA770
str r6, [sp, 0x8]
movs r1, 0x1
movs r3, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
add sp, 0xC
pop {r4-r6}
pop {r0}
@@ -10073,7 +10073,7 @@ sub_81CBE88: @ 81CBE88
movs r1, 0x7
adds r2, r3, 0
movs r3, 0x2
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
add sp, 0xC
pop {r0}
bx r0
@@ -10108,7 +10108,7 @@ sub_81CBEB4: @ 81CBEB4
adds r0, r5, 0
movs r1, 0x7
adds r2, r6, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
add sp, 0xC
pop {r4-r6}
pop {r0}
@@ -10156,7 +10156,7 @@ _081CBF24:
movs r1, 0x7
add r2, sp, 0xC
adds r3, r4, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
add sp, 0x2C
pop {r4,r5}
pop {r0}
@@ -10190,7 +10190,7 @@ _081CBF76:
str r1, [sp, 0x8]
movs r1, 0x7
movs r3, 0x10
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
movs r0, 0x80
lsls r0, 21
adds r6, r0
@@ -10375,7 +10375,7 @@ sub_81CC0E0: @ 81CC0E0
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0x20
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
add sp, 0xC
pop {r0}
bx r0
@@ -10409,7 +10409,7 @@ sub_81CC11C: @ 81CC11C
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
add sp, 0xC
pop {r0}
bx r0
@@ -10452,7 +10452,7 @@ sub_81CC158: @ 81CC158
adds r0, r2, 0
adds r2, r5, 0
movs r3, 0x20
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
add sp, 0xC
pop {r4,r5}
pop {r0}
@@ -11694,7 +11694,7 @@ _081CCB44:
str r1, [sp, 0x8]
movs r1, 0x7
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldrh r1, [r5]
ldrb r2, [r5, 0x3]
adds r0, r4, 0
@@ -11726,7 +11726,7 @@ _081CCB8E:
str r1, [sp, 0x8]
movs r1, 0x7
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r1, =0x00001041
movs r0, 0xC
str r0, [sp]
@@ -11756,7 +11756,7 @@ _081CCBDC:
str r1, [sp, 0x8]
movs r1, 0x7
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldrh r1, [r5]
ldrb r2, [r5, 0x3]
adds r0, r4, 0
@@ -12035,7 +12035,7 @@ _081CCE08:
movs r1, 0x7
adds r2, r6, 0
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
movs r0, 0x80
lsls r0, 21
adds r4, r0
@@ -15151,7 +15151,7 @@ _081CE7DA:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
b _081CE924
_081CE800:
bl sub_81CDD5C
@@ -15176,7 +15176,7 @@ _081CE80C:
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
add r1, sp, 0xC
movs r0, 0xFC
strb r0, [r1]
@@ -15202,7 +15202,7 @@ _081CE80C:
movs r1, 0x1
add r2, sp, 0xC
movs r3, 0x4
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
bl sub_81CDD48
adds r1, r0, 0
lsls r1, 16
@@ -15218,7 +15218,7 @@ _081CE80C:
movs r1, 0x1
add r2, sp, 0xC
movs r3, 0x1C
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
b _081CE924
.pool
_081CE89C:
@@ -17198,7 +17198,7 @@ sub_81CF7F4: @ 81CF7F4
movs r1, 0x1
adds r2, r5, 0
movs r3, 0x4
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
adds r0, r4, 0
adds r1, r7, 0
movs r2, 0x1
@@ -17214,7 +17214,7 @@ sub_81CF7F4: @ 81CF7F4
movs r1, 0x1
adds r2, r4, 0
movs r3, 0x22
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
mov r1, r8
ldrb r0, [r1, 0x8]
movs r1, 0x2
@@ -18597,7 +18597,7 @@ sub_81D02B0: @ 81D02B0
adds r0, r4, 0
movs r1, 0x1
add r2, sp, 0xC
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
add sp, 0x1C
pop {r4,r5}
pop {r0}
@@ -20108,7 +20108,7 @@ sub_81D0E84: @ 81D0E84
movs r1, 0x1
movs r2, 0
movs r3, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
ldrb r0, [r5, 0xA]
movs r1, 0x2
bl CopyWindowToVram
@@ -20155,7 +20155,7 @@ _081D0F2E:
str r1, [sp, 0x8]
movs r1, 0x1
movs r2, 0
- bl box_print
+ bl AddTextPrinterParameterized3
movs r0, 0x80
lsls r0, 21
adds r5, r0
@@ -20195,7 +20195,7 @@ _081D0F7C:
str r1, [sp, 0x8]
movs r1, 0x1
movs r2, 0
- bl box_print
+ bl AddTextPrinterParameterized3
movs r0, 0x80
lsls r0, 21
adds r6, r0
@@ -20260,7 +20260,7 @@ sub_81D0FF0: @ 81D0FF0
movs r1, 0x1
adds r2, r4, 0
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldrb r0, [r6]
cmp r0, 0
beq _081D1040
@@ -20305,7 +20305,7 @@ _081D104A:
movs r1, 0x1
adds r2, r5, 0
movs r3, 0x3C
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
adds r0, r4, 0
movs r1, 0x2
bl CopyWindowToVram
@@ -20379,7 +20379,7 @@ sub_81D10D0: @ 81D10D0
str r1, [sp, 0x8]
movs r1, 0x1
adds r2, r5, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
mov r1, r8
ldrb r0, [r1, 0xC]
movs r1, 0x2
@@ -21106,7 +21106,7 @@ _081D1D8C:
movs r1, 0x1
movs r2, 0x8
adds r3, r5, 0
- bl AddTextPrinterParameterized2
+ bl AddTextPrinterParameterized4
_081D1DAC:
add sp, 0x34
pop {r4,r5}
@@ -22636,7 +22636,7 @@ sub_81D28FC: @ 81D28FC
movs r0, 0
movs r1, 0x1
adds r2, r5, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r5, =gText_PPSlash
movs r1, 0x29
mov r10, r1
@@ -22648,7 +22648,7 @@ sub_81D28FC: @ 81D28FC
movs r1, 0x1
adds r2, r5, 0
movs r3, 0x4
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r5, =gText_PowerSlash
movs r0, 0x1
adds r1, r5, 0
@@ -22665,7 +22665,7 @@ sub_81D28FC: @ 81D28FC
movs r0, 0
movs r1, 0x1
adds r2, r5, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r5, =gText_AccuracySlash
movs r0, 0x1
adds r1, r5, 0
@@ -22682,7 +22682,7 @@ sub_81D28FC: @ 81D28FC
movs r0, 0
movs r1, 0x1
adds r2, r5, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
movs r0, 0x2
negs r0, r0
cmp r9, r0
@@ -22713,7 +22713,7 @@ _081D29C4:
movs r1, 0x1
adds r2, r5, 0
movs r3, 0x4
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r1, =gText_PPSlash
movs r0, 0x1
movs r2, 0
@@ -22734,7 +22734,7 @@ _081D29C4:
movs r0, 0
movs r1, 0x1
add r2, sp, 0xC
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldrb r0, [r6, 0x1]
cmp r0, 0x1
bhi _081D2A3C
@@ -22758,7 +22758,7 @@ _081D2A4A:
movs r1, 0x1
adds r2, r5, 0
movs r3, 0x6A
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldrb r0, [r6, 0x3]
cmp r0, 0
bne _081D2A70
@@ -22783,7 +22783,7 @@ _081D2A7E:
movs r1, 0x1
adds r2, r5, 0
movs r3, 0x6A
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r1, =gMoveDescriptionPointers
mov r0, r9
subs r0, 0x1
@@ -22798,7 +22798,7 @@ _081D2A7E:
movs r1, 0x7
adds r2, r5, 0
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
_081D2AB6:
add sp, 0x2C
pop {r3-r5}
@@ -22837,7 +22837,7 @@ sub_81D2ACC: @ 81D2ACC
str r6, [sp, 0x8]
movs r1, 0x1
adds r2, r5, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r5, =gText_Appeal2
movs r0, 0x1
adds r1, r5, 0
@@ -22853,7 +22853,7 @@ sub_81D2ACC: @ 81D2ACC
movs r0, 0x1
movs r1, 0x1
adds r2, r5, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r5, =gText_Jam2
movs r0, 0x1
adds r1, r5, 0
@@ -22868,7 +22868,7 @@ sub_81D2ACC: @ 81D2ACC
movs r0, 0x1
movs r1, 0x1
adds r2, r5, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
movs r0, 0x2
negs r0, r0
cmp r4, r0
@@ -22896,7 +22896,7 @@ _081D2B6C:
movs r1, 0x1
adds r2, r5, 0
movs r3, 0x4
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r1, =gContestEffectDescriptionPointers
ldrb r0, [r4]
lsls r0, 2
@@ -22910,7 +22910,7 @@ _081D2B6C:
movs r1, 0x7
adds r2, r5, 0
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
movs r0, 0x1
movs r1, 0x2
bl CopyWindowToVram
@@ -22971,7 +22971,7 @@ sub_81D2BF4: @ 81D2BF4
str r0, [sp, 0xC]
movs r1, 0x1
adds r2, r4, 0
- bl AddTextPrinterParameterized
+ bl AddTextPrinterParameterized2
add sp, 0x10
pop {r4}
pop {r0}
@@ -24413,7 +24413,7 @@ _081D36CA:
movs r1, 0x1
movs r2, 0
adds r3, r5, 0
- bl box_print
+ bl AddTextPrinterParameterized3
lsls r0, r7, 1
mov r4, sp
adds r4, r0
@@ -24436,7 +24436,7 @@ _081D3704:
movs r1, 0x1
movs r2, 0x38
adds r3, r5, 0
- bl box_print
+ bl AddTextPrinterParameterized3
movs r0, 0
ldrsh r1, [r4, r0]
adds r0, r1, 0
@@ -24467,7 +24467,7 @@ _081D373A:
mov r0, r8
movs r1, 0x1
adds r3, r5, 0
- bl box_print
+ bl AddTextPrinterParameterized3
adds r0, r7, 0x1
lsls r0, 16
lsrs r7, r0, 16
@@ -24585,7 +24585,7 @@ _081D3808:
movs r1, 0x1
movs r2, 0
adds r3, r5, 0
- bl box_print
+ bl AddTextPrinterParameterized3
adds r4, 0x38
lsls r4, 24
lsrs r4, 24
@@ -24599,7 +24599,7 @@ _081D3808:
movs r1, 0x1
adds r2, r4, 0
adds r3, r5, 0
- bl box_print
+ bl AddTextPrinterParameterized3
adds r0, r6, 0x1
lsls r0, 16
lsrs r6, r0, 16
@@ -28979,7 +28979,7 @@ PrintOnTrainerHillRecordsWindow: @ 81D5C8C
movs r0, 0
movs r1, 0x1
movs r3, 0x2
- bl box_print
+ bl AddTextPrinterParameterized3
movs r7, 0x12
movs r0, 0
mov r8, r0
@@ -29002,7 +29002,7 @@ _081D5CD6:
movs r0, 0
movs r1, 0x1
movs r2, 0
- bl box_print
+ bl AddTextPrinterParameterized3
adds r7, 0xF
ldr r0, =gSaveBlock1Ptr
ldr r1, =0x00003718
@@ -29068,7 +29068,7 @@ _081D5CD6:
str r0, [sp, 0x8]
movs r0, 0
movs r1, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
adds r7, 0x11
movs r1, 0x1
add r8, r1
diff --git a/asm/rom_8011DC0.s b/asm/rom_8011DC0.s
index 01f29e0a5..84573367a 100644
--- a/asm/rom_8011DC0.s
+++ b/asm/rom_8011DC0.s
@@ -5689,7 +5689,7 @@ _08018720:
movs r1, 0x1
movs r2, 0x4
movs r3, 0x1
- bl AddTextPrinterParameterized2
+ bl AddTextPrinterParameterized4
movs r0, 0
adds r1, r7, 0
movs r2, 0xDE
@@ -5705,7 +5705,7 @@ _08018720:
movs r0, 0
movs r1, 0
movs r3, 0x1
- bl AddTextPrinterParameterized2
+ bl AddTextPrinterParameterized4
movs r0, 0
movs r1, 0x2
bl CopyWindowToVram
@@ -5877,7 +5877,7 @@ sub_8018884: @ 8018884
movs r1, 0x1
movs r2, 0
movs r3, 0x1
- bl AddTextPrinterParameterized2
+ bl AddTextPrinterParameterized4
movs r0, 0x1
movs r1, 0x1
movs r2, 0xF
@@ -6230,7 +6230,7 @@ _08018B4A:
str r1, [sp, 0x10]
movs r1, 0x1
movs r3, 0x1
- bl AddTextPrinterParameterized2
+ bl AddTextPrinterParameterized4
ldrb r0, [r4]
movs r1, 0x1
movs r2, 0xF
@@ -6376,7 +6376,7 @@ _08018C8C:
str r1, [sp, 0x10]
movs r1, 0x1
movs r3, 0x1
- bl AddTextPrinterParameterized2
+ bl AddTextPrinterParameterized4
ldrb r0, [r5]
movs r1, 0x1
movs r2, 0xF
@@ -9928,7 +9928,7 @@ _0801A93A:
adds r0, r7, 0
adds r1, r6, 0
adds r2, r5, 0
- bl AddTextPrinterParameterized2
+ bl AddTextPrinterParameterized4
add sp, 0x18
pop {r4-r7}
pop {r0}
@@ -10249,7 +10249,7 @@ sub_801AB68: @ 801AB68
movs r1, 0x1
adds r2, r6, 0
ldr r3, [sp, 0x14]
- bl AddTextPrinterParameterized2
+ bl AddTextPrinterParameterized4
add sp, 0x18
pop {r3-r5}
mov r8, r3
@@ -12955,7 +12955,7 @@ _0801C1D0:
movs r1, 0x3
movs r2, 0
movs r3, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r4, [r7]
movs r1, 0xDA
lsls r1, 1
@@ -12996,7 +12996,7 @@ _0801C22E:
adds r0, r5, 0
movs r1, 0x3
movs r3, 0x11
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r2, [r7]
ldr r0, [r2, 0x4]
mov r9, r6
@@ -13023,7 +13023,7 @@ _0801C266:
movs r1, 0x1
movs r2, 0xA6
movs r3, 0x11
- bl box_print
+ bl AddTextPrinterParameterized3
b _0801C498
.pool
_0801C2A0:
@@ -13064,7 +13064,7 @@ _0801C2A2:
lsrs r0, r2, 24
movs r1, 0x3
movs r2, 0
- bl box_print
+ bl AddTextPrinterParameterized3
adds r4, 0x1
lsls r4, 24
lsrs r0, r4, 24
@@ -13104,7 +13104,7 @@ _0801C304:
adds r0, r5, 0
movs r1, 0x3
movs r2, 0
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r2, [r7]
ldrb r1, [r2, 0x8]
movs r0, 0x3
@@ -13137,7 +13137,7 @@ _0801C304:
adds r0, r5, 0
movs r1, 0x3
movs r2, 0
- bl box_print
+ bl AddTextPrinterParameterized3
mov r9, r6
b _0801C498
.pool
@@ -13202,7 +13202,7 @@ _0801C3CE:
ldr r0, [sp, 0x10]
movs r1, 0x3
ldr r3, [sp, 0x14]
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r1, [r7]
adds r0, r1, r5
ldr r2, =0x00000306
@@ -13240,7 +13240,7 @@ _0801C3CE:
ldr r0, [sp, 0x10]
movs r1, 0x3
ldr r3, [sp, 0x14]
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r1, [r7]
adds r1, r4
adds r1, 0x2A
@@ -14515,7 +14515,7 @@ _0801CEEC:
str r4, [sp, 0x8]
movs r1, 0x3
movs r3, 0x6
- bl box_print
+ bl AddTextPrinterParameterized3
_0801CF1C:
ldr r6, =gUnknown_02022C78
ldr r4, [r6]
@@ -14550,7 +14550,7 @@ _0801CF1C:
str r4, [sp, 0x8]
movs r1, 0x3
movs r2, 0
- bl box_print
+ bl AddTextPrinterParameterized3
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
@@ -20539,7 +20539,7 @@ sub_801FDDC: @ 801FDDC
str r4, [sp, 0x4]
str r6, [sp, 0x8]
movs r3, 0x8
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r0, [r5]
ldrb r0, [r0, 0x18]
ldr r2, =gText_No
@@ -20549,7 +20549,7 @@ sub_801FDDC: @ 801FDDC
str r6, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r0, [r5]
ldrb r0, [r0, 0x18]
movs r1, 0x1
@@ -20757,7 +20757,7 @@ _0801FFE2:
adds r0, r5, 0
movs r1, 0x1
adds r2, r6, 0
- bl sub_8199F74
+ bl AddTextPrinterParameterized5
b _0802007A
.pool
_08020050:
@@ -20779,7 +20779,7 @@ _08020050:
adds r0, r5, 0
movs r1, 0x1
adds r2, r6, 0
- bl sub_8199F74
+ bl AddTextPrinterParameterized5
_0802007A:
ldr r0, =gUnknown_02022C88
ldr r0, [r0]
@@ -20926,7 +20926,7 @@ _08020154:
movs r0, 0x1
movs r1, 0x2
movs r3, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
add sp, 0x34
pop {r3-r5}
mov r8, r3
@@ -21004,7 +21004,7 @@ _08020206:
movs r0, 0x2
movs r1, 0
lsrs r2, r5, 24
- bl box_print
+ bl AddTextPrinterParameterized3
adds r4, 0x4
adds r7, 0x1
adds r0, r6, 0
@@ -21043,7 +21043,7 @@ _08020248:
movs r4, 0x80
lsls r4, 19
lsrs r2, r4, 24
- bl box_print
+ bl AddTextPrinterParameterized3
adds r0, r7, 0x1
str r0, [sp, 0x48]
adds r6, 0xC
@@ -21094,7 +21094,7 @@ _080202AC:
movs r0, 0x2
movs r1, 0
adds r3, r4, 0
- bl box_print
+ bl AddTextPrinterParameterized3
adds r2, r7, 0
add r0, sp, 0xC
str r0, [sp]
@@ -21106,7 +21106,7 @@ _080202AC:
movs r0, 0x2
movs r1, 0
adds r3, r4, 0
- bl box_print
+ bl AddTextPrinterParameterized3
_08020300:
ldr r7, [sp, 0x48]
mov r4, r10
@@ -21299,7 +21299,7 @@ sub_8020420: @ 8020420
movs r1, 0x2
movs r2, 0
adds r3, r4, 0
- bl box_print
+ bl AddTextPrinterParameterized3
add sp, 0x10
pop {r4,r5}
pop {r0}
@@ -23909,7 +23909,7 @@ sub_80219C8: @ 80219C8
movs r1, 0x2
adds r2, r4, 0
movs r3, 0
- bl box_print
+ bl AddTextPrinterParameterized3
add sp, 0xC
pop {r3}
mov r8, r3
@@ -24217,7 +24217,7 @@ _08021C5E:
ldr r1, =gStringVar4
str r1, [sp, 0x8]
movs r1, 0x2
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r3, [sp, 0x18]
ldr r2, [sp, 0xC]
ldrb r2, [r2, 0x8]
@@ -24260,7 +24260,7 @@ _08021CC8:
str r2, [sp, 0x8]
movs r1, 0x2
movs r2, 0x4
- bl box_print
+ bl AddTextPrinterParameterized3
lsls r0, r5, 24
lsrs r5, r0, 24
ldr r3, [sp, 0xC]
@@ -24324,7 +24324,7 @@ sub_8021D34: @ 8021D34
movs r1, 0x2
movs r2, 0
adds r3, r7, 0
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r4, =gText_SpaceSec
movs r0, 0x2
adds r1, r4, 0
@@ -24345,7 +24345,7 @@ sub_8021D34: @ 8021D34
movs r1, 0x2
adds r2, r6, 0
adds r3, r7, 0
- bl box_print
+ bl AddTextPrinterParameterized3
movs r0, 0x9F
lsls r0, 1
add r0, r8
@@ -24386,7 +24386,7 @@ sub_8021D34: @ 8021D34
movs r1, 0x2
adds r2, r6, 0
adds r3, r7, 0
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r4, =gText_SpaceMin
movs r0, 0x2
adds r1, r4, 0
@@ -24406,7 +24406,7 @@ sub_8021D34: @ 8021D34
movs r1, 0x2
adds r2, r6, 0
adds r3, r7, 0
- bl box_print
+ bl AddTextPrinterParameterized3
movs r0, 0x9E
lsls r0, 1
add r0, r8
@@ -24437,7 +24437,7 @@ sub_8021D34: @ 8021D34
movs r1, 0x2
adds r2, r6, 0
adds r3, r7, 0
- bl box_print
+ bl AddTextPrinterParameterized3
adds r0, r7, 0
adds r0, 0xE
lsls r0, 24
@@ -24452,7 +24452,7 @@ sub_8021D34: @ 8021D34
movs r1, 0x2
movs r2, 0
adds r3, r7, 0
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r4, =gText_TimesPerSec
movs r0, 0x2
adds r1, r4, 0
@@ -24474,7 +24474,7 @@ sub_8021D34: @ 8021D34
movs r1, 0x2
adds r2, r6, 0
adds r3, r7, 0
- bl box_print
+ bl AddTextPrinterParameterized3
mov r4, r8
ldrb r2, [r4, 0x16]
ldrh r0, [r4, 0x16]
@@ -24555,7 +24555,7 @@ _08021F0A:
movs r1, 0x2
adds r2, r6, 0
adds r3, r7, 0
- bl box_print
+ bl AddTextPrinterParameterized3
b _08021FDE
.pool
_08021FC4:
@@ -24570,7 +24570,7 @@ _08021FC4:
movs r1, 0x2
adds r2, r6, 0
adds r3, r7, 0
- bl box_print
+ bl AddTextPrinterParameterized3
_08021FDE:
adds r0, r7, 0
adds r0, 0xE
@@ -24591,7 +24591,7 @@ _08021FDE:
movs r1, 0x2
movs r2, 0
adds r3, r7, 0
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r0, =gStringVar1
ldr r4, [sp, 0x10]
ldrh r1, [r4, 0x8]
@@ -24620,7 +24620,7 @@ _08021FDE:
movs r1, 0x2
adds r2, r6, 0
adds r3, r7, 0
- bl box_print
+ bl AddTextPrinterParameterized3
add sp, 0x1C
pop {r3-r5}
mov r8, r3
@@ -24942,7 +24942,7 @@ _080222D0:
movs r1, 0x1
adds r2, r7, 0
movs r3, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r0, =gText_PressingSpeedRankings
mov r10, r0
movs r0, 0x1
@@ -24962,7 +24962,7 @@ _080222D0:
movs r1, 0x1
adds r2, r7, 0
movs r3, 0x11
- bl box_print
+ bl AddTextPrinterParameterized3
movs r0, 0x29
mov r10, r0
_08022336:
@@ -24985,7 +24985,7 @@ _08022336:
movs r1, 0x1
movs r2, 0
mov r3, r10
- bl box_print
+ bl AddTextPrinterParameterized3
movs r0, 0x1
ldr r1, =gText_TimesPerSec
movs r2, 0x1
@@ -25005,7 +25005,7 @@ _08022336:
movs r1, 0x1
adds r2, r7, 0
mov r3, r10
- bl box_print
+ bl AddTextPrinterParameterized3
movs r2, 0
mov r0, r9
lsls r4, r0, 1
@@ -25078,7 +25078,7 @@ _080223CA:
movs r1, 0x1
adds r2, r7, 0
mov r3, r10
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r1, [sp, 0x10]
lsls r0, r1, 24
lsrs r0, 24
@@ -25326,7 +25326,7 @@ _08022616:
str r4, [sp, 0x10]
movs r1, 0x2
movs r3, 0x1
- bl AddTextPrinterParameterized2
+ bl AddTextPrinterParameterized4
b _0802269C
.pool
_08022668:
@@ -25353,7 +25353,7 @@ _08022668:
str r4, [sp, 0x10]
movs r1, 0x2
movs r3, 0x1
- bl AddTextPrinterParameterized2
+ bl AddTextPrinterParameterized4
_0802269C:
ldr r1, =0x000001bb
adds r0, r6, r1
@@ -26229,7 +26229,7 @@ _08022D42:
movs r0, 0
movs r1, 0x1
adds r2, r4, 0
- bl AddTextPrinterParameterized
+ bl AddTextPrinterParameterized2
b _08022DB2
.pool
_08022D90:
@@ -26248,7 +26248,7 @@ _08022D90:
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x1
- bl AddTextPrinterParameterized
+ bl AddTextPrinterParameterized2
_08022DB2:
movs r0, 0
movs r1, 0x3
@@ -28812,7 +28812,7 @@ _080241A6:
movs r0, 0
movs r1, 0x1
movs r3, 0
- bl AddTextPrinterParameterized
+ bl AddTextPrinterParameterized2
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
@@ -29171,7 +29171,7 @@ _08024460:
str r1, [sp, 0xC]
movs r0, 0
movs r1, 0x1
- bl AddTextPrinterParameterized
+ bl AddTextPrinterParameterized2
b _080244AC
.pool
_08024490:
@@ -29187,7 +29187,7 @@ _08024490:
str r0, [sp, 0xC]
movs r0, 0
movs r1, 0x1
- bl AddTextPrinterParameterized
+ bl AddTextPrinterParameterized2
_080244AC:
movs r0, 0
movs r1, 0x3
@@ -29653,7 +29653,7 @@ sub_80247D4: @ 80247D4
movs r1, 0x1
mov r2, r9
mov r3, r8
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
add sp, 0xC
pop {r3,r4}
mov r8, r3
@@ -29695,7 +29695,7 @@ sub_802482C: @ 802482C
adds r0, r6, 0
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
str r4, [sp]
adds r0, r6, 0
mov r1, r8
@@ -36210,7 +36210,7 @@ sub_8027BEC: @ 8027BEC
adds r0, r7, 0
movs r1, 0x1
adds r2, r4, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
movs r6, 0
ldr r2, =gStringVar1
mov r8, r2
@@ -36252,7 +36252,7 @@ _08027C76:
adds r0, r7, 0
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r2, [sp, 0x18]
lsls r3, r2, 3
subs r3, r5
@@ -36269,7 +36269,7 @@ _08027C76:
adds r0, r7, 0
movs r1, 0x1
mov r2, r8
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
adds r6, 0x1
cmp r6, 0x2
ble _08027C76
@@ -39391,7 +39391,7 @@ _0802955A:
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
mov r2, r10
ldr r0, [r2]
add r0, r9
@@ -39648,7 +39648,7 @@ _08029774:
str r3, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
bl GetMultiplayerId
lsls r0, 24
lsrs r0, 24
@@ -39677,7 +39677,7 @@ _080297CC:
movs r1, 0x1
movs r2, 0x1C
adds r3, r6, 0
- bl box_print
+ bl AddTextPrinterParameterized3
add r0, sp, 0xC
mov r1, r9
movs r2, 0
@@ -39704,7 +39704,7 @@ _080297CC:
str r1, [sp, 0x8]
movs r1, 0x1
add r2, sp, 0xC
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r2, =gUnknown_02022CF8
ldr r0, [r2]
add r0, r10
@@ -39719,7 +39719,7 @@ _080297CC:
movs r1, 0x1
ldr r2, =gText_SpacePoints
lsrs r3, 24
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
@@ -39858,7 +39858,7 @@ _0802996C:
movs r5, 0
str r5, [sp, 0x8]
mov r2, r8
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r0, [r4]
add r0, r9
ldrb r0, [r0]
@@ -39869,7 +39869,7 @@ _0802996C:
str r5, [sp, 0x8]
movs r1, 0x1
movs r3, 0x44
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
mov r9, r5
ldr r0, [sp, 0xC]
cmp r9, r0
@@ -39908,7 +39908,7 @@ _080299F2:
str r6, [sp, 0x8]
movs r1, 0x1
movs r2, 0
- bl box_print
+ bl AddTextPrinterParameterized3
movs r7, 0
mov r8, r5
mov r0, r9
@@ -39971,7 +39971,7 @@ _08029A36:
mov r1, r10
str r1, [sp, 0x8]
movs r1, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
b _08029B10
.pool
_08029AE0:
@@ -39997,7 +39997,7 @@ _08029AE0:
str r1, [sp, 0x8]
movs r1, 0x1
ldr r2, =gStringVar4
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
_08029B10:
adds r0, r7, 0x1
lsls r0, 24
@@ -40125,7 +40125,7 @@ _08029BFC:
str r1, [sp, 0x8]
movs r1, 0x1
adds r2, r6, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
b _08029F88
.pool
_08029C60:
@@ -40291,7 +40291,7 @@ _08029DA0:
str r6, [sp, 0x8]
movs r1, 0x1
adds r2, r5, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
bl DynamicPlaceholderTextUtil_Reset
bl sub_802762C
lsls r0, 16
@@ -40317,7 +40317,7 @@ _08029DA0:
movs r1, 0x1
adds r2, r7, 0
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
bl sub_80279C8
lsls r0, 24
lsrs r4, r0, 24
@@ -40363,7 +40363,7 @@ _08029EA8:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
_08029EC8:
ldr r4, =gUnknown_02022CF8
ldr r0, [r4]
@@ -40597,7 +40597,7 @@ _0802A0CC:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r0, [r7]
add r0, r10
ldrb r0, [r0]
@@ -40609,7 +40609,7 @@ _0802A0CC:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r0, [r7]
add r0, r10
ldrb r0, [r0]
@@ -40622,7 +40622,7 @@ _0802A0CC:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r0, [r7]
add r0, r10
ldrb r0, [r0]
@@ -40634,7 +40634,7 @@ _0802A0CC:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r0, [r7]
add r0, r8
ldrb r0, [r0]
@@ -40701,7 +40701,7 @@ _0802A1DC:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r0, [r7]
add r0, r8
ldrb r0, [r0]
@@ -40714,7 +40714,7 @@ _0802A1DC:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0x8
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r0, [r7]
add r0, r8
ldrb r0, [r0]
@@ -40731,7 +40731,7 @@ _0802A1DC:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r0, [r7]
add r0, r8
ldrb r0, [r0]
@@ -40901,7 +40901,7 @@ _0802A3AE:
movs r0, 0
movs r1, 0x1
movs r3, 0
- bl AddTextPrinterParameterized
+ bl AddTextPrinterParameterized2
b _0802A410
.pool
_0802A3D8:
@@ -41021,7 +41021,7 @@ _0802A4AC:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r0, [r5]
adds r0, r4
ldrb r0, [r0]
@@ -41181,7 +41181,7 @@ _0802A610:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r0, [r6]
adds r0, r4
ldrb r0, [r0]
@@ -47057,7 +47057,7 @@ _0802D46A:
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r0, [r5]
ldrb r0, [r0, 0x12]
movs r1, 0x2
@@ -47141,7 +47141,7 @@ _0802D516:
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r0, [r5]
ldrb r0, [r0, 0x12]
movs r1, 0x2
@@ -47259,7 +47259,7 @@ _0802D606:
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r0, [r5]
ldrb r0, [r0, 0x12]
movs r1, 0x2
@@ -47339,7 +47339,7 @@ _0802D6AA:
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r0, [r5]
ldrb r0, [r0, 0x12]
movs r1, 0x2
@@ -47538,7 +47538,7 @@ sub_802D7E8: @ 802D7E8
str r1, [sp, 0x4]
str r3, [sp, 0x8]
movs r1, 0x1
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r0, [r5]
ldrb r0, [r0, 0x12]
movs r1, 0x2
@@ -47592,7 +47592,7 @@ sub_802D884: @ 802D884
str r5, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r0, [r4]
ldrb r0, [r0, 0x12]
movs r1, 0x2
@@ -47645,7 +47645,7 @@ sub_802D8FC: @ 802D8FC
str r5, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r0, [r4]
ldrb r0, [r0, 0x12]
movs r1, 0x2
@@ -47951,7 +47951,7 @@ sub_802DB8C: @ 802DB8C
movs r1, 0
movs r2, 0
movs r3, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
add r0, sp, 0xC
str r0, [sp]
str r4, [sp, 0x4]
@@ -47961,7 +47961,7 @@ sub_802DB8C: @ 802DB8C
movs r1, 0
movs r2, 0
movs r3, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
add sp, 0x10
pop {r4}
pop {r0}
@@ -48390,7 +48390,7 @@ sub_802DED8: @ 802DED8
movs r1, 0x1
adds r2, r4, 0
movs r3, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r0, [r6]
adds r0, 0x1C
add r0, r8
@@ -49203,7 +49203,7 @@ sub_802E500: @ 802E500
adds r0, r4, 0
movs r1, 0x1
adds r2, r5, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
movs r6, 0
adds r7, r4, 0
movs r0, 0xFF
@@ -49231,7 +49231,7 @@ _0802E58A:
adds r0, r7, 0
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r0, [sp, 0x20]
ldm r0!, {r1}
str r0, [sp, 0x20]
@@ -49258,7 +49258,7 @@ _0802E58A:
adds r0, r7, 0
movs r1, 0x1
adds r2, r5, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
movs r0, 0x80
lsls r0, 21
add r8, r0
diff --git a/asm/roulette.s b/asm/roulette.s
index b0098daf6..f5d2dc372 100644
--- a/asm/roulette.s
+++ b/asm/roulette.s
@@ -519,7 +519,7 @@ _081406E0:
str r5, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldrb r0, [r4]
movs r1, 0x3
bl CopyWindowToVram
@@ -751,7 +751,7 @@ sub_8140914: @ 8140914
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldrb r0, [r5]
movs r1, 0x3
bl CopyWindowToVram
@@ -2655,7 +2655,7 @@ _08141902:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldrb r0, [r4]
movs r1, 0x3
bl CopyWindowToVram
@@ -2678,7 +2678,7 @@ _08141928:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldrb r0, [r4]
movs r1, 0x3
bl CopyWindowToVram
@@ -2816,7 +2816,7 @@ sub_8141A18: @ 8141A18
movs r1, 0x1
mov r2, r8
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldrb r0, [r5]
movs r1, 0x3
bl CopyWindowToVram
@@ -3012,7 +3012,7 @@ _08141BB0:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldrb r0, [r4]
movs r1, 0x3
bl CopyWindowToVram
@@ -3039,7 +3039,7 @@ _08141C58:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldrb r0, [r4]
movs r1, 0x3
bl CopyWindowToVram
@@ -3071,7 +3071,7 @@ _08141CBC:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldrb r0, [r4]
movs r1, 0x3
bl CopyWindowToVram
@@ -3158,7 +3158,7 @@ _08141D44:
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldrb r0, [r4]
movs r1, 0x3
bl CopyWindowToVram
@@ -4676,7 +4676,7 @@ sub_81429F0: @ 81429F0
movs r1, 0x1
adds r2, r4, 0
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
@@ -4753,7 +4753,7 @@ sub_8142A88: @ 8142A88
str r0, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
@@ -4778,7 +4778,7 @@ _08142B28:
movs r1, 0x1
adds r2, r4, 0
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
@@ -4808,7 +4808,7 @@ _08142B78:
movs r1, 0x1
adds r2, r5, 0
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
diff --git a/asm/script_menu.s b/asm/script_menu.s
index b521121bf..bb145e78d 100644
--- a/asm/script_menu.s
+++ b/asm/script_menu.s
@@ -761,7 +761,7 @@ _080E23D4:
adds r0, r6, 0
movs r1, 0x1
adds r3, r7, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r2, =gText_LogOff
movs r0, 0x31
str r0, [sp]
@@ -770,7 +770,7 @@ _080E23D4:
adds r0, r6, 0
movs r1, 0x1
adds r3, r7, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
b _080E247A
.pool
_080E2448:
@@ -795,7 +795,7 @@ _080E2448:
adds r0, r6, 0
movs r1, 0x1
adds r3, r7, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
_080E247A:
ldr r0, =0x000008ab
bl FlagGet
@@ -813,7 +813,7 @@ _080E247A:
adds r0, r6, 0
movs r1, 0x1
adds r3, r7, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
b _080E24C6
.pool
_080E24B0:
@@ -826,7 +826,7 @@ _080E24B0:
adds r0, r6, 0
movs r1, 0x1
adds r3, r7, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
_080E24C6:
ldr r4, =gStringVar4
ldr r1, =gText_PlayersPC
@@ -877,7 +877,7 @@ ScriptMenu_DisplayPCStartupPrompt: @ 80E2514
movs r0, 0
movs r1, 0x1
movs r3, 0
- bl AddTextPrinterParameterized
+ bl AddTextPrinterParameterized2
add sp, 0x10
pop {r0}
bx r0
@@ -1228,7 +1228,7 @@ _080E2802:
adds r0, r6, 0
movs r1, 0x1
movs r3, 0x8
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
@@ -1606,7 +1606,7 @@ _080E2B12:
movs r0, 0
movs r1, 0x1
movs r3, 0
- bl AddTextPrinterParameterized
+ bl AddTextPrinterParameterized2
b _080E2B70
.pool
_080E2B40:
@@ -1630,7 +1630,7 @@ _080E2B40:
movs r0, 0
movs r1, 0x1
movs r3, 0
- bl AddTextPrinterParameterized
+ bl AddTextPrinterParameterized2
_080E2B70:
add sp, 0x10
pop {r4}
@@ -1687,7 +1687,7 @@ CreateStartMenu: @ 80E2BAC
adds r0, r4, 0
movs r1, 0x1
movs r3, 0x8
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r2, =gText_MenuOptionPokemon
movs r0, 0x19
str r0, [sp]
@@ -1696,7 +1696,7 @@ CreateStartMenu: @ 80E2BAC
adds r0, r4, 0
movs r1, 0x1
movs r3, 0x8
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r2, =gText_MenuOptionBag
movs r0, 0x29
str r0, [sp]
@@ -1705,7 +1705,7 @@ CreateStartMenu: @ 80E2BAC
adds r0, r4, 0
movs r1, 0x1
movs r3, 0x8
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r2, =gText_MenuOptionPokenav
movs r0, 0x39
str r0, [sp]
@@ -1714,7 +1714,7 @@ CreateStartMenu: @ 80E2BAC
adds r0, r4, 0
movs r1, 0x1
movs r3, 0x8
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r0, =gSaveBlock2Ptr
ldr r2, [r0]
movs r0, 0x49
@@ -1724,7 +1724,7 @@ CreateStartMenu: @ 80E2BAC
adds r0, r4, 0
movs r1, 0x1
movs r3, 0x8
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r2, =gText_MenuOptionSave
movs r0, 0x59
str r0, [sp]
@@ -1733,7 +1733,7 @@ CreateStartMenu: @ 80E2BAC
adds r0, r4, 0
movs r1, 0x1
movs r3, 0x8
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r2, =gText_MenuOptionOption
movs r0, 0x69
str r0, [sp]
@@ -1742,7 +1742,7 @@ CreateStartMenu: @ 80E2BAC
adds r0, r4, 0
movs r1, 0x1
movs r3, 0x8
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r2, =gText_MenuOptionExit
movs r0, 0x79
str r0, [sp]
@@ -1751,7 +1751,7 @@ CreateStartMenu: @ 80E2BAC
adds r0, r4, 0
movs r1, 0x1
movs r3, 0x8
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
movs r0, 0x10
str r0, [sp]
movs r0, 0x8
diff --git a/asm/shop.s b/asm/shop.s
index 30a5ec278..807237389 100644
--- a/asm/shop.s
+++ b/asm/shop.s
@@ -839,7 +839,7 @@ _080E0176:
adds r0, r6, 0
movs r1, 0x7
adds r3, r7, 0
- bl AddTextPrinterParameterized2
+ bl AddTextPrinterParameterized4
_080E01AC:
add sp, 0x14
pop {r4-r7}
@@ -1201,7 +1201,7 @@ BuyMenuPrint: @ 80E04A4
str r6, [sp, 0xC]
str r1, [sp, 0x10]
movs r1, 0x1
- bl AddTextPrinterParameterized2
+ bl AddTextPrinterParameterized4
add sp, 0x14
pop {r4-r6}
pop {r0}
diff --git a/asm/slot_machine.s b/asm/slot_machine.s
index fe8acf6d6..e6828cb70 100644
--- a/asm/slot_machine.s
+++ b/asm/slot_machine.s
@@ -4527,7 +4527,7 @@ sub_812DD78: @ 812DD78
movs r1, 0x1
movs r2, 0x2
movs r3, 0x5
- bl box_print
+ bl AddTextPrinterParameterized3
movs r0, 0x1
movs r1, 0x3
bl CopyWindowToVram
diff --git a/asm/trade.s b/asm/trade.s
index 224995de5..1c9d1f17b 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -4588,7 +4588,7 @@ _080798BC:
str r0, [sp, 0x8]
adds r0, r5, 0
movs r3, 0x4
- bl box_print
+ bl AddTextPrinterParameterized3
add r6, sp, 0x28
adds r0, r6, 0
ldr r1, [sp, 0x60]
@@ -4608,7 +4608,7 @@ _080798BC:
movs r1, 0x1
movs r2, 0
movs r3, 0
- bl AddTextPrinterParameterized2
+ bl AddTextPrinterParameterized4
adds r0, r5, 0
bl PutWindowTilemap
adds r0, r5, 0
@@ -4847,7 +4847,7 @@ sub_8079B84: @ 8079B84
adds r0, r4, 0
movs r1, 0
movs r3, 0x4
- bl box_print
+ bl AddTextPrinterParameterized3
adds r0, r4, 0
bl PutWindowTilemap
adds r0, r4, 0
@@ -5599,7 +5599,7 @@ sub_807A19C: @ 807A19C
str r0, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
movs r0, 0
movs r1, 0x14
movs r2, 0xC
@@ -14295,7 +14295,7 @@ sub_807F1A8: @ 807F1A8
movs r1, 0x1
movs r2, 0
movs r3, 0x2
- bl AddTextPrinterParameterized2
+ bl AddTextPrinterParameterized4
adds r0, r5, 0
movs r1, 0x3
bl CopyWindowToVram
diff --git a/asm/trainer_card.s b/asm/trainer_card.s
index 6d1be17cb..2c38140c6 100644
--- a/asm/trainer_card.s
+++ b/asm/trainer_card.s
@@ -419,7 +419,7 @@ _080C2A2C:
str r0, [sp, 0x8]
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
@@ -1747,7 +1747,7 @@ sub_80C3574: @ 80C3574
movs r1, 0x1
movs r2, 0x14
movs r3, 0x1C
- bl box_print
+ bl AddTextPrinterParameterized3
b _080C35FA
.pool
_080C35E0:
@@ -1762,7 +1762,7 @@ _080C35E0:
movs r1, 0x1
movs r2, 0x10
movs r3, 0x21
- bl box_print
+ bl AddTextPrinterParameterized3
_080C35FA:
add sp, 0x2C
pop {r4,r5}
@@ -1818,7 +1818,7 @@ _080C365C:
str r0, [sp, 0x8]
movs r0, 0x1
movs r1, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
add sp, 0x2C
pop {r4}
pop {r0}
@@ -1848,7 +1848,7 @@ sub_80C3684: @ 80C3684
movs r1, 0x1
movs r2, 0x14
movs r3, 0x38
- bl box_print
+ bl AddTextPrinterParameterized3
b _080C36DE
.pool
_080C36C4:
@@ -1863,7 +1863,7 @@ _080C36C4:
movs r1, 0x1
movs r2, 0x10
movs r3, 0x39
- bl box_print
+ bl AddTextPrinterParameterized3
_080C36DE:
ldr r0, =gStringVar1
ldr r4, =gUnknown_02039CE8
@@ -1910,7 +1910,7 @@ _080C3740:
str r0, [sp, 0x8]
movs r0, 0x1
movs r1, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
add sp, 0xC
pop {r4,r5}
pop {r0}
@@ -1964,7 +1964,7 @@ sub_80C378C: @ 80C378C
movs r1, 0x1
movs r2, 0x14
movs r3, 0x48
- bl box_print
+ bl AddTextPrinterParameterized3
b _080C37F6
.pool
_080C37DC:
@@ -1979,7 +1979,7 @@ _080C37DC:
movs r1, 0x1
movs r2, 0x10
movs r3, 0x49
- bl box_print
+ bl AddTextPrinterParameterized3
_080C37F6:
ldr r5, =gStringVar4
ldr r4, =gUnknown_02039CE8
@@ -2025,7 +2025,7 @@ _080C3854:
str r0, [sp, 0x8]
movs r0, 0x1
movs r1, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
_080C386E:
add sp, 0xC
pop {r4,r5}
@@ -2060,7 +2060,7 @@ sub_80C3880: @ 80C3880
movs r1, 0x1
movs r2, 0x14
movs r3, 0x58
- bl box_print
+ bl AddTextPrinterParameterized3
b _080C38E2
.pool
_080C38C8:
@@ -2075,7 +2075,7 @@ _080C38C8:
movs r1, 0x1
movs r2, 0x10
movs r3, 0x59
- bl box_print
+ bl AddTextPrinterParameterized3
_080C38E2:
ldr r0, =gUnknown_02039CE8
ldr r1, [r0]
@@ -2159,7 +2159,7 @@ _080C395C:
movs r0, 0x1
movs r1, 0x1
adds r3, r4, 0
- bl box_print
+ bl AddTextPrinterParameterized3
adds r7, 0x12
lsls r2, r7, 24
lsrs r2, 24
@@ -2177,7 +2177,7 @@ _080C395C:
movs r0, 0x1
movs r1, 0x1
adds r3, r4, 0
- bl box_print
+ bl AddTextPrinterParameterized3
add r7, r10
mov r0, r9
adds r1, r6, 0
@@ -2194,7 +2194,7 @@ _080C395C:
movs r0, 0x1
movs r1, 0x1
adds r3, r4, 0
- bl box_print
+ bl AddTextPrinterParameterized3
add sp, 0xC
pop {r3-r5}
mov r8, r3
@@ -2235,7 +2235,7 @@ sub_80C3A18: @ 80C3A18
movs r0, 0x1
movs r1, 0x1
movs r2, 0x8
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r1, [r7]
adds r1, 0x19
movs r0, 0x1
@@ -2256,7 +2256,7 @@ sub_80C3A18: @ 80C3A18
str r1, [sp, 0x8]
movs r0, 0x1
movs r1, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r0, =gUnknown_0856FB4A
mov r8, r0
ldr r1, [r7]
@@ -2271,7 +2271,7 @@ sub_80C3A18: @ 80C3A18
movs r0, 0x1
movs r1, 0x1
movs r2, 0x8
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r1, [r7]
adds r1, 0x33
movs r0, 0x1
@@ -2292,7 +2292,7 @@ sub_80C3A18: @ 80C3A18
str r1, [sp, 0x8]
movs r0, 0x1
movs r1, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
_080C3ACE:
add sp, 0xC
pop {r3}
@@ -2363,7 +2363,7 @@ sub_80C3B50: @ 80C3B50
movs r1, 0x1
movs r2, 0x88
movs r3, 0x9
- bl box_print
+ bl AddTextPrinterParameterized3
b _080C3BB6
.pool
_080C3B8C:
@@ -2385,7 +2385,7 @@ _080C3B8C:
movs r0, 0x1
movs r1, 0x1
movs r3, 0x9
- bl box_print
+ bl AddTextPrinterParameterized3
_080C3BB6:
add sp, 0xC
pop {r4}
@@ -2470,7 +2470,7 @@ sub_80C3C34: @ 80C3C34
movs r0, 0x1
movs r1, 0x1
adds r3, r4, 0
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r1, =gUnknown_0856FB57
ldr r0, [r6]
adds r0, r5
@@ -2492,7 +2492,7 @@ sub_80C3C34: @ 80C3C34
movs r0, 0x1
movs r1, 0x1
adds r3, r4, 0
- bl box_print
+ bl AddTextPrinterParameterized3
add sp, 0xC
pop {r3-r5}
mov r8, r3
@@ -6361,7 +6361,7 @@ _080C5DC2:
str r4, [sp, 0x8]
movs r1, 0x1
movs r3, 0x5
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r4, =gText_BattleRecord
movs r0, 0x1
adds r1, r4, 0
@@ -6376,7 +6376,7 @@ _080C5DC2:
movs r0, 0x1
movs r1, 0x1
movs r3, 0x5
- bl box_print
+ bl AddTextPrinterParameterized3
str r6, [sp]
mov r0, r8
str r0, [sp, 0x4]
@@ -6386,7 +6386,7 @@ _080C5DC2:
movs r1, 0x8
movs r2, 0x5
movs r3, 0x4
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r4, =gStringVar4
ldr r5, =gUnknown_02039CEC
ldr r0, [r5]
@@ -6408,7 +6408,7 @@ _080C5DC2:
movs r0, 0x2
movs r1, 0x8
movs r3, 0x10
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r1, [r5]
ldrh r0, [r1, 0x8]
subs r0, 0x5
@@ -6476,7 +6476,7 @@ sub_80C5ED0: @ 80C5ED0
movs r1, 0x1
movs r2, 0x2
movs r3, 0
- bl box_print
+ bl AddTextPrinterParameterized3
b _080C5F3A
.pool
_080C5F18:
@@ -6495,7 +6495,7 @@ _080C5F18:
movs r1, 0x1
movs r2, 0x2
movs r3, 0
- bl box_print
+ bl AddTextPrinterParameterized3
_080C5F3A:
movs r0, 0x3
movs r1, 0x3
@@ -7983,7 +7983,7 @@ _080C6BB8:
movs r0, 0x1
movs r1, 0x7
movs r2, 0x4
- bl box_print
+ bl AddTextPrinterParameterized3
b _080C6C0E
.pool
_080C6BF0:
@@ -8000,7 +8000,7 @@ _080C6BF0:
movs r0, 0x1
movs r1, 0x7
movs r2, 0x4
- bl box_print
+ bl AddTextPrinterParameterized3
_080C6C0E:
adds r0, r4, 0x1
lsls r0, 24
@@ -8024,7 +8024,7 @@ _080C6C0E:
movs r1, 0x1
movs r2, 0x4
movs r3, 0
- bl box_print
+ bl AddTextPrinterParameterized3
movs r4, 0
_080C6C40:
adds r0, r4, 0
@@ -8084,7 +8084,7 @@ _080C6C94:
movs r0, 0x1
movs r1, 0x7
movs r2, 0x4
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r5, =gUnknown_02039CF4
ldr r1, [r5]
ldrb r3, [r1, 0x10]
@@ -8104,7 +8104,7 @@ _080C6C94:
movs r0, 0x1
movs r1, 0x7
movs r2, 0x4
- bl box_print
+ bl AddTextPrinterParameterized3
ldr r1, [r5]
ldr r2, [r1, 0x4]
ldrb r0, [r1, 0x10]
@@ -8148,7 +8148,7 @@ _080C6C94:
movs r1, 0x1
movs r2, 0x4
movs r3, 0
- bl box_print
+ bl AddTextPrinterParameterized3
movs r4, 0
_080C6D4A:
adds r0, r4, 0
@@ -8258,7 +8258,7 @@ _080C6E08:
str r1, [sp, 0x10]
movs r1, 0x1
movs r3, 0x1
- bl AddTextPrinterParameterized2
+ bl AddTextPrinterParameterized4
ldr r0, [sp, 0x4C]
mov r10, r4
cmp r0, 0x6
@@ -8410,7 +8410,7 @@ sub_80C6EAC: @ 80C6EAC
movs r1, 0x1
movs r2, 0
movs r3, 0x2
- bl AddTextPrinterParameterized2
+ bl AddTextPrinterParameterized4
lsrs r5, 1
adds r0, r7, 0
ldr r1, [sp, 0x24]
diff --git a/asm/use_pokeblock.s b/asm/use_pokeblock.s
index 4cee3c4d9..e04dedd9e 100644
--- a/asm/use_pokeblock.s
+++ b/asm/use_pokeblock.s
@@ -879,7 +879,7 @@ sub_8166D44: @ 8166D44
movs r1, 0x1
adds r2, r4, 0
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
movs r0, 0x2
bl PutWindowTilemap
movs r0, 0x2
@@ -1095,7 +1095,7 @@ sub_8166F50: @ 8166F50
movs r0, 0x2
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
movs r0, 0x2
bl PutWindowTilemap
movs r0, 0x2
@@ -1134,7 +1134,7 @@ sub_8166FB0: @ 8166FB0
movs r0, 0x2
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
add sp, 0xC
pop {r0}
bx r0
@@ -2536,7 +2536,7 @@ sub_8167BA0: @ 8167BA0
movs r0, 0
movs r1, 0x1
movs r3, 0
- bl PrintTextOnWindow
+ bl AddTextPrinterParameterized
ldr r0, [r7]
ldr r1, =0x00008041
adds r0, r1
@@ -2572,7 +2572,7 @@ sub_8167BA0: @ 8167BA0
movs r1, 0x1
movs r2, 0x2
movs r3, 0x1
- bl box_print
+ bl AddTextPrinterParameterized3
_08167C46:
mov r2, r8
cmp r2, 0
diff --git a/data/battle_frontier_2.s b/data/battle_frontier_2.s
index bbb2a2c62..ab2ecc058 100644
--- a/data/battle_frontier_2.s
+++ b/data/battle_frontier_2.s
@@ -6,96 +6,6 @@
.section .rodata
- .align 2
-gUnknown_0860F13C:: @ 860F13C
- .incbin "graphics/unknown/unknown_60F13C.gbapal"
-
- .align 2
-gUnknown_0860F15C:: @ 860F15C
- .incbin "graphics/unknown/unknown_60F15C.gbapal"
-
- .align 2
-gUnknown_0860F17C:: @ 860F17C
- .incbin "graphics/unknown/unknown_60F17C.gbapal"
-
- .align 2
-gUnknown_0860F1BC:: @ 860F1BC
- .incbin "graphics/unknown/unknown_60F1BC.4bpp"
-
- .align 2
-gUnknown_0860F3BC:: @ 860F3BC
- .incbin "graphics/unknown/unknown_60F3BC.4bpp"
-
- .align 2
-gUnknown_0860F43C:: @ 860F43C
- .incbin "graphics/unknown/unknown_60F43C.4bpp"
-
- .align 2
-gUnknown_0860F53C:: @ 860F53C
- .incbin "graphics/unknown/unknown_60F53C.4bpp"
-
- .align 2
-gUnknown_0860F63C:: @ 860F63C
- .incbin "graphics/unknown/unknown_60F63C.4bpp"
-
- .align 2
-gUnknown_0860F6BC:: @ 860F6BC
- .incbin "graphics/unknown/unknown_60F6BC.4bpp"
-
- .align 2
-gUnknown_0860F7BC:: @ 860F7BC
- .incbin "graphics/unknown/unknown_60F7BC.4bpp"
-
- .align 2
-gUnknown_0860F83C:: @ 860F83C
- .incbin "graphics/unknown/unknown_60F83C.4bpp"
-
- .align 2
-gUnknown_0860F93C:: @ 860F93C
- .incbin "graphics/unknown/unknown_60F93C.4bpp"
-
- .align 2
-gUnknown_0860FA3C:: @ 860FA3C
- .incbin "graphics/unknown/unknown_60FA3C.4bpp"
-
- .align 2
-gUnknown_0861023C:: @ 861023C
- .incbin "graphics/unknown/unknown_61023C.bin"
-
- .align 2
-gUnknown_0861033C:: @ 861033C
- .incbin "graphics/unknown/unknown_61033C.4bpp"
-
- .align 2
-gUnknown_0861039C:: @ 861039C
- .incbin "graphics/unknown/unknown_61039C.gbapal"
-
- .align 2
-gUnknown_086103BC:: @ 86103BC
- obj_tiles gUnknown_0860F3BC, 0x0080, 0x0065
- obj_tiles gUnknown_0860F43C, 0x0100, 0x0066
- obj_tiles gUnknown_0860F53C, 0x0100, 0x0067
- obj_tiles gUnknown_0860FA3C, 0x0800, 0x006d
- null_obj_tiles
-
- .align 2
-gUnknown_086103E4:: @ 86103E4
- obj_tiles gUnknown_085B18AC, 0x0800, 0x0064
- null_obj_tiles
-
- .align 2
-gUnknown_086103F4:: @ 86103F4
- obj_pal gUnknown_0860F13C, 0x0064
- obj_pal gUnknown_0860F15C, 0x0065
- obj_pal gUnknown_0860F17C, 0x0066
- obj_pal gUnknown_0861039C, 0x0067
- null_obj_pal
-
- .align 2
-gUnknown_0861041C:: @ 861041C
- .4byte sub_819BCCC
- .4byte sub_819BC30
- .4byte sub_819BCD0
.align 2
gUnknown_08610428:: @ 8610428
@@ -326,7 +236,7 @@ gUnknown_08610894:: @ 8610894
spr_template 0x006d, 0x0067, gUnknown_086106F0, gUnknown_0861075C, NULL, gUnknown_08610828, SpriteCallbackDummy
.align 2
-gUnknown_086108AC:: @ 86108AC
+sSwap_MenuOptionFuncs:: @ 86108AC
.4byte sub_819F114
.4byte sub_819F0CC
.4byte sub_819F134
diff --git a/include/constants/battle_frontier.h b/include/constants/battle_frontier.h
index fddcdc8fe..1cd750a3d 100644
--- a/include/constants/battle_frontier.h
+++ b/include/constants/battle_frontier.h
@@ -13,6 +13,7 @@
// Battle Frontier lvl modes.
#define FRONTIER_LVL_50 0
#define FRONTIER_LVL_OPEN 1
+#define FRONTIER_LVL_TENT 2
// Battle Frontier battle modes.
#define FRONTIER_MODE_SINGLES 0
diff --git a/include/global.h b/include/global.h
index 6977d4059..b35008550 100644
--- a/include/global.h
+++ b/include/global.h
@@ -344,7 +344,9 @@ struct FrontierMonData
struct Struct_field_E70
{
u16 monId;
- u8 unk2[9];
+ u32 personality;
+ u8 ivs;
+ u8 abilityBit;
};
struct BattleDomeTrainer
@@ -413,9 +415,7 @@ struct BattleFrontier
/*0xDD8*/ u16 field_DD8;
/*0xDDA*/ u16 field_DDA[2];
/*0xDDE*/ u16 field_DDE[2];
- /*0xDE2*/ u16 field_DE2[2];
- /*0xDE6*/ u16 field_DE6;
- /*0xDE8*/ u16 field_DE8;
+ /*0xDE2*/ u16 field_DE2[2][2];
/*0xDEA*/ u16 field_DEA[2];
/*0xDEE*/ u16 field_DEE;
/*0xDF0*/ u16 field_DF0;
diff --git a/include/menu.h b/include/menu.h
index a13fe73ec..b52b165f2 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -27,7 +27,7 @@ void sub_81973A4(void);
void NewMenuHelpers_DrawDialogueFrame(u8, u8);
void sub_819746C(u8 windowId, bool8 copyToVram);
void NewMenuHelpers_DrawStdWindowFrame(u8, u8);
-u16 AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 fgColor, u8 bgColor, u8 shadowColor);
+u16 AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *str, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 fgColor, u8 bgColor, u8 shadowColor);
void PrintPlayerNameOnWindow(u8, const u8*, u16, u16);
void DisplayItemMessageOnField(u8 taskId, const u8 *src, TaskFunc callback);
void sub_8197434(u8 windowId, bool8 copyToVram);
@@ -37,7 +37,7 @@ u8 GetPlayerTextSpeed(void);
void sub_81978B0(u16 arg0);
void AddTextPrinterWithCallbackForMessage(bool8 a1, void (*callback)(struct TextSubPrinter *, u16));
-void box_print(u8 windowId, u8 fontId, u8 left, u8 top, const u8 *color, s8 speed, const u8 *str);
+void AddTextPrinterParameterized3(u8 windowId, u8 fontId, u8 left, u8 top, const u8 *color, s8 speed, const u8 *str);
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);
@@ -58,7 +58,7 @@ s8 Menu_ProcessInputNoWrap_(void);
s8 ProcessMenuInput_other(void);
void do_scheduled_bg_tilemap_copies_to_vram(void);
void clear_scheduled_bg_copies_to_vram(void);
-void AddTextPrinterParameterized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const u8 *color, s8 speed, const u8 *str);
+void AddTextPrinterParameterized4(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const u8 *color, s8 speed, const u8 *str);
void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a2, u8 a3);
void sub_81995E4(u8 windowId, u8 optionsNo, const struct MenuAction *actions, const u8 *actionIds);
void sub_8197DF8(u8 windowId, bool8 copyToVram);
@@ -84,7 +84,7 @@ void sub_819A344(u8 a0, u8 *dest, u8 color);
void RemoveMapNamePopUpWindow(void);
u8 GetMapNamePopUpWindowId(void);
u8 AddMapNamePopUpWindow(void);
-void sub_8199F74(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 letterSpacing, u8 lineSpacing);
+void AddTextPrinterParameterized5(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 letterSpacing, u8 lineSpacing);
void sub_8199C30(u8 bgId, u8 left, u8 top, u8 width, u8 height, u8 palette);
void sub_8199D3C(void *ptr, int delta, int width, int height, bool32 is8BPP);
diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h
index 3d3b6f0e3..a8eee9c18 100755
--- a/include/pokemon_summary_screen.h
+++ b/include/pokemon_summary_screen.h
@@ -1,6 +1,7 @@
#ifndef GUARD_POKEMON_SUMMARY_SCREEN_H
#define GUARD_POKEMON_SUMMARY_SCREEN_H
+void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void));
void sub_81C4F98(u8, void(*)(void));
void ShowSelectMovePokemonSummaryScreen(struct Pokemon *, u8, u8, MainCallback, u16);
diff --git a/include/text.h b/include/text.h
index 92def780c..e2120efa3 100644
--- a/include/text.h
+++ b/include/text.h
@@ -223,7 +223,7 @@ u8 gGlyphDimensions[0x2];
void SetFontsPointer(const struct FontInfo *fonts);
void DeactivateAllTextPrinters(void);
-u16 PrintTextOnWindow(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextSubPrinter *, u16));
+u16 AddTextPrinterParameterized(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/ld_script.txt b/ld_script.txt
index f64e2083a..eec0bbc68 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -247,6 +247,7 @@ SECTIONS {
src/battle_frontier_1.o(.text);
asm/battle_frontier_1.o(.text);
src/menu.o(.text);
+ src/battle_factory.o(.text);
asm/battle_frontier_2.o(.text);
src/item_menu.o(.text);
src/list_menu.o(.text);
@@ -528,6 +529,7 @@ SECTIONS {
src/battle_dome.o(.rodata);
data/battle_frontier_1.o(.rodata);
src/menu.o(.rodata);
+ src/battle_factory.o(.rodata);
data/battle_frontier_2.o(.rodata);
src/item_menu.o(.rodata);
src/list_menu.o(.rodata);
diff --git a/src/battle_factory.c b/src/battle_factory.c
new file mode 100644
index 000000000..f85a14b48
--- /dev/null
+++ b/src/battle_factory.c
@@ -0,0 +1,3280 @@
+#include "global.h"
+#include "sprite.h"
+#include "event_data.h"
+#include "overworld.h"
+#include "random.h"
+#include "battle_tower.h"
+#include "text.h"
+#include "palette.h"
+#include "task.h"
+#include "main.h"
+#include "malloc.h"
+#include "bg.h"
+#include "gpu_regs.h"
+#include "string_util.h"
+#include "international_string_util.h"
+#include "window.h"
+#include "data2.h"
+#include "decompress.h"
+#include "pokemon_summary_screen.h"
+#include "sound.h"
+#include "pokedex.h"
+#include "blend_palette.h"
+#include "trainer_pokemon_sprites.h"
+#include "constants/battle_frontier.h"
+#include "constants/songs.h"
+
+// Select_ refers to the first Pokemon selection screen where you choose 3 Pokemon.
+// Swap_ refers to the consecutive selection screen where you can keep your Pokemon or swap one with beaten trainer's.
+
+#define MENU_SUMMARY 0
+#define MENU_RENT 1
+#define MENU_DESELECT 1
+#define MENU_OTHERS 2
+#define MENU_OPTIONS_COUNT 3
+
+#define SELECTABLE_MONS_COUNT 6
+
+#define TAG_PAL_BALL_GREY 0x64
+#define TAG_PAL_BALL_SELECTED 0x65
+#define TAG_PAL_66 0x66
+#define TAG_PAL_67 0x67
+
+#define TAG_TILE_64 0x64
+#define TAG_TILE_65 0x65
+#define TAG_TILE_66 0x66
+#define TAG_TILE_67 0x67
+#define TAG_TILE_68 0x68
+#define TAG_TILE_69 0x69
+#define TAG_TILE_6A 0x6A
+#define TAG_TILE_6B 0x6B
+#define TAG_TILE_6C 0x6C
+#define TAG_TILE_6D 0x6D
+
+struct FactorySelecteableMon
+{
+ u16 monSetId;
+ u16 spriteId;
+ u8 selectedId; // 0 - not selected, 1 - first pokemon, 2 - second pokemon, 3 - third pokemon
+ struct Pokemon monData;
+};
+
+struct UnkFactoryStruct
+{
+ u8 field0;
+ u8 field1;
+};
+
+struct FactorySelectMonsStruct
+{
+ u8 menuCursorPos;
+ u8 menuCursor1SpriteId;
+ u8 menuCursor2SpriteId;
+ u8 cursorPos;
+ u8 cursorSpriteId;
+ u8 selectingMonsState;
+ bool8 fromSummaryScreen;
+ u8 yesNoCursorPos;
+ u8 unused8;
+ struct FactorySelecteableMon mons[SELECTABLE_MONS_COUNT];
+ struct UnkFactoryStruct unk294[3];
+ bool8 unk2A0;
+ u8 fadeSpeciesNameTaskId;
+ bool8 unk2A2;
+ u16 unk2A4;
+ bool8 unk2A6;
+ u8 unk2A7;
+ u8 unk2A8;
+ u8 unk2A9;
+};
+
+// 'Action' refers to the 3 Selectable mons, Cancel, Pknm for swap windows.
+#define ACTIONS_PLAYER_SCREEN 0
+#define ACTIONS_ENEMY_SCREEN 1
+
+struct SwapActionIdAndFunc
+{
+ u8 id;
+ void (*func)(u8 taskId);
+};
+
+struct FactorySwapMonsStruct
+{
+ u8 menuCursorPos;
+ u8 menuCursor1SpriteId;
+ u8 menuCursor2SpriteId;
+ u8 cursorPos;
+ u8 cursorSpriteId;
+ u8 ballSpriteIds[3];
+ u8 unk8[2][3];
+ u8 unkE[2][2];
+ u8 playerMonId;
+ u8 enemyMonId;
+ bool8 inEnemyScreen;
+ bool8 fromSummaryScreen;
+ u8 yesNoCursorPos;
+ u8 actionsCount;
+ const struct SwapActionIdAndFunc *actionsData;
+ u8 unk1C;
+ u8 unk1D;
+ u8 unk1E;
+ u8 unk1F;
+ bool8 monSwapped;
+ u8 fadeSpeciesNameTaskId;
+ u8 unk22;
+ u8 unk23;
+ u16 unk24;
+ bool8 unk26;
+ u8 unk27;
+ u8 unk28;
+ u8 unk29;
+ struct UnkFactoryStruct unk2C;
+ bool8 unk30;
+};
+
+extern u8 (*gUnknown_030062E8)(void);
+extern u8 gUnknown_0203CF20;
+
+extern const u16 gBattleFrontierHeldItems[];
+extern const struct FacilityMon gBattleFrontierMons[];
+extern const struct FacilityMon gSlateportBattleTentMons[];
+extern const struct BattleFrontierTrainer gBattleFrontierTrainers[];
+extern const u8 gUnknown_085B18AC[];
+
+extern void SetMonMoveAvoidReturn(struct Pokemon *mon, u16 move, u8 moveSlot);
+
+// This file's functions.
+static void CB2_InitSelectScreen(void);
+static void Select_SetWinRegs(s16 mWin0H, s16 nWin0H, s16 mWin0V, s16 nWin0V);
+static void Select_InitMonsData(void);
+static void Select_InitAllSprites(void);
+static void Select_ShowSummaryMonSprite(void);
+static void Select_PrintSelectMonString(void);
+static void Select_PrintMonSpecies(void);
+static void Select_PrintMonCategory(void);
+static void Select_PrintRentalPkmnString(void);
+static void Select_CopyMonsToPlayerParty(void);
+static void sub_819C4B4(void);
+static void Select_ShowYesNoOptions(void);
+static void sub_819C568(void);
+static void Select_ShowMenuOptions(void);
+static void Select_PrintMenuOptions(void);
+static void Select_PrintYesNoOptions(void);
+static void Task_SelectFadeSpeciesName(u8 taskId);
+static void sub_819C1D0(u8 taskId);
+static void Task_HandleSelectionScreenChooseMons(u8 taskId);
+static void Task_HandleSelectionScreenMenu(u8 taskId);
+static void CreateFrontierFactorySelectableMons(u8 firstMonId);
+static void CreateTentFactorySelectableMons(u8 firstMonId);
+static void Select_SetBallSpritePaletteNum(u8 id);
+void sub_819F444(struct UnkFactoryStruct arg0, bool8 *arg1);
+static void sub_819B958(u8 windowId);
+void sub_819F2B4(u8 *arg0, bool8 *arg1, bool8 swapScreen);
+void sub_819F3F8(struct UnkFactoryStruct arg0, bool8 *arg1, bool8 swapScreen);
+static u8 Select_RunMenuOptionFunc(void);
+static u8 sub_819BC9C(void);
+static u8 Select_OptionSummary(void);
+static u8 Select_OptionOthers(void);
+static u8 Select_OptionRentDeselect(void);
+u8 sub_81A6F70(u8 battleMode, u8 lvlMode);
+u8 sub_81A6CA8(u8 arg0, u8 arg1);
+static bool32 Select_AreSpeciesValid(u16 monSetId);
+void Swap_DestroyAllSprites(void);
+void Swap_ShowYesNoOptions(void);
+void sub_819E8EC(void);
+void sub_819EAC0(void);
+void Swap_UpdateYesNoCursorPosition(s8 direction);
+void Swap_UpdateMenuCursorPosition(s8 direction);
+void sub_819EA64(u8 windowId);
+void sub_819D770(u8 taskId);
+void Task_HandleSwapScreenChooseMons(u8 taskId);
+void sub_819D588(u8 taskId);
+void sub_819F7B4(u8 taskId);
+void Swap_PrintOnInfoWindow(const u8 *str);
+void Swap_ShowMenuOptions(void);
+void Swap_PrintMenuOptions(void);
+void Swap_PrintYesNoOptions(void);
+void Swap_PrintMonSpecies(void);
+void Swap_PrintMonSpecies2(void);
+void Swap_PrintMonSpecies3(void);
+void Swap_PrintMonCategory(void);
+void Swap_InitAllSprites(void);
+void Swap_PrintPkmnSwap(void);
+void sub_819EADC(void);
+void sub_819EAF8(void);
+void CB2_InitSwapScreen(void);
+void Swap_ShowSummaryMonSprite(void);
+void Swap_UpdateActionCursorPosition(s8 direction);
+void Swap_UpdateBallCursorPosition(s8 direction);
+void Swap_RunMenuOptionFunc(u8 taskId);
+void Swap_RunActionFunc(u8 taskId);
+void Task_SwapCantHaveSameMons(u8 taskId);
+void Swap_PrintActionStrings(void);
+void Swap_PrintActionStrings2(void);
+void Swap_PrintOneActionString(u8 which);
+void Swap_InitActions(u8 id);
+void sub_819E838(u8 arg0);
+bool8 Swap_AlreadyHasSameSpecies(u8 monId);
+void sub_819F600(struct Sprite *sprite);
+
+// Ewram variables
+EWRAM_DATA u8 *gUnknown_0203CE2C = NULL;
+EWRAM_DATA u8 *gUnknown_0203CE30 = NULL;
+EWRAM_DATA u8 *gUnknown_0203CE34 = NULL;
+EWRAM_DATA u8 *gUnknown_0203CE38 = NULL;
+EWRAM_DATA struct Pokemon *sFactorySelectMons = NULL;
+EWRAM_DATA u8 *gUnknown_0203CE40 = NULL;
+EWRAM_DATA u8 *gUnknown_0203CE44 = NULL;
+EWRAM_DATA u8 *gUnknown_0203CE48 = NULL;
+EWRAM_DATA u8 *gUnknown_0203CE4C = NULL;
+
+// IWRAM bss
+IWRAM_DATA struct FactorySelectMonsStruct *sFactorySelectScreen;
+IWRAM_DATA void (*gUnknown_03001280)(u8 taskId);
+IWRAM_DATA struct FactorySwapMonsStruct *sFactorySwapScreen;
+
+// Const rom data.
+const u16 gUnknown_0860F13C[] = INCBIN_U16("graphics/unknown/unknown_60F13C.gbapal");
+const u16 gUnknown_0860F15C[] = INCBIN_U16("graphics/unknown/unknown_60F15C.gbapal");
+const u16 gUnknown_0860F17C[] = INCBIN_U16("graphics/unknown/unknown_60F17C.gbapal");
+const u8 gUnknown_0860F1BC[] = INCBIN_U8("graphics/unknown/unknown_60F1BC.4bpp");
+const u8 gUnknown_0860F3BC[] = INCBIN_U8("graphics/unknown/unknown_60F3BC.4bpp");
+const u8 gUnknown_0860F43C[] = INCBIN_U8("graphics/unknown/unknown_60F43C.4bpp");
+const u8 gUnknown_0860F53C[] = INCBIN_U8("graphics/unknown/unknown_60F53C.4bpp");
+const u8 gUnknown_0860F63C[] = INCBIN_U8("graphics/unknown/unknown_60F63C.4bpp");
+const u8 gUnknown_0860F6BC[] = INCBIN_U8("graphics/unknown/unknown_60F6BC.4bpp");
+const u8 gUnknown_0860F7BC[] = INCBIN_U8("graphics/unknown/unknown_60F7BC.4bpp");
+const u8 gUnknown_0860F83C[] = INCBIN_U8("graphics/unknown/unknown_60F83C.4bpp");
+const u8 gUnknown_0860F93C[] = INCBIN_U8("graphics/unknown/unknown_60F93C.4bpp");
+const u8 gUnknown_0860FA3C[] = INCBIN_U8("graphics/unknown/unknown_60FA3C.4bpp");
+const u8 gUnknown_0861023C[] = INCBIN_U8("graphics/unknown/unknown_61023C.bin");
+const u8 gUnknown_0861033C[] = INCBIN_U8("graphics/unknown/unknown_61033C.4bpp");
+const u16 gUnknown_0861039C[] = INCBIN_U16("graphics/unknown/unknown_61039C.gbapal");
+
+const struct SpriteSheet gUnknown_086103BC[] =
+{
+ {gUnknown_0860F3BC, sizeof(gUnknown_0860F3BC), TAG_TILE_65},
+ {gUnknown_0860F43C, sizeof(gUnknown_0860F43C), TAG_TILE_66},
+ {gUnknown_0860F53C, sizeof(gUnknown_0860F53C), TAG_TILE_67},
+ {gUnknown_0860FA3C, sizeof(gUnknown_0860FA3C), TAG_TILE_6D},
+ {},
+};
+
+const struct CompressedSpriteSheet gUnknown_086103E4[] =
+{
+ {gUnknown_085B18AC, 0x800, TAG_TILE_64},
+ {},
+};
+
+const struct SpritePalette gUnknown_086103F4[] =
+{
+ {gUnknown_0860F13C, TAG_PAL_BALL_GREY},
+ {gUnknown_0860F15C, TAG_PAL_BALL_SELECTED},
+ {gUnknown_0860F17C, TAG_PAL_66},
+ {gUnknown_0861039C, TAG_PAL_67},
+ {},
+};
+
+u8 (* const sSelect_MenuOptionFuncs[])(void) =
+{
+ [MENU_SUMMARY] = Select_OptionSummary,
+ [MENU_RENT] /*Or Deselect*/ = Select_OptionRentDeselect,
+ [MENU_OTHERS] = Select_OptionOthers
+};
+
+extern void (* const sSwap_MenuOptionFuncs[])(u8 taskId);
+
+extern const struct BgTemplate gUnknown_08610428[3];
+extern const struct BgTemplate gUnknown_086108B8[4];
+extern const struct WindowTemplate gUnknown_08610434[];
+extern const struct WindowTemplate gUnknown_086108C8[];
+extern const u16 gUnknown_0861046C[];
+extern const u16 gUnknown_08610918[];
+extern const struct SpriteTemplate gUnknown_086105D8;
+extern const struct SpriteTemplate gUnknown_086105F0;
+extern const struct SpriteTemplate gUnknown_08610608;
+extern const struct SpriteTemplate gUnknown_08610620;
+extern const struct SpriteTemplate gUnknown_08610638;
+extern const u8 gUnknown_08610479[];
+extern const u8 gUnknown_08610925[];
+extern const u8 gUnknown_08610476[];
+extern const u8 gUnknown_08610922[];
+extern const struct SpritePalette gUnknown_086106B0[];
+extern const struct SpriteSheet gUnknown_08610650[];
+extern const struct CompressedSpriteSheet gUnknown_086106A0[];
+
+// gfx
+extern const u8 gFrontierFactorySelectMenu_Gfx[];
+extern const u8 gFrontierFactorySelectMenu_Tilemap[];
+extern const u16 gFrontierFactorySelectMenu_Pal[];
+
+// text
+extern const u8 gText_RentalPkmn2[];
+extern const u8 gText_SelectFirstPkmn[];
+extern const u8 gText_SelectSecondPkmn[];
+extern const u8 gText_SelectThirdPkmn[];
+extern const u8 gText_TheseThreePkmnOkay[];
+extern const u8 gText_CantSelectSamePkmn[];
+extern const u8 gText_Summary[];
+extern const u8 gText_Rechoose[];
+extern const u8 gText_Deselect[];
+extern const u8 gText_Rent[];
+extern const u8 gText_Others2[];
+extern const u8 gText_Yes2[];
+extern const u8 gText_Yes3[];
+extern const u8 gText_No2[];
+extern const u8 gText_No3[];
+extern const u8 gText_QuitSwapping[];
+extern const u8 gText_AcceptThisPkmn[];
+extern const u8 gText_SelectPkmnToAccept[];
+extern const u8 gText_SelectPkmnToSwap[];
+extern const u8 gText_PkmnSwap[];
+extern const u8 gText_Swap[];
+extern const u8 gText_Summary2[];
+extern const u8 gText_PkmnForSwap[];
+extern const u8 gText_SamePkmnInPartyAlready[];
+extern const u8 gText_Cancel3[];
+
+// code
+void sub_819A44C(struct Sprite *sprite)
+{
+ if (sprite->oam.paletteNum == IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED))
+ {
+ if (sprite->animEnded)
+ {
+ if (sprite->data[0] != 0)
+ {
+ sprite->data[0]--;
+ }
+ else if (Random() % 5 == 0)
+ {
+ StartSpriteAnim(sprite, 0);
+ sprite->data[0] = 32;
+ }
+ else
+ {
+ StartSpriteAnim(sprite, 1);
+ }
+ }
+ else
+ {
+ StartSpriteAnimIfDifferent(sprite, 1);
+ }
+ }
+ else
+ {
+ StartSpriteAnimIfDifferent(sprite, 0);
+ }
+}
+
+static void Select_CB2(void)
+{
+ AnimateSprites();
+ BuildOamBuffer();
+ RunTextPrinters();
+ UpdatePaletteFade();
+ RunTasks();
+}
+
+static void Select_VblankCb(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+}
+
+void sub_819A4F8(void)
+{
+ sFactorySelectScreen = NULL;
+ SetMainCallback2(CB2_InitSelectScreen);
+}
+
+static void CB2_InitSelectScreen(void)
+{
+ u8 taskId;
+
+ switch (gMain.state)
+ {
+ case 0:
+ if (sFactorySelectMons != NULL)
+ FREE_AND_SET_NULL(sFactorySelectMons);
+ SetHBlankCallback(NULL);
+ SetVBlankCallback(NULL);
+ CpuFill32(0, (void *)VRAM, VRAM_SIZE);
+ ResetBgsAndClearDma3BusyFlags(0);
+ InitBgsFromTemplates(0, gUnknown_08610428, ARRAY_COUNT(gUnknown_08610428));
+ InitWindows(gUnknown_08610434);
+ DeactivateAllTextPrinters();
+ gMain.state++;
+ break;
+ case 1:
+ gUnknown_0203CE2C = Alloc(0x440);
+ gUnknown_0203CE30 = AllocZeroed(0x440);
+ gUnknown_0203CE34 = Alloc(0x800);
+ gUnknown_0203CE38 = AllocZeroed(0x800);
+ ChangeBgX(0, 0, 0);
+ ChangeBgY(0, 0, 0);
+ ChangeBgX(1, 0, 0);
+ ChangeBgY(1, 0, 0);
+ ChangeBgX(3, 0, 0);
+ ChangeBgY(3, 0, 0);
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0);
+ SetGpuReg(REG_OFFSET_BLDY, 0);
+ SetGpuReg(REG_OFFSET_MOSAIC, 0);
+ SetGpuReg(REG_OFFSET_WIN0H, 0);
+ SetGpuReg(REG_OFFSET_WIN0V, 0);
+ SetGpuReg(REG_OFFSET_WIN1H, 0);
+ SetGpuReg(REG_OFFSET_WIN1V, 0);
+ SetGpuReg(REG_OFFSET_WININ, 0);
+ SetGpuReg(REG_OFFSET_WINOUT, 0);
+ gMain.state++;
+ break;
+ case 2:
+ ResetPaletteFade();
+ ResetSpriteData();
+ ResetTasks();
+ FreeAllSpritePalettes();
+ CpuCopy16(gFrontierFactorySelectMenu_Gfx, gUnknown_0203CE2C, 0x440);
+ CpuCopy16(gUnknown_0861033C, gUnknown_0203CE30, 0x60);
+ LoadBgTiles(1, gUnknown_0203CE2C, 0x440, 0);
+ LoadBgTiles(3, gUnknown_0203CE30, 0x60, 0);
+ CpuCopy16(gFrontierFactorySelectMenu_Tilemap, gUnknown_0203CE34, 0x800);
+ LoadBgTilemap(1, gUnknown_0203CE34, 0x800, 0);
+ LoadPalette(gFrontierFactorySelectMenu_Pal, 0, 0x40);
+ LoadPalette(gUnknown_0861046C, 0xF0, 8);
+ LoadPalette(gUnknown_0861046C, 0xE0, 10);
+ if (sFactorySelectScreen->fromSummaryScreen == TRUE)
+ gPlttBufferUnfaded[228] = sFactorySelectScreen->unk2A4;
+ LoadPalette(gUnknown_0861039C, 0x20, 4);
+ gMain.state++;
+ break;
+ case 3:
+ SetBgTilemapBuffer(3, gUnknown_0203CE38);
+ CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 11, 4, 8, 8);
+ CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 2, 4, 8, 8);
+ CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 20, 4, 8, 8);
+ CopyBgTilemapBufferToVram(3);
+ gMain.state++;
+ break;
+ case 4:
+ LoadSpritePalettes(gUnknown_086103F4);
+ LoadSpriteSheets(gUnknown_086103BC);
+ LoadCompressedObjectPic(gUnknown_086103E4);
+ ShowBg(0);
+ ShowBg(1);
+ SetVBlankCallback(Select_VblankCb);
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_BG0_ON | DISPCNT_BG1_ON | DISPCNT_OBJ_1D_MAP);
+ if (sFactorySelectScreen->fromSummaryScreen == TRUE)
+ {
+ Select_SetWinRegs(88, 152, 32, 96);
+ ShowBg(3);
+ SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_OBJ);
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4));
+ }
+ else
+ {
+ HideBg(3);
+ }
+ gMain.state++;
+ break;
+ case 5:
+ if (sFactorySelectScreen->fromSummaryScreen == TRUE)
+ sFactorySelectScreen->cursorPos = gUnknown_0203CF20;
+ Select_InitMonsData();
+ Select_InitAllSprites();
+ if (sFactorySelectScreen->fromSummaryScreen == TRUE)
+ Select_ShowSummaryMonSprite();
+ gMain.state++;
+ break;
+ case 6:
+ Select_PrintSelectMonString();
+ PutWindowTilemap(2);
+ gMain.state++;
+ break;
+ case 7:
+ Select_PrintMonCategory();
+ PutWindowTilemap(5);
+ gMain.state++;
+ break;
+ case 8:
+ Select_PrintMonSpecies();
+ PutWindowTilemap(1);
+ gMain.state++;
+ break;
+ case 9:
+ Select_PrintRentalPkmnString();
+ PutWindowTilemap(0);
+ gMain.state++;
+ break;
+ case 10:
+ sFactorySelectScreen->fadeSpeciesNameTaskId = CreateTask(Task_SelectFadeSpeciesName, 0);
+ if (!sFactorySelectScreen->fromSummaryScreen)
+ {
+ gTasks[sFactorySelectScreen->fadeSpeciesNameTaskId].data[0] = 0;
+ taskId = CreateTask(Task_HandleSelectionScreenChooseMons, 0);
+ gTasks[taskId].data[0] = 0;
+ }
+ else
+ {
+ gTasks[sFactorySelectScreen->fadeSpeciesNameTaskId].data[0] = 1;
+ sFactorySelectScreen->unk2A2 = FALSE;
+ taskId = CreateTask(Task_HandleSelectionScreenMenu, 0);
+ gTasks[taskId].data[0] = 13;
+ }
+ SetMainCallback2(Select_CB2);
+ break;
+ }
+}
+
+static void Select_InitMonsData(void)
+{
+ u8 i;
+
+ if (sFactorySelectScreen != NULL)
+ return;
+
+ sFactorySelectScreen = AllocZeroed(sizeof(*sFactorySelectScreen));
+ sFactorySelectScreen->cursorPos = 0;
+ sFactorySelectScreen->selectingMonsState = 1;
+ sFactorySelectScreen->fromSummaryScreen = FALSE;
+ for (i = 0; i < SELECTABLE_MONS_COUNT; i++)
+ sFactorySelectScreen->mons[i].selectedId = 0;
+
+ if (gSaveBlock2Ptr->frontier.lvlMode != FRONTIER_LVL_TENT)
+ CreateFrontierFactorySelectableMons(0);
+ else
+ CreateTentFactorySelectableMons(0);
+}
+
+static void Select_InitAllSprites(void)
+{
+ u8 i, cursorPos;
+ s16 x;
+
+ for (i = 0; i < SELECTABLE_MONS_COUNT; i++)
+ {
+ sFactorySelectScreen->mons[i].spriteId = CreateSprite(&gUnknown_086105D8, (35 * i) + 32, 64, 1);
+ gSprites[sFactorySelectScreen->mons[i].spriteId].data[0] = 0;
+ Select_SetBallSpritePaletteNum(i);
+ }
+ cursorPos = sFactorySelectScreen->cursorPos;
+ x = gSprites[sFactorySelectScreen->mons[cursorPos].spriteId].pos1.x;
+ sFactorySelectScreen->cursorSpriteId = CreateSprite(&gUnknown_086105F0, x, 88, 0);
+ sFactorySelectScreen->menuCursor1SpriteId = CreateSprite(&gUnknown_08610608, 176, 112, 0);
+ sFactorySelectScreen->menuCursor2SpriteId = CreateSprite(&gUnknown_08610620, 176, 144, 0);
+
+ gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = 1;
+ gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = 1;
+
+ gSprites[sFactorySelectScreen->menuCursor1SpriteId].centerToCornerVecX = 0;
+ gSprites[sFactorySelectScreen->menuCursor1SpriteId].centerToCornerVecY = 0;
+ gSprites[sFactorySelectScreen->menuCursor2SpriteId].centerToCornerVecX = 0;
+ gSprites[sFactorySelectScreen->menuCursor2SpriteId].centerToCornerVecY = 0;
+}
+
+static void Select_DestroyAllSprites(void)
+{
+ u8 i;
+
+ for (i = 0; i < SELECTABLE_MONS_COUNT; i++)
+ DestroySprite(&gSprites[sFactorySelectScreen->mons[i].spriteId]);
+
+ DestroySprite(&gSprites[sFactorySelectScreen->cursorSpriteId]);
+ DestroySprite(&gSprites[sFactorySelectScreen->menuCursor1SpriteId]);
+ DestroySprite(&gSprites[sFactorySelectScreen->menuCursor2SpriteId]);
+}
+
+static void Select_UpdateBallCursorPosition(s8 direction)
+{
+ u8 cursorPos;
+ if (direction > 0) // Move cursor right.
+ {
+ if (sFactorySelectScreen->cursorPos != SELECTABLE_MONS_COUNT - 1)
+ sFactorySelectScreen->cursorPos++;
+ else
+ sFactorySelectScreen->cursorPos = 0;
+ }
+ else // Move cursor left.
+ {
+ if (sFactorySelectScreen->cursorPos != 0)
+ sFactorySelectScreen->cursorPos--;
+ else
+ sFactorySelectScreen->cursorPos = SELECTABLE_MONS_COUNT - 1;
+ }
+
+ cursorPos = sFactorySelectScreen->cursorPos;
+ gSprites[sFactorySelectScreen->cursorSpriteId].pos1.x = gSprites[sFactorySelectScreen->mons[cursorPos].spriteId].pos1.x;
+}
+
+static void Select_UpdateMenuCursorPosition(s8 direction)
+{
+ if (direction > 0) // Move cursor down.
+ {
+ if (sFactorySelectScreen->menuCursorPos != MENU_OPTIONS_COUNT - 1)
+ sFactorySelectScreen->menuCursorPos++;
+ else
+ sFactorySelectScreen->menuCursorPos = 0;
+ }
+ else // Move cursor up.
+ {
+ if (sFactorySelectScreen->menuCursorPos != 0)
+ sFactorySelectScreen->menuCursorPos--;
+ else
+ sFactorySelectScreen->menuCursorPos = MENU_OPTIONS_COUNT - 1;
+ }
+
+ gSprites[sFactorySelectScreen->menuCursor1SpriteId].pos1.y = (sFactorySelectScreen->menuCursorPos * 16) + 112;
+ gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.y = (sFactorySelectScreen->menuCursorPos * 16) + 112;
+}
+
+static void Select_UpdateYesNoCursorPosition(s8 direction)
+{
+ if (direction > 0) // Move cursor down.
+ {
+ if (sFactorySelectScreen->yesNoCursorPos != 1)
+ sFactorySelectScreen->yesNoCursorPos++;
+ else
+ sFactorySelectScreen->yesNoCursorPos = 0;
+ }
+ else // Move cursor up.
+ {
+ if (sFactorySelectScreen->yesNoCursorPos != 0)
+ sFactorySelectScreen->yesNoCursorPos--;
+ else
+ sFactorySelectScreen->yesNoCursorPos = 1;
+ }
+
+ gSprites[sFactorySelectScreen->menuCursor1SpriteId].pos1.y = (sFactorySelectScreen->yesNoCursorPos * 16) + 112;
+ gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.y = (sFactorySelectScreen->yesNoCursorPos * 16) + 112;
+}
+
+static void Select_HandleMonSelectionChange(void)
+{
+ u8 i, paletteNum;
+ u8 cursorPos = sFactorySelectScreen->cursorPos;
+ if (sFactorySelectScreen->mons[cursorPos].selectedId) // Deselect a mon.
+ {
+ paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_GREY);
+ if (sFactorySelectScreen->selectingMonsState == 3 && sFactorySelectScreen->mons[cursorPos].selectedId == 1)
+ {
+ for (i = 0; i < SELECTABLE_MONS_COUNT; i++)
+ {
+ if (sFactorySelectScreen->mons[i].selectedId == 2)
+ break;
+ }
+ if (i == SELECTABLE_MONS_COUNT)
+ return;
+ else
+ sFactorySelectScreen->mons[i].selectedId = 1;
+ }
+ sFactorySelectScreen->mons[cursorPos].selectedId = 0;
+ sFactorySelectScreen->selectingMonsState--;
+ }
+ else // Select a mon.
+ {
+ paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED);
+ sFactorySelectScreen->mons[cursorPos].selectedId = sFactorySelectScreen->selectingMonsState;
+ sFactorySelectScreen->selectingMonsState++;
+ }
+
+ gSprites[sFactorySelectScreen->mons[cursorPos].spriteId].oam.paletteNum = paletteNum;
+}
+
+static void Select_SetBallSpritePaletteNum(u8 id)
+{
+ u8 palNum;
+
+ if (sFactorySelectScreen->mons[id].selectedId)
+ palNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED);
+ else
+ palNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_GREY);
+
+ gSprites[sFactorySelectScreen->mons[id].spriteId].oam.paletteNum = palNum;
+}
+
+static void Task_FromSelectScreenToSummaryScreen(u8 taskId)
+{
+ u8 i;
+ u8 currMonId;
+
+ switch (gTasks[taskId].data[0])
+ {
+ case 6:
+ gPlttBufferUnfaded[228] = gPlttBufferFaded[228];
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
+ gTasks[taskId].data[0] = 7;
+ break;
+ case 7:
+ if (!gPaletteFade.active)
+ {
+ DestroyTask(sFactorySelectScreen->fadeSpeciesNameTaskId);
+ sub_819F444(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0);
+ Select_DestroyAllSprites();
+ FREE_AND_SET_NULL(gUnknown_0203CE2C);
+ FREE_AND_SET_NULL(gUnknown_0203CE30);
+ FREE_AND_SET_NULL(gUnknown_0203CE34);
+ FREE_AND_SET_NULL(gUnknown_0203CE38);
+ FreeAllWindowBuffers();
+ gTasks[taskId].data[0] = 8;
+ }
+ break;
+ case 8:
+ sFactorySelectScreen->unk2A4 = gPlttBufferUnfaded[228];
+ DestroyTask(taskId);
+ sFactorySelectScreen->fromSummaryScreen = TRUE;
+ currMonId = sFactorySelectScreen->cursorPos;
+ sFactorySelectMons = AllocZeroed(sizeof(struct Pokemon) * SELECTABLE_MONS_COUNT);
+ for (i = 0; i < SELECTABLE_MONS_COUNT; i++)
+ sFactorySelectMons[i] = sFactorySelectScreen->mons[i].monData;
+ ShowPokemonSummaryScreen(1, sFactorySelectMons, currMonId, SELECTABLE_MONS_COUNT - 1, CB2_InitSelectScreen);
+ break;
+ }
+}
+
+static void Task_CloseSelectionScreen(u8 taskId)
+{
+ if (sFactorySelectScreen->unk2A0 != TRUE)
+ {
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
+ gTasks[taskId].data[0]++;
+ break;
+ case 1:
+ if (!UpdatePaletteFade())
+ {
+ Select_CopyMonsToPlayerParty();
+ DestroyTask(sFactorySelectScreen->fadeSpeciesNameTaskId);
+ Select_DestroyAllSprites();
+ FREE_AND_SET_NULL(gUnknown_0203CE2C);
+ FREE_AND_SET_NULL(gUnknown_0203CE34);
+ FREE_AND_SET_NULL(gUnknown_0203CE38);
+ FREE_AND_SET_NULL(sFactorySelectScreen);
+ FreeAllWindowBuffers();
+ SetMainCallback2(CB2_ReturnToFieldContinueScript);
+ DestroyTask(taskId);
+ }
+ break;
+ }
+ }
+}
+
+static void Task_HandleSelectionScreenYesNo(u8 taskId)
+{
+ if (sFactorySelectScreen->unk2A0 != TRUE)
+ {
+ switch (gTasks[taskId].data[0])
+ {
+ case 10:
+ sub_819C4B4();
+ gTasks[taskId].data[0] = 4;
+ break;
+ case 4:
+ Select_ShowYesNoOptions();
+ gTasks[taskId].data[0] = 5;
+ break;
+ case 5:
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ if (sFactorySelectScreen->yesNoCursorPos == 0)
+ {
+ sub_819C568();
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].func = Task_CloseSelectionScreen;
+ }
+ else
+ {
+ sub_819B958(4);
+ sub_819BC9C();
+ sFactorySelectScreen->unk2A2 = TRUE;
+ gTasks[taskId].data[0] = 1;
+ gTasks[taskId].func = Task_HandleSelectionScreenChooseMons;
+ }
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_819B958(4);
+ sub_819BC9C();
+ sFactorySelectScreen->unk2A2 = TRUE;
+ gTasks[taskId].data[0] = 1;
+ gTasks[taskId].func = Task_HandleSelectionScreenChooseMons;
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ PlaySE(SE_SELECT);
+ Select_UpdateYesNoCursorPosition(-1);
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ PlaySE(SE_SELECT);
+ Select_UpdateYesNoCursorPosition(1);
+ }
+ break;
+ }
+ }
+}
+
+static void Task_HandleSelectionScreenMenu(u8 taskId)
+{
+ switch (gTasks[taskId].data[0])
+ {
+ case 2:
+ if (!sFactorySelectScreen->fromSummaryScreen)
+ sub_819F2B4(&sFactorySelectScreen->unk294[1].field1, &sFactorySelectScreen->unk2A0, FALSE);
+ gTasks[taskId].data[0] = 9;
+ break;
+ case 9:
+ if (sFactorySelectScreen->unk2A0 != TRUE)
+ {
+ Select_ShowMenuOptions();
+ sFactorySelectScreen->fromSummaryScreen = FALSE;
+ gTasks[taskId].data[0] = 3;
+ }
+ break;
+ case 3:
+ if (gMain.newKeys & A_BUTTON)
+ {
+ u8 retVal;
+ PlaySE(SE_SELECT);
+ retVal = Select_RunMenuOptionFunc();
+ if (retVal == 1)
+ {
+ sFactorySelectScreen->unk2A2 = TRUE;
+ gTasks[taskId].data[0] = 1;
+ gTasks[taskId].func = Task_HandleSelectionScreenChooseMons;
+ }
+ else if (retVal == 2)
+ {
+ gTasks[taskId].data[0] = 10;
+ gTasks[taskId].func = Task_HandleSelectionScreenYesNo;
+ }
+ else if (retVal == 3)
+ {
+ gTasks[taskId].data[0] = 11;
+ gTasks[taskId].func = Task_HandleSelectionScreenChooseMons;
+ }
+ else
+ {
+ gTasks[taskId].data[0] = 6;
+ gTasks[taskId].func = Task_FromSelectScreenToSummaryScreen;
+ }
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, FALSE);
+ sub_819B958(3);
+ sFactorySelectScreen->unk2A2 = TRUE;
+ gTasks[taskId].data[0] = 1;
+ gTasks[taskId].func = Task_HandleSelectionScreenChooseMons;
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ PlaySE(SE_SELECT);
+ Select_UpdateMenuCursorPosition(-1);
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ PlaySE(SE_SELECT);
+ Select_UpdateMenuCursorPosition(1);
+ }
+ break;
+ case 12:
+ if (!gPaletteFade.active)
+ {
+ if (sFactorySelectScreen->fromSummaryScreen == TRUE)
+ {
+ gPlttBufferFaded[228] = sFactorySelectScreen->unk2A4;
+ gPlttBufferUnfaded[228] = gPlttBufferUnfaded[244];
+ }
+ sFactorySelectScreen->fromSummaryScreen = FALSE;
+ gTasks[taskId].data[0] = 3;
+ }
+ break;
+ case 13:
+ Select_ShowMenuOptions();
+ gTasks[taskId].data[0] = 12;
+ break;
+ }
+}
+
+static void Task_HandleSelectionScreenChooseMons(u8 taskId)
+{
+ if (sFactorySelectScreen->unk2A0 != TRUE)
+ {
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ if (!gPaletteFade.active)
+ {
+ gTasks[taskId].data[0] = 1;
+ sFactorySelectScreen->unk2A2 = TRUE;
+ }
+ break;
+ case 1:
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sFactorySelectScreen->unk2A2 = FALSE;
+ gTasks[taskId].data[0] = 2;
+ gTasks[taskId].func = Task_HandleSelectionScreenMenu;
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_LEFT)
+ {
+ PlaySE(SE_SELECT);
+ Select_UpdateBallCursorPosition(-1);
+ Select_PrintMonCategory();
+ Select_PrintMonSpecies();
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_RIGHT)
+ {
+ PlaySE(SE_SELECT);
+ Select_UpdateBallCursorPosition(1);
+ Select_PrintMonCategory();
+ Select_PrintMonSpecies();
+ }
+ break;
+ case 11:
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, FALSE);
+ Select_PrintSelectMonString();
+ sFactorySelectScreen->unk2A2 = TRUE;
+ gTasks[taskId].data[0] = 1;
+ }
+ break;
+ }
+ }
+}
+
+static void CreateFrontierFactorySelectableMons(u8 firstMonId)
+{
+ u8 i, j = 0;
+ u8 ivs = 0;
+ u8 level = 0;
+ u8 happiness = 0;
+ u32 otId = 0;
+ u8 battleMode = VarGet(VAR_FRONTIER_BATTLE_MODE);
+ u8 lvlMode = gSaveBlock2Ptr->frontier.lvlMode;
+ u8 var_2C = gSaveBlock2Ptr->frontier.field_DE2[battleMode][lvlMode] / 7;
+ u8 var_28 = 0;
+
+ gFacilityTrainerMons = gBattleFrontierMons;
+ if (gSaveBlock2Ptr->frontier.lvlMode != FRONTIER_LVL_50)
+ level = 100;
+ else
+ level = 50;
+
+ var_28 = sub_81A6F70(battleMode, lvlMode);
+ otId = T1_READ_32(gSaveBlock2Ptr->playerTrainerId);
+
+ for (i = 0; i < SELECTABLE_MONS_COUNT; i++)
+ {
+ u16 monSetId = gSaveBlock2Ptr->frontier.field_E70[i].monId;
+ sFactorySelectScreen->mons[i + firstMonId].monSetId = monSetId;
+ if (i < var_28)
+ ivs = sub_81A6CA8(var_2C + 1, 0);
+ else
+ ivs = sub_81A6CA8(var_2C, 0);
+ CreateMonWithEVSpreadPersonalityOTID(&sFactorySelectScreen->mons[i + firstMonId].monData,
+ gFacilityTrainerMons[monSetId].species,
+ level,
+ gFacilityTrainerMons[monSetId].nature,
+ ivs,
+ gFacilityTrainerMons[monSetId].evSpread,
+ otId);
+ happiness = 0;
+ for (j = 0; j < 4; j++)
+ SetMonMoveAvoidReturn(&sFactorySelectScreen->mons[i + firstMonId].monData, gFacilityTrainerMons[monSetId].moves[j], j);
+ SetMonData(&sFactorySelectScreen->mons[i + firstMonId].monData, MON_DATA_FRIENDSHIP, &happiness);
+ SetMonData(&sFactorySelectScreen->mons[i + firstMonId].monData, MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]);
+ }
+}
+
+static void CreateTentFactorySelectableMons(u8 firstMonId)
+{
+ u8 i, j;
+ u8 ivs = 0;
+ u8 level = 30;
+ u8 happiness = 0;
+ u32 otId = 0;
+
+ gFacilityTrainerMons = gSlateportBattleTentMons;
+ otId = T1_READ_32(gSaveBlock2Ptr->playerTrainerId);
+
+ for (i = 0; i < SELECTABLE_MONS_COUNT; i++)
+ {
+ u16 monSetId = gSaveBlock2Ptr->frontier.field_E70[i].monId;
+ sFactorySelectScreen->mons[i + firstMonId].monSetId = monSetId;
+ CreateMonWithEVSpreadPersonalityOTID(&sFactorySelectScreen->mons[i + firstMonId].monData,
+ gFacilityTrainerMons[monSetId].species,
+ level,
+ gFacilityTrainerMons[monSetId].nature,
+ ivs,
+ gFacilityTrainerMons[monSetId].evSpread,
+ otId);
+ happiness = 0;
+ for (j = 0; j < 4; j++)
+ SetMonMoveAvoidReturn(&sFactorySelectScreen->mons[i + firstMonId].monData, gFacilityTrainerMons[monSetId].moves[j], j);
+ SetMonData(&sFactorySelectScreen->mons[i + firstMonId].monData, MON_DATA_FRIENDSHIP, &happiness);
+ SetMonData(&sFactorySelectScreen->mons[i + firstMonId].monData, MON_DATA_HELD_ITEM, &gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId]);
+ }
+}
+
+static void Select_CopyMonsToPlayerParty(void)
+{
+ u8 i, j;
+
+ for (i = 0; i < 3; i++)
+ {
+ for (j = 0; j < SELECTABLE_MONS_COUNT; j++)
+ {
+ if (sFactorySelectScreen->mons[j].selectedId == i + 1)
+ {
+ gPlayerParty[i] = sFactorySelectScreen->mons[j].monData;
+ gSaveBlock2Ptr->frontier.field_E70[i].monId = sFactorySelectScreen->mons[j].monSetId;
+ gSaveBlock2Ptr->frontier.field_E70[i].personality = GetMonData(&gPlayerParty[i].box, MON_DATA_PERSONALITY, NULL);
+ gSaveBlock2Ptr->frontier.field_E70[i].abilityBit = GetBoxMonData(&gPlayerParty[i].box, MON_DATA_ALT_ABILITY, NULL);
+ gSaveBlock2Ptr->frontier.field_E70[i].ivs = GetBoxMonData(&gPlayerParty[i].box, MON_DATA_ATK_IV, NULL);
+ break;
+ }
+ }
+ }
+ CalculatePlayerPartyCount();
+}
+
+static void Select_ShowMenuOptions(void)
+{
+ if (!sFactorySelectScreen->fromSummaryScreen)
+ sFactorySelectScreen->menuCursorPos = 0;
+
+ gSprites[sFactorySelectScreen->menuCursor1SpriteId].pos1.x = 176;
+ gSprites[sFactorySelectScreen->menuCursor1SpriteId].pos1.y = (sFactorySelectScreen->menuCursorPos * 16) + 112;
+ gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.x = 208;
+ gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.y = (sFactorySelectScreen->menuCursorPos * 16) + 112;
+
+ gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = 0;
+ gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = 0;
+
+ Select_PrintMenuOptions();
+}
+
+static void Select_ShowYesNoOptions(void)
+{
+ sFactorySelectScreen->yesNoCursorPos = 0;
+
+ gSprites[sFactorySelectScreen->menuCursor1SpriteId].pos1.x = 176;
+ gSprites[sFactorySelectScreen->menuCursor1SpriteId].pos1.y = 112;
+ gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.x = 208;
+ gSprites[sFactorySelectScreen->menuCursor2SpriteId].pos1.y = 112;
+
+ gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = 0;
+ gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = 0;
+
+ Select_PrintYesNoOptions();
+}
+
+static void sub_819B958(u8 windowId)
+{
+ gSprites[sFactorySelectScreen->menuCursor1SpriteId].invisible = 1;
+ gSprites[sFactorySelectScreen->menuCursor2SpriteId].invisible = 1;
+ FillWindowPixelBuffer(windowId, 0);
+ CopyWindowToVram(windowId, 2);
+ ClearWindowTilemap(windowId);
+}
+
+static void Select_PrintRentalPkmnString(void)
+{
+ FillWindowPixelBuffer(0, 0);
+ AddTextPrinterParameterized(0, 1, gText_RentalPkmn2, 2, 1, 0, NULL);
+ CopyWindowToVram(0, 3);
+}
+
+static void Select_PrintMonSpecies(void)
+{
+ u16 species;
+ u8 x;
+ u8 monId = sFactorySelectScreen->cursorPos;
+
+ FillWindowPixelBuffer(1, 0);
+ species = GetMonData(&sFactorySelectScreen->mons[monId].monData, MON_DATA_SPECIES, NULL);
+ StringCopy(gStringVar4, gSpeciesNames[species]);
+ x = GetStringRightAlignXOffset(1, gStringVar4, 86);
+ AddTextPrinterParameterized3(1, 1, x, 1, gUnknown_08610479, 0, gStringVar4);
+ CopyWindowToVram(1, 2);
+}
+
+static void Select_PrintSelectMonString(void)
+{
+ const u8 *str = NULL;
+
+ FillWindowPixelBuffer(2, 0);
+ if (sFactorySelectScreen->selectingMonsState == 1)
+ str = gText_SelectFirstPkmn;
+ else if (sFactorySelectScreen->selectingMonsState == 2)
+ str = gText_SelectSecondPkmn;
+ else if (sFactorySelectScreen->selectingMonsState == 3)
+ str = gText_SelectThirdPkmn;
+ else
+ str = gText_TheseThreePkmnOkay;
+
+ AddTextPrinterParameterized(2, 1, str, 2, 5, 0, NULL);
+ CopyWindowToVram(2, 2);
+}
+
+static void Select_PrintCantSelectSameMon(void)
+{
+ FillWindowPixelBuffer(2, 0);
+ AddTextPrinterParameterized(2, 1, gText_CantSelectSamePkmn, 2, 5, 0, NULL);
+ CopyWindowToVram(2, 2);
+}
+
+static void Select_PrintMenuOptions(void)
+{
+ u8 selectedId = sFactorySelectScreen->mons[sFactorySelectScreen->cursorPos].selectedId;
+
+ PutWindowTilemap(3);
+ FillWindowPixelBuffer(3, 0);
+ AddTextPrinterParameterized3(3, 1, 7, 1, gUnknown_08610476, 0, gText_Summary);
+ if (selectedId != 0)
+ AddTextPrinterParameterized3(3, 1, 7, 17, gUnknown_08610476, 0, gText_Deselect);
+ else
+ AddTextPrinterParameterized3(3, 1, 7, 17, gUnknown_08610476, 0, gText_Rent);
+
+ AddTextPrinterParameterized3(3, 1, 7, 33, gUnknown_08610476, 0, gText_Others2);
+ CopyWindowToVram(3, 3);
+}
+
+static void Select_PrintYesNoOptions(void)
+{
+ PutWindowTilemap(4);
+ FillWindowPixelBuffer(4, 0);
+ AddTextPrinterParameterized3(4, 1, 7, 1, gUnknown_08610476, 0, gText_Yes2);
+ AddTextPrinterParameterized3(4, 1, 7, 17, gUnknown_08610476, 0, gText_No2);
+ CopyWindowToVram(4, 3);
+}
+
+static u8 Select_RunMenuOptionFunc(void)
+{
+ gUnknown_030062E8 = sSelect_MenuOptionFuncs[sFactorySelectScreen->menuCursorPos];
+ return gUnknown_030062E8();
+}
+
+static u8 Select_OptionRentDeselect(void)
+{
+ u8 selectedId = sFactorySelectScreen->mons[sFactorySelectScreen->cursorPos].selectedId;
+ u16 monSetId = sFactorySelectScreen->mons[sFactorySelectScreen->cursorPos].monSetId;
+ if (selectedId == 0 && !Select_AreSpeciesValid(monSetId))
+ {
+ Select_PrintCantSelectSameMon();
+ sub_819B958(3);
+ return 3;
+ }
+ else
+ {
+ sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, FALSE);
+ Select_HandleMonSelectionChange();
+ Select_PrintSelectMonString();
+ sub_819B958(3);
+ if (sFactorySelectScreen->selectingMonsState > 3)
+ return 2;
+ else
+ return 1;
+ }
+}
+
+static u8 sub_819BC9C(void)
+{
+ sub_819C568();
+ Select_HandleMonSelectionChange();
+ Select_PrintSelectMonString();
+ sub_819B958(3);
+ if (sFactorySelectScreen->selectingMonsState > 3)
+ return 2;
+ else
+ return 1;
+}
+
+static u8 Select_OptionSummary(void)
+{
+ return 0;
+}
+
+static u8 Select_OptionOthers(void)
+{
+ sub_819F3F8(sFactorySelectScreen->unk294[1], &sFactorySelectScreen->unk2A0, FALSE);
+ sub_819B958(3);
+ return 1;
+}
+
+static void Select_PrintMonCategory(void)
+{
+ u16 species;
+ u8 text[30];
+ u8 x;
+ u8 monId = sFactorySelectScreen->cursorPos;
+ if (monId < SELECTABLE_MONS_COUNT)
+ {
+ PutWindowTilemap(5);
+ FillWindowPixelBuffer(5, 0);
+ species = GetMonData(&sFactorySelectScreen->mons[monId].monData, MON_DATA_SPECIES, NULL);
+ CopyMonCategoryText(SpeciesToNationalPokedexNum(species), text);
+ x = GetStringRightAlignXOffset(1, text, 0x76);
+ AddTextPrinterParameterized(5, 1, text, x, 1, 0, NULL);
+ CopyWindowToVram(5, 2);
+ }
+}
+
+void sub_819BD70(void)
+{
+ u8 monId = sFactorySelectScreen->cursorPos;
+ struct Pokemon *mon = &sFactorySelectScreen->mons[monId].monData;
+ u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL);
+ u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL);
+ u32 otId = GetMonData(mon, MON_DATA_OT_ID, NULL);
+
+ sFactorySelectScreen->unk294[1].field0 = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, 88, 32, 15, 0xFFFF);
+ gSprites[sFactorySelectScreen->unk294[1].field0].centerToCornerVecX = 0;
+ gSprites[sFactorySelectScreen->unk294[1].field0].centerToCornerVecY = 0;
+
+ sFactorySelectScreen->unk2A0 = FALSE;
+}
+
+void sub_819BE20(bool8 arg0)
+{
+ sFactorySelectScreen->unk2A0 = arg0;
+}
+
+static void Select_ShowSummaryMonSprite(void)
+{
+ struct Pokemon *mon;
+ u16 species;
+ u32 personality, otId;
+
+ sFactorySelectScreen->unk294[1].field1 = CreateSprite(&gUnknown_08610638, 120, 64, 1);
+ StartSpriteAffineAnim(&gSprites[sFactorySelectScreen->unk294[1].field1], 2);
+
+ mon = &sFactorySelectScreen->mons[sFactorySelectScreen->cursorPos].monData;
+ species = GetMonData(mon, MON_DATA_SPECIES, NULL);
+ personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL);
+ otId = GetMonData(mon, MON_DATA_OT_ID, NULL);
+
+ sFactorySelectScreen->unk294[1].field0 = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, 88, 32, 15, 0xFFFF);
+ gSprites[sFactorySelectScreen->unk294[1].field0].centerToCornerVecX = 0;
+ gSprites[sFactorySelectScreen->unk294[1].field0].centerToCornerVecY = 0;
+
+ gSprites[sFactorySelectScreen->unk294[1].field1].invisible = 1;
+}
+
+static void Select_ShowChosenMonsSprites(void)
+{
+ u8 i, j;
+
+ for (i = 0; i < 3; i++)
+ {
+ for (j = 0; j < SELECTABLE_MONS_COUNT; j++)
+ {
+ if (sFactorySelectScreen->mons[j].selectedId == i + 1)
+ {
+ struct Pokemon *mon = &sFactorySelectScreen->mons[j].monData;
+ u16 species = GetMonData(mon, MON_DATA_SPECIES, NULL);
+ u32 personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL);
+ u32 otId = GetMonData(mon, MON_DATA_OT_ID, NULL);
+
+ sFactorySelectScreen->unk294[i].field0 = CreateMonPicSprite_HandleDeoxys(species, otId, personality, TRUE, (i * 72) + 16, 32, i + 13, 0xFFFF);
+ gSprites[sFactorySelectScreen->unk294[i].field0].centerToCornerVecX = 0;
+ gSprites[sFactorySelectScreen->unk294[i].field0].centerToCornerVecY = 0;
+ break;
+ }
+ }
+ }
+ sFactorySelectScreen->unk2A0 = FALSE;
+}
+
+static void sub_819C040(struct Sprite *sprite)
+{
+ u8 taskId;
+
+ if (sprite->affineAnimEnded
+ && gSprites[sFactorySelectScreen->unk294[0].field1].affineAnimEnded
+ && gSprites[sFactorySelectScreen->unk294[2].field1].affineAnimEnded)
+ {
+ sprite->invisible = 1;
+ gSprites[sFactorySelectScreen->unk294[0].field1].invisible = 1;
+ gSprites[sFactorySelectScreen->unk294[2].field1].invisible = 1;
+
+ taskId = CreateTask(sub_819C1D0, 1);
+ gTasks[taskId].func(taskId);
+
+ sprite->callback = SpriteCallbackDummy;
+ }
+}
+
+static void sub_819C100(struct Sprite *sprite)
+{
+ if (sprite->affineAnimEnded
+ && gSprites[sFactorySelectScreen->unk294[0].field1].affineAnimEnded
+ && gSprites[sFactorySelectScreen->unk294[2].field1].affineAnimEnded)
+ {
+ FreeOamMatrix(sprite->oam.matrixNum);
+ FreeOamMatrix(gSprites[sFactorySelectScreen->unk294[0].field1].oam.matrixNum);
+ FreeOamMatrix(gSprites[sFactorySelectScreen->unk294[2].field1].oam.matrixNum);
+
+ sFactorySelectScreen->unk2A0 = FALSE;
+
+ DestroySprite(&gSprites[sFactorySelectScreen->unk294[0].field1]);
+ DestroySprite(&gSprites[sFactorySelectScreen->unk294[2].field1]);
+ DestroySprite(sprite);
+ }
+}
+
+static void sub_819C1D0(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+ switch (task->data[0])
+ {
+ case 0:
+ task->data[3] = 16;
+ task->data[24] = 224; // BUG: writing outside the array's bounds.
+ task->data[5] = 64;
+ task->data[8] = 65;
+ SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON);
+ SetGpuReg(REG_OFFSET_WIN0H, WINHV_COORDS(task->data[3], task->data[24]));
+ SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(task->data[5], task->data[8]));
+ SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ);
+ SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_CLR | WINOUT_WIN01_OBJ);
+ break;
+ case 1:
+ ShowBg(3);
+ SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_OBJ);
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4));
+ break;
+ case 2:
+ task->data[5] -= 4;
+ task->data[8] += 4;
+ if (task->data[5] <= 32 || task->data[8] >= 96)
+ {
+ task->data[5] = 32;
+ task->data[8] = 96;
+ ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON);
+ }
+ SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(task->data[5], task->data[8]));
+ if (task->data[5] != 32)
+ return;
+ break;
+ default:
+ DestroyTask(taskId);
+ Select_ShowChosenMonsSprites();
+ return;
+ }
+ task->data[0]++;
+}
+
+static void sub_819C2D4(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+ switch (task->data[0])
+ {
+ default:
+ HideBg(3);
+ gSprites[sFactorySelectScreen->unk294[1].field1].invisible = 0;
+ gSprites[sFactorySelectScreen->unk294[1].field1].callback = sub_819C100;
+ gSprites[sFactorySelectScreen->unk294[0].field1].invisible = 0;
+ gSprites[sFactorySelectScreen->unk294[0].field1].callback = SpriteCallbackDummy;
+ gSprites[sFactorySelectScreen->unk294[2].field1].invisible = 0;
+ gSprites[sFactorySelectScreen->unk294[2].field1].callback = SpriteCallbackDummy;
+ StartSpriteAffineAnim(&gSprites[sFactorySelectScreen->unk294[1].field1], 1);
+ StartSpriteAffineAnim(&gSprites[sFactorySelectScreen->unk294[0].field1], 1);
+ StartSpriteAffineAnim(&gSprites[sFactorySelectScreen->unk294[2].field1], 1);
+ ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON);
+ DestroyTask(taskId);
+ break;
+ case 0:
+ task->data[3] = 16;
+ task->data[24] = 224; // BUG: writing outside the array's bounds.
+ task->data[5] = 32;
+ task->data[8] = 96;
+ SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON);
+ SetGpuReg(REG_OFFSET_WIN0H, WINHV_COORDS(task->data[3], task->data[24]));
+ SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(task->data[5], task->data[8]));
+ SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ);
+ SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_CLR | WINOUT_WIN01_OBJ);
+ task->data[0]++;
+ break;
+ case 1:
+ task->data[5] += 4;
+ task->data[8] -= 4;
+ if (task->data[5] >= 64 || task->data[8] <= 65)
+ {
+ task->data[5] = 64;
+ task->data[8] = 65;
+ }
+ SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(task->data[5], task->data[8]));
+ if (task->data[5] == 64)
+ task->data[0]++;
+ break;
+ }
+}
+
+static void sub_819C4B4(void)
+{
+ sFactorySelectScreen->unk294[1].field1 = CreateSprite(&gUnknown_08610638, 120, 64, 1);
+ sFactorySelectScreen->unk294[0].field1 = CreateSprite(&gUnknown_08610638, 44, 64, 1);
+ sFactorySelectScreen->unk294[2].field1 = CreateSprite(&gUnknown_08610638, 196, 64, 1);
+
+ gSprites[sFactorySelectScreen->unk294[1].field1].callback = sub_819C040;
+ gSprites[sFactorySelectScreen->unk294[0].field1].callback = SpriteCallbackDummy;
+ gSprites[sFactorySelectScreen->unk294[2].field1].callback = SpriteCallbackDummy;
+
+ sFactorySelectScreen->unk2A0 = TRUE;
+}
+
+static void sub_819C568(void)
+{
+ u8 taskId;
+
+ FreeAndDestroyMonPicSprite(sFactorySelectScreen->unk294[0].field0);
+ FreeAndDestroyMonPicSprite(sFactorySelectScreen->unk294[1].field0);
+ FreeAndDestroyMonPicSprite(sFactorySelectScreen->unk294[2].field0);
+
+ taskId = CreateTask(sub_819C2D4, 1);
+ gTasks[taskId].func(taskId);
+
+ sFactorySelectScreen->unk2A0 = TRUE;
+}
+
+static void Select_SetWinRegs(s16 mWin0H, s16 nWin0H, s16 mWin0V, s16 nWin0V)
+{
+ SetGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON);
+ SetGpuReg(REG_OFFSET_WIN0H, WINHV_COORDS(mWin0H, nWin0H));
+ SetGpuReg(REG_OFFSET_WIN0V, WINHV_COORDS(mWin0V, nWin0V));
+ SetGpuReg(REG_OFFSET_WININ, WININ_WIN0_BG_ALL | WININ_WIN0_CLR | WININ_WIN0_OBJ);
+ SetGpuReg(REG_OFFSET_WINOUT, WINOUT_WIN01_BG0 | WINOUT_WIN01_BG1 | WINOUT_WIN01_BG2 | WINOUT_WIN01_CLR | WINOUT_WIN01_OBJ);
+}
+
+static bool32 Select_AreSpeciesValid(u16 monSetId)
+{
+ u8 i, j;
+ u32 species = gFacilityTrainerMons[monSetId].species;
+ u8 selectState = sFactorySelectScreen->selectingMonsState;
+
+ for (i = 1; i < selectState; i++)
+ {
+ for (j = 0; j < SELECTABLE_MONS_COUNT; j++)
+ {
+ if (sFactorySelectScreen->mons[j].selectedId == i)
+ {
+ if (gFacilityTrainerMons[sFactorySelectScreen->mons[j].monSetId].species == species)
+ return FALSE;
+
+ break;
+ }
+ }
+ }
+
+ return TRUE;
+}
+
+static void Task_SelectFadeSpeciesName(u8 taskId)
+{
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ sFactorySelectScreen->unk2A7 = 0;
+ sFactorySelectScreen->unk2A8 = 0;
+ sFactorySelectScreen->unk2A6 = TRUE;
+ gTasks[taskId].data[0] = 1;
+ break;
+ case 1:
+ if (sFactorySelectScreen->unk2A2)
+ {
+ if (sFactorySelectScreen->unk2A9)
+ {
+ gTasks[taskId].data[0] = 2;
+ }
+ else
+ {
+ sFactorySelectScreen->unk2A7++;
+ if (sFactorySelectScreen->unk2A7 > 6)
+ {
+ sFactorySelectScreen->unk2A7 = 0;
+ if (!sFactorySelectScreen->unk2A6)
+ sFactorySelectScreen->unk2A8--;
+ else
+ sFactorySelectScreen->unk2A8++;
+ }
+ BlendPalettes(0x4000, sFactorySelectScreen->unk2A8, 0);
+ if (sFactorySelectScreen->unk2A8 > 5)
+ {
+ sFactorySelectScreen->unk2A6 = FALSE;
+ }
+ else if (sFactorySelectScreen->unk2A8 == 0)
+ {
+ gTasks[taskId].data[0] = 2;
+ sFactorySelectScreen->unk2A6 = TRUE;
+ }
+ }
+ }
+ break;
+ case 2:
+ if (sFactorySelectScreen->unk2A9 > 14)
+ {
+ sFactorySelectScreen->unk2A9 = 0;
+ gTasks[taskId].data[0] = 1;
+ }
+ else
+ {
+ sFactorySelectScreen->unk2A9++;
+ }
+ break;
+ }
+}
+
+// Swap Screen's section begins here.
+
+void Swap_CB2(void)
+{
+ AnimateSprites();
+ BuildOamBuffer();
+ RunTextPrinters();
+ UpdatePaletteFade();
+ RunTasks();
+}
+
+void Swap_VblankCb(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+}
+
+void CopySwappedMonData(void)
+{
+ u8 happiness;
+
+ gPlayerParty[sFactorySwapScreen->playerMonId] = gEnemyParty[sFactorySwapScreen->enemyMonId];
+ happiness = 0;
+ SetMonData(&gPlayerParty[sFactorySwapScreen->playerMonId], MON_DATA_FRIENDSHIP, &happiness);
+ gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->playerMonId].monId = gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->enemyMonId + 3].monId;
+ gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->playerMonId].ivs = gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->enemyMonId + 3].ivs;
+ gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->playerMonId].personality = GetMonData(&gEnemyParty[sFactorySwapScreen->enemyMonId], MON_DATA_PERSONALITY, NULL);
+ gSaveBlock2Ptr->frontier.field_E70[sFactorySwapScreen->playerMonId].abilityBit = GetBoxMonData(&gEnemyParty[sFactorySwapScreen->enemyMonId].box, MON_DATA_ALT_ABILITY, NULL);
+}
+
+void Task_FromSwapScreenToSummaryScreen(u8 taskId)
+{
+ switch (gTasks[taskId].data[0])
+ {
+ case 6:
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
+ gTasks[taskId].data[0] = 7;
+ break;
+ case 7:
+ if (!gPaletteFade.active)
+ {
+ DestroyTask(sFactorySwapScreen->fadeSpeciesNameTaskId);
+ sub_819F444(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30);
+ Swap_DestroyAllSprites();
+ FREE_AND_SET_NULL(gUnknown_0203CE40);
+ FREE_AND_SET_NULL(gUnknown_0203CE44);
+ FREE_AND_SET_NULL(gUnknown_0203CE48);
+ FREE_AND_SET_NULL(gUnknown_0203CE4C);
+ FreeAllWindowBuffers();
+ gTasks[taskId].data[0] = 8;
+ }
+ break;
+ case 8:
+ DestroyTask(taskId);
+ sFactorySwapScreen->fromSummaryScreen = TRUE;
+ sFactorySwapScreen->unk24 = gPlttBufferUnfaded[244];
+ ShowPokemonSummaryScreen(0, gPlayerParty, sFactorySwapScreen->cursorPos, 3 - 1, CB2_InitSwapScreen);
+ break;
+ }
+}
+
+void Task_CloseSwapScreen(u8 taskId)
+{
+ if (sFactorySwapScreen->unk30 != TRUE)
+ {
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ if (sFactorySwapScreen->monSwapped == TRUE)
+ {
+ gTasks[taskId].data[0]++;
+ gSpecialVar_Result = 0;
+ }
+ else
+ {
+ gTasks[taskId].data[0] = 2;
+ gSpecialVar_Result = 1;
+ }
+ break;
+ case 1:
+ if (sFactorySwapScreen->monSwapped == TRUE)
+ {
+ sFactorySwapScreen->enemyMonId = sFactorySwapScreen->cursorPos;
+ CopySwappedMonData();
+ }
+ gTasks[taskId].data[0]++;
+ break;
+ case 2:
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 0x10, 0);
+ gTasks[taskId].data[0]++;
+ break;
+ case 3:
+ if (!UpdatePaletteFade())
+ {
+ DestroyTask(sFactorySwapScreen->fadeSpeciesNameTaskId);
+ Swap_DestroyAllSprites();
+ FREE_AND_SET_NULL(gUnknown_0203CE40);
+ FREE_AND_SET_NULL(gUnknown_0203CE44);
+ FREE_AND_SET_NULL(gUnknown_0203CE48);
+ FREE_AND_SET_NULL(gUnknown_0203CE4C);
+ FREE_AND_SET_NULL(sFactorySwapScreen);
+ FreeAllWindowBuffers();
+ SetMainCallback2(CB2_ReturnToFieldContinueScript);
+ DestroyTask(taskId);
+ }
+ break;
+ }
+ }
+}
+
+void Task_HandleSwapScreenYesNo(u8 taskId)
+{
+ u16 loPtr, hiPtr;
+
+ if (sFactorySwapScreen->unk30 != TRUE)
+ {
+ switch (gTasks[taskId].data[0])
+ {
+ case 4:
+ Swap_ShowYesNoOptions();
+ gTasks[taskId].data[0] = 5;
+ break;
+ case 5:
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ if (sFactorySwapScreen->yesNoCursorPos == 0)
+ {
+ gTasks[taskId].data[1] = 1;
+ hiPtr = gTasks[taskId].data[6];
+ loPtr = gTasks[taskId].data[7];
+ gTasks[taskId].func = (void*)((hiPtr << 16) | loPtr);
+ }
+ else
+ {
+ gTasks[taskId].data[1] = 0;
+ sub_819EA64(4);
+ hiPtr = gTasks[taskId].data[6];
+ loPtr = gTasks[taskId].data[7];
+ gTasks[taskId].func = (void*)((hiPtr << 16) | loPtr);
+ }
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ gTasks[taskId].data[1] = 0;
+ sub_819EA64(4);
+ hiPtr = gTasks[taskId].data[6];
+ loPtr = gTasks[taskId].data[7];
+ gTasks[taskId].func = (void*)((hiPtr << 16) | loPtr);
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ PlaySE(SE_SELECT);
+ Swap_UpdateYesNoCursorPosition(-1);
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ PlaySE(SE_SELECT);
+ Swap_UpdateYesNoCursorPosition(1);
+ }
+ break;
+ }
+ }
+}
+
+void sub_819CBDC(u8 taskId)
+{
+ if (gTasks[taskId].data[1] == 1)
+ {
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].func = Task_CloseSwapScreen;
+ }
+ else
+ {
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[6] = (u32)(Task_HandleSwapScreenChooseMons) >> 16;
+ gTasks[taskId].data[7] = (u32)(Task_HandleSwapScreenChooseMons);
+ gTasks[taskId].data[5] = 1;
+ gTasks[taskId].func = sub_819D770;
+ }
+}
+
+void sub_819CC24(u8 taskId)
+{
+ if (gTasks[taskId].data[0] == 0)
+ {
+ Swap_PrintOnInfoWindow(gText_QuitSwapping);
+ sFactorySwapScreen->monSwapped = FALSE;
+ gTasks[taskId].data[0] = 4;
+ gTasks[taskId].data[6] = (u32)(sub_819CBDC) >> 16;
+ gTasks[taskId].data[7] = (u32)(sub_819CBDC);
+ gTasks[taskId].func = Task_HandleSwapScreenYesNo;
+ }
+}
+
+void sub_819CC74(u8 taskId)
+{
+ sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, TRUE);
+ if (gTasks[taskId].data[1] == 1)
+ {
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].func = Task_CloseSwapScreen;
+ }
+ else
+ {
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[6] = (u32)(Task_HandleSwapScreenChooseMons) >> 16;
+ gTasks[taskId].data[7] = (u32)(Task_HandleSwapScreenChooseMons);
+ gTasks[taskId].data[5] = 1;
+ gTasks[taskId].func = sub_819D770;
+ }
+}
+
+void sub_819CCD4(u8 taskId)
+{
+ if (gTasks[taskId].data[0] == 0)
+ {
+ sub_819F2B4(&sFactorySwapScreen->unk2C.field1, &sFactorySwapScreen->unk30, TRUE);
+ Swap_PrintOnInfoWindow(gText_AcceptThisPkmn);
+ sFactorySwapScreen->monSwapped = TRUE;
+ gTasks[taskId].data[0] = 4;
+ gTasks[taskId].data[6] = (u32)(sub_819CC74) >> 16;
+ gTasks[taskId].data[7] = (u32)(sub_819CC74);
+ gTasks[taskId].func = Task_HandleSwapScreenYesNo;
+ }
+}
+
+void Task_HandleSwapScreenMenu(u8 taskId)
+{
+ switch (gTasks[taskId].data[0])
+ {
+ case 2:
+ if (!sFactorySwapScreen->fromSummaryScreen)
+ sub_819F2B4(&sFactorySwapScreen->unk2C.field1, &sFactorySwapScreen->unk30, TRUE);
+ gTasks[taskId].data[0] = 9;
+ break;
+ case 9:
+ if (sFactorySwapScreen->unk30 != TRUE)
+ {
+ Swap_ShowMenuOptions();
+ gTasks[taskId].data[0] = 3;
+ }
+ break;
+ case 3:
+ if (sFactorySwapScreen->unk30 != TRUE)
+ {
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ Swap_RunMenuOptionFunc(taskId);
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, TRUE);
+ sub_819EA64(3);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[6] = (u32)(Task_HandleSwapScreenChooseMons) >> 16;
+ gTasks[taskId].data[7] = (u32)(Task_HandleSwapScreenChooseMons);
+ gTasks[taskId].data[5] = 1;
+ gTasks[taskId].func = sub_819D770;
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ Swap_UpdateMenuCursorPosition(-1);
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ Swap_UpdateMenuCursorPosition(1);
+ }
+ }
+ break;
+ }
+}
+
+void Task_HandleSwapScreenChooseMons(u8 taskId)
+{
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ if (!gPaletteFade.active)
+ {
+ sFactorySwapScreen->unk22 = 1;
+ gTasks[taskId].data[0] = 1;
+ }
+ break;
+ case 1:
+ if (gMain.newKeys & A_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sFactorySwapScreen->unk22 = 0;
+ Swap_PrintMonSpecies2();
+ sub_819EAC0();
+ Swap_RunActionFunc(taskId);
+ }
+ else if (gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sFactorySwapScreen->unk22 = 0;
+ Swap_PrintMonSpecies2();
+ sub_819EAC0();
+ gTasks[taskId].data[6] = (u32)(sub_819CC24) >> 16;
+ gTasks[taskId].data[7] = (u32)(sub_819CC24);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[5] = 0;
+ gTasks[taskId].func = sub_819D588;
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_LEFT)
+ {
+ Swap_UpdateBallCursorPosition(-1);
+ Swap_PrintMonCategory();
+ Swap_PrintMonSpecies();
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_RIGHT)
+ {
+ Swap_UpdateBallCursorPosition(1);
+ Swap_PrintMonCategory();
+ Swap_PrintMonSpecies();
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
+ {
+ Swap_UpdateActionCursorPosition(1);
+ Swap_PrintMonCategory();
+ Swap_PrintMonSpecies();
+ }
+ else if (gMain.newAndRepeatedKeys & DPAD_UP)
+ {
+ Swap_UpdateActionCursorPosition(-1);
+ Swap_PrintMonCategory();
+ Swap_PrintMonSpecies();
+ }
+ break;
+ }
+}
+
+void Task_SwapFadeSpeciesName(u8 taskId)
+{
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ sFactorySwapScreen->unk27 = 0;
+ sFactorySwapScreen->unk28 = 0;
+ sFactorySwapScreen->unk26 = TRUE;
+ gTasks[taskId].data[0] = 1;
+ break;
+ case 1:
+ if (sFactorySwapScreen->unk22)
+ {
+ if (sFactorySwapScreen->unk29)
+ {
+ gTasks[taskId].data[0] = 2;
+ }
+ else
+ {
+ sFactorySwapScreen->unk27++;
+ if (sFactorySwapScreen->unk27 > 6)
+ {
+ sFactorySwapScreen->unk27 = 0;
+ if (!sFactorySwapScreen->unk26)
+ sFactorySwapScreen->unk28--;
+ else
+ sFactorySwapScreen->unk28++;
+ }
+ BlendPalettes(0x4000, sFactorySwapScreen->unk28, 0);
+ if (sFactorySwapScreen->unk28 > 5)
+ {
+ sFactorySwapScreen->unk26 = FALSE;
+ }
+ else if (sFactorySwapScreen->unk28 == 0)
+ {
+ gTasks[taskId].data[0] = 2;
+ sFactorySwapScreen->unk26 = TRUE;
+ }
+ }
+ }
+ break;
+ case 2:
+ if (sFactorySwapScreen->unk29 > 14)
+ {
+ sFactorySwapScreen->unk29 = 0;
+ gTasks[taskId].data[0] = 1;
+ }
+ else
+ {
+ sFactorySwapScreen->unk29++;
+ }
+ break;
+ }
+}
+
+void Task_SwapFadeSpeciesName2(u8 taskId)
+{
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ sFactorySwapScreen->unk27 = 0;
+ gTasks[taskId].data[4] = 0;
+ gTasks[taskId].data[0]++;
+ break;
+ case 1:
+ LoadPalette(&gPlttBufferUnfaded[0xF0], 0xE0, 0xA);
+ gTasks[taskId].data[0]++;
+ break;
+ case 2:
+ if (sFactorySwapScreen->unk28 > 15)
+ {
+ gTasks[taskId].data[4] = 1;
+ gTasks[taskId].data[0]++;
+ }
+ sFactorySwapScreen->unk27++;
+ if (sFactorySwapScreen->unk27 > 3)
+ {
+ sFactorySwapScreen->unk27 = 0;
+ gPlttBufferUnfaded[244] = gPlttBufferFaded[228];
+ sFactorySwapScreen->unk28++;
+ }
+ BlendPalettes(0x4000, sFactorySwapScreen->unk28, 0);
+ break;
+ }
+}
+
+void sub_819D12C(u8 taskId)
+{
+ s8 i;
+ u8 var_2C;
+ bool8 r7;
+
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].data[2] = 0;
+ gTasks[taskId].data[3] = 0;
+ gTasks[taskId].data[0] = 1;
+ break;
+ case 1:
+ var_2C = 0;
+ for (i = 2; i >= 0; i--)
+ {
+ if (i != 2)
+ {
+ u8 posX = var_2C - gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x;
+ if (posX == 16 || gTasks[taskId].data[i + 2] == 1)
+ {
+ var_2C = gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x;
+ gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x += 10;
+ }
+ else if (posX > 16)
+ {
+ gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x = gSprites[sFactorySwapScreen->ballSpriteIds[i + 1]].pos1.x - 48;
+ }
+ }
+ else
+ {
+ var_2C = gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x;
+ gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x += 10;
+ }
+
+ if (gTasks[taskId].data[i + 1] == 1)
+ {
+ if (gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x > (i * 48) + 72)
+ {
+ gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x = (i * 48) + 72;
+ r7 = TRUE;
+ }
+ else if (gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x == (i * 48) + 72)
+ {
+ r7 = TRUE;
+ }
+ else
+ {
+ r7 = FALSE;
+ }
+ }
+ else
+ {
+ r7 = FALSE;
+ }
+
+ if (gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x - 16 > 240)
+ {
+ var_2C = gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x;
+ gSprites[sFactorySwapScreen->ballSpriteIds[i]].pos1.x = -16;
+ if (sFactorySwapScreen->inEnemyScreen == TRUE)
+ gSprites[sFactorySwapScreen->ballSpriteIds[i]].oam.paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_SELECTED);
+ else
+ gSprites[sFactorySwapScreen->ballSpriteIds[i]].oam.paletteNum = IndexOfSpritePaletteTag(TAG_PAL_BALL_GREY);
+
+ gTasks[taskId].data[i + 1] = 1;
+ }
+ }
+ if (r7 == TRUE)
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+void sub_819D324(u8 taskId)
+{
+ u8 i, j;
+ s32 posX = 0;
+ s8 r4 = gTasks[taskId].data[3];
+ bool8 r1;
+ s16 currPosX;
+ u8 taskId2;
+
+ if (gTasks[taskId].data[2] == 1)
+ r4 *= -1;
+
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ currPosX = gSprites[sFactorySwapScreen->unk8[0][0]].pos1.x;
+ if (!gTasks[taskId].data[2])
+ {
+ if (currPosX + r4 < 240)
+ {
+ r1 = TRUE;
+ }
+ else
+ {
+ r1 = FALSE;
+ posX = 240;
+ }
+ }
+ else
+ {
+ if (currPosX + r4 > 160)
+ {
+ r1 = TRUE;
+ }
+ else
+ {
+ r1 = FALSE;
+ posX = 160;
+ }
+ }
+
+ if (r1 == TRUE)
+ {
+ for (i = 0; i < 3; i++)
+ {
+ for (j = 0; j < 2; j++)
+ gSprites[sFactorySwapScreen->unk8[j][i]].pos1.x += r4;
+ }
+ }
+ else
+ {
+ for (j = 0; j < 2; j++)
+ {
+ gSprites[sFactorySwapScreen->unk8[j][0]].pos1.x = posX;
+ gSprites[sFactorySwapScreen->unk8[j][1]].pos1.x = posX + 16;
+ gSprites[sFactorySwapScreen->unk8[j][2]].pos1.x = posX + 48;
+ }
+ taskId2 = gTasks[taskId].data[1];
+ gTasks[taskId2].data[3] = 1;
+ DestroyTask(taskId);
+ }
+ break;
+ case 1:
+ currPosX = gSprites[sFactorySwapScreen->unkE[0][0]].pos1.x;
+ if (!gTasks[taskId].data[2])
+ {
+ if (currPosX + r4 < 240)
+ {
+ r1 = TRUE;
+ }
+ else
+ {
+ r1 = FALSE;
+ posX = 240;
+ }
+ }
+ else
+ {
+ if (currPosX + r4 > 192)
+ {
+ r1 = TRUE;
+ }
+ else
+ {
+ r1 = FALSE;
+ posX = 192;
+ }
+ }
+
+ if (r1 == TRUE)
+ {
+ for (i = 0; i < 2; i++)
+ {
+ for (j = 0; j < 2; j++)
+ gSprites[sFactorySwapScreen->unkE[j][i]].pos1.x += r4;
+ }
+ }
+ else
+ {
+ for (j = 0; j < 2; j++)
+ {
+ gSprites[sFactorySwapScreen->unkE[j][0]].pos1.x = posX;
+ gSprites[sFactorySwapScreen->unkE[j][1]].pos1.x = posX + 16;
+ }
+ taskId2 = gTasks[taskId].data[1];
+ gTasks[taskId2].data[4] = 1;
+ DestroyTask(taskId);
+ }
+ break;
+ }
+}
+
+void sub_819D588(u8 taskId)
+{
+ u8 anotherTaskId;
+ u16 loPtr, hiPtr;
+
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ LoadPalette(gUnknown_08610918, 0xE0, 0xA);
+ Swap_PrintActionStrings();
+ PutWindowTilemap(5);
+ gTasks[taskId].data[0]++;
+ break;
+ case 1:
+ sub_819EA64(3);
+ gTasks[taskId].data[0]++;
+ break;
+ case 2:
+ BeginNormalPaletteFade(0x4000, 0, 0, 0x10, gUnknown_0860F13C[37]);
+ gTasks[taskId].data[0]++;
+ break;
+ case 3:
+ if (!gPaletteFade.active)
+ {
+ FillWindowPixelBuffer(5, 0);
+ CopyWindowToVram(5, 2);
+ if (sFactorySwapScreen->inEnemyScreen == TRUE)
+ {
+ anotherTaskId = CreateTask(sub_819D324, 0);
+ gTasks[taskId].data[3] = 0;
+ gTasks[anotherTaskId].data[1] = taskId;
+ gTasks[anotherTaskId].data[0] = 0;
+ gTasks[anotherTaskId].data[2] = 0;
+ gTasks[anotherTaskId].data[3] = 6;
+ gTasks[taskId].data[2] = 5;
+ gTasks[taskId].data[0]++;
+ }
+ else
+ {
+ anotherTaskId = CreateTask(sub_819D324, 0);
+ gTasks[taskId].data[3] = 1;
+ gTasks[taskId].data[4] = 0;
+ gTasks[anotherTaskId].data[1] = taskId;
+ gTasks[anotherTaskId].data[0] = 1;
+ gTasks[anotherTaskId].data[2] = 0;
+ gTasks[anotherTaskId].data[3] = 6;
+ gTasks[taskId].data[0] += 2;
+ }
+ }
+ break;
+ case 4:
+ if (gTasks[taskId].data[2] == 0)
+ {
+ anotherTaskId = CreateTask(sub_819D324, 0);
+ gTasks[taskId].data[4] = 0;
+ gTasks[anotherTaskId].data[1] = taskId;
+ gTasks[anotherTaskId].data[0] = 1;
+ gTasks[anotherTaskId].data[2] = 0;
+ gTasks[anotherTaskId].data[3] = 6;
+ gTasks[taskId].data[0]++;
+ }
+ else
+ {
+ gTasks[taskId].data[2]--;
+ }
+ break;
+ case 5:
+ if (gTasks[taskId].data[3] == 1 && gTasks[taskId].data[4] == 1)
+ {
+ gTasks[taskId].data[0] = gTasks[taskId].data[5];
+ loPtr = gTasks[taskId].data[6];
+ hiPtr = gTasks[taskId].data[7];
+ gTasks[taskId].func = (void *)((loPtr << 0x10) | (hiPtr));
+ }
+ break;
+ }
+}
+
+void sub_819D770(u8 taskId)
+{
+ u8 anotherTaskId;
+ u16 loPtr, hiPtr;
+ if (sFactorySwapScreen->unk30 == TRUE)
+ return;
+
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ if (sFactorySwapScreen->inEnemyScreen == TRUE)
+ {
+ anotherTaskId = CreateTask(sub_819D324, 0);
+ gTasks[taskId].data[3] = 0;
+ gTasks[anotherTaskId].data[1] = taskId;
+ gTasks[anotherTaskId].data[0] = 0;
+ gTasks[anotherTaskId].data[2] = 1;
+ gTasks[anotherTaskId].data[3] = 6;
+ gTasks[taskId].data[2] = 10;
+ gTasks[taskId].data[0]++;
+ }
+ else
+ {
+ anotherTaskId = CreateTask(sub_819D324, 0);
+ gTasks[taskId].data[3] = 1;
+ gTasks[taskId].data[4] = 0;
+ gTasks[anotherTaskId].data[1] = taskId;
+ gTasks[anotherTaskId].data[0] = 1;
+ gTasks[anotherTaskId].data[2] = 1;
+ gTasks[anotherTaskId].data[3] = 6;
+ gTasks[taskId].data[0] += 2;
+ }
+ break;
+ case 1:
+ if (gTasks[taskId].data[2] == 0)
+ {
+ anotherTaskId = CreateTask(sub_819D324, 0);
+ gTasks[taskId].data[4] = 0;
+ gTasks[anotherTaskId].data[1] = taskId;
+ gTasks[anotherTaskId].data[0] = 1;
+ gTasks[anotherTaskId].data[2] = 1;
+ gTasks[anotherTaskId].data[3] = 6;
+ gTasks[taskId].data[0]++;
+ }
+ else
+ {
+ gTasks[taskId].data[2]--;
+ }
+ break;
+ case 2:
+ if (gTasks[taskId].data[3] == 1 && gTasks[taskId].data[4] == 1)
+ {
+ gPlttBufferFaded[226] = gUnknown_0860F13C[37];
+ Swap_PrintActionStrings();
+ PutWindowTilemap(5);
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 3:
+ BeginNormalPaletteFade(0x4000, 0, 0x10, 0, gUnknown_0860F13C[37]);
+ gTasks[taskId].data[0]++;
+ break;
+ case 4:
+ if (!gPaletteFade.active)
+ {
+ Swap_PrintOneActionString(0);
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 5:
+ Swap_PrintOneActionString(1);
+ PutWindowTilemap(3);
+ gTasks[taskId].data[0]++;
+ break;
+ case 6:
+ FillWindowPixelBuffer(5, 0);
+ CopyWindowToVram(5, 2);
+ gTasks[taskId].data[0]++;
+ break;
+ case 7:
+ if (!sFactorySwapScreen->inEnemyScreen)
+ Swap_PrintOnInfoWindow(gText_SelectPkmnToSwap);
+ else
+ Swap_PrintOnInfoWindow(gText_SelectPkmnToAccept);
+ if (sFactorySwapScreen->cursorPos < 3)
+ gSprites[sFactorySwapScreen->cursorSpriteId].invisible = 0;
+ Swap_PrintMonCategory();
+ gTasks[taskId].data[0]++;
+ break;
+ case 8:
+ Swap_PrintMonSpecies3();
+ sub_819EADC();
+ sFactorySwapScreen->unk22 = 1;
+ gTasks[taskId].data[0] = gTasks[taskId].data[5];
+ loPtr = gTasks[taskId].data[6];
+ hiPtr = gTasks[taskId].data[7];
+ gTasks[taskId].func = (void *)((loPtr << 0x10) | (hiPtr));
+ break;
+ }
+}
+
+void sub_819D9EC(u8 taskId)
+{
+ u8 i;
+ if (sFactorySwapScreen->unk30 == TRUE)
+ return;
+
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ Swap_PrintMonSpecies3();
+ gTasks[taskId].data[0]++;
+ break;
+ case 1:
+ sub_819EADC();
+ gSprites[sFactorySwapScreen->cursorSpriteId].invisible = 1;
+ gTasks[taskId].data[0]++;
+ break;
+ case 2:
+ CreateTask(sub_819D12C, 0);
+ gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].func = Task_SwapFadeSpeciesName2;
+ gTasks[taskId].data[0]++;
+ break;
+ case 3:
+ if (!FuncIsActiveTask(sub_819D12C) && gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].data[4] == 1)
+ {
+ sub_819EAC0();
+ if (!sFactorySwapScreen->inEnemyScreen)
+ {
+ Swap_InitActions(ACTIONS_ENEMY_SCREEN);
+ }
+ else
+ {
+ Swap_InitActions(ACTIONS_PLAYER_SCREEN);
+ for (i = 0; i < 3; i++)
+ gSprites[sFactorySwapScreen->unk8[1][i]].invisible = 1;
+ }
+ gSprites[sFactorySwapScreen->cursorSpriteId].pos1.x = gSprites[sFactorySwapScreen->ballSpriteIds[sFactorySwapScreen->cursorPos]].pos1.x;
+ gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].func = Task_SwapFadeSpeciesName;
+ sFactorySwapScreen->unk27 = 0;
+ sFactorySwapScreen->unk28 = 6;
+ sFactorySwapScreen->unk26 = FALSE;
+ gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].data[0] = 1;
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 4:
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[6] = (u32)(Task_HandleSwapScreenChooseMons) >> 0x10;
+ gTasks[taskId].data[7] = (u32)(Task_HandleSwapScreenChooseMons);
+ gTasks[taskId].data[5] = 1;
+ gTasks[taskId].func = sub_819D770;
+ break;
+ }
+}
+
+void Swap_InitStruct(void)
+{
+ if (sFactorySwapScreen == NULL)
+ {
+ sFactorySwapScreen = AllocZeroed(sizeof(*sFactorySwapScreen));
+ sFactorySwapScreen->cursorPos = 0;
+ sFactorySwapScreen->unk30 = FALSE;
+ sFactorySwapScreen->fromSummaryScreen = FALSE;
+ }
+}
+
+void sub_819DC00(void)
+{
+ sFactorySwapScreen = NULL;
+ SetMainCallback2(CB2_InitSwapScreen);
+}
+
+void CB2_InitSwapScreen(void)
+{
+ u8 taskId;
+
+ switch (gMain.state)
+ {
+ case 0:
+ SetHBlankCallback(NULL);
+ SetVBlankCallback(NULL);
+ CpuFill32(0, (void *)VRAM, VRAM_SIZE);
+ ResetBgsAndClearDma3BusyFlags(0);
+ InitBgsFromTemplates(0, gUnknown_086108B8, ARRAY_COUNT(gUnknown_086108B8));
+ InitWindows(gUnknown_086108C8);
+ DeactivateAllTextPrinters();
+ gMain.state++;
+ break;
+ case 1:
+ gUnknown_0203CE40 = Alloc(0x440);
+ gUnknown_0203CE44 = AllocZeroed(0x440);
+ gUnknown_0203CE48 = Alloc(0x800);
+ gUnknown_0203CE4C = AllocZeroed(0x800);
+ ChangeBgX(0, 0, 0);
+ ChangeBgY(0, 0, 0);
+ ChangeBgX(1, 0, 0);
+ ChangeBgY(1, 0, 0);
+ ChangeBgX(2, 0, 0);
+ ChangeBgY(2, 0, 0);
+ ChangeBgX(3, 0, 0);
+ ChangeBgY(3, 0, 0);
+ SetGpuReg(REG_OFFSET_BLDY, 0);
+ SetGpuReg(REG_OFFSET_MOSAIC, 0);
+ SetGpuReg(REG_OFFSET_WIN0H, 0);
+ SetGpuReg(REG_OFFSET_WIN0V, 0);
+ SetGpuReg(REG_OFFSET_WIN1H, 0);
+ SetGpuReg(REG_OFFSET_WIN1V, 0);
+ SetGpuReg(REG_OFFSET_WININ, 0);
+ SetGpuReg(REG_OFFSET_WINOUT, 0);
+ gMain.state++;
+ break;
+ case 2:
+ ResetPaletteFade();
+ ResetSpriteData();
+ ResetTasks();
+ FreeAllSpritePalettes();
+ ResetAllPicSprites();
+ CpuCopy16(gFrontierFactorySelectMenu_Gfx, gUnknown_0203CE40, 0x440);
+ CpuCopy16(gUnknown_0861033C, gUnknown_0203CE44, 0x60);
+ LoadBgTiles(1, gUnknown_0203CE40, 0x440, 0);
+ LoadBgTiles(3, gUnknown_0203CE44, 0x60, 0);
+ CpuCopy16(gFrontierFactorySelectMenu_Tilemap, gUnknown_0203CE48, 0x800);
+ LoadBgTilemap(1, gUnknown_0203CE48, 0x800, 0);
+ LoadPalette(gFrontierFactorySelectMenu_Pal, 0, 0x40);
+ LoadPalette(gUnknown_08610918, 0xF0, 10);
+ LoadPalette(gUnknown_08610918, 0xE0, 10);
+ LoadPalette(gUnknown_0861039C, 0x20, 4);
+ gMain.state++;
+ break;
+ case 3:
+ SetBgTilemapBuffer(3, gUnknown_0203CE4C);
+ CopyToBgTilemapBufferRect(3, gUnknown_0861023C, 11, 4, 8, 8);
+ CopyBgTilemapBufferToVram(3);
+ gMain.state++;
+ break;
+ case 4:
+ LoadSpritePalettes(gUnknown_086106B0);
+ LoadSpriteSheets(gUnknown_08610650);
+ LoadCompressedObjectPic(gUnknown_086106A0);
+ SetVBlankCallback(Swap_VblankCb);
+ gMain.state++;
+ break;
+ case 5:
+ if (sFactorySwapScreen->fromSummaryScreen == TRUE)
+ sFactorySwapScreen->cursorPos = gUnknown_0203CF20;
+ gMain.state++;
+ break;
+ case 6:
+ Swap_InitStruct();
+ Swap_InitAllSprites();
+ if (sFactorySwapScreen->fromSummaryScreen == TRUE)
+ Swap_ShowSummaryMonSprite();
+ Swap_InitActions(ACTIONS_PLAYER_SCREEN);
+ gMain.state++;
+ break;
+ case 7:
+ Swap_PrintOnInfoWindow(gText_SelectPkmnToSwap);
+ PutWindowTilemap(2);
+ gMain.state++;
+ break;
+ case 8:
+ Swap_PrintMonCategory();
+ PutWindowTilemap(8);
+ gMain.state++;
+ break;
+ case 9:
+ if (!sFactorySwapScreen->fromSummaryScreen)
+ Swap_PrintMonSpecies();
+ PutWindowTilemap(1);
+ gMain.state++;
+ break;
+ case 10:
+ Swap_PrintPkmnSwap();
+ PutWindowTilemap(0);
+ gMain.state++;
+ break;
+ case 11:
+ gMain.state++;
+ break;
+ case 12:
+ if (sFactorySwapScreen->fromSummaryScreen)
+ Swap_PrintMonSpecies2();
+ gMain.state++;
+ break;
+ case 13:
+ Swap_PrintActionStrings2();
+ PutWindowTilemap(3);
+ gMain.state++;
+ break;
+ case 14:
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, 0);
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP);
+ ShowBg(0);
+ ShowBg(1);
+ ShowBg(2);
+ if (sFactorySwapScreen->fromSummaryScreen == TRUE)
+ {
+ ShowBg(3);
+ SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG3 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_OBJ);
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4));
+ }
+ else
+ {
+ HideBg(3);
+ }
+ gMain.state++;
+ break;
+ case 15:
+ sFactorySwapScreen->fadeSpeciesNameTaskId = CreateTask(Task_SwapFadeSpeciesName, 0);
+ if (!sFactorySwapScreen->fromSummaryScreen)
+ {
+ gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].data[0] = 0;
+ taskId = CreateTask(Task_HandleSwapScreenChooseMons, 0);
+ gTasks[taskId].data[0] = 0;
+ }
+ else
+ {
+ sub_819EAF8();
+ gTasks[sFactorySwapScreen->fadeSpeciesNameTaskId].data[0] = 1;
+ sFactorySwapScreen->unk22 = FALSE;
+ taskId = CreateTask(Task_HandleSwapScreenMenu, 0);
+ gTasks[taskId].data[0] = 2;
+ }
+ SetMainCallback2(Swap_CB2);
+ break;
+ }
+}
+
+extern const struct SpriteTemplate gUnknown_08610834;
+extern const struct SpriteTemplate gUnknown_0861084C;
+extern const struct SpriteTemplate gUnknown_08610864;
+extern const struct SpriteTemplate gUnknown_0861087C;
+extern const struct SpriteTemplate gUnknown_08610894;
+
+void Swap_InitAllSprites(void)
+{
+ u8 i;
+ u8 x;
+ struct SpriteTemplate spriteTemplate;
+
+ spriteTemplate = gUnknown_08610834;
+ spriteTemplate.paletteTag = TAG_PAL_BALL_SELECTED;
+
+ for (i = 0; i < 3; i++)
+ {
+ sFactorySwapScreen->ballSpriteIds[i] = CreateSprite(&spriteTemplate, (48 * i) + 72, 64, 1);
+ gSprites[sFactorySwapScreen->ballSpriteIds[i]].data[0] = 0;
+ }
+ sFactorySwapScreen->cursorSpriteId = CreateSprite(&gUnknown_0861084C, gSprites[sFactorySwapScreen->ballSpriteIds[sFactorySwapScreen->cursorPos]].pos1.x, 88, 0);
+ sFactorySwapScreen->menuCursor1SpriteId = CreateSprite(&gUnknown_08610864, 176, 112, 0);
+ sFactorySwapScreen->menuCursor2SpriteId = CreateSprite(&gUnknown_0861087C, 176, 144, 0);
+ gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = 1;
+ gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = 1;
+ gSprites[sFactorySwapScreen->menuCursor1SpriteId].centerToCornerVecX = 0;
+ gSprites[sFactorySwapScreen->menuCursor1SpriteId].centerToCornerVecY = 0;
+ gSprites[sFactorySwapScreen->menuCursor2SpriteId].centerToCornerVecX = 0;
+ gSprites[sFactorySwapScreen->menuCursor2SpriteId].centerToCornerVecY = 0;
+
+ if (sFactorySwapScreen->fromSummaryScreen == TRUE)
+ x = 240;
+ else
+ x = 192;
+
+ spriteTemplate = gUnknown_0861084C;
+ spriteTemplate.tileTag = TAG_TILE_68;
+ sFactorySwapScreen->unk8[0][0] = CreateSprite(&spriteTemplate, 240, 120, 10);
+
+ spriteTemplate = gUnknown_08610864;
+ spriteTemplate.tileTag = TAG_TILE_69;
+ sFactorySwapScreen->unk8[0][1] = CreateSprite(&spriteTemplate, 256, 120, 10);
+ sFactorySwapScreen->unk8[0][2] = CreateSprite(&spriteTemplate, 288, 120, 10);
+
+ spriteTemplate = gUnknown_0861084C;
+ spriteTemplate.tileTag = TAG_TILE_6A;
+ sFactorySwapScreen->unk8[1][0] = CreateSprite(&spriteTemplate, 240, 120, 1);
+
+ spriteTemplate = gUnknown_08610864;
+ spriteTemplate.tileTag = TAG_TILE_6B;
+ sFactorySwapScreen->unk8[1][1] = CreateSprite(&spriteTemplate, 256, 120, 1);
+ spriteTemplate.tileTag = TAG_TILE_6C;
+ sFactorySwapScreen->unk8[1][2] = CreateSprite(&spriteTemplate, 288, 120, 1);
+
+ spriteTemplate = gUnknown_0861084C;
+ spriteTemplate.tileTag = TAG_TILE_68;
+ sFactorySwapScreen->unkE[0][0] = CreateSprite(&spriteTemplate, x, 144, 10);
+
+ spriteTemplate = gUnknown_08610864;
+ spriteTemplate.tileTag = TAG_TILE_69;
+ sFactorySwapScreen->unkE[0][1] = CreateSprite(&spriteTemplate, x + 16, 144, 10);
+
+ spriteTemplate = gUnknown_0861084C;
+ spriteTemplate.tileTag = TAG_TILE_6A;
+ sFactorySwapScreen->unkE[1][0] = CreateSprite(&spriteTemplate, x, 144, 1);
+
+ spriteTemplate = gUnknown_08610864;
+ spriteTemplate.tileTag = TAG_TILE_6C;
+ sFactorySwapScreen->unkE[1][1] = CreateSprite(&spriteTemplate, x + 16, 144, 1);
+
+ for (i = 0; i < 2; i++)
+ {
+ gSprites[sFactorySwapScreen->unk8[i][0]].centerToCornerVecX = 0;
+ gSprites[sFactorySwapScreen->unk8[i][0]].centerToCornerVecY = 0;
+ gSprites[sFactorySwapScreen->unk8[i][1]].centerToCornerVecX = 0;
+ gSprites[sFactorySwapScreen->unk8[i][1]].centerToCornerVecY = 0;
+ gSprites[sFactorySwapScreen->unk8[i][2]].centerToCornerVecX = 0;
+ gSprites[sFactorySwapScreen->unk8[i][2]].centerToCornerVecY = 0;
+ gSprites[sFactorySwapScreen->unkE[i][0]].centerToCornerVecX = 0;
+ gSprites[sFactorySwapScreen->unkE[i][0]].centerToCornerVecY = 0;
+ gSprites[sFactorySwapScreen->unkE[i][1]].centerToCornerVecX = 0;
+ gSprites[sFactorySwapScreen->unkE[i][1]].centerToCornerVecY = 0;
+
+ gSprites[sFactorySwapScreen->unk8[i][0]].invisible = 1;
+ gSprites[sFactorySwapScreen->unk8[i][1]].invisible = 1;
+ gSprites[sFactorySwapScreen->unk8[i][2]].invisible = 1;
+ gSprites[sFactorySwapScreen->unkE[i][0]].invisible = 1;
+ gSprites[sFactorySwapScreen->unkE[i][1]].invisible = 1;
+ }
+
+ gSprites[sFactorySwapScreen->unkE[0][0]].invisible = 0;
+ gSprites[sFactorySwapScreen->unkE[0][1]].invisible = 0;
+ gSprites[sFactorySwapScreen->unk8[0][0]].invisible = 0;
+ gSprites[sFactorySwapScreen->unk8[0][1]].invisible = 0;
+ gSprites[sFactorySwapScreen->unk8[0][2]].invisible = 0;
+}
+
+void Swap_DestroyAllSprites(void)
+{
+ u8 i, j;
+
+ for (i = 0; i < 3; i++)
+ DestroySprite(&gSprites[sFactorySwapScreen->ballSpriteIds[i]]);
+ DestroySprite(&gSprites[sFactorySwapScreen->cursorSpriteId]);
+ DestroySprite(&gSprites[sFactorySwapScreen->menuCursor1SpriteId]);
+ DestroySprite(&gSprites[sFactorySwapScreen->menuCursor2SpriteId]);
+ for (i = 0; i < 2; i++)
+ {
+ for (j = 0; j < 3; j++)
+ DestroySprite(&gSprites[sFactorySwapScreen->unk8[i][j]]);
+ }
+ for (i = 0; i < 2; i++)
+ {
+ for (j = 0; j < 2; j++)
+ DestroySprite(&gSprites[sFactorySwapScreen->unkE[i][j]]);
+ }
+}
+
+void Swap_HandleActionCursorChange(u8 cursorId)
+{
+ if (cursorId < 3)
+ {
+ gSprites[sFactorySwapScreen->cursorSpriteId].invisible = 0;
+ sub_819E8EC();
+ gSprites[sFactorySwapScreen->cursorSpriteId].pos1.x = gSprites[sFactorySwapScreen->ballSpriteIds[cursorId]].pos1.x;
+ }
+ else
+ {
+ gSprites[sFactorySwapScreen->cursorSpriteId].invisible = 1;
+ sub_819E838(sFactorySwapScreen->actionsData[cursorId].id);
+ }
+}
+
+void Swap_UpdateBallCursorPosition(s8 direction)
+{
+ u8 cursorPos;
+ PlaySE(SE_SELECT);
+ if (direction > 0) // Move cursor right.
+ {
+ if (sFactorySwapScreen->cursorPos + 1 != sFactorySwapScreen->actionsCount)
+ sFactorySwapScreen->cursorPos++;
+ else
+ sFactorySwapScreen->cursorPos = 0;
+ }
+ else // Move cursor left.
+ {
+ if (sFactorySwapScreen->cursorPos != 0)
+ sFactorySwapScreen->cursorPos--;
+ else
+ sFactorySwapScreen->cursorPos = sFactorySwapScreen->actionsCount - 1;
+ }
+
+ cursorPos = sFactorySwapScreen->cursorPos;
+ Swap_HandleActionCursorChange(cursorPos);
+}
+
+void Swap_UpdateActionCursorPosition(s8 direction)
+{
+ u8 cursorPos;
+ PlaySE(SE_SELECT);
+ if (direction > 0) // Move cursor down.
+ {
+ if (sFactorySwapScreen->cursorPos < 3)
+ sFactorySwapScreen->cursorPos = 3;
+ else if (sFactorySwapScreen->cursorPos + 1 != sFactorySwapScreen->actionsCount)
+ sFactorySwapScreen->cursorPos++;
+ else
+ sFactorySwapScreen->cursorPos = 0;
+ }
+ else // Move cursor up.
+ {
+ if (sFactorySwapScreen->cursorPos < 3)
+ sFactorySwapScreen->cursorPos = sFactorySwapScreen->actionsCount - 1;
+ else if (sFactorySwapScreen->cursorPos != 0)
+ sFactorySwapScreen->cursorPos--;
+ else
+ sFactorySwapScreen->cursorPos = sFactorySwapScreen->actionsCount - 1;
+ }
+
+ cursorPos = sFactorySwapScreen->cursorPos;
+ Swap_HandleActionCursorChange(cursorPos);
+}
+
+void Swap_UpdateYesNoCursorPosition(s8 direction)
+{
+ if (direction > 0) // Move cursor down.
+ {
+ if (sFactorySwapScreen->yesNoCursorPos != 1)
+ sFactorySwapScreen->yesNoCursorPos++;
+ else
+ sFactorySwapScreen->yesNoCursorPos = 0;
+ }
+ else // Move cursor up.
+ {
+ if (sFactorySwapScreen->yesNoCursorPos != 0)
+ sFactorySwapScreen->yesNoCursorPos--;
+ else
+ sFactorySwapScreen->yesNoCursorPos = 1;
+ }
+
+ gSprites[sFactorySwapScreen->menuCursor1SpriteId].pos1.y = (sFactorySwapScreen->yesNoCursorPos * 16) + 112;
+ gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.y = (sFactorySwapScreen->yesNoCursorPos * 16) + 112;
+}
+
+void Swap_UpdateMenuCursorPosition(s8 direction)
+{
+ PlaySE(SE_SELECT);
+ if (direction > 0) // Move cursor down.
+ {
+ if (sFactorySwapScreen->menuCursorPos != MENU_OPTIONS_COUNT - 1)
+ sFactorySwapScreen->menuCursorPos++;
+ else
+ sFactorySwapScreen->menuCursorPos = 0;
+ }
+ else // Move cursor up.
+ {
+ if (sFactorySwapScreen->menuCursorPos != 0)
+ sFactorySwapScreen->menuCursorPos--;
+ else
+ sFactorySwapScreen->menuCursorPos = MENU_OPTIONS_COUNT - 1;
+ }
+
+ gSprites[sFactorySwapScreen->menuCursor1SpriteId].pos1.y = (sFactorySwapScreen->menuCursorPos * 16) + 112;
+ gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.y = (sFactorySwapScreen->menuCursorPos * 16) + 112;
+}
+
+void sub_819E838(u8 arg0)
+{
+ u8 i;
+
+ for (i = 0; i < 3; i++)
+ {
+ if (arg0 == 2)
+ {
+ gSprites[sFactorySwapScreen->unk8[1][i]].invisible = 0;
+ if (i < 2)
+ gSprites[sFactorySwapScreen->unkE[1][i]].invisible = 1;
+ }
+ else if (arg0 == 3)
+ {
+ if (i < 2)
+ gSprites[sFactorySwapScreen->unkE[1][i]].invisible = 0;
+ gSprites[sFactorySwapScreen->unk8[1][i]].invisible = 1;
+ }
+ }
+}
+
+void sub_819E8EC(void)
+{
+ u8 i;
+
+ for (i = 0; i < 3; i++)
+ {
+ gSprites[sFactorySwapScreen->unk8[1][i]].invisible = 1;
+ if (i < 2)
+ gSprites[sFactorySwapScreen->unkE[1][i]].invisible = 1;
+ }
+}
+
+void Swap_ShowMenuOptions(void)
+{
+ if (sFactorySwapScreen->fromSummaryScreen == TRUE)
+ sFactorySwapScreen->fromSummaryScreen = FALSE;
+ else
+ sFactorySwapScreen->menuCursorPos = 0;
+
+ gSprites[sFactorySwapScreen->menuCursor1SpriteId].pos1.x = 176;
+ gSprites[sFactorySwapScreen->menuCursor1SpriteId].pos1.y = (sFactorySwapScreen->menuCursorPos * 16) + 112;
+ gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.x = 208;
+ gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.y = (sFactorySwapScreen->menuCursorPos * 16) + 112;
+
+ gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = 0;
+ gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = 0;
+
+ Swap_PrintMenuOptions();
+}
+
+void Swap_ShowYesNoOptions(void)
+{
+ sFactorySwapScreen->yesNoCursorPos = 0;
+
+ gSprites[sFactorySwapScreen->menuCursor1SpriteId].pos1.x = 176;
+ gSprites[sFactorySwapScreen->menuCursor1SpriteId].pos1.y = 112;
+ gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.x = 208;
+ gSprites[sFactorySwapScreen->menuCursor2SpriteId].pos1.y = 112;
+
+ gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = 0;
+ gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = 0;
+
+ Swap_PrintYesNoOptions();
+}
+
+void sub_819EA64(u8 windowId)
+{
+ gSprites[sFactorySwapScreen->menuCursor1SpriteId].invisible = 1;
+ gSprites[sFactorySwapScreen->menuCursor2SpriteId].invisible = 1;
+ FillWindowPixelBuffer(windowId, 0);
+ CopyWindowToVram(windowId, 2);
+ ClearWindowTilemap(windowId);
+}
+
+void sub_819EAC0(void)
+{
+ PutWindowTilemap(1);
+ FillWindowPixelBuffer(1, 0);
+ CopyWindowToVram(1, 2);
+}
+
+void sub_819EADC(void)
+{
+ PutWindowTilemap(7);
+ FillWindowPixelBuffer(7, 0);
+ CopyWindowToVram(7, 2);
+}
+
+void sub_819EAF8(void)
+{
+ sub_819EAC0();
+ PutWindowTilemap(5);
+ FillWindowPixelBuffer(5, 0);
+ CopyWindowToVram(5, 2);
+}
+
+void Swap_PrintPkmnSwap(void)
+{
+ FillWindowPixelBuffer(0, 0x11);
+ AddTextPrinterParameterized(0, 1, gText_PkmnSwap, 2, 1, 0, NULL);
+ CopyWindowToVram(0, 3);
+}
+
+void Swap_PrintMonSpecies(void)
+{
+ u16 species;
+ u8 x;
+
+ FillWindowPixelBuffer(1, 0);
+ if (sFactorySwapScreen->cursorPos > 2)
+ {
+ CopyWindowToVram(1, 2);
+ }
+ else
+ {
+ u8 monId = sFactorySwapScreen->cursorPos;
+ if (!sFactorySwapScreen->inEnemyScreen)
+ species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, NULL);
+ else
+ species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL);
+ StringCopy(gStringVar4, gSpeciesNames[species]);
+ x = GetStringRightAlignXOffset(1, gStringVar4, 86);
+ AddTextPrinterParameterized3(1, 1, x, 1, gUnknown_08610925, 0, gStringVar4);
+ CopyWindowToVram(1, 3);
+ }
+}
+
+void Swap_PrintOnInfoWindow(const u8 *str)
+{
+ FillWindowPixelBuffer(2, 0);
+ AddTextPrinterParameterized(2, 1, str, 2, 5, 0, NULL);
+ CopyWindowToVram(2, 2);
+}
+
+void Swap_PrintMenuOptions(void)
+{
+ PutWindowTilemap(3);
+ FillWindowPixelBuffer(3, 0);
+ AddTextPrinterParameterized3(3, 1, 15, 1, gUnknown_08610922, 0, gText_Summary2);
+ AddTextPrinterParameterized3(3, 1, 15, 17, gUnknown_08610922, 0, gText_Swap);
+ AddTextPrinterParameterized3(3, 1, 15, 33, gUnknown_08610922, 0, gText_Rechoose);
+ CopyWindowToVram(3, 3);
+}
+
+void Swap_PrintYesNoOptions(void)
+{
+ PutWindowTilemap(4);
+ FillWindowPixelBuffer(4, 0);
+ AddTextPrinterParameterized3(4, 1, 7, 1, gUnknown_08610922, 0, gText_Yes3);
+ AddTextPrinterParameterized3(4, 1, 7, 17, gUnknown_08610922, 0, gText_No3);
+ CopyWindowToVram(4, 3);
+}
+
+void Swap_PrintActionString(const u8 *str, u32 y, u32 windowId)
+{
+ s32 x = GetStringRightAlignXOffset(0, str, 0x46);
+ AddTextPrinterParameterized3(windowId, 0, x, y, gUnknown_08610922, 0, str);
+}
+
+void Swap_PrintActionStrings(void)
+{
+ FillWindowPixelBuffer(5, 0);
+ switch (sFactorySwapScreen->inEnemyScreen)
+ {
+ case TRUE:
+ Swap_PrintActionString(gText_PkmnForSwap, 0, 5);
+ case FALSE:
+ Swap_PrintActionString(gText_Cancel3, 24, 5);
+ break;
+ }
+ CopyWindowToVram(5, 3);
+}
+
+void Swap_PrintActionStrings2(void)
+{
+ FillWindowPixelBuffer(3, 0);
+ switch (sFactorySwapScreen->inEnemyScreen)
+ {
+ case TRUE:
+ Swap_PrintActionString(gText_PkmnForSwap, 8, 3);
+ case FALSE:
+ Swap_PrintActionString(gText_Cancel3, 32, 3);
+ break;
+ }
+ CopyWindowToVram(3, 3);
+}
+
+void Swap_PrintOneActionString(u8 which)
+{
+ switch (which)
+ {
+ case 0:
+ if (sFactorySwapScreen->inEnemyScreen == TRUE)
+ Swap_PrintActionString(gText_PkmnForSwap, 8, 3);
+ break;
+ case 1:
+ Swap_PrintActionString(gText_Cancel3, 32, 3);
+ break;
+ }
+ CopyWindowToVram(3, 3);
+}
+
+void Swap_PrintMonSpecies2(void)
+{
+ u16 species;
+ u8 x;
+ u16 pal[5];
+
+ CpuCopy16(gUnknown_08610918, pal, 8);
+ if (!sFactorySwapScreen->fromSummaryScreen)
+ pal[4] = gPlttBufferFaded[228];
+ else
+ pal[4] = sFactorySwapScreen->unk24;
+ LoadPalette(pal, 0xF0, 0xA);
+
+ PutWindowTilemap(7);
+ FillWindowPixelBuffer(7, 0);
+ if (sFactorySwapScreen->cursorPos > 2)
+ {
+ CopyWindowToVram(7, 3);
+ }
+ else
+ {
+ u8 monId = sFactorySwapScreen->cursorPos;
+ if (!sFactorySwapScreen->inEnemyScreen)
+ species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, NULL);
+ else
+ species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL);
+ StringCopy(gStringVar4, gSpeciesNames[species]);
+ x = GetStringRightAlignXOffset(1, gStringVar4, 86);
+ AddTextPrinterParameterized3(7, 1, x, 1, gUnknown_08610925, 0, gStringVar4);
+ CopyWindowToVram(7, 3);
+ }
+}
+
+void Swap_PrintMonSpecies3(void)
+{
+ u16 species;
+ u8 x;
+
+ LoadPalette(gUnknown_08610918, 0xE0, 0xA);
+ CpuCopy16(gPlttBufferUnfaded + 240, gPlttBufferFaded + 224, 10);
+
+ if (sFactorySwapScreen->cursorPos > 2)
+ {
+ CopyWindowToVram(1, 2);
+ }
+ else
+ {
+ u8 monId = sFactorySwapScreen->cursorPos;
+ if (!sFactorySwapScreen->inEnemyScreen)
+ species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, NULL);
+ else
+ species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL);
+ StringCopy(gStringVar4, gSpeciesNames[species]);
+ x = GetStringRightAlignXOffset(1, gStringVar4, 86);
+ AddTextPrinterParameterized3(1, 1, x, 1, gUnknown_08610925, 0, gStringVar4);
+ CopyWindowToVram(1, 3);
+ }
+}
+
+void Swap_PrintMonCategory(void)
+{
+ u16 species;
+ u8 text[30];
+ u8 x;
+ u8 monId = sFactorySwapScreen->cursorPos;
+
+ FillWindowPixelBuffer(8, 0);
+ if (monId > 2)
+ {
+ CopyWindowToVram(8, 2);
+ }
+ else
+ {
+ PutWindowTilemap(8);
+ if (!sFactorySwapScreen->inEnemyScreen)
+ species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES, NULL);
+ else
+ species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL);
+ CopyMonCategoryText(SpeciesToNationalPokedexNum(species), text);
+ x = GetStringRightAlignXOffset(1, text, 0x76);
+ AddTextPrinterParameterized(8, 1, text, x, 1, 0, NULL);
+ CopyWindowToVram(8, 2);
+ }
+}
+
+extern const struct SwapActionIdAndFunc gUnknown_08610928[4];
+extern const struct SwapActionIdAndFunc gUnknown_08610948[5];
+
+void Swap_InitActions(u8 id)
+{
+ if (sFactorySwapScreen->fromSummaryScreen != TRUE)
+ {
+ switch (id)
+ {
+ case ACTIONS_PLAYER_SCREEN:
+ sFactorySwapScreen->inEnemyScreen = FALSE;
+ sFactorySwapScreen->cursorPos = 0;
+ sFactorySwapScreen->actionsCount = ARRAY_COUNT(gUnknown_08610928);
+ sFactorySwapScreen->actionsData = gUnknown_08610928;
+ break;
+ case ACTIONS_ENEMY_SCREEN:
+ sFactorySwapScreen->inEnemyScreen = TRUE;
+ sFactorySwapScreen->cursorPos = 0;
+ sFactorySwapScreen->actionsCount = ARRAY_COUNT(gUnknown_08610948);
+ sFactorySwapScreen->actionsData = gUnknown_08610948;
+ break;
+ }
+ }
+}
+
+void Swap_RunMenuOptionFunc(u8 taskId)
+{
+ gUnknown_03001280 = sSwap_MenuOptionFuncs[sFactorySwapScreen->menuCursorPos];
+ gUnknown_03001280(taskId);
+}
+
+void sub_819F0CC(u8 taskId)
+{
+ sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, TRUE);
+ sFactorySwapScreen->playerMonId = sFactorySwapScreen->cursorPos;
+ sub_819EA64(3);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].func = sub_819D9EC;
+}
+
+void sub_819F114(u8 taskId)
+{
+ gTasks[taskId].data[0] = 6;
+ gTasks[taskId].func = Task_FromSwapScreenToSummaryScreen;
+}
+
+void sub_819F134(u8 taskId)
+{
+ sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, TRUE);
+ sub_819EA64(3);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[6] = (u32)(Task_HandleSwapScreenChooseMons) >> 0x10;
+ gTasks[taskId].data[7] = (u32)(Task_HandleSwapScreenChooseMons);
+ gTasks[taskId].data[5] = 1;
+ gTasks[taskId].func = sub_819D770;
+}
+
+void Swap_RunActionFunc(u8 taskId)
+{
+ gUnknown_03001280 = sFactorySwapScreen->actionsData[sFactorySwapScreen->cursorPos].func;
+ gUnknown_03001280(taskId);
+}
+
+void sub_819F1AC(u8 taskId)
+{
+ gTasks[taskId].data[6] = (u32)(sub_819CC24) >> 0x10;
+ gTasks[taskId].data[7] = (u32)(sub_819CC24);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[5] = 0;
+ gTasks[taskId].func = sub_819D588;
+}
+
+void sub_819F1DC(u8 taskId)
+{
+ gTasks[taskId].data[6] = (u32)(sub_819D9EC) >> 0x10;
+ gTasks[taskId].data[7] = (u32)(sub_819D9EC);
+ gTasks[taskId].data[5] = 0;
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].func = sub_819D588;
+}
+
+void sub_819F20C(u8 taskId)
+{
+ if (!sFactorySwapScreen->inEnemyScreen)
+ {
+ gTasks[taskId].data[6] = (u32)(Task_HandleSwapScreenMenu) >> 0x10;
+ gTasks[taskId].data[7] = (u32)(Task_HandleSwapScreenMenu);
+ gTasks[taskId].data[5] = 2;
+ }
+ else if (Swap_AlreadyHasSameSpecies(sFactorySwapScreen->cursorPos) == TRUE)
+ {
+ sub_819F2B4(&sFactorySwapScreen->unk2C.field1, &sFactorySwapScreen->unk30, TRUE);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[5] = 1;
+ gTasks[taskId].func = Task_SwapCantHaveSameMons;
+ return;
+ }
+ else
+ {
+ gTasks[taskId].data[6] = (u32)(sub_819CCD4) >> 0x10;
+ gTasks[taskId].data[7] = (u32)(sub_819CCD4);
+ gTasks[taskId].data[5] = 0;
+ }
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].func = sub_819D588;
+}
+
+void sub_819F2B4(u8 *arg0, bool8 *arg1, bool8 swapScreen)
+{
+ *arg0 = CreateSprite(&gUnknown_08610894, 120, 64, 1);
+ gSprites[*arg0].callback = sub_819F600;
+ gSprites[*arg0].data[7] = swapScreen;
+ *arg1 = TRUE;
+}
+
+void Swap_ShowSummaryMonSprite(void)
+{
+ struct Pokemon *mon;
+ u16 species;
+ u32 personality, otId;
+
+ sFactorySwapScreen->unk2C.field1 = CreateSprite(&gUnknown_08610894, 120, 64, 1);
+ StartSpriteAffineAnim(&gSprites[sFactorySwapScreen->unk2C.field1], 2);
+
+ mon = &gPlayerParty[sFactorySwapScreen->cursorPos];
+ species = GetMonData(mon, MON_DATA_SPECIES, NULL);
+ personality = GetMonData(mon, MON_DATA_PERSONALITY, NULL);
+ otId = GetMonData(mon, MON_DATA_OT_ID, NULL);
+
+ sFactorySwapScreen->unk2C.field0 = CreateMonPicSprite_HandleDeoxys(species, personality, otId, TRUE, 88, 32, 15, 0xFFFF); // BUG: otId and personality should be switched.
+ gSprites[sFactorySwapScreen->unk2C.field0].centerToCornerVecX = 0;
+ gSprites[sFactorySwapScreen->unk2C.field0].centerToCornerVecY = 0;
+
+ gSprites[sFactorySwapScreen->unk2C.field1].invisible = 1;
+}
+
+void sub_819F3F8(struct UnkFactoryStruct arg0, bool8 *arg1, bool8 swapScreen)
+{
+ u8 taskId;
+
+ FreeAndDestroyMonPicSprite(arg0.field0);
+ taskId = CreateTask(sub_819F7B4, 1);
+ gTasks[taskId].data[7] = swapScreen;
+ gTasks[taskId].data[6] = arg0.field1;
+ gTasks[taskId].func(taskId);
+ *arg1 = TRUE;
+}
+
+void sub_819F444(struct UnkFactoryStruct arg0, bool8 *arg1)
+{
+ FreeAndDestroyMonPicSprite(arg0.field0);
+ FreeOamMatrix(gSprites[arg0.field1].oam.matrixNum);
+ DestroySprite(&gSprites[arg0.field1]);
+ *arg1 = FALSE;
+}
+
+void Task_SwapCantHaveSameMons(u8 taskId)
+{
+ if (sFactorySwapScreen->unk30 == TRUE)
+ return;
+
+ switch (gTasks[taskId].data[0])
+ {
+ case 0:
+ Swap_PrintOnInfoWindow(gText_SamePkmnInPartyAlready);
+ sFactorySwapScreen->monSwapped = FALSE;
+ gTasks[taskId].data[0]++;
+ break;
+ case 1:
+ if (gMain.newKeys & A_BUTTON || gMain.newKeys & B_BUTTON)
+ {
+ PlaySE(SE_SELECT);
+ sub_819F3F8(sFactorySwapScreen->unk2C, &sFactorySwapScreen->unk30, TRUE);
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 2:
+ if (sFactorySwapScreen->unk30 != TRUE)
+ {
+ FillWindowPixelBuffer(5, 0);
+ CopyWindowToVram(5, 2);
+ gTasks[taskId].data[0]++;
+ }
+ break;
+ case 3:
+ Swap_PrintOnInfoWindow(gText_SelectPkmnToAccept);
+ gTasks[taskId].data[0]++;
+ break;
+ case 4:
+ Swap_PrintMonSpecies3();
+ sub_819EADC();
+ sFactorySwapScreen->unk22 = 1;
+ gTasks[taskId].data[0] = gTasks[taskId].data[5];
+ gTasks[taskId].func = Task_HandleSwapScreenChooseMons;
+ break;
+ }
+}
+
+bool8 Swap_AlreadyHasSameSpecies(u8 monId)
+{
+ u8 i;
+ u16 species = GetMonData(&gEnemyParty[monId], MON_DATA_SPECIES, NULL);
+
+ for (i = 0; i < 3; i++)
+ {
+ if (i != sFactorySwapScreen->playerMonId && (u16)(GetMonData(&gPlayerParty[i], MON_DATA_SPECIES, NULL)) == species)
+ return TRUE;
+ }
+ return FALSE;
+}
diff --git a/src/battle_interface.c b/src/battle_interface.c
index 278edb6f4..e45af2bf0 100644
--- a/src/battle_interface.c
+++ b/src/battle_interface.c
@@ -2589,7 +2589,7 @@ static u8* AddTextPrinterAndCreateWindowOnHealthbox(const u8 *str, u32 x, u32 y,
color[1] = 1;
color[2] = 3;
- AddTextPrinterParameterized2(winId, 0, x, y, 0, 0, color, -1, str);
+ AddTextPrinterParameterized4(winId, 0, x, y, 0, 0, color, -1, str);
*windowId = winId;
return (u8*)(GetWindowAttribute(winId, WINDOW_TILE_DATA));
diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c
index bc2821d16..74a4d3f83 100644
--- a/src/battle_pyramid_bag.c
+++ b/src/battle_pyramid_bag.c
@@ -1129,7 +1129,7 @@ static void sub_81C6404(void)
StringExpandPlaceholders(gStringVar4, gText_xVar1);
sub_81C6CEC(3);
x = GetStringCenterAlignXOffset(1, gStringVar4, 0x28);
- PrintTextOnWindow(3, 1, gStringVar4, x, 2, 0, NULL);
+ AddTextPrinterParameterized(3, 1, gStringVar4, x, 2, 0, NULL);
}
static void sub_81C645C(s16 value)
@@ -1139,7 +1139,7 @@ static void sub_81C645C(s16 value)
ConvertIntToDecimalStringN(gStringVar1, value, STR_CONV_MODE_LEADING_ZEROS, 2);
StringExpandPlaceholders(gStringVar4, gText_xVar1);
x = GetStringCenterAlignXOffset(1, gStringVar4, 0x28);
- PrintTextOnWindow(3, 1, gStringVar4, x, 2, 0, NULL);
+ AddTextPrinterParameterized(3, 1, gStringVar4, x, 2, 0, NULL);
}
static void sub_81C64B4(u8 taskId)
@@ -1412,12 +1412,12 @@ static void sub_81C6BD8(void)
static void PrintOnWindow_Font1(u8 windowId, const u8 *src, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorTableId)
{
- AddTextPrinterParameterized2(windowId, 1, x, y, letterSpacing, lineSpacing, sColorTable[colorTableId], speed, src);
+ AddTextPrinterParameterized4(windowId, 1, x, y, letterSpacing, lineSpacing, sColorTable[colorTableId], speed, src);
}
static void PrintOnWindow_Font7(u8 windowId, const u8 *src, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 colorTableId)
{
- AddTextPrinterParameterized2(windowId, 7, x, y, letterSpacing, lineSpacing, sColorTable[colorTableId], speed, src);
+ AddTextPrinterParameterized4(windowId, 7, x, y, letterSpacing, lineSpacing, sColorTable[colorTableId], speed, src);
}
static void sub_81C6CEC(u8 windowId)
diff --git a/src/battle_records.c b/src/battle_records.c
index fc9826e5b..feaec74db 100644
--- a/src/battle_records.c
+++ b/src/battle_records.c
@@ -283,7 +283,7 @@ static void PrintLinkBattleWinsLossesDraws(struct LinkBattleRecord *records)
StringExpandPlaceholders(gStringVar4, gText_TotalRecordWLD);
x = GetStringCenterAlignXOffset(1, gStringVar4, 0xD0);
- PrintTextOnWindow(gRecordsWindowId, 1, gStringVar4, x, 0x11, 0, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, x, 0x11, 0, NULL);
}
static void PrintLinkBattleRecord(struct LinkBattleRecord *record, u8 y, s32 language)
@@ -291,10 +291,10 @@ static void PrintLinkBattleRecord(struct LinkBattleRecord *record, u8 y, s32 lan
if (record->wins == 0 && record->losses == 0 && record->draws == 0)
{
// empty slot
- PrintTextOnWindow(gRecordsWindowId, 1, sText_DashesNoPlayer, 8, (y * 8) + 1, 0, NULL);
- PrintTextOnWindow(gRecordsWindowId, 1, sText_DashesNoScore, 80, (y * 8) + 1, 0, NULL);
- PrintTextOnWindow(gRecordsWindowId, 1, sText_DashesNoScore, 128, (y * 8) + 1, 0, NULL);
- PrintTextOnWindow(gRecordsWindowId, 1, sText_DashesNoScore, 176, (y * 8) + 1, 0, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, sText_DashesNoPlayer, 8, (y * 8) + 1, 0, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, sText_DashesNoScore, 80, (y * 8) + 1, 0, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, sText_DashesNoScore, 128, (y * 8) + 1, 0, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, sText_DashesNoScore, 176, (y * 8) + 1, 0, NULL);
}
else
{
@@ -302,16 +302,16 @@ static void PrintLinkBattleRecord(struct LinkBattleRecord *record, u8 y, s32 lan
StringCopyN(gStringVar1, record->name, 7);
ConvertInternationalString(gStringVar1, language);
- PrintTextOnWindow(gRecordsWindowId, 1, gStringVar1, 8, (y * 8) + 1, 0, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar1, 8, (y * 8) + 1, 0, NULL);
ConvertIntToDecimalStringN(gStringVar1, record->wins, STR_CONV_MODE_RIGHT_ALIGN, 4);
- PrintTextOnWindow(gRecordsWindowId, 1, gStringVar1, 80, (y * 8) + 1, 0, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar1, 80, (y * 8) + 1, 0, NULL);
ConvertIntToDecimalStringN(gStringVar1, record->losses, STR_CONV_MODE_RIGHT_ALIGN, 4);
- PrintTextOnWindow(gRecordsWindowId, 1, gStringVar1, 128, (y * 8) + 1, 0, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar1, 128, (y * 8) + 1, 0, NULL);
ConvertIntToDecimalStringN(gStringVar1, record->draws, STR_CONV_MODE_RIGHT_ALIGN, 4);
- PrintTextOnWindow(gRecordsWindowId, 1, gStringVar1, 176, (y * 8) + 1, 0, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar1, 176, (y * 8) + 1, 0, NULL);
}
}
@@ -325,11 +325,11 @@ void ShowLinkBattleRecords(void)
StringExpandPlaceholders(gStringVar4, gText_PlayersBattleResults);
x = GetStringCenterAlignXOffset(1, gStringVar4, 208);
- PrintTextOnWindow(gRecordsWindowId, 1, gStringVar4, x, 1, 0, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, x, 1, 0, NULL);
PrintLinkBattleWinsLossesDraws(gSaveBlock1Ptr->linkBattleRecords.entries);
StringExpandPlaceholders(gStringVar4, gText_WinLoseDraw);
- PrintTextOnWindow(gRecordsWindowId, 1, gStringVar4, 0, 41, 0, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gStringVar4, 0, 41, 0, NULL);
for (i = 0; i < LINK_B_RECORDS_COUNT; i++)
{
diff --git a/src/berry_blender.c b/src/berry_blender.c
index 96c3a933d..a5b940189 100644
--- a/src/berry_blender.c
+++ b/src/berry_blender.c
@@ -3550,8 +3550,8 @@ void ShowBerryBlenderRecordWindow(void)
FillWindowPixelBuffer(gRecordsWindowId, 0x11);
xPos = GetStringCenterAlignXOffset(1, gText_BlenderMaxSpeedRecord, 0x90);
- PrintTextOnWindow(gRecordsWindowId, 1, gText_BlenderMaxSpeedRecord, xPos, 1, 0, NULL);
- PrintTextOnWindow(gRecordsWindowId, 1, gText_234Players, 4, 0x29, 0, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gText_BlenderMaxSpeedRecord, xPos, 1, 0, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, gText_234Players, 4, 0x29, 0, NULL);
for (i = 0, yPos = 0x29; i < BLENDER_SCORES_NO; i++)
{
@@ -3566,7 +3566,7 @@ void ShowBerryBlenderRecordWindow(void)
txtPtr = StringAppend(txtPtr, sText_RPM);
xPos = GetStringRightAlignXOffset(1, text, 0x8C);
- PrintTextOnWindow(gRecordsWindowId, 1, text, xPos, yPos + (i * 16), 0, NULL);
+ AddTextPrinterParameterized(gRecordsWindowId, 1, text, xPos, yPos + (i * 16), 0, NULL);
}
PutWindowTilemap(gRecordsWindowId);
@@ -3659,7 +3659,7 @@ static void Blender_AddTextPrinter(u8 windowId, const u8 *string, u8 x, u8 y, s3
FillWindowPixelBuffer(windowId, txtColor[0] | (txtColor[0] << 4));
}
- AddTextPrinterParameterized2(windowId, 1, x, y, letterSpacing, 1, txtColor, speed, string);
+ AddTextPrinterParameterized4(windowId, 1, x, y, letterSpacing, 1, txtColor, speed, string);
}
static bool32 Blender_PrintText(s16 *textState, const u8 *string, s32 textSpeed)
diff --git a/src/berry_fix_program.c b/src/berry_fix_program.c
index f6a5895a9..2ae15a806 100644
--- a/src/berry_fix_program.c
+++ b/src/berry_fix_program.c
@@ -250,19 +250,19 @@ static void berry_fix_gpu_set(void)
width = GetStringWidth(0, sUnknown_08617E9B, 0);
left = (0x78 - width) / 2;
- box_print(2, 0, left, 3, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E9B);
+ AddTextPrinterParameterized3(2, 0, left, 3, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E9B);
width = GetStringWidth(0, sUnknown_08617E8D, 0);
left = (0x78 - width) / 2 + 0x78;
- box_print(2, 0, left, 3, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E8D);
+ AddTextPrinterParameterized3(2, 0, left, 3, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E8D);
width = GetStringWidth(0, sUnknown_08617E8D, 0);
left = (0x70 - width) / 2;
- box_print(3, 0, left, 0, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E8D);
+ AddTextPrinterParameterized3(3, 0, left, 0, sUnknown_0861815B, TEXT_SPEED_FF, sUnknown_08617E8D);
width = GetStringWidth(1, sUnknown_08617E78, 0);
left = (0xD0 - width) / 2;
- box_print(0, 1, left, 2, sUnknown_08618158, TEXT_SPEED_FF, sUnknown_08617E78);
+ AddTextPrinterParameterized3(0, 1, left, 2, sUnknown_08618158, TEXT_SPEED_FF, sUnknown_08617E78);
CopyWindowToVram(2, 2);
CopyWindowToVram(3, 2);
@@ -292,7 +292,7 @@ static void berry_fix_text_print(int scene)
{
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 32, 32);
FillWindowPixelBuffer(1, 0xAA);
- box_print(1, 1, 0, 0, sUnknown_08618158, -1, gUnknown_08618160[scene]);
+ AddTextPrinterParameterized3(1, 1, 0, 0, sUnknown_08618158, -1, gUnknown_08618160[scene]);
PutWindowTilemap(1);
CopyWindowToVram(1, 2);
switch (scene)
diff --git a/src/berry_tag_screen.c b/src/berry_tag_screen.c
index 0c13e7085..d30af944e 100644
--- a/src/berry_tag_screen.c
+++ b/src/berry_tag_screen.c
@@ -375,7 +375,7 @@ static void HandleInitWindows(void)
static void PrintTextInBerryTagScreen(u8 windowId, const u8 *text, u8 x, u8 y, s32 speed, u8 colorStructId)
{
- AddTextPrinterParameterized2(windowId, 1, x, y, 0, 0, sTextColors[colorStructId], speed, text);
+ AddTextPrinterParameterized4(windowId, 1, x, y, 0, 0, sTextColors[colorStructId], speed, text);
}
static void AddBerryTagTextToBg0(void)
@@ -408,7 +408,7 @@ static void PrintBerryNumberAndName(void)
static void PrintBerrySize(void)
{
const struct Berry *berry = GetBerryInfo(sBerryTag->berryId);
- PrintTextOnWindow(WIN_SIZE_FIRM, 1, gText_SizeSlash, 0, 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(WIN_SIZE_FIRM, 1, gText_SizeSlash, 0, 1, TEXT_SPEED_FF, NULL);
if (berry->size != 0)
{
u32 inches, fraction;
@@ -422,34 +422,34 @@ static void PrintBerrySize(void)
ConvertIntToDecimalStringN(gStringVar1, inches, 0, 2);
ConvertIntToDecimalStringN(gStringVar2, fraction, 0, 2);
StringExpandPlaceholders(gStringVar4, gText_Var1DotVar2);
- PrintTextOnWindow(WIN_SIZE_FIRM, 1, gStringVar4, 0x28, 1, 0, NULL);
+ AddTextPrinterParameterized(WIN_SIZE_FIRM, 1, gStringVar4, 0x28, 1, 0, NULL);
}
else
{
- PrintTextOnWindow(WIN_SIZE_FIRM, 1, gText_ThreeMarks, 0x28, 1, 0, NULL);
+ AddTextPrinterParameterized(WIN_SIZE_FIRM, 1, gText_ThreeMarks, 0x28, 1, 0, NULL);
}
}
static void PrintBerryFirmness(void)
{
const struct Berry *berry = GetBerryInfo(sBerryTag->berryId);
- PrintTextOnWindow(WIN_SIZE_FIRM, 1, gText_FirmSlash, 0, 0x11, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(WIN_SIZE_FIRM, 1, gText_FirmSlash, 0, 0x11, TEXT_SPEED_FF, NULL);
if (berry->firmness != 0)
- PrintTextOnWindow(WIN_SIZE_FIRM, 1, sBerryFirmnessStrings[berry->firmness - 1], 0x28, 0x11, 0, NULL);
+ AddTextPrinterParameterized(WIN_SIZE_FIRM, 1, sBerryFirmnessStrings[berry->firmness - 1], 0x28, 0x11, 0, NULL);
else
- PrintTextOnWindow(WIN_SIZE_FIRM, 1, gText_ThreeMarks, 0x28, 0x11, 0, NULL);
+ AddTextPrinterParameterized(WIN_SIZE_FIRM, 1, gText_ThreeMarks, 0x28, 0x11, 0, NULL);
}
static void PrintBerryDescription1(void)
{
const struct Berry *berry = GetBerryInfo(sBerryTag->berryId);
- PrintTextOnWindow(WIN_DESC, 1, berry->description1, 0, 1, 0, NULL);
+ AddTextPrinterParameterized(WIN_DESC, 1, berry->description1, 0, 1, 0, NULL);
}
static void PrintBerryDescription2(void)
{
const struct Berry *berry = GetBerryInfo(sBerryTag->berryId);
- PrintTextOnWindow(WIN_DESC, 1, berry->description2, 0, 0x11, 0, NULL);
+ AddTextPrinterParameterized(WIN_DESC, 1, berry->description2, 0, 0x11, 0, NULL);
}
static void CreateBerrySprite(void)
diff --git a/src/clear_save_data_screen.c b/src/clear_save_data_screen.c
index 5c1f7db20..839a77e4a 100644
--- a/src/clear_save_data_screen.c
+++ b/src/clear_save_data_screen.c
@@ -79,7 +79,7 @@ void CB2_InitClearSaveDataScreen(void)
static void Task_DoClearSaveDataScreenYesNo(u8 taskId)
{
SetWindowBorderStyle(0, 0, 2, 14);
- PrintTextOnWindow(0, 1, gText_ClearAllSaveData, 0, 1, 0, 0);
+ AddTextPrinterParameterized(0, 1, gText_ClearAllSaveData, 0, 1, 0, 0);
CreateYesNoMenu(sClearSaveYesNo, 2, 14, 1);
gTasks[taskId].func = Task_ClearSaveDataScreenYesNoChoice;
}
@@ -90,7 +90,7 @@ static void Task_ClearSaveDataScreenYesNoChoice(u8 taskId)
{
case 0:
FillWindowPixelBuffer(0, 17);
- PrintTextOnWindow(0, 1, gText_ClearingData, 0, 1, 0, 0);
+ AddTextPrinterParameterized(0, 1, gText_ClearingData, 0, 1, 0, 0);
gTasks[taskId].func = Task_ClearSaveData;
break;
case 1:
diff --git a/src/coins.c b/src/coins.c
index 12e0bd4ef..967eb92ac 100644
--- a/src/coins.c
+++ b/src/coins.c
@@ -19,7 +19,7 @@ void PrintCoinsString(u32 coinAmount)
StringExpandPlaceholders(gStringVar4, gText_Coins);
xAlign = GetStringRightAlignXOffset(1, gStringVar4, 0x40);
- PrintTextOnWindow(sCoinsWindowId, 1, gStringVar4, xAlign, 1, 0, NULL);
+ AddTextPrinterParameterized(sCoinsWindowId, 1, gStringVar4, xAlign, 1, 0, NULL);
}
void ShowCoinsWindow(u32 coinAmount, u8 x, u8 y)
diff --git a/src/credits.c b/src/credits.c
index cbf77f1b3..94089a6d1 100644
--- a/src/credits.c
+++ b/src/credits.c
@@ -1197,7 +1197,7 @@ static void sub_81755BC(const u8 *string, u8 y, u8 a2)
}
x = GetStringCenterAlignXOffsetWithLetterSpacing(1, string, 0xF0, 1);
- AddTextPrinterParameterized2(0, 1, x, y, 1, 0, color, -1, string);
+ AddTextPrinterParameterized4(0, 1, x, y, 1, 0, color, -1, string);
}
void sub_8175620(void)
diff --git a/src/decoration.c b/src/decoration.c
index e1def6d38..94edbe956 100644
--- a/src/decoration.c
+++ b/src/decoration.c
@@ -544,7 +544,7 @@ void sub_8126B80(u8 taskId)
void sub_8126C08(void)
{
FillWindowPixelBuffer(0, 0x11);
- AddTextPrinterParameterized(0, 1, sSecretBasePCMenuItemDescriptions[sSecretBasePCMenuCursorPos], 0, 0, 2, 1, 3);
+ AddTextPrinterParameterized2(0, 1, sSecretBasePCMenuItemDescriptions[sSecretBasePCMenuCursorPos], 0, 0, 2, 1, 3);
}
void SecretBasePC_Decorate(u8 taskId)
@@ -667,7 +667,7 @@ void sub_8126E8C(u8 taskId)
sub_8126F68(r5, i, 8, i << 4, FALSE, 0xFF);
}
}
- PrintTextOnWindow(r5, 1, gTasks[taskId].data[11] == 2 ? gText_Exit : gText_Cancel, 8, (i << 4) + 1, 0, 0);
+ AddTextPrinterParameterized(r5, 1, gTasks[taskId].data[11] == 2 ? gText_Exit : gText_Cancel, 8, (i << 4) + 1, 0, 0);
schedule_bg_copy_tilemap_to_vram(0);
}
@@ -681,12 +681,12 @@ void sub_8126F68(u8 winid, u8 decorCat, u8 x, u8 y, bool8 flag, u8 speed)
sub_8127058(gStringVar4, flag);
strbuf = StringLength(gStringVar4) + gStringVar4;
StringCopy(strbuf, sDecorCatNames[decorCat]);
- PrintTextOnWindow(winid, 1, gStringVar4, x, y, speed, NULL);
+ AddTextPrinterParameterized(winid, 1, gStringVar4, x, y, speed, NULL);
strbuf = ConvertIntToDecimalStringN(strbuf, CountDecorationCategoryN(decorCat), STR_CONV_MODE_RIGHT_ALIGN, 2);
*strbuf++ = CHAR_SLASH;
ConvertIntToDecimalStringN(strbuf, gDecorationInventories[decorCat].size, STR_CONV_MODE_RIGHT_ALIGN, 2);
x = GetStringRightAlignXOffset(1, gStringVar4, width);
- PrintTextOnWindow(winid, 1, gStringVar4, x, y, speed, NULL);
+ AddTextPrinterParameterized(winid, 1, gStringVar4, x, y, speed, NULL);
}
void sub_8127058(u8 *str, bool8 flag)
@@ -977,7 +977,7 @@ void sub_8127744(u32 a0)
{
txt = gDecorations[gCurDecorInventoryItems[a0]].description;
}
- PrintTextOnWindow(winidx, 1, txt, 0, 1, 0, 0);
+ AddTextPrinterParameterized(winidx, 1, txt, 0, 1, 0, 0);
}
void sub_81277A8(void)
diff --git a/src/diploma.c b/src/diploma.c
index 599ceec72..8e0b48ed3 100644
--- a/src/diploma.c
+++ b/src/diploma.c
@@ -17,7 +17,7 @@ extern int decompress_and_copy_tile_data_to_vram(u8 bg_id, void *src, int size,
extern bool8 free_temp_tile_data_buffers_if_possible(void);
extern void sub_80861E8(void); // rom4
extern bool16 sub_80C0944(void);
-extern void AddTextPrinterParameterized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 *color, s8 speed, u8 *str);
+extern void AddTextPrinterParameterized4(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, u8 *color, s8 speed, u8 *str);
extern u16 gUnknown_0860F074[];
@@ -210,5 +210,5 @@ static void PrintDiplomaText(u8 *text, u8 var1, u8 var2)
{
u8 color[3] = {0, 2, 3};
- AddTextPrinterParameterized2(0, 1, var1, var2, 0, 0, color, -1, text);
+ AddTextPrinterParameterized4(0, 1, var1, var2, 0, 0, color, -1, text);
}
diff --git a/src/egg_hatch.c b/src/egg_hatch.c
index 25af28da4..d56f03028 100644
--- a/src/egg_hatch.c
+++ b/src/egg_hatch.c
@@ -870,7 +870,7 @@ static void EggHatchPrintMessage(u8 windowId, u8* string, u8 x, u8 y, u8 speed)
sEggHatchData->textColor[0] = 0;
sEggHatchData->textColor[1] = 5;
sEggHatchData->textColor[2] = 6;
- AddTextPrinterParameterized2(windowId, 1, x, y, 0, 0, sEggHatchData->textColor, speed, string);
+ AddTextPrinterParameterized4(windowId, 1, x, y, 0, 0, sEggHatchData->textColor, speed, string);
}
u8 GetEggStepsToSubtract(void)
diff --git a/src/field_region_map.c b/src/field_region_map.c
index d77bde01b..7e8794cab 100644
--- a/src/field_region_map.c
+++ b/src/field_region_map.c
@@ -143,7 +143,7 @@ static void FieldUpdateRegionMap(void)
case 1:
SetWindowBorderStyle(1, 0, 0x27, 0xd);
offset = GetStringCenterAlignXOffset(1, gText_Hoenn, 0x38);
- PrintTextOnWindow(1, 1, gText_Hoenn, offset, 1, 0, NULL);
+ AddTextPrinterParameterized(1, 1, gText_Hoenn, offset, 1, 0, NULL);
schedule_bg_copy_tilemap_to_vram(0);
SetWindowBorderStyle(0, 0, 0x27, 0xd);
PrintRegionMapSecName();
@@ -199,7 +199,7 @@ static void PrintRegionMapSecName(void)
if (sFieldRegionMapHandler->regionMap.iconDrawType != MAPSECTYPE_NONE)
{
FillWindowPixelBuffer(0, 0x11);
- PrintTextOnWindow(0, 1, sFieldRegionMapHandler->regionMap.mapSecName, 0, 1, 0, NULL);
+ AddTextPrinterParameterized(0, 1, sFieldRegionMapHandler->regionMap.mapSecName, 0, 1, 0, NULL);
schedule_bg_copy_tilemap_to_vram(0);
}
else
diff --git a/src/field_specials.c b/src/field_specials.c
index 14f99b426..113979375 100644
--- a/src/field_specials.c
+++ b/src/field_specials.c
@@ -1836,10 +1836,10 @@ void sub_8139B60(void)
SetStandardWindowBorderStyle(gUnknown_0203AB5E, 0);
xPos = GetStringCenterAlignXOffset(1, gText_ElevatorNowOn, 64);
- PrintTextOnWindow(gUnknown_0203AB5E, 1, gText_ElevatorNowOn, xPos, 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gUnknown_0203AB5E, 1, gText_ElevatorNowOn, xPos, 1, TEXT_SPEED_FF, NULL);
xPos = GetStringCenterAlignXOffset(1, gElevatorFloorsTable[gSpecialVar_0x8005], 64);
- PrintTextOnWindow(gUnknown_0203AB5E, 1, gElevatorFloorsTable[gSpecialVar_0x8005], xPos, 17, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(gUnknown_0203AB5E, 1, gElevatorFloorsTable[gSpecialVar_0x8005], xPos, 17, TEXT_SPEED_FF, NULL);
PutWindowTilemap(gUnknown_0203AB5E);
CopyWindowToVram(gUnknown_0203AB5E, 3);
@@ -2178,13 +2178,13 @@ void sub_8139F20(void)
}
break;
case 5:
- if (gSaveBlock2Ptr->frontier.field_DE2[0] >= gSaveBlock2Ptr->frontier.field_DE2[1])
+ if (gSaveBlock2Ptr->frontier.field_DE2[0][0] >= gSaveBlock2Ptr->frontier.field_DE2[0][1])
{
- unk = gSaveBlock2Ptr->frontier.field_DE2[0];
+ unk = gSaveBlock2Ptr->frontier.field_DE2[0][0];
}
else
{
- unk = gSaveBlock2Ptr->frontier.field_DE2[1];
+ unk = gSaveBlock2Ptr->frontier.field_DE2[0][1];
}
break;
case 6:
@@ -3063,7 +3063,7 @@ void sub_813A8FC(void)
u32 x;
StringCopy(ConvertIntToDecimalStringN(string, gSaveBlock2Ptr->frontier.frontierBattlePoints, STR_CONV_MODE_RIGHT_ALIGN, 4), gText_BP);
x = GetStringRightAlignXOffset(1, string, 48);
- PrintTextOnWindow(gUnknown_0203AB6D, 1, string, x, 1, 0, NULL);
+ AddTextPrinterParameterized(gUnknown_0203AB6D, 1, string, x, 1, 0, NULL);
}
void sub_813A958(void)
@@ -3201,7 +3201,7 @@ static void sub_813AA60(u16 a0, u16 a1)
switch (a0)
{
case 3:
- AddTextPrinterParameterized(0, 1, gUnknown_085B3170[a1], 0, NULL, 2, 1, 3);
+ AddTextPrinterParameterized2(0, 1, gUnknown_085B3170[a1], 0, NULL, 2, 1, 3);
if (gUnknown_085B312C[a1] == 0xFFFF)
{
sub_813ABD4(gUnknown_085B312C[a1]);
@@ -3214,7 +3214,7 @@ static void sub_813AA60(u16 a0, u16 a1)
}
break;
case 4:
- AddTextPrinterParameterized(0, 1, gUnknown_085B319C[a1], 0, NULL, 2, 1, 3);
+ AddTextPrinterParameterized2(0, 1, gUnknown_085B319C[a1], 0, NULL, 2, 1, 3);
if (gUnknown_085B3142[a1] == 0xFFFF)
{
sub_813ABD4(gUnknown_085B3142[a1]);
@@ -3227,11 +3227,11 @@ static void sub_813AA60(u16 a0, u16 a1)
}
break;
case 5:
- AddTextPrinterParameterized(0, 1, gUnknown_085B31B4[a1], 0, NULL, 2, 1, 3);
+ AddTextPrinterParameterized2(0, 1, gUnknown_085B31B4[a1], 0, NULL, 2, 1, 3);
sub_813ABD4(gUnknown_085B314E[a1]);
break;
case 6:
- AddTextPrinterParameterized(0, 1, gUnknown_085B31D0[a1], 0, NULL, 2, 1, 3);
+ AddTextPrinterParameterized2(0, 1, gUnknown_085B31D0[a1], 0, NULL, 2, 1, 3);
sub_813ABD4(gUnknown_085B315C[a1]);
break;
}
@@ -3339,11 +3339,11 @@ static void sub_813AD34(u8 a0, u16 a1)
FillWindowPixelRect(gUnknown_0203AB5E, 0x11, 0, 0, 96, 48);
if (a0 == 10)
{
- PrintTextOnWindow(gUnknown_0203AB5E, 1, gUnknown_085B3254[a1], 0, 1, 0, NULL);
+ AddTextPrinterParameterized(gUnknown_0203AB5E, 1, gUnknown_085B3254[a1], 0, 1, 0, NULL);
}
else
{
- PrintTextOnWindow(gUnknown_0203AB5E, 1, gUnknown_085B3228[a1], 0, 1, 0, NULL);
+ AddTextPrinterParameterized(gUnknown_0203AB5E, 1, gUnknown_085B3228[a1], 0, 1, 0, NULL);
}
}
}
@@ -3367,10 +3367,10 @@ void sub_813ADD4(void)
for (i = 0; i < 6; i++)
{
- sub_8199F74(task->data[13], 1, gUnknown_085B2CF0[gSpecialVar_0x8004][scrollOffset + i], 10, i * 16, TEXT_SPEED_FF, NULL, 0, 0);
+ AddTextPrinterParameterized5(task->data[13], 1, gUnknown_085B2CF0[gSpecialVar_0x8004][scrollOffset + i], 10, i * 16, TEXT_SPEED_FF, NULL, 0, 0);
}
- PrintTextOnWindow(task->data[13], 1, gText_SelectorArrow, 0, selectedRow * 16, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(task->data[13], 1, gText_SelectorArrow, 0, selectedRow * 16, TEXT_SPEED_FF, NULL);
PutWindowTilemap(task->data[13]);
CopyWindowToVram(task->data[13], 3);
}
diff --git a/src/hall_of_fame.c b/src/hall_of_fame.c
index 33c85d448..b739ba66d 100644
--- a/src/hall_of_fame.c
+++ b/src/hall_of_fame.c
@@ -531,7 +531,7 @@ static void Task_Hof_InitTeamSaveData(u8 taskId)
*lastSavedTeam = *sHofMonPtr;
NewMenuHelpers_DrawDialogueFrame(0, 0);
- AddTextPrinterParameterized(0, 1, gText_SavingDontTurnOffPower, 0, NULL, 2, 1, 3);
+ AddTextPrinterParameterized2(0, 1, gText_SavingDontTurnOffPower, 0, NULL, 2, 1, 3);
CopyWindowToVram(0, 3);
gTasks[taskId].func = Task_Hof_TrySaveData;
}
@@ -738,7 +738,7 @@ static void Task_Hof_WaitAndPrintPlayerInfo(u8 taskId)
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 0x20, 0x20);
HallOfFame_PrintPlayerInfo(1, 2);
NewMenuHelpers_DrawDialogueFrame(0, 0);
- AddTextPrinterParameterized(0, 1, gText_LeagueChamp, 0, NULL, 2, 1, 3);
+ AddTextPrinterParameterized2(0, 1, gText_LeagueChamp, 0, NULL, 2, 1, 3);
CopyWindowToVram(0, 3);
gTasks[taskId].func = Task_Hof_ExitOnKeyPressed;
}
@@ -1107,7 +1107,7 @@ static void Task_HofPC_PrintDataIsCorrupted(u8 taskId)
{
sub_8198180(gText_UnkCtrlF800Exit, 8, 1);
NewMenuHelpers_DrawDialogueFrame(0, 0);
- AddTextPrinterParameterized(0, 1, gText_HOFCorrupted, 0, NULL, 2, 1, 3);
+ AddTextPrinterParameterized2(0, 1, gText_HOFCorrupted, 0, NULL, 2, 1, 3);
CopyWindowToVram(0, 3);
gTasks[taskId].func = Task_HofPC_ExitOnButtonPress;
}
@@ -1128,7 +1128,7 @@ static void HallOfFame_PrintWelcomeText(u8 unusedPossiblyWindowId, u8 unused2)
{
FillWindowPixelBuffer(0, 0);
PutWindowTilemap(0);
- box_print(0, 1, GetStringCenterAlignXOffset(1, gText_WelcomeToHOF, 0xD0), 1, sUnknown_085E5388, 0, gText_WelcomeToHOF);
+ AddTextPrinterParameterized3(0, 1, GetStringCenterAlignXOffset(1, gText_WelcomeToHOF, 0xD0), 1, sUnknown_085E5388, 0, gText_WelcomeToHOF);
CopyWindowToVram(0, 3);
}
@@ -1164,7 +1164,7 @@ static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u
*(stringPtr)++ = CHAR_QUESTION_MARK;
}
stringPtr[0] = EOS;
- box_print(0, 1, 0x10, 1, sUnknown_085E5388, -1, text);
+ AddTextPrinterParameterized3(0, 1, 0x10, 1, sUnknown_085E5388, -1, text);
}
// nick, species names, gender and level
@@ -1173,13 +1173,13 @@ static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u
if (currMon->species == SPECIES_EGG)
{
width = GetStringCenterAlignXOffset(1, text, 0xD0);
- box_print(0, 1, width, 1, sUnknown_085E5388, -1, text);
+ AddTextPrinterParameterized3(0, 1, width, 1, sUnknown_085E5388, -1, text);
CopyWindowToVram(0, 3);
}
else
{
width = GetStringRightAlignXOffset(1, text, 0x80);
- box_print(0, 1, width, 1, sUnknown_085E5388, -1, text);
+ AddTextPrinterParameterized3(0, 1, width, 1, sUnknown_085E5388, -1, text);
text[0] = CHAR_SLASH;
stringPtr = StringCopy(text + 1, gSpeciesNames[currMon->species]);
@@ -1200,15 +1200,15 @@ static void HallOfFame_PrintMonInfo(struct HallofFameMon* currMon, u8 unused1, u
}
stringPtr[0] = EOS;
- box_print(0, 1, 0x80, 1, sUnknown_085E5388, -1, text);
+ AddTextPrinterParameterized3(0, 1, 0x80, 1, sUnknown_085E5388, -1, text);
stringPtr = StringCopy(text, gText_Level);
ConvertIntToDecimalStringN(stringPtr, currMon->lvl, STR_CONV_MODE_LEFT_ALIGN, 3);
- box_print(0, 1, 0x24, 0x11, sUnknown_085E5388, -1, text);
+ AddTextPrinterParameterized3(0, 1, 0x24, 0x11, sUnknown_085E5388, -1, text);
stringPtr = StringCopy(text, gText_IDNumber);
ConvertIntToDecimalStringN(stringPtr, (u16)(currMon->tid), STR_CONV_MODE_LEADING_ZEROS, 5);
- box_print(0, 1, 0x68, 0x11, sUnknown_085E5388, -1, text);
+ AddTextPrinterParameterized3(0, 1, 0x68, 0x11, sUnknown_085E5388, -1, text);
CopyWindowToVram(0, 3);
}
@@ -1223,13 +1223,13 @@ static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2)
FillWindowPixelBuffer(1, 0x11);
PutWindowTilemap(1);
SetWindowBorderStyle(1, FALSE, 0x21D, 0xD);
- box_print(1, 1, 0, 1, sUnknown_085E538C, -1, gText_Name);
+ AddTextPrinterParameterized3(1, 1, 0, 1, sUnknown_085E538C, -1, gText_Name);
width = GetStringRightAlignXOffset(1, gSaveBlock2Ptr->playerName, 0x70);
- box_print(1, 1, width, 1, sUnknown_085E538C, -1, gSaveBlock2Ptr->playerName);
+ AddTextPrinterParameterized3(1, 1, width, 1, sUnknown_085E538C, -1, gSaveBlock2Ptr->playerName);
trainerId = (gSaveBlock2Ptr->playerTrainerId[0]) | (gSaveBlock2Ptr->playerTrainerId[1] << 8);
- box_print(1, 1, 0, 0x11, sUnknown_085E538C, 0, gText_IDNumber);
+ AddTextPrinterParameterized3(1, 1, 0, 0x11, sUnknown_085E538C, 0, gText_IDNumber);
text[0] = (trainerId % 100000) / 10000 + CHAR_0;
text[1] = (trainerId % 10000) / 1000 + CHAR_0;
text[2] = (trainerId % 1000) / 100 + CHAR_0;
@@ -1237,9 +1237,9 @@ static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2)
text[4] = (trainerId % 10) / 1 + CHAR_0;
text[5] = EOS;
width = GetStringRightAlignXOffset(1, text, 0x70);
- box_print(1, 1, width, 0x11, sUnknown_085E538C, -1, text);
+ AddTextPrinterParameterized3(1, 1, width, 0x11, sUnknown_085E538C, -1, text);
- box_print(1, 1, 0, 0x21, sUnknown_085E538C, -1, gText_MainMenuTime);
+ AddTextPrinterParameterized3(1, 1, 0, 0x21, sUnknown_085E538C, -1, gText_MainMenuTime);
text[0] = (gSaveBlock2Ptr->playTimeHours / 100) + CHAR_0;
text[1] = (gSaveBlock2Ptr->playTimeHours % 100) / 10 + CHAR_0;
text[2] = (gSaveBlock2Ptr->playTimeHours % 10) + CHAR_0;
@@ -1255,7 +1255,7 @@ static void HallOfFame_PrintPlayerInfo(u8 unused1, u8 unused2)
text[6] = EOS;
width = GetStringRightAlignXOffset(1, text, 0x70);
- box_print(1, 1, width, 0x21, sUnknown_085E538C, -1, text);
+ AddTextPrinterParameterized3(1, 1, width, 0x21, sUnknown_085E538C, -1, text);
CopyWindowToVram(1, 3);
}
diff --git a/src/item_menu.c b/src/item_menu.c
index 082fe5558..938277210 100755
--- a/src/item_menu.c
+++ b/src/item_menu.c
@@ -1057,7 +1057,7 @@ void sub_81ABC54(u8 a, s16 b)
u8 r3 = (gUnknown_0203CE58.pocket == 3) ? 3 : 2;
ConvertIntToDecimalStringN(gStringVar1, b, 2, r3);
StringExpandPlaceholders(gStringVar4, gText_xVar1);
- PrintTextOnWindow(a, 1, gStringVar4, GetStringCenterAlignXOffset(1, gStringVar4, 0x28), 2, 0, 0);
+ AddTextPrinterParameterized(a, 1, gStringVar4, GetStringCenterAlignXOffset(1, gStringVar4, 0x28), 2, 0, 0);
}
void sub_81ABCC0(int a, int b, int c)
@@ -1065,7 +1065,7 @@ void sub_81ABCC0(int a, int b, int c)
u8 r3 = (gUnknown_0203CE58.pocket == 3) ? 3 : 2;
ConvertIntToDecimalStringN(gStringVar1, b, 2, r3);
StringExpandPlaceholders(gStringVar4, gText_xVar1);
- PrintTextOnWindow(a, 1, gStringVar4, 0, 1, -1, 0);
+ AddTextPrinterParameterized(a, 1, gStringVar4, 0, 1, -1, 0);
PrintMoneyAmount(a, 0x26, 1, c, 0);
}
@@ -2291,7 +2291,7 @@ void setup_bag_menu_textboxes(void)
void bag_menu_print(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 letterSpacing, u8 lineSpacing, u8 speed, u8 h)
{
- AddTextPrinterParameterized2(windowId, fontId, left, top, letterSpacing, lineSpacing, gUnknown_08614164[h], speed, str);
+ AddTextPrinterParameterized4(windowId, fontId, left, top, letterSpacing, lineSpacing, gUnknown_08614164[h], speed, str);
}
u8 sub_81AE124(u8 a)
diff --git a/src/learn_move.c b/src/learn_move.c
index e288a393d..ff23cb3dc 100644
--- a/src/learn_move.c
+++ b/src/learn_move.c
@@ -632,7 +632,7 @@ static void HideSpritesAndPrintTeachText(bool8 a)
{
StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn);
FillWindowPixelBuffer(3, 0x11);
- PrintTextOnWindow(3, 1, gStringVar4, 0, 1, 0, NULL);
+ AddTextPrinterParameterized(3, 1, gStringVar4, 0, 1, 0, NULL);
}
}
@@ -696,7 +696,7 @@ static void ShowTeachMoveText(bool8 showContest)
{
StringExpandPlaceholders(gStringVar4, gText_TeachWhichMoveToPkmn);
FillWindowPixelBuffer(3, 0x11);
- PrintTextOnWindow(3, 1, gStringVar4, 0, 1, 0, NULL);
+ AddTextPrinterParameterized(3, 1, gStringVar4, 0, 1, 0, NULL);
}
}
diff --git a/src/link.c b/src/link.c
index 457e44a01..627327181 100644
--- a/src/link.c
+++ b/src/link.c
@@ -1685,8 +1685,8 @@ static void sub_800B080(void)
LoadPalette(gWirelessLinkDisplayPal, 0, 0x20);
FillWindowPixelBuffer(0, 0x00);
FillWindowPixelBuffer(2, 0x00);
- box_print(0, 3, 2, 6, gUnknown_082ED224, 0, gText_CommErrorEllipsis);
- box_print(2, 3, 2, 1, gUnknown_082ED224, 0, gText_MoveCloserToLinkPartner);
+ AddTextPrinterParameterized3(0, 3, 2, 6, gUnknown_082ED224, 0, gText_CommErrorEllipsis);
+ AddTextPrinterParameterized3(2, 3, 2, 1, gUnknown_082ED224, 0, gText_MoveCloserToLinkPartner);
PutWindowTilemap(0);
PutWindowTilemap(2);
CopyWindowToVram(0, 0);
@@ -1698,7 +1698,7 @@ static void sub_800B138(void)
LoadBgTiles(0, g2BlankTilesGfx, 0x20, 0);
FillWindowPixelBuffer(1, 0x00);
FillWindowPixelBuffer(2, 0x00);
- box_print(1, 3, 2, 0, gUnknown_082ED224, 0, gText_CommErrorCheckConnections);
+ AddTextPrinterParameterized3(1, 3, 2, 0, gUnknown_082ED224, 0, gText_CommErrorCheckConnections);
PutWindowTilemap(1);
PutWindowTilemap(2);
CopyWindowToVram(1, 0);
@@ -1738,11 +1738,11 @@ static void CB2_PrintErrorMessage(void)
case 130:
if (gWirelessCommType == 2)
{
- box_print(0, 3, 2, 20, gUnknown_082ED224, 0, gText_ABtnTitleScreen);
+ AddTextPrinterParameterized3(0, 3, 2, 20, gUnknown_082ED224, 0, gText_ABtnTitleScreen);
}
else if (gWirelessCommType == 1)
{
- box_print(0, 3, 2, 20, gUnknown_082ED224, 0, gText_ABtnRegistrationCounter);
+ AddTextPrinterParameterized3(0, 3, 2, 20, gUnknown_082ED224, 0, gText_ABtnRegistrationCounter);
}
break;
}
diff --git a/src/list_menu.c b/src/list_menu.c
index 6b5c3af94..ec45ba3e4 100644
--- a/src/list_menu.c
+++ b/src/list_menu.c
@@ -600,7 +600,7 @@ static void ListMenuPrint(struct ListMenu *list, const u8 *str, u8 x, u8 y)
colors[0] = gListMenuOverride.fillValue;
colors[1] = gListMenuOverride.cursorPal;
colors[2] = gListMenuOverride.cursorShadowPal;
- AddTextPrinterParameterized2(list->template.windowId,
+ AddTextPrinterParameterized4(list->template.windowId,
gListMenuOverride.fontId,
x, y,
gListMenuOverride.lettersSpacing,
@@ -613,7 +613,7 @@ static void ListMenuPrint(struct ListMenu *list, const u8 *str, u8 x, u8 y)
colors[0] = list->template.fillValue;
colors[1] = list->template.cursorPal;
colors[2] = list->template.cursorShadowPal;
- AddTextPrinterParameterized2(list->template.windowId,
+ AddTextPrinterParameterized4(list->template.windowId,
list->template.fontId,
x, y,
list->template.lettersSpacing,
diff --git a/src/mail.c b/src/mail.c
index 625b52de3..3c12bed3f 100644
--- a/src/mail.c
+++ b/src/mail.c
@@ -485,14 +485,14 @@ static void sub_8121B1C(void)
{
continue;
}
- box_print(0, 1, sMailRead->layout->var8[i].xOffset + sMailRead->layout->wordsYPos, y + sMailRead->layout->wordsXPos, sUnknown_0859F2AC, 0, sMailRead->strbuf[i]);
+ AddTextPrinterParameterized3(0, 1, sMailRead->layout->var8[i].xOffset + sMailRead->layout->wordsYPos, y + sMailRead->layout->wordsXPos, sUnknown_0859F2AC, 0, sMailRead->strbuf[i]);
y += sMailRead->layout->var8[i].lineHeight;
}
bufptr = StringCopy(strbuf, gText_FromSpace);
StringCopy(bufptr, sMailRead->playerName);
box_x = GetStringCenterAlignXOffset(1, strbuf, sMailRead->signatureWidth) + 0x68;
box_y = sMailRead->layout->signatureYPos + 0x58;
- box_print(0, 1, box_x, box_y, sUnknown_0859F2AC, 0, strbuf);
+ AddTextPrinterParameterized3(0, 1, box_x, box_y, sUnknown_0859F2AC, 0, strbuf);
CopyWindowToVram(0, 3);
CopyWindowToVram(1, 3);
}
diff --git a/src/main_menu.c b/src/main_menu.c
index 314ac272a..fd8b1b04d 100644
--- a/src/main_menu.c
+++ b/src/main_menu.c
@@ -649,8 +649,8 @@ void Task_DisplayMainMenu(u8 taskId)
default:
FillWindowPixelBuffer(0, 0xAA);
FillWindowPixelBuffer(1, 0xAA);
- box_print(0, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame);
- box_print(1, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption);
+ AddTextPrinterParameterized3(0, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame);
+ AddTextPrinterParameterized3(1, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption);
PutWindowTilemap(0);
PutWindowTilemap(1);
CopyWindowToVram(0, 2);
@@ -662,9 +662,9 @@ void Task_DisplayMainMenu(u8 taskId)
FillWindowPixelBuffer(2, 0xAA);
FillWindowPixelBuffer(3, 0xAA);
FillWindowPixelBuffer(4, 0xAA);
- box_print(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue);
- box_print(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame);
- box_print(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption);
+ AddTextPrinterParameterized3(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue);
+ AddTextPrinterParameterized3(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame);
+ AddTextPrinterParameterized3(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption);
fmt_savegame();
PutWindowTilemap(2);
PutWindowTilemap(3);
@@ -681,10 +681,10 @@ void Task_DisplayMainMenu(u8 taskId)
FillWindowPixelBuffer(3, 0xAA);
FillWindowPixelBuffer(4, 0xAA);
FillWindowPixelBuffer(5, 0xAA);
- box_print(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue);
- box_print(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame);
- box_print(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryGift);
- box_print(5, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption);
+ AddTextPrinterParameterized3(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue);
+ AddTextPrinterParameterized3(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame);
+ AddTextPrinterParameterized3(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryGift);
+ AddTextPrinterParameterized3(5, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption);
fmt_savegame();
PutWindowTilemap(2);
PutWindowTilemap(3);
@@ -705,11 +705,11 @@ void Task_DisplayMainMenu(u8 taskId)
FillWindowPixelBuffer(4, 0xAA);
FillWindowPixelBuffer(5, 0xAA);
FillWindowPixelBuffer(6, 0xAA);
- box_print(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue);
- box_print(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame);
- box_print(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryGift2);
- box_print(5, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryEvents);
- box_print(6, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption);
+ AddTextPrinterParameterized3(2, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuContinue);
+ AddTextPrinterParameterized3(3, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuNewGame);
+ AddTextPrinterParameterized3(4, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryGift2);
+ AddTextPrinterParameterized3(5, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuMysteryEvents);
+ AddTextPrinterParameterized3(6, 1, 0, 1, gTextColor_Headers, -1, gText_MainMenuOption);
fmt_savegame();
PutWindowTilemap(2);
PutWindowTilemap(3);
@@ -1942,7 +1942,7 @@ void set_default_player_name(u8 nameId)
void CreateMainMenuErrorWindow(const u8* str)
{
FillWindowPixelBuffer(7, 17);
- PrintTextOnWindow(7, 1, str, 0, 1, 2, 0);
+ AddTextPrinterParameterized(7, 1, str, 0, 1, 2, 0);
PutWindowTilemap(7);
CopyWindowToVram(7, 2);
DrawMainMenuWindowBorder(&sWindowTemplates_MainMenu[7], MAIN_MENU_BORDER_TILE);
@@ -1961,8 +1961,8 @@ void fmt_savegame(void)
void fmt_time(void)
{
StringExpandPlaceholders(gStringVar4, gText_ContinueMenuPlayer);
- box_print(2, 1, 0, 17, gUnknown_082FF0E3, -1, gStringVar4);
- box_print(2, 1, GetStringRightAlignXOffset(1, gSaveBlock2Ptr->playerName, 100), 17, gUnknown_082FF0E3, -1, gSaveBlock2Ptr->playerName);
+ AddTextPrinterParameterized3(2, 1, 0, 17, gUnknown_082FF0E3, -1, gStringVar4);
+ AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, gSaveBlock2Ptr->playerName, 100), 17, gUnknown_082FF0E3, -1, gSaveBlock2Ptr->playerName);
}
void fmt_player(void)
@@ -1971,11 +1971,11 @@ void fmt_player(void)
u8* ptr;
StringExpandPlaceholders(gStringVar4, gText_ContinueMenuTime);
- box_print(2, 1, 0x6C, 17, gUnknown_082FF0E3, -1, gStringVar4);
+ AddTextPrinterParameterized3(2, 1, 0x6C, 17, gUnknown_082FF0E3, -1, gStringVar4);
ptr = ConvertIntToDecimalStringN(str, gSaveBlock2Ptr->playTimeHours, 0, 3);
*ptr = 0xF0;
ConvertIntToDecimalStringN(ptr + 1, gSaveBlock2Ptr->playTimeMinutes, 2, 2);
- box_print(2, 1, GetStringRightAlignXOffset(1, str, 0xD0), 17, gUnknown_082FF0E3, -1, str);
+ AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, str, 0xD0), 17, gUnknown_082FF0E3, -1, str);
}
void fmt_pokedex(void)
@@ -1990,9 +1990,9 @@ void fmt_pokedex(void)
else
dexCount = GetHoennPokedexCount(1);
StringExpandPlaceholders(gStringVar4, gText_ContinueMenuPokedex);
- box_print(2, 1, 0, 33, gUnknown_082FF0E3, -1, gStringVar4);
+ AddTextPrinterParameterized3(2, 1, 0, 33, gUnknown_082FF0E3, -1, gStringVar4);
ConvertIntToDecimalStringN(str, dexCount, 0, 3);
- box_print(2, 1, GetStringRightAlignXOffset(1, str, 100), 33, gUnknown_082FF0E3, -1, str);
+ AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, str, 100), 33, gUnknown_082FF0E3, -1, str);
}
}
@@ -2008,9 +2008,9 @@ void fmt_badges(void)
badgeCount++;
}
StringExpandPlaceholders(gStringVar4, gText_ContinueMenuBadges);
- box_print(2, 1, 0x6C, 33, gUnknown_082FF0E3, -1, gStringVar4);
+ AddTextPrinterParameterized3(2, 1, 0x6C, 33, gUnknown_082FF0E3, -1, gStringVar4);
ConvertIntToDecimalStringN(str, badgeCount, 2, 1);
- box_print(2, 1, GetStringRightAlignXOffset(1, str, 0xD0), 33, gUnknown_082FF0E3, -1, str);
+ AddTextPrinterParameterized3(2, 1, GetStringRightAlignXOffset(1, str, 0xD0), 33, gUnknown_082FF0E3, -1, str);
}
void LoadMainMenuWindowFrameTiles(u8 bgId, u16 tileOffset)
diff --git a/src/map_name_popup.c b/src/map_name_popup.c
index 0d22bd126..3feffd70d 100644
--- a/src/map_name_popup.c
+++ b/src/map_name_popup.c
@@ -329,7 +329,7 @@ static void ShowMapNamePopUpWindow(void)
mapDisplayHeader[0] = EXT_CTRL_CODE_BEGIN;
mapDisplayHeader[1] = EXT_CTRL_CODE_HIGHLIGHT;
mapDisplayHeader[2] = TEXT_COLOR_TRANSPARENT;
- PrintTextOnWindow(GetMapNamePopUpWindowId(), 7, mapDisplayHeader, x, 3, 0xFF, NULL);
+ AddTextPrinterParameterized(GetMapNamePopUpWindowId(), 7, mapDisplayHeader, x, 3, 0xFF, NULL);
CopyWindowToVram(GetMapNamePopUpWindowId(), 3);
}
diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c
index 591e3ad9a..6ebc7affa 100644
--- a/src/mauville_old_man.c
+++ b/src/mauville_old_man.c
@@ -438,7 +438,7 @@ static void BardSong_TextSubPrinter(struct TextSubPrinter * printer, u16 a1)
static void sub_8120708(const u8 * src)
{
NewMenuHelpers_DrawDialogueFrame(0, 0);
- PrintTextOnWindow(0, 1, src, 0, 1, 1, BardSong_TextSubPrinter);
+ AddTextPrinterParameterized(0, 1, src, 0, 1, 1, BardSong_TextSubPrinter);
gUnknown_03002F84 = TRUE;
CopyWindowToVram(0, 3);
}
@@ -1160,9 +1160,9 @@ static void PrintStoryList(void)
u16 gameStatID = sStorytellerPtr->gameStatIDs[i];
if (gameStatID == 0)
break;
- PrintTextOnWindow(sStorytellerWindowId, 1, GetStoryTitleByStat(gameStatID), 8, 16 * i + 1, 0xFF, NULL);
+ AddTextPrinterParameterized(sStorytellerWindowId, 1, GetStoryTitleByStat(gameStatID), 8, 16 * i + 1, 0xFF, NULL);
}
- PrintTextOnWindow(sStorytellerWindowId, 1, gText_Exit, 8, 16 * i + 1, 0xFF, NULL);
+ AddTextPrinterParameterized(sStorytellerWindowId, 1, gText_Exit, 8, 16 * i + 1, 0xFF, NULL);
InitMenuInUpperLeftCornerPlaySoundWhenAPressed(sStorytellerWindowId, GetFreeStorySlot() + 1, 0);
CopyWindowToVram(sStorytellerWindowId, 3);
}
diff --git a/src/menu.c b/src/menu.c
index 3acb44985..c5d70f555 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -163,7 +163,7 @@ u16 sub_8197224(void)
return IsTextPrinterActive(0);
}
-u16 AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 fgColor, u8 bgColor, u8 shadowColor)
+u16 AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *str, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 fgColor, u8 bgColor, u8 shadowColor)
{
struct TextSubPrinter printer;
@@ -189,19 +189,19 @@ void AddTextPrinterForMessage(bool8 allowSkippingDelayWithButtonPress)
{
void (*callback)(struct TextSubPrinter *, u16) = NULL;
gTextFlags.flag_0 = allowSkippingDelayWithButtonPress;
- AddTextPrinterParameterized(0, 1, gStringVar4, GetPlayerTextSpeed(), callback, 2, 1, 3);
+ AddTextPrinterParameterized2(0, 1, gStringVar4, GetPlayerTextSpeed(), callback, 2, 1, 3);
}
void AddTextPrinterForMessage_2(bool8 allowSkippingDelayWithButtonPress)
{
gTextFlags.flag_0 = allowSkippingDelayWithButtonPress;
- AddTextPrinterParameterized(0, 1, gStringVar4, GetPlayerTextSpeed(), NULL, 2, 1, 3);
+ AddTextPrinterParameterized2(0, 1, gStringVar4, GetPlayerTextSpeed(), NULL, 2, 1, 3);
}
void AddTextPrinterWithCustomSpeedForMessage(bool8 allowSkippingDelayWithButtonPress, u8 speed)
{
gTextFlags.flag_0 = allowSkippingDelayWithButtonPress;
- AddTextPrinterParameterized(0, 1, gStringVar4, speed, NULL, 2, 1, 3);
+ AddTextPrinterParameterized2(0, 1, gStringVar4, speed, NULL, 2, 1, 3);
}
void sub_81973A4(void)
@@ -539,7 +539,7 @@ void RemoveMapNamePopUpWindow(void)
void AddTextPrinterWithCallbackForMessage(bool8 a1, void (*callback)(struct TextSubPrinter *, u16))
{
gTextFlags.flag_0 = a1;
- AddTextPrinterParameterized(0, 1, gStringVar4, GetPlayerTextSpeed(), callback, 2, 1, 3);
+ AddTextPrinterParameterized2(0, 1, gStringVar4, GetPlayerTextSpeed(), callback, 2, 1, 3);
}
void sub_8197AE8(bool8 copyToVram)
@@ -813,7 +813,7 @@ void sub_8198180(const u8 *string, u8 a2, bool8 copyToVram)
PutWindowTilemap(gUnknown_0203CDA0);
FillWindowPixelBuffer(gUnknown_0203CDA0, 0xFF);
width = GetStringWidth(0, string, 0);
- box_print(gUnknown_0203CDA0,
+ AddTextPrinterParameterized3(gUnknown_0203CDA0,
0,
0xEC - (GetWindowAttribute(gUnknown_0203CDA0, WINDOW_TILEMAP_LEFT) * 8) - a2 - width,
1,
@@ -849,7 +849,7 @@ void sub_8198204(const u8 *string, const u8 *string2, u8 a3, u8 a4, bool8 copyTo
if (string2 != NULL)
{
width = GetStringWidth(0, string2, 0);
- box_print(gUnknown_0203CDA0,
+ AddTextPrinterParameterized3(gUnknown_0203CDA0,
0,
0xEC - (GetWindowAttribute(gUnknown_0203CDA0, WINDOW_TILEMAP_LEFT) * 8) - a4 - width,
1,
@@ -857,7 +857,7 @@ void sub_8198204(const u8 *string, const u8 *string2, u8 a3, u8 a4, bool8 copyTo
0,
string2);
}
- AddTextPrinterParameterized2(gUnknown_0203CDA0, 1, 4, 1, 0, 0, color, 0, string);
+ AddTextPrinterParameterized4(gUnknown_0203CDA0, 1, 4, 1, 0, 0, color, 0, string);
if (copyToVram)
CopyWindowToVram(gUnknown_0203CDA0, 3);
}
@@ -932,7 +932,7 @@ void RedrawMenuCursor(u8 oldPos, u8 newPos)
width = GetMenuCursorDimensionByFont(gUnknown_0203CD90.fontId, 0);
height = GetMenuCursorDimensionByFont(gUnknown_0203CD90.fontId, 1);
FillWindowPixelRect(gUnknown_0203CD90.windowId, 0x11, gUnknown_0203CD90.left, gUnknown_0203CD90.optionHeight * oldPos + gUnknown_0203CD90.top, width, height);
- PrintTextOnWindow(gUnknown_0203CD90.windowId, gUnknown_0203CD90.fontId, gText_SelectorArrow3, gUnknown_0203CD90.left, gUnknown_0203CD90.optionHeight * newPos + gUnknown_0203CD90.top, 0, 0);
+ AddTextPrinterParameterized(gUnknown_0203CD90.windowId, gUnknown_0203CD90.fontId, gText_SelectorArrow3, gUnknown_0203CD90.left, gUnknown_0203CD90.optionHeight * newPos + gUnknown_0203CD90.top, 0, 0);
}
u8 MoveMenuCursor(s8 cursorDelta)
@@ -1093,7 +1093,7 @@ void PrintTextArray(u8 windowId, u8 fontId, u8 left, u8 top, u8 lineHeight, u8 i
u8 i;
for (i = 0; i < itemCount; i++)
{
- PrintTextOnWindow(windowId, fontId, strs[i].text, left, (lineHeight * i) + top, 0xFF, NULL);
+ AddTextPrinterParameterized(windowId, fontId, strs[i].text, left, (lineHeight * i) + top, 0xFF, NULL);
}
CopyWindowToVram(windowId, 2);
}
@@ -1103,7 +1103,7 @@ void sub_81987BC(u8 windowId, u8 fontId, u8 left, u8 top, u8 lineHeight, u8 item
u8 i;
for (i = 0; i < itemCount; i++)
{
- sub_8199F74(windowId, fontId, strs[i].text, left, (lineHeight * i) + top, 0xFF, NULL, a6, a7);
+ AddTextPrinterParameterized5(windowId, fontId, strs[i].text, left, (lineHeight * i) + top, 0xFF, NULL, a6, a7);
}
CopyWindowToVram(windowId, 2);
}
@@ -1223,7 +1223,7 @@ void sub_8198C94(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 a5, u8 a6, u
{
for (j = 0; j < a6; j++)
{
- PrintTextOnWindow(windowId, fontId, strs[(i * a6) + j].text, (a4 * j) + left, (a5 * i) + top, 0xFF, NULL);
+ AddTextPrinterParameterized(windowId, fontId, strs[(i * a6) + j].text, (a4 * j) + left, (a5 * i) + top, 0xFF, NULL);
}
}
CopyWindowToVram(windowId, 2);
@@ -1317,7 +1317,7 @@ void sub_8199060(u8 oldCursorPos, u8 newCursorPos)
cursorHeight);
xPos = (newCursorPos % gUnknown_0203CD90.horizontalCount) * gUnknown_0203CD90.optionWidth + gUnknown_0203CD90.left;
yPos = (newCursorPos / gUnknown_0203CD90.horizontalCount) * gUnknown_0203CD90.optionHeight + gUnknown_0203CD90.top;
- PrintTextOnWindow(gUnknown_0203CD90.windowId,
+ AddTextPrinterParameterized(gUnknown_0203CD90.windowId,
gUnknown_0203CD90.fontId,
gText_SelectorArrow3,
xPos,
@@ -1602,7 +1602,7 @@ void PrintMenuTable(u8 windowId, u8 itemCount, const struct MenuAction *strs)
for (i = 0; i < itemCount; i++)
{
- PrintTextOnWindow(windowId, 1, strs[i].text, 8, (i * 16) + 1, 0xFF, NULL);
+ AddTextPrinterParameterized(windowId, 1, strs[i].text, 8, (i * 16) + 1, 0xFF, NULL);
}
CopyWindowToVram(windowId, 2);
@@ -1668,7 +1668,7 @@ void sub_81997AC(u8 windowId, u8 a4, u8 a6, u8 a7, const struct MenuAction *strs
{
for (j = 0; j < a6; j++)
{
- PrintTextOnWindow(windowId, 1, strs[(i * a6) + j].text, (a4 * j) + 8, (i * 16) + 1, 0xFF, NULL);
+ AddTextPrinterParameterized(windowId, 1, strs[(i * a6) + j].text, (a4 * j) + 8, (i * 16) + 1, 0xFF, NULL);
}
}
CopyWindowToVram(windowId, 2);
@@ -1939,7 +1939,7 @@ void sub_8199DF0(u32 bg, u8 a1, int a2, int a3)
RequestDma3Fill(a1 << 24 | a1 << 16 | a1 << 8 | a1, addr + VRAM, a3 * temp, 1);
}
-void box_print(u8 windowId, u8 fontId, u8 left, u8 top, const u8 *color, s8 speed, const u8 *str)
+void AddTextPrinterParameterized3(u8 windowId, u8 fontId, u8 left, u8 top, const u8 *color, s8 speed, const u8 *str)
{
struct TextSubPrinter printer;
@@ -1960,7 +1960,7 @@ void box_print(u8 windowId, u8 fontId, u8 left, u8 top, const u8 *color, s8 spee
AddTextPrinter(&printer, speed, NULL);
}
-void AddTextPrinterParameterized2(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineSpacing, const u8 *color, s8 speed, const u8 *str)
+void AddTextPrinterParameterized4(u8 windowId, u8 fontId, u8 left, u8 top, u8 letterSpacing, u8 lineSpacing, const u8 *color, s8 speed, const u8 *str)
{
struct TextSubPrinter printer;
@@ -1981,7 +1981,7 @@ void AddTextPrinterParameterized2(u8 windowId, u8 fontId, u8 left, u8 top, u8 le
AddTextPrinter(&printer, speed, NULL);
}
-void sub_8199F74(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 letterSpacing, u8 lineSpacing)
+void AddTextPrinterParameterized5(u8 windowId, u8 fontId, const u8 *str, u8 left, u8 top, u8 speed, void (*callback)(struct TextSubPrinter *, u16), u8 letterSpacing, u8 lineSpacing)
{
struct TextSubPrinter printer;
@@ -2011,7 +2011,7 @@ void PrintPlayerNameOnWindow(u8 windowId, const u8 *src, u16 x, u16 y)
StringExpandPlaceholders(gStringVar4, src);
- PrintTextOnWindow(windowId, 1, gStringVar4, x, y, 0xFF, 0);
+ AddTextPrinterParameterized(windowId, 1, gStringVar4, x, y, 0xFF, 0);
}
//Screw this function, it's long and unreferenced and ugh
diff --git a/src/menu_helpers.c b/src/menu_helpers.c
index 217fdabae..0f6d5aa38 100644
--- a/src/menu_helpers.c
+++ b/src/menu_helpers.c
@@ -137,7 +137,7 @@ void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 arg2, u8 arg3, u8
StringExpandPlaceholders(gStringVar4, string);
gTextFlags.flag_0 = 1;
- AddTextPrinterParameterized(windowId, fontId, gStringVar4, textSpeed, NULL, 2, 1, 3);
+ AddTextPrinterParameterized2(windowId, fontId, gStringVar4, textSpeed, NULL, 2, 1, 3);
gUnknown_0300117C = taskFunc;
gTasks[taskId].func = Task_ContinueTaskAfterMessagePrints;
}
diff --git a/src/money.c b/src/money.c
index 98f25a42a..7b78dda92 100644
--- a/src/money.c
+++ b/src/money.c
@@ -152,7 +152,7 @@ void PrintMoneyAmount(u8 windowId, u8 x, u8 y, int amount, u8 speed)
*(txtPtr++) = 0x77;
StringExpandPlaceholders(txtPtr, gText_PokedollarVar1);
- PrintTextOnWindow(windowId, 1, gStringVar4, x, y, speed, NULL);
+ AddTextPrinterParameterized(windowId, 1, gStringVar4, x, y, speed, NULL);
}
void PrintMoneyAmountInMoneyBoxWithBorder(u8 windowId, u16 tileStart, u8 pallete, int amount)
diff --git a/src/mystery_event_menu.c b/src/mystery_event_menu.c
index 7f031c704..8dcb960b7 100644
--- a/src/mystery_event_menu.c
+++ b/src/mystery_event_menu.c
@@ -314,5 +314,5 @@ static void PrintMysteryMenuText(u8 windowId, const u8 *text, u8 x, u8 y, s32 sp
textColor[2] = 3;
FillWindowPixelBuffer(windowId, (textColor[0]) | (textColor[0] << 4));
- AddTextPrinterParameterized2(windowId, 1, x, y, letterSpacing, lineSpacing, textColor, speed, text);
+ AddTextPrinterParameterized4(windowId, 1, x, y, letterSpacing, lineSpacing, textColor, speed, text);
}
diff --git a/src/naming_screen.c b/src/naming_screen.c
index 42525380b..4d4178c7a 100644
--- a/src/naming_screen.c
+++ b/src/naming_screen.c
@@ -572,7 +572,7 @@ static void DisplaySentToPCMessage(void)
StringExpandPlaceholders(gStringVar4, gUnknown_0858BDB8[stringToDisplay]);
NewMenuHelpers_DrawDialogueFrame(0, 0);
gTextFlags.flag_0 = TRUE;
- AddTextPrinterParameterized(0, 1, gStringVar4, GetPlayerTextSpeed(), 0, 2, 1, 3);
+ AddTextPrinterParameterized2(0, 1, gStringVar4, GetPlayerTextSpeed(), 0, 2, 1, 3);
CopyWindowToVram(0, 3);
}
@@ -1488,7 +1488,7 @@ static void HandleDpadMovement(struct Task *task)
static void sub_80E4894(void)
{
FillWindowPixelBuffer(gNamingScreenData->windows[3], 0x11);
- PrintTextOnWindow(gNamingScreenData->windows[3], 1, gNamingScreenData->template->title, 8, 1, 0, 0);
+ AddTextPrinterParameterized(gNamingScreenData->windows[3], 1, gNamingScreenData->template->title, 8, 1, 0, 0);
PutWindowTilemap(gNamingScreenData->windows[3]);
}
@@ -1499,7 +1499,7 @@ static void sub_80E48E8(void)
StringCopy(buffer, gSpeciesNames[gNamingScreenData->monSpecies]);
StringAppendN(buffer, gNamingScreenData->template->title, 15);
FillWindowPixelBuffer(gNamingScreenData->windows[3], 0x11);
- PrintTextOnWindow(gNamingScreenData->windows[3], 1, buffer, 8, 1, 0, 0);
+ AddTextPrinterParameterized(gNamingScreenData->windows[3], 1, buffer, 8, 1, 0, 0);
PutWindowTilemap(gNamingScreenData->windows[3]);
}
@@ -1556,7 +1556,7 @@ static void sub_80E49BC(void)
StringCopy(genderSymbol, gText_FemaleSymbol);
isFemale = TRUE;
}
- box_print(gNamingScreenData->windows[2], 1, 0x68, 1, sGenderColors[isFemale], -1, genderSymbol);
+ AddTextPrinterParameterized3(gNamingScreenData->windows[2], 1, 0x68, 1, sGenderColors[isFemale], -1, genderSymbol);
}
}
@@ -1693,7 +1693,7 @@ static void sub_80E4D10(void)
temp[1] = gExpandedPlaceholder_Empty[0];
unk2 = (sub_80E503C(temp[0]) == 1) ? 2 : 0;
- PrintTextOnWindow(gNamingScreenData->windows[2], 1, temp, i * 8 + unk + unk2, 1, 0xFF, NULL);
+ AddTextPrinterParameterized(gNamingScreenData->windows[2], 1, temp, i * 8 + unk + unk2, 1, 0xFF, NULL);
}
sub_80E498C();
@@ -1735,7 +1735,7 @@ static void sub_80E4DE4(u8 window, u8 a1)
for (i = 0; i < 4; i++)
{
- box_print(window, 1, 0, i * 16 + 1, sUnkColors[a1], 0, gUnknown_0858C198[a1][i]);
+ AddTextPrinterParameterized3(window, 1, 0, i * 16 + 1, sUnkColors[a1], 0, gUnknown_0858C198[a1][i]);
}
PutWindowTilemap(window);
@@ -1780,7 +1780,7 @@ static void sub_80E4EF0(void)
const u8 color[3] = { 15, 1, 2 };
FillWindowPixelBuffer(gNamingScreenData->windows[4], 0xFF);
- box_print(gNamingScreenData->windows[4], 0, 2, 1, color, 0, gText_MoveOkBack);
+ AddTextPrinterParameterized3(gNamingScreenData->windows[4], 0, 2, 1, color, 0, gText_MoveOkBack);
PutWindowTilemap(gNamingScreenData->windows[4]);
CopyWindowToVram(gNamingScreenData->windows[4], 3);
}
diff --git a/src/option_menu.c b/src/option_menu.c
index d48a1e448..6cb208c63 100644
--- a/src/option_menu.c
+++ b/src/option_menu.c
@@ -395,7 +395,7 @@ static void DrawOptionMenuChoice(const u8 *text, u8 x, u8 y, u8 style)
}
dst[i] = EOS;
- PrintTextOnWindow(WIN_OPTIONS, 1, dst, x, y + 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(WIN_OPTIONS, 1, dst, x, y + 1, TEXT_SPEED_FF, NULL);
}
static u8 TextSpeed_ProcessInput(u8 selection)
@@ -621,7 +621,7 @@ static void ButtonMode_DrawChoices(u8 selection)
static void DrawTextOption(void)
{
FillWindowPixelBuffer(WIN_TEXT_OPTION, 0x11);
- PrintTextOnWindow(WIN_TEXT_OPTION, 1, gText_Option, 8, 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(WIN_TEXT_OPTION, 1, gText_Option, 8, 1, TEXT_SPEED_FF, NULL);
CopyWindowToVram(WIN_TEXT_OPTION, 3);
}
@@ -632,7 +632,7 @@ static void DrawOptionMenuTexts(void)
FillWindowPixelBuffer(WIN_OPTIONS, 0x11);
for (i = 0; i < MENUITEM_COUNT; i++)
{
- PrintTextOnWindow(WIN_OPTIONS, 1, sOptionMenuItemsNames[i], 8, (i * 16) + 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(WIN_OPTIONS, 1, sOptionMenuItemsNames[i], 8, (i * 16) + 1, TEXT_SPEED_FF, NULL);
}
CopyWindowToVram(WIN_OPTIONS, 3);
}
diff --git a/src/player_pc.c b/src/player_pc.c
index 7ac8e78d5..bdbef1b43 100644
--- a/src/player_pc.c
+++ b/src/player_pc.c
@@ -453,7 +453,7 @@ static void InitItemStorageMenu(u8 taskId, u8 var)
static void ItemStorageMenuPrint(const u8 *textPtr)
{
NewMenuHelpers_DrawDialogueFrame(0, 0);
- PrintTextOnWindow(0, 1, textPtr, 0, 1, 0, 0);
+ AddTextPrinterParameterized(0, 1, textPtr, 0, 1, 0, 0);
}
static void ItemStorageMenuProcessInput(u8 taskId)
@@ -626,7 +626,7 @@ static void Mailbox_DrawMailboxMenu(u8 taskId)
windowId = sub_81D1C84(0);
sub_81D1C84(1);
- PrintTextOnWindow(windowId, 1, gText_Mailbox, GetStringCenterAlignXOffset(1, gText_Mailbox, 0x40), 1, 0, NULL);
+ AddTextPrinterParameterized(windowId, 1, gText_Mailbox, GetStringCenterAlignXOffset(1, gText_Mailbox, 0x40), 1, 0, NULL);
schedule_bg_copy_tilemap_to_vram(0);
gTasks[taskId].data[5] = sub_81D1DC0(&playerPCItemPageInfo);
sub_81D1E90(&playerPCItemPageInfo);
@@ -965,7 +965,7 @@ static void fish4_goto_x5_or_x6(u8 windowId, s32 id, u8 yOffset)
}
ConvertIntToDecimalStringN(gStringVar1, gSaveBlock1Ptr->pcItems[id].quantity, STR_CONV_MODE_RIGHT_ALIGN, 3);
StringExpandPlaceholders(gStringVar4, gText_xVar1);
- PrintTextOnWindow(windowId, 7, gStringVar4, GetStringRightAlignXOffset(7, gStringVar4, 104), yOffset, 0xFF, NULL);
+ AddTextPrinterParameterized(windowId, 7, gStringVar4, GetStringRightAlignXOffset(7, gStringVar4, 104), yOffset, 0xFF, NULL);
}
}
@@ -979,7 +979,7 @@ static void sub_816BEF0(s32 id)
else
description = ItemStorage_GetItemPcResponse(ITEMPC_GO_BACK_TO_PREV);
FillWindowPixelBuffer(windowId, 17);
- PrintTextOnWindow(windowId, 1, description, 0, 1, 0, NULL);
+ AddTextPrinterParameterized(windowId, 1, description, 0, 1, 0, NULL);
}
static void ItemStorage_StartScrollIndicator(void)
@@ -1008,7 +1008,7 @@ static void sub_816BFE0(u8 y, u8 b, u8 speed)
if(b == 0xFF)
FillWindowPixelRect(windowId, 17, 0, y, GetMenuCursorDimensionByFont(1, 0), GetMenuCursorDimensionByFont(1, 1));
else
- AddTextPrinterParameterized2(windowId, 1, 0, y, 0, 0, gUnknown_085DFF8C, speed, gText_SelectorArrow2);
+ AddTextPrinterParameterized4(windowId, 1, 0, y, 0, 0, gUnknown_085DFF8C, speed, gText_SelectorArrow2);
}
static void sub_816C060(u16 itemId)
@@ -1070,7 +1070,7 @@ static void ItemStorage_ProcessWithdrawTossInput(u8 taskId)
if(!toss)
text = gText_WithdrawItem;
x = GetStringCenterAlignXOffset(1, text, 104);
- PrintTextOnWindow(gUnknown_0203BCC4->windowIds[3], 1, text, x, 1, 0, NULL);
+ AddTextPrinterParameterized(gUnknown_0203BCC4->windowIds[3], 1, text, x, 1, 0, NULL);
CopyWindowToVram(gUnknown_0203BCC4->windowIds[2], 2);
sub_816C110();
sub_816C140();
@@ -1126,7 +1126,7 @@ static void ItemStorage_PrintItemPcResponse(const u8 *string)
u8 windowId = gUnknown_0203BCC4->windowIds[1];
FillWindowPixelBuffer(windowId, 0x11);
StringExpandPlaceholders(gStringVar4, string);
- PrintTextOnWindow(windowId, 1, gStringVar4, 0, 1, 0, NULL);
+ AddTextPrinterParameterized(windowId, 1, gStringVar4, 0, 1, 0, NULL);
}
static void ItemStorage_ProcessInput(u8 taskId)
@@ -1284,7 +1284,7 @@ static void sub_816C6BC(u8 windowId, u16 value, u32 mode, u8 x, u8 y, u8 n)
{
ConvertIntToDecimalStringN(gStringVar1, value, mode, n);
StringExpandPlaceholders(gStringVar4, gText_xVar1);
- PrintTextOnWindow(windowId, 1, gStringVar4, GetStringCenterAlignXOffset(1, gStringVar4, 48), y, 0, NULL);
+ AddTextPrinterParameterized(windowId, 1, gStringVar4, GetStringCenterAlignXOffset(1, gStringVar4, 48), y, 0, NULL);
}
static void ItemStorage_DoItemAction(u8 taskId)
diff --git a/src/pokeblock.c b/src/pokeblock.c
index 0fa2cde04..d0a867b3a 100644
--- a/src/pokeblock.c
+++ b/src/pokeblock.c
@@ -677,7 +677,7 @@ static void HandleInitWindows(void)
static void PrintOnPokeblockWindow(u8 windowId, const u8 *string, s32 x)
{
- AddTextPrinterParameterized2(windowId, 1, x, 1, 0, 0, sTextColorInPokeblockMenu, 0, string);
+ AddTextPrinterParameterized4(windowId, 1, x, 1, 0, 0, sTextColorInPokeblockMenu, 0, string);
}
static void PutPokeblockInfoText(void)
diff --git a/src/pokeblock_feed.c b/src/pokeblock_feed.c
index 5f06ed7e8..1449d4a00 100644
--- a/src/pokeblock_feed.c
+++ b/src/pokeblock_feed.c
@@ -789,7 +789,7 @@ static void Task_HandleMonAtePokeblock(u8 taskId)
StringExpandPlaceholders(gStringVar4, gText_Var1DisdainfullyAteVar2);
gTextFlags.flag_0 = 1;
- AddTextPrinterParameterized(0, 1, gStringVar4, GetPlayerTextSpeed(), NULL, 2, 1, 3);
+ AddTextPrinterParameterized2(0, 1, gStringVar4, GetPlayerTextSpeed(), NULL, 2, 1, 3);
gTasks[taskId].func = Task_WaitForAtePokeblockText;
}
diff --git a/src/pokedex.c b/src/pokedex.c
index 2cb3c153f..d27f0d89c 100644
--- a/src/pokedex.c
+++ b/src/pokedex.c
@@ -1637,7 +1637,7 @@ void sub_80BCE2C(u8 windowId, u8 fontId, const u8* str, u8 left, u8 top)
color[0] = 0;
color[1] = 15;
color[2] = 3;
- AddTextPrinterParameterized2(windowId, fontId, left * 8, (top * 8) + 1, 0, 0, color, -1, str);
+ AddTextPrinterParameterized4(windowId, fontId, left * 8, (top * 8) + 1, 0, 0, color, -1, str);
}
void sub_80BCE84(u8 a, u16 b, u16 c)
@@ -2450,7 +2450,7 @@ void sub_80BE8DC(const u8* str, u8 left, u8 top)
color[1] = 15;
color[2] = 3;
- AddTextPrinterParameterized2(0, 1, left, top, 0, 0, color, -1, str);
+ AddTextPrinterParameterized4(0, 1, left, top, 0, 0, color, -1, str);
}
u8 sub_80BE91C(struct PokedexListItem* item, u8 b)
@@ -4065,7 +4065,7 @@ void sub_80C0A88(u8 windowId, const u8 *str, u8 left, u8 top)
color[1] = 15;
color[2] = 3;
- AddTextPrinterParameterized2(windowId, 1, left, top, 0, 0, color, -1, str);
+ AddTextPrinterParameterized4(windowId, 1, left, top, 0, 0, color, -1, str);
}
void sub_80C0AC4(u8 windowId, u16 order, u8 left, u8 top)
@@ -4368,7 +4368,7 @@ void sub_80C1270(const u8 *str, u32 left, u32 top)
color[0] = 0;
color[1] = 15;
color[2] = 2;
- AddTextPrinterParameterized2(0, 1, left, top, 0, 0, color, -1, str);
+ AddTextPrinterParameterized4(0, 1, left, top, 0, 0, color, -1, str);
}
void sub_80C12B0(u32 x, u32 y, u32 width, u32 height)
diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c
index 7c622c223..031f704a4 100644
--- a/src/pokemon_storage_system.c
+++ b/src/pokemon_storage_system.c
@@ -258,7 +258,7 @@ void Task_PokemonStorageSystem(u8 taskId)
sub_81973A4();
NewMenuHelpers_DrawDialogueFrame(0, 0);
FillWindowPixelBuffer(0, 0x11);
- AddTextPrinterParameterized(0, 1, gUnknown_085716C0[task->data[1]].desc, TEXT_SPEED_FF, NULL, 2, 1, 3);
+ AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, TEXT_SPEED_FF, NULL, 2, 1, 3);
CopyWindowToVram(0, 3);
CopyWindowToVram(task->data[15], 3);
task->data[0]++;
@@ -284,7 +284,7 @@ void Task_PokemonStorageSystem(u8 taskId)
{
task->data[1] = task->data[3];
FillWindowPixelBuffer(0, 0x11);
- AddTextPrinterParameterized(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3);
+ AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3);
}
break;
case -1:
@@ -299,13 +299,13 @@ void Task_PokemonStorageSystem(u8 taskId)
if (task->data[2] == 0 && CountPartyMons() == PARTY_SIZE)
{
FillWindowPixelBuffer(0, 0x11);
- AddTextPrinterParameterized(0, 1, gText_PartyFull, 0, NULL, 2, 1, 3);
+ AddTextPrinterParameterized2(0, 1, gText_PartyFull, 0, NULL, 2, 1, 3);
task->data[0] = 3;
}
else if (task->data[2] == 1 && CountPartyMons() == 1)
{
FillWindowPixelBuffer(0, 0x11);
- AddTextPrinterParameterized(0, 1, gText_JustOnePkmn, 0, NULL, 2, 1, 3);
+ AddTextPrinterParameterized2(0, 1, gText_JustOnePkmn, 0, NULL, 2, 1, 3);
task->data[0] = 3;
}
else
@@ -320,7 +320,7 @@ void Task_PokemonStorageSystem(u8 taskId)
if (gMain.newKeys & (A_BUTTON | B_BUTTON))
{
FillWindowPixelBuffer(0, 0x11);
- AddTextPrinterParameterized(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3);
+ AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3);
task->data[0] = 2;
}
else if (gMain.newKeys & DPAD_UP)
@@ -330,7 +330,7 @@ void Task_PokemonStorageSystem(u8 taskId)
MoveMenuCursor(-1);
task->data[1] = GetMenuCursorPos();
FillWindowPixelBuffer(0, 0x11);
- AddTextPrinterParameterized(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3);
+ AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3);
task->data[0] = 2;
}
else if (gMain.newKeys & DPAD_DOWN)
@@ -340,7 +340,7 @@ void Task_PokemonStorageSystem(u8 taskId)
MoveMenuCursor(1);
task->data[1] = GetMenuCursorPos();
FillWindowPixelBuffer(0, 0x11);
- AddTextPrinterParameterized(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3);
+ AddTextPrinterParameterized2(0, 1, gUnknown_085716C0[task->data[1]].desc, 0, NULL, 2, 1, 3);
task->data[0] = 2;
}
break;
@@ -627,12 +627,12 @@ void sub_80C7BE4(void)
FillWindowPixelBuffer(windowId, 0x44);
center = GetStringCenterAlignXOffset(1, boxName, 0x40);
- box_print(windowId, 1, center, 1, gUnknown_08571734, TEXT_SPEED_FF, boxName);
+ AddTextPrinterParameterized3(windowId, 1, center, 1, gUnknown_08571734, TEXT_SPEED_FF, boxName);
ConvertIntToDecimalStringN(text, nPokemonInBox, 1, 2);
StringAppend(text, gUnknown_08571737);
center = GetStringCenterAlignXOffset(1, text, 0x40);
- box_print(windowId, 1, center, 0x11, gUnknown_08571734, TEXT_SPEED_FF, text);
+ AddTextPrinterParameterized3(windowId, 1, center, 0x11, gUnknown_08571734, TEXT_SPEED_FF, text);
winTileData = GetWindowAttribute(windowId, WINDOW_TILE_DATA);
CpuCopy32((void *)winTileData, (void *)OBJ_VRAM0 + 0x100 + (GetSpriteTileStartByTag(gUnknown_02039D04->unk_0240) * 32), 0x400);
diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c
index 6b51c6e07..df596749e 100644
--- a/src/pokemon_summary_screen.c
+++ b/src/pokemon_summary_screen.c
@@ -2638,7 +2638,7 @@ static void sub_81C2554(void)
static void SummaryScreen_PrintTextOnWindow(u8 windowId, const u8 *string, u8 x, u8 y, u8 lineSpacing, u8 colorId)
{
- AddTextPrinterParameterized2(windowId, 1, x, y, 0, lineSpacing, sTextColors_861CD2C[colorId], 0, string);
+ AddTextPrinterParameterized4(windowId, 1, x, y, 0, lineSpacing, sTextColors_861CD2C[colorId], 0, string);
}
static void sub_81C25E8(void)
diff --git a/src/record_mixing.c b/src/record_mixing.c
index 552c32d38..6c6f69fa8 100644
--- a/src/record_mixing.c
+++ b/src/record_mixing.c
@@ -306,7 +306,7 @@ static void ReceiveExchangePacket(u32 which)
static void PrintTextOnRecordMixing(const u8 *src)
{
NewMenuHelpers_DrawDialogueFrame(0, 0);
- PrintTextOnWindow(0, 1, src, 0, 1, 0, NULL);
+ AddTextPrinterParameterized(0, 1, src, 0, 1, 0, NULL);
CopyWindowToVram(0, 3);
}
diff --git a/src/region_map.c b/src/region_map.c
index 3214ae185..e06d121e9 100644
--- a/src/region_map.c
+++ b/src/region_map.c
@@ -1631,7 +1631,7 @@ void MCB2_FlyMap(void)
LoadPalette(sRegionMapFramePal, 0x10, 0x20);
PutWindowTilemap(2);
FillWindowPixelBuffer(2, 0x00);
- PrintTextOnWindow(2, 1, gText_FlyToWhere, 0, 1, 0, NULL);
+ AddTextPrinterParameterized(2, 1, gText_FlyToWhere, 0, 1, 0, NULL);
schedule_bg_copy_tilemap_to_vram(0);
gMain.state++;
break;
@@ -1697,9 +1697,9 @@ static void sub_8124904(void)
flag = TRUE;
sub_8198070(0, FALSE);
SetWindowBorderStyle(1, FALSE, 0x65, 0x0d);
- PrintTextOnWindow(1, 1, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL);
+ AddTextPrinterParameterized(1, 1, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL);
name = gUnknown_085A1EDC[i].name[sFlyMap->regionMap.posWithinMapSec];
- PrintTextOnWindow(1, 1, name, GetStringRightAlignXOffset(1, name, 0x60), 0x11, 0, NULL);
+ AddTextPrinterParameterized(1, 1, name, GetStringRightAlignXOffset(1, name, 0x60), 0x11, 0, NULL);
schedule_bg_copy_tilemap_to_vram(0);
gUnknown_03001180 = TRUE;
}
@@ -1717,7 +1717,7 @@ static void sub_8124904(void)
{
FillWindowPixelBuffer(0, 0x11);
}
- PrintTextOnWindow(0, 1, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL);
+ AddTextPrinterParameterized(0, 1, sFlyMap->regionMap.mapSecName, 0, 1, 0, NULL);
schedule_bg_copy_tilemap_to_vram(0);
gUnknown_03001180 = FALSE;
}
diff --git a/src/reset_rtc_screen.c b/src/reset_rtc_screen.c
index 416a8da9d..34444cbf4 100644
--- a/src/reset_rtc_screen.c
+++ b/src/reset_rtc_screen.c
@@ -314,14 +314,14 @@ static void PrintTime(u8 windowId, u8 x, u8 y, u16 days, u8 hours, u8 minutes, u
ConvertIntToDecimalStringN(gStringVar1, seconds, 2, 2);
dest = StringCopy(dest, gStringVar1);
- PrintTextOnWindow(windowId, 1, gStringVar4, x, y, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(windowId, 1, gStringVar4, x, y, TEXT_SPEED_FF, NULL);
}
static void ShowChooseTimeWindow(u8 windowId, u16 days, u8 hours, u8 minutes, u8 seconds)
{
SetWindowBorderStyle(windowId, FALSE, 0x214, 0xE);
PrintTime(windowId, 0, 1, days, hours, minutes, seconds);
- PrintTextOnWindow(windowId, 1, gText_Confirm2, 126, 1, 0, NULL);
+ AddTextPrinterParameterized(windowId, 1, gText_Confirm2, 126, 1, 0, NULL);
schedule_bg_copy_tilemap_to_vram(0);
}
@@ -496,7 +496,7 @@ static void VBlankCB(void)
static void ShowMessage(const u8 *str)
{
sub_8197B1C(1, FALSE, 0x200, 0xF);
- PrintTextOnWindow(1, 1, str, 0, 1, 0, NULL);
+ AddTextPrinterParameterized(1, 1, str, 0, 1, 0, NULL);
schedule_bg_copy_tilemap_to_vram(0);
}
@@ -508,7 +508,7 @@ static void Task_ShowResetRtcPrompt(u8 taskId)
{
case 0:
SetWindowBorderStyle(0, FALSE, 0x214, 0xE);
- PrintTextOnWindow(0, 1, gText_PresentTime, 0, 1, TEXT_SPEED_FF, 0);
+ AddTextPrinterParameterized(0, 1, gText_PresentTime, 0, 1, TEXT_SPEED_FF, 0);
PrintTime(
0,
0,
@@ -517,7 +517,7 @@ static void Task_ShowResetRtcPrompt(u8 taskId)
gLocalTime.hours,
gLocalTime.minutes,
gLocalTime.seconds);
- PrintTextOnWindow(0, 1, gText_PreviousTime, 0, 33, TEXT_SPEED_FF, 0);
+ AddTextPrinterParameterized(0, 1, gText_PreviousTime, 0, 33, TEXT_SPEED_FF, 0);
PrintTime(
0,
0,
diff --git a/src/save_failed_screen.c b/src/save_failed_screen.c
index b207d7e74..4c1da8620 100644
--- a/src/save_failed_screen.c
+++ b/src/save_failed_screen.c
@@ -173,7 +173,7 @@ static void SaveFailedScreenTextPrint(u8 *text, u8 var1, u8 var2)
color[0] = 0;
color[1] = 15;
color[2] = 3;
- AddTextPrinterParameterized2(gSaveFailedWindowIds[TEXT_WIN_ID], 1, var1 * 8, var2 * 8 + 1, 0, 0, color, 0, text);
+ AddTextPrinterParameterized4(gSaveFailedWindowIds[TEXT_WIN_ID], 1, var1 * 8, var2 * 8 + 1, 0, 0, color, 0, text);
}
void DoSaveFailedScreen(u8 saveType)
diff --git a/src/scrcmd.c b/src/scrcmd.c
index 31a4ed35a..acaf78576 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -1304,7 +1304,7 @@ bool8 ScrCmd_cmdDB(struct ScriptContext *ctx)
msg = (const u8 *)ctx->data[0];
sub_81973A4();
NewMenuHelpers_DrawDialogueFrame(0, 1);
- PrintTextOnWindow(0, 1, msg, 0, 1, 0, 0);
+ AddTextPrinterParameterized(0, 1, msg, 0, 1, 0, 0);
return FALSE;
}
@@ -1521,7 +1521,7 @@ bool8 ScrCmd_braillemessage(struct ScriptContext *ctx)
NewMenuHelpers_DrawStdWindowFrame(gUnknown_03000F30, 0);
PutWindowTilemap(gUnknown_03000F30);
FillWindowPixelBuffer(gUnknown_03000F30, 0x11);
- PrintTextOnWindow(gUnknown_03000F30, 6, gStringVar4, xText, yText, 0xFF, 0x0);
+ AddTextPrinterParameterized(gUnknown_03000F30, 6, gStringVar4, xText, yText, 0xFF, 0x0);
CopyWindowToVram(gUnknown_03000F30, 3);
return FALSE;
}
diff --git a/src/slot_machine.c b/src/slot_machine.c
index 6b6a46cf8..ed00f41c2 100644
--- a/src/slot_machine.c
+++ b/src/slot_machine.c
@@ -725,7 +725,7 @@ extern const u8 gText_YouveRunOutOfCoins[];
bool8 sub_8101F44(struct Task *task)
{
NewMenuHelpers_DrawDialogueFrame(0, 0);
- PrintTextOnWindow(0, 1, gText_YouDontHaveThreeCoins, 0, 1, 0, 0);
+ AddTextPrinterParameterized(0, 1, gText_YouDontHaveThreeCoins, 0, 1, 0, 0);
CopyWindowToVram(0, 3);
sSlotMachine->state = 7;
return FALSE;
@@ -966,7 +966,7 @@ bool8 sub_81022F0(struct Task *task)
bool8 sub_8102318(struct Task *task)
{
NewMenuHelpers_DrawDialogueFrame(0, 0);
- PrintTextOnWindow(0, 1, gText_QuitTheGame, 0, 1, 0, 0);
+ AddTextPrinterParameterized(0, 1, gText_QuitTheGame, 0, 1, 0, 0);
CopyWindowToVram(0, 3);
sub_80323CC(0x15, 7, 0x214, 0x180, 0xE, 0xF);
sSlotMachine->state = 22;
@@ -996,7 +996,7 @@ bool8 sub_8102344(struct Task *task)
bool8 sub_810239C(struct Task *task)
{
NewMenuHelpers_DrawDialogueFrame(0, 0);
- PrintTextOnWindow(0, 1, gText_YouveGot9999Coins, 0, 1, 0, 0);
+ AddTextPrinterParameterized(0, 1, gText_YouveGot9999Coins, 0, 1, 0, 0);
CopyWindowToVram(0, 3);
sSlotMachine->state = 24;
return FALSE;
@@ -1015,7 +1015,7 @@ bool8 sub_81023B8(struct Task *task)
bool8 sub_81023E0_(struct Task *task)
{
NewMenuHelpers_DrawDialogueFrame(0, 0);
- PrintTextOnWindow(0, 1, gText_YouveRunOutOfCoins, 0, 1, 0, 0);
+ AddTextPrinterParameterized(0, 1, gText_YouveRunOutOfCoins, 0, 1, 0, 0);
CopyWindowToVram(0, 3);
sSlotMachine->state = 26;
return FALSE;
diff --git a/src/start_menu.c b/src/start_menu.c
index 4a58c146e..56dad89f7 100644
--- a/src/start_menu.c
+++ b/src/start_menu.c
@@ -377,7 +377,7 @@ static void ShowSafariBallsWindow(void)
NewMenuHelpers_DrawStdWindowFrame(sSafariBallsWindowId, FALSE);
ConvertIntToDecimalStringN(gStringVar1, gNumSafariBalls, STR_CONV_MODE_RIGHT_ALIGN, 2);
StringExpandPlaceholders(gStringVar4, gText_SafariBallStock);
- PrintTextOnWindow(sSafariBallsWindowId, 1, gStringVar4, 0, 1, 0xFF, NULL);
+ AddTextPrinterParameterized(sSafariBallsWindowId, 1, gStringVar4, 0, 1, 0xFF, NULL);
CopyWindowToVram(sSafariBallsWindowId, 2);
}
@@ -392,7 +392,7 @@ static void ShowPyramidFloorWindow(void)
NewMenuHelpers_DrawStdWindowFrame(sBattlePyramidFloorWindowId, FALSE);
StringCopy(gStringVar1, sPyramindFloorNames[gSaveBlock2Ptr->frontier.field_CB2]);
StringExpandPlaceholders(gStringVar4, gText_BattlePyramidFloor);
- PrintTextOnWindow(sBattlePyramidFloorWindowId, 1, gStringVar4, 0, 1, 0xFF, NULL);
+ AddTextPrinterParameterized(sBattlePyramidFloorWindowId, 1, gStringVar4, 0, 1, 0xFF, NULL);
CopyWindowToVram(sBattlePyramidFloorWindowId, 2);
}
@@ -422,7 +422,7 @@ static bool32 PrintStartMenuActions(s8 *pIndex, u32 count)
}
else {
StringExpandPlaceholders(gStringVar4, sStartMenuItems[sCurrentStartMenuActions[index]].text);
- PrintTextOnWindow(GetStartMenuWindowId(), 1, gStringVar4, 8, (index << 4) + 9, 0xFF, NULL);
+ AddTextPrinterParameterized(GetStartMenuWindowId(), 1, gStringVar4, 8, (index << 4) + 9, 0xFF, NULL);
}
index++;
@@ -1249,7 +1249,7 @@ static void sub_80A0550(u8 taskId)
{
case 0:
FillWindowPixelBuffer(0, 17);
- AddTextPrinterParameterized(0,
+ AddTextPrinterParameterized2(0,
1,
gText_SavingDontTurnOffPower,
255,
@@ -1342,38 +1342,38 @@ static void ShowSaveInfoWindow(void)
// Print region name
yOffset = 1;
sub_819A344(3, gStringVar4, TEXT_COLOR_GREEN);
- PrintTextOnWindow(sSaveInfoWindowId, 1, gStringVar4, 0, yOffset, 0xFF, NULL);
+ AddTextPrinterParameterized(sSaveInfoWindowId, 1, gStringVar4, 0, yOffset, 0xFF, NULL);
// Print player name
yOffset = 0x11;
- PrintTextOnWindow(sSaveInfoWindowId, 1, gText_SavingPlayer, 0, yOffset, 0xFF, NULL);
+ AddTextPrinterParameterized(sSaveInfoWindowId, 1, gText_SavingPlayer, 0, yOffset, 0xFF, NULL);
sub_819A344(0, gStringVar4, color);
xOffset = GetStringRightAlignXOffset(1, gStringVar4, 0x70);
PrintPlayerNameOnWindow(sSaveInfoWindowId, gStringVar4, xOffset, yOffset);
// Print badge count
yOffset = 0x21;
- PrintTextOnWindow(sSaveInfoWindowId, 1, gText_SavingBadges, 0, yOffset, 0xFF, NULL);
+ AddTextPrinterParameterized(sSaveInfoWindowId, 1, gText_SavingBadges, 0, yOffset, 0xFF, NULL);
sub_819A344(4, gStringVar4, color);
xOffset = GetStringRightAlignXOffset(1, gStringVar4, 0x70);
- PrintTextOnWindow(sSaveInfoWindowId, 1, gStringVar4, xOffset, yOffset, 0xFF, NULL);
+ AddTextPrinterParameterized(sSaveInfoWindowId, 1, gStringVar4, xOffset, yOffset, 0xFF, NULL);
if (FlagGet(FLAG_SYS_POKEDEX_GET) == TRUE)
{
// Print pokedex count
yOffset = 0x31;
- PrintTextOnWindow(sSaveInfoWindowId, 1, gText_SavingPokedex, 0, yOffset, 0xFF, NULL);
+ AddTextPrinterParameterized(sSaveInfoWindowId, 1, gText_SavingPokedex, 0, yOffset, 0xFF, NULL);
sub_819A344(1, gStringVar4, color);
xOffset = GetStringRightAlignXOffset(1, gStringVar4, 0x70);
- PrintTextOnWindow(sSaveInfoWindowId, 1, gStringVar4, xOffset, yOffset, 0xFF, NULL);
+ AddTextPrinterParameterized(sSaveInfoWindowId, 1, gStringVar4, xOffset, yOffset, 0xFF, NULL);
}
// Print play time
yOffset += 0x10;
- PrintTextOnWindow(sSaveInfoWindowId, 1, gText_SavingTime, 0, yOffset, 0xFF, NULL);
+ AddTextPrinterParameterized(sSaveInfoWindowId, 1, gText_SavingTime, 0, yOffset, 0xFF, NULL);
sub_819A344(2, gStringVar4, color);
xOffset = GetStringRightAlignXOffset(1, gStringVar4, 0x70);
- PrintTextOnWindow(sSaveInfoWindowId, 1, gStringVar4, xOffset, yOffset, 0xFF, NULL);
+ AddTextPrinterParameterized(sSaveInfoWindowId, 1, gStringVar4, xOffset, yOffset, 0xFF, NULL);
CopyWindowToVram(sSaveInfoWindowId, 2);
}
diff --git a/src/starter_choose.c b/src/starter_choose.c
index 71784b016..179d9a05a 100644
--- a/src/starter_choose.c
+++ b/src/starter_choose.c
@@ -470,7 +470,7 @@ static void Task_StarterChoose1(u8 taskId)
{
CreateStarterPokemonLabel(gTasks[taskId].tStarterSelection);
SetWindowBorderStyle(0, FALSE, 0x2A8, 0xD);
- PrintTextOnWindow(0, 1, gText_BirchInTrouble, 0, 1, 0, NULL);
+ AddTextPrinterParameterized(0, 1, gText_BirchInTrouble, 0, 1, 0, NULL);
PutWindowTilemap(0);
schedule_bg_copy_tilemap_to_vram(0);
gTasks[taskId].func = Task_StarterChoose2;
@@ -524,7 +524,7 @@ static void Task_StarterChoose4(u8 taskId)
{
PlayCry1(GetStarterPokemon(gTasks[taskId].tStarterSelection), 0);
FillWindowPixelBuffer(0, 0x11);
- PrintTextOnWindow(0, 1, gText_ConfirmStarterChoice, 0, 1, 0, NULL);
+ AddTextPrinterParameterized(0, 1, gText_ConfirmStarterChoice, 0, 1, 0, NULL);
schedule_bg_copy_tilemap_to_vram(0);
CreateYesNoMenu(&gUnknown_085B1DDC, 0x2A8, 0xD, 0);
gTasks[taskId].func = Task_StarterChoose5;
@@ -582,10 +582,10 @@ static void CreateStarterPokemonLabel(u8 selection)
FillWindowPixelBuffer(sStarterChooseWindowId, 0);
width = GetStringCenterAlignXOffset(7, text, 0x68);
- box_print(sStarterChooseWindowId, 7, width, 1, gUnknown_085B1E0C, 0, text);
+ AddTextPrinterParameterized3(sStarterChooseWindowId, 7, width, 1, gUnknown_085B1E0C, 0, text);
width = GetStringCenterAlignXOffset(1, speciesName, 0x68);
- box_print(sStarterChooseWindowId, 1, width, 0x11, gUnknown_085B1E0C, 0, speciesName);
+ AddTextPrinterParameterized3(sStarterChooseWindowId, 1, width, 0x11, gUnknown_085B1E0C, 0, speciesName);
PutWindowTilemap(sStarterChooseWindowId);
schedule_bg_copy_tilemap_to_vram(0);
diff --git a/src/text.c b/src/text.c
index ed70f767b..e5a9feed8 100644
--- a/src/text.c
+++ b/src/text.c
@@ -139,14 +139,14 @@ void SetFontsPointer(const struct FontInfo *fonts)
gFonts = fonts;
}
-void DeactivateAllTextPrinters (void)
+void DeactivateAllTextPrinters(void)
{
int printer;
for (printer = 0; printer < NUM_TEXT_PRINTERS; ++printer)
gTextPrinters[printer].sub_union.sub.active = 0;
}
-u16 PrintTextOnWindow(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextSubPrinter *, u16))
+u16 AddTextPrinterParameterized(u8 windowId, u8 fontId, const u8 *str, u8 x, u8 y, u8 speed, void (*callback)(struct TextSubPrinter *, u16))
{
struct TextSubPrinter subPrinter;
diff --git a/src/trader.c b/src/trader.c
index c4d70ac9a..f081d7e95 100644
--- a/src/trader.c
+++ b/src/trader.c
@@ -77,11 +77,11 @@ void CreateAvailableDecorationsMenu(u8 taskId)
for (i = 0; i < 4; i++)
{
if (trader->decorIds[i] > NUM_DECORATIONS)
- PrintTextOnWindow(data[3], 1, gText_FiveMarks, 8, 16 * i + 1, 255, NULL);
+ AddTextPrinterParameterized(data[3], 1, gText_FiveMarks, 8, 16 * i + 1, 255, NULL);
else
- PrintTextOnWindow(data[3], 1, gDecorations[trader->decorIds[i]].name, 8, 16 * i + 1, 255, NULL);
+ AddTextPrinterParameterized(data[3], 1, gDecorations[trader->decorIds[i]].name, 8, 16 * i + 1, 255, NULL);
}
- PrintTextOnWindow(data[3], 1, gText_Exit, 8, 16 * i + 1, 255, NULL);
+ AddTextPrinterParameterized(data[3], 1, gText_Exit, 8, 16 * i + 1, 255, NULL);
InitMenuInUpperLeftCornerPlaySoundWhenAPressed(data[3], 5, 0);
schedule_bg_copy_tilemap_to_vram(0);
}
diff --git a/src/wallclock.c b/src/wallclock.c
index f3feab1d4..6bcfa1717 100644
--- a/src/wallclock.c
+++ b/src/wallclock.c
@@ -668,7 +668,7 @@ void CB2_StartWallClock(void)
WallClockInit();
- PrintTextOnWindow(1, 1, gText_Confirm3, 0, 1, 0, NULL);
+ AddTextPrinterParameterized(1, 1, gText_Confirm3, 0, 1, 0, NULL);
PutWindowTilemap(1);
schedule_bg_copy_tilemap_to_vram(2);
}
@@ -716,7 +716,7 @@ void CB2_ViewWallClock(void)
WallClockInit();
- PrintTextOnWindow(1, 1, gText_Cancel4, 0, 1, 0, NULL);
+ AddTextPrinterParameterized(1, 1, gText_Cancel4, 0, 1, 0, NULL);
PutWindowTilemap(1);
schedule_bg_copy_tilemap_to_vram(2);
}
@@ -783,7 +783,7 @@ static void Task_SetClock2(u8 taskId)
static void Task_SetClock3(u8 taskId)
{
SetWindowBorderStyle(0, FALSE, 0x250, 0x0d);
- PrintTextOnWindow(0, 1, gText_IsThisTheCorrectTime, 0, 1, 0, NULL);
+ AddTextPrinterParameterized(0, 1, gText_IsThisTheCorrectTime, 0, 1, 0, NULL);
PutWindowTilemap(0);
schedule_bg_copy_tilemap_to_vram(0);
CreateYesNoMenu(&gUnknown_085B21F4, 0x250, 0x0d, 1);
diff --git a/sym_bss.txt b/sym_bss.txt
index 0b861774b..5f055e8e4 100644
--- a/sym_bss.txt
+++ b/sym_bss.txt
@@ -78,14 +78,7 @@ gUnknown_03001278: @ 3001278
gUnknown_03001279: @ 3001279
.space 0x3
-gUnknown_0300127C: @ 300127C
- .space 0x4
-
-gUnknown_03001280: @ 3001280
- .space 0x4
-
-gUnknown_03001284: @ 3001284
- .space 0x4
+ .include "src/battle_factory.o"
gUnknown_03001288: @ 3001288
.space 0x4
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 426ec9307..8515e9119 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -635,34 +635,7 @@ gUnknown_0203CD88: @ 203CD88
.space 0x4
.include "src/menu.o"
-
- .align 2
-gUnknown_0203CE2C: @ 203CE2C
- .space 0x4
-
-gUnknown_0203CE30: @ 203CE30
- .space 0x4
-
-gUnknown_0203CE34: @ 203CE34
- .space 0x4
-
-gUnknown_0203CE38: @ 203CE38
- .space 0x4
-
-gUnknown_0203CE3C: @ 203CE3C
- .space 0x4
-
-gUnknown_0203CE40: @ 203CE40
- .space 0x4
-
-gUnknown_0203CE44: @ 203CE44
- .space 0x4
-
-gUnknown_0203CE48: @ 203CE48
- .space 0x4
-
-gUnknown_0203CE4C: @ 203CE4C
- .space 0x4
+ .include "src/battle_factory.o"
gUnknown_0203CE50: @ 203CE50
.space 0x4